
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* WARNING: Enum "STT": Some values do not have unique names */
/* WARNING: Enum "STB": Some values do not have unique names */
/* DWARF original prototype: void do_finalize_sections(Target_powerpc<64,_false> * this, Layout *
   layout, Input_objects * input_objects, Symbol_table * symtab) */

void __thiscall
anon_unknown.dwarf_6a1ea8::Target_powerpc<64,_false>::do_finalize_sections
          (Target_powerpc<64,_false> *this,Layout *layout,Input_objects *input_objects,
          Symbol_table *symtab)

{
  undefined1 *puVar1;
  uint uVar2;
  uint uVar3;
  _Hash_node_base *p_Var4;
  Powerpc_relobj<64,_false> *this_00;
  Output_segment *pOVar5;
  Output_data_dynamic *pOVar6;
  Output_data_plt_powerpc<64,_false> *plt_got;
  iterator iVar7;
  Sized_relobj_file<64,_false> *pSVar8;
  vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *pasd;
  Attributes_section_data *pAVar9;
  pointer ppOVar10;
  Output_section *pOVar11;
  __normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>_>
  __last;
  __normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>_>
  __first;
  Reloc_section *reloc_section;
  size_t sVar12;
  Output_data_save_res<64,_false> *this_01;
  Output_section_data *posd;
  Input_file *pIVar13;
  Elf_WXword EVar14;
  Output_data *pOVar15;
  ulong uVar16;
  uint uVar17;
  ulong uVar18;
  ulong uVar19;
  pointer pCVar20;
  pointer ppRVar21;
  pointer ppDVar22;
  char *r_off;
  Powerpc_relobj<64,_false> *pPVar23;
  Input_file *pIVar24;
  ulong uVar25;
  Output_data_glink<64,_false> *pOVar26;
  undefined8 in_stack_ffffffffffffff90;
  _TmpBuf __buf;
  
  if (gold::parameters->doing_static_link_valid_ == false) {
                    /* WARNING: Subroutine does not return */
    gold::Parameters::doing_static_link((Parameters *)this,(Parameters *)layout);
  }
  r_off = (char *)layout;
  pPVar23 = (Powerpc_relobj<64,_false> *)this;
  if (gold::parameters->doing_static_link_ != false) {
    pPVar23 = (Powerpc_relobj<64,_false> *)symtab;
    if (this->iplt_ == (Output_data_plt_powerpc<64,_false> *)0x0) {
      gold::Symbol_table::define_as_constant
                (symtab,"__rela_iplt_start",(char *)0x0,PREDEFINED,0,0,STT_NOTYPE,STB_GLOBAL,
                 STV_HIDDEN,'\0',true,false);
      in_stack_ffffffffffffff90 = 0;
      r_off = "__rela_iplt_end";
      gold::Symbol_table::define_as_constant
                (symtab,"__rela_iplt_end",(char *)0x0,PREDEFINED,0,0,STT_NOTYPE,STB_GLOBAL,
                 STV_HIDDEN,'\0',true,false);
    }
    else {
      pOVar15 = (Output_data *)this->iplt_->rel_;
      gold::Symbol_table::define_in_output_data
                (symtab,"__rela_iplt_start",(char *)0x0,PREDEFINED,pOVar15,0,0,STT_NOTYPE,STB_GLOBAL
                 ,STV_HIDDEN,'\0',false,true);
      r_off = "__rela_iplt_end";
      gold::Symbol_table::define_in_output_data
                (symtab,"__rela_iplt_end",(char *)0x0,PREDEFINED,pOVar15,0,0,STT_NOTYPE,STB_GLOBAL,
                 STV_HIDDEN,'\0',true,true);
    }
  }
  for (p_Var4 = (symtab->table_)._M_h._M_before_begin._M_nxt; p_Var4 != (_Hash_node_base *)0x0;
      p_Var4 = p_Var4->_M_nxt) {
    this_00 = (Powerpc_relobj<64,_false> *)p_Var4[3]._M_nxt;
    if (((((*(uint *)((long)&(this_00->super_Sized_relobj_file<64,_false>).
                             super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2 +
                     4) == 0) &&
          (((this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj
            .super_Object.shnum_ & 0x70000) == 0)) &&
         (((this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.
           super_Object.shnum_ & 0x40000000) != 0)) &&
        ((pOVar5 = ((anon_union_8_3_b0f6f408_for_u1_ *)
                   &(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.
                    super_Relobj.super_Object.name_._M_string_length)->output_segment,
         ((ulong)pOVar5->output_lists_[2].
                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl
                 ._M_finish & 0x100000000) == 0 &&
         (uVar17 = *(uint *)((long)&pOVar5->output_lists_[0x16].
                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                                    ._M_impl._M_end_of_storage + 4), uVar17 != 0)))) &&
       (uVar17 == *(uint *)&(this_00->super_Sized_relobj_file<64,_false>).
                            super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2))
    {
      ppOVar10 = pOVar5->output_lists_[0x19].
                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl
                 ._M_finish;
      uVar18 = (ulong)(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.
                      super_Relobj.super_Object.xindex_ >> 4;
      if ((ulong)((long)pOVar5->output_lists_[0x19].
                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                        _M_impl._M_end_of_storage - (long)ppOVar10 >> 4) <= uVar18) {
                    /* WARNING: Subroutine does not return */
        Powerpc_relobj<64,_false>::get_opd_discard(pPVar23,(Address)r_off);
      }
      if ((*(byte *)((long)ppOVar10 + uVar18 * 0x10 + 4) & 1) != 0) {
        in_stack_ffffffffffffff90 = 0x21fbbd;
        pPVar23 = this_00;
        gold::Symbol::set_undefined((Symbol *)this_00);
        uVar17 = (this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.
                 super_Relobj.super_Object.shnum_;
        *(uint *)((long)&(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>
                         .super_Relobj.super_Object.name_.field_2 + 4) = 0xffffffff;
        (this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.
        super_Object.shnum_ = uVar17 & 0x7ffffcff | 0x80000000;
      }
    }
  }
  if (gold::parameters->options_ == (General_options *)0x0) goto LAB_00220104;
  if ((gold::parameters->options_->relocatable_).value == false) {
    this_01 = (Output_data_save_res<64,_false> *)operator_new(0x40);
    *(undefined8 *)&this_01->field_0x8 = 0;
    this_01->field_0x20 = this_01->field_0x20 & 0xe0;
    *(undefined8 *)&this_01->field_0x10 = 0;
    *(undefined8 *)&this_01->field_0x18 = 0xffffffffffffffff;
    *(undefined8 *)&this_01->field_0x28 = 0;
    *(undefined8 *)&this_01->field_0x30 = 4;
    *(undefined ***)this_01 = &PTR__Output_data_save_res_00664fb8;
    this_01->contents_ = (uchar *)0x0;
                    /* try { // try from 0021fc56 to 0021fe51 has its CatchHandler @ 00220146 */
    Output_data_save_res<64,_false>::savres_define
              (this_01,symtab,"_savegpr0_",0xe,0x1f,savegpr0<false>,savegpr0_tail<false>);
    Output_data_save_res<64,_false>::savres_define
              (this_01,symtab,"_restgpr0_",0xe,0x1d,restgpr0<false>,restgpr0_tail<false>);
    Output_data_save_res<64,_false>::savres_define
              (this_01,symtab,"_restgpr0_",0x1e,0x1f,restgpr0<false>,restgpr0_tail<false>);
    Output_data_save_res<64,_false>::savres_define
              (this_01,symtab,"_savegpr1_",0xe,0x1f,savegpr1<false>,savegpr1_tail<false>);
    Output_data_save_res<64,_false>::savres_define
              (this_01,symtab,"_restgpr1_",0xe,0x1f,restgpr1<false>,restgpr1_tail<false>);
    Output_data_save_res<64,_false>::savres_define
              (this_01,symtab,"_savefpr_",0xe,0x1f,savefpr<false>,savefpr0_tail<false>);
    Output_data_save_res<64,_false>::savres_define
              (this_01,symtab,"_restfpr_",0xe,0x1d,restfpr<false>,restfpr0_tail<false>);
    Output_data_save_res<64,_false>::savres_define
              (this_01,symtab,"_restfpr_",0x1e,0x1f,restfpr<false>,restfpr0_tail<false>);
    Output_data_save_res<64,_false>::savres_define
              (this_01,symtab,"._savef",0xe,0x1f,savefpr<false>,savefpr1_tail<false>);
    Output_data_save_res<64,_false>::savres_define
              (this_01,symtab,"._restf",0xe,0x1f,restfpr<false>,restfpr1_tail<false>);
    Output_data_save_res<64,_false>::savres_define
              (this_01,symtab,"_savevr_",0x14,0x1f,savevr<false>,savevr_tail<false>);
    Output_data_save_res<64,_false>::savres_define
              (this_01,symtab,"_restvr_",0x14,0x1f,restvr<false>,restvr_tail<false>);
    this->savres_section_ = this_01;
    gold::Layout::add_output_section_data
              (layout,".text",1,6,(Output_section_data *)this_01,ORDER_TEXT,false);
    got_section((Target_powerpc<64,_false> *)&this->got_,symtab,layout);
    in_stack_ffffffffffffff90 = 0x21fea3;
    make_brlt_section(this,layout);
    if (gold::parameters->options_ == (General_options *)0x0) goto LAB_00220104;
    if (((gold::parameters->options_->toc_sort_).value != false) &&
       (pOVar11 = (this->got_->super_Output_data_got<64,_false>).super_Output_data_got_base.
                  super_Output_section_data_build.super_Output_section_data.output_section_,
       pOVar11 != (Output_section *)0x0)) {
      __last._M_current =
           (pOVar11->input_sections_).
           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
           ._M_impl._M_finish;
      __first._M_current =
           (pOVar11->input_sections_).
           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
           ._M_impl._M_start;
      if (0x3f < (ulong)((long)__last._M_current - (long)__first._M_current)) {
        std::
        _Temporary_buffer<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>_>,_gold::Output_section::Input_section>
        ::_Temporary_buffer(&__buf,__first,__last);
        if (__buf._M_buffer == (pointer)0x0) {
                    /* try { // try from 002200fa to 002200fe has its CatchHandler @ 0022013e */
          std::
          __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>
                    (__first._M_current,__last._M_current);
        }
        else {
                    /* try { // try from 0021ff1d to 0021ff21 has its CatchHandler @ 0022013e */
          std::
          __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,_gold::Output_section::Input_section*,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>
                    (__first._M_current,__last._M_current);
        }
        in_stack_ffffffffffffff90 = 0x21ff32;
        operator_delete(__buf._M_buffer,(nothrow_t *)&std::nothrow);
      }
    }
  }
  pOVar6 = layout->dynamic_data_;
  if (pOVar6 != (Output_data_dynamic *)0x0) {
    pOVar15 = (Output_data *)0x0;
    plt_got = this->plt_;
    if (plt_got != (Output_data_plt_powerpc<64,_false> *)0x0) {
      pOVar15 = (Output_data *)plt_got->rel_;
    }
    gold::Layout::add_target_dynamic_tags
              (layout,false,(Output_data *)plt_got,pOVar15,
               (Output_data_reloc_generic *)this->rela_dyn_,true,false);
    pOVar26 = this->glink_;
    if (pOVar26 != (Output_data_glink<64,_false> *)0x0) {
      if ((*(uint *)&pOVar26->field_0x20 & 2) == 0) {
        (**(code **)((char *)pOVar26->invalid_address + 0x70))(pOVar26,in_stack_ffffffffffffff90);
        if ((*(uint *)&pOVar26->field_0x20 & 2) == 0) {
                    /* WARNING: Subroutine does not return */
          gold::do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");
        }
        pOVar26 = this->glink_;
      }
      iVar7._M_current =
           (pOVar6->entries_).
           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
           ._M_impl._M_finish;
      __buf._M_buffer =
           (pointer)CONCAT44((-(uint)((*(uint *)&pOVar26->targ_->field_0x10 & 2) == 0) & 0xfffffff4)
                             + 0x20,0x70000000);
      __buf._M_original_len = (size_type)pOVar26;
      if (iVar7._M_current ==
          (pOVar6->entries_).
          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
          ._M_impl._M_end_of_storage) {
        std::
        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>
                  (&pOVar6->entries_,iVar7,(Dynamic_entry *)&__buf);
      }
      else {
        ((iVar7._M_current)->u_).sym = (Symbol *)pOVar26;
        (iVar7._M_current)->od2 = (Output_data *)__buf._M_len;
        *(pointer *)&(iVar7._M_current)->tag_ = __buf._M_buffer;
        (pOVar6->entries_).
        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
        ._M_impl._M_finish = iVar7._M_current + 1;
      }
    }
    if (this->has_localentry0_ == false) {
      uVar17 = 0;
      if (this->has_tls_get_addr_opt_ == false) goto LAB_0021f9ad;
    }
    else {
      uVar17 = 4;
    }
    __buf._M_buffer = (pointer)0xffffffff70000003;
    iVar7._M_current =
         (pOVar6->entries_).
         super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
         ._M_impl._M_finish;
    __buf._M_original_len =
         CONCAT44(__buf._M_original_len._4_4_,this->has_tls_get_addr_opt_ | uVar17);
    if (iVar7._M_current ==
        (pOVar6->entries_).
        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
        ._M_impl._M_end_of_storage) {
      std::
      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>
                (&pOVar6->entries_,iVar7,(Dynamic_entry *)&__buf);
    }
    else {
      (iVar7._M_current)->u_ = (anon_union_8_4_94c5dad9_for_u_)__buf._M_original_len;
      (iVar7._M_current)->od2 = (Output_data *)__buf._M_len;
      (iVar7._M_current)->tag_ = DT_MIPS_ICHECKSUM;
      (iVar7._M_current)->offset_ = 0xffffffff;
      (pOVar6->entries_).
      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
      ._M_impl._M_finish = iVar7._M_current + 1;
    }
  }
LAB_0021f9ad:
  if ((this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.
      super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>
      ._M_impl._M_finish !=
      (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.
      super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>
      ._M_impl._M_start) {
    reloc_section = rela_dyn_section((Target_powerpc<64,_false> *)&this->rela_dyn_,layout);
    if (gold::parameters->options_ == (General_options *)0x0) {
LAB_00220104:
                    /* WARNING: Subroutine does not return */
      gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
    }
    if (((gold::parameters->options_->toc_optimize_).value != false) &&
       (pCVar20 = (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.
                  super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>
                  ._M_impl._M_start,
       pCVar20 !=
       (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.
       super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>
       ._M_impl._M_finish)) {
      do {
        if (((pCVar20->sym_->field_0x3a & 7) == 0) &&
           (((ulong)((pCVar20->sym_->u1_).output_segment)->output_lists_[2].
                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                    _M_impl._M_finish & 0x100000000) != 0)) {
          pSVar8 = pCVar20->relobj_;
          uVar17 = *(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.
                                    super_Object.name_._M_dataplus._M_p + 4);
          if (pCVar20->shndx_ == uVar17) {
            pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.input_file_;
            pIVar24 = (Input_file *)
                      pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.
                      field_2._M_allocated_capacity;
            uVar18 = pCVar20->address_;
            uVar2 = (uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.offset_;
            uVar25 = (ulong)uVar2;
            uVar3 = *(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.
                                     super_Object.name_.field_2 + 8);
            uVar19 = (ulong)uVar3;
            if ((pIVar13 == pIVar24) && (uVar2 == uVar3)) {
              EVar14 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size
                                 (&pSVar8->elf_file_,uVar17);
              std::vector<bool,_std::allocator<bool>_>::resize
                        ((vector<bool,_std::allocator<bool>_> *)
                         &pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.
                          field_2,EVar14 >> 3,false);
              uVar19 = (ulong)*(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.
                                               super_Object.name_.field_2 + 8);
              pIVar24 = (Input_file *)
                        pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.
                        field_2._M_allocated_capacity;
              uVar25 = (ulong)(uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.
                                    super_Object.offset_;
              pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.
                        input_file_;
            }
            uVar16 = uVar18 >> 3;
            if (uVar16 < (uVar25 + ((long)pIVar13 - (long)pIVar24) * 8) - uVar19) {
              (&pIVar24->input_argument_)[uVar18 >> 9] =
                   (Input_file_argument *)
                   ((ulong)(&pIVar24->input_argument_)[uVar18 >> 9] | 1L << ((byte)uVar16 & 0x3f));
            }
          }
        }
        pCVar20 = pCVar20 + 1;
      } while ((this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.
               super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>
               ._M_impl._M_finish != pCVar20);
    }
    gold::Copy_relocs<4,_64,_false>::emit
              (&(this->copy_relocs_).super_Copy_relocs<4,_64,_false>,reloc_section);
  }
  ppRVar21 = (input_objects->relobj_list_).
             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_start;
  if (ppRVar21 !=
      (input_objects->relobj_list_).
      super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish) {
    do {
      pasd = (*ppRVar21)[4].map_to_relocatable_relocs_;
      if (pasd != (vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *)
                  0x0) {
        merge_object_attributes
                  (this,((*ppRVar21)->super_Object).name_._M_dataplus._M_p,
                   (Attributes_section_data *)pasd);
      }
      ppRVar21 = ppRVar21 + 1;
    } while ((input_objects->relobj_list_).
             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish !=
             ppRVar21);
  }
  ppDVar22 = (input_objects->dynobj_list_).
             super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>._M_impl._M_start;
  if (ppDVar22 !=
      (input_objects->dynobj_list_).
      super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>._M_impl._M_finish) {
    do {
      pAVar9 = *(Attributes_section_data **)((long)&(*ppDVar22)[1].soname_.field_2 + 8);
      if (pAVar9 != (Attributes_section_data *)0x0) {
        merge_object_attributes(this,((*ppDVar22)->super_Object).name_._M_dataplus._M_p,pAVar9);
      }
      ppDVar22 = ppDVar22 + 1;
    } while ((input_objects->dynobj_list_).
             super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>._M_impl._M_finish !=
             ppDVar22);
  }
  if ((this->attributes_section_data_ != (Attributes_section_data *)0x0) &&
     (sVar12 = gold::Attributes_section_data::size(this->attributes_section_data_), sVar12 != 0)) {
    posd = (Output_section_data *)operator_new(0x40);
    puVar1 = &(posd->super_Output_data).field_0x20;
    *puVar1 = *puVar1 & 0xe0;
    pAVar9 = this->attributes_section_data_;
    (posd->super_Output_data)._vptr_Output_data =
         (_func_int_varargs **)&PTR__Output_attributes_section_data_00670da0;
    (posd->super_Output_data).address_ = 0;
    (posd->super_Output_data).data_size_ = 0;
    (posd->super_Output_data).offset_ = -1;
    posd->output_section_ = (Output_section *)0x0;
    posd->addralign_ = 1;
    posd[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)pAVar9;
    gold::Layout::add_output_section_data
              (layout,".gnu.attributes",0x6ffffff5,0,posd,ORDER_INVALID,false);
    return;
  }
  return;
}



long FUN_0021f7f0(long param_1,long param_2,long *param_3,long param_4)

{
  ulong *puVar1;
  undefined8 uVar2;
  long lVar3;
  undefined8 *puVar4;
  long lVar5;
  ulong uVar6;
  ulong uVar7;
  uint uVar8;
  undefined8 extraout_RDX;
  ulong uVar9;
  long *plVar10;
  long lVar11;
  ulong uVar12;
  undefined8 uVar13;
  undefined8 in_stack_ffffffffffffff90;
  long *local_58;
  undefined8 uStack_50;
  undefined8 local_48;
  
  if (PTR_DAT_0067cb08[0x20] == '\0') {
LAB_00220139:
                    /* WARNING: Subroutine does not return */
    FUN_001dc9b0();
  }
  if (PTR_DAT_0067cb08[0x21] != '\0') {
    if (*(long *)(param_1 + 0x30) == 0) {
      FUN_00445d10(param_4,"__rela_iplt_start",0,5,0,0,0,1,2,0,1,0);
      in_stack_ffffffffffffff90 = 0;
      FUN_00445d10(param_4,"__rela_iplt_end",0,5,0,0,0,1,2,0,1);
    }
    else {
      uVar2 = *(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38);
      FUN_00445bb0(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1);
      FUN_00445bb0(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1);
    }
  }
  for (puVar4 = *(undefined8 **)(param_4 + 0x40); puVar4 != (undefined8 *)0x0;
      puVar4 = (undefined8 *)*puVar4) {
    lVar3 = puVar4[3];
    if (((((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&
         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)) &&
        ((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&
         (*(int *)(lVar5 + 0x224) != 0)))) && (*(int *)(lVar5 + 0x224) == *(int *)(lVar3 + 0x18))) {
      uVar9 = *(ulong *)(lVar3 + 0x40) >> 4;
      if ((ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4) <= uVar9) {
        FUN_001dc890();
        goto LAB_00220139;
      }
      if ((*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1) != 0) {
        in_stack_ffffffffffffff90 = 0x21fbbd;
        FUN_00443500(lVar3);
        *(undefined4 *)(lVar3 + 0x1c) = 0xffffffff;
        *(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000;
      }
    }
  }
  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;
  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x5051) == '\0') {
    puVar4 = (undefined8 *)FUN_0049cb60(0x40);
    puVar4[1] = 0;
    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;
    puVar4[2] = 0;
    puVar4[3] = 0xffffffffffffffff;
    puVar4[5] = 0;
    puVar4[6] = 4;
    *puVar4 = &PTR_FUN_00664fb8;
    puVar4[7] = 0;
                    /* try { // try from 0021fc56 to 0021fe51 has its CatchHandler @ 00220146 */
    FUN_001db270(puVar4,param_4,&DAT_0054cfeb,0xe,0x1f,FUN_001d8b40,FUN_001d8b60);
    FUN_001db270(puVar4,param_4,"_restgpr0_",0xe,0x1d,FUN_001d8b90,FUN_001d8bb0);
    FUN_001db270(puVar4,param_4,"_restgpr0_",0x1e,0x1f,FUN_001d8b90,FUN_001d8bb0);
    FUN_001db270(puVar4,param_4,"_savegpr1_",0xe,0x1f,FUN_001d8c10,FUN_001d8c30);
    FUN_001db270(puVar4,param_4,"_restgpr1_",0xe,0x1f,FUN_001d8c60,FUN_001d8c80);
    FUN_001db270(puVar4,param_4,"_savefpr_",0xe,0x1f,FUN_001d8cb0,FUN_001d8cd0);
    FUN_001db270(puVar4,param_4,"_restfpr_",0xe,0x1d,FUN_001d8d00,FUN_001d8d20);
    FUN_001db270(puVar4,param_4,"_restfpr_",0x1e,0x1f,FUN_001d8d00,FUN_001d8d20);
    FUN_001db270(puVar4,param_4,"._savef",0xe,0x1f,FUN_001d8cb0,FUN_001d8d80);
    FUN_001db270(puVar4,param_4,"._restf",0xe,0x1f,FUN_001d8d00,FUN_001d8db0);
    FUN_001db270(puVar4,param_4,"_savevr_",0x14,0x1f,FUN_001d8de0,FUN_001d8e10);
    uVar9 = 0;
    FUN_001db270(puVar4,param_4,"_restvr_",0x14,0x1f,FUN_001d8e40,FUN_001d8e70);
    *(undefined8 **)(param_1 + 0x140) = puVar4;
    FUN_003839a0(param_2,".text",1,6,puVar4,9,uVar9 & 0xffffffff00000000);
    FUN_001de660(param_1 + 0x20,param_4,param_2);
    in_stack_ffffffffffffff90 = 0x21fea3;
    FUN_001e1ee0(param_1,param_2);
    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;
    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841) != '\0') &&
       (lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28), lVar3 != 0)) {
      lVar5 = *(long *)(lVar3 + 0x90);
      lVar3 = *(long *)(lVar3 + 0x88);
      if (0x3f < (ulong)(lVar5 - lVar3)) {
        FUN_002297f0(&local_58,lVar3,lVar5);
        if (local_48 == 0) {
                    /* try { // try from 002200fa to 002200fe has its CatchHandler @ 0022013e */
          FUN_001f7950(lVar3,lVar5);
        }
        else {
                    /* try { // try from 0021ff1d to 0021ff21 has its CatchHandler @ 0022013e */
          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);
        }
        in_stack_ffffffffffffff90 = 0x21ff32;
        FUN_0049e310(local_48,&DAT_0058ad47);
      }
    }
  }
  lVar3 = *(long *)(param_2 + 0x300);
  if (lVar3 != 0) {
    uVar2 = 0;
    lVar5 = *(long *)(param_1 + 0x28);
    if (lVar5 != 0) {
      uVar2 = *(undefined8 *)(lVar5 + 0x38);
    }
    uVar13 = 0;
    FUN_0037e220(param_2,0,lVar5,uVar2,*(undefined8 *)(param_1 + 0x50),1);
    plVar10 = *(long **)(param_1 + 0x48);
    if (plVar10 != (long *)0x0) {
      if ((*(byte *)(plVar10 + 4) & 2) == 0) {
        (**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13);
        if ((*(byte *)(plVar10 + 4) & 2) == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");
        }
        plVar10 = *(long **)(param_1 + 0x48);
      }
      puVar4 = *(undefined8 **)(lVar3 + 0x40);
      local_48 = CONCAT44((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,
                          0x70000000);
      local_58 = plVar10;
      if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {
        FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);
      }
      else {
        *puVar4 = plVar10;
        puVar4[1] = uStack_50;
        puVar4[2] = local_48;
        *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;
      }
    }
    if (*(char *)(param_1 + 0x133) == '\0') {
      uVar8 = 0;
      if (*(byte *)(param_1 + 0x134) == 0) goto LAB_0021f9ad;
    }
    else {
      uVar8 = 4;
    }
    local_48 = -0x8ffffffd;
    puVar4 = *(undefined8 **)(lVar3 + 0x40);
    local_58 = (long *)CONCAT44(local_58._4_4_,*(byte *)(param_1 + 0x134) | uVar8);
    if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {
      FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);
    }
    else {
      *puVar4 = local_58;
      puVar4[1] = uStack_50;
      puVar4[2] = 0xffffffff70000003;
      *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;
    }
  }
LAB_0021f9ad:
  if (*(long *)(param_1 + 0x60) != *(long *)(param_1 + 0x58)) {
    uVar2 = FUN_001e1980(param_1 + 0x50,param_2);
    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {
LAB_00220104:
                    /* WARNING: Subroutine does not return */
      FUN_00352af0("../../gold/parameters.h",0x5c,"options");
    }
    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0') &&
       (plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60))) {
      do {
        if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&
           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&
            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {
          lVar5 = *(long *)(lVar3 + 0x248);
          lVar11 = *(long *)(lVar3 + 0x238);
          uVar9 = plVar10[5];
          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);
          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);
          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {
            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);
            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);
            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);
            lVar11 = *(long *)(lVar3 + 0x238);
            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);
            lVar5 = *(long *)(lVar3 + 0x248);
          }
          uVar7 = uVar9 >> 3;
          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {
            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);
            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);
          }
        }
        plVar10 = plVar10 + 7;
      } while (*(long **)(param_1 + 0x60) != plVar10);
    }
    FUN_0033bfa0(param_1 + 0x58,uVar2);
  }
  plVar10 = (long *)*param_3;
  if (plVar10 != (long *)param_3[1]) {
    do {
      if (*(long *)(*plVar10 + 0x308) != 0) {
        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));
      }
      plVar10 = plVar10 + 1;
    } while ((long *)param_3[1] != plVar10);
  }
  plVar10 = (long *)param_3[3];
  if (plVar10 != (long *)param_3[4]) {
    do {
      if (*(long *)(*plVar10 + 0xf8) != 0) {
        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));
      }
      plVar10 = plVar10 + 1;
    } while ((long *)param_3[4] != plVar10);
  }
  lVar3 = param_1;
  if ((*(long *)(param_1 + 0x158) != 0) && (lVar3 = FUN_00335c60(), lVar3 != 0)) {
    puVar4 = (undefined8 *)FUN_0049cb60(0x40);
    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;
    uVar2 = *(undefined8 *)(param_1 + 0x158);
    *puVar4 = &PTR_FUN_00670da0;
    puVar4[1] = 0;
    puVar4[2] = 0;
    puVar4[3] = 0xffffffffffffffff;
    puVar4[5] = 0;
    puVar4[6] = 1;
    puVar4[7] = uVar2;
    lVar3 = 0;
    FUN_003839a0(param_2,".gnu.attributes",0x6ffffff5,0,puVar4,0);
    return lVar3;
  }
  return lVar3;
}


PUSH RBP
MOV RBP,RSP
PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBX
SUB RSP,0x38
MOV RAX,qword ptr [0x0067cb08]
MOV qword ptr [RBP + -0x58],RDI
CMP byte ptr [RAX + 0x20],0x0
JZ 0x00220139
CMP byte ptr [RAX + 0x21],0x0
MOV R13,RSI
MOV R12,RDX
MOV R15,RCX
JNZ 0x0021faf0
MOV RBX,qword ptr [R15 + 0x40]
TEST RBX,RBX
JZ 0x0021f880
NOP word ptr [RAX + RAX*0x1]
MOV R14,qword ptr [RBX + 0x18]
MOV R9D,dword ptr [R14 + 0x1c]
TEST R9D,R9D
JNZ 0x0021f878
TEST byte ptr [R14 + 0x3a],0x7
JNZ 0x0021f878
TEST byte ptr [R14 + 0x3b],0x40
JZ 0x0021f878
MOV RAX,qword ptr [R14 + 0x10]
TEST byte ptr [RAX + 0x3c],0x1
JNZ 0x0021f878
MOV EDX,dword ptr [RAX + 0x224]
TEST EDX,EDX
JZ 0x0021f878
CMP EDX,dword ptr [R14 + 0x18]
JZ 0x0021fb80
NOP dword ptr [RAX]
MOV RBX,qword ptr [RBX]
TEST RBX,RBX
JNZ 0x0021f838
MOV RAX,qword ptr [0x0067cb08]
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x00220104
CMP byte ptr [RAX + 0x5051],0x0
JZ 0x0021fbe0
MOV RBX,qword ptr [R13 + 0x300]
TEST RBX,RBX
JZ 0x0021f9ad
MOV RAX,qword ptr [RBP + -0x58]
XOR ECX,ECX
MOV RDX,qword ptr [RAX + 0x28]
TEST RDX,RDX
JZ 0x0021f8c4
MOV RCX,qword ptr [RDX + 0x38]
SUB RSP,0x8
MOV R15,qword ptr [RBP + -0x58]
XOR ESI,ESI
MOV R9D,0x1
PUSH 0x0
MOV RDI,R13
MOV R8,qword ptr [R15 + 0x50]
CALL 0x0037e220
MOV R14,qword ptr [R15 + 0x48]
POP RCX
POP RSI
TEST R14,R14
JZ 0x0021f956
TEST byte ptr [R14 + 0x20],0x2
JNZ 0x0021f90c
MOV RAX,qword ptr [R14]
MOV RDI,R14
CALL qword ptr [RAX + 0x70]
TEST byte ptr [R14 + 0x20],0x2
JZ 0x0022011c
MOV R14,qword ptr [R15 + 0x48]
MOV RAX,qword ptr [R14 + 0x38]
MOV RSI,qword ptr [RBX + 0x40]
MOV EAX,dword ptr [RAX + 0x10]
MOV dword ptr [RBP + -0x40],0x70000000
MOV qword ptr [RBP + -0x50],R14
AND EAX,0x2
CMP EAX,0x1
SBB EAX,EAX
AND EAX,0xfffffff4
ADD EAX,0x20
MOV dword ptr [RBP + -0x3c],EAX
CMP RSI,qword ptr [RBX + 0x48]
JZ 0x00220092
MOVDQA XMM1,xmmword ptr [RBP + -0x50]
ADD RSI,0x18
MOVUPS xmmword ptr [RSI + -0x18],XMM1
MOV RAX,qword ptr [RBP + -0x40]
MOV qword ptr [RSI + -0x8],RAX
MOV qword ptr [RBX + 0x40],RSI
MOV RCX,qword ptr [RBP + -0x58]
CMP byte ptr [RCX + 0x133],0x0
MOVZX EAX,byte ptr [RCX + 0x134]
JZ 0x0021fb70
MOV EDX,0x4
MOV RCX,-0x8ffffffd
OR EAX,EDX
MOV qword ptr [RBP + -0x40],RCX
MOV RSI,qword ptr [RBX + 0x40]
MOV dword ptr [RBP + -0x50],EAX
CMP RSI,qword ptr [RBX + 0x48]
JZ 0x00220080
MOVDQA XMM0,xmmword ptr [RBP + -0x50]
ADD RSI,0x18
MOVUPS xmmword ptr [RSI + -0x18],XMM0
MOV RAX,qword ptr [RBP + -0x40]
MOV qword ptr [RSI + -0x8],RAX
MOV qword ptr [RBX + 0x40],RSI
MOV RAX,qword ptr [RBP + -0x58]
MOV RCX,qword ptr [RAX + 0x58]
CMP qword ptr [RAX + 0x60],RCX
JZ 0x0021fa4e
LEA RDI,[RAX + 0x50]
MOV RSI,R13
CALL 0x001e1980
MOV R15,RAX
MOV RAX,qword ptr [0x0067cb08]
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x00220104
CMP byte ptr [RAX + 0x6779],0x0
JZ 0x0021fa3e
MOV RAX,qword ptr [RBP + -0x58]
MOV RBX,qword ptr [RAX + 0x58]
CMP RBX,qword ptr [RAX + 0x60]
JZ 0x0021fa3e
MOV R8D,0x1
NOP
MOV RAX,qword ptr [RBX]
TEST byte ptr [RAX + 0x3a],0x7
JNZ 0x0021fa30
MOV RAX,qword ptr [RAX + 0x10]
TEST byte ptr [RAX + 0x3c],0x1
JZ 0x0021fa30
MOV R14,qword ptr [RBX + 0x10]
MOV ESI,dword ptr [R14 + 0x22c]
CMP dword ptr [RBX + 0x18],ESI
JZ 0x00220028
NOP word ptr [RAX + RAX*0x1]
MOV RAX,qword ptr [RBP + -0x58]
ADD RBX,0x38
CMP qword ptr [RAX + 0x60],RBX
JNZ 0x0021fa00
MOV RAX,qword ptr [RBP + -0x58]
MOV RSI,R15
LEA RDI,[RAX + 0x58]
CALL 0x0033bfa0
MOV RBX,qword ptr [R12]
CMP RBX,qword ptr [R12 + 0x8]
JZ 0x0021fa87
NOP dword ptr [RAX]
MOV RAX,qword ptr [RBX]
MOV RDX,qword ptr [RAX + 0x308]
TEST RDX,RDX
JZ 0x0021fa7c
MOV RSI,qword ptr [RAX + 0x8]
MOV RDI,qword ptr [RBP + -0x58]
CALL 0x001db670
ADD RBX,0x8
CMP qword ptr [R12 + 0x8],RBX
JNZ 0x0021fa60
MOV RBX,qword ptr [R12 + 0x18]
CMP RBX,qword ptr [R12 + 0x20]
JZ 0x0021fabf
NOP dword ptr [RAX + RAX*0x1]
MOV RAX,qword ptr [RBX]
MOV RDX,qword ptr [RAX + 0xf8]
TEST RDX,RDX
JZ 0x0021fab4
MOV RSI,qword ptr [RAX + 0x8]
MOV RDI,qword ptr [RBP + -0x58]
CALL 0x001db670
ADD RBX,0x8
CMP qword ptr [R12 + 0x20],RBX
JNZ 0x0021fa98
MOV RAX,qword ptr [RBP + -0x58]
MOV RDI,qword ptr [RAX + 0x158]
TEST RDI,RDI
JZ 0x0021fadd
CALL 0x00335c60
TEST RAX,RAX
JNZ 0x0021ff40
LEA RSP,[RBP + -0x28]
POP RBX
POP R12
POP R13
POP R14
POP R15
POP RBP
RET
MOV RAX,qword ptr [RBP + -0x58]
MOV RAX,qword ptr [RAX + 0x30]
TEST RAX,RAX
JZ 0x0021ffc8
SUB RSP,0x8
MOV RBX,qword ptr [RAX + 0x38]
XOR R9D,R9D
MOV ECX,0x5
PUSH 0x1
XOR EDX,EDX
LEA RSI,[0x5361b7]
MOV RDI,R15
PUSH 0x0
MOV R8,RBX
PUSH 0x0
PUSH 0x2
PUSH 0x1
PUSH 0x0
PUSH 0x0
CALL 0x00445bb0
ADD RSP,0x38
XOR R9D,R9D
MOV R8,RBX
PUSH 0x1
MOV ECX,0x5
XOR EDX,EDX
LEA RSI,[0x5361c9]
PUSH 0x1
MOV RDI,R15
PUSH 0x0
PUSH 0x2
PUSH 0x1
PUSH 0x0
PUSH 0x0
CALL 0x00445bb0
ADD RSP,0x40
JMP 0x0021f829
XOR EDX,EDX
TEST AL,AL
JNZ 0x0021f973
JMP 0x0021f9ad
MOV RCX,qword ptr [RAX + 0x260]
MOV RAX,qword ptr [RAX + 0x268]
MOV RDX,qword ptr [R14 + 0x40]
SUB RAX,RCX
SHR RDX,0x4
SAR RAX,0x4
CMP RDX,RAX
JNC 0x00220134
SHL RDX,0x4
TEST byte ptr [RCX + RDX*0x1 + 0x4],0x1
JZ 0x0021f878
MOV RDI,R14
CALL 0x00443500
MOV EAX,dword ptr [R14 + 0x38]
MOV dword ptr [R14 + 0x1c],0xffffffff
AND EAX,0x7ffffcff
OR EAX,0x80000000
MOV dword ptr [R14 + 0x38],EAX
JMP 0x0021f878
MOV EDI,0x40
CALL 0x0049cb60
SUB RSP,0x8
MOV R8D,0x1f
MOV RSI,R15
MOV RBX,RAX
MOV qword ptr [RAX + 0x8],0x0
LEA R9,[0x1d8b40]
MOV ECX,0xe
AND byte ptr [RAX + 0x20],0xe0
LEA RDX,[0x54cfeb]
MOV RDI,RBX
MOV qword ptr [RAX + 0x10],0x0
MOV qword ptr [RAX + 0x18],-0x1
MOV qword ptr [RAX + 0x28],0x0
MOV qword ptr [RAX + 0x30],0x4
LEA RAX,[0x664fb8]
MOV qword ptr [RBX],RAX
LEA RAX,[0x1d8b60]
MOV qword ptr [RBX + 0x38],0x0
PUSH RAX
CALL 0x001db270
LEA R14,[0x1d8bb0]
MOV ECX,0xe
MOV RSI,R15
MOV RDI,RBX
LEA R9,[0x1d8b90]
MOV R8D,0x1d
LEA RDX,[0x54cff6]
MOV qword ptr [RSP],R14
CALL 0x001db270
MOV R8D,0x1f
MOV RSI,R15
MOV RDI,RBX
MOV qword ptr [RSP],R14
LEA R9,[0x1d8b90]
MOV ECX,0x1e
LEA RDX,[0x54cff6]
CALL 0x001db270
LEA RAX,[0x1d8c30]
MOV ECX,0xe
MOV RSI,R15
MOV RDI,RBX
LEA R9,[0x1d8c10]
MOV R8D,0x1f
LEA RDX,[0x54d001]
MOV qword ptr [RSP],RAX
CALL 0x001db270
LEA RAX,[0x1d8c80]
MOV ECX,0xe
MOV RSI,R15
MOV RDI,RBX
LEA R9,[0x1d8c60]
MOV R8D,0x1f
LEA RDX,[0x54d00c]
MOV qword ptr [RSP],RAX
CALL 0x001db270
LEA RAX,[0x1d8cd0]
MOV ECX,0xe
MOV RSI,R15
MOV RDI,RBX
LEA R9,[0x1d8cb0]
MOV R8D,0x1f
LEA RDX,[0x54d017]
MOV qword ptr [RSP],RAX
CALL 0x001db270
LEA R14,[0x1d8d20]
MOV ECX,0xe
MOV RSI,R15
MOV RDI,RBX
LEA R9,[0x1d8d00]
MOV R8D,0x1d
LEA RDX,[0x54d021]
MOV qword ptr [RSP],R14
CALL 0x001db270
MOV R8D,0x1f
MOV RSI,R15
MOV RDI,RBX
MOV qword ptr [RSP],R14
LEA R9,[0x1d8d00]
MOV ECX,0x1e
LEA RDX,[0x54d021]
CALL 0x001db270
LEA RAX,[0x1d8d80]
MOV ECX,0xe
MOV RSI,R15
MOV RDI,RBX
LEA R9,[0x1d8cb0]
MOV R8D,0x1f
LEA RDX,[0x54d02b]
MOV qword ptr [RSP],RAX
CALL 0x001db270
LEA RAX,[0x1d8db0]
MOV ECX,0xe
MOV RSI,R15
MOV RDI,RBX
LEA R9,[0x1d8d00]
MOV R8D,0x1f
LEA RDX,[0x54d033]
MOV qword ptr [RSP],RAX
CALL 0x001db270
LEA RAX,[0x1d8e10]
MOV ECX,0x14
MOV RSI,R15
MOV RDI,RBX
LEA R9,[0x1d8de0]
MOV R8D,0x1f
LEA RDX,[0x54d03b]
MOV qword ptr [RSP],RAX
CALL 0x001db270
LEA RAX,[0x1d8e70]
MOV ECX,0x14
MOV RSI,R15
MOV RDI,RBX
LEA R9,[0x1d8e40]
MOV R8D,0x1f
LEA RDX,[0x54d044]
MOV qword ptr [RSP],RAX
CALL 0x001db270
MOV R14,qword ptr [RBP + -0x58]
MOV R9D,0x9
MOV R8,RBX
MOV RDI,R13
MOV ECX,0x6
MOV EDX,0x1
LEA RSI,[0x5335c9]
MOV qword ptr [R14 + 0x140],RBX
MOV dword ptr [RSP],0x0
CALL 0x003839a0
POP RDI
MOV RDX,R13
POP R8
LEA RDI,[R14 + 0x20]
MOV RSI,R15
CALL 0x001de660
MOV RSI,R13
MOV RDI,R14
CALL 0x001e1ee0
MOV RAX,qword ptr [0x0067cb08]
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x00220104
CMP byte ptr [RAX + 0x6841],0x0
JZ 0x0021f8a1
MOV RAX,qword ptr [RBP + -0x58]
MOV RAX,qword ptr [RAX + 0x20]
MOV RAX,qword ptr [RAX + 0x28]
TEST RAX,RAX
JZ 0x0021f8a1
MOV R14,qword ptr [RAX + 0x90]
MOV RBX,qword ptr [RAX + 0x88]
MOV RAX,R14
SUB RAX,RBX
CMP RAX,0x3f
JBE 0x0021f8a1
MOV RDX,R14
LEA RDI,[RBP + -0x50]
MOV RSI,RBX
CALL 0x002297f0
MOV RDX,qword ptr [RBP + -0x40]
TEST RDX,RDX
JZ 0x002200f4
MOV RCX,qword ptr [RBP + -0x48]
MOV RSI,R14
MOV RDI,RBX
CALL 0x001f80c0
MOV RDI,qword ptr [RBP + -0x40]
LEA RSI,[0x58ad47]
CALL 0x0049e310
JMP 0x0021f8a1
MOV EDI,0x40
CALL 0x0049cb60
SUB RSP,0x8
MOV RDI,R13
XOR R9D,R9D
MOV R8,RAX
MOV RAX,qword ptr [RBP + -0x58]
LEA RCX,[0x670da0]
MOV EDX,0x6ffffff5
AND byte ptr [R8 + 0x20],0xe0
LEA RSI,[0x54cf3a]
MOV RAX,qword ptr [RAX + 0x158]
MOV qword ptr [R8],RCX
XOR ECX,ECX
MOV qword ptr [R8 + 0x8],0x0
MOV qword ptr [R8 + 0x10],0x0
MOV qword ptr [R8 + 0x18],-0x1
MOV qword ptr [R8 + 0x28],0x0
MOV qword ptr [R8 + 0x30],0x1
MOV qword ptr [R8 + 0x38],RAX
PUSH 0x0
CALL 0x003839a0
POP RAX
POP RDX
LEA RSP,[RBP + -0x28]
POP RBX
POP R12
POP R13
POP R14
POP R15
POP RBP
RET
PUSH 0x0
XOR R9D,R9D
XOR R8D,R8D
MOV ECX,0x5
PUSH 0x1
XOR EDX,EDX
LEA RSI,[0x5361b7]
MOV RDI,R15
PUSH 0x0
PUSH 0x2
PUSH 0x1
PUSH 0x0
CALL 0x00445d10
ADD RSP,0x30
XOR R9D,R9D
XOR R8D,R8D
PUSH 0x0
MOV ECX,0x5
XOR EDX,EDX
LEA RSI,[0x5361c9]
PUSH 0x1
MOV RDI,R15
PUSH 0x0
PUSH 0x2
PUSH 0x1
PUSH 0x0
CALL 0x00445d10
ADD RSP,0x30
JMP 0x0021f829
MOV RAX,qword ptr [R14 + 0x248]
MOV RDI,qword ptr [R14 + 0x238]
MOV R9,qword ptr [RBX + 0x28]
MOV R10D,dword ptr [R14 + 0x250]
MOV EDX,dword ptr [R14 + 0x240]
CMP RAX,RDI
JNZ 0x00220052
CMP R10D,EDX
JZ 0x002200a4
SUB RAX,RDI
MOV RCX,R9
LEA RAX,[R10 + RAX*0x8]
SHR RCX,0x3
SUB RAX,RDX
CMP RCX,RAX
JNC 0x0021fa30
SHR R9,0x9
MOV RAX,R8
SHL RAX,CL
OR qword ptr [RDI + R9*0x8],RAX
JMP 0x0021fa30
LEA RDX,[RBP + -0x50]
LEA RDI,[RBX + 0x38]
CALL 0x001c1130
JMP 0x0021f9ad
LEA RDX,[RBP + -0x50]
LEA RDI,[RBX + 0x38]
CALL 0x001c1130
JMP 0x0021f956
LEA RDI,[R14 + 0xf8]
MOV qword ptr [RBP + -0x60],R9
CALL 0x0022d9f0
LEA RDI,[R14 + 0x238]
XOR EDX,EDX
SHR RAX,0x3
MOV RSI,RAX
CALL 0x0022a2b0
MOV EDX,dword ptr [R14 + 0x240]
MOV R9,qword ptr [RBP + -0x60]
MOV R8D,0x1
MOV RDI,qword ptr [R14 + 0x238]
MOV R10D,dword ptr [R14 + 0x250]
MOV RAX,qword ptr [R14 + 0x248]
JMP 0x00220052
MOV RSI,R14
MOV RDI,RBX
CALL 0x001f7950
JMP 0x0021ff22
LEA RDX,[0x54c348]
MOV ESI,0x5c
LEA RDI,[0x52e279]
CALL 0x00352af0
LEA RDX,[0x54ba50]
MOV ESI,0x163
LEA RDI,[0x533384]
CALL 0x00352af0
CALL 0x001dc890
CALL 0x001dc9b0
(translation_unit "long FUN_0021f7f0(long param_1,long param_2,long *param_3,long param_4)\n\n{\n  ulong *puVar1;\n  undefined8 uVar2;\n  long lVar3;\n  undefined8 *puVar4;\n  long lVar5;\n  ulong uVar6;\n  ulong uVar7;\n  uint uVar8;\n  undefined8 extraout_RDX;\n  ulong uVar9;\n  long *plVar10;\n  long lVar11;\n  ulong uVar12;\n  undefined8 uVar13;\n  undefined8 in_stack_ffffffffffffff90;\n  long *local_58;\n  undefined8 uStack_50;\n  undefined8 local_48;\n  \n  if (PTR_DAT_0067cb08[0x20] == '\0') {\nLAB_00220139:\n                    /* WARNING: Subroutine does not return */\n    FUN_001dc9b0();\n  }\n  if (PTR_DAT_0067cb08[0x21] != '\0') {\n    if (*(long *)(param_1 + 0x30) == 0) {\n      FUN_00445d10(param_4,"__rela_iplt_start",0,5,0,0,0,1,2,0,1,0);\n      in_stack_ffffffffffffff90 = 0;\n      FUN_00445d10(param_4,"__rela_iplt_end",0,5,0,0,0,1,2,0,1);\n    }\n    else {\n      uVar2 = *(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38);\n      FUN_00445bb0(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1);\n      FUN_00445bb0(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1);\n    }\n  }\n  for (puVar4 = *(undefined8 **)(param_4 + 0x40); puVar4 != (undefined8 *)0x0;\n      puVar4 = (undefined8 *)*puVar4) {\n    lVar3 = puVar4[3];\n    if (((((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)) &&\n        ((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)))) && (*(int *)(lVar5 + 0x224) == *(int *)(lVar3 + 0x18))) {\n      uVar9 = *(ulong *)(lVar3 + 0x40) >> 4;\n      if ((ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4) <= uVar9) {\n        FUN_001dc890();\n        goto LAB_00220139;\n      }\n      if ((*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1) != 0) {\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        FUN_00443500(lVar3);\n        *(undefined4 *)(lVar3 + 0x1c) = 0xffffffff;\n        *(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000;\n      }\n    }\n  }\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;\n  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x5051) == '\0') {\n    puVar4 = (undefined8 *)FUN_0049cb60(0x40);\n    puVar4[1] = 0;\n    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n    puVar4[2] = 0;\n    puVar4[3] = 0xffffffffffffffff;\n    puVar4[5] = 0;\n    puVar4[6] = 4;\n    *puVar4 = &PTR_FUN_00664fb8;\n    puVar4[7] = 0;\n                    /* try { // try from 0021fc56 to 0021fe51 has its CatchHandler @ 00220146 */\n    FUN_001db270(puVar4,param_4,&DAT_0054cfeb,0xe,0x1f,FUN_001d8b40,FUN_001d8b60);\n    FUN_001db270(puVar4,param_4,"_restgpr0_",0xe,0x1d,FUN_001d8b90,FUN_001d8bb0);\n    FUN_001db270(puVar4,param_4,"_restgpr0_",0x1e,0x1f,FUN_001d8b90,FUN_001d8bb0);\n    FUN_001db270(puVar4,param_4,"_savegpr1_",0xe,0x1f,FUN_001d8c10,FUN_001d8c30);\n    FUN_001db270(puVar4,param_4,"_restgpr1_",0xe,0x1f,FUN_001d8c60,FUN_001d8c80);\n    FUN_001db270(puVar4,param_4,"_savefpr_",0xe,0x1f,FUN_001d8cb0,FUN_001d8cd0);\n    FUN_001db270(puVar4,param_4,"_restfpr_",0xe,0x1d,FUN_001d8d00,FUN_001d8d20);\n    FUN_001db270(puVar4,param_4,"_restfpr_",0x1e,0x1f,FUN_001d8d00,FUN_001d8d20);\n    FUN_001db270(puVar4,param_4,"._savef",0xe,0x1f,FUN_001d8cb0,FUN_001d8d80);\n    FUN_001db270(puVar4,param_4,"._restf",0xe,0x1f,FUN_001d8d00,FUN_001d8db0);\n    FUN_001db270(puVar4,param_4,"_savevr_",0x14,0x1f,FUN_001d8de0,FUN_001d8e10);\n    uVar9 = 0;\n    FUN_001db270(puVar4,param_4,"_restvr_",0x14,0x1f,FUN_001d8e40,FUN_001d8e70);\n    *(undefined8 **)(param_1 + 0x140) = puVar4;\n    FUN_003839a0(param_2,".text",1,6,puVar4,9,uVar9 & 0xffffffff00000000);\n    FUN_001de660(param_1 + 0x20,param_4,param_2);\n    in_stack_ffffffffffffff90 = 0x21fea3;\n    FUN_001e1ee0(param_1,param_2);\n    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;\n    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841) != '\0') &&\n       (lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28), lVar3 != 0)) {\n      lVar5 = *(long *)(lVar3 + 0x90);\n      lVar3 = *(long *)(lVar3 + 0x88);\n      if (0x3f < (ulong)(lVar5 - lVar3)) {\n        FUN_002297f0(&local_58,lVar3,lVar5);\n        if (local_48 == 0) {\n                    /* try { // try from 002200fa to 002200fe has its CatchHandler @ 0022013e */\n          FUN_001f7950(lVar3,lVar5);\n        }\n        else {\n                    /* try { // try from 0021ff1d to 0021ff21 has its CatchHandler @ 0022013e */\n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        FUN_0049e310(local_48,&DAT_0058ad47);\n      }\n    }\n  }\n  lVar3 = *(long *)(param_2 + 0x300);\n  if (lVar3 != 0) {\n    uVar2 = 0;\n    lVar5 = *(long *)(param_1 + 0x28);\n    if (lVar5 != 0) {\n      uVar2 = *(undefined8 *)(lVar5 + 0x38);\n    }\n    uVar13 = 0;\n    FUN_0037e220(param_2,0,lVar5,uVar2,*(undefined8 *)(param_1 + 0x50),1);\n    plVar10 = *(long **)(param_1 + 0x48);\n    if (plVar10 != (long *)0x0) {\n      if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n        (**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13);\n        if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        plVar10 = *(long **)(param_1 + 0x48);\n      }\n      puVar4 = *(undefined8 **)(lVar3 + 0x40);\n      local_48 = CONCAT44((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000);\n      local_58 = plVar10;\n      if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n        FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n      }\n      else {\n        *puVar4 = plVar10;\n        puVar4[1] = uStack_50;\n        puVar4[2] = local_48;\n        *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n      }\n    }\n    if (*(char *)(param_1 + 0x133) == '\0') {\n      uVar8 = 0;\n      if (*(byte *)(param_1 + 0x134) == 0) goto LAB_0021f9ad;\n    }\n    else {\n      uVar8 = 4;\n    }\n    local_48 = -0x8ffffffd;\n    puVar4 = *(undefined8 **)(lVar3 + 0x40);\n    local_58 = (long *)CONCAT44(local_58._4_4_,*(byte *)(param_1 + 0x134) | uVar8);\n    if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n      FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n    }\n    else {\n      *puVar4 = local_58;\n      puVar4[1] = uStack_50;\n      puVar4[2] = 0xffffffff70000003;\n      *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n    }\n  }\nLAB_0021f9ad:\n  if (*(long *)(param_1 + 0x60) != *(long *)(param_1 + 0x58)) {\n    uVar2 = FUN_001e1980(param_1 + 0x50,param_2);\n    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\nLAB_00220104:\n                    /* WARNING: Subroutine does not return */\n      FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n    }\n    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0') &&\n       (plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60))) {\n      do {\n        if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }\n        plVar10 = plVar10 + 7;\n      } while (*(long **)(param_1 + 0x60) != plVar10);\n    }\n    FUN_0033bfa0(param_1 + 0x58,uVar2);\n  }\n  plVar10 = (long *)*param_3;\n  if (plVar10 != (long *)param_3[1]) {\n    do {\n      if (*(long *)(*plVar10 + 0x308) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[1] != plVar10);\n  }\n  plVar10 = (long *)param_3[3];\n  if (plVar10 != (long *)param_3[4]) {\n    do {\n      if (*(long *)(*plVar10 + 0xf8) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[4] != plVar10);\n  }\n  lVar3 = param_1;\n  if ((*(long *)(param_1 + 0x158) != 0) && (lVar3 = FUN_00335c60(), lVar3 != 0)) {\n    puVar4 = (undefined8 *)FUN_0049cb60(0x40);\n    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n    uVar2 = *(undefined8 *)(param_1 + 0x158);\n    *puVar4 = &PTR_FUN_00670da0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0xffffffffffffffff;\n    puVar4[5] = 0;\n    puVar4[6] = 1;\n    puVar4[7] = uVar2;\n    lVar3 = 0;\n    FUN_003839a0(param_2,".gnu.attributes",0x6ffffff5,0,puVar4,0);\n    return lVar3;\n  }\n  return lVar3;\n}\n\n" (function_definition "long FUN_0021f7f0(long param_1,long param_2,long *param_3,long param_4)\n\n{\n  ulong *puVar1;\n  undefined8 uVar2;\n  long lVar3;\n  undefined8 *puVar4;\n  long lVar5;\n  ulong uVar6;\n  ulong uVar7;\n  uint uVar8;\n  undefined8 extraout_RDX;\n  ulong uVar9;\n  long *plVar10;\n  long lVar11;\n  ulong uVar12;\n  undefined8 uVar13;\n  undefined8 in_stack_ffffffffffffff90;\n  long *local_58;\n  undefined8 uStack_50;\n  undefined8 local_48;\n  \n  if (PTR_DAT_0067cb08[0x20] == '\0') {\nLAB_00220139:\n                    /* WARNING: Subroutine does not return */\n    FUN_001dc9b0();\n  }\n  if (PTR_DAT_0067cb08[0x21] != '\0') {\n    if (*(long *)(param_1 + 0x30) == 0) {\n      FUN_00445d10(param_4,"__rela_iplt_start",0,5,0,0,0,1,2,0,1,0);\n      in_stack_ffffffffffffff90 = 0;\n      FUN_00445d10(param_4,"__rela_iplt_end",0,5,0,0,0,1,2,0,1);\n    }\n    else {\n      uVar2 = *(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38);\n      FUN_00445bb0(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1);\n      FUN_00445bb0(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1);\n    }\n  }\n  for (puVar4 = *(undefined8 **)(param_4 + 0x40); puVar4 != (undefined8 *)0x0;\n      puVar4 = (undefined8 *)*puVar4) {\n    lVar3 = puVar4[3];\n    if (((((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)) &&\n        ((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)))) && (*(int *)(lVar5 + 0x224) == *(int *)(lVar3 + 0x18))) {\n      uVar9 = *(ulong *)(lVar3 + 0x40) >> 4;\n      if ((ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4) <= uVar9) {\n        FUN_001dc890();\n        goto LAB_00220139;\n      }\n      if ((*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1) != 0) {\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        FUN_00443500(lVar3);\n        *(undefined4 *)(lVar3 + 0x1c) = 0xffffffff;\n        *(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000;\n      }\n    }\n  }\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;\n  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x5051) == '\0') {\n    puVar4 = (undefined8 *)FUN_0049cb60(0x40);\n    puVar4[1] = 0;\n    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n    puVar4[2] = 0;\n    puVar4[3] = 0xffffffffffffffff;\n    puVar4[5] = 0;\n    puVar4[6] = 4;\n    *puVar4 = &PTR_FUN_00664fb8;\n    puVar4[7] = 0;\n                    /* try { // try from 0021fc56 to 0021fe51 has its CatchHandler @ 00220146 */\n    FUN_001db270(puVar4,param_4,&DAT_0054cfeb,0xe,0x1f,FUN_001d8b40,FUN_001d8b60);\n    FUN_001db270(puVar4,param_4,"_restgpr0_",0xe,0x1d,FUN_001d8b90,FUN_001d8bb0);\n    FUN_001db270(puVar4,param_4,"_restgpr0_",0x1e,0x1f,FUN_001d8b90,FUN_001d8bb0);\n    FUN_001db270(puVar4,param_4,"_savegpr1_",0xe,0x1f,FUN_001d8c10,FUN_001d8c30);\n    FUN_001db270(puVar4,param_4,"_restgpr1_",0xe,0x1f,FUN_001d8c60,FUN_001d8c80);\n    FUN_001db270(puVar4,param_4,"_savefpr_",0xe,0x1f,FUN_001d8cb0,FUN_001d8cd0);\n    FUN_001db270(puVar4,param_4,"_restfpr_",0xe,0x1d,FUN_001d8d00,FUN_001d8d20);\n    FUN_001db270(puVar4,param_4,"_restfpr_",0x1e,0x1f,FUN_001d8d00,FUN_001d8d20);\n    FUN_001db270(puVar4,param_4,"._savef",0xe,0x1f,FUN_001d8cb0,FUN_001d8d80);\n    FUN_001db270(puVar4,param_4,"._restf",0xe,0x1f,FUN_001d8d00,FUN_001d8db0);\n    FUN_001db270(puVar4,param_4,"_savevr_",0x14,0x1f,FUN_001d8de0,FUN_001d8e10);\n    uVar9 = 0;\n    FUN_001db270(puVar4,param_4,"_restvr_",0x14,0x1f,FUN_001d8e40,FUN_001d8e70);\n    *(undefined8 **)(param_1 + 0x140) = puVar4;\n    FUN_003839a0(param_2,".text",1,6,puVar4,9,uVar9 & 0xffffffff00000000);\n    FUN_001de660(param_1 + 0x20,param_4,param_2);\n    in_stack_ffffffffffffff90 = 0x21fea3;\n    FUN_001e1ee0(param_1,param_2);\n    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;\n    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841) != '\0') &&\n       (lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28), lVar3 != 0)) {\n      lVar5 = *(long *)(lVar3 + 0x90);\n      lVar3 = *(long *)(lVar3 + 0x88);\n      if (0x3f < (ulong)(lVar5 - lVar3)) {\n        FUN_002297f0(&local_58,lVar3,lVar5);\n        if (local_48 == 0) {\n                    /* try { // try from 002200fa to 002200fe has its CatchHandler @ 0022013e */\n          FUN_001f7950(lVar3,lVar5);\n        }\n        else {\n                    /* try { // try from 0021ff1d to 0021ff21 has its CatchHandler @ 0022013e */\n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        FUN_0049e310(local_48,&DAT_0058ad47);\n      }\n    }\n  }\n  lVar3 = *(long *)(param_2 + 0x300);\n  if (lVar3 != 0) {\n    uVar2 = 0;\n    lVar5 = *(long *)(param_1 + 0x28);\n    if (lVar5 != 0) {\n      uVar2 = *(undefined8 *)(lVar5 + 0x38);\n    }\n    uVar13 = 0;\n    FUN_0037e220(param_2,0,lVar5,uVar2,*(undefined8 *)(param_1 + 0x50),1);\n    plVar10 = *(long **)(param_1 + 0x48);\n    if (plVar10 != (long *)0x0) {\n      if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n        (**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13);\n        if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        plVar10 = *(long **)(param_1 + 0x48);\n      }\n      puVar4 = *(undefined8 **)(lVar3 + 0x40);\n      local_48 = CONCAT44((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000);\n      local_58 = plVar10;\n      if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n        FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n      }\n      else {\n        *puVar4 = plVar10;\n        puVar4[1] = uStack_50;\n        puVar4[2] = local_48;\n        *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n      }\n    }\n    if (*(char *)(param_1 + 0x133) == '\0') {\n      uVar8 = 0;\n      if (*(byte *)(param_1 + 0x134) == 0) goto LAB_0021f9ad;\n    }\n    else {\n      uVar8 = 4;\n    }\n    local_48 = -0x8ffffffd;\n    puVar4 = *(undefined8 **)(lVar3 + 0x40);\n    local_58 = (long *)CONCAT44(local_58._4_4_,*(byte *)(param_1 + 0x134) | uVar8);\n    if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n      FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n    }\n    else {\n      *puVar4 = local_58;\n      puVar4[1] = uStack_50;\n      puVar4[2] = 0xffffffff70000003;\n      *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n    }\n  }\nLAB_0021f9ad:\n  if (*(long *)(param_1 + 0x60) != *(long *)(param_1 + 0x58)) {\n    uVar2 = FUN_001e1980(param_1 + 0x50,param_2);\n    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\nLAB_00220104:\n                    /* WARNING: Subroutine does not return */\n      FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n    }\n    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0') &&\n       (plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60))) {\n      do {\n        if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }\n        plVar10 = plVar10 + 7;\n      } while (*(long **)(param_1 + 0x60) != plVar10);\n    }\n    FUN_0033bfa0(param_1 + 0x58,uVar2);\n  }\n  plVar10 = (long *)*param_3;\n  if (plVar10 != (long *)param_3[1]) {\n    do {\n      if (*(long *)(*plVar10 + 0x308) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[1] != plVar10);\n  }\n  plVar10 = (long *)param_3[3];\n  if (plVar10 != (long *)param_3[4]) {\n    do {\n      if (*(long *)(*plVar10 + 0xf8) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[4] != plVar10);\n  }\n  lVar3 = param_1;\n  if ((*(long *)(param_1 + 0x158) != 0) && (lVar3 = FUN_00335c60(), lVar3 != 0)) {\n    puVar4 = (undefined8 *)FUN_0049cb60(0x40);\n    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n    uVar2 = *(undefined8 *)(param_1 + 0x158);\n    *puVar4 = &PTR_FUN_00670da0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0xffffffffffffffff;\n    puVar4[5] = 0;\n    puVar4[6] = 1;\n    puVar4[7] = uVar2;\n    lVar3 = 0;\n    FUN_003839a0(param_2,".gnu.attributes",0x6ffffff5,0,puVar4,0);\n    return lVar3;\n  }\n  return lVar3;\n}" (sized_type_specifier "long" long) (function_declarator "FUN_0021f7f0(long param_1,long param_2,long *param_3,long param_4)" identifier (parameter_list "(long param_1,long param_2,long *param_3,long param_4)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long *param_3" (sized_type_specifier "long" long) (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  ulong *puVar1;\n  undefined8 uVar2;\n  long lVar3;\n  undefined8 *puVar4;\n  long lVar5;\n  ulong uVar6;\n  ulong uVar7;\n  uint uVar8;\n  undefined8 extraout_RDX;\n  ulong uVar9;\n  long *plVar10;\n  long lVar11;\n  ulong uVar12;\n  undefined8 uVar13;\n  undefined8 in_stack_ffffffffffffff90;\n  long *local_58;\n  undefined8 uStack_50;\n  undefined8 local_48;\n  \n  if (PTR_DAT_0067cb08[0x20] == '\0') {\nLAB_00220139:\n                    /* WARNING: Subroutine does not return */\n    FUN_001dc9b0();\n  }\n  if (PTR_DAT_0067cb08[0x21] != '\0') {\n    if (*(long *)(param_1 + 0x30) == 0) {\n      FUN_00445d10(param_4,"__rela_iplt_start",0,5,0,0,0,1,2,0,1,0);\n      in_stack_ffffffffffffff90 = 0;\n      FUN_00445d10(param_4,"__rela_iplt_end",0,5,0,0,0,1,2,0,1);\n    }\n    else {\n      uVar2 = *(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38);\n      FUN_00445bb0(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1);\n      FUN_00445bb0(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1);\n    }\n  }\n  for (puVar4 = *(undefined8 **)(param_4 + 0x40); puVar4 != (undefined8 *)0x0;\n      puVar4 = (undefined8 *)*puVar4) {\n    lVar3 = puVar4[3];\n    if (((((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)) &&\n        ((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)))) && (*(int *)(lVar5 + 0x224) == *(int *)(lVar3 + 0x18))) {\n      uVar9 = *(ulong *)(lVar3 + 0x40) >> 4;\n      if ((ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4) <= uVar9) {\n        FUN_001dc890();\n        goto LAB_00220139;\n      }\n      if ((*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1) != 0) {\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        FUN_00443500(lVar3);\n        *(undefined4 *)(lVar3 + 0x1c) = 0xffffffff;\n        *(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000;\n      }\n    }\n  }\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;\n  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x5051) == '\0') {\n    puVar4 = (undefined8 *)FUN_0049cb60(0x40);\n    puVar4[1] = 0;\n    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n    puVar4[2] = 0;\n    puVar4[3] = 0xffffffffffffffff;\n    puVar4[5] = 0;\n    puVar4[6] = 4;\n    *puVar4 = &PTR_FUN_00664fb8;\n    puVar4[7] = 0;\n                    /* try { // try from 0021fc56 to 0021fe51 has its CatchHandler @ 00220146 */\n    FUN_001db270(puVar4,param_4,&DAT_0054cfeb,0xe,0x1f,FUN_001d8b40,FUN_001d8b60);\n    FUN_001db270(puVar4,param_4,"_restgpr0_",0xe,0x1d,FUN_001d8b90,FUN_001d8bb0);\n    FUN_001db270(puVar4,param_4,"_restgpr0_",0x1e,0x1f,FUN_001d8b90,FUN_001d8bb0);\n    FUN_001db270(puVar4,param_4,"_savegpr1_",0xe,0x1f,FUN_001d8c10,FUN_001d8c30);\n    FUN_001db270(puVar4,param_4,"_restgpr1_",0xe,0x1f,FUN_001d8c60,FUN_001d8c80);\n    FUN_001db270(puVar4,param_4,"_savefpr_",0xe,0x1f,FUN_001d8cb0,FUN_001d8cd0);\n    FUN_001db270(puVar4,param_4,"_restfpr_",0xe,0x1d,FUN_001d8d00,FUN_001d8d20);\n    FUN_001db270(puVar4,param_4,"_restfpr_",0x1e,0x1f,FUN_001d8d00,FUN_001d8d20);\n    FUN_001db270(puVar4,param_4,"._savef",0xe,0x1f,FUN_001d8cb0,FUN_001d8d80);\n    FUN_001db270(puVar4,param_4,"._restf",0xe,0x1f,FUN_001d8d00,FUN_001d8db0);\n    FUN_001db270(puVar4,param_4,"_savevr_",0x14,0x1f,FUN_001d8de0,FUN_001d8e10);\n    uVar9 = 0;\n    FUN_001db270(puVar4,param_4,"_restvr_",0x14,0x1f,FUN_001d8e40,FUN_001d8e70);\n    *(undefined8 **)(param_1 + 0x140) = puVar4;\n    FUN_003839a0(param_2,".text",1,6,puVar4,9,uVar9 & 0xffffffff00000000);\n    FUN_001de660(param_1 + 0x20,param_4,param_2);\n    in_stack_ffffffffffffff90 = 0x21fea3;\n    FUN_001e1ee0(param_1,param_2);\n    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;\n    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841) != '\0') &&\n       (lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28), lVar3 != 0)) {\n      lVar5 = *(long *)(lVar3 + 0x90);\n      lVar3 = *(long *)(lVar3 + 0x88);\n      if (0x3f < (ulong)(lVar5 - lVar3)) {\n        FUN_002297f0(&local_58,lVar3,lVar5);\n        if (local_48 == 0) {\n                    /* try { // try from 002200fa to 002200fe has its CatchHandler @ 0022013e */\n          FUN_001f7950(lVar3,lVar5);\n        }\n        else {\n                    /* try { // try from 0021ff1d to 0021ff21 has its CatchHandler @ 0022013e */\n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        FUN_0049e310(local_48,&DAT_0058ad47);\n      }\n    }\n  }\n  lVar3 = *(long *)(param_2 + 0x300);\n  if (lVar3 != 0) {\n    uVar2 = 0;\n    lVar5 = *(long *)(param_1 + 0x28);\n    if (lVar5 != 0) {\n      uVar2 = *(undefined8 *)(lVar5 + 0x38);\n    }\n    uVar13 = 0;\n    FUN_0037e220(param_2,0,lVar5,uVar2,*(undefined8 *)(param_1 + 0x50),1);\n    plVar10 = *(long **)(param_1 + 0x48);\n    if (plVar10 != (long *)0x0) {\n      if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n        (**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13);\n        if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        plVar10 = *(long **)(param_1 + 0x48);\n      }\n      puVar4 = *(undefined8 **)(lVar3 + 0x40);\n      local_48 = CONCAT44((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000);\n      local_58 = plVar10;\n      if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n        FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n      }\n      else {\n        *puVar4 = plVar10;\n        puVar4[1] = uStack_50;\n        puVar4[2] = local_48;\n        *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n      }\n    }\n    if (*(char *)(param_1 + 0x133) == '\0') {\n      uVar8 = 0;\n      if (*(byte *)(param_1 + 0x134) == 0) goto LAB_0021f9ad;\n    }\n    else {\n      uVar8 = 4;\n    }\n    local_48 = -0x8ffffffd;\n    puVar4 = *(undefined8 **)(lVar3 + 0x40);\n    local_58 = (long *)CONCAT44(local_58._4_4_,*(byte *)(param_1 + 0x134) | uVar8);\n    if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n      FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n    }\n    else {\n      *puVar4 = local_58;\n      puVar4[1] = uStack_50;\n      puVar4[2] = 0xffffffff70000003;\n      *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n    }\n  }\nLAB_0021f9ad:\n  if (*(long *)(param_1 + 0x60) != *(long *)(param_1 + 0x58)) {\n    uVar2 = FUN_001e1980(param_1 + 0x50,param_2);\n    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\nLAB_00220104:\n                    /* WARNING: Subroutine does not return */\n      FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n    }\n    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0') &&\n       (plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60))) {\n      do {\n        if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }\n        plVar10 = plVar10 + 7;\n      } while (*(long **)(param_1 + 0x60) != plVar10);\n    }\n    FUN_0033bfa0(param_1 + 0x58,uVar2);\n  }\n  plVar10 = (long *)*param_3;\n  if (plVar10 != (long *)param_3[1]) {\n    do {\n      if (*(long *)(*plVar10 + 0x308) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[1] != plVar10);\n  }\n  plVar10 = (long *)param_3[3];\n  if (plVar10 != (long *)param_3[4]) {\n    do {\n      if (*(long *)(*plVar10 + 0xf8) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[4] != plVar10);\n  }\n  lVar3 = param_1;\n  if ((*(long *)(param_1 + 0x158) != 0) && (lVar3 = FUN_00335c60(), lVar3 != 0)) {\n    puVar4 = (undefined8 *)FUN_0049cb60(0x40);\n    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n    uVar2 = *(undefined8 *)(param_1 + 0x158);\n    *puVar4 = &PTR_FUN_00670da0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0xffffffffffffffff;\n    puVar4[5] = 0;\n    puVar4[6] = 1;\n    puVar4[7] = uVar2;\n    lVar3 = 0;\n    FUN_003839a0(param_2,".gnu.attributes",0x6ffffff5,0,puVar4,0);\n    return lVar3;\n  }\n  return lVar3;\n}" { (declaration "ulong *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined8 extraout_RDX;" type_identifier identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "long *plVar10;" (sized_type_specifier "long" long) (pointer_declarator "*plVar10" * identifier) ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar12;" type_identifier identifier ;) (declaration "undefined8 uVar13;" type_identifier identifier ;) (declaration "undefined8 in_stack_ffffffffffffff90;" type_identifier identifier ;) (declaration "long *local_58;" (sized_type_specifier "long" long) (pointer_declarator "*local_58" * identifier) ;) (declaration "undefined8 uStack_50;" type_identifier identifier ;) (declaration "undefined8 local_48;" type_identifier identifier ;) (if_statement "if (PTR_DAT_0067cb08[0x20] == '\0') {\nLAB_00220139:\n                    /* WARNING: Subroutine does not return */\n    FUN_001dc9b0();\n  }" if (parenthesized_expression "(PTR_DAT_0067cb08[0x20] == '\0')" ( (binary_expression "PTR_DAT_0067cb08[0x20] == '\0'" (subscript_expression "PTR_DAT_0067cb08[0x20]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00220139:\n                    /* WARNING: Subroutine does not return */\n    FUN_001dc9b0();\n  }" { (labeled_statement "LAB_00220139:\n                    /* WARNING: Subroutine does not return */\n    FUN_001dc9b0();" statement_identifier : comment (expression_statement "FUN_001dc9b0();" (call_expression "FUN_001dc9b0()" identifier (argument_list "()" ( ))) ;)) })) (if_statement "if (PTR_DAT_0067cb08[0x21] != '\0') {\n    if (*(long *)(param_1 + 0x30) == 0) {\n      FUN_00445d10(param_4,"__rela_iplt_start",0,5,0,0,0,1,2,0,1,0);\n      in_stack_ffffffffffffff90 = 0;\n      FUN_00445d10(param_4,"__rela_iplt_end",0,5,0,0,0,1,2,0,1);\n    }\n    else {\n      uVar2 = *(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38);\n      FUN_00445bb0(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1);\n      FUN_00445bb0(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1);\n    }\n  }" if (parenthesized_expression "(PTR_DAT_0067cb08[0x21] != '\0')" ( (binary_expression "PTR_DAT_0067cb08[0x21] != '\0'" (subscript_expression "PTR_DAT_0067cb08[0x21]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if (*(long *)(param_1 + 0x30) == 0) {\n      FUN_00445d10(param_4,"__rela_iplt_start",0,5,0,0,0,1,2,0,1,0);\n      in_stack_ffffffffffffff90 = 0;\n      FUN_00445d10(param_4,"__rela_iplt_end",0,5,0,0,0,1,2,0,1);\n    }\n    else {\n      uVar2 = *(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38);\n      FUN_00445bb0(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1);\n      FUN_00445bb0(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1);\n    }\n  }" { (if_statement "if (*(long *)(param_1 + 0x30) == 0) {\n      FUN_00445d10(param_4,"__rela_iplt_start",0,5,0,0,0,1,2,0,1,0);\n      in_stack_ffffffffffffff90 = 0;\n      FUN_00445d10(param_4,"__rela_iplt_end",0,5,0,0,0,1,2,0,1);\n    }\n    else {\n      uVar2 = *(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38);\n      FUN_00445bb0(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1);\n      FUN_00445bb0(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1);\n    }" if (parenthesized_expression "(*(long *)(param_1 + 0x30) == 0)" ( (binary_expression "*(long *)(param_1 + 0x30) == 0" (pointer_expression "*(long *)(param_1 + 0x30)" * (cast_expression "(long *)(param_1 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      FUN_00445d10(param_4,"__rela_iplt_start",0,5,0,0,0,1,2,0,1,0);\n      in_stack_ffffffffffffff90 = 0;\n      FUN_00445d10(param_4,"__rela_iplt_end",0,5,0,0,0,1,2,0,1);\n    }" { (expression_statement "FUN_00445d10(param_4,"__rela_iplt_start",0,5,0,0,0,1,2,0,1,0);" (call_expression "FUN_00445d10(param_4,"__rela_iplt_start",0,5,0,0,0,1,2,0,1,0)" identifier (argument_list "(param_4,"__rela_iplt_start",0,5,0,0,0,1,2,0,1,0)" ( identifier , (string_literal ""__rela_iplt_start"" " string_content ") , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))) ;) (expression_statement "in_stack_ffffffffffffff90 = 0;" (assignment_expression "in_stack_ffffffffffffff90 = 0" identifier = number_literal) ;) (expression_statement "FUN_00445d10(param_4,"__rela_iplt_end",0,5,0,0,0,1,2,0,1);" (call_expression "FUN_00445d10(param_4,"__rela_iplt_end",0,5,0,0,0,1,2,0,1)" identifier (argument_list "(param_4,"__rela_iplt_end",0,5,0,0,0,1,2,0,1)" ( identifier , (string_literal ""__rela_iplt_end"" " string_content ") , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))) ;) }) (else_clause "else {\n      uVar2 = *(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38);\n      FUN_00445bb0(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1);\n      FUN_00445bb0(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1);\n    }" else (compound_statement "{\n      uVar2 = *(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38);\n      FUN_00445bb0(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1);\n      FUN_00445bb0(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1);\n    }" { (expression_statement "uVar2 = *(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38);" (assignment_expression "uVar2 = *(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38)" identifier = (pointer_expression "*(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38)" * (cast_expression "(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x30) + 0x38)" ( (binary_expression "*(long *)(param_1 + 0x30) + 0x38" (pointer_expression "*(long *)(param_1 + 0x30)" * (cast_expression "(long *)(param_1 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "FUN_00445bb0(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1);" (call_expression "FUN_00445bb0(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1)" identifier (argument_list "(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1)" ( identifier , (string_literal ""__rela_iplt_start"" " string_content ") , number_literal , number_literal , identifier , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))) ;) (expression_statement "FUN_00445bb0(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1);" (call_expression "FUN_00445bb0(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1)" identifier (argument_list "(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1)" ( identifier , (string_literal ""__rela_iplt_end"" " string_content ") , number_literal , number_literal , identifier , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))) ;) }))) })) (for_statement "for (puVar4 = *(undefined8 **)(param_4 + 0x40); puVar4 != (undefined8 *)0x0;\n      puVar4 = (undefined8 *)*puVar4) {\n    lVar3 = puVar4[3];\n    if (((((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)) &&\n        ((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)))) && (*(int *)(lVar5 + 0x224) == *(int *)(lVar3 + 0x18))) {\n      uVar9 = *(ulong *)(lVar3 + 0x40) >> 4;\n      if ((ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4) <= uVar9) {\n        FUN_001dc890();\n        goto LAB_00220139;\n      }\n      if ((*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1) != 0) {\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        FUN_00443500(lVar3);\n        *(undefined4 *)(lVar3 + 0x1c) = 0xffffffff;\n        *(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000;\n      }\n    }\n  }" for ( (assignment_expression "puVar4 = *(undefined8 **)(param_4 + 0x40)" identifier = (pointer_expression "*(undefined8 **)(param_4 + 0x40)" * (cast_expression "(undefined8 **)(param_4 + 0x40)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 0x40)" ( (binary_expression "param_4 + 0x40" identifier + number_literal) ))))) ; (binary_expression "puVar4 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar4 = (undefined8 *)*puVar4" identifier = (cast_expression "(undefined8 *)*puVar4" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ) (compound_statement "{\n    lVar3 = puVar4[3];\n    if (((((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)) &&\n        ((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)))) && (*(int *)(lVar5 + 0x224) == *(int *)(lVar3 + 0x18))) {\n      uVar9 = *(ulong *)(lVar3 + 0x40) >> 4;\n      if ((ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4) <= uVar9) {\n        FUN_001dc890();\n        goto LAB_00220139;\n      }\n      if ((*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1) != 0) {\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        FUN_00443500(lVar3);\n        *(undefined4 *)(lVar3 + 0x1c) = 0xffffffff;\n        *(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000;\n      }\n    }\n  }" { (expression_statement "lVar3 = puVar4[3];" (assignment_expression "lVar3 = puVar4[3]" identifier = (subscript_expression "puVar4[3]" identifier [ number_literal ])) ;) (if_statement "if (((((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)) &&\n        ((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)))) && (*(int *)(lVar5 + 0x224) == *(int *)(lVar3 + 0x18))) {\n      uVar9 = *(ulong *)(lVar3 + 0x40) >> 4;\n      if ((ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4) <= uVar9) {\n        FUN_001dc890();\n        goto LAB_00220139;\n      }\n      if ((*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1) != 0) {\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        FUN_00443500(lVar3);\n        *(undefined4 *)(lVar3 + 0x1c) = 0xffffffff;\n        *(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000;\n      }\n    }" if (parenthesized_expression "(((((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)) &&\n        ((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)))) && (*(int *)(lVar5 + 0x224) == *(int *)(lVar3 + 0x18)))" ( (binary_expression "((((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)) &&\n        ((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)))) && (*(int *)(lVar5 + 0x224) == *(int *)(lVar3 + 0x18))" (parenthesized_expression "((((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)) &&\n        ((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0))))" ( (binary_expression "(((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)) &&\n        ((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)))" (parenthesized_expression "(((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0))" ( (binary_expression "((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)" (parenthesized_expression "((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0))" ( (binary_expression "(*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)" (parenthesized_expression "(*(int *)(lVar3 + 0x1c) == 0)" ( (binary_expression "*(int *)(lVar3 + 0x1c) == 0" (pointer_expression "*(int *)(lVar3 + 0x1c)" * (cast_expression "(int *)(lVar3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x1c)" ( (binary_expression "lVar3 + 0x1c" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((*(byte *)(lVar3 + 0x3a) & 7) == 0)" ( (binary_expression "(*(byte *)(lVar3 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)(lVar3 + 0x3a) & 7)" ( (binary_expression "*(byte *)(lVar3 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar3 + 0x3a)" * (cast_expression "(byte *)(lVar3 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x3a)" ( (binary_expression "lVar3 + 0x3a" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)" ( (binary_expression "(*(byte *)(lVar3 + 0x3b) & 0x40) != 0" (parenthesized_expression "(*(byte *)(lVar3 + 0x3b) & 0x40)" ( (binary_expression "*(byte *)(lVar3 + 0x3b) & 0x40" (pointer_expression "*(byte *)(lVar3 + 0x3b)" * (cast_expression "(byte *)(lVar3 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x3b)" ( (binary_expression "lVar3 + 0x3b" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)))" ( (parenthesized_expression "(lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0))" ( (comma_expression "lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)" (assignment_expression "lVar5 = *(long *)(lVar3 + 0x10)" identifier = (pointer_expression "*(long *)(lVar3 + 0x10)" * (cast_expression "(long *)(lVar3 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x10)" ( (binary_expression "lVar3 + 0x10" identifier + number_literal) ))))) , (binary_expression "(*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)" (binary_expression "(*(byte *)(lVar5 + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)(lVar5 + 0x3c) & 1)" ( (binary_expression "*(byte *)(lVar5 + 0x3c) & 1" (pointer_expression "*(byte *)(lVar5 + 0x3c)" * (cast_expression "(byte *)(lVar5 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x3c)" ( (binary_expression "lVar5 + 0x3c" identifier + number_literal) )))) & number_literal) )) == number_literal) && (parenthesized_expression "(*(int *)(lVar5 + 0x224) != 0)" ( (binary_expression "*(int *)(lVar5 + 0x224) != 0" (pointer_expression "*(int *)(lVar5 + 0x224)" * (cast_expression "(int *)(lVar5 + 0x224)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x224)" ( (binary_expression "lVar5 + 0x224" identifier + number_literal) )))) != number_literal) )))) )) ))) )) && (parenthesized_expression "(*(int *)(lVar5 + 0x224) == *(int *)(lVar3 + 0x18))" ( (binary_expression "*(int *)(lVar5 + 0x224) == *(int *)(lVar3 + 0x18)" (pointer_expression "*(int *)(lVar5 + 0x224)" * (cast_expression "(int *)(lVar5 + 0x224)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x224)" ( (binary_expression "lVar5 + 0x224" identifier + number_literal) )))) == (pointer_expression "*(int *)(lVar3 + 0x18)" * (cast_expression "(int *)(lVar3 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x18)" ( (binary_expression "lVar3 + 0x18" identifier + number_literal) ))))) ))) )) (compound_statement "{\n      uVar9 = *(ulong *)(lVar3 + 0x40) >> 4;\n      if ((ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4) <= uVar9) {\n        FUN_001dc890();\n        goto LAB_00220139;\n      }\n      if ((*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1) != 0) {\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        FUN_00443500(lVar3);\n        *(undefined4 *)(lVar3 + 0x1c) = 0xffffffff;\n        *(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000;\n      }\n    }" { (expression_statement "uVar9 = *(ulong *)(lVar3 + 0x40) >> 4;" (assignment_expression "uVar9 = *(ulong *)(lVar3 + 0x40) >> 4" identifier = (binary_expression "*(ulong *)(lVar3 + 0x40) >> 4" (pointer_expression "*(ulong *)(lVar3 + 0x40)" * (cast_expression "(ulong *)(lVar3 + 0x40)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x40)" ( (binary_expression "lVar3 + 0x40" identifier + number_literal) )))) >> number_literal)) ;) (if_statement "if ((ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4) <= uVar9) {\n        FUN_001dc890();\n        goto LAB_00220139;\n      }" if (parenthesized_expression "((ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4) <= uVar9)" ( (binary_expression "(ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4) <= uVar9" (call_expression "(ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4)" ( (binary_expression "*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4" (binary_expression "*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260)" (pointer_expression "*(long *)(lVar5 + 0x268)" * (cast_expression "(long *)(lVar5 + 0x268)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x268)" ( (binary_expression "lVar5 + 0x268" identifier + number_literal) )))) - (pointer_expression "*(long *)(lVar5 + 0x260)" * (cast_expression "(long *)(lVar5 + 0x260)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x260)" ( (binary_expression "lVar5 + 0x260" identifier + number_literal) ))))) >> number_literal) ))) <= identifier) )) (compound_statement "{\n        FUN_001dc890();\n        goto LAB_00220139;\n      }" { (expression_statement "FUN_001dc890();" (call_expression "FUN_001dc890()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_00220139;" goto statement_identifier ;) })) (if_statement "if ((*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1) != 0) {\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        FUN_00443500(lVar3);\n        *(undefined4 *)(lVar3 + 0x1c) = 0xffffffff;\n        *(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000;\n      }" if (parenthesized_expression "((*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1) != 0)" ( (binary_expression "(*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1) != 0" (parenthesized_expression "(*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1)" ( (binary_expression "*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1" (pointer_expression "*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10)" * (cast_expression "(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10)" ( (binary_expression "*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10" (binary_expression "*(long *)(lVar5 + 0x260) + 4" (pointer_expression "*(long *)(lVar5 + 0x260)" * (cast_expression "(long *)(lVar5 + 0x260)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x260)" ( (binary_expression "lVar5 + 0x260" identifier + number_literal) )))) + number_literal) + (binary_expression "uVar9 * 0x10" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        FUN_00443500(lVar3);\n        *(undefined4 *)(lVar3 + 0x1c) = 0xffffffff;\n        *(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000;\n      }" { (expression_statement "in_stack_ffffffffffffff90 = 0x21fbbd;" (assignment_expression "in_stack_ffffffffffffff90 = 0x21fbbd" identifier = number_literal) ;) (expression_statement "FUN_00443500(lVar3);" (call_expression "FUN_00443500(lVar3)" identifier (argument_list "(lVar3)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(lVar3 + 0x1c) = 0xffffffff;" (assignment_expression "*(undefined4 *)(lVar3 + 0x1c) = 0xffffffff" (pointer_expression "*(undefined4 *)(lVar3 + 0x1c)" * (cast_expression "(undefined4 *)(lVar3 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x1c)" ( (binary_expression "lVar3 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000;" (assignment_expression "*(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000" (pointer_expression "*(uint *)(lVar3 + 0x38)" * (cast_expression "(uint *)(lVar3 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x38)" ( (binary_expression "lVar3 + 0x38" identifier + number_literal) )))) = (binary_expression "*(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000" (binary_expression "*(uint *)(lVar3 + 0x38) & 0x7ffffcff" (pointer_expression "*(uint *)(lVar3 + 0x38)" * (cast_expression "(uint *)(lVar3 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x38)" ( (binary_expression "lVar3 + 0x38" identifier + number_literal) )))) & number_literal) | number_literal)) ;) })) })) })) (if_statement "if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;" if (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00220104;" goto statement_identifier ;)) (if_statement "if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x5051) == '\0') {\n    puVar4 = (undefined8 *)FUN_0049cb60(0x40);\n    puVar4[1] = 0;\n    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n    puVar4[2] = 0;\n    puVar4[3] = 0xffffffffffffffff;\n    puVar4[5] = 0;\n    puVar4[6] = 4;\n    *puVar4 = &PTR_FUN_00664fb8;\n    puVar4[7] = 0;\n                    /* try { // try from 0021fc56 to 0021fe51 has its CatchHandler @ 00220146 */\n    FUN_001db270(puVar4,param_4,&DAT_0054cfeb,0xe,0x1f,FUN_001d8b40,FUN_001d8b60);\n    FUN_001db270(puVar4,param_4,"_restgpr0_",0xe,0x1d,FUN_001d8b90,FUN_001d8bb0);\n    FUN_001db270(puVar4,param_4,"_restgpr0_",0x1e,0x1f,FUN_001d8b90,FUN_001d8bb0);\n    FUN_001db270(puVar4,param_4,"_savegpr1_",0xe,0x1f,FUN_001d8c10,FUN_001d8c30);\n    FUN_001db270(puVar4,param_4,"_restgpr1_",0xe,0x1f,FUN_001d8c60,FUN_001d8c80);\n    FUN_001db270(puVar4,param_4,"_savefpr_",0xe,0x1f,FUN_001d8cb0,FUN_001d8cd0);\n    FUN_001db270(puVar4,param_4,"_restfpr_",0xe,0x1d,FUN_001d8d00,FUN_001d8d20);\n    FUN_001db270(puVar4,param_4,"_restfpr_",0x1e,0x1f,FUN_001d8d00,FUN_001d8d20);\n    FUN_001db270(puVar4,param_4,"._savef",0xe,0x1f,FUN_001d8cb0,FUN_001d8d80);\n    FUN_001db270(puVar4,param_4,"._restf",0xe,0x1f,FUN_001d8d00,FUN_001d8db0);\n    FUN_001db270(puVar4,param_4,"_savevr_",0x14,0x1f,FUN_001d8de0,FUN_001d8e10);\n    uVar9 = 0;\n    FUN_001db270(puVar4,param_4,"_restvr_",0x14,0x1f,FUN_001d8e40,FUN_001d8e70);\n    *(undefined8 **)(param_1 + 0x140) = puVar4;\n    FUN_003839a0(param_2,".text",1,6,puVar4,9,uVar9 & 0xffffffff00000000);\n    FUN_001de660(param_1 + 0x20,param_4,param_2);\n    in_stack_ffffffffffffff90 = 0x21fea3;\n    FUN_001e1ee0(param_1,param_2);\n    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;\n    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841) != '\0') &&\n       (lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28), lVar3 != 0)) {\n      lVar5 = *(long *)(lVar3 + 0x90);\n      lVar3 = *(long *)(lVar3 + 0x88);\n      if (0x3f < (ulong)(lVar5 - lVar3)) {\n        FUN_002297f0(&local_58,lVar3,lVar5);\n        if (local_48 == 0) {\n                    /* try { // try from 002200fa to 002200fe has its CatchHandler @ 0022013e */\n          FUN_001f7950(lVar3,lVar5);\n        }\n        else {\n                    /* try { // try from 0021ff1d to 0021ff21 has its CatchHandler @ 0022013e */\n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        FUN_0049e310(local_48,&DAT_0058ad47);\n      }\n    }\n  }" if (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x5051) == '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x5051) == '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x5051)" * (cast_expression "(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x5051)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x5051)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x5051" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    puVar4 = (undefined8 *)FUN_0049cb60(0x40);\n    puVar4[1] = 0;\n    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n    puVar4[2] = 0;\n    puVar4[3] = 0xffffffffffffffff;\n    puVar4[5] = 0;\n    puVar4[6] = 4;\n    *puVar4 = &PTR_FUN_00664fb8;\n    puVar4[7] = 0;\n                    /* try { // try from 0021fc56 to 0021fe51 has its CatchHandler @ 00220146 */\n    FUN_001db270(puVar4,param_4,&DAT_0054cfeb,0xe,0x1f,FUN_001d8b40,FUN_001d8b60);\n    FUN_001db270(puVar4,param_4,"_restgpr0_",0xe,0x1d,FUN_001d8b90,FUN_001d8bb0);\n    FUN_001db270(puVar4,param_4,"_restgpr0_",0x1e,0x1f,FUN_001d8b90,FUN_001d8bb0);\n    FUN_001db270(puVar4,param_4,"_savegpr1_",0xe,0x1f,FUN_001d8c10,FUN_001d8c30);\n    FUN_001db270(puVar4,param_4,"_restgpr1_",0xe,0x1f,FUN_001d8c60,FUN_001d8c80);\n    FUN_001db270(puVar4,param_4,"_savefpr_",0xe,0x1f,FUN_001d8cb0,FUN_001d8cd0);\n    FUN_001db270(puVar4,param_4,"_restfpr_",0xe,0x1d,FUN_001d8d00,FUN_001d8d20);\n    FUN_001db270(puVar4,param_4,"_restfpr_",0x1e,0x1f,FUN_001d8d00,FUN_001d8d20);\n    FUN_001db270(puVar4,param_4,"._savef",0xe,0x1f,FUN_001d8cb0,FUN_001d8d80);\n    FUN_001db270(puVar4,param_4,"._restf",0xe,0x1f,FUN_001d8d00,FUN_001d8db0);\n    FUN_001db270(puVar4,param_4,"_savevr_",0x14,0x1f,FUN_001d8de0,FUN_001d8e10);\n    uVar9 = 0;\n    FUN_001db270(puVar4,param_4,"_restvr_",0x14,0x1f,FUN_001d8e40,FUN_001d8e70);\n    *(undefined8 **)(param_1 + 0x140) = puVar4;\n    FUN_003839a0(param_2,".text",1,6,puVar4,9,uVar9 & 0xffffffff00000000);\n    FUN_001de660(param_1 + 0x20,param_4,param_2);\n    in_stack_ffffffffffffff90 = 0x21fea3;\n    FUN_001e1ee0(param_1,param_2);\n    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;\n    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841) != '\0') &&\n       (lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28), lVar3 != 0)) {\n      lVar5 = *(long *)(lVar3 + 0x90);\n      lVar3 = *(long *)(lVar3 + 0x88);\n      if (0x3f < (ulong)(lVar5 - lVar3)) {\n        FUN_002297f0(&local_58,lVar3,lVar5);\n        if (local_48 == 0) {\n                    /* try { // try from 002200fa to 002200fe has its CatchHandler @ 0022013e */\n          FUN_001f7950(lVar3,lVar5);\n        }\n        else {\n                    /* try { // try from 0021ff1d to 0021ff21 has its CatchHandler @ 0022013e */\n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        FUN_0049e310(local_48,&DAT_0058ad47);\n      }\n    }\n  }" { (expression_statement "puVar4 = (undefined8 *)FUN_0049cb60(0x40);" (assignment_expression "puVar4 = (undefined8 *)FUN_0049cb60(0x40)" identifier = (cast_expression "(undefined8 *)FUN_0049cb60(0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0049cb60(0x40)" identifier (argument_list "(0x40)" ( number_literal ))))) ;) (expression_statement "puVar4[1] = 0;" (assignment_expression "puVar4[1] = 0" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;" (assignment_expression "*(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 4)" * (cast_expression "(byte *)(puVar4 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 4)" ( (binary_expression "puVar4 + 4" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar4 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 4)" * (cast_expression "(byte *)(puVar4 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 4)" ( (binary_expression "puVar4 + 4" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "puVar4[2] = 0;" (assignment_expression "puVar4[2] = 0" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[3] = 0xffffffffffffffff;" (assignment_expression "puVar4[3] = 0xffffffffffffffff" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[5] = 0;" (assignment_expression "puVar4[5] = 0" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[6] = 4;" (assignment_expression "puVar4[6] = 4" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar4 = &PTR_FUN_00664fb8;" (assignment_expression "*puVar4 = &PTR_FUN_00664fb8" (pointer_expression "*puVar4" * identifier) = (pointer_expression "&PTR_FUN_00664fb8" & identifier)) ;) (expression_statement "puVar4[7] = 0;" (assignment_expression "puVar4[7] = 0" (subscript_expression "puVar4[7]" identifier [ number_literal ]) = number_literal) ;) comment (expression_statement "FUN_001db270(puVar4,param_4,&DAT_0054cfeb,0xe,0x1f,FUN_001d8b40,FUN_001d8b60);" (call_expression "FUN_001db270(puVar4,param_4,&DAT_0054cfeb,0xe,0x1f,FUN_001d8b40,FUN_001d8b60)" identifier (argument_list "(puVar4,param_4,&DAT_0054cfeb,0xe,0x1f,FUN_001d8b40,FUN_001d8b60)" ( identifier , identifier , (pointer_expression "&DAT_0054cfeb" & identifier) , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "FUN_001db270(puVar4,param_4,"_restgpr0_",0xe,0x1d,FUN_001d8b90,FUN_001d8bb0);" (call_expression "FUN_001db270(puVar4,param_4,"_restgpr0_",0xe,0x1d,FUN_001d8b90,FUN_001d8bb0)" identifier (argument_list "(puVar4,param_4,"_restgpr0_",0xe,0x1d,FUN_001d8b90,FUN_001d8bb0)" ( identifier , identifier , (string_literal ""_restgpr0_"" " string_content ") , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "FUN_001db270(puVar4,param_4,"_restgpr0_",0x1e,0x1f,FUN_001d8b90,FUN_001d8bb0);" (call_expression "FUN_001db270(puVar4,param_4,"_restgpr0_",0x1e,0x1f,FUN_001d8b90,FUN_001d8bb0)" identifier (argument_list "(puVar4,param_4,"_restgpr0_",0x1e,0x1f,FUN_001d8b90,FUN_001d8bb0)" ( identifier , identifier , (string_literal ""_restgpr0_"" " string_content ") , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "FUN_001db270(puVar4,param_4,"_savegpr1_",0xe,0x1f,FUN_001d8c10,FUN_001d8c30);" (call_expression "FUN_001db270(puVar4,param_4,"_savegpr1_",0xe,0x1f,FUN_001d8c10,FUN_001d8c30)" identifier (argument_list "(puVar4,param_4,"_savegpr1_",0xe,0x1f,FUN_001d8c10,FUN_001d8c30)" ( identifier , identifier , (string_literal ""_savegpr1_"" " string_content ") , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "FUN_001db270(puVar4,param_4,"_restgpr1_",0xe,0x1f,FUN_001d8c60,FUN_001d8c80);" (call_expression "FUN_001db270(puVar4,param_4,"_restgpr1_",0xe,0x1f,FUN_001d8c60,FUN_001d8c80)" identifier (argument_list "(puVar4,param_4,"_restgpr1_",0xe,0x1f,FUN_001d8c60,FUN_001d8c80)" ( identifier , identifier , (string_literal ""_restgpr1_"" " string_content ") , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "FUN_001db270(puVar4,param_4,"_savefpr_",0xe,0x1f,FUN_001d8cb0,FUN_001d8cd0);" (call_expression "FUN_001db270(puVar4,param_4,"_savefpr_",0xe,0x1f,FUN_001d8cb0,FUN_001d8cd0)" identifier (argument_list "(puVar4,param_4,"_savefpr_",0xe,0x1f,FUN_001d8cb0,FUN_001d8cd0)" ( identifier , identifier , (string_literal ""_savefpr_"" " string_content ") , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "FUN_001db270(puVar4,param_4,"_restfpr_",0xe,0x1d,FUN_001d8d00,FUN_001d8d20);" (call_expression "FUN_001db270(puVar4,param_4,"_restfpr_",0xe,0x1d,FUN_001d8d00,FUN_001d8d20)" identifier (argument_list "(puVar4,param_4,"_restfpr_",0xe,0x1d,FUN_001d8d00,FUN_001d8d20)" ( identifier , identifier , (string_literal ""_restfpr_"" " string_content ") , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "FUN_001db270(puVar4,param_4,"_restfpr_",0x1e,0x1f,FUN_001d8d00,FUN_001d8d20);" (call_expression "FUN_001db270(puVar4,param_4,"_restfpr_",0x1e,0x1f,FUN_001d8d00,FUN_001d8d20)" identifier (argument_list "(puVar4,param_4,"_restfpr_",0x1e,0x1f,FUN_001d8d00,FUN_001d8d20)" ( identifier , identifier , (string_literal ""_restfpr_"" " string_content ") , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "FUN_001db270(puVar4,param_4,"._savef",0xe,0x1f,FUN_001d8cb0,FUN_001d8d80);" (call_expression "FUN_001db270(puVar4,param_4,"._savef",0xe,0x1f,FUN_001d8cb0,FUN_001d8d80)" identifier (argument_list "(puVar4,param_4,"._savef",0xe,0x1f,FUN_001d8cb0,FUN_001d8d80)" ( identifier , identifier , (string_literal ""._savef"" " string_content ") , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "FUN_001db270(puVar4,param_4,"._restf",0xe,0x1f,FUN_001d8d00,FUN_001d8db0);" (call_expression "FUN_001db270(puVar4,param_4,"._restf",0xe,0x1f,FUN_001d8d00,FUN_001d8db0)" identifier (argument_list "(puVar4,param_4,"._restf",0xe,0x1f,FUN_001d8d00,FUN_001d8db0)" ( identifier , identifier , (string_literal ""._restf"" " string_content ") , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "FUN_001db270(puVar4,param_4,"_savevr_",0x14,0x1f,FUN_001d8de0,FUN_001d8e10);" (call_expression "FUN_001db270(puVar4,param_4,"_savevr_",0x14,0x1f,FUN_001d8de0,FUN_001d8e10)" identifier (argument_list "(puVar4,param_4,"_savevr_",0x14,0x1f,FUN_001d8de0,FUN_001d8e10)" ( identifier , identifier , (string_literal ""_savevr_"" " string_content ") , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "FUN_001db270(puVar4,param_4,"_restvr_",0x14,0x1f,FUN_001d8e40,FUN_001d8e70);" (call_expression "FUN_001db270(puVar4,param_4,"_restvr_",0x14,0x1f,FUN_001d8e40,FUN_001d8e70)" identifier (argument_list "(puVar4,param_4,"_restvr_",0x14,0x1f,FUN_001d8e40,FUN_001d8e70)" ( identifier , identifier , (string_literal ""_restvr_"" " string_content ") , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "*(undefined8 **)(param_1 + 0x140) = puVar4;" (assignment_expression "*(undefined8 **)(param_1 + 0x140) = puVar4" (pointer_expression "*(undefined8 **)(param_1 + 0x140)" * (cast_expression "(undefined8 **)(param_1 + 0x140)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_003839a0(param_2,".text",1,6,puVar4,9,uVar9 & 0xffffffff00000000);" (call_expression "FUN_003839a0(param_2,".text",1,6,puVar4,9,uVar9 & 0xffffffff00000000)" identifier (argument_list "(param_2,".text",1,6,puVar4,9,uVar9 & 0xffffffff00000000)" ( identifier , (string_literal "".text"" " string_content ") , number_literal , number_literal , identifier , number_literal , (binary_expression "uVar9 & 0xffffffff00000000" identifier & number_literal) ))) ;) (expression_statement "FUN_001de660(param_1 + 0x20,param_4,param_2);" (call_expression "FUN_001de660(param_1 + 0x20,param_4,param_2)" identifier (argument_list "(param_1 + 0x20,param_4,param_2)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "in_stack_ffffffffffffff90 = 0x21fea3;" (assignment_expression "in_stack_ffffffffffffff90 = 0x21fea3" identifier = number_literal) ;) (expression_statement "FUN_001e1ee0(param_1,param_2);" (call_expression "FUN_001e1ee0(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) (if_statement "if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;" if (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00220104;" goto statement_identifier ;)) (if_statement "if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841) != '\0') &&\n       (lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28), lVar3 != 0)) {\n      lVar5 = *(long *)(lVar3 + 0x90);\n      lVar3 = *(long *)(lVar3 + 0x88);\n      if (0x3f < (ulong)(lVar5 - lVar3)) {\n        FUN_002297f0(&local_58,lVar3,lVar5);\n        if (local_48 == 0) {\n                    /* try { // try from 002200fa to 002200fe has its CatchHandler @ 0022013e */\n          FUN_001f7950(lVar3,lVar5);\n        }\n        else {\n                    /* try { // try from 0021ff1d to 0021ff21 has its CatchHandler @ 0022013e */\n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        FUN_0049e310(local_48,&DAT_0058ad47);\n      }\n    }" if (parenthesized_expression "((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841) != '\0') &&\n       (lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28), lVar3 != 0))" ( (binary_expression "(*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841) != '\0') &&\n       (lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28), lVar3 != 0)" (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841) != '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841) != '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841)" * (cast_expression "(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28), lVar3 != 0)" ( (comma_expression "lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28), lVar3 != 0" (assignment_expression "lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28)" identifier = (pointer_expression "*(long *)(*(long *)(param_1 + 0x20) + 0x28)" * (cast_expression "(long *)(*(long *)(param_1 + 0x20) + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x20) + 0x28)" ( (binary_expression "*(long *)(param_1 + 0x20) + 0x28" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) + number_literal) ))))) , (binary_expression "lVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      lVar5 = *(long *)(lVar3 + 0x90);\n      lVar3 = *(long *)(lVar3 + 0x88);\n      if (0x3f < (ulong)(lVar5 - lVar3)) {\n        FUN_002297f0(&local_58,lVar3,lVar5);\n        if (local_48 == 0) {\n                    /* try { // try from 002200fa to 002200fe has its CatchHandler @ 0022013e */\n          FUN_001f7950(lVar3,lVar5);\n        }\n        else {\n                    /* try { // try from 0021ff1d to 0021ff21 has its CatchHandler @ 0022013e */\n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        FUN_0049e310(local_48,&DAT_0058ad47);\n      }\n    }" { (expression_statement "lVar5 = *(long *)(lVar3 + 0x90);" (assignment_expression "lVar5 = *(long *)(lVar3 + 0x90)" identifier = (pointer_expression "*(long *)(lVar3 + 0x90)" * (cast_expression "(long *)(lVar3 + 0x90)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x90)" ( (binary_expression "lVar3 + 0x90" identifier + number_literal) ))))) ;) (expression_statement "lVar3 = *(long *)(lVar3 + 0x88);" (assignment_expression "lVar3 = *(long *)(lVar3 + 0x88)" identifier = (pointer_expression "*(long *)(lVar3 + 0x88)" * (cast_expression "(long *)(lVar3 + 0x88)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x88)" ( (binary_expression "lVar3 + 0x88" identifier + number_literal) ))))) ;) (if_statement "if (0x3f < (ulong)(lVar5 - lVar3)) {\n        FUN_002297f0(&local_58,lVar3,lVar5);\n        if (local_48 == 0) {\n                    /* try { // try from 002200fa to 002200fe has its CatchHandler @ 0022013e */\n          FUN_001f7950(lVar3,lVar5);\n        }\n        else {\n                    /* try { // try from 0021ff1d to 0021ff21 has its CatchHandler @ 0022013e */\n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        FUN_0049e310(local_48,&DAT_0058ad47);\n      }" if (parenthesized_expression "(0x3f < (ulong)(lVar5 - lVar3))" ( (binary_expression "0x3f < (ulong)(lVar5 - lVar3)" number_literal < (call_expression "(ulong)(lVar5 - lVar3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(lVar5 - lVar3)" ( (binary_expression "lVar5 - lVar3" identifier - identifier) )))) )) (compound_statement "{\n        FUN_002297f0(&local_58,lVar3,lVar5);\n        if (local_48 == 0) {\n                    /* try { // try from 002200fa to 002200fe has its CatchHandler @ 0022013e */\n          FUN_001f7950(lVar3,lVar5);\n        }\n        else {\n                    /* try { // try from 0021ff1d to 0021ff21 has its CatchHandler @ 0022013e */\n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        FUN_0049e310(local_48,&DAT_0058ad47);\n      }" { (expression_statement "FUN_002297f0(&local_58,lVar3,lVar5);" (call_expression "FUN_002297f0(&local_58,lVar3,lVar5)" identifier (argument_list "(&local_58,lVar3,lVar5)" ( (pointer_expression "&local_58" & identifier) , identifier , identifier ))) ;) (if_statement "if (local_48 == 0) {\n                    /* try { // try from 002200fa to 002200fe has its CatchHandler @ 0022013e */\n          FUN_001f7950(lVar3,lVar5);\n        }\n        else {\n                    /* try { // try from 0021ff1d to 0021ff21 has its CatchHandler @ 0022013e */\n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }" if (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* try { // try from 002200fa to 002200fe has its CatchHandler @ 0022013e */\n          FUN_001f7950(lVar3,lVar5);\n        }" { comment (expression_statement "FUN_001f7950(lVar3,lVar5);" (call_expression "FUN_001f7950(lVar3,lVar5)" identifier (argument_list "(lVar3,lVar5)" ( identifier , identifier ))) ;) }) (else_clause "else {\n                    /* try { // try from 0021ff1d to 0021ff21 has its CatchHandler @ 0022013e */\n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }" else (compound_statement "{\n                    /* try { // try from 0021ff1d to 0021ff21 has its CatchHandler @ 0022013e */\n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }" { comment (expression_statement "FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);" (call_expression "FUN_001f80c0(lVar3,lVar5,local_48,uStack_50)" identifier (argument_list "(lVar3,lVar5,local_48,uStack_50)" ( identifier , identifier , identifier , identifier ))) ;) }))) (expression_statement "in_stack_ffffffffffffff90 = 0x21ff32;" (assignment_expression "in_stack_ffffffffffffff90 = 0x21ff32" identifier = number_literal) ;) (expression_statement "FUN_0049e310(local_48,&DAT_0058ad47);" (call_expression "FUN_0049e310(local_48,&DAT_0058ad47)" identifier (argument_list "(local_48,&DAT_0058ad47)" ( identifier , (pointer_expression "&DAT_0058ad47" & identifier) ))) ;) })) })) })) (expression_statement "lVar3 = *(long *)(param_2 + 0x300);" (assignment_expression "lVar3 = *(long *)(param_2 + 0x300)" identifier = (pointer_expression "*(long *)(param_2 + 0x300)" * (cast_expression "(long *)(param_2 + 0x300)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x300)" ( (binary_expression "param_2 + 0x300" identifier + number_literal) ))))) ;) (if_statement "if (lVar3 != 0) {\n    uVar2 = 0;\n    lVar5 = *(long *)(param_1 + 0x28);\n    if (lVar5 != 0) {\n      uVar2 = *(undefined8 *)(lVar5 + 0x38);\n    }\n    uVar13 = 0;\n    FUN_0037e220(param_2,0,lVar5,uVar2,*(undefined8 *)(param_1 + 0x50),1);\n    plVar10 = *(long **)(param_1 + 0x48);\n    if (plVar10 != (long *)0x0) {\n      if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n        (**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13);\n        if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        plVar10 = *(long **)(param_1 + 0x48);\n      }\n      puVar4 = *(undefined8 **)(lVar3 + 0x40);\n      local_48 = CONCAT44((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000);\n      local_58 = plVar10;\n      if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n        FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n      }\n      else {\n        *puVar4 = plVar10;\n        puVar4[1] = uStack_50;\n        puVar4[2] = local_48;\n        *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n      }\n    }\n    if (*(char *)(param_1 + 0x133) == '\0') {\n      uVar8 = 0;\n      if (*(byte *)(param_1 + 0x134) == 0) goto LAB_0021f9ad;\n    }\n    else {\n      uVar8 = 4;\n    }\n    local_48 = -0x8ffffffd;\n    puVar4 = *(undefined8 **)(lVar3 + 0x40);\n    local_58 = (long *)CONCAT44(local_58._4_4_,*(byte *)(param_1 + 0x134) | uVar8);\n    if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n      FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n    }\n    else {\n      *puVar4 = local_58;\n      puVar4[1] = uStack_50;\n      puVar4[2] = 0xffffffff70000003;\n      *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n    }\n  }" if (parenthesized_expression "(lVar3 != 0)" ( (binary_expression "lVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar2 = 0;\n    lVar5 = *(long *)(param_1 + 0x28);\n    if (lVar5 != 0) {\n      uVar2 = *(undefined8 *)(lVar5 + 0x38);\n    }\n    uVar13 = 0;\n    FUN_0037e220(param_2,0,lVar5,uVar2,*(undefined8 *)(param_1 + 0x50),1);\n    plVar10 = *(long **)(param_1 + 0x48);\n    if (plVar10 != (long *)0x0) {\n      if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n        (**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13);\n        if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        plVar10 = *(long **)(param_1 + 0x48);\n      }\n      puVar4 = *(undefined8 **)(lVar3 + 0x40);\n      local_48 = CONCAT44((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000);\n      local_58 = plVar10;\n      if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n        FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n      }\n      else {\n        *puVar4 = plVar10;\n        puVar4[1] = uStack_50;\n        puVar4[2] = local_48;\n        *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n      }\n    }\n    if (*(char *)(param_1 + 0x133) == '\0') {\n      uVar8 = 0;\n      if (*(byte *)(param_1 + 0x134) == 0) goto LAB_0021f9ad;\n    }\n    else {\n      uVar8 = 4;\n    }\n    local_48 = -0x8ffffffd;\n    puVar4 = *(undefined8 **)(lVar3 + 0x40);\n    local_58 = (long *)CONCAT44(local_58._4_4_,*(byte *)(param_1 + 0x134) | uVar8);\n    if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n      FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n    }\n    else {\n      *puVar4 = local_58;\n      puVar4[1] = uStack_50;\n      puVar4[2] = 0xffffffff70000003;\n      *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n    }\n  }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "lVar5 = *(long *)(param_1 + 0x28);" (assignment_expression "lVar5 = *(long *)(param_1 + 0x28)" identifier = (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (lVar5 != 0) {\n      uVar2 = *(undefined8 *)(lVar5 + 0x38);\n    }" if (parenthesized_expression "(lVar5 != 0)" ( (binary_expression "lVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar2 = *(undefined8 *)(lVar5 + 0x38);\n    }" { (expression_statement "uVar2 = *(undefined8 *)(lVar5 + 0x38);" (assignment_expression "uVar2 = *(undefined8 *)(lVar5 + 0x38)" identifier = (pointer_expression "*(undefined8 *)(lVar5 + 0x38)" * (cast_expression "(undefined8 *)(lVar5 + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x38)" ( (binary_expression "lVar5 + 0x38" identifier + number_literal) ))))) ;) })) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (expression_statement "FUN_0037e220(param_2,0,lVar5,uVar2,*(undefined8 *)(param_1 + 0x50),1);" (call_expression "FUN_0037e220(param_2,0,lVar5,uVar2,*(undefined8 *)(param_1 + 0x50),1)" identifier (argument_list "(param_2,0,lVar5,uVar2,*(undefined8 *)(param_1 + 0x50),1)" ( identifier , number_literal , identifier , identifier , (pointer_expression "*(undefined8 *)(param_1 + 0x50)" * (cast_expression "(undefined8 *)(param_1 + 0x50)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) , number_literal ))) ;) (expression_statement "plVar10 = *(long **)(param_1 + 0x48);" (assignment_expression "plVar10 = *(long **)(param_1 + 0x48)" identifier = (pointer_expression "*(long **)(param_1 + 0x48)" * (cast_expression "(long **)(param_1 + 0x48)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;) (if_statement "if (plVar10 != (long *)0x0) {\n      if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n        (**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13);\n        if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        plVar10 = *(long **)(param_1 + 0x48);\n      }\n      puVar4 = *(undefined8 **)(lVar3 + 0x40);\n      local_48 = CONCAT44((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000);\n      local_58 = plVar10;\n      if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n        FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n      }\n      else {\n        *puVar4 = plVar10;\n        puVar4[1] = uStack_50;\n        puVar4[2] = local_48;\n        *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n      }\n    }" if (parenthesized_expression "(plVar10 != (long *)0x0)" ( (binary_expression "plVar10 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n        (**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13);\n        if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        plVar10 = *(long **)(param_1 + 0x48);\n      }\n      puVar4 = *(undefined8 **)(lVar3 + 0x40);\n      local_48 = CONCAT44((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000);\n      local_58 = plVar10;\n      if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n        FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n      }\n      else {\n        *puVar4 = plVar10;\n        puVar4[1] = uStack_50;\n        puVar4[2] = local_48;\n        *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n      }\n    }" { (if_statement "if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n        (**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13);\n        if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        plVar10 = *(long **)(param_1 + 0x48);\n      }" if (parenthesized_expression "((*(byte *)(plVar10 + 4) & 2) == 0)" ( (binary_expression "(*(byte *)(plVar10 + 4) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar10 + 4) & 2)" ( (binary_expression "*(byte *)(plVar10 + 4) & 2" (pointer_expression "*(byte *)(plVar10 + 4)" * (cast_expression "(byte *)(plVar10 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar10 + 4)" ( (binary_expression "plVar10 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        (**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13);\n        if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        plVar10 = *(long **)(param_1 + 0x48);\n      }" { (expression_statement "(**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13);" (call_expression "(**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13)" (parenthesized_expression "(**(code **)(*plVar10 + 0x70))" ( (pointer_expression "**(code **)(*plVar10 + 0x70)" * (pointer_expression "*(code **)(*plVar10 + 0x70)" * (cast_expression "(code **)(*plVar10 + 0x70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar10 + 0x70)" ( (binary_expression "*plVar10 + 0x70" (pointer_expression "*plVar10" * identifier) + number_literal) ))))) )) (argument_list "(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }" if (parenthesized_expression "((*(byte *)(plVar10 + 4) & 2) == 0)" ( (binary_expression "(*(byte *)(plVar10 + 4) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar10 + 4) & 2)" ( (binary_expression "*(byte *)(plVar10 + 4) & 2" (pointer_expression "*(byte *)(plVar10 + 4)" * (cast_expression "(byte *)(plVar10 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar10 + 4)" ( (binary_expression "plVar10 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }" { comment (expression_statement "FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");" (call_expression "FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size")" identifier (argument_list "("../../gold/output.h",0x163,"finalize_data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""finalize_data_size"" " string_content ") ))) ;) })) (expression_statement "plVar10 = *(long **)(param_1 + 0x48);" (assignment_expression "plVar10 = *(long **)(param_1 + 0x48)" identifier = (pointer_expression "*(long **)(param_1 + 0x48)" * (cast_expression "(long **)(param_1 + 0x48)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;) })) (expression_statement "puVar4 = *(undefined8 **)(lVar3 + 0x40);" (assignment_expression "puVar4 = *(undefined8 **)(lVar3 + 0x40)" identifier = (pointer_expression "*(undefined8 **)(lVar3 + 0x40)" * (cast_expression "(undefined8 **)(lVar3 + 0x40)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 0x40)" ( (binary_expression "lVar3 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "local_48 = CONCAT44((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000);" (assignment_expression "local_48 = CONCAT44((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000)" identifier = (call_expression "CONCAT44((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000)" identifier (argument_list "((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000)" ( (binary_expression "(-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20" (parenthesized_expression "(-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4)" ( (binary_expression "-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4" (unary_expression "-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0)" - (call_expression "(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((*(uint *)(plVar10[7] + 0x10) & 2) == 0)" ( (binary_expression "(*(uint *)(plVar10[7] + 0x10) & 2) == 0" (parenthesized_expression "(*(uint *)(plVar10[7] + 0x10) & 2)" ( (binary_expression "*(uint *)(plVar10[7] + 0x10) & 2" (pointer_expression "*(uint *)(plVar10[7] + 0x10)" * (cast_expression "(uint *)(plVar10[7] + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar10[7] + 0x10)" ( (binary_expression "plVar10[7] + 0x10" (subscript_expression "plVar10[7]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal) , number_literal )))) ;) (expression_statement "local_58 = plVar10;" (assignment_expression "local_58 = plVar10" identifier = identifier) ;) (if_statement "if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n        FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n      }\n      else {\n        *puVar4 = plVar10;\n        puVar4[1] = uStack_50;\n        puVar4[2] = local_48;\n        *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n      }" if (parenthesized_expression "(puVar4 == *(undefined8 **)(lVar3 + 0x48))" ( (binary_expression "puVar4 == *(undefined8 **)(lVar3 + 0x48)" identifier == (pointer_expression "*(undefined8 **)(lVar3 + 0x48)" * (cast_expression "(undefined8 **)(lVar3 + 0x48)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 0x48)" ( (binary_expression "lVar3 + 0x48" identifier + number_literal) ))))) )) (compound_statement "{\n        FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n      }" { (expression_statement "FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);" (call_expression "FUN_001c1130(lVar3 + 0x38,puVar4,&local_58)" identifier (argument_list "(lVar3 + 0x38,puVar4,&local_58)" ( (binary_expression "lVar3 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&local_58" & identifier) ))) ;) }) (else_clause "else {\n        *puVar4 = plVar10;\n        puVar4[1] = uStack_50;\n        puVar4[2] = local_48;\n        *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n      }" else (compound_statement "{\n        *puVar4 = plVar10;\n        puVar4[1] = uStack_50;\n        puVar4[2] = local_48;\n        *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n      }" { (expression_statement "*puVar4 = plVar10;" (assignment_expression "*puVar4 = plVar10" (pointer_expression "*puVar4" * identifier) = identifier) ;) (expression_statement "puVar4[1] = uStack_50;" (assignment_expression "puVar4[1] = uStack_50" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = local_48;" (assignment_expression "puVar4[2] = local_48" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;" (assignment_expression "*(undefined8 **)(lVar3 + 0x40) = puVar4 + 3" (pointer_expression "*(undefined8 **)(lVar3 + 0x40)" * (cast_expression "(undefined8 **)(lVar3 + 0x40)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 0x40)" ( (binary_expression "lVar3 + 0x40" identifier + number_literal) )))) = (binary_expression "puVar4 + 3" identifier + number_literal)) ;) }))) })) (if_statement "if (*(char *)(param_1 + 0x133) == '\0') {\n      uVar8 = 0;\n      if (*(byte *)(param_1 + 0x134) == 0) goto LAB_0021f9ad;\n    }\n    else {\n      uVar8 = 4;\n    }" if (parenthesized_expression "(*(char *)(param_1 + 0x133) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x133) == '\0'" (pointer_expression "*(char *)(param_1 + 0x133)" * (cast_expression "(char *)(param_1 + 0x133)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x133)" ( (binary_expression "param_1 + 0x133" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar8 = 0;\n      if (*(byte *)(param_1 + 0x134) == 0) goto LAB_0021f9ad;\n    }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (if_statement "if (*(byte *)(param_1 + 0x134) == 0) goto LAB_0021f9ad;" if (parenthesized_expression "(*(byte *)(param_1 + 0x134) == 0)" ( (binary_expression "*(byte *)(param_1 + 0x134) == 0" (pointer_expression "*(byte *)(param_1 + 0x134)" * (cast_expression "(byte *)(param_1 + 0x134)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x134)" ( (binary_expression "param_1 + 0x134" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0021f9ad;" goto statement_identifier ;)) }) (else_clause "else {\n      uVar8 = 4;\n    }" else (compound_statement "{\n      uVar8 = 4;\n    }" { (expression_statement "uVar8 = 4;" (assignment_expression "uVar8 = 4" identifier = number_literal) ;) }))) (expression_statement "local_48 = -0x8ffffffd;" (assignment_expression "local_48 = -0x8ffffffd" identifier = number_literal) ;) (expression_statement "puVar4 = *(undefined8 **)(lVar3 + 0x40);" (assignment_expression "puVar4 = *(undefined8 **)(lVar3 + 0x40)" identifier = (pointer_expression "*(undefined8 **)(lVar3 + 0x40)" * (cast_expression "(undefined8 **)(lVar3 + 0x40)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 0x40)" ( (binary_expression "lVar3 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "local_58 = (long *)CONCAT44(local_58._4_4_,*(byte *)(param_1 + 0x134) | uVar8);" (assignment_expression "local_58 = (long *)CONCAT44(local_58._4_4_,*(byte *)(param_1 + 0x134) | uVar8)" identifier = (cast_expression "(long *)CONCAT44(local_58._4_4_,*(byte *)(param_1 + 0x134) | uVar8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT44(local_58._4_4_,*(byte *)(param_1 + 0x134) | uVar8)" identifier (argument_list "(local_58._4_4_,*(byte *)(param_1 + 0x134) | uVar8)" ( (field_expression "local_58._4_4_" identifier . field_identifier) , (binary_expression "*(byte *)(param_1 + 0x134) | uVar8" (pointer_expression "*(byte *)(param_1 + 0x134)" * (cast_expression "(byte *)(param_1 + 0x134)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x134)" ( (binary_expression "param_1 + 0x134" identifier + number_literal) )))) | identifier) ))))) ;) (if_statement "if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n      FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n    }\n    else {\n      *puVar4 = local_58;\n      puVar4[1] = uStack_50;\n      puVar4[2] = 0xffffffff70000003;\n      *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n    }" if (parenthesized_expression "(puVar4 == *(undefined8 **)(lVar3 + 0x48))" ( (binary_expression "puVar4 == *(undefined8 **)(lVar3 + 0x48)" identifier == (pointer_expression "*(undefined8 **)(lVar3 + 0x48)" * (cast_expression "(undefined8 **)(lVar3 + 0x48)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 0x48)" ( (binary_expression "lVar3 + 0x48" identifier + number_literal) ))))) )) (compound_statement "{\n      FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n    }" { (expression_statement "FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);" (call_expression "FUN_001c1130(lVar3 + 0x38,puVar4,&local_58)" identifier (argument_list "(lVar3 + 0x38,puVar4,&local_58)" ( (binary_expression "lVar3 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&local_58" & identifier) ))) ;) }) (else_clause "else {\n      *puVar4 = local_58;\n      puVar4[1] = uStack_50;\n      puVar4[2] = 0xffffffff70000003;\n      *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n    }" else (compound_statement "{\n      *puVar4 = local_58;\n      puVar4[1] = uStack_50;\n      puVar4[2] = 0xffffffff70000003;\n      *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n    }" { (expression_statement "*puVar4 = local_58;" (assignment_expression "*puVar4 = local_58" (pointer_expression "*puVar4" * identifier) = identifier) ;) (expression_statement "puVar4[1] = uStack_50;" (assignment_expression "puVar4[1] = uStack_50" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = 0xffffffff70000003;" (assignment_expression "puVar4[2] = 0xffffffff70000003" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;" (assignment_expression "*(undefined8 **)(lVar3 + 0x40) = puVar4 + 3" (pointer_expression "*(undefined8 **)(lVar3 + 0x40)" * (cast_expression "(undefined8 **)(lVar3 + 0x40)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 0x40)" ( (binary_expression "lVar3 + 0x40" identifier + number_literal) )))) = (binary_expression "puVar4 + 3" identifier + number_literal)) ;) }))) })) (labeled_statement "LAB_0021f9ad:\n  if (*(long *)(param_1 + 0x60) != *(long *)(param_1 + 0x58)) {\n    uVar2 = FUN_001e1980(param_1 + 0x50,param_2);\n    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\nLAB_00220104:\n                    /* WARNING: Subroutine does not return */\n      FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n    }\n    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0') &&\n       (plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60))) {\n      do {\n        if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }\n        plVar10 = plVar10 + 7;\n      } while (*(long **)(param_1 + 0x60) != plVar10);\n    }\n    FUN_0033bfa0(param_1 + 0x58,uVar2);\n  }" statement_identifier : (if_statement "if (*(long *)(param_1 + 0x60) != *(long *)(param_1 + 0x58)) {\n    uVar2 = FUN_001e1980(param_1 + 0x50,param_2);\n    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\nLAB_00220104:\n                    /* WARNING: Subroutine does not return */\n      FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n    }\n    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0') &&\n       (plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60))) {\n      do {\n        if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }\n        plVar10 = plVar10 + 7;\n      } while (*(long **)(param_1 + 0x60) != plVar10);\n    }\n    FUN_0033bfa0(param_1 + 0x58,uVar2);\n  }" if (parenthesized_expression "(*(long *)(param_1 + 0x60) != *(long *)(param_1 + 0x58))" ( (binary_expression "*(long *)(param_1 + 0x60) != *(long *)(param_1 + 0x58)" (pointer_expression "*(long *)(param_1 + 0x60)" * (cast_expression "(long *)(param_1 + 0x60)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) )))) != (pointer_expression "*(long *)(param_1 + 0x58)" * (cast_expression "(long *)(param_1 + 0x58)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar2 = FUN_001e1980(param_1 + 0x50,param_2);\n    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\nLAB_00220104:\n                    /* WARNING: Subroutine does not return */\n      FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n    }\n    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0') &&\n       (plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60))) {\n      do {\n        if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }\n        plVar10 = plVar10 + 7;\n      } while (*(long **)(param_1 + 0x60) != plVar10);\n    }\n    FUN_0033bfa0(param_1 + 0x58,uVar2);\n  }" { (expression_statement "uVar2 = FUN_001e1980(param_1 + 0x50,param_2);" (assignment_expression "uVar2 = FUN_001e1980(param_1 + 0x50,param_2)" identifier = (call_expression "FUN_001e1980(param_1 + 0x50,param_2)" identifier (argument_list "(param_1 + 0x50,param_2)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) , identifier )))) ;) (if_statement "if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\nLAB_00220104:\n                    /* WARNING: Subroutine does not return */\n      FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n    }" if (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_00220104:\n                    /* WARNING: Subroutine does not return */\n      FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n    }" { (labeled_statement "LAB_00220104:\n                    /* WARNING: Subroutine does not return */\n      FUN_00352af0("../../gold/parameters.h",0x5c,"options");" statement_identifier : comment (expression_statement "FUN_00352af0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00352af0("../../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 *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0') &&\n       (plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60))) {\n      do {\n        if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }\n        plVar10 = plVar10 + 7;\n      } while (*(long **)(param_1 + 0x60) != plVar10);\n    }" if (parenthesized_expression "((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0') &&\n       (plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60)))" ( (binary_expression "(*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0') &&\n       (plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60))" (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779)" * (cast_expression "(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60))" ( (comma_expression "plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60)" (assignment_expression "plVar10 = *(long **)(param_1 + 0x58)" identifier = (pointer_expression "*(long **)(param_1 + 0x58)" * (cast_expression "(long **)(param_1 + 0x58)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) ))))) , (binary_expression "plVar10 != *(long **)(param_1 + 0x60)" identifier != (pointer_expression "*(long **)(param_1 + 0x60)" * (cast_expression "(long **)(param_1 + 0x60)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) )))))) ))) )) (compound_statement "{\n      do {\n        if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }\n        plVar10 = plVar10 + 7;\n      } while (*(long **)(param_1 + 0x60) != plVar10);\n    }" { (do_statement "do {\n        if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }\n        plVar10 = plVar10 + 7;\n      } while (*(long **)(param_1 + 0x60) != plVar10);" do (compound_statement "{\n        if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }\n        plVar10 = plVar10 + 7;\n      }" { (if_statement "if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }" if (parenthesized_expression "(((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c)))))" ( (binary_expression "((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))" (parenthesized_expression "((*(byte *)(*plVar10 + 0x3a) & 7) == 0)" ( (binary_expression "(*(byte *)(*plVar10 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)(*plVar10 + 0x3a) & 7)" ( (binary_expression "*(byte *)(*plVar10 + 0x3a) & 7" (pointer_expression "*(byte *)(*plVar10 + 0x3a)" * (cast_expression "(byte *)(*plVar10 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar10 + 0x3a)" ( (binary_expression "*plVar10 + 0x3a" (pointer_expression "*plVar10" * identifier) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))" ( (parenthesized_expression "((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c)))" ( (binary_expression "(*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))" (binary_expression "(*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0" (parenthesized_expression "(*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1)" ( (binary_expression "*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1" (pointer_expression "*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c)" * (cast_expression "(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(*plVar10 + 0x10) + 0x3c)" ( (binary_expression "*(long *)(*plVar10 + 0x10) + 0x3c" (pointer_expression "*(long *)(*plVar10 + 0x10)" * (cast_expression "(long *)(*plVar10 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar10 + 0x10)" ( (binary_expression "*plVar10 + 0x10" (pointer_expression "*plVar10" * identifier) + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) && (parenthesized_expression "(lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))" ( (comma_expression "lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c)" (assignment_expression "lVar3 = plVar10[2]" identifier = (subscript_expression "plVar10[2]" identifier [ number_literal ])) , (binary_expression "(int)plVar10[3] == *(int *)(lVar3 + 0x22c)" (cast_expression "(int)plVar10[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar10[3]" identifier [ number_literal ])) == (pointer_expression "*(int *)(lVar3 + 0x22c)" * (cast_expression "(int *)(lVar3 + 0x22c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x22c)" ( (binary_expression "lVar3 + 0x22c" identifier + number_literal) )))))) ))) )) ))) )) (compound_statement "{\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }" { (expression_statement "lVar5 = *(long *)(lVar3 + 0x248);" (assignment_expression "lVar5 = *(long *)(lVar3 + 0x248)" identifier = (pointer_expression "*(long *)(lVar3 + 0x248)" * (cast_expression "(long *)(lVar3 + 0x248)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x248)" ( (binary_expression "lVar3 + 0x248" identifier + number_literal) ))))) ;) (expression_statement "lVar11 = *(long *)(lVar3 + 0x238);" (assignment_expression "lVar11 = *(long *)(lVar3 + 0x238)" identifier = (pointer_expression "*(long *)(lVar3 + 0x238)" * (cast_expression "(long *)(lVar3 + 0x238)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x238)" ( (binary_expression "lVar3 + 0x238" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = plVar10[5];" (assignment_expression "uVar9 = plVar10[5]" identifier = (subscript_expression "plVar10[5]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = (ulong)*(uint *)(lVar3 + 0x250);" (assignment_expression "uVar12 = (ulong)*(uint *)(lVar3 + 0x250)" identifier = (binary_expression "(ulong)*(uint *)(lVar3 + 0x250)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(lVar3 + 0x250)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x250)" ( (binary_expression "lVar3 + 0x250" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = (ulong)*(uint *)(lVar3 + 0x240);" (assignment_expression "uVar6 = (ulong)*(uint *)(lVar3 + 0x240)" identifier = (binary_expression "(ulong)*(uint *)(lVar3 + 0x240)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(lVar3 + 0x240)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x240)" ( (binary_expression "lVar3 + 0x240" identifier + number_literal) ))))) ;) (if_statement "if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }" if (parenthesized_expression "((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240)))" ( (binary_expression "(lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))" (parenthesized_expression "(lVar5 == lVar11)" ( (binary_expression "lVar5 == lVar11" identifier == identifier) )) && (parenthesized_expression "(*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))" ( (binary_expression "*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240)" (pointer_expression "*(uint *)(lVar3 + 0x250)" * (cast_expression "(uint *)(lVar3 + 0x250)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x250)" ( (binary_expression "lVar3 + 0x250" identifier + number_literal) )))) == (pointer_expression "*(uint *)(lVar3 + 0x240)" * (cast_expression "(uint *)(lVar3 + 0x240)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x240)" ( (binary_expression "lVar3 + 0x240" identifier + number_literal) ))))) ))) )) (compound_statement "{\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }" { (expression_statement "uVar6 = FUN_0022d9f0(lVar3 + 0xf8);" (assignment_expression "uVar6 = FUN_0022d9f0(lVar3 + 0xf8)" identifier = (call_expression "FUN_0022d9f0(lVar3 + 0xf8)" identifier (argument_list "(lVar3 + 0xf8)" ( (binary_expression "lVar3 + 0xf8" identifier + number_literal) )))) ;) (expression_statement "FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);" (call_expression "FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0)" identifier (argument_list "(lVar3 + 0x238,uVar6 >> 3,0)" ( (binary_expression "lVar3 + 0x238" identifier + number_literal) , (binary_expression "uVar6 >> 3" identifier >> number_literal) , number_literal ))) ;) (expression_statement "uVar6 = (ulong)*(uint *)(lVar3 + 0x240);" (assignment_expression "uVar6 = (ulong)*(uint *)(lVar3 + 0x240)" identifier = (binary_expression "(ulong)*(uint *)(lVar3 + 0x240)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(lVar3 + 0x240)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x240)" ( (binary_expression "lVar3 + 0x240" identifier + number_literal) ))))) ;) (expression_statement "lVar11 = *(long *)(lVar3 + 0x238);" (assignment_expression "lVar11 = *(long *)(lVar3 + 0x238)" identifier = (pointer_expression "*(long *)(lVar3 + 0x238)" * (cast_expression "(long *)(lVar3 + 0x238)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x238)" ( (binary_expression "lVar3 + 0x238" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = (ulong)*(uint *)(lVar3 + 0x250);" (assignment_expression "uVar12 = (ulong)*(uint *)(lVar3 + 0x250)" identifier = (binary_expression "(ulong)*(uint *)(lVar3 + 0x250)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(lVar3 + 0x250)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x250)" ( (binary_expression "lVar3 + 0x250" identifier + number_literal) ))))) ;) (expression_statement "lVar5 = *(long *)(lVar3 + 0x248);" (assignment_expression "lVar5 = *(long *)(lVar3 + 0x248)" identifier = (pointer_expression "*(long *)(lVar3 + 0x248)" * (cast_expression "(long *)(lVar3 + 0x248)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x248)" ( (binary_expression "lVar3 + 0x248" identifier + number_literal) ))))) ;) })) (expression_statement "uVar7 = uVar9 >> 3;" (assignment_expression "uVar7 = uVar9 >> 3" identifier = (binary_expression "uVar9 >> 3" identifier >> number_literal)) ;) (if_statement "if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }" if (parenthesized_expression "(uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6)" ( (binary_expression "uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6" identifier < (binary_expression "(uVar12 + (lVar5 - lVar11) * 8) - uVar6" (parenthesized_expression "(uVar12 + (lVar5 - lVar11) * 8)" ( (binary_expression "uVar12 + (lVar5 - lVar11) * 8" identifier + (binary_expression "(lVar5 - lVar11) * 8" (parenthesized_expression "(lVar5 - lVar11)" ( (binary_expression "lVar5 - lVar11" identifier - identifier) )) * number_literal)) )) - identifier)) )) (compound_statement "{\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }" { (expression_statement "puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);" (assignment_expression "puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8)" identifier = (cast_expression "(ulong *)(lVar11 + (uVar9 >> 9) * 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + (uVar9 >> 9) * 8)" ( (binary_expression "lVar11 + (uVar9 >> 9) * 8" identifier + (binary_expression "(uVar9 >> 9) * 8" (parenthesized_expression "(uVar9 >> 9)" ( (binary_expression "uVar9 >> 9" identifier >> number_literal) )) * number_literal)) )))) ;) (expression_statement "*puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);" (assignment_expression "*puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f)" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 1L << ((byte)uVar7 & 0x3f)" (pointer_expression "*puVar1" * identifier) | (binary_expression "1L << ((byte)uVar7 & 0x3f)" number_literal << (parenthesized_expression "((byte)uVar7 & 0x3f)" ( (binary_expression "(byte)uVar7 & 0x3f" (cast_expression "(byte)uVar7" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))))) ;) })) })) (expression_statement "plVar10 = plVar10 + 7;" (assignment_expression "plVar10 = plVar10 + 7" identifier = (binary_expression "plVar10 + 7" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(long **)(param_1 + 0x60) != plVar10)" ( (binary_expression "*(long **)(param_1 + 0x60) != plVar10" (pointer_expression "*(long **)(param_1 + 0x60)" * (cast_expression "(long **)(param_1 + 0x60)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) )))) != identifier) )) ;) })) (expression_statement "FUN_0033bfa0(param_1 + 0x58,uVar2);" (call_expression "FUN_0033bfa0(param_1 + 0x58,uVar2)" identifier (argument_list "(param_1 + 0x58,uVar2)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) , identifier ))) ;) }))) (expression_statement "plVar10 = (long *)*param_3;" (assignment_expression "plVar10 = (long *)*param_3" identifier = (cast_expression "(long *)*param_3" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) (if_statement "if (plVar10 != (long *)param_3[1]) {\n    do {\n      if (*(long *)(*plVar10 + 0x308) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[1] != plVar10);\n  }" if (parenthesized_expression "(plVar10 != (long *)param_3[1])" ( (binary_expression "plVar10 != (long *)param_3[1]" identifier != (cast_expression "(long *)param_3[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) )) (compound_statement "{\n    do {\n      if (*(long *)(*plVar10 + 0x308) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[1] != plVar10);\n  }" { (do_statement "do {\n      if (*(long *)(*plVar10 + 0x308) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[1] != plVar10);" do (compound_statement "{\n      if (*(long *)(*plVar10 + 0x308) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    }" { (if_statement "if (*(long *)(*plVar10 + 0x308) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }" if (parenthesized_expression "(*(long *)(*plVar10 + 0x308) != 0)" ( (binary_expression "*(long *)(*plVar10 + 0x308) != 0" (pointer_expression "*(long *)(*plVar10 + 0x308)" * (cast_expression "(long *)(*plVar10 + 0x308)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar10 + 0x308)" ( (binary_expression "*plVar10 + 0x308" (pointer_expression "*plVar10" * identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }" { (expression_statement "FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));" (call_expression "FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8))" identifier (argument_list "(param_1,*(undefined8 *)(*plVar10 + 8))" ( identifier , (pointer_expression "*(undefined8 *)(*plVar10 + 8)" * (cast_expression "(undefined8 *)(*plVar10 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar10 + 8)" ( (binary_expression "*plVar10 + 8" (pointer_expression "*plVar10" * identifier) + number_literal) )))) ))) ;) })) (expression_statement "plVar10 = plVar10 + 1;" (assignment_expression "plVar10 = plVar10 + 1" identifier = (binary_expression "plVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((long *)param_3[1] != plVar10)" ( (binary_expression "(long *)param_3[1] != plVar10" (cast_expression "(long *)param_3[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) != identifier) )) ;) })) (expression_statement "plVar10 = (long *)param_3[3];" (assignment_expression "plVar10 = (long *)param_3[3]" identifier = (cast_expression "(long *)param_3[3]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) ;) (if_statement "if (plVar10 != (long *)param_3[4]) {\n    do {\n      if (*(long *)(*plVar10 + 0xf8) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[4] != plVar10);\n  }" if (parenthesized_expression "(plVar10 != (long *)param_3[4])" ( (binary_expression "plVar10 != (long *)param_3[4]" identifier != (cast_expression "(long *)param_3[4]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[4]" identifier [ number_literal ]))) )) (compound_statement "{\n    do {\n      if (*(long *)(*plVar10 + 0xf8) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[4] != plVar10);\n  }" { (do_statement "do {\n      if (*(long *)(*plVar10 + 0xf8) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[4] != plVar10);" do (compound_statement "{\n      if (*(long *)(*plVar10 + 0xf8) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    }" { (if_statement "if (*(long *)(*plVar10 + 0xf8) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }" if (parenthesized_expression "(*(long *)(*plVar10 + 0xf8) != 0)" ( (binary_expression "*(long *)(*plVar10 + 0xf8) != 0" (pointer_expression "*(long *)(*plVar10 + 0xf8)" * (cast_expression "(long *)(*plVar10 + 0xf8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar10 + 0xf8)" ( (binary_expression "*plVar10 + 0xf8" (pointer_expression "*plVar10" * identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }" { (expression_statement "FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));" (call_expression "FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8))" identifier (argument_list "(param_1,*(undefined8 *)(*plVar10 + 8))" ( identifier , (pointer_expression "*(undefined8 *)(*plVar10 + 8)" * (cast_expression "(undefined8 *)(*plVar10 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar10 + 8)" ( (binary_expression "*plVar10 + 8" (pointer_expression "*plVar10" * identifier) + number_literal) )))) ))) ;) })) (expression_statement "plVar10 = plVar10 + 1;" (assignment_expression "plVar10 = plVar10 + 1" identifier = (binary_expression "plVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((long *)param_3[4] != plVar10)" ( (binary_expression "(long *)param_3[4] != plVar10" (cast_expression "(long *)param_3[4]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[4]" identifier [ number_literal ])) != identifier) )) ;) })) (expression_statement "lVar3 = param_1;" (assignment_expression "lVar3 = param_1" identifier = identifier) ;) (if_statement "if ((*(long *)(param_1 + 0x158) != 0) && (lVar3 = FUN_00335c60(), lVar3 != 0)) {\n    puVar4 = (undefined8 *)FUN_0049cb60(0x40);\n    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n    uVar2 = *(undefined8 *)(param_1 + 0x158);\n    *puVar4 = &PTR_FUN_00670da0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0xffffffffffffffff;\n    puVar4[5] = 0;\n    puVar4[6] = 1;\n    puVar4[7] = uVar2;\n    lVar3 = 0;\n    FUN_003839a0(param_2,".gnu.attributes",0x6ffffff5,0,puVar4,0);\n    return lVar3;\n  }" if (parenthesized_expression "((*(long *)(param_1 + 0x158) != 0) && (lVar3 = FUN_00335c60(), lVar3 != 0))" ( (binary_expression "(*(long *)(param_1 + 0x158) != 0) && (lVar3 = FUN_00335c60(), lVar3 != 0)" (parenthesized_expression "(*(long *)(param_1 + 0x158) != 0)" ( (binary_expression "*(long *)(param_1 + 0x158) != 0" (pointer_expression "*(long *)(param_1 + 0x158)" * (cast_expression "(long *)(param_1 + 0x158)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x158)" ( (binary_expression "param_1 + 0x158" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(lVar3 = FUN_00335c60(), lVar3 != 0)" ( (comma_expression "lVar3 = FUN_00335c60(), lVar3 != 0" (assignment_expression "lVar3 = FUN_00335c60()" identifier = (call_expression "FUN_00335c60()" identifier (argument_list "()" ( )))) , (binary_expression "lVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    puVar4 = (undefined8 *)FUN_0049cb60(0x40);\n    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n    uVar2 = *(undefined8 *)(param_1 + 0x158);\n    *puVar4 = &PTR_FUN_00670da0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0xffffffffffffffff;\n    puVar4[5] = 0;\n    puVar4[6] = 1;\n    puVar4[7] = uVar2;\n    lVar3 = 0;\n    FUN_003839a0(param_2,".gnu.attributes",0x6ffffff5,0,puVar4,0);\n    return lVar3;\n  }" { (expression_statement "puVar4 = (undefined8 *)FUN_0049cb60(0x40);" (assignment_expression "puVar4 = (undefined8 *)FUN_0049cb60(0x40)" identifier = (cast_expression "(undefined8 *)FUN_0049cb60(0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0049cb60(0x40)" identifier (argument_list "(0x40)" ( number_literal ))))) ;) (expression_statement "*(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;" (assignment_expression "*(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 4)" * (cast_expression "(byte *)(puVar4 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 4)" ( (binary_expression "puVar4 + 4" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar4 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 4)" * (cast_expression "(byte *)(puVar4 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 4)" ( (binary_expression "puVar4 + 4" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x158);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x158)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x158)" * (cast_expression "(undefined8 *)(param_1 + 0x158)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x158)" ( (binary_expression "param_1 + 0x158" identifier + number_literal) ))))) ;) (expression_statement "*puVar4 = &PTR_FUN_00670da0;" (assignment_expression "*puVar4 = &PTR_FUN_00670da0" (pointer_expression "*puVar4" * identifier) = (pointer_expression "&PTR_FUN_00670da0" & identifier)) ;) (expression_statement "puVar4[1] = 0;" (assignment_expression "puVar4[1] = 0" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[2] = 0;" (assignment_expression "puVar4[2] = 0" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[3] = 0xffffffffffffffff;" (assignment_expression "puVar4[3] = 0xffffffffffffffff" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[5] = 0;" (assignment_expression "puVar4[5] = 0" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[6] = 1;" (assignment_expression "puVar4[6] = 1" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[7] = uVar2;" (assignment_expression "puVar4[7] = uVar2" (subscript_expression "puVar4[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" identifier = number_literal) ;) (expression_statement "FUN_003839a0(param_2,".gnu.attributes",0x6ffffff5,0,puVar4,0);" (call_expression "FUN_003839a0(param_2,".gnu.attributes",0x6ffffff5,0,puVar4,0)" identifier (argument_list "(param_2,".gnu.attributes",0x6ffffff5,0,puVar4,0)" ( identifier , (string_literal "".gnu.attributes"" " string_content ") , number_literal , number_literal , identifier , number_literal ))) ;) (return_statement "return lVar3;" return identifier ;) })) (return_statement "return lVar3;" return identifier ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n/* WARNING: Enum "STT": Some values do not have unique names */\n/* WARNING: Enum "STB": Some values do not have unique names */\n/* DWARF original prototype: void do_finalize_sections(Target_powerpc<64,_false> * this, Layout *\n   layout, Input_objects * input_objects, Symbol_table * symtab) */\n\nvoid __thiscall\nanon_unknown.dwarf_6a1ea8::Target_powerpc<64,_false>::do_finalize_sections\n          (Target_powerpc<64,_false> *this,Layout *layout,Input_objects *input_objects,\n          Symbol_table *symtab)\n\n{\n  undefined1 *puVar1;\n  uint uVar2;\n  uint uVar3;\n  _Hash_node_base *p_Var4;\n  Powerpc_relobj<64,_false> *this_00;\n  Output_segment *pOVar5;\n  Output_data_dynamic *pOVar6;\n  Output_data_plt_powerpc<64,_false> *plt_got;\n  iterator iVar7;\n  Sized_relobj_file<64,_false> *pSVar8;\n  vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *pasd;\n  Attributes_section_data *pAVar9;\n  pointer ppOVar10;\n  Output_section *pOVar11;\n  __normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>_>\n  __last;\n  __normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>_>\n  __first;\n  Reloc_section *reloc_section;\n  size_t sVar12;\n  Output_data_save_res<64,_false> *this_01;\n  Output_section_data *posd;\n  Input_file *pIVar13;\n  Elf_WXword EVar14;\n  Output_data *pOVar15;\n  ulong uVar16;\n  uint uVar17;\n  ulong uVar18;\n  ulong uVar19;\n  pointer pCVar20;\n  pointer ppRVar21;\n  pointer ppDVar22;\n  char *r_off;\n  Powerpc_relobj<64,_false> *pPVar23;\n  Input_file *pIVar24;\n  ulong uVar25;\n  Output_data_glink<64,_false> *pOVar26;\n  undefined8 in_stack_ffffffffffffff90;\n  _TmpBuf __buf;\n  \n  if (gold::parameters->doing_static_link_valid_ == false) {\n                    /* WARNING: Subroutine does not return */\n    gold::Parameters::doing_static_link((Parameters *)this,(Parameters *)layout);\n  }\n  r_off = (char *)layout;\n  pPVar23 = (Powerpc_relobj<64,_false> *)this;\n  if (gold::parameters->doing_static_link_ != false) {\n    pPVar23 = (Powerpc_relobj<64,_false> *)symtab;\n    if (this->iplt_ == (Output_data_plt_powerpc<64,_false> *)0x0) {\n      gold::Symbol_table::define_as_constant\n                (symtab,"__rela_iplt_start",(char *)0x0,PREDEFINED,0,0,STT_NOTYPE,STB_GLOBAL,\n                 STV_HIDDEN,'\0',true,false);\n      in_stack_ffffffffffffff90 = 0;\n      r_off = "__rela_iplt_end";\n      gold::Symbol_table::define_as_constant\n                (symtab,"__rela_iplt_end",(char *)0x0,PREDEFINED,0,0,STT_NOTYPE,STB_GLOBAL,\n                 STV_HIDDEN,'\0',true,false);\n    }\n    else {\n      pOVar15 = (Output_data *)this->iplt_->rel_;\n      gold::Symbol_table::define_in_output_data\n                (symtab,"__rela_iplt_start",(char *)0x0,PREDEFINED,pOVar15,0,0,STT_NOTYPE,STB_GLOBAL\n                 ,STV_HIDDEN,'\0',false,true);\n      r_off = "__rela_iplt_end";\n      gold::Symbol_table::define_in_output_data\n                (symtab,"__rela_iplt_end",(char *)0x0,PREDEFINED,pOVar15,0,0,STT_NOTYPE,STB_GLOBAL,\n                 STV_HIDDEN,'\0',true,true);\n    }\n  }\n  for (p_Var4 = (symtab->table_)._M_h._M_before_begin._M_nxt; p_Var4 != (_Hash_node_base *)0x0;\n      p_Var4 = p_Var4->_M_nxt) {\n    this_00 = (Powerpc_relobj<64,_false> *)p_Var4[3]._M_nxt;\n    if (((((*(uint *)((long)&(this_00->super_Sized_relobj_file<64,_false>).\n                             super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2 +\n                     4) == 0) &&\n          (((this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj\n            .super_Object.shnum_ & 0x70000) == 0)) &&\n         (((this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n           super_Object.shnum_ & 0x40000000) != 0)) &&\n        ((pOVar5 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                   &(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                    super_Relobj.super_Object.name_._M_string_length)->output_segment,\n         ((ulong)pOVar5->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish & 0x100000000) == 0 &&\n         (uVar17 = *(uint *)((long)&pOVar5->output_lists_[0x16].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage + 4), uVar17 != 0)))) &&\n       (uVar17 == *(uint *)&(this_00->super_Sized_relobj_file<64,_false>).\n                            super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2))\n    {\n      ppOVar10 = pOVar5->output_lists_[0x19].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish;\n      uVar18 = (ulong)(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                      super_Relobj.super_Object.xindex_ >> 4;\n      if ((ulong)((long)pOVar5->output_lists_[0x19].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage - (long)ppOVar10 >> 4) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n        Powerpc_relobj<64,_false>::get_opd_discard(pPVar23,(Address)r_off);\n      }\n      if ((*(byte *)((long)ppOVar10 + uVar18 * 0x10 + 4) & 1) != 0) {\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        pPVar23 = this_00;\n        gold::Symbol::set_undefined((Symbol *)this_00);\n        uVar17 = (this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                 super_Relobj.super_Object.shnum_;\n        *(uint *)((long)&(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>\n                         .super_Relobj.super_Object.name_.field_2 + 4) = 0xffffffff;\n        (this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n        super_Object.shnum_ = uVar17 & 0x7ffffcff | 0x80000000;\n      }\n    }\n  }\n  if (gold::parameters->options_ == (General_options *)0x0) goto LAB_00220104;\n  if ((gold::parameters->options_->relocatable_).value == false) {\n    this_01 = (Output_data_save_res<64,_false> *)operator_new(0x40);\n    *(undefined8 *)&this_01->field_0x8 = 0;\n    this_01->field_0x20 = this_01->field_0x20 & 0xe0;\n    *(undefined8 *)&this_01->field_0x10 = 0;\n    *(undefined8 *)&this_01->field_0x18 = 0xffffffffffffffff;\n    *(undefined8 *)&this_01->field_0x28 = 0;\n    *(undefined8 *)&this_01->field_0x30 = 4;\n    *(undefined ***)this_01 = &PTR__Output_data_save_res_00664fb8;\n    this_01->contents_ = (uchar *)0x0;\n                    /* try { // try from 0021fc56 to 0021fe51 has its CatchHandler @ 00220146 */\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_savegpr0_",0xe,0x1f,savegpr0<false>,savegpr0_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_restgpr0_",0xe,0x1d,restgpr0<false>,restgpr0_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_restgpr0_",0x1e,0x1f,restgpr0<false>,restgpr0_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_savegpr1_",0xe,0x1f,savegpr1<false>,savegpr1_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_restgpr1_",0xe,0x1f,restgpr1<false>,restgpr1_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_savefpr_",0xe,0x1f,savefpr<false>,savefpr0_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_restfpr_",0xe,0x1d,restfpr<false>,restfpr0_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_restfpr_",0x1e,0x1f,restfpr<false>,restfpr0_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"._savef",0xe,0x1f,savefpr<false>,savefpr1_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"._restf",0xe,0x1f,restfpr<false>,restfpr1_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_savevr_",0x14,0x1f,savevr<false>,savevr_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_restvr_",0x14,0x1f,restvr<false>,restvr_tail<false>);\n    this->savres_section_ = this_01;\n    gold::Layout::add_output_section_data\n              (layout,".text",1,6,(Output_section_data *)this_01,ORDER_TEXT,false);\n    got_section((Target_powerpc<64,_false> *)&this->got_,symtab,layout);\n    in_stack_ffffffffffffff90 = 0x21fea3;\n    make_brlt_section(this,layout);\n    if (gold::parameters->options_ == (General_options *)0x0) goto LAB_00220104;\n    if (((gold::parameters->options_->toc_sort_).value != false) &&\n       (pOVar11 = (this->got_->super_Output_data_got<64,_false>).super_Output_data_got_base.\n                  super_Output_section_data_build.super_Output_section_data.output_section_,\n       pOVar11 != (Output_section *)0x0)) {\n      __last._M_current =\n           (pOVar11->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish;\n      __first._M_current =\n           (pOVar11->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_start;\n      if (0x3f < (ulong)((long)__last._M_current - (long)__first._M_current)) {\n        std::\n        _Temporary_buffer<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>_>,_gold::Output_section::Input_section>\n        ::_Temporary_buffer(&__buf,__first,__last);\n        if (__buf._M_buffer == (pointer)0x0) {\n                    /* try { // try from 002200fa to 002200fe has its CatchHandler @ 0022013e */\n          std::\n          __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n                    (__first._M_current,__last._M_current);\n        }\n        else {\n                    /* try { // try from 0021ff1d to 0021ff21 has its CatchHandler @ 0022013e */\n          std::\n          __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,_gold::Output_section::Input_section*,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n                    (__first._M_current,__last._M_current);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        operator_delete(__buf._M_buffer,(nothrow_t *)&std::nothrow);\n      }\n    }\n  }\n  pOVar6 = layout->dynamic_data_;\n  if (pOVar6 != (Output_data_dynamic *)0x0) {\n    pOVar15 = (Output_data *)0x0;\n    plt_got = this->plt_;\n    if (plt_got != (Output_data_plt_powerpc<64,_false> *)0x0) {\n      pOVar15 = (Output_data *)plt_got->rel_;\n    }\n    gold::Layout::add_target_dynamic_tags\n              (layout,false,(Output_data *)plt_got,pOVar15,\n               (Output_data_reloc_generic *)this->rela_dyn_,true,false);\n    pOVar26 = this->glink_;\n    if (pOVar26 != (Output_data_glink<64,_false> *)0x0) {\n      if ((*(uint *)&pOVar26->field_0x20 & 2) == 0) {\n        (**(code **)((char *)pOVar26->invalid_address + 0x70))(pOVar26,in_stack_ffffffffffffff90);\n        if ((*(uint *)&pOVar26->field_0x20 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        pOVar26 = this->glink_;\n      }\n      iVar7._M_current =\n           (pOVar6->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_finish;\n      __buf._M_buffer =\n           (pointer)CONCAT44((-(uint)((*(uint *)&pOVar26->targ_->field_0x10 & 2) == 0) & 0xfffffff4)\n                             + 0x20,0x70000000);\n      __buf._M_original_len = (size_type)pOVar26;\n      if (iVar7._M_current ==\n          (pOVar6->entries_).\n          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ._M_impl._M_end_of_storage) {\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar7,(Dynamic_entry *)&__buf);\n      }\n      else {\n        ((iVar7._M_current)->u_).sym = (Symbol *)pOVar26;\n        (iVar7._M_current)->od2 = (Output_data *)__buf._M_len;\n        *(pointer *)&(iVar7._M_current)->tag_ = __buf._M_buffer;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar7._M_current + 1;\n      }\n    }\n    if (this->has_localentry0_ == false) {\n      uVar17 = 0;\n      if (this->has_tls_get_addr_opt_ == false) goto LAB_0021f9ad;\n    }\n    else {\n      uVar17 = 4;\n    }\n    __buf._M_buffer = (pointer)0xffffffff70000003;\n    iVar7._M_current =\n         (pOVar6->entries_).\n         super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n         ._M_impl._M_finish;\n    __buf._M_original_len =\n         CONCAT44(__buf._M_original_len._4_4_,this->has_tls_get_addr_opt_ | uVar17);\n    if (iVar7._M_current ==\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_end_of_storage) {\n      std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar6->entries_,iVar7,(Dynamic_entry *)&__buf);\n    }\n    else {\n      (iVar7._M_current)->u_ = (anon_union_8_4_94c5dad9_for_u_)__buf._M_original_len;\n      (iVar7._M_current)->od2 = (Output_data *)__buf._M_len;\n      (iVar7._M_current)->tag_ = DT_MIPS_ICHECKSUM;\n      (iVar7._M_current)->offset_ = 0xffffffff;\n      (pOVar6->entries_).\n      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = iVar7._M_current + 1;\n    }\n  }\nLAB_0021f9ad:\n  if ((this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n      super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n      ._M_impl._M_finish !=\n      (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n      super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n      ._M_impl._M_start) {\n    reloc_section = rela_dyn_section((Target_powerpc<64,_false> *)&this->rela_dyn_,layout);\n    if (gold::parameters->options_ == (General_options *)0x0) {\nLAB_00220104:\n                    /* WARNING: Subroutine does not return */\n      gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }\n    if (((gold::parameters->options_->toc_optimize_).value != false) &&\n       (pCVar20 = (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n                  super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n                  ._M_impl._M_start,\n       pCVar20 !=\n       (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n       super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n       ._M_impl._M_finish)) {\n      do {\n        if (((pCVar20->sym_->field_0x3a & 7) == 0) &&\n           (((ulong)((pCVar20->sym_->u1_).output_segment)->output_lists_[2].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_finish & 0x100000000) != 0)) {\n          pSVar8 = pCVar20->relobj_;\n          uVar17 = *(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.name_._M_dataplus._M_p + 4);\n          if (pCVar20->shndx_ == uVar17) {\n            pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.input_file_;\n            pIVar24 = (Input_file *)\n                      pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                      field_2._M_allocated_capacity;\n            uVar18 = pCVar20->address_;\n            uVar2 = (uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.offset_;\n            uVar25 = (ulong)uVar2;\n            uVar3 = *(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                     super_Object.name_.field_2 + 8);\n            uVar19 = (ulong)uVar3;\n            if ((pIVar13 == pIVar24) && (uVar2 == uVar3)) {\n              EVar14 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size\n                                 (&pSVar8->elf_file_,uVar17);\n              std::vector<bool,_std::allocator<bool>_>::resize\n                        ((vector<bool,_std::allocator<bool>_> *)\n                         &pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                          field_2,EVar14 >> 3,false);\n              uVar19 = (ulong)*(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                               super_Object.name_.field_2 + 8);\n              pIVar24 = (Input_file *)\n                        pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                        field_2._M_allocated_capacity;\n              uVar25 = (ulong)(uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.offset_;\n              pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.\n                        input_file_;\n            }\n            uVar16 = uVar18 >> 3;\n            if (uVar16 < (uVar25 + ((long)pIVar13 - (long)pIVar24) * 8) - uVar19) {\n              (&pIVar24->input_argument_)[uVar18 >> 9] =\n                   (Input_file_argument *)\n                   ((ulong)(&pIVar24->input_argument_)[uVar18 >> 9] | 1L << ((byte)uVar16 & 0x3f));\n            }\n          }\n        }\n        pCVar20 = pCVar20 + 1;\n      } while ((this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n               super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n               ._M_impl._M_finish != pCVar20);\n    }\n    gold::Copy_relocs<4,_64,_false>::emit\n              (&(this->copy_relocs_).super_Copy_relocs<4,_64,_false>,reloc_section);\n  }\n  ppRVar21 = (input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_start;\n  if (ppRVar21 !=\n      (input_objects->relobj_list_).\n      super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish) {\n    do {\n      pasd = (*ppRVar21)[4].map_to_relocatable_relocs_;\n      if (pasd != (vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *)\n                  0x0) {\n        merge_object_attributes\n                  (this,((*ppRVar21)->super_Object).name_._M_dataplus._M_p,\n                   (Attributes_section_data *)pasd);\n      }\n      ppRVar21 = ppRVar21 + 1;\n    } while ((input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish !=\n             ppRVar21);\n  }\n  ppDVar22 = (input_objects->dynobj_list_).\n             super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>._M_impl._M_start;\n  if (ppDVar22 !=\n      (input_objects->dynobj_list_).\n      super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>._M_impl._M_finish) {\n    do {\n      pAVar9 = *(Attributes_section_data **)((long)&(*ppDVar22)[1].soname_.field_2 + 8);\n      if (pAVar9 != (Attributes_section_data *)0x0) {\n        merge_object_attributes(this,((*ppDVar22)->super_Object).name_._M_dataplus._M_p,pAVar9);\n      }\n      ppDVar22 = ppDVar22 + 1;\n    } while ((input_objects->dynobj_list_).\n             super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>._M_impl._M_finish !=\n             ppDVar22);\n  }\n  if ((this->attributes_section_data_ != (Attributes_section_data *)0x0) &&\n     (sVar12 = gold::Attributes_section_data::size(this->attributes_section_data_), sVar12 != 0)) {\n    posd = (Output_section_data *)operator_new(0x40);\n    puVar1 = &(posd->super_Output_data).field_0x20;\n    *puVar1 = *puVar1 & 0xe0;\n    pAVar9 = this->attributes_section_data_;\n    (posd->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_attributes_section_data_00670da0;\n    (posd->super_Output_data).address_ = 0;\n    (posd->super_Output_data).data_size_ = 0;\n    (posd->super_Output_data).offset_ = -1;\n    posd->output_section_ = (Output_section *)0x0;\n    posd->addralign_ = 1;\n    posd[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)pAVar9;\n    gold::Layout::add_output_section_data\n              (layout,".gnu.attributes",0x6ffffff5,0,posd,ORDER_INVALID,false);\n    return;\n  }\n  return;\n}\n\n" comment comment comment comment comment comment (declaration "void __thiscall\nanon_unknown.dwarf_6a1ea8::Target_powerpc<64,_false>::do_finalize_sections\n          (Target_powerpc<64,_false> *this,Layout *layout,Input_objects *input_objects,\n          Symbol_table *symtab)\n\n{\n  undefined1 *puVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "anon_unknown.dwarf_6a1ea8::" identifier . identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "_false>::do_finalize_sections\n          (Target_powerpc<64,_false> *this,Layout *layout,Input_objects *input_objects,\n          Symbol_table *symtab)\n\n{\n  undefined1" identifier > : : (function_declarator "do_finalize_sections\n          (Target_powerpc<64,_false> *this,Layout *layout,Input_objects *input_objects,\n          Symbol_table *symtab)" identifier (parameter_list "(Target_powerpc<64,_false> *this,Layout *layout,Input_objects *input_objects,\n          Symbol_table *symtab)" ( (parameter_declaration "Target_powerpc" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_false> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Layout *layout" type_identifier (pointer_declarator "*layout" * identifier)) , (parameter_declaration "Input_objects *input_objects" type_identifier (pointer_declarator "*input_objects" * identifier)) , (parameter_declaration "Symbol_table *symtab" type_identifier (pointer_declarator "*symtab" * identifier)) ))) { identifier) (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "_Hash_node_base *p_Var4;" type_identifier (pointer_declarator "*p_Var4" * identifier) ;) (expression_statement "Powerpc_relobj<64,_false> *this_00;" (update_expression "Powerpc_relobj<64,_false> *this_00" (binary_expression "Powerpc_relobj<64,_false> *this_00" (binary_expression "Powerpc_relobj<64" identifier < number_literal) (ERROR ",_false" , identifier) > (pointer_expression "*this_00" * identifier)) --) ;) (declaration "Output_segment *pOVar5;" type_identifier (pointer_declarator "*pOVar5" * identifier) ;) (declaration "Output_data_dynamic *pOVar6;" type_identifier (pointer_declarator "*pOVar6" * identifier) ;) (expression_statement "Output_data_plt_powerpc<64,_false> *plt_got;" (update_expression "Output_data_plt_powerpc<64,_false> *plt_got" (binary_expression "Output_data_plt_powerpc<64,_false> *plt_got" (binary_expression "Output_data_plt_powerpc<64" identifier < number_literal) (ERROR ",_false" , identifier) > (pointer_expression "*plt_got" * identifier)) --) ;) (declaration "iterator iVar7;" type_identifier identifier ;) (expression_statement "Sized_relobj_file<64,_false> *pSVar8;" (update_expression "Sized_relobj_file<64,_false> *pSVar8" (binary_expression "Sized_relobj_file<64,_false> *pSVar8" (binary_expression "Sized_relobj_file<64" identifier < number_literal) (ERROR ",_false" , identifier) > (pointer_expression "*pSVar8" * identifier)) --) ;) (ERROR "vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *pasd" (binary_expression "vector<gold" identifier < identifier) : : (binary_expression "Relocatable_relocs*,_std" identifier * (ERROR "," ,) identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Relocatable_relocs*>_> *pasd" (binary_expression "Relocatable_relocs*>_" identifier * (ERROR ">" >) identifier) > (pointer_expression "*pasd" * identifier))) (expression_statement ";" ;) (declaration "Attributes_section_data *pAVar9;" type_identifier (pointer_declarator "*pAVar9" * identifier) ;) (declaration "pointer ppOVar10;" type_identifier identifier ;) (declaration "Output_section *pOVar11;" type_identifier (pointer_declarator "*pOVar11" * identifier) ;) (ERROR "__normal_iterator<gold::" (binary_expression "__normal_iterator<gold" identifier < identifier) : :) (labeled_statement "Output_section::Input_section*,_std::vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>_>\n  __last;" statement_identifier (ERROR "::Input_section*,_std::vector<gold:" : : (binary_expression "Input_section*,_std" identifier * (ERROR "," ,) identifier) : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>_>\n  __last;" statement_identifier (ERROR "::Input_section,_std::allocator<gold:" : : (comma_expression "Input_section,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section>_>_>\n  __last;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>_>\n  __last;" (binary_expression "Input_section>_>_>\n  __last" (binary_expression "Input_section>_>_" (binary_expression "Input_section>_" identifier > identifier) > identifier) > identifier) ;)))) (ERROR "__normal_iterator<gold::" (binary_expression "__normal_iterator<gold" identifier < identifier) : :) (labeled_statement "Output_section::Input_section*,_std::vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>_>\n  __first;" statement_identifier (ERROR "::Input_section*,_std::vector<gold:" : : (binary_expression "Input_section*,_std" identifier * (ERROR "," ,) identifier) : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>_>\n  __first;" statement_identifier (ERROR "::Input_section,_std::allocator<gold:" : : (comma_expression "Input_section,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section>_>_>\n  __first;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>_>\n  __first;" (binary_expression "Input_section>_>_>\n  __first" (binary_expression "Input_section>_>_" (binary_expression "Input_section>_" identifier > identifier) > identifier) > identifier) ;)))) (declaration "Reloc_section *reloc_section;" type_identifier (pointer_declarator "*reloc_section" * identifier) ;) (declaration "size_t sVar12;" primitive_type identifier ;) (expression_statement "Output_data_save_res<64,_false> *this_01;" (update_expression "Output_data_save_res<64,_false> *this_01" (binary_expression "Output_data_save_res<64,_false> *this_01" (binary_expression "Output_data_save_res<64" identifier < number_literal) (ERROR ",_false" , identifier) > (pointer_expression "*this_01" * identifier)) --) ;) (declaration "Output_section_data *posd;" type_identifier (pointer_declarator "*posd" * identifier) ;) (declaration "Input_file *pIVar13;" type_identifier (pointer_declarator "*pIVar13" * identifier) ;) (declaration "Elf_WXword EVar14;" type_identifier identifier ;) (declaration "Output_data *pOVar15;" type_identifier (pointer_declarator "*pOVar15" * identifier) ;) (declaration "ulong uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "ulong uVar18;" type_identifier identifier ;) (declaration "ulong uVar19;" type_identifier identifier ;) (declaration "pointer pCVar20;" type_identifier identifier ;) (declaration "pointer ppRVar21;" type_identifier identifier ;) (declaration "pointer ppDVar22;" type_identifier identifier ;) (declaration "char *r_off;" primitive_type (pointer_declarator "*r_off" * identifier) ;) (expression_statement "Powerpc_relobj<64,_false> *pPVar23;" (update_expression "Powerpc_relobj<64,_false> *pPVar23" (binary_expression "Powerpc_relobj<64,_false> *pPVar23" (binary_expression "Powerpc_relobj<64" identifier < number_literal) (ERROR ",_false" , identifier) > (pointer_expression "*pPVar23" * identifier)) --) ;) (declaration "Input_file *pIVar24;" type_identifier (pointer_declarator "*pIVar24" * identifier) ;) (declaration "ulong uVar25;" type_identifier identifier ;) (expression_statement "Output_data_glink<64,_false> *pOVar26;" (update_expression "Output_data_glink<64,_false> *pOVar26" (binary_expression "Output_data_glink<64,_false> *pOVar26" (binary_expression "Output_data_glink<64" identifier < number_literal) (ERROR ",_false" , identifier) > (pointer_expression "*pOVar26" * identifier)) --) ;) (declaration "undefined8 in_stack_ffffffffffffff90;" type_identifier identifier ;) (declaration "_TmpBuf __buf;" type_identifier identifier ;) (if_statement "if (gold::parameters->doing_static_link_valid_ == false) {\n                    /* WARNING: Subroutine does not return */\n    gold::Parameters::doing_static_link((Parameters *)this,(Parameters *)layout);\n  }" if (parenthesized_expression "(gold::parameters->doing_static_link_valid_ == false)" ( (ERROR "gold::" identifier : :) (binary_expression "parameters->doing_static_link_valid_ == false" (field_expression "parameters->doing_static_link_valid_" identifier -> field_identifier) == false) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    gold::Parameters::doing_static_link((Parameters *)this,(Parameters *)layout);\n  }" { comment (labeled_statement "gold::Parameters::doing_static_link((Parameters *)this,(Parameters *)layout);" statement_identifier : (ERROR ":" :) (labeled_statement "Parameters::doing_static_link((Parameters *)this,(Parameters *)layout);" statement_identifier : (ERROR ":" :) (expression_statement "doing_static_link((Parameters *)this,(Parameters *)layout);" (call_expression "doing_static_link((Parameters *)this,(Parameters *)layout)" identifier (argument_list "((Parameters *)this,(Parameters *)layout)" ( (cast_expression "(Parameters *)this" ( (type_descriptor "Parameters *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Parameters *)layout" ( (type_descriptor "Parameters *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;))) })) (expression_statement "r_off = (char *)layout;" (assignment_expression "r_off = (char *)layout" identifier = (cast_expression "(char *)layout" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pPVar23 = (Powerpc_relobj<64,_false> *)this;" (assignment_expression "pPVar23 = (Powerpc_relobj<64,_false> *)this" identifier = (parenthesized_expression "(Powerpc_relobj<64,_false> *)this" ( (comma_expression "Powerpc_relobj<64,_false> *)this" (binary_expression "Powerpc_relobj<64" identifier < number_literal) , (binary_expression "_false> *)this" identifier > (pointer_expression "*)this" * (ERROR ")" )) identifier))) ))) ;) (if_statement "if (gold::parameters->doing_static_link_ != false) {\n    pPVar23 = (Powerpc_relobj<64,_false> *)symtab;\n    if (this->iplt_ == (Output_data_plt_powerpc<64,_false> *)0x0) {\n      gold::Symbol_table::define_as_constant\n                (symtab,"__rela_iplt_start",(char *)0x0,PREDEFINED,0,0,STT_NOTYPE,STB_GLOBAL,\n                 STV_HIDDEN,'\0',true,false);\n      in_stack_ffffffffffffff90 = 0;\n      r_off = "__rela_iplt_end";\n      gold::Symbol_table::define_as_constant\n                (symtab,"__rela_iplt_end",(char *)0x0,PREDEFINED,0,0,STT_NOTYPE,STB_GLOBAL,\n                 STV_HIDDEN,'\0',true,false);\n    }\n    else {\n      pOVar15 = (Output_data *)this->iplt_->rel_;\n      gold::Symbol_table::define_in_output_data\n                (symtab,"__rela_iplt_start",(char *)0x0,PREDEFINED,pOVar15,0,0,STT_NOTYPE,STB_GLOBAL\n                 ,STV_HIDDEN,'\0',false,true);\n      r_off = "__rela_iplt_end";\n      gold::Symbol_table::define_in_output_data\n                (symtab,"__rela_iplt_end",(char *)0x0,PREDEFINED,pOVar15,0,0,STT_NOTYPE,STB_GLOBAL,\n                 STV_HIDDEN,'\0',true,true);\n    }\n  }" if (parenthesized_expression "(gold::parameters->doing_static_link_ != false)" ( (ERROR "gold::" identifier : :) (binary_expression "parameters->doing_static_link_ != false" (field_expression "parameters->doing_static_link_" identifier -> field_identifier) != false) )) (compound_statement "{\n    pPVar23 = (Powerpc_relobj<64,_false> *)symtab;\n    if (this->iplt_ == (Output_data_plt_powerpc<64,_false> *)0x0) {\n      gold::Symbol_table::define_as_constant\n                (symtab,"__rela_iplt_start",(char *)0x0,PREDEFINED,0,0,STT_NOTYPE,STB_GLOBAL,\n                 STV_HIDDEN,'\0',true,false);\n      in_stack_ffffffffffffff90 = 0;\n      r_off = "__rela_iplt_end";\n      gold::Symbol_table::define_as_constant\n                (symtab,"__rela_iplt_end",(char *)0x0,PREDEFINED,0,0,STT_NOTYPE,STB_GLOBAL,\n                 STV_HIDDEN,'\0',true,false);\n    }\n    else {\n      pOVar15 = (Output_data *)this->iplt_->rel_;\n      gold::Symbol_table::define_in_output_data\n                (symtab,"__rela_iplt_start",(char *)0x0,PREDEFINED,pOVar15,0,0,STT_NOTYPE,STB_GLOBAL\n                 ,STV_HIDDEN,'\0',false,true);\n      r_off = "__rela_iplt_end";\n      gold::Symbol_table::define_in_output_data\n                (symtab,"__rela_iplt_end",(char *)0x0,PREDEFINED,pOVar15,0,0,STT_NOTYPE,STB_GLOBAL,\n                 STV_HIDDEN,'\0',true,true);\n    }\n  }" { (expression_statement "pPVar23 = (Powerpc_relobj<64,_false> *)symtab;" (assignment_expression "pPVar23 = (Powerpc_relobj<64,_false> *)symtab" identifier = (parenthesized_expression "(Powerpc_relobj<64,_false> *)symtab" ( (comma_expression "Powerpc_relobj<64,_false> *)symtab" (binary_expression "Powerpc_relobj<64" identifier < number_literal) , (binary_expression "_false> *)symtab" identifier > (pointer_expression "*)symtab" * (ERROR ")" )) identifier))) ))) ;) (if_statement "if (this->iplt_ == (Output_data_plt_powerpc<64,_false> *)0x0) {\n      gold::Symbol_table::define_as_constant\n                (symtab,"__rela_iplt_start",(char *)0x0,PREDEFINED,0,0,STT_NOTYPE,STB_GLOBAL,\n                 STV_HIDDEN,'\0',true,false);\n      in_stack_ffffffffffffff90 = 0;\n      r_off = "__rela_iplt_end";\n      gold::Symbol_table::define_as_constant\n                (symtab,"__rela_iplt_end",(char *)0x0,PREDEFINED,0,0,STT_NOTYPE,STB_GLOBAL,\n                 STV_HIDDEN,'\0',true,false);\n    }\n    else {\n      pOVar15 = (Output_data *)this->iplt_->rel_;\n      gold::Symbol_table::define_in_output_data\n                (symtab,"__rela_iplt_start",(char *)0x0,PREDEFINED,pOVar15,0,0,STT_NOTYPE,STB_GLOBAL\n                 ,STV_HIDDEN,'\0',false,true);\n      r_off = "__rela_iplt_end";\n      gold::Symbol_table::define_in_output_data\n                (symtab,"__rela_iplt_end",(char *)0x0,PREDEFINED,pOVar15,0,0,STT_NOTYPE,STB_GLOBAL,\n                 STV_HIDDEN,'\0',true,true);\n    }" if (parenthesized_expression "(this->iplt_ == (Output_data_plt_powerpc<64,_false> *)0x0)" ( (binary_expression "this->iplt_ == (Output_data_plt_powerpc<64,_false> *)0x0)" (field_expression "this->iplt_" identifier -> field_identifier) == (parenthesized_expression "(Output_data_plt_powerpc<64,_false> *)0x0)" ( (comma_expression "Output_data_plt_powerpc<64,_false> *)0x0" (binary_expression "Output_data_plt_powerpc<64" identifier < number_literal) , (binary_expression "_false> *)0x0" identifier > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal))) ))) )) (compound_statement "{\n      gold::Symbol_table::define_as_constant\n                (symtab,"__rela_iplt_start",(char *)0x0,PREDEFINED,0,0,STT_NOTYPE,STB_GLOBAL,\n                 STV_HIDDEN,'\0',true,false);\n      in_stack_ffffffffffffff90 = 0;\n      r_off = "__rela_iplt_end";\n      gold::Symbol_table::define_as_constant\n                (symtab,"__rela_iplt_end",(char *)0x0,PREDEFINED,0,0,STT_NOTYPE,STB_GLOBAL,\n                 STV_HIDDEN,'\0',true,false);\n    }" { (labeled_statement "gold::Symbol_table::define_as_constant\n                (symtab,"__rela_iplt_start",(char *)0x0,PREDEFINED,0,0,STT_NOTYPE,STB_GLOBAL,\n                 STV_HIDDEN,'\0',true,false);" statement_identifier : (ERROR ":" :) (labeled_statement "Symbol_table::define_as_constant\n                (symtab,"__rela_iplt_start",(char *)0x0,PREDEFINED,0,0,STT_NOTYPE,STB_GLOBAL,\n                 STV_HIDDEN,'\0',true,false);" statement_identifier : (ERROR ":" :) (expression_statement "define_as_constant\n                (symtab,"__rela_iplt_start",(char *)0x0,PREDEFINED,0,0,STT_NOTYPE,STB_GLOBAL,\n                 STV_HIDDEN,'\0',true,false);" (call_expression "define_as_constant\n                (symtab,"__rela_iplt_start",(char *)0x0,PREDEFINED,0,0,STT_NOTYPE,STB_GLOBAL,\n                 STV_HIDDEN,'\0',true,false)" identifier (argument_list "(symtab,"__rela_iplt_start",(char *)0x0,PREDEFINED,0,0,STT_NOTYPE,STB_GLOBAL,\n                 STV_HIDDEN,'\0',true,false)" ( identifier , (string_literal ""__rela_iplt_start"" " string_content ") , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , number_literal , number_literal , identifier , identifier , identifier , (char_literal "'\0'" ' escape_sequence ') , true , false ))) ;))) (expression_statement "in_stack_ffffffffffffff90 = 0;" (assignment_expression "in_stack_ffffffffffffff90 = 0" identifier = number_literal) ;) (expression_statement "r_off = "__rela_iplt_end";" (assignment_expression "r_off = "__rela_iplt_end"" identifier = (string_literal ""__rela_iplt_end"" " string_content ")) ;) (labeled_statement "gold::Symbol_table::define_as_constant\n                (symtab,"__rela_iplt_end",(char *)0x0,PREDEFINED,0,0,STT_NOTYPE,STB_GLOBAL,\n                 STV_HIDDEN,'\0',true,false);" statement_identifier : (ERROR ":" :) (labeled_statement "Symbol_table::define_as_constant\n                (symtab,"__rela_iplt_end",(char *)0x0,PREDEFINED,0,0,STT_NOTYPE,STB_GLOBAL,\n                 STV_HIDDEN,'\0',true,false);" statement_identifier : (ERROR ":" :) (expression_statement "define_as_constant\n                (symtab,"__rela_iplt_end",(char *)0x0,PREDEFINED,0,0,STT_NOTYPE,STB_GLOBAL,\n                 STV_HIDDEN,'\0',true,false);" (call_expression "define_as_constant\n                (symtab,"__rela_iplt_end",(char *)0x0,PREDEFINED,0,0,STT_NOTYPE,STB_GLOBAL,\n                 STV_HIDDEN,'\0',true,false)" identifier (argument_list "(symtab,"__rela_iplt_end",(char *)0x0,PREDEFINED,0,0,STT_NOTYPE,STB_GLOBAL,\n                 STV_HIDDEN,'\0',true,false)" ( identifier , (string_literal ""__rela_iplt_end"" " string_content ") , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , number_literal , number_literal , identifier , identifier , identifier , (char_literal "'\0'" ' escape_sequence ') , true , false ))) ;))) }) (else_clause "else {\n      pOVar15 = (Output_data *)this->iplt_->rel_;\n      gold::Symbol_table::define_in_output_data\n                (symtab,"__rela_iplt_start",(char *)0x0,PREDEFINED,pOVar15,0,0,STT_NOTYPE,STB_GLOBAL\n                 ,STV_HIDDEN,'\0',false,true);\n      r_off = "__rela_iplt_end";\n      gold::Symbol_table::define_in_output_data\n                (symtab,"__rela_iplt_end",(char *)0x0,PREDEFINED,pOVar15,0,0,STT_NOTYPE,STB_GLOBAL,\n                 STV_HIDDEN,'\0',true,true);\n    }" else (compound_statement "{\n      pOVar15 = (Output_data *)this->iplt_->rel_;\n      gold::Symbol_table::define_in_output_data\n                (symtab,"__rela_iplt_start",(char *)0x0,PREDEFINED,pOVar15,0,0,STT_NOTYPE,STB_GLOBAL\n                 ,STV_HIDDEN,'\0',false,true);\n      r_off = "__rela_iplt_end";\n      gold::Symbol_table::define_in_output_data\n                (symtab,"__rela_iplt_end",(char *)0x0,PREDEFINED,pOVar15,0,0,STT_NOTYPE,STB_GLOBAL,\n                 STV_HIDDEN,'\0',true,true);\n    }" { (expression_statement "pOVar15 = (Output_data *)this->iplt_->rel_;" (assignment_expression "pOVar15 = (Output_data *)this->iplt_->rel_" identifier = (cast_expression "(Output_data *)this->iplt_->rel_" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this->iplt_->rel_" (field_expression "this->iplt_" identifier -> field_identifier) -> field_identifier))) ;) (labeled_statement "gold::Symbol_table::define_in_output_data\n                (symtab,"__rela_iplt_start",(char *)0x0,PREDEFINED,pOVar15,0,0,STT_NOTYPE,STB_GLOBAL\n                 ,STV_HIDDEN,'\0',false,true);" statement_identifier : (ERROR ":" :) (labeled_statement "Symbol_table::define_in_output_data\n                (symtab,"__rela_iplt_start",(char *)0x0,PREDEFINED,pOVar15,0,0,STT_NOTYPE,STB_GLOBAL\n                 ,STV_HIDDEN,'\0',false,true);" statement_identifier : (ERROR ":" :) (expression_statement "define_in_output_data\n                (symtab,"__rela_iplt_start",(char *)0x0,PREDEFINED,pOVar15,0,0,STT_NOTYPE,STB_GLOBAL\n                 ,STV_HIDDEN,'\0',false,true);" (call_expression "define_in_output_data\n                (symtab,"__rela_iplt_start",(char *)0x0,PREDEFINED,pOVar15,0,0,STT_NOTYPE,STB_GLOBAL\n                 ,STV_HIDDEN,'\0',false,true)" identifier (argument_list "(symtab,"__rela_iplt_start",(char *)0x0,PREDEFINED,pOVar15,0,0,STT_NOTYPE,STB_GLOBAL\n                 ,STV_HIDDEN,'\0',false,true)" ( identifier , (string_literal ""__rela_iplt_start"" " string_content ") , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier , number_literal , number_literal , identifier , identifier , identifier , (char_literal "'\0'" ' escape_sequence ') , false , true ))) ;))) (expression_statement "r_off = "__rela_iplt_end";" (assignment_expression "r_off = "__rela_iplt_end"" identifier = (string_literal ""__rela_iplt_end"" " string_content ")) ;) (labeled_statement "gold::Symbol_table::define_in_output_data\n                (symtab,"__rela_iplt_end",(char *)0x0,PREDEFINED,pOVar15,0,0,STT_NOTYPE,STB_GLOBAL,\n                 STV_HIDDEN,'\0',true,true);" statement_identifier : (ERROR ":" :) (labeled_statement "Symbol_table::define_in_output_data\n                (symtab,"__rela_iplt_end",(char *)0x0,PREDEFINED,pOVar15,0,0,STT_NOTYPE,STB_GLOBAL,\n                 STV_HIDDEN,'\0',true,true);" statement_identifier : (ERROR ":" :) (expression_statement "define_in_output_data\n                (symtab,"__rela_iplt_end",(char *)0x0,PREDEFINED,pOVar15,0,0,STT_NOTYPE,STB_GLOBAL,\n                 STV_HIDDEN,'\0',true,true);" (call_expression "define_in_output_data\n                (symtab,"__rela_iplt_end",(char *)0x0,PREDEFINED,pOVar15,0,0,STT_NOTYPE,STB_GLOBAL,\n                 STV_HIDDEN,'\0',true,true)" identifier (argument_list "(symtab,"__rela_iplt_end",(char *)0x0,PREDEFINED,pOVar15,0,0,STT_NOTYPE,STB_GLOBAL,\n                 STV_HIDDEN,'\0',true,true)" ( identifier , (string_literal ""__rela_iplt_end"" " string_content ") , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier , number_literal , number_literal , identifier , identifier , identifier , (char_literal "'\0'" ' escape_sequence ') , true , true ))) ;))) }))) })) (for_statement "for (p_Var4 = (symtab->table_)._M_h._M_before_begin._M_nxt; p_Var4 != (_Hash_node_base *)0x0;\n      p_Var4 = p_Var4->_M_nxt) {\n    this_00 = (Powerpc_relobj<64,_false> *)p_Var4[3]._M_nxt;\n    if (((((*(uint *)((long)&(this_00->super_Sized_relobj_file<64,_false>).\n                             super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2 +\n                     4) == 0) &&\n          (((this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj\n            .super_Object.shnum_ & 0x70000) == 0)) &&\n         (((this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n           super_Object.shnum_ & 0x40000000) != 0)) &&\n        ((pOVar5 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                   &(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                    super_Relobj.super_Object.name_._M_string_length)->output_segment,\n         ((ulong)pOVar5->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish & 0x100000000) == 0 &&\n         (uVar17 = *(uint *)((long)&pOVar5->output_lists_[0x16].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage + 4), uVar17 != 0)))) &&\n       (uVar17 == *(uint *)&(this_00->super_Sized_relobj_file<64,_false>).\n                            super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2))\n    {\n      ppOVar10 = pOVar5->output_lists_[0x19].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish;\n      uVar18 = (ulong)(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                      super_Relobj.super_Object.xindex_ >> 4;\n      if ((ulong)((long)pOVar5->output_lists_[0x19].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage - (long)ppOVar10 >> 4) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n        Powerpc_relobj<64,_false>::get_opd_discard(pPVar23,(Address)r_off);\n      }\n      if ((*(byte *)((long)ppOVar10 + uVar18 * 0x10 + 4) & 1) != 0) {\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        pPVar23 = this_00;\n        gold::Symbol::set_undefined((Symbol *)this_00);\n        uVar17 = (this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                 super_Relobj.super_Object.shnum_;\n        *(uint *)((long)&(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>\n                         .super_Relobj.super_Object.name_.field_2 + 4) = 0xffffffff;\n        (this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n        super_Object.shnum_ = uVar17 & 0x7ffffcff | 0x80000000;\n      }\n    }\n  }" for ( (assignment_expression "p_Var4 = (symtab->table_)._M_h._M_before_begin._M_nxt" identifier = (field_expression "(symtab->table_)._M_h._M_before_begin._M_nxt" (field_expression "(symtab->table_)._M_h._M_before_begin" (field_expression "(symtab->table_)._M_h" (parenthesized_expression "(symtab->table_)" ( (field_expression "symtab->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ; (binary_expression "p_Var4 != (_Hash_node_base *)0x0" identifier != (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "p_Var4 = p_Var4->_M_nxt" identifier = (field_expression "p_Var4->_M_nxt" identifier -> field_identifier)) ) (compound_statement "{\n    this_00 = (Powerpc_relobj<64,_false> *)p_Var4[3]._M_nxt;\n    if (((((*(uint *)((long)&(this_00->super_Sized_relobj_file<64,_false>).\n                             super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2 +\n                     4) == 0) &&\n          (((this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj\n            .super_Object.shnum_ & 0x70000) == 0)) &&\n         (((this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n           super_Object.shnum_ & 0x40000000) != 0)) &&\n        ((pOVar5 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                   &(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                    super_Relobj.super_Object.name_._M_string_length)->output_segment,\n         ((ulong)pOVar5->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish & 0x100000000) == 0 &&\n         (uVar17 = *(uint *)((long)&pOVar5->output_lists_[0x16].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage + 4), uVar17 != 0)))) &&\n       (uVar17 == *(uint *)&(this_00->super_Sized_relobj_file<64,_false>).\n                            super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2))\n    {\n      ppOVar10 = pOVar5->output_lists_[0x19].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish;\n      uVar18 = (ulong)(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                      super_Relobj.super_Object.xindex_ >> 4;\n      if ((ulong)((long)pOVar5->output_lists_[0x19].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage - (long)ppOVar10 >> 4) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n        Powerpc_relobj<64,_false>::get_opd_discard(pPVar23,(Address)r_off);\n      }\n      if ((*(byte *)((long)ppOVar10 + uVar18 * 0x10 + 4) & 1) != 0) {\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        pPVar23 = this_00;\n        gold::Symbol::set_undefined((Symbol *)this_00);\n        uVar17 = (this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                 super_Relobj.super_Object.shnum_;\n        *(uint *)((long)&(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>\n                         .super_Relobj.super_Object.name_.field_2 + 4) = 0xffffffff;\n        (this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n        super_Object.shnum_ = uVar17 & 0x7ffffcff | 0x80000000;\n      }\n    }\n  }" { (expression_statement "this_00 = (Powerpc_relobj<64,_false> *)p_Var4[3]._M_nxt;" (assignment_expression "this_00 = (Powerpc_relobj<64,_false> *)p_Var4[3]._M_nxt" identifier = (parenthesized_expression "(Powerpc_relobj<64,_false> *)p_Var4[3]._M_nxt" ( (comma_expression "Powerpc_relobj<64,_false> *)p_Var4[3]._M_nxt" (binary_expression "Powerpc_relobj<64" identifier < number_literal) , (binary_expression "_false> *)p_Var4[3]._M_nxt" identifier > (pointer_expression "*)p_Var4[3]._M_nxt" * (ERROR ")" )) (field_expression "p_Var4[3]._M_nxt" (subscript_expression "p_Var4[3]" identifier [ number_literal ]) . field_identifier)))) ))) ;) (if_statement "if (((((*(uint *)((long)&(this_00->super_Sized_relobj_file<64,_false>).\n                             super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2 +\n                     4) == 0) &&\n          (((this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj\n            .super_Object.shnum_ & 0x70000) == 0)) &&\n         (((this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n           super_Object.shnum_ & 0x40000000) != 0)) &&\n        ((pOVar5 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                   &(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                    super_Relobj.super_Object.name_._M_string_length)->output_segment,\n         ((ulong)pOVar5->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish & 0x100000000) == 0 &&\n         (uVar17 = *(uint *)((long)&pOVar5->output_lists_[0x16].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage + 4), uVar17 != 0)))) &&\n       (uVar17 == *(uint *)&(this_00->super_Sized_relobj_file<64,_false>).\n                            super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2))\n    {\n      ppOVar10 = pOVar5->output_lists_[0x19].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish;\n      uVar18 = (ulong)(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                      super_Relobj.super_Object.xindex_ >> 4;\n      if ((ulong)((long)pOVar5->output_lists_[0x19].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage - (long)ppOVar10 >> 4) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n        Powerpc_relobj<64,_false>::get_opd_discard(pPVar23,(Address)r_off);\n      }\n      if ((*(byte *)((long)ppOVar10 + uVar18 * 0x10 + 4) & 1) != 0) {\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        pPVar23 = this_00;\n        gold::Symbol::set_undefined((Symbol *)this_00);\n        uVar17 = (this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                 super_Relobj.super_Object.shnum_;\n        *(uint *)((long)&(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>\n                         .super_Relobj.super_Object.name_.field_2 + 4) = 0xffffffff;\n        (this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n        super_Object.shnum_ = uVar17 & 0x7ffffcff | 0x80000000;\n      }\n    }" if (parenthesized_expression "(((((*(uint *)((long)&(this_00->super_Sized_relobj_file<64,_false>).\n                             super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2 +\n                     4) == 0) &&\n          (((this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj\n            .super_Object.shnum_ & 0x70000) == 0)) &&\n         (((this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n           super_Object.shnum_ & 0x40000000) != 0)) &&\n        ((pOVar5 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                   &(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                    super_Relobj.super_Object.name_._M_string_length)->output_segment,\n         ((ulong)pOVar5->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish & 0x100000000) == 0 &&\n         (uVar17 = *(uint *)((long)&pOVar5->output_lists_[0x16].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage + 4), uVar17 != 0)))) &&\n       (uVar17 == *(uint *)&(this_00->super_Sized_relobj_file<64,_false>).\n                            super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2))" ( (binary_expression "((((*(uint *)((long)&(this_00->super_Sized_relobj_file<64,_false>).\n                             super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2 +\n                     4) == 0) &&\n          (((this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj\n            .super_Object.shnum_ & 0x70000) == 0)) &&\n         (((this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n           super_Object.shnum_ & 0x40000000) != 0)) &&\n        ((pOVar5 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                   &(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                    super_Relobj.super_Object.name_._M_string_length)->output_segment,\n         ((ulong)pOVar5->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish & 0x100000000) == 0 &&\n         (uVar17 = *(uint *)((long)&pOVar5->output_lists_[0x16].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage + 4), uVar17 != 0)))) &&\n       (uVar17 == *(uint *)&(this_00->super_Sized_relobj_file<64,_false>).\n                            super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2)" (parenthesized_expression "((((*(uint *)((long)&(this_00->super_Sized_relobj_file<64,_false>).\n                             super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2 +\n                     4) == 0) &&\n          (((this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj\n            .super_Object.shnum_ & 0x70000) == 0)) &&\n         (((this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n           super_Object.shnum_ & 0x40000000) != 0)) &&\n        ((pOVar5 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                   &(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                    super_Relobj.super_Object.name_._M_string_length)->output_segment,\n         ((ulong)pOVar5->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish & 0x100000000) == 0 &&\n         (uVar17 = *(uint *)((long)&pOVar5->output_lists_[0x16].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage + 4), uVar17 != 0))))" ( (binary_expression "(((*(uint *)((long)&(this_00->super_Sized_relobj_file<64,_false>).\n                             super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2 +\n                     4) == 0) &&\n          (((this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj\n            .super_Object.shnum_ & 0x70000) == 0)) &&\n         (((this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n           super_Object.shnum_ & 0x40000000) != 0)) &&\n        ((pOVar5 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                   &(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                    super_Relobj.super_Object.name_._M_string_length)->output_segment,\n         ((ulong)pOVar5->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish & 0x100000000) == 0 &&\n         (uVar17 = *(uint *)((long)&pOVar5->output_lists_[0x16].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage + 4), uVar17 != 0)))" (parenthesized_expression "(((*(uint *)((long)&(this_00->super_Sized_relobj_file<64,_false>).\n                             super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2 +\n                     4) == 0) &&\n          (((this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj\n            .super_Object.shnum_ & 0x70000) == 0)) &&\n         (((this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n           super_Object.shnum_ & 0x40000000) != 0))" ( (binary_expression "((*(uint *)((long)&(this_00->super_Sized_relobj_file<64,_false>).\n                             super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2 +\n                     4) == 0) &&\n          (((this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj\n            .super_Object.shnum_ & 0x70000) == 0)) &&\n         (((this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n           super_Object.shnum_ & 0x40000000) != 0)" (parenthesized_expression "((*(uint *)((long)&(this_00->super_Sized_relobj_file<64,_false>).\n                             super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2 +\n                     4) == 0) &&\n          (((this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj\n            .super_Object.shnum_ & 0x70000) == 0))" ( (binary_expression "(*(uint *)((long)&(this_00->super_Sized_relobj_file<64,_false>).\n                             super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2 +\n                     4) == 0) &&\n          (((this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj\n            .super_Object.shnum_ & 0x70000) == 0)" (parenthesized_expression "(*(uint *)((long)&(this_00->super_Sized_relobj_file<64,_false>).\n                             super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2 +\n                     4) == 0)" ( (binary_expression "*(uint *)((long)&(this_00->super_Sized_relobj_file<64,_false>).\n                             super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2 +\n                     4) == 0" (pointer_expression "*(uint *)((long)&(this_00->super_Sized_relobj_file<64,_false>).\n                             super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2 +\n                     4)" * (cast_expression "(uint *)((long)&(this_00->super_Sized_relobj_file<64,_false>).\n                             super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2 +\n                     4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&(this_00->super_Sized_relobj_file<64,_false>).\n                             super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2 +\n                     4)" ( (comma_expression "(long)&(this_00->super_Sized_relobj_file<64,_false>).\n                             super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2 +\n                     4" (binary_expression "(long)&(this_00->super_Sized_relobj_file<64,_false>).\n                             super_Sized_relobj<64" (cast_expression "(long)&(this_00->super_Sized_relobj_file<64,_false>).\n                             super_Sized_relobj" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&(this_00->super_Sized_relobj_file<64,_false>).\n                             super_Sized_relobj" & (field_expression "(this_00->super_Sized_relobj_file<64,_false>).\n                             super_Sized_relobj" (parenthesized_expression "(this_00->super_Sized_relobj_file<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj_file<64,_false" (binary_expression "this_00->super_Sized_relobj_file<64" (field_expression "this_00->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier))) < number_literal) , (binary_expression "_false>.super_Relobj.super_Object.name_.field_2 +\n                     4" (field_expression "_false>.super_Relobj.super_Object.name_.field_2" (field_expression "_false>.super_Relobj.super_Object.name_" (field_expression "_false>.super_Relobj.super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) + number_literal)) )))) == number_literal) )) && (parenthesized_expression "(((this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj\n            .super_Object.shnum_ & 0x70000) == 0)" ( (binary_expression "((this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj\n            .super_Object.shnum_ & 0x70000) == 0" (parenthesized_expression "((this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj\n            .super_Object.shnum_ & 0x70000)" ( (comma_expression "(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj\n            .super_Object.shnum_ & 0x70000" (binary_expression "(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64" (field_expression "(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj" (parenthesized_expression "(this_00->super_Sized_relobj_file<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj_file<64,_false" (binary_expression "this_00->super_Sized_relobj_file<64" (field_expression "this_00->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) < number_literal) , (binary_expression "_false>.super_Relobj\n            .super_Object.shnum_ & 0x70000" (field_expression "_false>.super_Relobj\n            .super_Object.shnum_" (field_expression "_false>.super_Relobj\n            .super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) & number_literal)) )) == number_literal) ))) )) && (parenthesized_expression "(((this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n           super_Object.shnum_ & 0x40000000) != 0)" ( (binary_expression "((this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n           super_Object.shnum_ & 0x40000000) != 0" (parenthesized_expression "((this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n           super_Object.shnum_ & 0x40000000)" ( (comma_expression "(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n           super_Object.shnum_ & 0x40000000" (binary_expression "(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64" (field_expression "(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj" (parenthesized_expression "(this_00->super_Sized_relobj_file<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj_file<64,_false" (binary_expression "this_00->super_Sized_relobj_file<64" (field_expression "this_00->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) < number_literal) , (binary_expression "_false>.super_Relobj.\n           super_Object.shnum_ & 0x40000000" (field_expression "_false>.super_Relobj.\n           super_Object.shnum_" (field_expression "_false>.super_Relobj.\n           super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) & number_literal)) )) != number_literal) ))) )) && (parenthesized_expression "((pOVar5 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                   &(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                    super_Relobj.super_Object.name_._M_string_length)->output_segment,\n         ((ulong)pOVar5->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish & 0x100000000) == 0 &&\n         (uVar17 = *(uint *)((long)&pOVar5->output_lists_[0x16].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage + 4), uVar17 != 0)))" ( (parenthesized_expression "(pOVar5 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                   &(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                    super_Relobj.super_Object.name_._M_string_length)->output_segment,\n         ((ulong)pOVar5->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish & 0x100000000) == 0 &&\n         (uVar17 = *(uint *)((long)&pOVar5->output_lists_[0x16].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage + 4), uVar17 != 0))" ( (comma_expression "pOVar5 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                   &(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                    super_Relobj.super_Object.name_._M_string_length)->output_segment,\n         ((ulong)pOVar5->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish & 0x100000000) == 0 &&\n         (uVar17 = *(uint *)((long)&pOVar5->output_lists_[0x16].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage + 4), uVar17 != 0)" (assignment_expression "pOVar5 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                   &(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                    super_Relobj.super_Object.name_._M_string_length)->output_segment" identifier = (field_expression "((anon_union_8_3_b0f6f408_for_u1_ *)\n                   &(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                    super_Relobj.super_Object.name_._M_string_length)->output_segment" (parenthesized_expression "((anon_union_8_3_b0f6f408_for_u1_ *)\n                   &(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                    super_Relobj.super_Object.name_._M_string_length)" ( (comma_expression "(anon_union_8_3_b0f6f408_for_u1_ *)\n                   &(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                    super_Relobj.super_Object.name_._M_string_length" (binary_expression "(anon_union_8_3_b0f6f408_for_u1_ *)\n                   &(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64" (cast_expression "(anon_union_8_3_b0f6f408_for_u1_ *)\n                   &(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj" ( (type_descriptor "anon_union_8_3_b0f6f408_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj" & (field_expression "(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj" (parenthesized_expression "(this_00->super_Sized_relobj_file<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj_file<64,_false" (binary_expression "this_00->super_Sized_relobj_file<64" (field_expression "this_00->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier))) < number_literal) , (field_expression "_false>.\n                    super_Relobj.super_Object.name_._M_string_length" (field_expression "_false>.\n                    super_Relobj.super_Object.name_" (field_expression "_false>.\n                    super_Relobj.super_Object" (field_expression "_false>.\n                    super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) )) -> field_identifier)) , (binary_expression "((ulong)pOVar5->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish & 0x100000000) == 0 &&\n         (uVar17 = *(uint *)((long)&pOVar5->output_lists_[0x16].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage + 4), uVar17 != 0)" (binary_expression "((ulong)pOVar5->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish & 0x100000000) == 0" (parenthesized_expression "((ulong)pOVar5->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish & 0x100000000)" ( (binary_expression "(ulong)pOVar5->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish & 0x100000000" (field_expression "(ulong)pOVar5->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish" (field_expression "(ulong)pOVar5->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "(ulong)pOVar5->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(ulong)pOVar5->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(ulong)pOVar5->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std" (binary_expression "(ulong)pOVar5->output_lists_[2].\n                 super__Vector_base<gold" (cast_expression "(ulong)pOVar5->output_lists_[2].\n                 super__Vector_base" ( (type_descriptor "ulong" type_identifier) ) (field_expression "pOVar5->output_lists_[2].\n                 super__Vector_base" (subscript_expression "pOVar5->output_lists_[2]" (field_expression "pOVar5->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) & number_literal) )) == number_literal) && (parenthesized_expression "(uVar17 = *(uint *)((long)&pOVar5->output_lists_[0x16].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage + 4), uVar17 != 0)" ( (comma_expression "uVar17 = *(uint *)((long)&pOVar5->output_lists_[0x16].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage + 4), uVar17 != 0" (assignment_expression "uVar17 = *(uint *)((long)&pOVar5->output_lists_[0x16].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage + 4)" identifier = (pointer_expression "*(uint *)((long)&pOVar5->output_lists_[0x16].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage + 4)" * (cast_expression "(uint *)((long)&pOVar5->output_lists_[0x16].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&pOVar5->output_lists_[0x16].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage + 4)" ( (binary_expression "(long)&pOVar5->output_lists_[0x16].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage + 4" (field_expression "(long)&pOVar5->output_lists_[0x16].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_end_of_storage" (field_expression "(long)&pOVar5->output_lists_[0x16].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl" (binary_expression "(long)&pOVar5->output_lists_[0x16].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(long)&pOVar5->output_lists_[0x16].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(long)&pOVar5->output_lists_[0x16].\n                                    super__Vector_base<gold::Output_data*,_std" (binary_expression "(long)&pOVar5->output_lists_[0x16].\n                                    super__Vector_base<gold" (cast_expression "(long)&pOVar5->output_lists_[0x16].\n                                    super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pOVar5->output_lists_[0x16].\n                                    super__Vector_base" & (field_expression "pOVar5->output_lists_[0x16].\n                                    super__Vector_base" (subscript_expression "pOVar5->output_lists_[0x16]" (field_expression "pOVar5->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier))) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) + number_literal) ))))) , (binary_expression "uVar17 != 0" identifier != number_literal)) )))) )) ))) )) && (parenthesized_expression "(uVar17 == *(uint *)&(this_00->super_Sized_relobj_file<64,_false>).\n                            super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2)" ( (comma_expression "uVar17 == *(uint *)&(this_00->super_Sized_relobj_file<64,_false>).\n                            super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.field_2" (binary_expression "uVar17 == *(uint *)&(this_00->super_Sized_relobj_file<64,_false>).\n                            super_Sized_relobj<64" identifier == (binary_expression "*(uint *)&(this_00->super_Sized_relobj_file<64,_false>).\n                            super_Sized_relobj<64" (pointer_expression "*(uint *)&(this_00->super_Sized_relobj_file<64,_false>).\n                            super_Sized_relobj" * (cast_expression "(uint *)&(this_00->super_Sized_relobj_file<64,_false>).\n                            super_Sized_relobj" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this_00->super_Sized_relobj_file<64,_false>).\n                            super_Sized_relobj" & (field_expression "(this_00->super_Sized_relobj_file<64,_false>).\n                            super_Sized_relobj" (parenthesized_expression "(this_00->super_Sized_relobj_file<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj_file<64,_false" (binary_expression "this_00->super_Sized_relobj_file<64" (field_expression "this_00->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier)))) < number_literal)) , (field_expression "_false>.super_Relobj.super_Object.name_.field_2" (field_expression "_false>.super_Relobj.super_Object.name_" (field_expression "_false>.super_Relobj.super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ))) )) (compound_statement "{\n      ppOVar10 = pOVar5->output_lists_[0x19].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish;\n      uVar18 = (ulong)(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                      super_Relobj.super_Object.xindex_ >> 4;\n      if ((ulong)((long)pOVar5->output_lists_[0x19].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage - (long)ppOVar10 >> 4) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n        Powerpc_relobj<64,_false>::get_opd_discard(pPVar23,(Address)r_off);\n      }\n      if ((*(byte *)((long)ppOVar10 + uVar18 * 0x10 + 4) & 1) != 0) {\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        pPVar23 = this_00;\n        gold::Symbol::set_undefined((Symbol *)this_00);\n        uVar17 = (this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                 super_Relobj.super_Object.shnum_;\n        *(uint *)((long)&(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>\n                         .super_Relobj.super_Object.name_.field_2 + 4) = 0xffffffff;\n        (this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n        super_Object.shnum_ = uVar17 & 0x7ffffcff | 0x80000000;\n      }\n    }" { (expression_statement "ppOVar10 = pOVar5->output_lists_[0x19].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish;" (field_expression "ppOVar10 = pOVar5->output_lists_[0x19].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish" (field_expression "ppOVar10 = pOVar5->output_lists_[0x19].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "ppOVar10 = pOVar5->output_lists_[0x19].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "ppOVar10 = pOVar5->output_lists_[0x19].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "ppOVar10 = pOVar5->output_lists_[0x19].\n                 super__Vector_base<gold::Output_data*,_std" (assignment_expression "ppOVar10 = pOVar5->output_lists_[0x19].\n                 super__Vector_base<gold" identifier = (binary_expression "pOVar5->output_lists_[0x19].\n                 super__Vector_base<gold" (field_expression "pOVar5->output_lists_[0x19].\n                 super__Vector_base" (subscript_expression "pOVar5->output_lists_[0x19]" (field_expression "pOVar5->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "uVar18 = (ulong)(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                      super_Relobj.super_Object.xindex_ >> 4;" (comma_expression "uVar18 = (ulong)(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                      super_Relobj.super_Object.xindex_ >> 4" (assignment_expression "uVar18 = (ulong)(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64" identifier = (binary_expression "(ulong)(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64" (field_expression "(ulong)(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj" (call_expression "(ulong)(this_00->super_Sized_relobj_file<64,_false>)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(this_00->super_Sized_relobj_file<64,_false>)" ( (binary_expression "this_00->super_Sized_relobj_file<64" (field_expression "this_00->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier (ERROR ">" >) ))) . field_identifier) < number_literal)) , (binary_expression "_false>.\n                      super_Relobj.super_Object.xindex_ >> 4" (field_expression "_false>.\n                      super_Relobj.super_Object.xindex_" (field_expression "_false>.\n                      super_Relobj.super_Object" (field_expression "_false>.\n                      super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) >> number_literal)) ;) (if_statement "if ((ulong)((long)pOVar5->output_lists_[0x19].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage - (long)ppOVar10 >> 4) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n        Powerpc_relobj<64,_false>::get_opd_discard(pPVar23,(Address)r_off);\n      }" if (parenthesized_expression "((ulong)((long)pOVar5->output_lists_[0x19].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage - (long)ppOVar10 >> 4) <= uVar18)" ( (binary_expression "(ulong)((long)pOVar5->output_lists_[0x19].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage - (long)ppOVar10 >> 4) <= uVar18" (call_expression "(ulong)((long)pOVar5->output_lists_[0x19].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage - (long)ppOVar10 >> 4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)pOVar5->output_lists_[0x19].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage - (long)ppOVar10 >> 4)" ( (binary_expression "(long)pOVar5->output_lists_[0x19].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage - (long)ppOVar10 >> 4" (binary_expression "(long)pOVar5->output_lists_[0x19].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage - (long)ppOVar10" (field_expression "(long)pOVar5->output_lists_[0x19].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage" (field_expression "(long)pOVar5->output_lists_[0x19].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl" (binary_expression "(long)pOVar5->output_lists_[0x19].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(long)pOVar5->output_lists_[0x19].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(long)pOVar5->output_lists_[0x19].\n                        super__Vector_base<gold::Output_data*,_std" (binary_expression "(long)pOVar5->output_lists_[0x19].\n                        super__Vector_base<gold" (cast_expression "(long)pOVar5->output_lists_[0x19].\n                        super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "pOVar5->output_lists_[0x19].\n                        super__Vector_base" (subscript_expression "pOVar5->output_lists_[0x19]" (field_expression "pOVar5->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(long)ppOVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        Powerpc_relobj<64,_false>::get_opd_discard(pPVar23,(Address)r_off);\n      }" { comment (expression_statement "Powerpc_relobj<64,_false>::get_opd_discard(pPVar23,(Address)r_off);" (comma_expression "Powerpc_relobj<64,_false>::get_opd_discard(pPVar23,(Address)r_off)" (binary_expression "Powerpc_relobj<64" identifier < number_literal) , (binary_expression "_false>::get_opd_discard(pPVar23,(Address)r_off)" identifier > (ERROR "::" : :) (call_expression "get_opd_discard(pPVar23,(Address)r_off)" identifier (argument_list "(pPVar23,(Address)r_off)" ( identifier , (cast_expression "(Address)r_off" ( (type_descriptor "Address" type_identifier) ) identifier) ))))) ;) })) (if_statement "if ((*(byte *)((long)ppOVar10 + uVar18 * 0x10 + 4) & 1) != 0) {\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        pPVar23 = this_00;\n        gold::Symbol::set_undefined((Symbol *)this_00);\n        uVar17 = (this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                 super_Relobj.super_Object.shnum_;\n        *(uint *)((long)&(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>\n                         .super_Relobj.super_Object.name_.field_2 + 4) = 0xffffffff;\n        (this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n        super_Object.shnum_ = uVar17 & 0x7ffffcff | 0x80000000;\n      }" if (parenthesized_expression "((*(byte *)((long)ppOVar10 + uVar18 * 0x10 + 4) & 1) != 0)" ( (binary_expression "(*(byte *)((long)ppOVar10 + uVar18 * 0x10 + 4) & 1) != 0" (parenthesized_expression "(*(byte *)((long)ppOVar10 + uVar18 * 0x10 + 4) & 1)" ( (binary_expression "*(byte *)((long)ppOVar10 + uVar18 * 0x10 + 4) & 1" (pointer_expression "*(byte *)((long)ppOVar10 + uVar18 * 0x10 + 4)" * (cast_expression "(byte *)((long)ppOVar10 + uVar18 * 0x10 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)ppOVar10 + uVar18 * 0x10 + 4)" ( (binary_expression "(long)ppOVar10 + uVar18 * 0x10 + 4" (binary_expression "(long)ppOVar10 + uVar18 * 0x10" (cast_expression "(long)ppOVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "uVar18 * 0x10" identifier * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        pPVar23 = this_00;\n        gold::Symbol::set_undefined((Symbol *)this_00);\n        uVar17 = (this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                 super_Relobj.super_Object.shnum_;\n        *(uint *)((long)&(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>\n                         .super_Relobj.super_Object.name_.field_2 + 4) = 0xffffffff;\n        (this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n        super_Object.shnum_ = uVar17 & 0x7ffffcff | 0x80000000;\n      }" { (expression_statement "in_stack_ffffffffffffff90 = 0x21fbbd;" (assignment_expression "in_stack_ffffffffffffff90 = 0x21fbbd" identifier = number_literal) ;) (expression_statement "pPVar23 = this_00;" (assignment_expression "pPVar23 = this_00" identifier = identifier) ;) (labeled_statement "gold::Symbol::set_undefined((Symbol *)this_00);" statement_identifier : (ERROR ":" :) (labeled_statement "Symbol::set_undefined((Symbol *)this_00);" statement_identifier : (ERROR ":" :) (expression_statement "set_undefined((Symbol *)this_00);" (call_expression "set_undefined((Symbol *)this_00)" identifier (argument_list "((Symbol *)this_00)" ( (cast_expression "(Symbol *)this_00" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;))) (expression_statement "uVar17 = (this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                 super_Relobj.super_Object.shnum_;" (comma_expression "uVar17 = (this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                 super_Relobj.super_Object.shnum_" (assignment_expression "uVar17 = (this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64" identifier = (binary_expression "(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64" (field_expression "(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj" (parenthesized_expression "(this_00->super_Sized_relobj_file<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj_file<64,_false" (binary_expression "this_00->super_Sized_relobj_file<64" (field_expression "this_00->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) < number_literal)) , (field_expression "_false>.\n                 super_Relobj.super_Object.shnum_" (field_expression "_false>.\n                 super_Relobj.super_Object" (field_expression "_false>.\n                 super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "*(uint *)((long)&(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>\n                         .super_Relobj.super_Object.name_.field_2 + 4) = 0xffffffff;" (assignment_expression "*(uint *)((long)&(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>\n                         .super_Relobj.super_Object.name_.field_2 + 4) = 0xffffffff" (pointer_expression "*(uint *)((long)&(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>\n                         .super_Relobj.super_Object.name_.field_2 + 4)" * (cast_expression "(uint *)((long)&(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>\n                         .super_Relobj.super_Object.name_.field_2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>\n                         .super_Relobj.super_Object.name_.field_2 + 4)" ( (comma_expression "(long)&(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>\n                         .super_Relobj.super_Object.name_.field_2 + 4" (binary_expression "(long)&(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64" (cast_expression "(long)&(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj" & (field_expression "(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj" (parenthesized_expression "(this_00->super_Sized_relobj_file<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj_file<64,_false" (binary_expression "this_00->super_Sized_relobj_file<64" (field_expression "this_00->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier))) < number_literal) , (binary_expression "_false>\n                         .super_Relobj.super_Object.name_.field_2 + 4" (field_expression "_false>\n                         .super_Relobj.super_Object.name_.field_2" (field_expression "_false>\n                         .super_Relobj.super_Object.name_" (field_expression "_false>\n                         .super_Relobj.super_Object" (field_expression "_false>\n                         .super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) + number_literal)) )))) = number_literal) ;) (expression_statement "(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n        super_Object.shnum_ = uVar17 & 0x7ffffcff | 0x80000000;" (comma_expression "(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n        super_Object.shnum_ = uVar17 & 0x7ffffcff | 0x80000000" (binary_expression "(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64" (field_expression "(this_00->super_Sized_relobj_file<64,_false>).super_Sized_relobj" (parenthesized_expression "(this_00->super_Sized_relobj_file<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj_file<64,_false" (binary_expression "this_00->super_Sized_relobj_file<64" (field_expression "this_00->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) < number_literal) , (assignment_expression "_false>.super_Relobj.\n        super_Object.shnum_ = uVar17 & 0x7ffffcff | 0x80000000" (field_expression "_false>.super_Relobj.\n        super_Object.shnum_" (field_expression "_false>.super_Relobj.\n        super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) = (binary_expression "uVar17 & 0x7ffffcff | 0x80000000" (binary_expression "uVar17 & 0x7ffffcff" identifier & number_literal) | number_literal))) ;) })) })) })) (if_statement "if (gold::parameters->options_ == (General_options *)0x0) goto LAB_00220104;" if (parenthesized_expression "(gold::parameters->options_ == (General_options *)0x0)" ( (ERROR "gold::" identifier : :) (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00220104;" goto statement_identifier ;)) (if_statement "if ((gold::parameters->options_->relocatable_).value == false) {\n    this_01 = (Output_data_save_res<64,_false> *)operator_new(0x40);\n    *(undefined8 *)&this_01->field_0x8 = 0;\n    this_01->field_0x20 = this_01->field_0x20 & 0xe0;\n    *(undefined8 *)&this_01->field_0x10 = 0;\n    *(undefined8 *)&this_01->field_0x18 = 0xffffffffffffffff;\n    *(undefined8 *)&this_01->field_0x28 = 0;\n    *(undefined8 *)&this_01->field_0x30 = 4;\n    *(undefined ***)this_01 = &PTR__Output_data_save_res_00664fb8;\n    this_01->contents_ = (uchar *)0x0;\n                    /* try { // try from 0021fc56 to 0021fe51 has its CatchHandler @ 00220146 */\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_savegpr0_",0xe,0x1f,savegpr0<false>,savegpr0_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_restgpr0_",0xe,0x1d,restgpr0<false>,restgpr0_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_restgpr0_",0x1e,0x1f,restgpr0<false>,restgpr0_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_savegpr1_",0xe,0x1f,savegpr1<false>,savegpr1_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_restgpr1_",0xe,0x1f,restgpr1<false>,restgpr1_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_savefpr_",0xe,0x1f,savefpr<false>,savefpr0_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_restfpr_",0xe,0x1d,restfpr<false>,restfpr0_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_restfpr_",0x1e,0x1f,restfpr<false>,restfpr0_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"._savef",0xe,0x1f,savefpr<false>,savefpr1_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"._restf",0xe,0x1f,restfpr<false>,restfpr1_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_savevr_",0x14,0x1f,savevr<false>,savevr_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_restvr_",0x14,0x1f,restvr<false>,restvr_tail<false>);\n    this->savres_section_ = this_01;\n    gold::Layout::add_output_section_data\n              (layout,".text",1,6,(Output_section_data *)this_01,ORDER_TEXT,false);\n    got_section((Target_powerpc<64,_false> *)&this->got_,symtab,layout);\n    in_stack_ffffffffffffff90 = 0x21fea3;\n    make_brlt_section(this,layout);\n    if (gold::parameters->options_ == (General_options *)0x0) goto LAB_00220104;\n    if (((gold::parameters->options_->toc_sort_).value != false) &&\n       (pOVar11 = (this->got_->super_Output_data_got<64,_false>).super_Output_data_got_base.\n                  super_Output_section_data_build.super_Output_section_data.output_section_,\n       pOVar11 != (Output_section *)0x0)) {\n      __last._M_current =\n           (pOVar11->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish;\n      __first._M_current =\n           (pOVar11->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_start;\n      if (0x3f < (ulong)((long)__last._M_current - (long)__first._M_current)) {\n        std::\n        _Temporary_buffer<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>_>,_gold::Output_section::Input_section>\n        ::_Temporary_buffer(&__buf,__first,__last);\n        if (__buf._M_buffer == (pointer)0x0) {\n                    /* try { // try from 002200fa to 002200fe has its CatchHandler @ 0022013e */\n          std::\n          __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n                    (__first._M_current,__last._M_current);\n        }\n        else {\n                    /* try { // try from 0021ff1d to 0021ff21 has its CatchHandler @ 0022013e */\n          std::\n          __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,_gold::Output_section::Input_section*,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n                    (__first._M_current,__last._M_current);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        operator_delete(__buf._M_buffer,(nothrow_t *)&std::nothrow);\n      }\n    }\n  }" if (parenthesized_expression "((gold::parameters->options_->relocatable_).value == false)" ( (binary_expression "(gold::parameters->options_->relocatable_).value == false" (field_expression "(gold::parameters->options_->relocatable_).value" (parenthesized_expression "(gold::parameters->options_->relocatable_)" ( (ERROR "gold::" identifier : :) (field_expression "parameters->options_->relocatable_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) == false) )) (compound_statement "{\n    this_01 = (Output_data_save_res<64,_false> *)operator_new(0x40);\n    *(undefined8 *)&this_01->field_0x8 = 0;\n    this_01->field_0x20 = this_01->field_0x20 & 0xe0;\n    *(undefined8 *)&this_01->field_0x10 = 0;\n    *(undefined8 *)&this_01->field_0x18 = 0xffffffffffffffff;\n    *(undefined8 *)&this_01->field_0x28 = 0;\n    *(undefined8 *)&this_01->field_0x30 = 4;\n    *(undefined ***)this_01 = &PTR__Output_data_save_res_00664fb8;\n    this_01->contents_ = (uchar *)0x0;\n                    /* try { // try from 0021fc56 to 0021fe51 has its CatchHandler @ 00220146 */\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_savegpr0_",0xe,0x1f,savegpr0<false>,savegpr0_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_restgpr0_",0xe,0x1d,restgpr0<false>,restgpr0_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_restgpr0_",0x1e,0x1f,restgpr0<false>,restgpr0_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_savegpr1_",0xe,0x1f,savegpr1<false>,savegpr1_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_restgpr1_",0xe,0x1f,restgpr1<false>,restgpr1_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_savefpr_",0xe,0x1f,savefpr<false>,savefpr0_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_restfpr_",0xe,0x1d,restfpr<false>,restfpr0_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_restfpr_",0x1e,0x1f,restfpr<false>,restfpr0_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"._savef",0xe,0x1f,savefpr<false>,savefpr1_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"._restf",0xe,0x1f,restfpr<false>,restfpr1_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_savevr_",0x14,0x1f,savevr<false>,savevr_tail<false>);\n    Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_restvr_",0x14,0x1f,restvr<false>,restvr_tail<false>);\n    this->savres_section_ = this_01;\n    gold::Layout::add_output_section_data\n              (layout,".text",1,6,(Output_section_data *)this_01,ORDER_TEXT,false);\n    got_section((Target_powerpc<64,_false> *)&this->got_,symtab,layout);\n    in_stack_ffffffffffffff90 = 0x21fea3;\n    make_brlt_section(this,layout);\n    if (gold::parameters->options_ == (General_options *)0x0) goto LAB_00220104;\n    if (((gold::parameters->options_->toc_sort_).value != false) &&\n       (pOVar11 = (this->got_->super_Output_data_got<64,_false>).super_Output_data_got_base.\n                  super_Output_section_data_build.super_Output_section_data.output_section_,\n       pOVar11 != (Output_section *)0x0)) {\n      __last._M_current =\n           (pOVar11->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish;\n      __first._M_current =\n           (pOVar11->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_start;\n      if (0x3f < (ulong)((long)__last._M_current - (long)__first._M_current)) {\n        std::\n        _Temporary_buffer<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>_>,_gold::Output_section::Input_section>\n        ::_Temporary_buffer(&__buf,__first,__last);\n        if (__buf._M_buffer == (pointer)0x0) {\n                    /* try { // try from 002200fa to 002200fe has its CatchHandler @ 0022013e */\n          std::\n          __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n                    (__first._M_current,__last._M_current);\n        }\n        else {\n                    /* try { // try from 0021ff1d to 0021ff21 has its CatchHandler @ 0022013e */\n          std::\n          __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,_gold::Output_section::Input_section*,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n                    (__first._M_current,__last._M_current);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        operator_delete(__buf._M_buffer,(nothrow_t *)&std::nothrow);\n      }\n    }\n  }" { (expression_statement "this_01 = (Output_data_save_res<64,_false> *)operator_new(0x40);" (assignment_expression "this_01 = (Output_data_save_res<64,_false> *)operator_new(0x40)" identifier = (parenthesized_expression "(Output_data_save_res<64,_false> *)operator_new(0x40)" ( (comma_expression "Output_data_save_res<64,_false> *)operator_new(0x40)" (binary_expression "Output_data_save_res<64" identifier < number_literal) , (binary_expression "_false> *)operator_new(0x40)" identifier > (pointer_expression "*)operator_new(0x40)" * (ERROR ")" )) (call_expression "operator_new(0x40)" identifier (argument_list "(0x40)" ( number_literal )))))) ))) ;) (expression_statement "*(undefined8 *)&this_01->field_0x8 = 0;" (assignment_expression "*(undefined8 *)&this_01->field_0x8 = 0" (pointer_expression "*(undefined8 *)&this_01->field_0x8" * (cast_expression "(undefined8 *)&this_01->field_0x8" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this_01->field_0x8" & (field_expression "this_01->field_0x8" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "this_01->field_0x20 = this_01->field_0x20 & 0xe0;" (assignment_expression "this_01->field_0x20 = this_01->field_0x20 & 0xe0" (field_expression "this_01->field_0x20" identifier -> field_identifier) = (binary_expression "this_01->field_0x20 & 0xe0" (field_expression "this_01->field_0x20" identifier -> field_identifier) & number_literal)) ;) (expression_statement "*(undefined8 *)&this_01->field_0x10 = 0;" (assignment_expression "*(undefined8 *)&this_01->field_0x10 = 0" (pointer_expression "*(undefined8 *)&this_01->field_0x10" * (cast_expression "(undefined8 *)&this_01->field_0x10" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this_01->field_0x10" & (field_expression "this_01->field_0x10" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(undefined8 *)&this_01->field_0x18 = 0xffffffffffffffff;" (assignment_expression "*(undefined8 *)&this_01->field_0x18 = 0xffffffffffffffff" (pointer_expression "*(undefined8 *)&this_01->field_0x18" * (cast_expression "(undefined8 *)&this_01->field_0x18" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this_01->field_0x18" & (field_expression "this_01->field_0x18" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(undefined8 *)&this_01->field_0x28 = 0;" (assignment_expression "*(undefined8 *)&this_01->field_0x28 = 0" (pointer_expression "*(undefined8 *)&this_01->field_0x28" * (cast_expression "(undefined8 *)&this_01->field_0x28" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this_01->field_0x28" & (field_expression "this_01->field_0x28" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(undefined8 *)&this_01->field_0x30 = 4;" (assignment_expression "*(undefined8 *)&this_01->field_0x30 = 4" (pointer_expression "*(undefined8 *)&this_01->field_0x30" * (cast_expression "(undefined8 *)&this_01->field_0x30" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this_01->field_0x30" & (field_expression "this_01->field_0x30" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(undefined ***)this_01 = &PTR__Output_data_save_res_00664fb8;" (assignment_expression "*(undefined ***)this_01 = &PTR__Output_data_save_res_00664fb8" (pointer_expression "*(undefined ***)this_01" * (cast_expression "(undefined ***)this_01" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) = (pointer_expression "&PTR__Output_data_save_res_00664fb8" & identifier)) ;) (expression_statement "this_01->contents_ = (uchar *)0x0;" (assignment_expression "this_01->contents_ = (uchar *)0x0" (field_expression "this_01->contents_" identifier -> field_identifier) = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) comment (expression_statement "Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_savegpr0_",0xe,0x1f,savegpr0<false>,savegpr0_tail<false>);" (comma_expression "Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_savegpr0_",0xe,0x1f,savegpr0<false>,savegpr0_tail<false>)" (binary_expression "Output_data_save_res<64" identifier < number_literal) , (binary_expression "_false>::savres_define\n              (this_01,symtab,"_savegpr0_",0xe,0x1f,savegpr0<false>,savegpr0_tail<false>)" identifier > (ERROR "::" : :) (call_expression "savres_define\n              (this_01,symtab,"_savegpr0_",0xe,0x1f,savegpr0<false>,savegpr0_tail<false>)" identifier (argument_list "(this_01,symtab,"_savegpr0_",0xe,0x1f,savegpr0<false>,savegpr0_tail<false>)" ( identifier , identifier , (string_literal ""_savegpr0_"" " string_content ") , number_literal , number_literal , (binary_expression "savegpr0<false" identifier < false) (ERROR ">" >) , (binary_expression "savegpr0_tail<false" identifier < false) (ERROR ">" >) ))))) ;) (expression_statement "Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_restgpr0_",0xe,0x1d,restgpr0<false>,restgpr0_tail<false>);" (comma_expression "Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_restgpr0_",0xe,0x1d,restgpr0<false>,restgpr0_tail<false>)" (binary_expression "Output_data_save_res<64" identifier < number_literal) , (binary_expression "_false>::savres_define\n              (this_01,symtab,"_restgpr0_",0xe,0x1d,restgpr0<false>,restgpr0_tail<false>)" identifier > (ERROR "::" : :) (call_expression "savres_define\n              (this_01,symtab,"_restgpr0_",0xe,0x1d,restgpr0<false>,restgpr0_tail<false>)" identifier (argument_list "(this_01,symtab,"_restgpr0_",0xe,0x1d,restgpr0<false>,restgpr0_tail<false>)" ( identifier , identifier , (string_literal ""_restgpr0_"" " string_content ") , number_literal , number_literal , (binary_expression "restgpr0<false" identifier < false) (ERROR ">" >) , (binary_expression "restgpr0_tail<false" identifier < false) (ERROR ">" >) ))))) ;) (expression_statement "Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_restgpr0_",0x1e,0x1f,restgpr0<false>,restgpr0_tail<false>);" (comma_expression "Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_restgpr0_",0x1e,0x1f,restgpr0<false>,restgpr0_tail<false>)" (binary_expression "Output_data_save_res<64" identifier < number_literal) , (binary_expression "_false>::savres_define\n              (this_01,symtab,"_restgpr0_",0x1e,0x1f,restgpr0<false>,restgpr0_tail<false>)" identifier > (ERROR "::" : :) (call_expression "savres_define\n              (this_01,symtab,"_restgpr0_",0x1e,0x1f,restgpr0<false>,restgpr0_tail<false>)" identifier (argument_list "(this_01,symtab,"_restgpr0_",0x1e,0x1f,restgpr0<false>,restgpr0_tail<false>)" ( identifier , identifier , (string_literal ""_restgpr0_"" " string_content ") , number_literal , number_literal , (binary_expression "restgpr0<false" identifier < false) (ERROR ">" >) , (binary_expression "restgpr0_tail<false" identifier < false) (ERROR ">" >) ))))) ;) (expression_statement "Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_savegpr1_",0xe,0x1f,savegpr1<false>,savegpr1_tail<false>);" (comma_expression "Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_savegpr1_",0xe,0x1f,savegpr1<false>,savegpr1_tail<false>)" (binary_expression "Output_data_save_res<64" identifier < number_literal) , (binary_expression "_false>::savres_define\n              (this_01,symtab,"_savegpr1_",0xe,0x1f,savegpr1<false>,savegpr1_tail<false>)" identifier > (ERROR "::" : :) (call_expression "savres_define\n              (this_01,symtab,"_savegpr1_",0xe,0x1f,savegpr1<false>,savegpr1_tail<false>)" identifier (argument_list "(this_01,symtab,"_savegpr1_",0xe,0x1f,savegpr1<false>,savegpr1_tail<false>)" ( identifier , identifier , (string_literal ""_savegpr1_"" " string_content ") , number_literal , number_literal , (binary_expression "savegpr1<false" identifier < false) (ERROR ">" >) , (binary_expression "savegpr1_tail<false" identifier < false) (ERROR ">" >) ))))) ;) (expression_statement "Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_restgpr1_",0xe,0x1f,restgpr1<false>,restgpr1_tail<false>);" (comma_expression "Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_restgpr1_",0xe,0x1f,restgpr1<false>,restgpr1_tail<false>)" (binary_expression "Output_data_save_res<64" identifier < number_literal) , (binary_expression "_false>::savres_define\n              (this_01,symtab,"_restgpr1_",0xe,0x1f,restgpr1<false>,restgpr1_tail<false>)" identifier > (ERROR "::" : :) (call_expression "savres_define\n              (this_01,symtab,"_restgpr1_",0xe,0x1f,restgpr1<false>,restgpr1_tail<false>)" identifier (argument_list "(this_01,symtab,"_restgpr1_",0xe,0x1f,restgpr1<false>,restgpr1_tail<false>)" ( identifier , identifier , (string_literal ""_restgpr1_"" " string_content ") , number_literal , number_literal , (binary_expression "restgpr1<false" identifier < false) (ERROR ">" >) , (binary_expression "restgpr1_tail<false" identifier < false) (ERROR ">" >) ))))) ;) (expression_statement "Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_savefpr_",0xe,0x1f,savefpr<false>,savefpr0_tail<false>);" (comma_expression "Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_savefpr_",0xe,0x1f,savefpr<false>,savefpr0_tail<false>)" (binary_expression "Output_data_save_res<64" identifier < number_literal) , (binary_expression "_false>::savres_define\n              (this_01,symtab,"_savefpr_",0xe,0x1f,savefpr<false>,savefpr0_tail<false>)" identifier > (ERROR "::" : :) (call_expression "savres_define\n              (this_01,symtab,"_savefpr_",0xe,0x1f,savefpr<false>,savefpr0_tail<false>)" identifier (argument_list "(this_01,symtab,"_savefpr_",0xe,0x1f,savefpr<false>,savefpr0_tail<false>)" ( identifier , identifier , (string_literal ""_savefpr_"" " string_content ") , number_literal , number_literal , (binary_expression "savefpr<false" identifier < false) (ERROR ">" >) , (binary_expression "savefpr0_tail<false" identifier < false) (ERROR ">" >) ))))) ;) (expression_statement "Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_restfpr_",0xe,0x1d,restfpr<false>,restfpr0_tail<false>);" (comma_expression "Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_restfpr_",0xe,0x1d,restfpr<false>,restfpr0_tail<false>)" (binary_expression "Output_data_save_res<64" identifier < number_literal) , (binary_expression "_false>::savres_define\n              (this_01,symtab,"_restfpr_",0xe,0x1d,restfpr<false>,restfpr0_tail<false>)" identifier > (ERROR "::" : :) (call_expression "savres_define\n              (this_01,symtab,"_restfpr_",0xe,0x1d,restfpr<false>,restfpr0_tail<false>)" identifier (argument_list "(this_01,symtab,"_restfpr_",0xe,0x1d,restfpr<false>,restfpr0_tail<false>)" ( identifier , identifier , (string_literal ""_restfpr_"" " string_content ") , number_literal , number_literal , (binary_expression "restfpr<false" identifier < false) (ERROR ">" >) , (binary_expression "restfpr0_tail<false" identifier < false) (ERROR ">" >) ))))) ;) (expression_statement "Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_restfpr_",0x1e,0x1f,restfpr<false>,restfpr0_tail<false>);" (comma_expression "Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_restfpr_",0x1e,0x1f,restfpr<false>,restfpr0_tail<false>)" (binary_expression "Output_data_save_res<64" identifier < number_literal) , (binary_expression "_false>::savres_define\n              (this_01,symtab,"_restfpr_",0x1e,0x1f,restfpr<false>,restfpr0_tail<false>)" identifier > (ERROR "::" : :) (call_expression "savres_define\n              (this_01,symtab,"_restfpr_",0x1e,0x1f,restfpr<false>,restfpr0_tail<false>)" identifier (argument_list "(this_01,symtab,"_restfpr_",0x1e,0x1f,restfpr<false>,restfpr0_tail<false>)" ( identifier , identifier , (string_literal ""_restfpr_"" " string_content ") , number_literal , number_literal , (binary_expression "restfpr<false" identifier < false) (ERROR ">" >) , (binary_expression "restfpr0_tail<false" identifier < false) (ERROR ">" >) ))))) ;) (expression_statement "Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"._savef",0xe,0x1f,savefpr<false>,savefpr1_tail<false>);" (comma_expression "Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"._savef",0xe,0x1f,savefpr<false>,savefpr1_tail<false>)" (binary_expression "Output_data_save_res<64" identifier < number_literal) , (binary_expression "_false>::savres_define\n              (this_01,symtab,"._savef",0xe,0x1f,savefpr<false>,savefpr1_tail<false>)" identifier > (ERROR "::" : :) (call_expression "savres_define\n              (this_01,symtab,"._savef",0xe,0x1f,savefpr<false>,savefpr1_tail<false>)" identifier (argument_list "(this_01,symtab,"._savef",0xe,0x1f,savefpr<false>,savefpr1_tail<false>)" ( identifier , identifier , (string_literal ""._savef"" " string_content ") , number_literal , number_literal , (binary_expression "savefpr<false" identifier < false) (ERROR ">" >) , (binary_expression "savefpr1_tail<false" identifier < false) (ERROR ">" >) ))))) ;) (expression_statement "Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"._restf",0xe,0x1f,restfpr<false>,restfpr1_tail<false>);" (comma_expression "Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"._restf",0xe,0x1f,restfpr<false>,restfpr1_tail<false>)" (binary_expression "Output_data_save_res<64" identifier < number_literal) , (binary_expression "_false>::savres_define\n              (this_01,symtab,"._restf",0xe,0x1f,restfpr<false>,restfpr1_tail<false>)" identifier > (ERROR "::" : :) (call_expression "savres_define\n              (this_01,symtab,"._restf",0xe,0x1f,restfpr<false>,restfpr1_tail<false>)" identifier (argument_list "(this_01,symtab,"._restf",0xe,0x1f,restfpr<false>,restfpr1_tail<false>)" ( identifier , identifier , (string_literal ""._restf"" " string_content ") , number_literal , number_literal , (binary_expression "restfpr<false" identifier < false) (ERROR ">" >) , (binary_expression "restfpr1_tail<false" identifier < false) (ERROR ">" >) ))))) ;) (expression_statement "Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_savevr_",0x14,0x1f,savevr<false>,savevr_tail<false>);" (comma_expression "Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_savevr_",0x14,0x1f,savevr<false>,savevr_tail<false>)" (binary_expression "Output_data_save_res<64" identifier < number_literal) , (binary_expression "_false>::savres_define\n              (this_01,symtab,"_savevr_",0x14,0x1f,savevr<false>,savevr_tail<false>)" identifier > (ERROR "::" : :) (call_expression "savres_define\n              (this_01,symtab,"_savevr_",0x14,0x1f,savevr<false>,savevr_tail<false>)" identifier (argument_list "(this_01,symtab,"_savevr_",0x14,0x1f,savevr<false>,savevr_tail<false>)" ( identifier , identifier , (string_literal ""_savevr_"" " string_content ") , number_literal , number_literal , (binary_expression "savevr<false" identifier < false) (ERROR ">" >) , (binary_expression "savevr_tail<false" identifier < false) (ERROR ">" >) ))))) ;) (expression_statement "Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_restvr_",0x14,0x1f,restvr<false>,restvr_tail<false>);" (comma_expression "Output_data_save_res<64,_false>::savres_define\n              (this_01,symtab,"_restvr_",0x14,0x1f,restvr<false>,restvr_tail<false>)" (binary_expression "Output_data_save_res<64" identifier < number_literal) , (binary_expression "_false>::savres_define\n              (this_01,symtab,"_restvr_",0x14,0x1f,restvr<false>,restvr_tail<false>)" identifier > (ERROR "::" : :) (call_expression "savres_define\n              (this_01,symtab,"_restvr_",0x14,0x1f,restvr<false>,restvr_tail<false>)" identifier (argument_list "(this_01,symtab,"_restvr_",0x14,0x1f,restvr<false>,restvr_tail<false>)" ( identifier , identifier , (string_literal ""_restvr_"" " string_content ") , number_literal , number_literal , (binary_expression "restvr<false" identifier < false) (ERROR ">" >) , (binary_expression "restvr_tail<false" identifier < false) (ERROR ">" >) ))))) ;) (expression_statement "this->savres_section_ = this_01;" (assignment_expression "this->savres_section_ = this_01" (field_expression "this->savres_section_" identifier -> field_identifier) = identifier) ;) (labeled_statement "gold::Layout::add_output_section_data\n              (layout,".text",1,6,(Output_section_data *)this_01,ORDER_TEXT,false);" statement_identifier : (ERROR ":" :) (labeled_statement "Layout::add_output_section_data\n              (layout,".text",1,6,(Output_section_data *)this_01,ORDER_TEXT,false);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_data\n              (layout,".text",1,6,(Output_section_data *)this_01,ORDER_TEXT,false);" (call_expression "add_output_section_data\n              (layout,".text",1,6,(Output_section_data *)this_01,ORDER_TEXT,false)" identifier (argument_list "(layout,".text",1,6,(Output_section_data *)this_01,ORDER_TEXT,false)" ( identifier , (string_literal "".text"" " string_content ") , number_literal , number_literal , (cast_expression "(Output_section_data *)this_01" ( (type_descriptor "Output_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , false ))) ;))) (expression_statement "got_section((Target_powerpc<64,_false> *)&this->got_,symtab,layout);" (call_expression "got_section((Target_powerpc<64,_false> *)&this->got_,symtab,layout)" identifier (argument_list "((Target_powerpc<64,_false> *)&this->got_,symtab,layout)" ( (binary_expression "(Target_powerpc<64,_false> *)&this->got_" (parenthesized_expression "(Target_powerpc<64,_false> *)" ( (comma_expression "Target_powerpc<64,_false> *" (binary_expression "Target_powerpc<64" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) & (field_expression "this->got_" identifier -> field_identifier)) , identifier , identifier ))) ;) (expression_statement "in_stack_ffffffffffffff90 = 0x21fea3;" (assignment_expression "in_stack_ffffffffffffff90 = 0x21fea3" identifier = number_literal) ;) (expression_statement "make_brlt_section(this,layout);" (call_expression "make_brlt_section(this,layout)" identifier (argument_list "(this,layout)" ( identifier , identifier ))) ;) (if_statement "if (gold::parameters->options_ == (General_options *)0x0) goto LAB_00220104;" if (parenthesized_expression "(gold::parameters->options_ == (General_options *)0x0)" ( (ERROR "gold::" identifier : :) (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00220104;" goto statement_identifier ;)) (if_statement "if (((gold::parameters->options_->toc_sort_).value != false) &&\n       (pOVar11 = (this->got_->super_Output_data_got<64,_false>).super_Output_data_got_base.\n                  super_Output_section_data_build.super_Output_section_data.output_section_,\n       pOVar11 != (Output_section *)0x0)) {\n      __last._M_current =\n           (pOVar11->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish;\n      __first._M_current =\n           (pOVar11->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_start;\n      if (0x3f < (ulong)((long)__last._M_current - (long)__first._M_current)) {\n        std::\n        _Temporary_buffer<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>_>,_gold::Output_section::Input_section>\n        ::_Temporary_buffer(&__buf,__first,__last);\n        if (__buf._M_buffer == (pointer)0x0) {\n                    /* try { // try from 002200fa to 002200fe has its CatchHandler @ 0022013e */\n          std::\n          __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n                    (__first._M_current,__last._M_current);\n        }\n        else {\n                    /* try { // try from 0021ff1d to 0021ff21 has its CatchHandler @ 0022013e */\n          std::\n          __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,_gold::Output_section::Input_section*,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n                    (__first._M_current,__last._M_current);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        operator_delete(__buf._M_buffer,(nothrow_t *)&std::nothrow);\n      }\n    }" if (parenthesized_expression "(((gold::parameters->options_->toc_sort_).value != false) &&\n       (pOVar11 = (this->got_->super_Output_data_got<64,_false>).super_Output_data_got_base.\n                  super_Output_section_data_build.super_Output_section_data.output_section_,\n       pOVar11 != (Output_section *)0x0))" ( (binary_expression "((gold::parameters->options_->toc_sort_).value != false) &&\n       (pOVar11 = (this->got_->super_Output_data_got<64,_false>).super_Output_data_got_base.\n                  super_Output_section_data_build.super_Output_section_data.output_section_,\n       pOVar11 != (Output_section *)0x0)" (parenthesized_expression "((gold::parameters->options_->toc_sort_).value != false)" ( (binary_expression "(gold::parameters->options_->toc_sort_).value != false" (field_expression "(gold::parameters->options_->toc_sort_).value" (parenthesized_expression "(gold::parameters->options_->toc_sort_)" ( (ERROR "gold::" identifier : :) (field_expression "parameters->options_->toc_sort_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) != false) )) && (parenthesized_expression "(pOVar11 = (this->got_->super_Output_data_got<64,_false>).super_Output_data_got_base.\n                  super_Output_section_data_build.super_Output_section_data.output_section_,\n       pOVar11 != (Output_section *)0x0)" ( (comma_expression "pOVar11 = (this->got_->super_Output_data_got<64,_false>).super_Output_data_got_base.\n                  super_Output_section_data_build.super_Output_section_data.output_section_,\n       pOVar11 != (Output_section *)0x0" (assignment_expression "pOVar11 = (this->got_->super_Output_data_got<64,_false>).super_Output_data_got_base.\n                  super_Output_section_data_build.super_Output_section_data.output_section_" identifier = (field_expression "(this->got_->super_Output_data_got<64,_false>).super_Output_data_got_base.\n                  super_Output_section_data_build.super_Output_section_data.output_section_" (field_expression "(this->got_->super_Output_data_got<64,_false>).super_Output_data_got_base.\n                  super_Output_section_data_build.super_Output_section_data" (field_expression "(this->got_->super_Output_data_got<64,_false>).super_Output_data_got_base.\n                  super_Output_section_data_build" (field_expression "(this->got_->super_Output_data_got<64,_false>).super_Output_data_got_base" (parenthesized_expression "(this->got_->super_Output_data_got<64,_false>)" ( (comma_expression "this->got_->super_Output_data_got<64,_false" (binary_expression "this->got_->super_Output_data_got<64" (field_expression "this->got_->super_Output_data_got" (field_expression "this->got_" identifier -> field_identifier) -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) , (binary_expression "pOVar11 != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      __last._M_current =\n           (pOVar11->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish;\n      __first._M_current =\n           (pOVar11->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_start;\n      if (0x3f < (ulong)((long)__last._M_current - (long)__first._M_current)) {\n        std::\n        _Temporary_buffer<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>_>,_gold::Output_section::Input_section>\n        ::_Temporary_buffer(&__buf,__first,__last);\n        if (__buf._M_buffer == (pointer)0x0) {\n                    /* try { // try from 002200fa to 002200fe has its CatchHandler @ 0022013e */\n          std::\n          __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n                    (__first._M_current,__last._M_current);\n        }\n        else {\n                    /* try { // try from 0021ff1d to 0021ff21 has its CatchHandler @ 0022013e */\n          std::\n          __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,_gold::Output_section::Input_section*,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n                    (__first._M_current,__last._M_current);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        operator_delete(__buf._M_buffer,(nothrow_t *)&std::nothrow);\n      }\n    }" { (ERROR "__last._M_current =\n           (pOVar11->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::" (comma_expression "__last._M_current =\n           (pOVar11->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std" (assignment_expression "__last._M_current =\n           (pOVar11->input_sections_).\n           super__Vector_base<gold" (field_expression "__last._M_current" identifier . field_identifier) = (binary_expression "(pOVar11->input_sections_).\n           super__Vector_base<gold" (field_expression "(pOVar11->input_sections_).\n           super__Vector_base" (parenthesized_expression "(pOVar11->input_sections_)" ( (field_expression "pOVar11->input_sections_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (labeled_statement "Output_section::Input_section>_>\n           ._M_impl._M_finish;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n           ._M_impl._M_finish;" (field_expression "Input_section>_>\n           ._M_impl._M_finish" (field_expression "Input_section>_>\n           ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;)) (ERROR "__first._M_current =\n           (pOVar11->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::" (comma_expression "__first._M_current =\n           (pOVar11->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std" (assignment_expression "__first._M_current =\n           (pOVar11->input_sections_).\n           super__Vector_base<gold" (field_expression "__first._M_current" identifier . field_identifier) = (binary_expression "(pOVar11->input_sections_).\n           super__Vector_base<gold" (field_expression "(pOVar11->input_sections_).\n           super__Vector_base" (parenthesized_expression "(pOVar11->input_sections_)" ( (field_expression "pOVar11->input_sections_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (labeled_statement "Output_section::Input_section>_>\n           ._M_impl._M_start;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n           ._M_impl._M_start;" (field_expression "Input_section>_>\n           ._M_impl._M_start" (field_expression "Input_section>_>\n           ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;)) (if_statement "if (0x3f < (ulong)((long)__last._M_current - (long)__first._M_current)) {\n        std::\n        _Temporary_buffer<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>_>,_gold::Output_section::Input_section>\n        ::_Temporary_buffer(&__buf,__first,__last);\n        if (__buf._M_buffer == (pointer)0x0) {\n                    /* try { // try from 002200fa to 002200fe has its CatchHandler @ 0022013e */\n          std::\n          __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n                    (__first._M_current,__last._M_current);\n        }\n        else {\n                    /* try { // try from 0021ff1d to 0021ff21 has its CatchHandler @ 0022013e */\n          std::\n          __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,_gold::Output_section::Input_section*,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n                    (__first._M_current,__last._M_current);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        operator_delete(__buf._M_buffer,(nothrow_t *)&std::nothrow);\n      }" if (parenthesized_expression "(0x3f < (ulong)((long)__last._M_current - (long)__first._M_current))" ( (binary_expression "0x3f < (ulong)((long)__last._M_current - (long)__first._M_current)" number_literal < (call_expression "(ulong)((long)__last._M_current - (long)__first._M_current)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)__last._M_current - (long)__first._M_current)" ( (binary_expression "(long)__last._M_current - (long)__first._M_current" (cast_expression "(long)__last._M_current" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "__last._M_current" identifier . field_identifier)) - (cast_expression "(long)__first._M_current" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "__first._M_current" identifier . field_identifier))) )))) )) (compound_statement "{\n        std::\n        _Temporary_buffer<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>_>,_gold::Output_section::Input_section>\n        ::_Temporary_buffer(&__buf,__first,__last);\n        if (__buf._M_buffer == (pointer)0x0) {\n                    /* try { // try from 002200fa to 002200fe has its CatchHandler @ 0022013e */\n          std::\n          __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n                    (__first._M_current,__last._M_current);\n        }\n        else {\n                    /* try { // try from 0021ff1d to 0021ff21 has its CatchHandler @ 0022013e */\n          std::\n          __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,_gold::Output_section::Input_section*,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n                    (__first._M_current,__last._M_current);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        operator_delete(__buf._M_buffer,(nothrow_t *)&std::nothrow);\n      }" { (labeled_statement "std::\n        _Temporary_buffer<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>_>,_gold::Output_section::Input_section>\n        ::_Temporary_buffer(&__buf,__first,__last);" statement_identifier (ERROR "::\n        _Temporary_buffer<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold:" : : (binary_expression "_Temporary_buffer<__gnu_cxx" identifier < identifier) : : (binary_expression "__normal_iterator<gold" identifier < identifier) : : (comma_expression "Output_section::Input_section*,_std" identifier (ERROR "::Input_section*" : : identifier *) , identifier) : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>_>,_gold::Output_section::Input_section>\n        ::_Temporary_buffer(&__buf,__first,__last);" statement_identifier (ERROR "::Input_section,_std::allocator<gold::Output_section::Input_section>_>_>,_gold:" : : (comma_expression "Input_section,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (comma_expression "Output_section::Input_section>_>_>,_gold" identifier (ERROR "::Input_section>_>_>" : : (binary_expression "Input_section>_>_" (binary_expression "Input_section>_" identifier > identifier) > identifier) >) , identifier) :) : (labeled_statement "Output_section::Input_section>\n        ::_Temporary_buffer(&__buf,__first,__last);" statement_identifier (ERROR "::Input_section>\n        :" : : identifier > :) : (expression_statement "_Temporary_buffer(&__buf,__first,__last);" (call_expression "_Temporary_buffer(&__buf,__first,__last)" identifier (argument_list "(&__buf,__first,__last)" ( (pointer_expression "&__buf" & identifier) , identifier , identifier ))) ;)))) (if_statement "if (__buf._M_buffer == (pointer)0x0) {\n                    /* try { // try from 002200fa to 002200fe has its CatchHandler @ 0022013e */\n          std::\n          __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n                    (__first._M_current,__last._M_current);\n        }\n        else {\n                    /* try { // try from 0021ff1d to 0021ff21 has its CatchHandler @ 0022013e */\n          std::\n          __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,_gold::Output_section::Input_section*,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n                    (__first._M_current,__last._M_current);\n        }" if (parenthesized_expression "(__buf._M_buffer == (pointer)0x0)" ( (binary_expression "__buf._M_buffer == (pointer)0x0" (field_expression "__buf._M_buffer" identifier . field_identifier) == (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n                    /* try { // try from 002200fa to 002200fe has its CatchHandler @ 0022013e */\n          std::\n          __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n                    (__first._M_current,__last._M_current);\n        }" { comment (labeled_statement "std::\n          __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n                    (__first._M_current,__last._M_current);" statement_identifier (ERROR "::\n          __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,___gnu_cxx:" : : (binary_expression "__inplace_stable_sort<__gnu_cxx" identifier < identifier) : : (binary_expression "__normal_iterator<gold" identifier < identifier) : : (comma_expression "Output_section::Input_section*,_std" identifier (ERROR "::Input_section*" : : identifier *) , identifier) : : (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "Output_section::Input_section>_>,___gnu_cxx" identifier (ERROR "::Input_section>_>" : : (binary_expression "Input_section>_" identifier > identifier) >) , identifier) :) : (labeled_statement "__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n                    (__first._M_current,__last._M_current);" statement_identifier (ERROR "::_Iter_comp_iter<(anonymous_namespace):" : : (binary_expression "_Iter_comp_iter<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) :) : (expression_statement "Sort_toc_sections<false>_>_>\n                    (__first._M_current,__last._M_current);" (binary_expression "Sort_toc_sections<false>_>_>\n                    (__first._M_current,__last._M_current)" (binary_expression "Sort_toc_sections<false>_>_" (binary_expression "Sort_toc_sections<false>_" (binary_expression "Sort_toc_sections<false" identifier < false) > identifier) > identifier) > (parenthesized_expression "(__first._M_current,__last._M_current)" ( (comma_expression "__first._M_current,__last._M_current" (field_expression "__first._M_current" identifier . field_identifier) , (field_expression "__last._M_current" identifier . field_identifier)) ))) ;))) }) (else_clause "else {\n                    /* try { // try from 0021ff1d to 0021ff21 has its CatchHandler @ 0022013e */\n          std::\n          __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,_gold::Output_section::Input_section*,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n                    (__first._M_current,__last._M_current);\n        }" else (compound_statement "{\n                    /* try { // try from 0021ff1d to 0021ff21 has its CatchHandler @ 0022013e */\n          std::\n          __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,_gold::Output_section::Input_section*,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n                    (__first._M_current,__last._M_current);\n        }" { comment (labeled_statement "std::\n          __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,_gold::Output_section::Input_section*,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n                    (__first._M_current,__last._M_current);" statement_identifier (ERROR "::\n          __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,_gold::Output_section::Input_section*,_long_int,___gnu_cxx:" : : (binary_expression "__stable_sort_adaptive<__gnu_cxx" identifier < identifier) : : (binary_expression "__normal_iterator<gold" identifier < identifier) : : (comma_expression "Output_section::Input_section*,_std" identifier (ERROR "::Input_section*" : : identifier *) , identifier) : : (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "Output_section::Input_section>_>,_gold" identifier (ERROR "::Input_section>_>" : : (binary_expression "Input_section>_" identifier > identifier) >) , identifier) : : (comma_expression "Output_section::Input_section*,_long_int,___gnu_cxx" identifier (ERROR "::Input_section*" : : identifier *) , (comma_expression "_long_int,___gnu_cxx" identifier , identifier)) :) : (labeled_statement "__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n                    (__first._M_current,__last._M_current);" statement_identifier (ERROR "::_Iter_comp_iter<(anonymous_namespace):" : : (binary_expression "_Iter_comp_iter<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) :) : (expression_statement "Sort_toc_sections<false>_>_>\n                    (__first._M_current,__last._M_current);" (binary_expression "Sort_toc_sections<false>_>_>\n                    (__first._M_current,__last._M_current)" (binary_expression "Sort_toc_sections<false>_>_" (binary_expression "Sort_toc_sections<false>_" (binary_expression "Sort_toc_sections<false" identifier < false) > identifier) > identifier) > (parenthesized_expression "(__first._M_current,__last._M_current)" ( (comma_expression "__first._M_current,__last._M_current" (field_expression "__first._M_current" identifier . field_identifier) , (field_expression "__last._M_current" identifier . field_identifier)) ))) ;))) }))) (expression_statement "in_stack_ffffffffffffff90 = 0x21ff32;" (assignment_expression "in_stack_ffffffffffffff90 = 0x21ff32" identifier = number_literal) ;) (expression_statement "operator_delete(__buf._M_buffer,(nothrow_t *)&std::nothrow);" (call_expression "operator_delete(__buf._M_buffer,(nothrow_t *)&std::nothrow)" identifier (argument_list "(__buf._M_buffer,(nothrow_t *)&std::nothrow)" ( (field_expression "__buf._M_buffer" identifier . field_identifier) , (cast_expression "(nothrow_t *)&std" ( (type_descriptor "nothrow_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&std" & identifier)) (ERROR "::nothrow" : : identifier) ))) ;) })) })) })) (expression_statement "pOVar6 = layout->dynamic_data_;" (assignment_expression "pOVar6 = layout->dynamic_data_" identifier = (field_expression "layout->dynamic_data_" identifier -> field_identifier)) ;) (if_statement "if (pOVar6 != (Output_data_dynamic *)0x0) {\n    pOVar15 = (Output_data *)0x0;\n    plt_got = this->plt_;\n    if (plt_got != (Output_data_plt_powerpc<64,_false> *)0x0) {\n      pOVar15 = (Output_data *)plt_got->rel_;\n    }\n    gold::Layout::add_target_dynamic_tags\n              (layout,false,(Output_data *)plt_got,pOVar15,\n               (Output_data_reloc_generic *)this->rela_dyn_,true,false);\n    pOVar26 = this->glink_;\n    if (pOVar26 != (Output_data_glink<64,_false> *)0x0) {\n      if ((*(uint *)&pOVar26->field_0x20 & 2) == 0) {\n        (**(code **)((char *)pOVar26->invalid_address + 0x70))(pOVar26,in_stack_ffffffffffffff90);\n        if ((*(uint *)&pOVar26->field_0x20 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        pOVar26 = this->glink_;\n      }\n      iVar7._M_current =\n           (pOVar6->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_finish;\n      __buf._M_buffer =\n           (pointer)CONCAT44((-(uint)((*(uint *)&pOVar26->targ_->field_0x10 & 2) == 0) & 0xfffffff4)\n                             + 0x20,0x70000000);\n      __buf._M_original_len = (size_type)pOVar26;\n      if (iVar7._M_current ==\n          (pOVar6->entries_).\n          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ._M_impl._M_end_of_storage) {\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar7,(Dynamic_entry *)&__buf);\n      }\n      else {\n        ((iVar7._M_current)->u_).sym = (Symbol *)pOVar26;\n        (iVar7._M_current)->od2 = (Output_data *)__buf._M_len;\n        *(pointer *)&(iVar7._M_current)->tag_ = __buf._M_buffer;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar7._M_current + 1;\n      }\n    }\n    if (this->has_localentry0_ == false) {\n      uVar17 = 0;\n      if (this->has_tls_get_addr_opt_ == false) goto LAB_0021f9ad;\n    }\n    else {\n      uVar17 = 4;\n    }\n    __buf._M_buffer = (pointer)0xffffffff70000003;\n    iVar7._M_current =\n         (pOVar6->entries_).\n         super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n         ._M_impl._M_finish;\n    __buf._M_original_len =\n         CONCAT44(__buf._M_original_len._4_4_,this->has_tls_get_addr_opt_ | uVar17);\n    if (iVar7._M_current ==\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_end_of_storage) {\n      std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar6->entries_,iVar7,(Dynamic_entry *)&__buf);\n    }\n    else {\n      (iVar7._M_current)->u_ = (anon_union_8_4_94c5dad9_for_u_)__buf._M_original_len;\n      (iVar7._M_current)->od2 = (Output_data *)__buf._M_len;\n      (iVar7._M_current)->tag_ = DT_MIPS_ICHECKSUM;\n      (iVar7._M_current)->offset_ = 0xffffffff;\n      (pOVar6->entries_).\n      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = iVar7._M_current + 1;\n    }\n  }" if (parenthesized_expression "(pOVar6 != (Output_data_dynamic *)0x0)" ( (binary_expression "pOVar6 != (Output_data_dynamic *)0x0" identifier != (cast_expression "(Output_data_dynamic *)0x0" ( (type_descriptor "Output_data_dynamic *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pOVar15 = (Output_data *)0x0;\n    plt_got = this->plt_;\n    if (plt_got != (Output_data_plt_powerpc<64,_false> *)0x0) {\n      pOVar15 = (Output_data *)plt_got->rel_;\n    }\n    gold::Layout::add_target_dynamic_tags\n              (layout,false,(Output_data *)plt_got,pOVar15,\n               (Output_data_reloc_generic *)this->rela_dyn_,true,false);\n    pOVar26 = this->glink_;\n    if (pOVar26 != (Output_data_glink<64,_false> *)0x0) {\n      if ((*(uint *)&pOVar26->field_0x20 & 2) == 0) {\n        (**(code **)((char *)pOVar26->invalid_address + 0x70))(pOVar26,in_stack_ffffffffffffff90);\n        if ((*(uint *)&pOVar26->field_0x20 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        pOVar26 = this->glink_;\n      }\n      iVar7._M_current =\n           (pOVar6->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_finish;\n      __buf._M_buffer =\n           (pointer)CONCAT44((-(uint)((*(uint *)&pOVar26->targ_->field_0x10 & 2) == 0) & 0xfffffff4)\n                             + 0x20,0x70000000);\n      __buf._M_original_len = (size_type)pOVar26;\n      if (iVar7._M_current ==\n          (pOVar6->entries_).\n          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ._M_impl._M_end_of_storage) {\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar7,(Dynamic_entry *)&__buf);\n      }\n      else {\n        ((iVar7._M_current)->u_).sym = (Symbol *)pOVar26;\n        (iVar7._M_current)->od2 = (Output_data *)__buf._M_len;\n        *(pointer *)&(iVar7._M_current)->tag_ = __buf._M_buffer;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar7._M_current + 1;\n      }\n    }\n    if (this->has_localentry0_ == false) {\n      uVar17 = 0;\n      if (this->has_tls_get_addr_opt_ == false) goto LAB_0021f9ad;\n    }\n    else {\n      uVar17 = 4;\n    }\n    __buf._M_buffer = (pointer)0xffffffff70000003;\n    iVar7._M_current =\n         (pOVar6->entries_).\n         super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n         ._M_impl._M_finish;\n    __buf._M_original_len =\n         CONCAT44(__buf._M_original_len._4_4_,this->has_tls_get_addr_opt_ | uVar17);\n    if (iVar7._M_current ==\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_end_of_storage) {\n      std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar6->entries_,iVar7,(Dynamic_entry *)&__buf);\n    }\n    else {\n      (iVar7._M_current)->u_ = (anon_union_8_4_94c5dad9_for_u_)__buf._M_original_len;\n      (iVar7._M_current)->od2 = (Output_data *)__buf._M_len;\n      (iVar7._M_current)->tag_ = DT_MIPS_ICHECKSUM;\n      (iVar7._M_current)->offset_ = 0xffffffff;\n      (pOVar6->entries_).\n      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = iVar7._M_current + 1;\n    }\n  }" { (expression_statement "pOVar15 = (Output_data *)0x0;" (assignment_expression "pOVar15 = (Output_data *)0x0" identifier = (cast_expression "(Output_data *)0x0" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plt_got = this->plt_;" (assignment_expression "plt_got = this->plt_" identifier = (field_expression "this->plt_" identifier -> field_identifier)) ;) (if_statement "if (plt_got != (Output_data_plt_powerpc<64,_false> *)0x0) {\n      pOVar15 = (Output_data *)plt_got->rel_;\n    }" if (parenthesized_expression "(plt_got != (Output_data_plt_powerpc<64,_false> *)0x0)" ( (binary_expression "plt_got != (Output_data_plt_powerpc<64,_false> *)0x0)" identifier != (parenthesized_expression "(Output_data_plt_powerpc<64,_false> *)0x0)" ( (comma_expression "Output_data_plt_powerpc<64,_false> *)0x0" (binary_expression "Output_data_plt_powerpc<64" identifier < number_literal) , (binary_expression "_false> *)0x0" identifier > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal))) ))) )) (compound_statement "{\n      pOVar15 = (Output_data *)plt_got->rel_;\n    }" { (expression_statement "pOVar15 = (Output_data *)plt_got->rel_;" (assignment_expression "pOVar15 = (Output_data *)plt_got->rel_" identifier = (cast_expression "(Output_data *)plt_got->rel_" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "plt_got->rel_" identifier -> field_identifier))) ;) })) (labeled_statement "gold::Layout::add_target_dynamic_tags\n              (layout,false,(Output_data *)plt_got,pOVar15,\n               (Output_data_reloc_generic *)this->rela_dyn_,true,false);" statement_identifier : (ERROR ":" :) (labeled_statement "Layout::add_target_dynamic_tags\n              (layout,false,(Output_data *)plt_got,pOVar15,\n               (Output_data_reloc_generic *)this->rela_dyn_,true,false);" statement_identifier : (ERROR ":" :) (expression_statement "add_target_dynamic_tags\n              (layout,false,(Output_data *)plt_got,pOVar15,\n               (Output_data_reloc_generic *)this->rela_dyn_,true,false);" (call_expression "add_target_dynamic_tags\n              (layout,false,(Output_data *)plt_got,pOVar15,\n               (Output_data_reloc_generic *)this->rela_dyn_,true,false)" identifier (argument_list "(layout,false,(Output_data *)plt_got,pOVar15,\n               (Output_data_reloc_generic *)this->rela_dyn_,true,false)" ( identifier , false , (cast_expression "(Output_data *)plt_got" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (cast_expression "(Output_data_reloc_generic *)this->rela_dyn_" ( (type_descriptor "Output_data_reloc_generic *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this->rela_dyn_" identifier -> field_identifier)) , true , false ))) ;))) (expression_statement "pOVar26 = this->glink_;" (assignment_expression "pOVar26 = this->glink_" identifier = (field_expression "this->glink_" identifier -> field_identifier)) ;) (if_statement "if (pOVar26 != (Output_data_glink<64,_false> *)0x0) {\n      if ((*(uint *)&pOVar26->field_0x20 & 2) == 0) {\n        (**(code **)((char *)pOVar26->invalid_address + 0x70))(pOVar26,in_stack_ffffffffffffff90);\n        if ((*(uint *)&pOVar26->field_0x20 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        pOVar26 = this->glink_;\n      }\n      iVar7._M_current =\n           (pOVar6->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_finish;\n      __buf._M_buffer =\n           (pointer)CONCAT44((-(uint)((*(uint *)&pOVar26->targ_->field_0x10 & 2) == 0) & 0xfffffff4)\n                             + 0x20,0x70000000);\n      __buf._M_original_len = (size_type)pOVar26;\n      if (iVar7._M_current ==\n          (pOVar6->entries_).\n          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ._M_impl._M_end_of_storage) {\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar7,(Dynamic_entry *)&__buf);\n      }\n      else {\n        ((iVar7._M_current)->u_).sym = (Symbol *)pOVar26;\n        (iVar7._M_current)->od2 = (Output_data *)__buf._M_len;\n        *(pointer *)&(iVar7._M_current)->tag_ = __buf._M_buffer;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar7._M_current + 1;\n      }\n    }" if (parenthesized_expression "(pOVar26 != (Output_data_glink<64,_false> *)0x0)" ( (binary_expression "pOVar26 != (Output_data_glink<64,_false> *)0x0)" identifier != (parenthesized_expression "(Output_data_glink<64,_false> *)0x0)" ( (comma_expression "Output_data_glink<64,_false> *)0x0" (binary_expression "Output_data_glink<64" identifier < number_literal) , (binary_expression "_false> *)0x0" identifier > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal))) ))) )) (compound_statement "{\n      if ((*(uint *)&pOVar26->field_0x20 & 2) == 0) {\n        (**(code **)((char *)pOVar26->invalid_address + 0x70))(pOVar26,in_stack_ffffffffffffff90);\n        if ((*(uint *)&pOVar26->field_0x20 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        pOVar26 = this->glink_;\n      }\n      iVar7._M_current =\n           (pOVar6->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_finish;\n      __buf._M_buffer =\n           (pointer)CONCAT44((-(uint)((*(uint *)&pOVar26->targ_->field_0x10 & 2) == 0) & 0xfffffff4)\n                             + 0x20,0x70000000);\n      __buf._M_original_len = (size_type)pOVar26;\n      if (iVar7._M_current ==\n          (pOVar6->entries_).\n          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ._M_impl._M_end_of_storage) {\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar7,(Dynamic_entry *)&__buf);\n      }\n      else {\n        ((iVar7._M_current)->u_).sym = (Symbol *)pOVar26;\n        (iVar7._M_current)->od2 = (Output_data *)__buf._M_len;\n        *(pointer *)&(iVar7._M_current)->tag_ = __buf._M_buffer;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar7._M_current + 1;\n      }\n    }" { (if_statement "if ((*(uint *)&pOVar26->field_0x20 & 2) == 0) {\n        (**(code **)((char *)pOVar26->invalid_address + 0x70))(pOVar26,in_stack_ffffffffffffff90);\n        if ((*(uint *)&pOVar26->field_0x20 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        pOVar26 = this->glink_;\n      }" if (parenthesized_expression "((*(uint *)&pOVar26->field_0x20 & 2) == 0)" ( (binary_expression "(*(uint *)&pOVar26->field_0x20 & 2) == 0" (parenthesized_expression "(*(uint *)&pOVar26->field_0x20 & 2)" ( (binary_expression "*(uint *)&pOVar26->field_0x20 & 2" (pointer_expression "*(uint *)&pOVar26->field_0x20" * (cast_expression "(uint *)&pOVar26->field_0x20" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar26->field_0x20" & (field_expression "pOVar26->field_0x20" identifier -> field_identifier)))) & number_literal) )) == number_literal) )) (compound_statement "{\n        (**(code **)((char *)pOVar26->invalid_address + 0x70))(pOVar26,in_stack_ffffffffffffff90);\n        if ((*(uint *)&pOVar26->field_0x20 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        pOVar26 = this->glink_;\n      }" { (expression_statement "(**(code **)((char *)pOVar26->invalid_address + 0x70))(pOVar26,in_stack_ffffffffffffff90);" (call_expression "(**(code **)((char *)pOVar26->invalid_address + 0x70))(pOVar26,in_stack_ffffffffffffff90)" (parenthesized_expression "(**(code **)((char *)pOVar26->invalid_address + 0x70))" ( (pointer_expression "**(code **)((char *)pOVar26->invalid_address + 0x70)" * (pointer_expression "*(code **)((char *)pOVar26->invalid_address + 0x70)" * (cast_expression "(code **)((char *)pOVar26->invalid_address + 0x70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((char *)pOVar26->invalid_address + 0x70)" ( (binary_expression "(char *)pOVar26->invalid_address + 0x70" (cast_expression "(char *)pOVar26->invalid_address" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "pOVar26->invalid_address" identifier -> field_identifier)) + number_literal) ))))) )) (argument_list "(pOVar26,in_stack_ffffffffffffff90)" ( identifier , identifier ))) ;) (if_statement "if ((*(uint *)&pOVar26->field_0x20 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n        }" if (parenthesized_expression "((*(uint *)&pOVar26->field_0x20 & 2) == 0)" ( (binary_expression "(*(uint *)&pOVar26->field_0x20 & 2) == 0" (parenthesized_expression "(*(uint *)&pOVar26->field_0x20 & 2)" ( (binary_expression "*(uint *)&pOVar26->field_0x20 & 2" (pointer_expression "*(uint *)&pOVar26->field_0x20" * (cast_expression "(uint *)&pOVar26->field_0x20" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar26->field_0x20" & (field_expression "pOVar26->field_0x20" identifier -> field_identifier)))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n        }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");" (call_expression "do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size")" identifier (argument_list "("../../gold/output.h",0x163,"finalize_data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""finalize_data_size"" " string_content ") ))) ;)) })) (expression_statement "pOVar26 = this->glink_;" (assignment_expression "pOVar26 = this->glink_" identifier = (field_expression "this->glink_" identifier -> field_identifier)) ;) })) (ERROR "iVar7._M_current =\n           (pOVar6->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::" (comma_expression "iVar7._M_current =\n           (pOVar6->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std" (assignment_expression "iVar7._M_current =\n           (pOVar6->entries_).\n           super__Vector_base<gold" (field_expression "iVar7._M_current" identifier . field_identifier) = (binary_expression "(pOVar6->entries_).\n           super__Vector_base<gold" (field_expression "(pOVar6->entries_).\n           super__Vector_base" (parenthesized_expression "(pOVar6->entries_)" ( (field_expression "pOVar6->entries_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data_dynamic::Dynamic_entry" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_finish;" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry>_>\n           ._M_impl._M_finish;" (field_expression "Dynamic_entry>_>\n           ._M_impl._M_finish" (field_expression "Dynamic_entry>_>\n           ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;)) (expression_statement "__buf._M_buffer =\n           (pointer)CONCAT44((-(uint)((*(uint *)&pOVar26->targ_->field_0x10 & 2) == 0) & 0xfffffff4)\n                             + 0x20,0x70000000);" (assignment_expression "__buf._M_buffer =\n           (pointer)CONCAT44((-(uint)((*(uint *)&pOVar26->targ_->field_0x10 & 2) == 0) & 0xfffffff4)\n                             + 0x20,0x70000000)" (field_expression "__buf._M_buffer" identifier . field_identifier) = (cast_expression "(pointer)CONCAT44((-(uint)((*(uint *)&pOVar26->targ_->field_0x10 & 2) == 0) & 0xfffffff4)\n                             + 0x20,0x70000000)" ( (type_descriptor "pointer" type_identifier) ) (call_expression "CONCAT44((-(uint)((*(uint *)&pOVar26->targ_->field_0x10 & 2) == 0) & 0xfffffff4)\n                             + 0x20,0x70000000)" identifier (argument_list "((-(uint)((*(uint *)&pOVar26->targ_->field_0x10 & 2) == 0) & 0xfffffff4)\n                             + 0x20,0x70000000)" ( (binary_expression "(-(uint)((*(uint *)&pOVar26->targ_->field_0x10 & 2) == 0) & 0xfffffff4)\n                             + 0x20" (parenthesized_expression "(-(uint)((*(uint *)&pOVar26->targ_->field_0x10 & 2) == 0) & 0xfffffff4)" ( (binary_expression "-(uint)((*(uint *)&pOVar26->targ_->field_0x10 & 2) == 0) & 0xfffffff4" (unary_expression "-(uint)((*(uint *)&pOVar26->targ_->field_0x10 & 2) == 0)" - (call_expression "(uint)((*(uint *)&pOVar26->targ_->field_0x10 & 2) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((*(uint *)&pOVar26->targ_->field_0x10 & 2) == 0)" ( (binary_expression "(*(uint *)&pOVar26->targ_->field_0x10 & 2) == 0" (parenthesized_expression "(*(uint *)&pOVar26->targ_->field_0x10 & 2)" ( (binary_expression "*(uint *)&pOVar26->targ_->field_0x10 & 2" (pointer_expression "*(uint *)&pOVar26->targ_->field_0x10" * (cast_expression "(uint *)&pOVar26->targ_->field_0x10" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar26->targ_->field_0x10" & (field_expression "pOVar26->targ_->field_0x10" (field_expression "pOVar26->targ_" identifier -> field_identifier) -> field_identifier)))) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal) , number_literal ))))) ;) (expression_statement "__buf._M_original_len = (size_type)pOVar26;" (assignment_expression "__buf._M_original_len = (size_type)pOVar26" (field_expression "__buf._M_original_len" identifier . field_identifier) = (cast_expression "(size_type)pOVar26" ( (type_descriptor "size_type" type_identifier) ) identifier)) ;) (if_statement "if (iVar7._M_current ==\n          (pOVar6->entries_).\n          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ._M_impl._M_end_of_storage) {\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar7,(Dynamic_entry *)&__buf);\n      }\n      else {\n        ((iVar7._M_current)->u_).sym = (Symbol *)pOVar26;\n        (iVar7._M_current)->od2 = (Output_data *)__buf._M_len;\n        *(pointer *)&(iVar7._M_current)->tag_ = __buf._M_buffer;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar7._M_current + 1;\n      }" if (parenthesized_expression "(iVar7._M_current ==\n          (pOVar6->entries_).\n          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ._M_impl._M_end_of_storage)" ( (ERROR "iVar7._M_current ==\n          (pOVar6->entries_).\n          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::" (comma_expression "iVar7._M_current ==\n          (pOVar6->entries_).\n          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std" (binary_expression "iVar7._M_current ==\n          (pOVar6->entries_).\n          super__Vector_base<gold" (field_expression "iVar7._M_current" identifier . field_identifier) == (binary_expression "(pOVar6->entries_).\n          super__Vector_base<gold" (field_expression "(pOVar6->entries_).\n          super__Vector_base" (parenthesized_expression "(pOVar6->entries_)" ( (field_expression "pOVar6->entries_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data_dynamic::Dynamic_entry" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (field_expression "Dynamic_entry>_>\n          ._M_impl._M_end_of_storage" (field_expression "Dynamic_entry>_>\n          ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar7,(Dynamic_entry *)&__buf);\n      }" { (labeled_statement "std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar7,(Dynamic_entry *)&__buf);" statement_identifier (ERROR "::\n        vector<gold:" : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar7,(Dynamic_entry *)&__buf);" statement_identifier (ERROR "::Dynamic_entry,_std::allocator<gold:" : : (comma_expression "Dynamic_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar7,(Dynamic_entry *)&__buf);" statement_identifier (ERROR "::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold:" : : (binary_expression "Dynamic_entry>_" identifier > identifier) > : : (binary_expression "_M_realloc_insert<const_gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar7,(Dynamic_entry *)&__buf);" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry&>\n                  (&pOVar6->entries_,iVar7,(Dynamic_entry *)&__buf);" (binary_expression "Dynamic_entry&>\n                  (&pOVar6->entries_,iVar7,(Dynamic_entry *)&__buf)" identifier (ERROR "&" &) > (parenthesized_expression "(&pOVar6->entries_,iVar7,(Dynamic_entry *)&__buf)" ( (comma_expression "&pOVar6->entries_,iVar7,(Dynamic_entry *)&__buf" (pointer_expression "&pOVar6->entries_" & (field_expression "pOVar6->entries_" identifier -> field_identifier)) , (comma_expression "iVar7,(Dynamic_entry *)&__buf" identifier , (cast_expression "(Dynamic_entry *)&__buf" ( (type_descriptor "Dynamic_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&__buf" & identifier)))) ))) ;))))) }) (else_clause "else {\n        ((iVar7._M_current)->u_).sym = (Symbol *)pOVar26;\n        (iVar7._M_current)->od2 = (Output_data *)__buf._M_len;\n        *(pointer *)&(iVar7._M_current)->tag_ = __buf._M_buffer;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar7._M_current + 1;\n      }" else (compound_statement "{\n        ((iVar7._M_current)->u_).sym = (Symbol *)pOVar26;\n        (iVar7._M_current)->od2 = (Output_data *)__buf._M_len;\n        *(pointer *)&(iVar7._M_current)->tag_ = __buf._M_buffer;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar7._M_current + 1;\n      }" { (expression_statement "((iVar7._M_current)->u_).sym = (Symbol *)pOVar26;" (assignment_expression "((iVar7._M_current)->u_).sym = (Symbol *)pOVar26" (field_expression "((iVar7._M_current)->u_).sym" (parenthesized_expression "((iVar7._M_current)->u_)" ( (field_expression "(iVar7._M_current)->u_" (parenthesized_expression "(iVar7._M_current)" ( (field_expression "iVar7._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = (cast_expression "(Symbol *)pOVar26" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(iVar7._M_current)->od2 = (Output_data *)__buf._M_len;" (assignment_expression "(iVar7._M_current)->od2 = (Output_data *)__buf._M_len" (field_expression "(iVar7._M_current)->od2" (parenthesized_expression "(iVar7._M_current)" ( (field_expression "iVar7._M_current" identifier . field_identifier) )) -> field_identifier) = (cast_expression "(Output_data *)__buf._M_len" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "__buf._M_len" identifier . field_identifier))) ;) (expression_statement "*(pointer *)&(iVar7._M_current)->tag_ = __buf._M_buffer;" (assignment_expression "*(pointer *)&(iVar7._M_current)->tag_ = __buf._M_buffer" (pointer_expression "*(pointer *)&(iVar7._M_current)->tag_" * (cast_expression "(pointer *)&(iVar7._M_current)->tag_" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(iVar7._M_current)->tag_" & (field_expression "(iVar7._M_current)->tag_" (parenthesized_expression "(iVar7._M_current)" ( (field_expression "iVar7._M_current" identifier . field_identifier) )) -> field_identifier)))) = (field_expression "__buf._M_buffer" identifier . field_identifier)) ;) (ERROR "(pOVar6->entries_).\n        super__Vector_base<gold::" (binary_expression "(pOVar6->entries_).\n        super__Vector_base<gold" (field_expression "(pOVar6->entries_).\n        super__Vector_base" (parenthesized_expression "(pOVar6->entries_)" ( (field_expression "pOVar6->entries_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar7._M_current + 1;" statement_identifier (ERROR "::Dynamic_entry,_std::allocator<gold:" : : (comma_expression "Dynamic_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar7._M_current + 1;" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry>_>\n        ._M_impl._M_finish = iVar7._M_current + 1;" (assignment_expression "Dynamic_entry>_>\n        ._M_impl._M_finish = iVar7._M_current + 1" (field_expression "Dynamic_entry>_>\n        ._M_impl._M_finish" (field_expression "Dynamic_entry>_>\n        ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (binary_expression "iVar7._M_current + 1" (field_expression "iVar7._M_current" identifier . field_identifier) + number_literal)) ;))) }))) })) (if_statement "if (this->has_localentry0_ == false) {\n      uVar17 = 0;\n      if (this->has_tls_get_addr_opt_ == false) goto LAB_0021f9ad;\n    }\n    else {\n      uVar17 = 4;\n    }" if (parenthesized_expression "(this->has_localentry0_ == false)" ( (binary_expression "this->has_localentry0_ == false" (field_expression "this->has_localentry0_" identifier -> field_identifier) == false) )) (compound_statement "{\n      uVar17 = 0;\n      if (this->has_tls_get_addr_opt_ == false) goto LAB_0021f9ad;\n    }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (if_statement "if (this->has_tls_get_addr_opt_ == false) goto LAB_0021f9ad;" if (parenthesized_expression "(this->has_tls_get_addr_opt_ == false)" ( (binary_expression "this->has_tls_get_addr_opt_ == false" (field_expression "this->has_tls_get_addr_opt_" identifier -> field_identifier) == false) )) (goto_statement "goto LAB_0021f9ad;" goto statement_identifier ;)) }) (else_clause "else {\n      uVar17 = 4;\n    }" else (compound_statement "{\n      uVar17 = 4;\n    }" { (expression_statement "uVar17 = 4;" (assignment_expression "uVar17 = 4" identifier = number_literal) ;) }))) (expression_statement "__buf._M_buffer = (pointer)0xffffffff70000003;" (assignment_expression "__buf._M_buffer = (pointer)0xffffffff70000003" (field_expression "__buf._M_buffer" identifier . field_identifier) = (cast_expression "(pointer)0xffffffff70000003" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (ERROR "iVar7._M_current =\n         (pOVar6->entries_).\n         super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::" (comma_expression "iVar7._M_current =\n         (pOVar6->entries_).\n         super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std" (assignment_expression "iVar7._M_current =\n         (pOVar6->entries_).\n         super__Vector_base<gold" (field_expression "iVar7._M_current" identifier . field_identifier) = (binary_expression "(pOVar6->entries_).\n         super__Vector_base<gold" (field_expression "(pOVar6->entries_).\n         super__Vector_base" (parenthesized_expression "(pOVar6->entries_)" ( (field_expression "pOVar6->entries_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data_dynamic::Dynamic_entry" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n         ._M_impl._M_finish;" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry>_>\n         ._M_impl._M_finish;" (field_expression "Dynamic_entry>_>\n         ._M_impl._M_finish" (field_expression "Dynamic_entry>_>\n         ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;)) (expression_statement "__buf._M_original_len =\n         CONCAT44(__buf._M_original_len._4_4_,this->has_tls_get_addr_opt_ | uVar17);" (assignment_expression "__buf._M_original_len =\n         CONCAT44(__buf._M_original_len._4_4_,this->has_tls_get_addr_opt_ | uVar17)" (field_expression "__buf._M_original_len" identifier . field_identifier) = (call_expression "CONCAT44(__buf._M_original_len._4_4_,this->has_tls_get_addr_opt_ | uVar17)" identifier (argument_list "(__buf._M_original_len._4_4_,this->has_tls_get_addr_opt_ | uVar17)" ( (field_expression "__buf._M_original_len._4_4_" (field_expression "__buf._M_original_len" identifier . field_identifier) . field_identifier) , (binary_expression "this->has_tls_get_addr_opt_ | uVar17" (field_expression "this->has_tls_get_addr_opt_" identifier -> field_identifier) | identifier) )))) ;) (if_statement "if (iVar7._M_current ==\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_end_of_storage) {\n      std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar6->entries_,iVar7,(Dynamic_entry *)&__buf);\n    }\n    else {\n      (iVar7._M_current)->u_ = (anon_union_8_4_94c5dad9_for_u_)__buf._M_original_len;\n      (iVar7._M_current)->od2 = (Output_data *)__buf._M_len;\n      (iVar7._M_current)->tag_ = DT_MIPS_ICHECKSUM;\n      (iVar7._M_current)->offset_ = 0xffffffff;\n      (pOVar6->entries_).\n      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = iVar7._M_current + 1;\n    }" if (parenthesized_expression "(iVar7._M_current ==\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_end_of_storage)" ( (ERROR "iVar7._M_current ==\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::" (comma_expression "iVar7._M_current ==\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std" (binary_expression "iVar7._M_current ==\n        (pOVar6->entries_).\n        super__Vector_base<gold" (field_expression "iVar7._M_current" identifier . field_identifier) == (binary_expression "(pOVar6->entries_).\n        super__Vector_base<gold" (field_expression "(pOVar6->entries_).\n        super__Vector_base" (parenthesized_expression "(pOVar6->entries_)" ( (field_expression "pOVar6->entries_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data_dynamic::Dynamic_entry" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (field_expression "Dynamic_entry>_>\n        ._M_impl._M_end_of_storage" (field_expression "Dynamic_entry>_>\n        ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n      std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar6->entries_,iVar7,(Dynamic_entry *)&__buf);\n    }" { (labeled_statement "std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar6->entries_,iVar7,(Dynamic_entry *)&__buf);" statement_identifier (ERROR "::\n      vector<gold:" : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar6->entries_,iVar7,(Dynamic_entry *)&__buf);" statement_identifier (ERROR "::Dynamic_entry,_std::allocator<gold:" : : (comma_expression "Dynamic_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar6->entries_,iVar7,(Dynamic_entry *)&__buf);" statement_identifier (ERROR "::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold:" : : (binary_expression "Dynamic_entry>_" identifier > identifier) > : : (binary_expression "_M_realloc_insert<const_gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry&>\n                (&pOVar6->entries_,iVar7,(Dynamic_entry *)&__buf);" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry&>\n                (&pOVar6->entries_,iVar7,(Dynamic_entry *)&__buf);" (binary_expression "Dynamic_entry&>\n                (&pOVar6->entries_,iVar7,(Dynamic_entry *)&__buf)" identifier (ERROR "&" &) > (parenthesized_expression "(&pOVar6->entries_,iVar7,(Dynamic_entry *)&__buf)" ( (comma_expression "&pOVar6->entries_,iVar7,(Dynamic_entry *)&__buf" (pointer_expression "&pOVar6->entries_" & (field_expression "pOVar6->entries_" identifier -> field_identifier)) , (comma_expression "iVar7,(Dynamic_entry *)&__buf" identifier , (cast_expression "(Dynamic_entry *)&__buf" ( (type_descriptor "Dynamic_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&__buf" & identifier)))) ))) ;))))) }) (else_clause "else {\n      (iVar7._M_current)->u_ = (anon_union_8_4_94c5dad9_for_u_)__buf._M_original_len;\n      (iVar7._M_current)->od2 = (Output_data *)__buf._M_len;\n      (iVar7._M_current)->tag_ = DT_MIPS_ICHECKSUM;\n      (iVar7._M_current)->offset_ = 0xffffffff;\n      (pOVar6->entries_).\n      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = iVar7._M_current + 1;\n    }" else (compound_statement "{\n      (iVar7._M_current)->u_ = (anon_union_8_4_94c5dad9_for_u_)__buf._M_original_len;\n      (iVar7._M_current)->od2 = (Output_data *)__buf._M_len;\n      (iVar7._M_current)->tag_ = DT_MIPS_ICHECKSUM;\n      (iVar7._M_current)->offset_ = 0xffffffff;\n      (pOVar6->entries_).\n      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = iVar7._M_current + 1;\n    }" { (expression_statement "(iVar7._M_current)->u_ = (anon_union_8_4_94c5dad9_for_u_)__buf._M_original_len;" (assignment_expression "(iVar7._M_current)->u_ = (anon_union_8_4_94c5dad9_for_u_)__buf._M_original_len" (field_expression "(iVar7._M_current)->u_" (parenthesized_expression "(iVar7._M_current)" ( (field_expression "iVar7._M_current" identifier . field_identifier) )) -> field_identifier) = (cast_expression "(anon_union_8_4_94c5dad9_for_u_)__buf._M_original_len" ( (type_descriptor "anon_union_8_4_94c5dad9_for_u_" type_identifier) ) (field_expression "__buf._M_original_len" identifier . field_identifier))) ;) (expression_statement "(iVar7._M_current)->od2 = (Output_data *)__buf._M_len;" (assignment_expression "(iVar7._M_current)->od2 = (Output_data *)__buf._M_len" (field_expression "(iVar7._M_current)->od2" (parenthesized_expression "(iVar7._M_current)" ( (field_expression "iVar7._M_current" identifier . field_identifier) )) -> field_identifier) = (cast_expression "(Output_data *)__buf._M_len" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "__buf._M_len" identifier . field_identifier))) ;) (expression_statement "(iVar7._M_current)->tag_ = DT_MIPS_ICHECKSUM;" (assignment_expression "(iVar7._M_current)->tag_ = DT_MIPS_ICHECKSUM" (field_expression "(iVar7._M_current)->tag_" (parenthesized_expression "(iVar7._M_current)" ( (field_expression "iVar7._M_current" identifier . field_identifier) )) -> field_identifier) = identifier) ;) (expression_statement "(iVar7._M_current)->offset_ = 0xffffffff;" (assignment_expression "(iVar7._M_current)->offset_ = 0xffffffff" (field_expression "(iVar7._M_current)->offset_" (parenthesized_expression "(iVar7._M_current)" ( (field_expression "iVar7._M_current" identifier . field_identifier) )) -> field_identifier) = number_literal) ;) (ERROR "(pOVar6->entries_).\n      super__Vector_base<gold::" (binary_expression "(pOVar6->entries_).\n      super__Vector_base<gold" (field_expression "(pOVar6->entries_).\n      super__Vector_base" (parenthesized_expression "(pOVar6->entries_)" ( (field_expression "pOVar6->entries_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = iVar7._M_current + 1;" statement_identifier (ERROR "::Dynamic_entry,_std::allocator<gold:" : : (comma_expression "Dynamic_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = iVar7._M_current + 1;" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry>_>\n      ._M_impl._M_finish = iVar7._M_current + 1;" (assignment_expression "Dynamic_entry>_>\n      ._M_impl._M_finish = iVar7._M_current + 1" (field_expression "Dynamic_entry>_>\n      ._M_impl._M_finish" (field_expression "Dynamic_entry>_>\n      ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (binary_expression "iVar7._M_current + 1" (field_expression "iVar7._M_current" identifier . field_identifier) + number_literal)) ;))) }))) })) (labeled_statement "LAB_0021f9ad:\n  if ((this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n      super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n      ._M_impl._M_finish !=\n      (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n      super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n      ._M_impl._M_start) {\n    reloc_section = rela_dyn_section((Target_powerpc<64,_false> *)&this->rela_dyn_,layout);\n    if (gold::parameters->options_ == (General_options *)0x0) {\nLAB_00220104:\n                    /* WARNING: Subroutine does not return */\n      gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }\n    if (((gold::parameters->options_->toc_optimize_).value != false) &&\n       (pCVar20 = (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n                  super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n                  ._M_impl._M_start,\n       pCVar20 !=\n       (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n       super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n       ._M_impl._M_finish)) {\n      do {\n        if (((pCVar20->sym_->field_0x3a & 7) == 0) &&\n           (((ulong)((pCVar20->sym_->u1_).output_segment)->output_lists_[2].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_finish & 0x100000000) != 0)) {\n          pSVar8 = pCVar20->relobj_;\n          uVar17 = *(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.name_._M_dataplus._M_p + 4);\n          if (pCVar20->shndx_ == uVar17) {\n            pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.input_file_;\n            pIVar24 = (Input_file *)\n                      pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                      field_2._M_allocated_capacity;\n            uVar18 = pCVar20->address_;\n            uVar2 = (uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.offset_;\n            uVar25 = (ulong)uVar2;\n            uVar3 = *(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                     super_Object.name_.field_2 + 8);\n            uVar19 = (ulong)uVar3;\n            if ((pIVar13 == pIVar24) && (uVar2 == uVar3)) {\n              EVar14 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size\n                                 (&pSVar8->elf_file_,uVar17);\n              std::vector<bool,_std::allocator<bool>_>::resize\n                        ((vector<bool,_std::allocator<bool>_> *)\n                         &pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                          field_2,EVar14 >> 3,false);\n              uVar19 = (ulong)*(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                               super_Object.name_.field_2 + 8);\n              pIVar24 = (Input_file *)\n                        pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                        field_2._M_allocated_capacity;\n              uVar25 = (ulong)(uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.offset_;\n              pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.\n                        input_file_;\n            }\n            uVar16 = uVar18 >> 3;\n            if (uVar16 < (uVar25 + ((long)pIVar13 - (long)pIVar24) * 8) - uVar19) {\n              (&pIVar24->input_argument_)[uVar18 >> 9] =\n                   (Input_file_argument *)\n                   ((ulong)(&pIVar24->input_argument_)[uVar18 >> 9] | 1L << ((byte)uVar16 & 0x3f));\n            }\n          }\n        }\n        pCVar20 = pCVar20 + 1;\n      } while ((this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n               super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n               ._M_impl._M_finish != pCVar20);\n    }\n    gold::Copy_relocs<4,_64,_false>::emit\n              (&(this->copy_relocs_).super_Copy_relocs<4,_64,_false>,reloc_section);\n  }" statement_identifier : (if_statement "if ((this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n      super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n      ._M_impl._M_finish !=\n      (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n      super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n      ._M_impl._M_start) {\n    reloc_section = rela_dyn_section((Target_powerpc<64,_false> *)&this->rela_dyn_,layout);\n    if (gold::parameters->options_ == (General_options *)0x0) {\nLAB_00220104:\n                    /* WARNING: Subroutine does not return */\n      gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }\n    if (((gold::parameters->options_->toc_optimize_).value != false) &&\n       (pCVar20 = (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n                  super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n                  ._M_impl._M_start,\n       pCVar20 !=\n       (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n       super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n       ._M_impl._M_finish)) {\n      do {\n        if (((pCVar20->sym_->field_0x3a & 7) == 0) &&\n           (((ulong)((pCVar20->sym_->u1_).output_segment)->output_lists_[2].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_finish & 0x100000000) != 0)) {\n          pSVar8 = pCVar20->relobj_;\n          uVar17 = *(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.name_._M_dataplus._M_p + 4);\n          if (pCVar20->shndx_ == uVar17) {\n            pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.input_file_;\n            pIVar24 = (Input_file *)\n                      pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                      field_2._M_allocated_capacity;\n            uVar18 = pCVar20->address_;\n            uVar2 = (uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.offset_;\n            uVar25 = (ulong)uVar2;\n            uVar3 = *(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                     super_Object.name_.field_2 + 8);\n            uVar19 = (ulong)uVar3;\n            if ((pIVar13 == pIVar24) && (uVar2 == uVar3)) {\n              EVar14 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size\n                                 (&pSVar8->elf_file_,uVar17);\n              std::vector<bool,_std::allocator<bool>_>::resize\n                        ((vector<bool,_std::allocator<bool>_> *)\n                         &pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                          field_2,EVar14 >> 3,false);\n              uVar19 = (ulong)*(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                               super_Object.name_.field_2 + 8);\n              pIVar24 = (Input_file *)\n                        pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                        field_2._M_allocated_capacity;\n              uVar25 = (ulong)(uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.offset_;\n              pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.\n                        input_file_;\n            }\n            uVar16 = uVar18 >> 3;\n            if (uVar16 < (uVar25 + ((long)pIVar13 - (long)pIVar24) * 8) - uVar19) {\n              (&pIVar24->input_argument_)[uVar18 >> 9] =\n                   (Input_file_argument *)\n                   ((ulong)(&pIVar24->input_argument_)[uVar18 >> 9] | 1L << ((byte)uVar16 & 0x3f));\n            }\n          }\n        }\n        pCVar20 = pCVar20 + 1;\n      } while ((this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n               super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n               ._M_impl._M_finish != pCVar20);\n    }\n    gold::Copy_relocs<4,_64,_false>::emit\n              (&(this->copy_relocs_).super_Copy_relocs<4,_64,_false>,reloc_section);\n  }" if (parenthesized_expression "((this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n      super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n      ._M_impl._M_finish !=\n      (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n      super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n      ._M_impl._M_start)" ( (ERROR "(this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n      super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n      ._M_impl._M_finish !=\n      (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n      super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::" (comma_expression "(this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n      super__Vector_base<gold" (binary_expression "(this->copy_relocs_).super_Copy_relocs<4" (field_expression "(this->copy_relocs_).super_Copy_relocs" (parenthesized_expression "(this->copy_relocs_)" ( (field_expression "this->copy_relocs_" identifier -> field_identifier) )) . field_identifier) < number_literal) , (comma_expression "_64,_false>.entries_.\n      super__Vector_base<gold" identifier , (binary_expression "_false>.entries_.\n      super__Vector_base<gold" (field_expression "_false>.entries_.\n      super__Vector_base" (field_expression "_false>.entries_" identifier (ERROR ">" >) . field_identifier) . field_identifier) < identifier))) : : (comma_expression "Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std" (binary_expression "Copy_relocs<4" identifier < number_literal) , (comma_expression "_64,_false>::Copy_reloc_entry,_std" identifier , (comma_expression "_false>::Copy_reloc_entry,_std" (binary_expression "_false>::Copy_reloc_entry" identifier > (ERROR "::" : :) identifier) , identifier))) : : (binary_expression "allocator<gold" identifier < identifier) : : (comma_expression "Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n      ._M_impl._M_finish !=\n      (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n      super__Vector_base<gold" (binary_expression "Copy_relocs<4" identifier < number_literal) , (comma_expression "_64,_false>::Copy_reloc_entry>_>\n      ._M_impl._M_finish !=\n      (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n      super__Vector_base<gold" identifier , (comma_expression "_false>::Copy_reloc_entry>_>\n      ._M_impl._M_finish !=\n      (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n      super__Vector_base<gold" (binary_expression "_false>::Copy_reloc_entry>_>\n      ._M_impl._M_finish !=\n      (this->copy_relocs_).super_Copy_relocs<4" (field_expression "_false>::Copy_reloc_entry>_>\n      ._M_impl._M_finish" (field_expression "_false>::Copy_reloc_entry>_>\n      ._M_impl" (binary_expression "_false>::Copy_reloc_entry>_" (binary_expression "_false>::Copy_reloc_entry" identifier > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) != (binary_expression "(this->copy_relocs_).super_Copy_relocs<4" (field_expression "(this->copy_relocs_).super_Copy_relocs" (parenthesized_expression "(this->copy_relocs_)" ( (field_expression "this->copy_relocs_" identifier -> field_identifier) )) . field_identifier) < number_literal)) , (comma_expression "_64,_false>.entries_.\n      super__Vector_base<gold" identifier , (binary_expression "_false>.entries_.\n      super__Vector_base<gold" (field_expression "_false>.entries_.\n      super__Vector_base" (field_expression "_false>.entries_" identifier (ERROR ">" >) . field_identifier) . field_identifier) < identifier))))) : : (comma_expression "Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std" (binary_expression "Copy_relocs<4" identifier < number_literal) , (comma_expression "_64,_false>::Copy_reloc_entry,_std" identifier , (comma_expression "_false>::Copy_reloc_entry,_std" (binary_expression "_false>::Copy_reloc_entry" identifier > (ERROR "::" : :) identifier) , identifier))) : : (binary_expression "allocator<gold" identifier < identifier) : :) (comma_expression "Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n      ._M_impl._M_start" (binary_expression "Copy_relocs<4" identifier < number_literal) , (comma_expression "_64,_false>::Copy_reloc_entry>_>\n      ._M_impl._M_start" identifier , (field_expression "_false>::Copy_reloc_entry>_>\n      ._M_impl._M_start" (field_expression "_false>::Copy_reloc_entry>_>\n      ._M_impl" (binary_expression "_false>::Copy_reloc_entry>_" (binary_expression "_false>::Copy_reloc_entry" identifier > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier))) )) (compound_statement "{\n    reloc_section = rela_dyn_section((Target_powerpc<64,_false> *)&this->rela_dyn_,layout);\n    if (gold::parameters->options_ == (General_options *)0x0) {\nLAB_00220104:\n                    /* WARNING: Subroutine does not return */\n      gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }\n    if (((gold::parameters->options_->toc_optimize_).value != false) &&\n       (pCVar20 = (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n                  super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n                  ._M_impl._M_start,\n       pCVar20 !=\n       (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n       super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n       ._M_impl._M_finish)) {\n      do {\n        if (((pCVar20->sym_->field_0x3a & 7) == 0) &&\n           (((ulong)((pCVar20->sym_->u1_).output_segment)->output_lists_[2].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_finish & 0x100000000) != 0)) {\n          pSVar8 = pCVar20->relobj_;\n          uVar17 = *(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.name_._M_dataplus._M_p + 4);\n          if (pCVar20->shndx_ == uVar17) {\n            pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.input_file_;\n            pIVar24 = (Input_file *)\n                      pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                      field_2._M_allocated_capacity;\n            uVar18 = pCVar20->address_;\n            uVar2 = (uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.offset_;\n            uVar25 = (ulong)uVar2;\n            uVar3 = *(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                     super_Object.name_.field_2 + 8);\n            uVar19 = (ulong)uVar3;\n            if ((pIVar13 == pIVar24) && (uVar2 == uVar3)) {\n              EVar14 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size\n                                 (&pSVar8->elf_file_,uVar17);\n              std::vector<bool,_std::allocator<bool>_>::resize\n                        ((vector<bool,_std::allocator<bool>_> *)\n                         &pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                          field_2,EVar14 >> 3,false);\n              uVar19 = (ulong)*(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                               super_Object.name_.field_2 + 8);\n              pIVar24 = (Input_file *)\n                        pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                        field_2._M_allocated_capacity;\n              uVar25 = (ulong)(uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.offset_;\n              pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.\n                        input_file_;\n            }\n            uVar16 = uVar18 >> 3;\n            if (uVar16 < (uVar25 + ((long)pIVar13 - (long)pIVar24) * 8) - uVar19) {\n              (&pIVar24->input_argument_)[uVar18 >> 9] =\n                   (Input_file_argument *)\n                   ((ulong)(&pIVar24->input_argument_)[uVar18 >> 9] | 1L << ((byte)uVar16 & 0x3f));\n            }\n          }\n        }\n        pCVar20 = pCVar20 + 1;\n      } while ((this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n               super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n               ._M_impl._M_finish != pCVar20);\n    }\n    gold::Copy_relocs<4,_64,_false>::emit\n              (&(this->copy_relocs_).super_Copy_relocs<4,_64,_false>,reloc_section);\n  }" { (expression_statement "reloc_section = rela_dyn_section((Target_powerpc<64,_false> *)&this->rela_dyn_,layout);" (assignment_expression "reloc_section = rela_dyn_section((Target_powerpc<64,_false> *)&this->rela_dyn_,layout)" identifier = (call_expression "rela_dyn_section((Target_powerpc<64,_false> *)&this->rela_dyn_,layout)" identifier (argument_list "((Target_powerpc<64,_false> *)&this->rela_dyn_,layout)" ( (binary_expression "(Target_powerpc<64,_false> *)&this->rela_dyn_" (parenthesized_expression "(Target_powerpc<64,_false> *)" ( (comma_expression "Target_powerpc<64,_false> *" (binary_expression "Target_powerpc<64" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) & (field_expression "this->rela_dyn_" identifier -> field_identifier)) , identifier )))) ;) (if_statement "if (gold::parameters->options_ == (General_options *)0x0) {\nLAB_00220104:\n                    /* WARNING: Subroutine does not return */\n      gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }" if (parenthesized_expression "(gold::parameters->options_ == (General_options *)0x0)" ( (ERROR "gold::" identifier : :) (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00220104:\n                    /* WARNING: Subroutine does not return */\n      gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }" { (labeled_statement "LAB_00220104:\n                    /* WARNING: Subroutine does not return */\n      gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" statement_identifier : comment (labeled_statement "gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;))) })) (if_statement "if (((gold::parameters->options_->toc_optimize_).value != false) &&\n       (pCVar20 = (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n                  super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n                  ._M_impl._M_start,\n       pCVar20 !=\n       (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n       super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n       ._M_impl._M_finish)) {\n      do {\n        if (((pCVar20->sym_->field_0x3a & 7) == 0) &&\n           (((ulong)((pCVar20->sym_->u1_).output_segment)->output_lists_[2].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_finish & 0x100000000) != 0)) {\n          pSVar8 = pCVar20->relobj_;\n          uVar17 = *(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.name_._M_dataplus._M_p + 4);\n          if (pCVar20->shndx_ == uVar17) {\n            pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.input_file_;\n            pIVar24 = (Input_file *)\n                      pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                      field_2._M_allocated_capacity;\n            uVar18 = pCVar20->address_;\n            uVar2 = (uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.offset_;\n            uVar25 = (ulong)uVar2;\n            uVar3 = *(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                     super_Object.name_.field_2 + 8);\n            uVar19 = (ulong)uVar3;\n            if ((pIVar13 == pIVar24) && (uVar2 == uVar3)) {\n              EVar14 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size\n                                 (&pSVar8->elf_file_,uVar17);\n              std::vector<bool,_std::allocator<bool>_>::resize\n                        ((vector<bool,_std::allocator<bool>_> *)\n                         &pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                          field_2,EVar14 >> 3,false);\n              uVar19 = (ulong)*(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                               super_Object.name_.field_2 + 8);\n              pIVar24 = (Input_file *)\n                        pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                        field_2._M_allocated_capacity;\n              uVar25 = (ulong)(uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.offset_;\n              pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.\n                        input_file_;\n            }\n            uVar16 = uVar18 >> 3;\n            if (uVar16 < (uVar25 + ((long)pIVar13 - (long)pIVar24) * 8) - uVar19) {\n              (&pIVar24->input_argument_)[uVar18 >> 9] =\n                   (Input_file_argument *)\n                   ((ulong)(&pIVar24->input_argument_)[uVar18 >> 9] | 1L << ((byte)uVar16 & 0x3f));\n            }\n          }\n        }\n        pCVar20 = pCVar20 + 1;\n      } while ((this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n               super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n               ._M_impl._M_finish != pCVar20);\n    }" if (parenthesized_expression "(((gold::parameters->options_->toc_optimize_).value != false) &&\n       (pCVar20 = (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n                  super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n                  ._M_impl._M_start,\n       pCVar20 !=\n       (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n       super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n       ._M_impl._M_finish))" ( (binary_expression "((gold::parameters->options_->toc_optimize_).value != false) &&\n       (pCVar20 = (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n                  super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n                  ._M_impl._M_start,\n       pCVar20 !=\n       (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n       super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n       ._M_impl._M_finish)" (parenthesized_expression "((gold::parameters->options_->toc_optimize_).value != false)" ( (binary_expression "(gold::parameters->options_->toc_optimize_).value != false" (field_expression "(gold::parameters->options_->toc_optimize_).value" (parenthesized_expression "(gold::parameters->options_->toc_optimize_)" ( (ERROR "gold::" identifier : :) (field_expression "parameters->options_->toc_optimize_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) != false) )) && (parenthesized_expression "(pCVar20 = (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n                  super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n                  ._M_impl._M_start,\n       pCVar20 !=\n       (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n       super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n       ._M_impl._M_finish)" ( (ERROR "pCVar20 = (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n                  super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n                  ._M_impl._M_start,\n       pCVar20 !=\n       (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n       super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::" (comma_expression "pCVar20 = (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n                  super__Vector_base<gold" (assignment_expression "pCVar20 = (this->copy_relocs_).super_Copy_relocs<4" identifier = (binary_expression "(this->copy_relocs_).super_Copy_relocs<4" (field_expression "(this->copy_relocs_).super_Copy_relocs" (parenthesized_expression "(this->copy_relocs_)" ( (field_expression "this->copy_relocs_" identifier -> field_identifier) )) . field_identifier) < number_literal)) , (comma_expression "_64,_false>.entries_.\n                  super__Vector_base<gold" identifier , (binary_expression "_false>.entries_.\n                  super__Vector_base<gold" (field_expression "_false>.entries_.\n                  super__Vector_base" (field_expression "_false>.entries_" identifier (ERROR ">" >) . field_identifier) . field_identifier) < identifier))) : : (comma_expression "Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std" (binary_expression "Copy_relocs<4" identifier < number_literal) , (comma_expression "_64,_false>::Copy_reloc_entry,_std" identifier , (comma_expression "_false>::Copy_reloc_entry,_std" (binary_expression "_false>::Copy_reloc_entry" identifier > (ERROR "::" : :) identifier) , identifier))) : : (binary_expression "allocator<gold" identifier < identifier) : : (comma_expression "Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n                  ._M_impl._M_start,\n       pCVar20 !=\n       (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n       super__Vector_base<gold" (binary_expression "Copy_relocs<4" identifier < number_literal) , (comma_expression "_64,_false>::Copy_reloc_entry>_>\n                  ._M_impl._M_start,\n       pCVar20 !=\n       (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n       super__Vector_base<gold" identifier , (comma_expression "_false>::Copy_reloc_entry>_>\n                  ._M_impl._M_start,\n       pCVar20 !=\n       (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n       super__Vector_base<gold" (field_expression "_false>::Copy_reloc_entry>_>\n                  ._M_impl._M_start" (field_expression "_false>::Copy_reloc_entry>_>\n                  ._M_impl" (binary_expression "_false>::Copy_reloc_entry>_" (binary_expression "_false>::Copy_reloc_entry" identifier > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) , (comma_expression "pCVar20 !=\n       (this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n       super__Vector_base<gold" (binary_expression "pCVar20 !=\n       (this->copy_relocs_).super_Copy_relocs<4" identifier != (binary_expression "(this->copy_relocs_).super_Copy_relocs<4" (field_expression "(this->copy_relocs_).super_Copy_relocs" (parenthesized_expression "(this->copy_relocs_)" ( (field_expression "this->copy_relocs_" identifier -> field_identifier) )) . field_identifier) < number_literal)) , (comma_expression "_64,_false>.entries_.\n       super__Vector_base<gold" identifier , (binary_expression "_false>.entries_.\n       super__Vector_base<gold" (field_expression "_false>.entries_.\n       super__Vector_base" (field_expression "_false>.entries_" identifier (ERROR ">" >) . field_identifier) . field_identifier) < identifier)))))) : : (comma_expression "Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std" (binary_expression "Copy_relocs<4" identifier < number_literal) , (comma_expression "_64,_false>::Copy_reloc_entry,_std" identifier , (comma_expression "_false>::Copy_reloc_entry,_std" (binary_expression "_false>::Copy_reloc_entry" identifier > (ERROR "::" : :) identifier) , identifier))) : : (binary_expression "allocator<gold" identifier < identifier) : :) (comma_expression "Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n       ._M_impl._M_finish" (binary_expression "Copy_relocs<4" identifier < number_literal) , (comma_expression "_64,_false>::Copy_reloc_entry>_>\n       ._M_impl._M_finish" identifier , (field_expression "_false>::Copy_reloc_entry>_>\n       ._M_impl._M_finish" (field_expression "_false>::Copy_reloc_entry>_>\n       ._M_impl" (binary_expression "_false>::Copy_reloc_entry>_" (binary_expression "_false>::Copy_reloc_entry" identifier > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier))) ))) )) (compound_statement "{\n      do {\n        if (((pCVar20->sym_->field_0x3a & 7) == 0) &&\n           (((ulong)((pCVar20->sym_->u1_).output_segment)->output_lists_[2].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_finish & 0x100000000) != 0)) {\n          pSVar8 = pCVar20->relobj_;\n          uVar17 = *(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.name_._M_dataplus._M_p + 4);\n          if (pCVar20->shndx_ == uVar17) {\n            pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.input_file_;\n            pIVar24 = (Input_file *)\n                      pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                      field_2._M_allocated_capacity;\n            uVar18 = pCVar20->address_;\n            uVar2 = (uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.offset_;\n            uVar25 = (ulong)uVar2;\n            uVar3 = *(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                     super_Object.name_.field_2 + 8);\n            uVar19 = (ulong)uVar3;\n            if ((pIVar13 == pIVar24) && (uVar2 == uVar3)) {\n              EVar14 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size\n                                 (&pSVar8->elf_file_,uVar17);\n              std::vector<bool,_std::allocator<bool>_>::resize\n                        ((vector<bool,_std::allocator<bool>_> *)\n                         &pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                          field_2,EVar14 >> 3,false);\n              uVar19 = (ulong)*(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                               super_Object.name_.field_2 + 8);\n              pIVar24 = (Input_file *)\n                        pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                        field_2._M_allocated_capacity;\n              uVar25 = (ulong)(uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.offset_;\n              pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.\n                        input_file_;\n            }\n            uVar16 = uVar18 >> 3;\n            if (uVar16 < (uVar25 + ((long)pIVar13 - (long)pIVar24) * 8) - uVar19) {\n              (&pIVar24->input_argument_)[uVar18 >> 9] =\n                   (Input_file_argument *)\n                   ((ulong)(&pIVar24->input_argument_)[uVar18 >> 9] | 1L << ((byte)uVar16 & 0x3f));\n            }\n          }\n        }\n        pCVar20 = pCVar20 + 1;\n      } while ((this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n               super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n               ._M_impl._M_finish != pCVar20);\n    }" { (do_statement "do {\n        if (((pCVar20->sym_->field_0x3a & 7) == 0) &&\n           (((ulong)((pCVar20->sym_->u1_).output_segment)->output_lists_[2].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_finish & 0x100000000) != 0)) {\n          pSVar8 = pCVar20->relobj_;\n          uVar17 = *(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.name_._M_dataplus._M_p + 4);\n          if (pCVar20->shndx_ == uVar17) {\n            pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.input_file_;\n            pIVar24 = (Input_file *)\n                      pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                      field_2._M_allocated_capacity;\n            uVar18 = pCVar20->address_;\n            uVar2 = (uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.offset_;\n            uVar25 = (ulong)uVar2;\n            uVar3 = *(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                     super_Object.name_.field_2 + 8);\n            uVar19 = (ulong)uVar3;\n            if ((pIVar13 == pIVar24) && (uVar2 == uVar3)) {\n              EVar14 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size\n                                 (&pSVar8->elf_file_,uVar17);\n              std::vector<bool,_std::allocator<bool>_>::resize\n                        ((vector<bool,_std::allocator<bool>_> *)\n                         &pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                          field_2,EVar14 >> 3,false);\n              uVar19 = (ulong)*(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                               super_Object.name_.field_2 + 8);\n              pIVar24 = (Input_file *)\n                        pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                        field_2._M_allocated_capacity;\n              uVar25 = (ulong)(uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.offset_;\n              pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.\n                        input_file_;\n            }\n            uVar16 = uVar18 >> 3;\n            if (uVar16 < (uVar25 + ((long)pIVar13 - (long)pIVar24) * 8) - uVar19) {\n              (&pIVar24->input_argument_)[uVar18 >> 9] =\n                   (Input_file_argument *)\n                   ((ulong)(&pIVar24->input_argument_)[uVar18 >> 9] | 1L << ((byte)uVar16 & 0x3f));\n            }\n          }\n        }\n        pCVar20 = pCVar20 + 1;\n      } while ((this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n               super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n               ._M_impl._M_finish != pCVar20);" do (compound_statement "{\n        if (((pCVar20->sym_->field_0x3a & 7) == 0) &&\n           (((ulong)((pCVar20->sym_->u1_).output_segment)->output_lists_[2].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_finish & 0x100000000) != 0)) {\n          pSVar8 = pCVar20->relobj_;\n          uVar17 = *(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.name_._M_dataplus._M_p + 4);\n          if (pCVar20->shndx_ == uVar17) {\n            pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.input_file_;\n            pIVar24 = (Input_file *)\n                      pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                      field_2._M_allocated_capacity;\n            uVar18 = pCVar20->address_;\n            uVar2 = (uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.offset_;\n            uVar25 = (ulong)uVar2;\n            uVar3 = *(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                     super_Object.name_.field_2 + 8);\n            uVar19 = (ulong)uVar3;\n            if ((pIVar13 == pIVar24) && (uVar2 == uVar3)) {\n              EVar14 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size\n                                 (&pSVar8->elf_file_,uVar17);\n              std::vector<bool,_std::allocator<bool>_>::resize\n                        ((vector<bool,_std::allocator<bool>_> *)\n                         &pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                          field_2,EVar14 >> 3,false);\n              uVar19 = (ulong)*(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                               super_Object.name_.field_2 + 8);\n              pIVar24 = (Input_file *)\n                        pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                        field_2._M_allocated_capacity;\n              uVar25 = (ulong)(uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.offset_;\n              pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.\n                        input_file_;\n            }\n            uVar16 = uVar18 >> 3;\n            if (uVar16 < (uVar25 + ((long)pIVar13 - (long)pIVar24) * 8) - uVar19) {\n              (&pIVar24->input_argument_)[uVar18 >> 9] =\n                   (Input_file_argument *)\n                   ((ulong)(&pIVar24->input_argument_)[uVar18 >> 9] | 1L << ((byte)uVar16 & 0x3f));\n            }\n          }\n        }\n        pCVar20 = pCVar20 + 1;\n      }" { (if_statement "if (((pCVar20->sym_->field_0x3a & 7) == 0) &&\n           (((ulong)((pCVar20->sym_->u1_).output_segment)->output_lists_[2].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_finish & 0x100000000) != 0)) {\n          pSVar8 = pCVar20->relobj_;\n          uVar17 = *(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.name_._M_dataplus._M_p + 4);\n          if (pCVar20->shndx_ == uVar17) {\n            pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.input_file_;\n            pIVar24 = (Input_file *)\n                      pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                      field_2._M_allocated_capacity;\n            uVar18 = pCVar20->address_;\n            uVar2 = (uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.offset_;\n            uVar25 = (ulong)uVar2;\n            uVar3 = *(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                     super_Object.name_.field_2 + 8);\n            uVar19 = (ulong)uVar3;\n            if ((pIVar13 == pIVar24) && (uVar2 == uVar3)) {\n              EVar14 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size\n                                 (&pSVar8->elf_file_,uVar17);\n              std::vector<bool,_std::allocator<bool>_>::resize\n                        ((vector<bool,_std::allocator<bool>_> *)\n                         &pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                          field_2,EVar14 >> 3,false);\n              uVar19 = (ulong)*(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                               super_Object.name_.field_2 + 8);\n              pIVar24 = (Input_file *)\n                        pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                        field_2._M_allocated_capacity;\n              uVar25 = (ulong)(uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.offset_;\n              pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.\n                        input_file_;\n            }\n            uVar16 = uVar18 >> 3;\n            if (uVar16 < (uVar25 + ((long)pIVar13 - (long)pIVar24) * 8) - uVar19) {\n              (&pIVar24->input_argument_)[uVar18 >> 9] =\n                   (Input_file_argument *)\n                   ((ulong)(&pIVar24->input_argument_)[uVar18 >> 9] | 1L << ((byte)uVar16 & 0x3f));\n            }\n          }\n        }" if (parenthesized_expression "(((pCVar20->sym_->field_0x3a & 7) == 0) &&\n           (((ulong)((pCVar20->sym_->u1_).output_segment)->output_lists_[2].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_finish & 0x100000000) != 0))" ( (binary_expression "((pCVar20->sym_->field_0x3a & 7) == 0) &&\n           (((ulong)((pCVar20->sym_->u1_).output_segment)->output_lists_[2].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_finish & 0x100000000) != 0)" (parenthesized_expression "((pCVar20->sym_->field_0x3a & 7) == 0)" ( (binary_expression "(pCVar20->sym_->field_0x3a & 7) == 0" (parenthesized_expression "(pCVar20->sym_->field_0x3a & 7)" ( (binary_expression "pCVar20->sym_->field_0x3a & 7" (field_expression "pCVar20->sym_->field_0x3a" (field_expression "pCVar20->sym_" identifier -> field_identifier) -> field_identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "(((ulong)((pCVar20->sym_->u1_).output_segment)->output_lists_[2].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_finish & 0x100000000) != 0)" ( (binary_expression "((ulong)((pCVar20->sym_->u1_).output_segment)->output_lists_[2].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_finish & 0x100000000) != 0" (parenthesized_expression "((ulong)((pCVar20->sym_->u1_).output_segment)->output_lists_[2].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_finish & 0x100000000)" ( (binary_expression "(ulong)((pCVar20->sym_->u1_).output_segment)->output_lists_[2].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_finish & 0x100000000" (field_expression "(ulong)((pCVar20->sym_->u1_).output_segment)->output_lists_[2].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_finish" (field_expression "(ulong)((pCVar20->sym_->u1_).output_segment)->output_lists_[2].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl" (binary_expression "(ulong)((pCVar20->sym_->u1_).output_segment)->output_lists_[2].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(ulong)((pCVar20->sym_->u1_).output_segment)->output_lists_[2].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(ulong)((pCVar20->sym_->u1_).output_segment)->output_lists_[2].\n                    super__Vector_base<gold::Output_data*,_std" (binary_expression "(ulong)((pCVar20->sym_->u1_).output_segment)->output_lists_[2].\n                    super__Vector_base<gold" (field_expression "(ulong)((pCVar20->sym_->u1_).output_segment)->output_lists_[2].\n                    super__Vector_base" (subscript_expression "(ulong)((pCVar20->sym_->u1_).output_segment)->output_lists_[2]" (field_expression "(ulong)((pCVar20->sym_->u1_).output_segment)->output_lists_" (call_expression "(ulong)((pCVar20->sym_->u1_).output_segment)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((pCVar20->sym_->u1_).output_segment)" ( (field_expression "(pCVar20->sym_->u1_).output_segment" (parenthesized_expression "(pCVar20->sym_->u1_)" ( (field_expression "pCVar20->sym_->u1_" (field_expression "pCVar20->sym_" 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) ))) )) (compound_statement "{\n          pSVar8 = pCVar20->relobj_;\n          uVar17 = *(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.name_._M_dataplus._M_p + 4);\n          if (pCVar20->shndx_ == uVar17) {\n            pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.input_file_;\n            pIVar24 = (Input_file *)\n                      pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                      field_2._M_allocated_capacity;\n            uVar18 = pCVar20->address_;\n            uVar2 = (uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.offset_;\n            uVar25 = (ulong)uVar2;\n            uVar3 = *(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                     super_Object.name_.field_2 + 8);\n            uVar19 = (ulong)uVar3;\n            if ((pIVar13 == pIVar24) && (uVar2 == uVar3)) {\n              EVar14 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size\n                                 (&pSVar8->elf_file_,uVar17);\n              std::vector<bool,_std::allocator<bool>_>::resize\n                        ((vector<bool,_std::allocator<bool>_> *)\n                         &pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                          field_2,EVar14 >> 3,false);\n              uVar19 = (ulong)*(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                               super_Object.name_.field_2 + 8);\n              pIVar24 = (Input_file *)\n                        pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                        field_2._M_allocated_capacity;\n              uVar25 = (ulong)(uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.offset_;\n              pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.\n                        input_file_;\n            }\n            uVar16 = uVar18 >> 3;\n            if (uVar16 < (uVar25 + ((long)pIVar13 - (long)pIVar24) * 8) - uVar19) {\n              (&pIVar24->input_argument_)[uVar18 >> 9] =\n                   (Input_file_argument *)\n                   ((ulong)(&pIVar24->input_argument_)[uVar18 >> 9] | 1L << ((byte)uVar16 & 0x3f));\n            }\n          }\n        }" { (expression_statement "pSVar8 = pCVar20->relobj_;" (assignment_expression "pSVar8 = pCVar20->relobj_" identifier = (field_expression "pCVar20->relobj_" identifier -> field_identifier)) ;) (expression_statement "uVar17 = *(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.name_._M_dataplus._M_p + 4);" (assignment_expression "uVar17 = *(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.name_._M_dataplus._M_p + 4)" identifier = (pointer_expression "*(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.name_._M_dataplus._M_p + 4)" * (cast_expression "(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.name_._M_dataplus._M_p + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.name_._M_dataplus._M_p + 4)" ( (comma_expression "(long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.name_._M_dataplus._M_p + 4" (binary_expression "(long)&pSVar8[1].super_Sized_relobj<64" (cast_expression "(long)&pSVar8[1].super_Sized_relobj" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pSVar8[1].super_Sized_relobj" & (field_expression "pSVar8[1].super_Sized_relobj" (subscript_expression "pSVar8[1]" identifier [ number_literal ]) . field_identifier))) < number_literal) , (binary_expression "_false>.super_Relobj.\n                                    super_Object.name_._M_dataplus._M_p + 4" (field_expression "_false>.super_Relobj.\n                                    super_Object.name_._M_dataplus._M_p" (field_expression "_false>.super_Relobj.\n                                    super_Object.name_._M_dataplus" (field_expression "_false>.super_Relobj.\n                                    super_Object.name_" (field_expression "_false>.super_Relobj.\n                                    super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) + number_literal)) ))))) ;) (if_statement "if (pCVar20->shndx_ == uVar17) {\n            pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.input_file_;\n            pIVar24 = (Input_file *)\n                      pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                      field_2._M_allocated_capacity;\n            uVar18 = pCVar20->address_;\n            uVar2 = (uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.offset_;\n            uVar25 = (ulong)uVar2;\n            uVar3 = *(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                     super_Object.name_.field_2 + 8);\n            uVar19 = (ulong)uVar3;\n            if ((pIVar13 == pIVar24) && (uVar2 == uVar3)) {\n              EVar14 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size\n                                 (&pSVar8->elf_file_,uVar17);\n              std::vector<bool,_std::allocator<bool>_>::resize\n                        ((vector<bool,_std::allocator<bool>_> *)\n                         &pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                          field_2,EVar14 >> 3,false);\n              uVar19 = (ulong)*(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                               super_Object.name_.field_2 + 8);\n              pIVar24 = (Input_file *)\n                        pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                        field_2._M_allocated_capacity;\n              uVar25 = (ulong)(uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.offset_;\n              pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.\n                        input_file_;\n            }\n            uVar16 = uVar18 >> 3;\n            if (uVar16 < (uVar25 + ((long)pIVar13 - (long)pIVar24) * 8) - uVar19) {\n              (&pIVar24->input_argument_)[uVar18 >> 9] =\n                   (Input_file_argument *)\n                   ((ulong)(&pIVar24->input_argument_)[uVar18 >> 9] | 1L << ((byte)uVar16 & 0x3f));\n            }\n          }" if (parenthesized_expression "(pCVar20->shndx_ == uVar17)" ( (binary_expression "pCVar20->shndx_ == uVar17" (field_expression "pCVar20->shndx_" identifier -> field_identifier) == identifier) )) (compound_statement "{\n            pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.input_file_;\n            pIVar24 = (Input_file *)\n                      pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                      field_2._M_allocated_capacity;\n            uVar18 = pCVar20->address_;\n            uVar2 = (uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.offset_;\n            uVar25 = (ulong)uVar2;\n            uVar3 = *(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                     super_Object.name_.field_2 + 8);\n            uVar19 = (ulong)uVar3;\n            if ((pIVar13 == pIVar24) && (uVar2 == uVar3)) {\n              EVar14 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size\n                                 (&pSVar8->elf_file_,uVar17);\n              std::vector<bool,_std::allocator<bool>_>::resize\n                        ((vector<bool,_std::allocator<bool>_> *)\n                         &pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                          field_2,EVar14 >> 3,false);\n              uVar19 = (ulong)*(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                               super_Object.name_.field_2 + 8);\n              pIVar24 = (Input_file *)\n                        pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                        field_2._M_allocated_capacity;\n              uVar25 = (ulong)(uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.offset_;\n              pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.\n                        input_file_;\n            }\n            uVar16 = uVar18 >> 3;\n            if (uVar16 < (uVar25 + ((long)pIVar13 - (long)pIVar24) * 8) - uVar19) {\n              (&pIVar24->input_argument_)[uVar18 >> 9] =\n                   (Input_file_argument *)\n                   ((ulong)(&pIVar24->input_argument_)[uVar18 >> 9] | 1L << ((byte)uVar16 & 0x3f));\n            }\n          }" { (expression_statement "pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.input_file_;" (comma_expression "pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.input_file_" (assignment_expression "pIVar13 = pSVar8[1].super_Sized_relobj<64" identifier = (binary_expression "pSVar8[1].super_Sized_relobj<64" (field_expression "pSVar8[1].super_Sized_relobj" (subscript_expression "pSVar8[1]" identifier [ number_literal ]) . field_identifier) < number_literal)) , (field_expression "_false>.super_Relobj.super_Object.input_file_" (field_expression "_false>.super_Relobj.super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "pIVar24 = (Input_file *)\n                      pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                      field_2._M_allocated_capacity;" (comma_expression "pIVar24 = (Input_file *)\n                      pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                      field_2._M_allocated_capacity" (assignment_expression "pIVar24 = (Input_file *)\n                      pSVar8[1].super_Sized_relobj<64" identifier = (binary_expression "(Input_file *)\n                      pSVar8[1].super_Sized_relobj<64" (cast_expression "(Input_file *)\n                      pSVar8[1].super_Sized_relobj" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pSVar8[1].super_Sized_relobj" (subscript_expression "pSVar8[1]" identifier [ number_literal ]) . field_identifier)) < number_literal)) , (field_expression "_false>.super_Relobj.super_Object.name_.\n                      field_2._M_allocated_capacity" (field_expression "_false>.super_Relobj.super_Object.name_.\n                      field_2" (field_expression "_false>.super_Relobj.super_Object.name_" (field_expression "_false>.super_Relobj.super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "uVar18 = pCVar20->address_;" (assignment_expression "uVar18 = pCVar20->address_" identifier = (field_expression "pCVar20->address_" identifier -> field_identifier)) ;) (expression_statement "uVar2 = (uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.offset_;" (comma_expression "uVar2 = (uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.offset_" (assignment_expression "uVar2 = (uint)pSVar8[1].super_Sized_relobj<64" identifier = (binary_expression "(uint)pSVar8[1].super_Sized_relobj<64" (cast_expression "(uint)pSVar8[1].super_Sized_relobj" ( (type_descriptor "uint" type_identifier) ) (field_expression "pSVar8[1].super_Sized_relobj" (subscript_expression "pSVar8[1]" identifier [ number_literal ]) . field_identifier)) < number_literal)) , (field_expression "_false>.super_Relobj.super_Object.offset_" (field_expression "_false>.super_Relobj.super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "uVar25 = (ulong)uVar2;" (assignment_expression "uVar25 = (ulong)uVar2" identifier = (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar3 = *(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                     super_Object.name_.field_2 + 8);" (assignment_expression "uVar3 = *(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                     super_Object.name_.field_2 + 8)" identifier = (pointer_expression "*(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                     super_Object.name_.field_2 + 8)" * (cast_expression "(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                     super_Object.name_.field_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                     super_Object.name_.field_2 + 8)" ( (comma_expression "(long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                     super_Object.name_.field_2 + 8" (binary_expression "(long)&pSVar8[1].super_Sized_relobj<64" (cast_expression "(long)&pSVar8[1].super_Sized_relobj" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pSVar8[1].super_Sized_relobj" & (field_expression "pSVar8[1].super_Sized_relobj" (subscript_expression "pSVar8[1]" identifier [ number_literal ]) . field_identifier))) < number_literal) , (binary_expression "_false>.super_Relobj.\n                                     super_Object.name_.field_2 + 8" (field_expression "_false>.super_Relobj.\n                                     super_Object.name_.field_2" (field_expression "_false>.super_Relobj.\n                                     super_Object.name_" (field_expression "_false>.super_Relobj.\n                                     super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) + number_literal)) ))))) ;) (expression_statement "uVar19 = (ulong)uVar3;" (assignment_expression "uVar19 = (ulong)uVar3" identifier = (cast_expression "(ulong)uVar3" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if ((pIVar13 == pIVar24) && (uVar2 == uVar3)) {\n              EVar14 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size\n                                 (&pSVar8->elf_file_,uVar17);\n              std::vector<bool,_std::allocator<bool>_>::resize\n                        ((vector<bool,_std::allocator<bool>_> *)\n                         &pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                          field_2,EVar14 >> 3,false);\n              uVar19 = (ulong)*(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                               super_Object.name_.field_2 + 8);\n              pIVar24 = (Input_file *)\n                        pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                        field_2._M_allocated_capacity;\n              uVar25 = (ulong)(uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.offset_;\n              pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.\n                        input_file_;\n            }" if (parenthesized_expression "((pIVar13 == pIVar24) && (uVar2 == uVar3))" ( (binary_expression "(pIVar13 == pIVar24) && (uVar2 == uVar3)" (parenthesized_expression "(pIVar13 == pIVar24)" ( (binary_expression "pIVar13 == pIVar24" identifier == identifier) )) && (parenthesized_expression "(uVar2 == uVar3)" ( (binary_expression "uVar2 == uVar3" identifier == identifier) ))) )) (compound_statement "{\n              EVar14 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size\n                                 (&pSVar8->elf_file_,uVar17);\n              std::vector<bool,_std::allocator<bool>_>::resize\n                        ((vector<bool,_std::allocator<bool>_> *)\n                         &pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                          field_2,EVar14 >> 3,false);\n              uVar19 = (ulong)*(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                               super_Object.name_.field_2 + 8);\n              pIVar24 = (Input_file *)\n                        pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                        field_2._M_allocated_capacity;\n              uVar25 = (ulong)(uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.offset_;\n              pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.\n                        input_file_;\n            }" { (ERROR "EVar14 = elfcpp::Elf_file<64,_false,_gold::" (comma_expression "EVar14 = elfcpp::Elf_file<64,_false,_gold" (binary_expression "EVar14 = elfcpp::Elf_file<64" (assignment_expression "EVar14 = elfcpp" identifier = identifier) (ERROR "::Elf_file" : : identifier) < number_literal) , (comma_expression "_false,_gold" identifier , identifier)) : :) (expression_statement "Object>::section_size\n                                 (&pSVar8->elf_file_,uVar17);" (binary_expression "Object>::section_size\n                                 (&pSVar8->elf_file_,uVar17)" identifier > (ERROR "::" : :) (call_expression "section_size\n                                 (&pSVar8->elf_file_,uVar17)" identifier (argument_list "(&pSVar8->elf_file_,uVar17)" ( (pointer_expression "&pSVar8->elf_file_" & (field_expression "pSVar8->elf_file_" identifier -> field_identifier)) , identifier )))) ;) (labeled_statement "std::vector<bool,_std::allocator<bool>_>::resize\n                        ((vector<bool,_std::allocator<bool>_> *)\n                         &pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                          field_2,EVar14 >> 3,false);" statement_identifier (ERROR "::vector<bool,_std::allocator<bool>_>::resize\n                        ((vector<bool,_std:" : : (comma_expression "vector<bool,_std" (binary_expression "vector<bool" identifier < identifier) , identifier) : : (binary_expression "allocator<bool>_" (binary_expression "allocator<bool" identifier < identifier) > identifier) > : : identifier ( ( (comma_expression "vector<bool,_std" (binary_expression "vector<bool" identifier < identifier) , identifier) :) : (expression_statement "allocator<bool>_> *)\n                         &pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                          field_2,EVar14 >> 3,false);" (comma_expression "allocator<bool>_> *)\n                         &pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                          field_2,EVar14 >> 3,false" (binary_expression "allocator<bool>_> *)\n                         &pSVar8[1].super_Sized_relobj<64" (binary_expression "allocator<bool>_> *)\n                         &pSVar8[1].super_Sized_relobj" (binary_expression "allocator<bool>_" (binary_expression "allocator<bool" identifier < identifier) > identifier) > (pointer_expression "*)\n                         &pSVar8[1].super_Sized_relobj" * (ERROR ")" )) (pointer_expression "&pSVar8[1].super_Sized_relobj" & (field_expression "pSVar8[1].super_Sized_relobj" (subscript_expression "pSVar8[1]" identifier [ number_literal ]) . field_identifier)))) < number_literal) , (comma_expression "_false>.super_Relobj.super_Object.name_.\n                          field_2,EVar14 >> 3,false" (field_expression "_false>.super_Relobj.super_Object.name_.\n                          field_2" (field_expression "_false>.super_Relobj.super_Object.name_" (field_expression "_false>.super_Relobj.super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) , (comma_expression "EVar14 >> 3,false" (binary_expression "EVar14 >> 3" identifier >> number_literal) , false))) (ERROR ")" )) ;)) (expression_statement "uVar19 = (ulong)*(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                               super_Object.name_.field_2 + 8);" (assignment_expression "uVar19 = (ulong)*(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                               super_Object.name_.field_2 + 8)" identifier = (binary_expression "(ulong)*(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                               super_Object.name_.field_2 + 8)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                               super_Object.name_.field_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                               super_Object.name_.field_2 + 8)" ( (comma_expression "(long)&pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                               super_Object.name_.field_2 + 8" (binary_expression "(long)&pSVar8[1].super_Sized_relobj<64" (cast_expression "(long)&pSVar8[1].super_Sized_relobj" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pSVar8[1].super_Sized_relobj" & (field_expression "pSVar8[1].super_Sized_relobj" (subscript_expression "pSVar8[1]" identifier [ number_literal ]) . field_identifier))) < number_literal) , (binary_expression "_false>.super_Relobj.\n                                               super_Object.name_.field_2 + 8" (field_expression "_false>.super_Relobj.\n                                               super_Object.name_.field_2" (field_expression "_false>.super_Relobj.\n                                               super_Object.name_" (field_expression "_false>.super_Relobj.\n                                               super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) + number_literal)) ))))) ;) (expression_statement "pIVar24 = (Input_file *)\n                        pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                        field_2._M_allocated_capacity;" (comma_expression "pIVar24 = (Input_file *)\n                        pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.name_.\n                        field_2._M_allocated_capacity" (assignment_expression "pIVar24 = (Input_file *)\n                        pSVar8[1].super_Sized_relobj<64" identifier = (binary_expression "(Input_file *)\n                        pSVar8[1].super_Sized_relobj<64" (cast_expression "(Input_file *)\n                        pSVar8[1].super_Sized_relobj" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pSVar8[1].super_Sized_relobj" (subscript_expression "pSVar8[1]" identifier [ number_literal ]) . field_identifier)) < number_literal)) , (field_expression "_false>.super_Relobj.super_Object.name_.\n                        field_2._M_allocated_capacity" (field_expression "_false>.super_Relobj.super_Object.name_.\n                        field_2" (field_expression "_false>.super_Relobj.super_Object.name_" (field_expression "_false>.super_Relobj.super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "uVar25 = (ulong)(uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.offset_;" (comma_expression "uVar25 = (ulong)(uint)pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.\n                                    super_Object.offset_" (assignment_expression "uVar25 = (ulong)(uint)pSVar8[1].super_Sized_relobj<64" identifier = (binary_expression "(ulong)(uint)pSVar8[1].super_Sized_relobj<64" (cast_expression "(ulong)(uint)pSVar8[1].super_Sized_relobj" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)pSVar8[1].super_Sized_relobj" ( (type_descriptor "uint" type_identifier) ) (field_expression "pSVar8[1].super_Sized_relobj" (subscript_expression "pSVar8[1]" identifier [ number_literal ]) . field_identifier))) < number_literal)) , (field_expression "_false>.super_Relobj.\n                                    super_Object.offset_" (field_expression "_false>.super_Relobj.\n                                    super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.\n                        input_file_;" (comma_expression "pIVar13 = pSVar8[1].super_Sized_relobj<64,_false>.super_Relobj.super_Object.\n                        input_file_" (assignment_expression "pIVar13 = pSVar8[1].super_Sized_relobj<64" identifier = (binary_expression "pSVar8[1].super_Sized_relobj<64" (field_expression "pSVar8[1].super_Sized_relobj" (subscript_expression "pSVar8[1]" identifier [ number_literal ]) . field_identifier) < number_literal)) , (field_expression "_false>.super_Relobj.super_Object.\n                        input_file_" (field_expression "_false>.super_Relobj.super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier)) ;) })) (expression_statement "uVar16 = uVar18 >> 3;" (assignment_expression "uVar16 = uVar18 >> 3" identifier = (binary_expression "uVar18 >> 3" identifier >> number_literal)) ;) (if_statement "if (uVar16 < (uVar25 + ((long)pIVar13 - (long)pIVar24) * 8) - uVar19) {\n              (&pIVar24->input_argument_)[uVar18 >> 9] =\n                   (Input_file_argument *)\n                   ((ulong)(&pIVar24->input_argument_)[uVar18 >> 9] | 1L << ((byte)uVar16 & 0x3f));\n            }" if (parenthesized_expression "(uVar16 < (uVar25 + ((long)pIVar13 - (long)pIVar24) * 8) - uVar19)" ( (binary_expression "uVar16 < (uVar25 + ((long)pIVar13 - (long)pIVar24) * 8) - uVar19" identifier < (binary_expression "(uVar25 + ((long)pIVar13 - (long)pIVar24) * 8) - uVar19" (parenthesized_expression "(uVar25 + ((long)pIVar13 - (long)pIVar24) * 8)" ( (binary_expression "uVar25 + ((long)pIVar13 - (long)pIVar24) * 8" identifier + (binary_expression "((long)pIVar13 - (long)pIVar24) * 8" (parenthesized_expression "((long)pIVar13 - (long)pIVar24)" ( (binary_expression "(long)pIVar13 - (long)pIVar24" (cast_expression "(long)pIVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pIVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) * number_literal)) )) - identifier)) )) (compound_statement "{\n              (&pIVar24->input_argument_)[uVar18 >> 9] =\n                   (Input_file_argument *)\n                   ((ulong)(&pIVar24->input_argument_)[uVar18 >> 9] | 1L << ((byte)uVar16 & 0x3f));\n            }" { (expression_statement "(&pIVar24->input_argument_)[uVar18 >> 9] =\n                   (Input_file_argument *)\n                   ((ulong)(&pIVar24->input_argument_)[uVar18 >> 9] | 1L << ((byte)uVar16 & 0x3f));" (assignment_expression "(&pIVar24->input_argument_)[uVar18 >> 9] =\n                   (Input_file_argument *)\n                   ((ulong)(&pIVar24->input_argument_)[uVar18 >> 9] | 1L << ((byte)uVar16 & 0x3f))" (subscript_expression "(&pIVar24->input_argument_)[uVar18 >> 9]" (parenthesized_expression "(&pIVar24->input_argument_)" ( (pointer_expression "&pIVar24->input_argument_" & (field_expression "pIVar24->input_argument_" identifier -> field_identifier)) )) [ (binary_expression "uVar18 >> 9" identifier >> number_literal) ]) = (cast_expression "(Input_file_argument *)\n                   ((ulong)(&pIVar24->input_argument_)[uVar18 >> 9] | 1L << ((byte)uVar16 & 0x3f))" ( (type_descriptor "Input_file_argument *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)(&pIVar24->input_argument_)[uVar18 >> 9] | 1L << ((byte)uVar16 & 0x3f))" ( (binary_expression "(ulong)(&pIVar24->input_argument_)[uVar18 >> 9] | 1L << ((byte)uVar16 & 0x3f)" (subscript_expression "(ulong)(&pIVar24->input_argument_)[uVar18 >> 9]" (call_expression "(ulong)(&pIVar24->input_argument_)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(&pIVar24->input_argument_)" ( (pointer_expression "&pIVar24->input_argument_" & (field_expression "pIVar24->input_argument_" identifier -> field_identifier)) ))) [ (binary_expression "uVar18 >> 9" identifier >> number_literal) ]) | (binary_expression "1L << ((byte)uVar16 & 0x3f)" number_literal << (parenthesized_expression "((byte)uVar16 & 0x3f)" ( (binary_expression "(byte)uVar16 & 0x3f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) )))) ;) })) })) })) (expression_statement "pCVar20 = pCVar20 + 1;" (assignment_expression "pCVar20 = pCVar20 + 1" identifier = (binary_expression "pCVar20 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n               super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n               ._M_impl._M_finish != pCVar20)" ( (ERROR "(this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n               super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::" (comma_expression "(this->copy_relocs_).super_Copy_relocs<4,_64,_false>.entries_.\n               super__Vector_base<gold" (binary_expression "(this->copy_relocs_).super_Copy_relocs<4" (field_expression "(this->copy_relocs_).super_Copy_relocs" (parenthesized_expression "(this->copy_relocs_)" ( (field_expression "this->copy_relocs_" identifier -> field_identifier) )) . field_identifier) < number_literal) , (comma_expression "_64,_false>.entries_.\n               super__Vector_base<gold" identifier , (binary_expression "_false>.entries_.\n               super__Vector_base<gold" (field_expression "_false>.entries_.\n               super__Vector_base" (field_expression "_false>.entries_" identifier (ERROR ">" >) . field_identifier) . field_identifier) < identifier))) : : (comma_expression "Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std" (binary_expression "Copy_relocs<4" identifier < number_literal) , (comma_expression "_64,_false>::Copy_reloc_entry,_std" identifier , (comma_expression "_false>::Copy_reloc_entry,_std" (binary_expression "_false>::Copy_reloc_entry" identifier > (ERROR "::" : :) identifier) , identifier))) : : (binary_expression "allocator<gold" identifier < identifier) : :) (comma_expression "Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n               ._M_impl._M_finish != pCVar20" (binary_expression "Copy_relocs<4" identifier < number_literal) , (comma_expression "_64,_false>::Copy_reloc_entry>_>\n               ._M_impl._M_finish != pCVar20" identifier , (binary_expression "_false>::Copy_reloc_entry>_>\n               ._M_impl._M_finish != pCVar20" (field_expression "_false>::Copy_reloc_entry>_>\n               ._M_impl._M_finish" (field_expression "_false>::Copy_reloc_entry>_>\n               ._M_impl" (binary_expression "_false>::Copy_reloc_entry>_" (binary_expression "_false>::Copy_reloc_entry" identifier > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) != identifier))) )) ;) })) (labeled_statement "gold::Copy_relocs<4,_64,_false>::emit\n              (&(this->copy_relocs_).super_Copy_relocs<4,_64,_false>,reloc_section);" statement_identifier : (ERROR ":" :) (expression_statement "Copy_relocs<4,_64,_false>::emit\n              (&(this->copy_relocs_).super_Copy_relocs<4,_64,_false>,reloc_section);" (comma_expression "Copy_relocs<4,_64,_false>::emit\n              (&(this->copy_relocs_).super_Copy_relocs<4,_64,_false>,reloc_section)" (binary_expression "Copy_relocs<4" identifier < number_literal) , (comma_expression "_64,_false>::emit\n              (&(this->copy_relocs_).super_Copy_relocs<4,_64,_false>,reloc_section)" identifier , (binary_expression "_false>::emit\n              (&(this->copy_relocs_).super_Copy_relocs<4,_64,_false>,reloc_section)" identifier > (ERROR "::" : :) (call_expression "emit\n              (&(this->copy_relocs_).super_Copy_relocs<4,_64,_false>,reloc_section)" identifier (argument_list "(&(this->copy_relocs_).super_Copy_relocs<4,_64,_false>,reloc_section)" ( (binary_expression "&(this->copy_relocs_).super_Copy_relocs<4" (pointer_expression "&(this->copy_relocs_).super_Copy_relocs" & (field_expression "(this->copy_relocs_).super_Copy_relocs" (parenthesized_expression "(this->copy_relocs_)" ( (field_expression "this->copy_relocs_" identifier -> field_identifier) )) . field_identifier)) < number_literal) , identifier , identifier (ERROR ">" >) , identifier )))))) ;)) }))) (expression_statement "ppRVar21 = (input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_start;" (field_expression "ppRVar21 = (input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_start" (field_expression "ppRVar21 = (input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl" (binary_expression "ppRVar21 = (input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_" (binary_expression "ppRVar21 = (input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold" (binary_expression "ppRVar21 = (input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std" (assignment_expression "ppRVar21 = (input_objects->relobj_list_).\n             super__Vector_base<gold" identifier = (binary_expression "(input_objects->relobj_list_).\n             super__Vector_base<gold" (field_expression "(input_objects->relobj_list_).\n             super__Vector_base" (parenthesized_expression "(input_objects->relobj_list_)" ( (field_expression "input_objects->relobj_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (ppRVar21 !=\n      (input_objects->relobj_list_).\n      super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish) {\n    do {\n      pasd = (*ppRVar21)[4].map_to_relocatable_relocs_;\n      if (pasd != (vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *)\n                  0x0) {\n        merge_object_attributes\n                  (this,((*ppRVar21)->super_Object).name_._M_dataplus._M_p,\n                   (Attributes_section_data *)pasd);\n      }\n      ppRVar21 = ppRVar21 + 1;\n    } while ((input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish !=\n             ppRVar21);\n  }" if (parenthesized_expression "(ppRVar21 !=\n      (input_objects->relobj_list_).\n      super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish)" ( (field_expression "ppRVar21 !=\n      (input_objects->relobj_list_).\n      super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish" (field_expression "ppRVar21 !=\n      (input_objects->relobj_list_).\n      super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl" (binary_expression "ppRVar21 !=\n      (input_objects->relobj_list_).\n      super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_" (binary_expression "ppRVar21 !=\n      (input_objects->relobj_list_).\n      super__Vector_base<gold::Relobj*,_std::allocator<gold" (binary_expression "ppRVar21 !=\n      (input_objects->relobj_list_).\n      super__Vector_base<gold::Relobj*,_std" (binary_expression "ppRVar21 !=\n      (input_objects->relobj_list_).\n      super__Vector_base<gold" identifier != (binary_expression "(input_objects->relobj_list_).\n      super__Vector_base<gold" (field_expression "(input_objects->relobj_list_).\n      super__Vector_base" (parenthesized_expression "(input_objects->relobj_list_)" ( (field_expression "input_objects->relobj_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n    do {\n      pasd = (*ppRVar21)[4].map_to_relocatable_relocs_;\n      if (pasd != (vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *)\n                  0x0) {\n        merge_object_attributes\n                  (this,((*ppRVar21)->super_Object).name_._M_dataplus._M_p,\n                   (Attributes_section_data *)pasd);\n      }\n      ppRVar21 = ppRVar21 + 1;\n    } while ((input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish !=\n             ppRVar21);\n  }" { (do_statement "do {\n      pasd = (*ppRVar21)[4].map_to_relocatable_relocs_;\n      if (pasd != (vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *)\n                  0x0) {\n        merge_object_attributes\n                  (this,((*ppRVar21)->super_Object).name_._M_dataplus._M_p,\n                   (Attributes_section_data *)pasd);\n      }\n      ppRVar21 = ppRVar21 + 1;\n    } while ((input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish !=\n             ppRVar21);" do (compound_statement "{\n      pasd = (*ppRVar21)[4].map_to_relocatable_relocs_;\n      if (pasd != (vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *)\n                  0x0) {\n        merge_object_attributes\n                  (this,((*ppRVar21)->super_Object).name_._M_dataplus._M_p,\n                   (Attributes_section_data *)pasd);\n      }\n      ppRVar21 = ppRVar21 + 1;\n    }" { (expression_statement "pasd = (*ppRVar21)[4].map_to_relocatable_relocs_;" (assignment_expression "pasd = (*ppRVar21)[4].map_to_relocatable_relocs_" identifier = (field_expression "(*ppRVar21)[4].map_to_relocatable_relocs_" (subscript_expression "(*ppRVar21)[4]" (parenthesized_expression "(*ppRVar21)" ( (pointer_expression "*ppRVar21" * identifier) )) [ number_literal ]) . field_identifier)) ;) (if_statement "if (pasd != (vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *)\n                  0x0) {\n        merge_object_attributes\n                  (this,((*ppRVar21)->super_Object).name_._M_dataplus._M_p,\n                   (Attributes_section_data *)pasd);\n      }" if (parenthesized_expression "(pasd != (vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *)\n                  0x0)" ( (binary_expression "pasd != (vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *)\n                  0x0)" identifier != (parenthesized_expression "(vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *)\n                  0x0)" ( (ERROR "vector<gold::Relocatable_relocs*,_std::allocator<gold::" (binary_expression "vector<gold" identifier < identifier) : : (type_descriptor "Relocatable_relocs*" type_identifier (abstract_pointer_declarator "*" *)) , identifier : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Relocatable_relocs*>_> *)\n                  0x0" (binary_expression "Relocatable_relocs*>_" identifier * (ERROR ">" >) identifier) > (pointer_expression "*)\n                  0x0" * (ERROR ")" )) number_literal)) ))) )) (compound_statement "{\n        merge_object_attributes\n                  (this,((*ppRVar21)->super_Object).name_._M_dataplus._M_p,\n                   (Attributes_section_data *)pasd);\n      }" { (expression_statement "merge_object_attributes\n                  (this,((*ppRVar21)->super_Object).name_._M_dataplus._M_p,\n                   (Attributes_section_data *)pasd);" (call_expression "merge_object_attributes\n                  (this,((*ppRVar21)->super_Object).name_._M_dataplus._M_p,\n                   (Attributes_section_data *)pasd)" identifier (argument_list "(this,((*ppRVar21)->super_Object).name_._M_dataplus._M_p,\n                   (Attributes_section_data *)pasd)" ( identifier , (field_expression "((*ppRVar21)->super_Object).name_._M_dataplus._M_p" (field_expression "((*ppRVar21)->super_Object).name_._M_dataplus" (field_expression "((*ppRVar21)->super_Object).name_" (parenthesized_expression "((*ppRVar21)->super_Object)" ( (field_expression "(*ppRVar21)->super_Object" (parenthesized_expression "(*ppRVar21)" ( (pointer_expression "*ppRVar21" * identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) , (cast_expression "(Attributes_section_data *)pasd" ( (type_descriptor "Attributes_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) })) (expression_statement "ppRVar21 = ppRVar21 + 1;" (assignment_expression "ppRVar21 = ppRVar21 + 1" identifier = (binary_expression "ppRVar21 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish !=\n             ppRVar21)" ( (binary_expression "(input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish !=\n             ppRVar21" (field_expression "(input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish" (field_expression "(input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl" (binary_expression "(input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_" (binary_expression "(input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold" (binary_expression "(input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std" (binary_expression "(input_objects->relobj_list_).\n             super__Vector_base<gold" (field_expression "(input_objects->relobj_list_).\n             super__Vector_base" (parenthesized_expression "(input_objects->relobj_list_)" ( (field_expression "input_objects->relobj_list_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) != identifier) )) ;) })) (expression_statement "ppDVar22 = (input_objects->dynobj_list_).\n             super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>._M_impl._M_start;" (field_expression "ppDVar22 = (input_objects->dynobj_list_).\n             super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>._M_impl._M_start" (field_expression "ppDVar22 = (input_objects->dynobj_list_).\n             super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>._M_impl" (binary_expression "ppDVar22 = (input_objects->dynobj_list_).\n             super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_" (binary_expression "ppDVar22 = (input_objects->dynobj_list_).\n             super__Vector_base<gold::Dynobj*,_std::allocator<gold" (binary_expression "ppDVar22 = (input_objects->dynobj_list_).\n             super__Vector_base<gold::Dynobj*,_std" (assignment_expression "ppDVar22 = (input_objects->dynobj_list_).\n             super__Vector_base<gold" identifier = (binary_expression "(input_objects->dynobj_list_).\n             super__Vector_base<gold" (field_expression "(input_objects->dynobj_list_).\n             super__Vector_base" (parenthesized_expression "(input_objects->dynobj_list_)" ( (field_expression "input_objects->dynobj_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Dynobj" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Dynobj" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (ppDVar22 !=\n      (input_objects->dynobj_list_).\n      super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>._M_impl._M_finish) {\n    do {\n      pAVar9 = *(Attributes_section_data **)((long)&(*ppDVar22)[1].soname_.field_2 + 8);\n      if (pAVar9 != (Attributes_section_data *)0x0) {\n        merge_object_attributes(this,((*ppDVar22)->super_Object).name_._M_dataplus._M_p,pAVar9);\n      }\n      ppDVar22 = ppDVar22 + 1;\n    } while ((input_objects->dynobj_list_).\n             super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>._M_impl._M_finish !=\n             ppDVar22);\n  }" if (parenthesized_expression "(ppDVar22 !=\n      (input_objects->dynobj_list_).\n      super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>._M_impl._M_finish)" ( (field_expression "ppDVar22 !=\n      (input_objects->dynobj_list_).\n      super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>._M_impl._M_finish" (field_expression "ppDVar22 !=\n      (input_objects->dynobj_list_).\n      super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>._M_impl" (binary_expression "ppDVar22 !=\n      (input_objects->dynobj_list_).\n      super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_" (binary_expression "ppDVar22 !=\n      (input_objects->dynobj_list_).\n      super__Vector_base<gold::Dynobj*,_std::allocator<gold" (binary_expression "ppDVar22 !=\n      (input_objects->dynobj_list_).\n      super__Vector_base<gold::Dynobj*,_std" (binary_expression "ppDVar22 !=\n      (input_objects->dynobj_list_).\n      super__Vector_base<gold" identifier != (binary_expression "(input_objects->dynobj_list_).\n      super__Vector_base<gold" (field_expression "(input_objects->dynobj_list_).\n      super__Vector_base" (parenthesized_expression "(input_objects->dynobj_list_)" ( (field_expression "input_objects->dynobj_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Dynobj" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Dynobj" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n    do {\n      pAVar9 = *(Attributes_section_data **)((long)&(*ppDVar22)[1].soname_.field_2 + 8);\n      if (pAVar9 != (Attributes_section_data *)0x0) {\n        merge_object_attributes(this,((*ppDVar22)->super_Object).name_._M_dataplus._M_p,pAVar9);\n      }\n      ppDVar22 = ppDVar22 + 1;\n    } while ((input_objects->dynobj_list_).\n             super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>._M_impl._M_finish !=\n             ppDVar22);\n  }" { (do_statement "do {\n      pAVar9 = *(Attributes_section_data **)((long)&(*ppDVar22)[1].soname_.field_2 + 8);\n      if (pAVar9 != (Attributes_section_data *)0x0) {\n        merge_object_attributes(this,((*ppDVar22)->super_Object).name_._M_dataplus._M_p,pAVar9);\n      }\n      ppDVar22 = ppDVar22 + 1;\n    } while ((input_objects->dynobj_list_).\n             super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>._M_impl._M_finish !=\n             ppDVar22);" do (compound_statement "{\n      pAVar9 = *(Attributes_section_data **)((long)&(*ppDVar22)[1].soname_.field_2 + 8);\n      if (pAVar9 != (Attributes_section_data *)0x0) {\n        merge_object_attributes(this,((*ppDVar22)->super_Object).name_._M_dataplus._M_p,pAVar9);\n      }\n      ppDVar22 = ppDVar22 + 1;\n    }" { (expression_statement "pAVar9 = *(Attributes_section_data **)((long)&(*ppDVar22)[1].soname_.field_2 + 8);" (assignment_expression "pAVar9 = *(Attributes_section_data **)((long)&(*ppDVar22)[1].soname_.field_2 + 8)" identifier = (pointer_expression "*(Attributes_section_data **)((long)&(*ppDVar22)[1].soname_.field_2 + 8)" * (cast_expression "(Attributes_section_data **)((long)&(*ppDVar22)[1].soname_.field_2 + 8)" ( (type_descriptor "Attributes_section_data **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)&(*ppDVar22)[1].soname_.field_2 + 8)" ( (binary_expression "(long)&(*ppDVar22)[1].soname_.field_2 + 8" (cast_expression "(long)&(*ppDVar22)[1].soname_.field_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&(*ppDVar22)[1].soname_.field_2" & (field_expression "(*ppDVar22)[1].soname_.field_2" (field_expression "(*ppDVar22)[1].soname_" (subscript_expression "(*ppDVar22)[1]" (parenthesized_expression "(*ppDVar22)" ( (pointer_expression "*ppDVar22" * identifier) )) [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (if_statement "if (pAVar9 != (Attributes_section_data *)0x0) {\n        merge_object_attributes(this,((*ppDVar22)->super_Object).name_._M_dataplus._M_p,pAVar9);\n      }" if (parenthesized_expression "(pAVar9 != (Attributes_section_data *)0x0)" ( (binary_expression "pAVar9 != (Attributes_section_data *)0x0" identifier != (cast_expression "(Attributes_section_data *)0x0" ( (type_descriptor "Attributes_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        merge_object_attributes(this,((*ppDVar22)->super_Object).name_._M_dataplus._M_p,pAVar9);\n      }" { (expression_statement "merge_object_attributes(this,((*ppDVar22)->super_Object).name_._M_dataplus._M_p,pAVar9);" (call_expression "merge_object_attributes(this,((*ppDVar22)->super_Object).name_._M_dataplus._M_p,pAVar9)" identifier (argument_list "(this,((*ppDVar22)->super_Object).name_._M_dataplus._M_p,pAVar9)" ( identifier , (field_expression "((*ppDVar22)->super_Object).name_._M_dataplus._M_p" (field_expression "((*ppDVar22)->super_Object).name_._M_dataplus" (field_expression "((*ppDVar22)->super_Object).name_" (parenthesized_expression "((*ppDVar22)->super_Object)" ( (field_expression "(*ppDVar22)->super_Object" (parenthesized_expression "(*ppDVar22)" ( (pointer_expression "*ppDVar22" * identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) , identifier ))) ;) })) (expression_statement "ppDVar22 = ppDVar22 + 1;" (assignment_expression "ppDVar22 = ppDVar22 + 1" identifier = (binary_expression "ppDVar22 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((input_objects->dynobj_list_).\n             super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>._M_impl._M_finish !=\n             ppDVar22)" ( (binary_expression "(input_objects->dynobj_list_).\n             super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>._M_impl._M_finish !=\n             ppDVar22" (field_expression "(input_objects->dynobj_list_).\n             super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>._M_impl._M_finish" (field_expression "(input_objects->dynobj_list_).\n             super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>._M_impl" (binary_expression "(input_objects->dynobj_list_).\n             super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_" (binary_expression "(input_objects->dynobj_list_).\n             super__Vector_base<gold::Dynobj*,_std::allocator<gold" (binary_expression "(input_objects->dynobj_list_).\n             super__Vector_base<gold::Dynobj*,_std" (binary_expression "(input_objects->dynobj_list_).\n             super__Vector_base<gold" (field_expression "(input_objects->dynobj_list_).\n             super__Vector_base" (parenthesized_expression "(input_objects->dynobj_list_)" ( (field_expression "input_objects->dynobj_list_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Dynobj" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Dynobj" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) != identifier) )) ;) })) (if_statement "if ((this->attributes_section_data_ != (Attributes_section_data *)0x0) &&\n     (sVar12 = gold::Attributes_section_data::size(this->attributes_section_data_), sVar12 != 0)) {\n    posd = (Output_section_data *)operator_new(0x40);\n    puVar1 = &(posd->super_Output_data).field_0x20;\n    *puVar1 = *puVar1 & 0xe0;\n    pAVar9 = this->attributes_section_data_;\n    (posd->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_attributes_section_data_00670da0;\n    (posd->super_Output_data).address_ = 0;\n    (posd->super_Output_data).data_size_ = 0;\n    (posd->super_Output_data).offset_ = -1;\n    posd->output_section_ = (Output_section *)0x0;\n    posd->addralign_ = 1;\n    posd[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)pAVar9;\n    gold::Layout::add_output_section_data\n              (layout,".gnu.attributes",0x6ffffff5,0,posd,ORDER_INVALID,false);\n    return;\n  }" if (parenthesized_expression "((this->attributes_section_data_ != (Attributes_section_data *)0x0) &&\n     (sVar12 = gold::Attributes_section_data::size(this->attributes_section_data_), sVar12 != 0))" ( (binary_expression "(this->attributes_section_data_ != (Attributes_section_data *)0x0) &&\n     (sVar12 = gold::Attributes_section_data::size(this->attributes_section_data_), sVar12 != 0)" (parenthesized_expression "(this->attributes_section_data_ != (Attributes_section_data *)0x0)" ( (binary_expression "this->attributes_section_data_ != (Attributes_section_data *)0x0" (field_expression "this->attributes_section_data_" identifier -> field_identifier) != (cast_expression "(Attributes_section_data *)0x0" ( (type_descriptor "Attributes_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(sVar12 = gold::Attributes_section_data::size(this->attributes_section_data_), sVar12 != 0)" ( (ERROR "sVar12 = gold::Attributes_section_data::" (assignment_expression "sVar12 = gold" identifier = identifier) : : identifier : :) (comma_expression "size(this->attributes_section_data_), sVar12 != 0" (call_expression "size(this->attributes_section_data_)" identifier (argument_list "(this->attributes_section_data_)" ( (field_expression "this->attributes_section_data_" identifier -> field_identifier) ))) , (binary_expression "sVar12 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    posd = (Output_section_data *)operator_new(0x40);\n    puVar1 = &(posd->super_Output_data).field_0x20;\n    *puVar1 = *puVar1 & 0xe0;\n    pAVar9 = this->attributes_section_data_;\n    (posd->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_attributes_section_data_00670da0;\n    (posd->super_Output_data).address_ = 0;\n    (posd->super_Output_data).data_size_ = 0;\n    (posd->super_Output_data).offset_ = -1;\n    posd->output_section_ = (Output_section *)0x0;\n    posd->addralign_ = 1;\n    posd[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)pAVar9;\n    gold::Layout::add_output_section_data\n              (layout,".gnu.attributes",0x6ffffff5,0,posd,ORDER_INVALID,false);\n    return;\n  }" { (expression_statement "posd = (Output_section_data *)operator_new(0x40);" (assignment_expression "posd = (Output_section_data *)operator_new(0x40)" identifier = (cast_expression "(Output_section_data *)operator_new(0x40)" ( (type_descriptor "Output_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x40)" identifier (argument_list "(0x40)" ( number_literal ))))) ;) (expression_statement "puVar1 = &(posd->super_Output_data).field_0x20;" (assignment_expression "puVar1 = &(posd->super_Output_data).field_0x20" identifier = (pointer_expression "&(posd->super_Output_data).field_0x20" & (field_expression "(posd->super_Output_data).field_0x20" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*puVar1 = *puVar1 & 0xe0;" (assignment_expression "*puVar1 = *puVar1 & 0xe0" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 & 0xe0" (pointer_expression "*puVar1" * identifier) & number_literal)) ;) (expression_statement "pAVar9 = this->attributes_section_data_;" (assignment_expression "pAVar9 = this->attributes_section_data_" identifier = (field_expression "this->attributes_section_data_" identifier -> field_identifier)) ;) (expression_statement "(posd->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_attributes_section_data_00670da0;" (assignment_expression "(posd->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_attributes_section_data_00670da0" (field_expression "(posd->super_Output_data)._vptr_Output_data" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Output_attributes_section_data_00670da0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Output_attributes_section_data_00670da0" & identifier))) ;) (expression_statement "(posd->super_Output_data).address_ = 0;" (assignment_expression "(posd->super_Output_data).address_ = 0" (field_expression "(posd->super_Output_data).address_" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(posd->super_Output_data).data_size_ = 0;" (assignment_expression "(posd->super_Output_data).data_size_ = 0" (field_expression "(posd->super_Output_data).data_size_" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(posd->super_Output_data).offset_ = -1;" (assignment_expression "(posd->super_Output_data).offset_ = -1" (field_expression "(posd->super_Output_data).offset_" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "posd->output_section_ = (Output_section *)0x0;" (assignment_expression "posd->output_section_ = (Output_section *)0x0" (field_expression "posd->output_section_" identifier -> field_identifier) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "posd->addralign_ = 1;" (assignment_expression "posd->addralign_ = 1" (field_expression "posd->addralign_" identifier -> field_identifier) = number_literal) ;) (expression_statement "posd[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)pAVar9;" (assignment_expression "posd[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)pAVar9" (field_expression "posd[1].super_Output_data._vptr_Output_data" (field_expression "posd[1].super_Output_data" (subscript_expression "posd[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)pAVar9" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (labeled_statement "gold::Layout::add_output_section_data\n              (layout,".gnu.attributes",0x6ffffff5,0,posd,ORDER_INVALID,false);" statement_identifier : (ERROR ":" :) (labeled_statement "Layout::add_output_section_data\n              (layout,".gnu.attributes",0x6ffffff5,0,posd,ORDER_INVALID,false);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_data\n              (layout,".gnu.attributes",0x6ffffff5,0,posd,ORDER_INVALID,false);" (call_expression "add_output_section_data\n              (layout,".gnu.attributes",0x6ffffff5,0,posd,ORDER_INVALID,false)" identifier (argument_list "(layout,".gnu.attributes",0x6ffffff5,0,posd,ORDER_INVALID,false)" ( identifier , (string_literal "".gnu.attributes"" " string_content ") , number_literal , number_literal , identifier , identifier , false ))) ;))) (return_statement "return;" return ;) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "long FUN_0021f7f0(long param_1,long param_2,long *param_3,long param_4)\n\n{\n  ulong *puVar1;\n  undefined8 uVar2;\n  long lVar3;\n  undefined8 *puVar4;\n  long lVar5;\n  ulong uVar6;\n  ulong uVar7;\n  uint uVar8;\n  undefined8 extraout_RDX;\n  ulong uVar9;\n  long *plVar10;\n  long lVar11;\n  ulong uVar12;\n  undefined8 uVar13;\n  undefined8 in_stack_ffffffffffffff90;\n  long *local_58;\n  undefined8 uStack_50;\n  undefined8 local_48;\n  \n  if (PTR_DAT_0067cb08[0x20] == '\0') {\nLAB_00220139:\n                    \n    FUN_001dc9b0();\n  }\n  if (PTR_DAT_0067cb08[0x21] != '\0') {\n    if (*(long *)(param_1 + 0x30) == 0) {\n      FUN_00445d10(param_4,"__rela_iplt_start",0,5,0,0,0,1,2,0,1,0);\n      in_stack_ffffffffffffff90 = 0;\n      FUN_00445d10(param_4,"__rela_iplt_end",0,5,0,0,0,1,2,0,1);\n    }\n    else {\n      uVar2 = *(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38);\n      FUN_00445bb0(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1);\n      FUN_00445bb0(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1);\n    }\n  }\n  for (puVar4 = *(undefined8 **)(param_4 + 0x40); puVar4 != (undefined8 *)0x0;\n      puVar4 = (undefined8 *)*puVar4) {\n    lVar3 = puVar4[3];\n    if (((((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)) &&\n        ((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)))) && (*(int *)(lVar5 + 0x224) == *(int *)(lVar3 + 0x18))) {\n      uVar9 = *(ulong *)(lVar3 + 0x40) >> 4;\n      if ((ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4) <= uVar9) {\n        FUN_001dc890();\n        goto LAB_00220139;\n      }\n      if ((*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1) != 0) {\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        FUN_00443500(lVar3);\n        *(undefined4 *)(lVar3 + 0x1c) = 0xffffffff;\n        *(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000;\n      }\n    }\n  }\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;\n  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x5051) == '\0') {\n    puVar4 = (undefined8 *)FUN_0049cb60(0x40);\n    puVar4[1] = 0;\n    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n    puVar4[2] = 0;\n    puVar4[3] = 0xffffffffffffffff;\n    puVar4[5] = 0;\n    puVar4[6] = 4;\n    *puVar4 = &PTR_FUN_00664fb8;\n    puVar4[7] = 0;\n                    \n    FUN_001db270(puVar4,param_4,&DAT_0054cfeb,0xe,0x1f,FUN_001d8b40,FUN_001d8b60);\n    FUN_001db270(puVar4,param_4,"_restgpr0_",0xe,0x1d,FUN_001d8b90,FUN_001d8bb0);\n    FUN_001db270(puVar4,param_4,"_restgpr0_",0x1e,0x1f,FUN_001d8b90,FUN_001d8bb0);\n    FUN_001db270(puVar4,param_4,"_savegpr1_",0xe,0x1f,FUN_001d8c10,FUN_001d8c30);\n    FUN_001db270(puVar4,param_4,"_restgpr1_",0xe,0x1f,FUN_001d8c60,FUN_001d8c80);\n    FUN_001db270(puVar4,param_4,"_savefpr_",0xe,0x1f,FUN_001d8cb0,FUN_001d8cd0);\n    FUN_001db270(puVar4,param_4,"_restfpr_",0xe,0x1d,FUN_001d8d00,FUN_001d8d20);\n    FUN_001db270(puVar4,param_4,"_restfpr_",0x1e,0x1f,FUN_001d8d00,FUN_001d8d20);\n    FUN_001db270(puVar4,param_4,"._savef",0xe,0x1f,FUN_001d8cb0,FUN_001d8d80);\n    FUN_001db270(puVar4,param_4,"._restf",0xe,0x1f,FUN_001d8d00,FUN_001d8db0);\n    FUN_001db270(puVar4,param_4,"_savevr_",0x14,0x1f,FUN_001d8de0,FUN_001d8e10);\n    uVar9 = 0;\n    FUN_001db270(puVar4,param_4,"_restvr_",0x14,0x1f,FUN_001d8e40,FUN_001d8e70);\n    *(undefined8 **)(param_1 + 0x140) = puVar4;\n    FUN_003839a0(param_2,".text",1,6,puVar4,9,uVar9 & 0xffffffff00000000);\n    FUN_001de660(param_1 + 0x20,param_4,param_2);\n    in_stack_ffffffffffffff90 = 0x21fea3;\n    FUN_001e1ee0(param_1,param_2);\n    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;\n    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841) != '\0') &&\n       (lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28), lVar3 != 0)) {\n      lVar5 = *(long *)(lVar3 + 0x90);\n      lVar3 = *(long *)(lVar3 + 0x88);\n      if (0x3f < (ulong)(lVar5 - lVar3)) {\n        FUN_002297f0(&local_58,lVar3,lVar5);\n        if (local_48 == 0) {\n                    \n          FUN_001f7950(lVar3,lVar5);\n        }\n        else {\n                    \n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        FUN_0049e310(local_48,&DAT_0058ad47);\n      }\n    }\n  }\n  lVar3 = *(long *)(param_2 + 0x300);\n  if (lVar3 != 0) {\n    uVar2 = 0;\n    lVar5 = *(long *)(param_1 + 0x28);\n    if (lVar5 != 0) {\n      uVar2 = *(undefined8 *)(lVar5 + 0x38);\n    }\n    uVar13 = 0;\n    FUN_0037e220(param_2,0,lVar5,uVar2,*(undefined8 *)(param_1 + 0x50),1);\n    plVar10 = *(long **)(param_1 + 0x48);\n    if (plVar10 != (long *)0x0) {\n      if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n        (**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13);\n        if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n                    \n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        plVar10 = *(long **)(param_1 + 0x48);\n      }\n      puVar4 = *(undefined8 **)(lVar3 + 0x40);\n      local_48 = CONCAT44((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000);\n      local_58 = plVar10;\n      if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n        FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n      }\n      else {\n        *puVar4 = plVar10;\n        puVar4[1] = uStack_50;\n        puVar4[2] = local_48;\n        *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n      }\n    }\n    if (*(char *)(param_1 + 0x133) == '\0') {\n      uVar8 = 0;\n      if (*(byte *)(param_1 + 0x134) == 0) goto LAB_0021f9ad;\n    }\n    else {\n      uVar8 = 4;\n    }\n    local_48 = -0x8ffffffd;\n    puVar4 = *(undefined8 **)(lVar3 + 0x40);\n    local_58 = (long *)CONCAT44(local_58._4_4_,*(byte *)(param_1 + 0x134) | uVar8);\n    if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n      FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n    }\n    else {\n      *puVar4 = local_58;\n      puVar4[1] = uStack_50;\n      puVar4[2] = 0xffffffff70000003;\n      *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n    }\n  }\nLAB_0021f9ad:\n  if (*(long *)(param_1 + 0x60) != *(long *)(param_1 + 0x58)) {\n    uVar2 = FUN_001e1980(param_1 + 0x50,param_2);\n    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\nLAB_00220104:\n                    \n      FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n    }\n    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0') &&\n       (plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60))) {\n      do {\n        if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }\n        plVar10 = plVar10 + 7;\n      } while (*(long **)(param_1 + 0x60) != plVar10);\n    }\n    FUN_0033bfa0(param_1 + 0x58,uVar2);\n  }\n  plVar10 = (long *)*param_3;\n  if (plVar10 != (long *)param_3[1]) {\n    do {\n      if (*(long *)(*plVar10 + 0x308) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[1] != plVar10);\n  }\n  plVar10 = (long *)param_3[3];\n  if (plVar10 != (long *)param_3[4]) {\n    do {\n      if (*(long *)(*plVar10 + 0xf8) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[4] != plVar10);\n  }\n  lVar3 = param_1;\n  if ((*(long *)(param_1 + 0x158) != 0) && (lVar3 = FUN_00335c60(), lVar3 != 0)) {\n    puVar4 = (undefined8 *)FUN_0049cb60(0x40);\n    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n    uVar2 = *(undefined8 *)(param_1 + 0x158);\n    *puVar4 = &PTR_FUN_00670da0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0xffffffffffffffff;\n    puVar4[5] = 0;\n    puVar4[6] = 1;\n    puVar4[7] = uVar2;\n    lVar3 = 0;\n    FUN_003839a0(param_2,".gnu.attributes",0x6ffffff5,0,puVar4,0);\n    return lVar3;\n  }\n  return lVar3;\n}\n\n" (function_definition "long FUN_0021f7f0(long param_1,long param_2,long *param_3,long param_4)\n\n{\n  ulong *puVar1;\n  undefined8 uVar2;\n  long lVar3;\n  undefined8 *puVar4;\n  long lVar5;\n  ulong uVar6;\n  ulong uVar7;\n  uint uVar8;\n  undefined8 extraout_RDX;\n  ulong uVar9;\n  long *plVar10;\n  long lVar11;\n  ulong uVar12;\n  undefined8 uVar13;\n  undefined8 in_stack_ffffffffffffff90;\n  long *local_58;\n  undefined8 uStack_50;\n  undefined8 local_48;\n  \n  if (PTR_DAT_0067cb08[0x20] == '\0') {\nLAB_00220139:\n                    \n    FUN_001dc9b0();\n  }\n  if (PTR_DAT_0067cb08[0x21] != '\0') {\n    if (*(long *)(param_1 + 0x30) == 0) {\n      FUN_00445d10(param_4,"__rela_iplt_start",0,5,0,0,0,1,2,0,1,0);\n      in_stack_ffffffffffffff90 = 0;\n      FUN_00445d10(param_4,"__rela_iplt_end",0,5,0,0,0,1,2,0,1);\n    }\n    else {\n      uVar2 = *(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38);\n      FUN_00445bb0(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1);\n      FUN_00445bb0(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1);\n    }\n  }\n  for (puVar4 = *(undefined8 **)(param_4 + 0x40); puVar4 != (undefined8 *)0x0;\n      puVar4 = (undefined8 *)*puVar4) {\n    lVar3 = puVar4[3];\n    if (((((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)) &&\n        ((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)))) && (*(int *)(lVar5 + 0x224) == *(int *)(lVar3 + 0x18))) {\n      uVar9 = *(ulong *)(lVar3 + 0x40) >> 4;\n      if ((ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4) <= uVar9) {\n        FUN_001dc890();\n        goto LAB_00220139;\n      }\n      if ((*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1) != 0) {\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        FUN_00443500(lVar3);\n        *(undefined4 *)(lVar3 + 0x1c) = 0xffffffff;\n        *(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000;\n      }\n    }\n  }\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;\n  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x5051) == '\0') {\n    puVar4 = (undefined8 *)FUN_0049cb60(0x40);\n    puVar4[1] = 0;\n    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n    puVar4[2] = 0;\n    puVar4[3] = 0xffffffffffffffff;\n    puVar4[5] = 0;\n    puVar4[6] = 4;\n    *puVar4 = &PTR_FUN_00664fb8;\n    puVar4[7] = 0;\n                    \n    FUN_001db270(puVar4,param_4,&DAT_0054cfeb,0xe,0x1f,FUN_001d8b40,FUN_001d8b60);\n    FUN_001db270(puVar4,param_4,"_restgpr0_",0xe,0x1d,FUN_001d8b90,FUN_001d8bb0);\n    FUN_001db270(puVar4,param_4,"_restgpr0_",0x1e,0x1f,FUN_001d8b90,FUN_001d8bb0);\n    FUN_001db270(puVar4,param_4,"_savegpr1_",0xe,0x1f,FUN_001d8c10,FUN_001d8c30);\n    FUN_001db270(puVar4,param_4,"_restgpr1_",0xe,0x1f,FUN_001d8c60,FUN_001d8c80);\n    FUN_001db270(puVar4,param_4,"_savefpr_",0xe,0x1f,FUN_001d8cb0,FUN_001d8cd0);\n    FUN_001db270(puVar4,param_4,"_restfpr_",0xe,0x1d,FUN_001d8d00,FUN_001d8d20);\n    FUN_001db270(puVar4,param_4,"_restfpr_",0x1e,0x1f,FUN_001d8d00,FUN_001d8d20);\n    FUN_001db270(puVar4,param_4,"._savef",0xe,0x1f,FUN_001d8cb0,FUN_001d8d80);\n    FUN_001db270(puVar4,param_4,"._restf",0xe,0x1f,FUN_001d8d00,FUN_001d8db0);\n    FUN_001db270(puVar4,param_4,"_savevr_",0x14,0x1f,FUN_001d8de0,FUN_001d8e10);\n    uVar9 = 0;\n    FUN_001db270(puVar4,param_4,"_restvr_",0x14,0x1f,FUN_001d8e40,FUN_001d8e70);\n    *(undefined8 **)(param_1 + 0x140) = puVar4;\n    FUN_003839a0(param_2,".text",1,6,puVar4,9,uVar9 & 0xffffffff00000000);\n    FUN_001de660(param_1 + 0x20,param_4,param_2);\n    in_stack_ffffffffffffff90 = 0x21fea3;\n    FUN_001e1ee0(param_1,param_2);\n    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;\n    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841) != '\0') &&\n       (lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28), lVar3 != 0)) {\n      lVar5 = *(long *)(lVar3 + 0x90);\n      lVar3 = *(long *)(lVar3 + 0x88);\n      if (0x3f < (ulong)(lVar5 - lVar3)) {\n        FUN_002297f0(&local_58,lVar3,lVar5);\n        if (local_48 == 0) {\n                    \n          FUN_001f7950(lVar3,lVar5);\n        }\n        else {\n                    \n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        FUN_0049e310(local_48,&DAT_0058ad47);\n      }\n    }\n  }\n  lVar3 = *(long *)(param_2 + 0x300);\n  if (lVar3 != 0) {\n    uVar2 = 0;\n    lVar5 = *(long *)(param_1 + 0x28);\n    if (lVar5 != 0) {\n      uVar2 = *(undefined8 *)(lVar5 + 0x38);\n    }\n    uVar13 = 0;\n    FUN_0037e220(param_2,0,lVar5,uVar2,*(undefined8 *)(param_1 + 0x50),1);\n    plVar10 = *(long **)(param_1 + 0x48);\n    if (plVar10 != (long *)0x0) {\n      if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n        (**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13);\n        if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n                    \n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        plVar10 = *(long **)(param_1 + 0x48);\n      }\n      puVar4 = *(undefined8 **)(lVar3 + 0x40);\n      local_48 = CONCAT44((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000);\n      local_58 = plVar10;\n      if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n        FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n      }\n      else {\n        *puVar4 = plVar10;\n        puVar4[1] = uStack_50;\n        puVar4[2] = local_48;\n        *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n      }\n    }\n    if (*(char *)(param_1 + 0x133) == '\0') {\n      uVar8 = 0;\n      if (*(byte *)(param_1 + 0x134) == 0) goto LAB_0021f9ad;\n    }\n    else {\n      uVar8 = 4;\n    }\n    local_48 = -0x8ffffffd;\n    puVar4 = *(undefined8 **)(lVar3 + 0x40);\n    local_58 = (long *)CONCAT44(local_58._4_4_,*(byte *)(param_1 + 0x134) | uVar8);\n    if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n      FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n    }\n    else {\n      *puVar4 = local_58;\n      puVar4[1] = uStack_50;\n      puVar4[2] = 0xffffffff70000003;\n      *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n    }\n  }\nLAB_0021f9ad:\n  if (*(long *)(param_1 + 0x60) != *(long *)(param_1 + 0x58)) {\n    uVar2 = FUN_001e1980(param_1 + 0x50,param_2);\n    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\nLAB_00220104:\n                    \n      FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n    }\n    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0') &&\n       (plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60))) {\n      do {\n        if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }\n        plVar10 = plVar10 + 7;\n      } while (*(long **)(param_1 + 0x60) != plVar10);\n    }\n    FUN_0033bfa0(param_1 + 0x58,uVar2);\n  }\n  plVar10 = (long *)*param_3;\n  if (plVar10 != (long *)param_3[1]) {\n    do {\n      if (*(long *)(*plVar10 + 0x308) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[1] != plVar10);\n  }\n  plVar10 = (long *)param_3[3];\n  if (plVar10 != (long *)param_3[4]) {\n    do {\n      if (*(long *)(*plVar10 + 0xf8) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[4] != plVar10);\n  }\n  lVar3 = param_1;\n  if ((*(long *)(param_1 + 0x158) != 0) && (lVar3 = FUN_00335c60(), lVar3 != 0)) {\n    puVar4 = (undefined8 *)FUN_0049cb60(0x40);\n    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n    uVar2 = *(undefined8 *)(param_1 + 0x158);\n    *puVar4 = &PTR_FUN_00670da0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0xffffffffffffffff;\n    puVar4[5] = 0;\n    puVar4[6] = 1;\n    puVar4[7] = uVar2;\n    lVar3 = 0;\n    FUN_003839a0(param_2,".gnu.attributes",0x6ffffff5,0,puVar4,0);\n    return lVar3;\n  }\n  return lVar3;\n}" (sized_type_specifier "long" long) (function_declarator "FUN_0021f7f0(long param_1,long param_2,long *param_3,long param_4)" identifier (parameter_list "(long param_1,long param_2,long *param_3,long param_4)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long *param_3" (sized_type_specifier "long" long) (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  ulong *puVar1;\n  undefined8 uVar2;\n  long lVar3;\n  undefined8 *puVar4;\n  long lVar5;\n  ulong uVar6;\n  ulong uVar7;\n  uint uVar8;\n  undefined8 extraout_RDX;\n  ulong uVar9;\n  long *plVar10;\n  long lVar11;\n  ulong uVar12;\n  undefined8 uVar13;\n  undefined8 in_stack_ffffffffffffff90;\n  long *local_58;\n  undefined8 uStack_50;\n  undefined8 local_48;\n  \n  if (PTR_DAT_0067cb08[0x20] == '\0') {\nLAB_00220139:\n                    \n    FUN_001dc9b0();\n  }\n  if (PTR_DAT_0067cb08[0x21] != '\0') {\n    if (*(long *)(param_1 + 0x30) == 0) {\n      FUN_00445d10(param_4,"__rela_iplt_start",0,5,0,0,0,1,2,0,1,0);\n      in_stack_ffffffffffffff90 = 0;\n      FUN_00445d10(param_4,"__rela_iplt_end",0,5,0,0,0,1,2,0,1);\n    }\n    else {\n      uVar2 = *(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38);\n      FUN_00445bb0(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1);\n      FUN_00445bb0(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1);\n    }\n  }\n  for (puVar4 = *(undefined8 **)(param_4 + 0x40); puVar4 != (undefined8 *)0x0;\n      puVar4 = (undefined8 *)*puVar4) {\n    lVar3 = puVar4[3];\n    if (((((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)) &&\n        ((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)))) && (*(int *)(lVar5 + 0x224) == *(int *)(lVar3 + 0x18))) {\n      uVar9 = *(ulong *)(lVar3 + 0x40) >> 4;\n      if ((ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4) <= uVar9) {\n        FUN_001dc890();\n        goto LAB_00220139;\n      }\n      if ((*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1) != 0) {\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        FUN_00443500(lVar3);\n        *(undefined4 *)(lVar3 + 0x1c) = 0xffffffff;\n        *(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000;\n      }\n    }\n  }\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;\n  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x5051) == '\0') {\n    puVar4 = (undefined8 *)FUN_0049cb60(0x40);\n    puVar4[1] = 0;\n    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n    puVar4[2] = 0;\n    puVar4[3] = 0xffffffffffffffff;\n    puVar4[5] = 0;\n    puVar4[6] = 4;\n    *puVar4 = &PTR_FUN_00664fb8;\n    puVar4[7] = 0;\n                    \n    FUN_001db270(puVar4,param_4,&DAT_0054cfeb,0xe,0x1f,FUN_001d8b40,FUN_001d8b60);\n    FUN_001db270(puVar4,param_4,"_restgpr0_",0xe,0x1d,FUN_001d8b90,FUN_001d8bb0);\n    FUN_001db270(puVar4,param_4,"_restgpr0_",0x1e,0x1f,FUN_001d8b90,FUN_001d8bb0);\n    FUN_001db270(puVar4,param_4,"_savegpr1_",0xe,0x1f,FUN_001d8c10,FUN_001d8c30);\n    FUN_001db270(puVar4,param_4,"_restgpr1_",0xe,0x1f,FUN_001d8c60,FUN_001d8c80);\n    FUN_001db270(puVar4,param_4,"_savefpr_",0xe,0x1f,FUN_001d8cb0,FUN_001d8cd0);\n    FUN_001db270(puVar4,param_4,"_restfpr_",0xe,0x1d,FUN_001d8d00,FUN_001d8d20);\n    FUN_001db270(puVar4,param_4,"_restfpr_",0x1e,0x1f,FUN_001d8d00,FUN_001d8d20);\n    FUN_001db270(puVar4,param_4,"._savef",0xe,0x1f,FUN_001d8cb0,FUN_001d8d80);\n    FUN_001db270(puVar4,param_4,"._restf",0xe,0x1f,FUN_001d8d00,FUN_001d8db0);\n    FUN_001db270(puVar4,param_4,"_savevr_",0x14,0x1f,FUN_001d8de0,FUN_001d8e10);\n    uVar9 = 0;\n    FUN_001db270(puVar4,param_4,"_restvr_",0x14,0x1f,FUN_001d8e40,FUN_001d8e70);\n    *(undefined8 **)(param_1 + 0x140) = puVar4;\n    FUN_003839a0(param_2,".text",1,6,puVar4,9,uVar9 & 0xffffffff00000000);\n    FUN_001de660(param_1 + 0x20,param_4,param_2);\n    in_stack_ffffffffffffff90 = 0x21fea3;\n    FUN_001e1ee0(param_1,param_2);\n    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;\n    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841) != '\0') &&\n       (lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28), lVar3 != 0)) {\n      lVar5 = *(long *)(lVar3 + 0x90);\n      lVar3 = *(long *)(lVar3 + 0x88);\n      if (0x3f < (ulong)(lVar5 - lVar3)) {\n        FUN_002297f0(&local_58,lVar3,lVar5);\n        if (local_48 == 0) {\n                    \n          FUN_001f7950(lVar3,lVar5);\n        }\n        else {\n                    \n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        FUN_0049e310(local_48,&DAT_0058ad47);\n      }\n    }\n  }\n  lVar3 = *(long *)(param_2 + 0x300);\n  if (lVar3 != 0) {\n    uVar2 = 0;\n    lVar5 = *(long *)(param_1 + 0x28);\n    if (lVar5 != 0) {\n      uVar2 = *(undefined8 *)(lVar5 + 0x38);\n    }\n    uVar13 = 0;\n    FUN_0037e220(param_2,0,lVar5,uVar2,*(undefined8 *)(param_1 + 0x50),1);\n    plVar10 = *(long **)(param_1 + 0x48);\n    if (plVar10 != (long *)0x0) {\n      if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n        (**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13);\n        if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n                    \n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        plVar10 = *(long **)(param_1 + 0x48);\n      }\n      puVar4 = *(undefined8 **)(lVar3 + 0x40);\n      local_48 = CONCAT44((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000);\n      local_58 = plVar10;\n      if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n        FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n      }\n      else {\n        *puVar4 = plVar10;\n        puVar4[1] = uStack_50;\n        puVar4[2] = local_48;\n        *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n      }\n    }\n    if (*(char *)(param_1 + 0x133) == '\0') {\n      uVar8 = 0;\n      if (*(byte *)(param_1 + 0x134) == 0) goto LAB_0021f9ad;\n    }\n    else {\n      uVar8 = 4;\n    }\n    local_48 = -0x8ffffffd;\n    puVar4 = *(undefined8 **)(lVar3 + 0x40);\n    local_58 = (long *)CONCAT44(local_58._4_4_,*(byte *)(param_1 + 0x134) | uVar8);\n    if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n      FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n    }\n    else {\n      *puVar4 = local_58;\n      puVar4[1] = uStack_50;\n      puVar4[2] = 0xffffffff70000003;\n      *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n    }\n  }\nLAB_0021f9ad:\n  if (*(long *)(param_1 + 0x60) != *(long *)(param_1 + 0x58)) {\n    uVar2 = FUN_001e1980(param_1 + 0x50,param_2);\n    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\nLAB_00220104:\n                    \n      FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n    }\n    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0') &&\n       (plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60))) {\n      do {\n        if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }\n        plVar10 = plVar10 + 7;\n      } while (*(long **)(param_1 + 0x60) != plVar10);\n    }\n    FUN_0033bfa0(param_1 + 0x58,uVar2);\n  }\n  plVar10 = (long *)*param_3;\n  if (plVar10 != (long *)param_3[1]) {\n    do {\n      if (*(long *)(*plVar10 + 0x308) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[1] != plVar10);\n  }\n  plVar10 = (long *)param_3[3];\n  if (plVar10 != (long *)param_3[4]) {\n    do {\n      if (*(long *)(*plVar10 + 0xf8) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[4] != plVar10);\n  }\n  lVar3 = param_1;\n  if ((*(long *)(param_1 + 0x158) != 0) && (lVar3 = FUN_00335c60(), lVar3 != 0)) {\n    puVar4 = (undefined8 *)FUN_0049cb60(0x40);\n    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n    uVar2 = *(undefined8 *)(param_1 + 0x158);\n    *puVar4 = &PTR_FUN_00670da0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0xffffffffffffffff;\n    puVar4[5] = 0;\n    puVar4[6] = 1;\n    puVar4[7] = uVar2;\n    lVar3 = 0;\n    FUN_003839a0(param_2,".gnu.attributes",0x6ffffff5,0,puVar4,0);\n    return lVar3;\n  }\n  return lVar3;\n}" { (declaration "ulong *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined8 extraout_RDX;" type_identifier identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "long *plVar10;" (sized_type_specifier "long" long) (pointer_declarator "*plVar10" * identifier) ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar12;" type_identifier identifier ;) (declaration "undefined8 uVar13;" type_identifier identifier ;) (declaration "undefined8 in_stack_ffffffffffffff90;" type_identifier identifier ;) (declaration "long *local_58;" (sized_type_specifier "long" long) (pointer_declarator "*local_58" * identifier) ;) (declaration "undefined8 uStack_50;" type_identifier identifier ;) (declaration "undefined8 local_48;" type_identifier identifier ;) (if_statement "if (PTR_DAT_0067cb08[0x20] == '\0') {\nLAB_00220139:\n                    \n    FUN_001dc9b0();\n  }" if (parenthesized_expression "(PTR_DAT_0067cb08[0x20] == '\0')" ( (binary_expression "PTR_DAT_0067cb08[0x20] == '\0'" (subscript_expression "PTR_DAT_0067cb08[0x20]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00220139:\n                    \n    FUN_001dc9b0();\n  }" { (labeled_statement "LAB_00220139:\n                    \n    FUN_001dc9b0();" statement_identifier : (expression_statement "FUN_001dc9b0();" (call_expression "FUN_001dc9b0()" identifier (argument_list "()" ( ))) ;)) })) (if_statement "if (PTR_DAT_0067cb08[0x21] != '\0') {\n    if (*(long *)(param_1 + 0x30) == 0) {\n      FUN_00445d10(param_4,"__rela_iplt_start",0,5,0,0,0,1,2,0,1,0);\n      in_stack_ffffffffffffff90 = 0;\n      FUN_00445d10(param_4,"__rela_iplt_end",0,5,0,0,0,1,2,0,1);\n    }\n    else {\n      uVar2 = *(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38);\n      FUN_00445bb0(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1);\n      FUN_00445bb0(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1);\n    }\n  }" if (parenthesized_expression "(PTR_DAT_0067cb08[0x21] != '\0')" ( (binary_expression "PTR_DAT_0067cb08[0x21] != '\0'" (subscript_expression "PTR_DAT_0067cb08[0x21]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if (*(long *)(param_1 + 0x30) == 0) {\n      FUN_00445d10(param_4,"__rela_iplt_start",0,5,0,0,0,1,2,0,1,0);\n      in_stack_ffffffffffffff90 = 0;\n      FUN_00445d10(param_4,"__rela_iplt_end",0,5,0,0,0,1,2,0,1);\n    }\n    else {\n      uVar2 = *(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38);\n      FUN_00445bb0(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1);\n      FUN_00445bb0(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1);\n    }\n  }" { (if_statement "if (*(long *)(param_1 + 0x30) == 0) {\n      FUN_00445d10(param_4,"__rela_iplt_start",0,5,0,0,0,1,2,0,1,0);\n      in_stack_ffffffffffffff90 = 0;\n      FUN_00445d10(param_4,"__rela_iplt_end",0,5,0,0,0,1,2,0,1);\n    }\n    else {\n      uVar2 = *(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38);\n      FUN_00445bb0(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1);\n      FUN_00445bb0(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1);\n    }" if (parenthesized_expression "(*(long *)(param_1 + 0x30) == 0)" ( (binary_expression "*(long *)(param_1 + 0x30) == 0" (pointer_expression "*(long *)(param_1 + 0x30)" * (cast_expression "(long *)(param_1 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      FUN_00445d10(param_4,"__rela_iplt_start",0,5,0,0,0,1,2,0,1,0);\n      in_stack_ffffffffffffff90 = 0;\n      FUN_00445d10(param_4,"__rela_iplt_end",0,5,0,0,0,1,2,0,1);\n    }" { (expression_statement "FUN_00445d10(param_4,"__rela_iplt_start",0,5,0,0,0,1,2,0,1,0);" (call_expression "FUN_00445d10(param_4,"__rela_iplt_start",0,5,0,0,0,1,2,0,1,0)" identifier (argument_list "(param_4,"__rela_iplt_start",0,5,0,0,0,1,2,0,1,0)" ( identifier , (string_literal ""__rela_iplt_start"" " string_content ") , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))) ;) (expression_statement "in_stack_ffffffffffffff90 = 0;" (assignment_expression "in_stack_ffffffffffffff90 = 0" identifier = number_literal) ;) (expression_statement "FUN_00445d10(param_4,"__rela_iplt_end",0,5,0,0,0,1,2,0,1);" (call_expression "FUN_00445d10(param_4,"__rela_iplt_end",0,5,0,0,0,1,2,0,1)" identifier (argument_list "(param_4,"__rela_iplt_end",0,5,0,0,0,1,2,0,1)" ( identifier , (string_literal ""__rela_iplt_end"" " string_content ") , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))) ;) }) (else_clause "else {\n      uVar2 = *(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38);\n      FUN_00445bb0(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1);\n      FUN_00445bb0(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1);\n    }" else (compound_statement "{\n      uVar2 = *(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38);\n      FUN_00445bb0(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1);\n      FUN_00445bb0(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1);\n    }" { (expression_statement "uVar2 = *(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38);" (assignment_expression "uVar2 = *(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38)" identifier = (pointer_expression "*(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38)" * (cast_expression "(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x30) + 0x38)" ( (binary_expression "*(long *)(param_1 + 0x30) + 0x38" (pointer_expression "*(long *)(param_1 + 0x30)" * (cast_expression "(long *)(param_1 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "FUN_00445bb0(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1);" (call_expression "FUN_00445bb0(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1)" identifier (argument_list "(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1)" ( identifier , (string_literal ""__rela_iplt_start"" " string_content ") , number_literal , number_literal , identifier , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))) ;) (expression_statement "FUN_00445bb0(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1);" (call_expression "FUN_00445bb0(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1)" identifier (argument_list "(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1)" ( identifier , (string_literal ""__rela_iplt_end"" " string_content ") , number_literal , number_literal , identifier , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))) ;) }))) })) (for_statement "for (puVar4 = *(undefined8 **)(param_4 + 0x40); puVar4 != (undefined8 *)0x0;\n      puVar4 = (undefined8 *)*puVar4) {\n    lVar3 = puVar4[3];\n    if (((((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)) &&\n        ((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)))) && (*(int *)(lVar5 + 0x224) == *(int *)(lVar3 + 0x18))) {\n      uVar9 = *(ulong *)(lVar3 + 0x40) >> 4;\n      if ((ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4) <= uVar9) {\n        FUN_001dc890();\n        goto LAB_00220139;\n      }\n      if ((*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1) != 0) {\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        FUN_00443500(lVar3);\n        *(undefined4 *)(lVar3 + 0x1c) = 0xffffffff;\n        *(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000;\n      }\n    }\n  }" for ( (assignment_expression "puVar4 = *(undefined8 **)(param_4 + 0x40)" identifier = (pointer_expression "*(undefined8 **)(param_4 + 0x40)" * (cast_expression "(undefined8 **)(param_4 + 0x40)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 0x40)" ( (binary_expression "param_4 + 0x40" identifier + number_literal) ))))) ; (binary_expression "puVar4 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar4 = (undefined8 *)*puVar4" identifier = (cast_expression "(undefined8 *)*puVar4" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ) (compound_statement "{\n    lVar3 = puVar4[3];\n    if (((((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)) &&\n        ((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)))) && (*(int *)(lVar5 + 0x224) == *(int *)(lVar3 + 0x18))) {\n      uVar9 = *(ulong *)(lVar3 + 0x40) >> 4;\n      if ((ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4) <= uVar9) {\n        FUN_001dc890();\n        goto LAB_00220139;\n      }\n      if ((*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1) != 0) {\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        FUN_00443500(lVar3);\n        *(undefined4 *)(lVar3 + 0x1c) = 0xffffffff;\n        *(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000;\n      }\n    }\n  }" { (expression_statement "lVar3 = puVar4[3];" (assignment_expression "lVar3 = puVar4[3]" identifier = (subscript_expression "puVar4[3]" identifier [ number_literal ])) ;) (if_statement "if (((((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)) &&\n        ((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)))) && (*(int *)(lVar5 + 0x224) == *(int *)(lVar3 + 0x18))) {\n      uVar9 = *(ulong *)(lVar3 + 0x40) >> 4;\n      if ((ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4) <= uVar9) {\n        FUN_001dc890();\n        goto LAB_00220139;\n      }\n      if ((*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1) != 0) {\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        FUN_00443500(lVar3);\n        *(undefined4 *)(lVar3 + 0x1c) = 0xffffffff;\n        *(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000;\n      }\n    }" if (parenthesized_expression "(((((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)) &&\n        ((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)))) && (*(int *)(lVar5 + 0x224) == *(int *)(lVar3 + 0x18)))" ( (binary_expression "((((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)) &&\n        ((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)))) && (*(int *)(lVar5 + 0x224) == *(int *)(lVar3 + 0x18))" (parenthesized_expression "((((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)) &&\n        ((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0))))" ( (binary_expression "(((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)) &&\n        ((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)))" (parenthesized_expression "(((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0))" ( (binary_expression "((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)" (parenthesized_expression "((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0))" ( (binary_expression "(*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)" (parenthesized_expression "(*(int *)(lVar3 + 0x1c) == 0)" ( (binary_expression "*(int *)(lVar3 + 0x1c) == 0" (pointer_expression "*(int *)(lVar3 + 0x1c)" * (cast_expression "(int *)(lVar3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x1c)" ( (binary_expression "lVar3 + 0x1c" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((*(byte *)(lVar3 + 0x3a) & 7) == 0)" ( (binary_expression "(*(byte *)(lVar3 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)(lVar3 + 0x3a) & 7)" ( (binary_expression "*(byte *)(lVar3 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar3 + 0x3a)" * (cast_expression "(byte *)(lVar3 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x3a)" ( (binary_expression "lVar3 + 0x3a" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)" ( (binary_expression "(*(byte *)(lVar3 + 0x3b) & 0x40) != 0" (parenthesized_expression "(*(byte *)(lVar3 + 0x3b) & 0x40)" ( (binary_expression "*(byte *)(lVar3 + 0x3b) & 0x40" (pointer_expression "*(byte *)(lVar3 + 0x3b)" * (cast_expression "(byte *)(lVar3 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x3b)" ( (binary_expression "lVar3 + 0x3b" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)))" ( (parenthesized_expression "(lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0))" ( (comma_expression "lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)" (assignment_expression "lVar5 = *(long *)(lVar3 + 0x10)" identifier = (pointer_expression "*(long *)(lVar3 + 0x10)" * (cast_expression "(long *)(lVar3 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x10)" ( (binary_expression "lVar3 + 0x10" identifier + number_literal) ))))) , (binary_expression "(*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)" (binary_expression "(*(byte *)(lVar5 + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)(lVar5 + 0x3c) & 1)" ( (binary_expression "*(byte *)(lVar5 + 0x3c) & 1" (pointer_expression "*(byte *)(lVar5 + 0x3c)" * (cast_expression "(byte *)(lVar5 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x3c)" ( (binary_expression "lVar5 + 0x3c" identifier + number_literal) )))) & number_literal) )) == number_literal) && (parenthesized_expression "(*(int *)(lVar5 + 0x224) != 0)" ( (binary_expression "*(int *)(lVar5 + 0x224) != 0" (pointer_expression "*(int *)(lVar5 + 0x224)" * (cast_expression "(int *)(lVar5 + 0x224)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x224)" ( (binary_expression "lVar5 + 0x224" identifier + number_literal) )))) != number_literal) )))) )) ))) )) && (parenthesized_expression "(*(int *)(lVar5 + 0x224) == *(int *)(lVar3 + 0x18))" ( (binary_expression "*(int *)(lVar5 + 0x224) == *(int *)(lVar3 + 0x18)" (pointer_expression "*(int *)(lVar5 + 0x224)" * (cast_expression "(int *)(lVar5 + 0x224)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x224)" ( (binary_expression "lVar5 + 0x224" identifier + number_literal) )))) == (pointer_expression "*(int *)(lVar3 + 0x18)" * (cast_expression "(int *)(lVar3 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x18)" ( (binary_expression "lVar3 + 0x18" identifier + number_literal) ))))) ))) )) (compound_statement "{\n      uVar9 = *(ulong *)(lVar3 + 0x40) >> 4;\n      if ((ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4) <= uVar9) {\n        FUN_001dc890();\n        goto LAB_00220139;\n      }\n      if ((*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1) != 0) {\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        FUN_00443500(lVar3);\n        *(undefined4 *)(lVar3 + 0x1c) = 0xffffffff;\n        *(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000;\n      }\n    }" { (expression_statement "uVar9 = *(ulong *)(lVar3 + 0x40) >> 4;" (assignment_expression "uVar9 = *(ulong *)(lVar3 + 0x40) >> 4" identifier = (binary_expression "*(ulong *)(lVar3 + 0x40) >> 4" (pointer_expression "*(ulong *)(lVar3 + 0x40)" * (cast_expression "(ulong *)(lVar3 + 0x40)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x40)" ( (binary_expression "lVar3 + 0x40" identifier + number_literal) )))) >> number_literal)) ;) (if_statement "if ((ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4) <= uVar9) {\n        FUN_001dc890();\n        goto LAB_00220139;\n      }" if (parenthesized_expression "((ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4) <= uVar9)" ( (binary_expression "(ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4) <= uVar9" (call_expression "(ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4)" ( (binary_expression "*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4" (binary_expression "*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260)" (pointer_expression "*(long *)(lVar5 + 0x268)" * (cast_expression "(long *)(lVar5 + 0x268)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x268)" ( (binary_expression "lVar5 + 0x268" identifier + number_literal) )))) - (pointer_expression "*(long *)(lVar5 + 0x260)" * (cast_expression "(long *)(lVar5 + 0x260)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x260)" ( (binary_expression "lVar5 + 0x260" identifier + number_literal) ))))) >> number_literal) ))) <= identifier) )) (compound_statement "{\n        FUN_001dc890();\n        goto LAB_00220139;\n      }" { (expression_statement "FUN_001dc890();" (call_expression "FUN_001dc890()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_00220139;" goto statement_identifier ;) })) (if_statement "if ((*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1) != 0) {\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        FUN_00443500(lVar3);\n        *(undefined4 *)(lVar3 + 0x1c) = 0xffffffff;\n        *(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000;\n      }" if (parenthesized_expression "((*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1) != 0)" ( (binary_expression "(*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1) != 0" (parenthesized_expression "(*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1)" ( (binary_expression "*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1" (pointer_expression "*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10)" * (cast_expression "(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10)" ( (binary_expression "*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10" (binary_expression "*(long *)(lVar5 + 0x260) + 4" (pointer_expression "*(long *)(lVar5 + 0x260)" * (cast_expression "(long *)(lVar5 + 0x260)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x260)" ( (binary_expression "lVar5 + 0x260" identifier + number_literal) )))) + number_literal) + (binary_expression "uVar9 * 0x10" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        FUN_00443500(lVar3);\n        *(undefined4 *)(lVar3 + 0x1c) = 0xffffffff;\n        *(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000;\n      }" { (expression_statement "in_stack_ffffffffffffff90 = 0x21fbbd;" (assignment_expression "in_stack_ffffffffffffff90 = 0x21fbbd" identifier = number_literal) ;) (expression_statement "FUN_00443500(lVar3);" (call_expression "FUN_00443500(lVar3)" identifier (argument_list "(lVar3)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(lVar3 + 0x1c) = 0xffffffff;" (assignment_expression "*(undefined4 *)(lVar3 + 0x1c) = 0xffffffff" (pointer_expression "*(undefined4 *)(lVar3 + 0x1c)" * (cast_expression "(undefined4 *)(lVar3 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x1c)" ( (binary_expression "lVar3 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000;" (assignment_expression "*(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000" (pointer_expression "*(uint *)(lVar3 + 0x38)" * (cast_expression "(uint *)(lVar3 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x38)" ( (binary_expression "lVar3 + 0x38" identifier + number_literal) )))) = (binary_expression "*(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000" (binary_expression "*(uint *)(lVar3 + 0x38) & 0x7ffffcff" (pointer_expression "*(uint *)(lVar3 + 0x38)" * (cast_expression "(uint *)(lVar3 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x38)" ( (binary_expression "lVar3 + 0x38" identifier + number_literal) )))) & number_literal) | number_literal)) ;) })) })) })) (if_statement "if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;" if (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00220104;" goto statement_identifier ;)) (if_statement "if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x5051) == '\0') {\n    puVar4 = (undefined8 *)FUN_0049cb60(0x40);\n    puVar4[1] = 0;\n    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n    puVar4[2] = 0;\n    puVar4[3] = 0xffffffffffffffff;\n    puVar4[5] = 0;\n    puVar4[6] = 4;\n    *puVar4 = &PTR_FUN_00664fb8;\n    puVar4[7] = 0;\n                    \n    FUN_001db270(puVar4,param_4,&DAT_0054cfeb,0xe,0x1f,FUN_001d8b40,FUN_001d8b60);\n    FUN_001db270(puVar4,param_4,"_restgpr0_",0xe,0x1d,FUN_001d8b90,FUN_001d8bb0);\n    FUN_001db270(puVar4,param_4,"_restgpr0_",0x1e,0x1f,FUN_001d8b90,FUN_001d8bb0);\n    FUN_001db270(puVar4,param_4,"_savegpr1_",0xe,0x1f,FUN_001d8c10,FUN_001d8c30);\n    FUN_001db270(puVar4,param_4,"_restgpr1_",0xe,0x1f,FUN_001d8c60,FUN_001d8c80);\n    FUN_001db270(puVar4,param_4,"_savefpr_",0xe,0x1f,FUN_001d8cb0,FUN_001d8cd0);\n    FUN_001db270(puVar4,param_4,"_restfpr_",0xe,0x1d,FUN_001d8d00,FUN_001d8d20);\n    FUN_001db270(puVar4,param_4,"_restfpr_",0x1e,0x1f,FUN_001d8d00,FUN_001d8d20);\n    FUN_001db270(puVar4,param_4,"._savef",0xe,0x1f,FUN_001d8cb0,FUN_001d8d80);\n    FUN_001db270(puVar4,param_4,"._restf",0xe,0x1f,FUN_001d8d00,FUN_001d8db0);\n    FUN_001db270(puVar4,param_4,"_savevr_",0x14,0x1f,FUN_001d8de0,FUN_001d8e10);\n    uVar9 = 0;\n    FUN_001db270(puVar4,param_4,"_restvr_",0x14,0x1f,FUN_001d8e40,FUN_001d8e70);\n    *(undefined8 **)(param_1 + 0x140) = puVar4;\n    FUN_003839a0(param_2,".text",1,6,puVar4,9,uVar9 & 0xffffffff00000000);\n    FUN_001de660(param_1 + 0x20,param_4,param_2);\n    in_stack_ffffffffffffff90 = 0x21fea3;\n    FUN_001e1ee0(param_1,param_2);\n    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;\n    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841) != '\0') &&\n       (lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28), lVar3 != 0)) {\n      lVar5 = *(long *)(lVar3 + 0x90);\n      lVar3 = *(long *)(lVar3 + 0x88);\n      if (0x3f < (ulong)(lVar5 - lVar3)) {\n        FUN_002297f0(&local_58,lVar3,lVar5);\n        if (local_48 == 0) {\n                    \n          FUN_001f7950(lVar3,lVar5);\n        }\n        else {\n                    \n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        FUN_0049e310(local_48,&DAT_0058ad47);\n      }\n    }\n  }" if (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x5051) == '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x5051) == '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x5051)" * (cast_expression "(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x5051)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x5051)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x5051" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    puVar4 = (undefined8 *)FUN_0049cb60(0x40);\n    puVar4[1] = 0;\n    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n    puVar4[2] = 0;\n    puVar4[3] = 0xffffffffffffffff;\n    puVar4[5] = 0;\n    puVar4[6] = 4;\n    *puVar4 = &PTR_FUN_00664fb8;\n    puVar4[7] = 0;\n                    \n    FUN_001db270(puVar4,param_4,&DAT_0054cfeb,0xe,0x1f,FUN_001d8b40,FUN_001d8b60);\n    FUN_001db270(puVar4,param_4,"_restgpr0_",0xe,0x1d,FUN_001d8b90,FUN_001d8bb0);\n    FUN_001db270(puVar4,param_4,"_restgpr0_",0x1e,0x1f,FUN_001d8b90,FUN_001d8bb0);\n    FUN_001db270(puVar4,param_4,"_savegpr1_",0xe,0x1f,FUN_001d8c10,FUN_001d8c30);\n    FUN_001db270(puVar4,param_4,"_restgpr1_",0xe,0x1f,FUN_001d8c60,FUN_001d8c80);\n    FUN_001db270(puVar4,param_4,"_savefpr_",0xe,0x1f,FUN_001d8cb0,FUN_001d8cd0);\n    FUN_001db270(puVar4,param_4,"_restfpr_",0xe,0x1d,FUN_001d8d00,FUN_001d8d20);\n    FUN_001db270(puVar4,param_4,"_restfpr_",0x1e,0x1f,FUN_001d8d00,FUN_001d8d20);\n    FUN_001db270(puVar4,param_4,"._savef",0xe,0x1f,FUN_001d8cb0,FUN_001d8d80);\n    FUN_001db270(puVar4,param_4,"._restf",0xe,0x1f,FUN_001d8d00,FUN_001d8db0);\n    FUN_001db270(puVar4,param_4,"_savevr_",0x14,0x1f,FUN_001d8de0,FUN_001d8e10);\n    uVar9 = 0;\n    FUN_001db270(puVar4,param_4,"_restvr_",0x14,0x1f,FUN_001d8e40,FUN_001d8e70);\n    *(undefined8 **)(param_1 + 0x140) = puVar4;\n    FUN_003839a0(param_2,".text",1,6,puVar4,9,uVar9 & 0xffffffff00000000);\n    FUN_001de660(param_1 + 0x20,param_4,param_2);\n    in_stack_ffffffffffffff90 = 0x21fea3;\n    FUN_001e1ee0(param_1,param_2);\n    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;\n    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841) != '\0') &&\n       (lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28), lVar3 != 0)) {\n      lVar5 = *(long *)(lVar3 + 0x90);\n      lVar3 = *(long *)(lVar3 + 0x88);\n      if (0x3f < (ulong)(lVar5 - lVar3)) {\n        FUN_002297f0(&local_58,lVar3,lVar5);\n        if (local_48 == 0) {\n                    \n          FUN_001f7950(lVar3,lVar5);\n        }\n        else {\n                    \n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        FUN_0049e310(local_48,&DAT_0058ad47);\n      }\n    }\n  }" { (expression_statement "puVar4 = (undefined8 *)FUN_0049cb60(0x40);" (assignment_expression "puVar4 = (undefined8 *)FUN_0049cb60(0x40)" identifier = (cast_expression "(undefined8 *)FUN_0049cb60(0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0049cb60(0x40)" identifier (argument_list "(0x40)" ( number_literal ))))) ;) (expression_statement "puVar4[1] = 0;" (assignment_expression "puVar4[1] = 0" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;" (assignment_expression "*(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 4)" * (cast_expression "(byte *)(puVar4 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 4)" ( (binary_expression "puVar4 + 4" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar4 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 4)" * (cast_expression "(byte *)(puVar4 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 4)" ( (binary_expression "puVar4 + 4" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "puVar4[2] = 0;" (assignment_expression "puVar4[2] = 0" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[3] = 0xffffffffffffffff;" (assignment_expression "puVar4[3] = 0xffffffffffffffff" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[5] = 0;" (assignment_expression "puVar4[5] = 0" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[6] = 4;" (assignment_expression "puVar4[6] = 4" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar4 = &PTR_FUN_00664fb8;" (assignment_expression "*puVar4 = &PTR_FUN_00664fb8" (pointer_expression "*puVar4" * identifier) = (pointer_expression "&PTR_FUN_00664fb8" & identifier)) ;) (expression_statement "puVar4[7] = 0;" (assignment_expression "puVar4[7] = 0" (subscript_expression "puVar4[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_001db270(puVar4,param_4,&DAT_0054cfeb,0xe,0x1f,FUN_001d8b40,FUN_001d8b60);" (call_expression "FUN_001db270(puVar4,param_4,&DAT_0054cfeb,0xe,0x1f,FUN_001d8b40,FUN_001d8b60)" identifier (argument_list "(puVar4,param_4,&DAT_0054cfeb,0xe,0x1f,FUN_001d8b40,FUN_001d8b60)" ( identifier , identifier , (pointer_expression "&DAT_0054cfeb" & identifier) , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "FUN_001db270(puVar4,param_4,"_restgpr0_",0xe,0x1d,FUN_001d8b90,FUN_001d8bb0);" (call_expression "FUN_001db270(puVar4,param_4,"_restgpr0_",0xe,0x1d,FUN_001d8b90,FUN_001d8bb0)" identifier (argument_list "(puVar4,param_4,"_restgpr0_",0xe,0x1d,FUN_001d8b90,FUN_001d8bb0)" ( identifier , identifier , (string_literal ""_restgpr0_"" " string_content ") , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "FUN_001db270(puVar4,param_4,"_restgpr0_",0x1e,0x1f,FUN_001d8b90,FUN_001d8bb0);" (call_expression "FUN_001db270(puVar4,param_4,"_restgpr0_",0x1e,0x1f,FUN_001d8b90,FUN_001d8bb0)" identifier (argument_list "(puVar4,param_4,"_restgpr0_",0x1e,0x1f,FUN_001d8b90,FUN_001d8bb0)" ( identifier , identifier , (string_literal ""_restgpr0_"" " string_content ") , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "FUN_001db270(puVar4,param_4,"_savegpr1_",0xe,0x1f,FUN_001d8c10,FUN_001d8c30);" (call_expression "FUN_001db270(puVar4,param_4,"_savegpr1_",0xe,0x1f,FUN_001d8c10,FUN_001d8c30)" identifier (argument_list "(puVar4,param_4,"_savegpr1_",0xe,0x1f,FUN_001d8c10,FUN_001d8c30)" ( identifier , identifier , (string_literal ""_savegpr1_"" " string_content ") , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "FUN_001db270(puVar4,param_4,"_restgpr1_",0xe,0x1f,FUN_001d8c60,FUN_001d8c80);" (call_expression "FUN_001db270(puVar4,param_4,"_restgpr1_",0xe,0x1f,FUN_001d8c60,FUN_001d8c80)" identifier (argument_list "(puVar4,param_4,"_restgpr1_",0xe,0x1f,FUN_001d8c60,FUN_001d8c80)" ( identifier , identifier , (string_literal ""_restgpr1_"" " string_content ") , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "FUN_001db270(puVar4,param_4,"_savefpr_",0xe,0x1f,FUN_001d8cb0,FUN_001d8cd0);" (call_expression "FUN_001db270(puVar4,param_4,"_savefpr_",0xe,0x1f,FUN_001d8cb0,FUN_001d8cd0)" identifier (argument_list "(puVar4,param_4,"_savefpr_",0xe,0x1f,FUN_001d8cb0,FUN_001d8cd0)" ( identifier , identifier , (string_literal ""_savefpr_"" " string_content ") , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "FUN_001db270(puVar4,param_4,"_restfpr_",0xe,0x1d,FUN_001d8d00,FUN_001d8d20);" (call_expression "FUN_001db270(puVar4,param_4,"_restfpr_",0xe,0x1d,FUN_001d8d00,FUN_001d8d20)" identifier (argument_list "(puVar4,param_4,"_restfpr_",0xe,0x1d,FUN_001d8d00,FUN_001d8d20)" ( identifier , identifier , (string_literal ""_restfpr_"" " string_content ") , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "FUN_001db270(puVar4,param_4,"_restfpr_",0x1e,0x1f,FUN_001d8d00,FUN_001d8d20);" (call_expression "FUN_001db270(puVar4,param_4,"_restfpr_",0x1e,0x1f,FUN_001d8d00,FUN_001d8d20)" identifier (argument_list "(puVar4,param_4,"_restfpr_",0x1e,0x1f,FUN_001d8d00,FUN_001d8d20)" ( identifier , identifier , (string_literal ""_restfpr_"" " string_content ") , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "FUN_001db270(puVar4,param_4,"._savef",0xe,0x1f,FUN_001d8cb0,FUN_001d8d80);" (call_expression "FUN_001db270(puVar4,param_4,"._savef",0xe,0x1f,FUN_001d8cb0,FUN_001d8d80)" identifier (argument_list "(puVar4,param_4,"._savef",0xe,0x1f,FUN_001d8cb0,FUN_001d8d80)" ( identifier , identifier , (string_literal ""._savef"" " string_content ") , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "FUN_001db270(puVar4,param_4,"._restf",0xe,0x1f,FUN_001d8d00,FUN_001d8db0);" (call_expression "FUN_001db270(puVar4,param_4,"._restf",0xe,0x1f,FUN_001d8d00,FUN_001d8db0)" identifier (argument_list "(puVar4,param_4,"._restf",0xe,0x1f,FUN_001d8d00,FUN_001d8db0)" ( identifier , identifier , (string_literal ""._restf"" " string_content ") , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "FUN_001db270(puVar4,param_4,"_savevr_",0x14,0x1f,FUN_001d8de0,FUN_001d8e10);" (call_expression "FUN_001db270(puVar4,param_4,"_savevr_",0x14,0x1f,FUN_001d8de0,FUN_001d8e10)" identifier (argument_list "(puVar4,param_4,"_savevr_",0x14,0x1f,FUN_001d8de0,FUN_001d8e10)" ( identifier , identifier , (string_literal ""_savevr_"" " string_content ") , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "FUN_001db270(puVar4,param_4,"_restvr_",0x14,0x1f,FUN_001d8e40,FUN_001d8e70);" (call_expression "FUN_001db270(puVar4,param_4,"_restvr_",0x14,0x1f,FUN_001d8e40,FUN_001d8e70)" identifier (argument_list "(puVar4,param_4,"_restvr_",0x14,0x1f,FUN_001d8e40,FUN_001d8e70)" ( identifier , identifier , (string_literal ""_restvr_"" " string_content ") , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "*(undefined8 **)(param_1 + 0x140) = puVar4;" (assignment_expression "*(undefined8 **)(param_1 + 0x140) = puVar4" (pointer_expression "*(undefined8 **)(param_1 + 0x140)" * (cast_expression "(undefined8 **)(param_1 + 0x140)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_003839a0(param_2,".text",1,6,puVar4,9,uVar9 & 0xffffffff00000000);" (call_expression "FUN_003839a0(param_2,".text",1,6,puVar4,9,uVar9 & 0xffffffff00000000)" identifier (argument_list "(param_2,".text",1,6,puVar4,9,uVar9 & 0xffffffff00000000)" ( identifier , (string_literal "".text"" " string_content ") , number_literal , number_literal , identifier , number_literal , (binary_expression "uVar9 & 0xffffffff00000000" identifier & number_literal) ))) ;) (expression_statement "FUN_001de660(param_1 + 0x20,param_4,param_2);" (call_expression "FUN_001de660(param_1 + 0x20,param_4,param_2)" identifier (argument_list "(param_1 + 0x20,param_4,param_2)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "in_stack_ffffffffffffff90 = 0x21fea3;" (assignment_expression "in_stack_ffffffffffffff90 = 0x21fea3" identifier = number_literal) ;) (expression_statement "FUN_001e1ee0(param_1,param_2);" (call_expression "FUN_001e1ee0(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) (if_statement "if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;" if (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00220104;" goto statement_identifier ;)) (if_statement "if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841) != '\0') &&\n       (lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28), lVar3 != 0)) {\n      lVar5 = *(long *)(lVar3 + 0x90);\n      lVar3 = *(long *)(lVar3 + 0x88);\n      if (0x3f < (ulong)(lVar5 - lVar3)) {\n        FUN_002297f0(&local_58,lVar3,lVar5);\n        if (local_48 == 0) {\n                    \n          FUN_001f7950(lVar3,lVar5);\n        }\n        else {\n                    \n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        FUN_0049e310(local_48,&DAT_0058ad47);\n      }\n    }" if (parenthesized_expression "((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841) != '\0') &&\n       (lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28), lVar3 != 0))" ( (binary_expression "(*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841) != '\0') &&\n       (lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28), lVar3 != 0)" (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841) != '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841) != '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841)" * (cast_expression "(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28), lVar3 != 0)" ( (comma_expression "lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28), lVar3 != 0" (assignment_expression "lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28)" identifier = (pointer_expression "*(long *)(*(long *)(param_1 + 0x20) + 0x28)" * (cast_expression "(long *)(*(long *)(param_1 + 0x20) + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x20) + 0x28)" ( (binary_expression "*(long *)(param_1 + 0x20) + 0x28" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) + number_literal) ))))) , (binary_expression "lVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      lVar5 = *(long *)(lVar3 + 0x90);\n      lVar3 = *(long *)(lVar3 + 0x88);\n      if (0x3f < (ulong)(lVar5 - lVar3)) {\n        FUN_002297f0(&local_58,lVar3,lVar5);\n        if (local_48 == 0) {\n                    \n          FUN_001f7950(lVar3,lVar5);\n        }\n        else {\n                    \n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        FUN_0049e310(local_48,&DAT_0058ad47);\n      }\n    }" { (expression_statement "lVar5 = *(long *)(lVar3 + 0x90);" (assignment_expression "lVar5 = *(long *)(lVar3 + 0x90)" identifier = (pointer_expression "*(long *)(lVar3 + 0x90)" * (cast_expression "(long *)(lVar3 + 0x90)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x90)" ( (binary_expression "lVar3 + 0x90" identifier + number_literal) ))))) ;) (expression_statement "lVar3 = *(long *)(lVar3 + 0x88);" (assignment_expression "lVar3 = *(long *)(lVar3 + 0x88)" identifier = (pointer_expression "*(long *)(lVar3 + 0x88)" * (cast_expression "(long *)(lVar3 + 0x88)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x88)" ( (binary_expression "lVar3 + 0x88" identifier + number_literal) ))))) ;) (if_statement "if (0x3f < (ulong)(lVar5 - lVar3)) {\n        FUN_002297f0(&local_58,lVar3,lVar5);\n        if (local_48 == 0) {\n                    \n          FUN_001f7950(lVar3,lVar5);\n        }\n        else {\n                    \n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        FUN_0049e310(local_48,&DAT_0058ad47);\n      }" if (parenthesized_expression "(0x3f < (ulong)(lVar5 - lVar3))" ( (binary_expression "0x3f < (ulong)(lVar5 - lVar3)" number_literal < (call_expression "(ulong)(lVar5 - lVar3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(lVar5 - lVar3)" ( (binary_expression "lVar5 - lVar3" identifier - identifier) )))) )) (compound_statement "{\n        FUN_002297f0(&local_58,lVar3,lVar5);\n        if (local_48 == 0) {\n                    \n          FUN_001f7950(lVar3,lVar5);\n        }\n        else {\n                    \n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        FUN_0049e310(local_48,&DAT_0058ad47);\n      }" { (expression_statement "FUN_002297f0(&local_58,lVar3,lVar5);" (call_expression "FUN_002297f0(&local_58,lVar3,lVar5)" identifier (argument_list "(&local_58,lVar3,lVar5)" ( (pointer_expression "&local_58" & identifier) , identifier , identifier ))) ;) (if_statement "if (local_48 == 0) {\n                    \n          FUN_001f7950(lVar3,lVar5);\n        }\n        else {\n                    \n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }" if (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n          FUN_001f7950(lVar3,lVar5);\n        }" { (expression_statement "FUN_001f7950(lVar3,lVar5);" (call_expression "FUN_001f7950(lVar3,lVar5)" identifier (argument_list "(lVar3,lVar5)" ( identifier , identifier ))) ;) }) (else_clause "else {\n                    \n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }" else (compound_statement "{\n                    \n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }" { (expression_statement "FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);" (call_expression "FUN_001f80c0(lVar3,lVar5,local_48,uStack_50)" identifier (argument_list "(lVar3,lVar5,local_48,uStack_50)" ( identifier , identifier , identifier , identifier ))) ;) }))) (expression_statement "in_stack_ffffffffffffff90 = 0x21ff32;" (assignment_expression "in_stack_ffffffffffffff90 = 0x21ff32" identifier = number_literal) ;) (expression_statement "FUN_0049e310(local_48,&DAT_0058ad47);" (call_expression "FUN_0049e310(local_48,&DAT_0058ad47)" identifier (argument_list "(local_48,&DAT_0058ad47)" ( identifier , (pointer_expression "&DAT_0058ad47" & identifier) ))) ;) })) })) })) (expression_statement "lVar3 = *(long *)(param_2 + 0x300);" (assignment_expression "lVar3 = *(long *)(param_2 + 0x300)" identifier = (pointer_expression "*(long *)(param_2 + 0x300)" * (cast_expression "(long *)(param_2 + 0x300)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x300)" ( (binary_expression "param_2 + 0x300" identifier + number_literal) ))))) ;) (if_statement "if (lVar3 != 0) {\n    uVar2 = 0;\n    lVar5 = *(long *)(param_1 + 0x28);\n    if (lVar5 != 0) {\n      uVar2 = *(undefined8 *)(lVar5 + 0x38);\n    }\n    uVar13 = 0;\n    FUN_0037e220(param_2,0,lVar5,uVar2,*(undefined8 *)(param_1 + 0x50),1);\n    plVar10 = *(long **)(param_1 + 0x48);\n    if (plVar10 != (long *)0x0) {\n      if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n        (**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13);\n        if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n                    \n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        plVar10 = *(long **)(param_1 + 0x48);\n      }\n      puVar4 = *(undefined8 **)(lVar3 + 0x40);\n      local_48 = CONCAT44((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000);\n      local_58 = plVar10;\n      if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n        FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n      }\n      else {\n        *puVar4 = plVar10;\n        puVar4[1] = uStack_50;\n        puVar4[2] = local_48;\n        *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n      }\n    }\n    if (*(char *)(param_1 + 0x133) == '\0') {\n      uVar8 = 0;\n      if (*(byte *)(param_1 + 0x134) == 0) goto LAB_0021f9ad;\n    }\n    else {\n      uVar8 = 4;\n    }\n    local_48 = -0x8ffffffd;\n    puVar4 = *(undefined8 **)(lVar3 + 0x40);\n    local_58 = (long *)CONCAT44(local_58._4_4_,*(byte *)(param_1 + 0x134) | uVar8);\n    if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n      FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n    }\n    else {\n      *puVar4 = local_58;\n      puVar4[1] = uStack_50;\n      puVar4[2] = 0xffffffff70000003;\n      *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n    }\n  }" if (parenthesized_expression "(lVar3 != 0)" ( (binary_expression "lVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar2 = 0;\n    lVar5 = *(long *)(param_1 + 0x28);\n    if (lVar5 != 0) {\n      uVar2 = *(undefined8 *)(lVar5 + 0x38);\n    }\n    uVar13 = 0;\n    FUN_0037e220(param_2,0,lVar5,uVar2,*(undefined8 *)(param_1 + 0x50),1);\n    plVar10 = *(long **)(param_1 + 0x48);\n    if (plVar10 != (long *)0x0) {\n      if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n        (**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13);\n        if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n                    \n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        plVar10 = *(long **)(param_1 + 0x48);\n      }\n      puVar4 = *(undefined8 **)(lVar3 + 0x40);\n      local_48 = CONCAT44((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000);\n      local_58 = plVar10;\n      if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n        FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n      }\n      else {\n        *puVar4 = plVar10;\n        puVar4[1] = uStack_50;\n        puVar4[2] = local_48;\n        *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n      }\n    }\n    if (*(char *)(param_1 + 0x133) == '\0') {\n      uVar8 = 0;\n      if (*(byte *)(param_1 + 0x134) == 0) goto LAB_0021f9ad;\n    }\n    else {\n      uVar8 = 4;\n    }\n    local_48 = -0x8ffffffd;\n    puVar4 = *(undefined8 **)(lVar3 + 0x40);\n    local_58 = (long *)CONCAT44(local_58._4_4_,*(byte *)(param_1 + 0x134) | uVar8);\n    if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n      FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n    }\n    else {\n      *puVar4 = local_58;\n      puVar4[1] = uStack_50;\n      puVar4[2] = 0xffffffff70000003;\n      *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n    }\n  }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "lVar5 = *(long *)(param_1 + 0x28);" (assignment_expression "lVar5 = *(long *)(param_1 + 0x28)" identifier = (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (lVar5 != 0) {\n      uVar2 = *(undefined8 *)(lVar5 + 0x38);\n    }" if (parenthesized_expression "(lVar5 != 0)" ( (binary_expression "lVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar2 = *(undefined8 *)(lVar5 + 0x38);\n    }" { (expression_statement "uVar2 = *(undefined8 *)(lVar5 + 0x38);" (assignment_expression "uVar2 = *(undefined8 *)(lVar5 + 0x38)" identifier = (pointer_expression "*(undefined8 *)(lVar5 + 0x38)" * (cast_expression "(undefined8 *)(lVar5 + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x38)" ( (binary_expression "lVar5 + 0x38" identifier + number_literal) ))))) ;) })) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (expression_statement "FUN_0037e220(param_2,0,lVar5,uVar2,*(undefined8 *)(param_1 + 0x50),1);" (call_expression "FUN_0037e220(param_2,0,lVar5,uVar2,*(undefined8 *)(param_1 + 0x50),1)" identifier (argument_list "(param_2,0,lVar5,uVar2,*(undefined8 *)(param_1 + 0x50),1)" ( identifier , number_literal , identifier , identifier , (pointer_expression "*(undefined8 *)(param_1 + 0x50)" * (cast_expression "(undefined8 *)(param_1 + 0x50)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) , number_literal ))) ;) (expression_statement "plVar10 = *(long **)(param_1 + 0x48);" (assignment_expression "plVar10 = *(long **)(param_1 + 0x48)" identifier = (pointer_expression "*(long **)(param_1 + 0x48)" * (cast_expression "(long **)(param_1 + 0x48)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;) (if_statement "if (plVar10 != (long *)0x0) {\n      if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n        (**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13);\n        if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n                    \n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        plVar10 = *(long **)(param_1 + 0x48);\n      }\n      puVar4 = *(undefined8 **)(lVar3 + 0x40);\n      local_48 = CONCAT44((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000);\n      local_58 = plVar10;\n      if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n        FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n      }\n      else {\n        *puVar4 = plVar10;\n        puVar4[1] = uStack_50;\n        puVar4[2] = local_48;\n        *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n      }\n    }" if (parenthesized_expression "(plVar10 != (long *)0x0)" ( (binary_expression "plVar10 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n        (**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13);\n        if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n                    \n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        plVar10 = *(long **)(param_1 + 0x48);\n      }\n      puVar4 = *(undefined8 **)(lVar3 + 0x40);\n      local_48 = CONCAT44((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000);\n      local_58 = plVar10;\n      if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n        FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n      }\n      else {\n        *puVar4 = plVar10;\n        puVar4[1] = uStack_50;\n        puVar4[2] = local_48;\n        *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n      }\n    }" { (if_statement "if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n        (**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13);\n        if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n                    \n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        plVar10 = *(long **)(param_1 + 0x48);\n      }" if (parenthesized_expression "((*(byte *)(plVar10 + 4) & 2) == 0)" ( (binary_expression "(*(byte *)(plVar10 + 4) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar10 + 4) & 2)" ( (binary_expression "*(byte *)(plVar10 + 4) & 2" (pointer_expression "*(byte *)(plVar10 + 4)" * (cast_expression "(byte *)(plVar10 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar10 + 4)" ( (binary_expression "plVar10 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        (**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13);\n        if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n                    \n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        plVar10 = *(long **)(param_1 + 0x48);\n      }" { (expression_statement "(**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13);" (call_expression "(**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13)" (parenthesized_expression "(**(code **)(*plVar10 + 0x70))" ( (pointer_expression "**(code **)(*plVar10 + 0x70)" * (pointer_expression "*(code **)(*plVar10 + 0x70)" * (cast_expression "(code **)(*plVar10 + 0x70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar10 + 0x70)" ( (binary_expression "*plVar10 + 0x70" (pointer_expression "*plVar10" * identifier) + number_literal) ))))) )) (argument_list "(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n                    \n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }" if (parenthesized_expression "((*(byte *)(plVar10 + 4) & 2) == 0)" ( (binary_expression "(*(byte *)(plVar10 + 4) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar10 + 4) & 2)" ( (binary_expression "*(byte *)(plVar10 + 4) & 2" (pointer_expression "*(byte *)(plVar10 + 4)" * (cast_expression "(byte *)(plVar10 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar10 + 4)" ( (binary_expression "plVar10 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    \n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }" { (expression_statement "FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");" (call_expression "FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size")" identifier (argument_list "("../../gold/output.h",0x163,"finalize_data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""finalize_data_size"" " string_content ") ))) ;) })) (expression_statement "plVar10 = *(long **)(param_1 + 0x48);" (assignment_expression "plVar10 = *(long **)(param_1 + 0x48)" identifier = (pointer_expression "*(long **)(param_1 + 0x48)" * (cast_expression "(long **)(param_1 + 0x48)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;) })) (expression_statement "puVar4 = *(undefined8 **)(lVar3 + 0x40);" (assignment_expression "puVar4 = *(undefined8 **)(lVar3 + 0x40)" identifier = (pointer_expression "*(undefined8 **)(lVar3 + 0x40)" * (cast_expression "(undefined8 **)(lVar3 + 0x40)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 0x40)" ( (binary_expression "lVar3 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "local_48 = CONCAT44((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000);" (assignment_expression "local_48 = CONCAT44((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000)" identifier = (call_expression "CONCAT44((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000)" identifier (argument_list "((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000)" ( (binary_expression "(-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20" (parenthesized_expression "(-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4)" ( (binary_expression "-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4" (unary_expression "-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0)" - (call_expression "(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((*(uint *)(plVar10[7] + 0x10) & 2) == 0)" ( (binary_expression "(*(uint *)(plVar10[7] + 0x10) & 2) == 0" (parenthesized_expression "(*(uint *)(plVar10[7] + 0x10) & 2)" ( (binary_expression "*(uint *)(plVar10[7] + 0x10) & 2" (pointer_expression "*(uint *)(plVar10[7] + 0x10)" * (cast_expression "(uint *)(plVar10[7] + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar10[7] + 0x10)" ( (binary_expression "plVar10[7] + 0x10" (subscript_expression "plVar10[7]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal) , number_literal )))) ;) (expression_statement "local_58 = plVar10;" (assignment_expression "local_58 = plVar10" identifier = identifier) ;) (if_statement "if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n        FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n      }\n      else {\n        *puVar4 = plVar10;\n        puVar4[1] = uStack_50;\n        puVar4[2] = local_48;\n        *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n      }" if (parenthesized_expression "(puVar4 == *(undefined8 **)(lVar3 + 0x48))" ( (binary_expression "puVar4 == *(undefined8 **)(lVar3 + 0x48)" identifier == (pointer_expression "*(undefined8 **)(lVar3 + 0x48)" * (cast_expression "(undefined8 **)(lVar3 + 0x48)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 0x48)" ( (binary_expression "lVar3 + 0x48" identifier + number_literal) ))))) )) (compound_statement "{\n        FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n      }" { (expression_statement "FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);" (call_expression "FUN_001c1130(lVar3 + 0x38,puVar4,&local_58)" identifier (argument_list "(lVar3 + 0x38,puVar4,&local_58)" ( (binary_expression "lVar3 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&local_58" & identifier) ))) ;) }) (else_clause "else {\n        *puVar4 = plVar10;\n        puVar4[1] = uStack_50;\n        puVar4[2] = local_48;\n        *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n      }" else (compound_statement "{\n        *puVar4 = plVar10;\n        puVar4[1] = uStack_50;\n        puVar4[2] = local_48;\n        *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n      }" { (expression_statement "*puVar4 = plVar10;" (assignment_expression "*puVar4 = plVar10" (pointer_expression "*puVar4" * identifier) = identifier) ;) (expression_statement "puVar4[1] = uStack_50;" (assignment_expression "puVar4[1] = uStack_50" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = local_48;" (assignment_expression "puVar4[2] = local_48" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;" (assignment_expression "*(undefined8 **)(lVar3 + 0x40) = puVar4 + 3" (pointer_expression "*(undefined8 **)(lVar3 + 0x40)" * (cast_expression "(undefined8 **)(lVar3 + 0x40)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 0x40)" ( (binary_expression "lVar3 + 0x40" identifier + number_literal) )))) = (binary_expression "puVar4 + 3" identifier + number_literal)) ;) }))) })) (if_statement "if (*(char *)(param_1 + 0x133) == '\0') {\n      uVar8 = 0;\n      if (*(byte *)(param_1 + 0x134) == 0) goto LAB_0021f9ad;\n    }\n    else {\n      uVar8 = 4;\n    }" if (parenthesized_expression "(*(char *)(param_1 + 0x133) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x133) == '\0'" (pointer_expression "*(char *)(param_1 + 0x133)" * (cast_expression "(char *)(param_1 + 0x133)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x133)" ( (binary_expression "param_1 + 0x133" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar8 = 0;\n      if (*(byte *)(param_1 + 0x134) == 0) goto LAB_0021f9ad;\n    }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (if_statement "if (*(byte *)(param_1 + 0x134) == 0) goto LAB_0021f9ad;" if (parenthesized_expression "(*(byte *)(param_1 + 0x134) == 0)" ( (binary_expression "*(byte *)(param_1 + 0x134) == 0" (pointer_expression "*(byte *)(param_1 + 0x134)" * (cast_expression "(byte *)(param_1 + 0x134)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x134)" ( (binary_expression "param_1 + 0x134" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0021f9ad;" goto statement_identifier ;)) }) (else_clause "else {\n      uVar8 = 4;\n    }" else (compound_statement "{\n      uVar8 = 4;\n    }" { (expression_statement "uVar8 = 4;" (assignment_expression "uVar8 = 4" identifier = number_literal) ;) }))) (expression_statement "local_48 = -0x8ffffffd;" (assignment_expression "local_48 = -0x8ffffffd" identifier = number_literal) ;) (expression_statement "puVar4 = *(undefined8 **)(lVar3 + 0x40);" (assignment_expression "puVar4 = *(undefined8 **)(lVar3 + 0x40)" identifier = (pointer_expression "*(undefined8 **)(lVar3 + 0x40)" * (cast_expression "(undefined8 **)(lVar3 + 0x40)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 0x40)" ( (binary_expression "lVar3 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "local_58 = (long *)CONCAT44(local_58._4_4_,*(byte *)(param_1 + 0x134) | uVar8);" (assignment_expression "local_58 = (long *)CONCAT44(local_58._4_4_,*(byte *)(param_1 + 0x134) | uVar8)" identifier = (cast_expression "(long *)CONCAT44(local_58._4_4_,*(byte *)(param_1 + 0x134) | uVar8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT44(local_58._4_4_,*(byte *)(param_1 + 0x134) | uVar8)" identifier (argument_list "(local_58._4_4_,*(byte *)(param_1 + 0x134) | uVar8)" ( (field_expression "local_58._4_4_" identifier . field_identifier) , (binary_expression "*(byte *)(param_1 + 0x134) | uVar8" (pointer_expression "*(byte *)(param_1 + 0x134)" * (cast_expression "(byte *)(param_1 + 0x134)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x134)" ( (binary_expression "param_1 + 0x134" identifier + number_literal) )))) | identifier) ))))) ;) (if_statement "if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n      FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n    }\n    else {\n      *puVar4 = local_58;\n      puVar4[1] = uStack_50;\n      puVar4[2] = 0xffffffff70000003;\n      *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n    }" if (parenthesized_expression "(puVar4 == *(undefined8 **)(lVar3 + 0x48))" ( (binary_expression "puVar4 == *(undefined8 **)(lVar3 + 0x48)" identifier == (pointer_expression "*(undefined8 **)(lVar3 + 0x48)" * (cast_expression "(undefined8 **)(lVar3 + 0x48)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 0x48)" ( (binary_expression "lVar3 + 0x48" identifier + number_literal) ))))) )) (compound_statement "{\n      FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n    }" { (expression_statement "FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);" (call_expression "FUN_001c1130(lVar3 + 0x38,puVar4,&local_58)" identifier (argument_list "(lVar3 + 0x38,puVar4,&local_58)" ( (binary_expression "lVar3 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&local_58" & identifier) ))) ;) }) (else_clause "else {\n      *puVar4 = local_58;\n      puVar4[1] = uStack_50;\n      puVar4[2] = 0xffffffff70000003;\n      *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n    }" else (compound_statement "{\n      *puVar4 = local_58;\n      puVar4[1] = uStack_50;\n      puVar4[2] = 0xffffffff70000003;\n      *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n    }" { (expression_statement "*puVar4 = local_58;" (assignment_expression "*puVar4 = local_58" (pointer_expression "*puVar4" * identifier) = identifier) ;) (expression_statement "puVar4[1] = uStack_50;" (assignment_expression "puVar4[1] = uStack_50" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = 0xffffffff70000003;" (assignment_expression "puVar4[2] = 0xffffffff70000003" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;" (assignment_expression "*(undefined8 **)(lVar3 + 0x40) = puVar4 + 3" (pointer_expression "*(undefined8 **)(lVar3 + 0x40)" * (cast_expression "(undefined8 **)(lVar3 + 0x40)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 0x40)" ( (binary_expression "lVar3 + 0x40" identifier + number_literal) )))) = (binary_expression "puVar4 + 3" identifier + number_literal)) ;) }))) })) (labeled_statement "LAB_0021f9ad:\n  if (*(long *)(param_1 + 0x60) != *(long *)(param_1 + 0x58)) {\n    uVar2 = FUN_001e1980(param_1 + 0x50,param_2);\n    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\nLAB_00220104:\n                    \n      FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n    }\n    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0') &&\n       (plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60))) {\n      do {\n        if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }\n        plVar10 = plVar10 + 7;\n      } while (*(long **)(param_1 + 0x60) != plVar10);\n    }\n    FUN_0033bfa0(param_1 + 0x58,uVar2);\n  }" statement_identifier : (if_statement "if (*(long *)(param_1 + 0x60) != *(long *)(param_1 + 0x58)) {\n    uVar2 = FUN_001e1980(param_1 + 0x50,param_2);\n    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\nLAB_00220104:\n                    \n      FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n    }\n    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0') &&\n       (plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60))) {\n      do {\n        if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }\n        plVar10 = plVar10 + 7;\n      } while (*(long **)(param_1 + 0x60) != plVar10);\n    }\n    FUN_0033bfa0(param_1 + 0x58,uVar2);\n  }" if (parenthesized_expression "(*(long *)(param_1 + 0x60) != *(long *)(param_1 + 0x58))" ( (binary_expression "*(long *)(param_1 + 0x60) != *(long *)(param_1 + 0x58)" (pointer_expression "*(long *)(param_1 + 0x60)" * (cast_expression "(long *)(param_1 + 0x60)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) )))) != (pointer_expression "*(long *)(param_1 + 0x58)" * (cast_expression "(long *)(param_1 + 0x58)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar2 = FUN_001e1980(param_1 + 0x50,param_2);\n    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\nLAB_00220104:\n                    \n      FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n    }\n    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0') &&\n       (plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60))) {\n      do {\n        if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }\n        plVar10 = plVar10 + 7;\n      } while (*(long **)(param_1 + 0x60) != plVar10);\n    }\n    FUN_0033bfa0(param_1 + 0x58,uVar2);\n  }" { (expression_statement "uVar2 = FUN_001e1980(param_1 + 0x50,param_2);" (assignment_expression "uVar2 = FUN_001e1980(param_1 + 0x50,param_2)" identifier = (call_expression "FUN_001e1980(param_1 + 0x50,param_2)" identifier (argument_list "(param_1 + 0x50,param_2)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) , identifier )))) ;) (if_statement "if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\nLAB_00220104:\n                    \n      FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n    }" if (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_00220104:\n                    \n      FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n    }" { (labeled_statement "LAB_00220104:\n                    \n      FUN_00352af0("../../gold/parameters.h",0x5c,"options");" statement_identifier : (expression_statement "FUN_00352af0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00352af0("../../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 *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0') &&\n       (plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60))) {\n      do {\n        if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }\n        plVar10 = plVar10 + 7;\n      } while (*(long **)(param_1 + 0x60) != plVar10);\n    }" if (parenthesized_expression "((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0') &&\n       (plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60)))" ( (binary_expression "(*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0') &&\n       (plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60))" (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779)" * (cast_expression "(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60))" ( (comma_expression "plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60)" (assignment_expression "plVar10 = *(long **)(param_1 + 0x58)" identifier = (pointer_expression "*(long **)(param_1 + 0x58)" * (cast_expression "(long **)(param_1 + 0x58)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) ))))) , (binary_expression "plVar10 != *(long **)(param_1 + 0x60)" identifier != (pointer_expression "*(long **)(param_1 + 0x60)" * (cast_expression "(long **)(param_1 + 0x60)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) )))))) ))) )) (compound_statement "{\n      do {\n        if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }\n        plVar10 = plVar10 + 7;\n      } while (*(long **)(param_1 + 0x60) != plVar10);\n    }" { (do_statement "do {\n        if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }\n        plVar10 = plVar10 + 7;\n      } while (*(long **)(param_1 + 0x60) != plVar10);" do (compound_statement "{\n        if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }\n        plVar10 = plVar10 + 7;\n      }" { (if_statement "if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }" if (parenthesized_expression "(((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c)))))" ( (binary_expression "((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))" (parenthesized_expression "((*(byte *)(*plVar10 + 0x3a) & 7) == 0)" ( (binary_expression "(*(byte *)(*plVar10 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)(*plVar10 + 0x3a) & 7)" ( (binary_expression "*(byte *)(*plVar10 + 0x3a) & 7" (pointer_expression "*(byte *)(*plVar10 + 0x3a)" * (cast_expression "(byte *)(*plVar10 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar10 + 0x3a)" ( (binary_expression "*plVar10 + 0x3a" (pointer_expression "*plVar10" * identifier) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))" ( (parenthesized_expression "((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c)))" ( (binary_expression "(*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))" (binary_expression "(*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0" (parenthesized_expression "(*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1)" ( (binary_expression "*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1" (pointer_expression "*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c)" * (cast_expression "(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(*plVar10 + 0x10) + 0x3c)" ( (binary_expression "*(long *)(*plVar10 + 0x10) + 0x3c" (pointer_expression "*(long *)(*plVar10 + 0x10)" * (cast_expression "(long *)(*plVar10 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar10 + 0x10)" ( (binary_expression "*plVar10 + 0x10" (pointer_expression "*plVar10" * identifier) + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) && (parenthesized_expression "(lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))" ( (comma_expression "lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c)" (assignment_expression "lVar3 = plVar10[2]" identifier = (subscript_expression "plVar10[2]" identifier [ number_literal ])) , (binary_expression "(int)plVar10[3] == *(int *)(lVar3 + 0x22c)" (cast_expression "(int)plVar10[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar10[3]" identifier [ number_literal ])) == (pointer_expression "*(int *)(lVar3 + 0x22c)" * (cast_expression "(int *)(lVar3 + 0x22c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x22c)" ( (binary_expression "lVar3 + 0x22c" identifier + number_literal) )))))) ))) )) ))) )) (compound_statement "{\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }" { (expression_statement "lVar5 = *(long *)(lVar3 + 0x248);" (assignment_expression "lVar5 = *(long *)(lVar3 + 0x248)" identifier = (pointer_expression "*(long *)(lVar3 + 0x248)" * (cast_expression "(long *)(lVar3 + 0x248)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x248)" ( (binary_expression "lVar3 + 0x248" identifier + number_literal) ))))) ;) (expression_statement "lVar11 = *(long *)(lVar3 + 0x238);" (assignment_expression "lVar11 = *(long *)(lVar3 + 0x238)" identifier = (pointer_expression "*(long *)(lVar3 + 0x238)" * (cast_expression "(long *)(lVar3 + 0x238)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x238)" ( (binary_expression "lVar3 + 0x238" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = plVar10[5];" (assignment_expression "uVar9 = plVar10[5]" identifier = (subscript_expression "plVar10[5]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = (ulong)*(uint *)(lVar3 + 0x250);" (assignment_expression "uVar12 = (ulong)*(uint *)(lVar3 + 0x250)" identifier = (binary_expression "(ulong)*(uint *)(lVar3 + 0x250)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(lVar3 + 0x250)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x250)" ( (binary_expression "lVar3 + 0x250" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = (ulong)*(uint *)(lVar3 + 0x240);" (assignment_expression "uVar6 = (ulong)*(uint *)(lVar3 + 0x240)" identifier = (binary_expression "(ulong)*(uint *)(lVar3 + 0x240)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(lVar3 + 0x240)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x240)" ( (binary_expression "lVar3 + 0x240" identifier + number_literal) ))))) ;) (if_statement "if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }" if (parenthesized_expression "((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240)))" ( (binary_expression "(lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))" (parenthesized_expression "(lVar5 == lVar11)" ( (binary_expression "lVar5 == lVar11" identifier == identifier) )) && (parenthesized_expression "(*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))" ( (binary_expression "*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240)" (pointer_expression "*(uint *)(lVar3 + 0x250)" * (cast_expression "(uint *)(lVar3 + 0x250)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x250)" ( (binary_expression "lVar3 + 0x250" identifier + number_literal) )))) == (pointer_expression "*(uint *)(lVar3 + 0x240)" * (cast_expression "(uint *)(lVar3 + 0x240)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x240)" ( (binary_expression "lVar3 + 0x240" identifier + number_literal) ))))) ))) )) (compound_statement "{\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }" { (expression_statement "uVar6 = FUN_0022d9f0(lVar3 + 0xf8);" (assignment_expression "uVar6 = FUN_0022d9f0(lVar3 + 0xf8)" identifier = (call_expression "FUN_0022d9f0(lVar3 + 0xf8)" identifier (argument_list "(lVar3 + 0xf8)" ( (binary_expression "lVar3 + 0xf8" identifier + number_literal) )))) ;) (expression_statement "FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);" (call_expression "FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0)" identifier (argument_list "(lVar3 + 0x238,uVar6 >> 3,0)" ( (binary_expression "lVar3 + 0x238" identifier + number_literal) , (binary_expression "uVar6 >> 3" identifier >> number_literal) , number_literal ))) ;) (expression_statement "uVar6 = (ulong)*(uint *)(lVar3 + 0x240);" (assignment_expression "uVar6 = (ulong)*(uint *)(lVar3 + 0x240)" identifier = (binary_expression "(ulong)*(uint *)(lVar3 + 0x240)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(lVar3 + 0x240)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x240)" ( (binary_expression "lVar3 + 0x240" identifier + number_literal) ))))) ;) (expression_statement "lVar11 = *(long *)(lVar3 + 0x238);" (assignment_expression "lVar11 = *(long *)(lVar3 + 0x238)" identifier = (pointer_expression "*(long *)(lVar3 + 0x238)" * (cast_expression "(long *)(lVar3 + 0x238)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x238)" ( (binary_expression "lVar3 + 0x238" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = (ulong)*(uint *)(lVar3 + 0x250);" (assignment_expression "uVar12 = (ulong)*(uint *)(lVar3 + 0x250)" identifier = (binary_expression "(ulong)*(uint *)(lVar3 + 0x250)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(lVar3 + 0x250)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x250)" ( (binary_expression "lVar3 + 0x250" identifier + number_literal) ))))) ;) (expression_statement "lVar5 = *(long *)(lVar3 + 0x248);" (assignment_expression "lVar5 = *(long *)(lVar3 + 0x248)" identifier = (pointer_expression "*(long *)(lVar3 + 0x248)" * (cast_expression "(long *)(lVar3 + 0x248)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x248)" ( (binary_expression "lVar3 + 0x248" identifier + number_literal) ))))) ;) })) (expression_statement "uVar7 = uVar9 >> 3;" (assignment_expression "uVar7 = uVar9 >> 3" identifier = (binary_expression "uVar9 >> 3" identifier >> number_literal)) ;) (if_statement "if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }" if (parenthesized_expression "(uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6)" ( (binary_expression "uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6" identifier < (binary_expression "(uVar12 + (lVar5 - lVar11) * 8) - uVar6" (parenthesized_expression "(uVar12 + (lVar5 - lVar11) * 8)" ( (binary_expression "uVar12 + (lVar5 - lVar11) * 8" identifier + (binary_expression "(lVar5 - lVar11) * 8" (parenthesized_expression "(lVar5 - lVar11)" ( (binary_expression "lVar5 - lVar11" identifier - identifier) )) * number_literal)) )) - identifier)) )) (compound_statement "{\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }" { (expression_statement "puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);" (assignment_expression "puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8)" identifier = (cast_expression "(ulong *)(lVar11 + (uVar9 >> 9) * 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + (uVar9 >> 9) * 8)" ( (binary_expression "lVar11 + (uVar9 >> 9) * 8" identifier + (binary_expression "(uVar9 >> 9) * 8" (parenthesized_expression "(uVar9 >> 9)" ( (binary_expression "uVar9 >> 9" identifier >> number_literal) )) * number_literal)) )))) ;) (expression_statement "*puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);" (assignment_expression "*puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f)" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 1L << ((byte)uVar7 & 0x3f)" (pointer_expression "*puVar1" * identifier) | (binary_expression "1L << ((byte)uVar7 & 0x3f)" number_literal << (parenthesized_expression "((byte)uVar7 & 0x3f)" ( (binary_expression "(byte)uVar7 & 0x3f" (cast_expression "(byte)uVar7" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))))) ;) })) })) (expression_statement "plVar10 = plVar10 + 7;" (assignment_expression "plVar10 = plVar10 + 7" identifier = (binary_expression "plVar10 + 7" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(long **)(param_1 + 0x60) != plVar10)" ( (binary_expression "*(long **)(param_1 + 0x60) != plVar10" (pointer_expression "*(long **)(param_1 + 0x60)" * (cast_expression "(long **)(param_1 + 0x60)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) )))) != identifier) )) ;) })) (expression_statement "FUN_0033bfa0(param_1 + 0x58,uVar2);" (call_expression "FUN_0033bfa0(param_1 + 0x58,uVar2)" identifier (argument_list "(param_1 + 0x58,uVar2)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) , identifier ))) ;) }))) (expression_statement "plVar10 = (long *)*param_3;" (assignment_expression "plVar10 = (long *)*param_3" identifier = (cast_expression "(long *)*param_3" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) (if_statement "if (plVar10 != (long *)param_3[1]) {\n    do {\n      if (*(long *)(*plVar10 + 0x308) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[1] != plVar10);\n  }" if (parenthesized_expression "(plVar10 != (long *)param_3[1])" ( (binary_expression "plVar10 != (long *)param_3[1]" identifier != (cast_expression "(long *)param_3[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) )) (compound_statement "{\n    do {\n      if (*(long *)(*plVar10 + 0x308) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[1] != plVar10);\n  }" { (do_statement "do {\n      if (*(long *)(*plVar10 + 0x308) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[1] != plVar10);" do (compound_statement "{\n      if (*(long *)(*plVar10 + 0x308) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    }" { (if_statement "if (*(long *)(*plVar10 + 0x308) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }" if (parenthesized_expression "(*(long *)(*plVar10 + 0x308) != 0)" ( (binary_expression "*(long *)(*plVar10 + 0x308) != 0" (pointer_expression "*(long *)(*plVar10 + 0x308)" * (cast_expression "(long *)(*plVar10 + 0x308)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar10 + 0x308)" ( (binary_expression "*plVar10 + 0x308" (pointer_expression "*plVar10" * identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }" { (expression_statement "FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));" (call_expression "FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8))" identifier (argument_list "(param_1,*(undefined8 *)(*plVar10 + 8))" ( identifier , (pointer_expression "*(undefined8 *)(*plVar10 + 8)" * (cast_expression "(undefined8 *)(*plVar10 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar10 + 8)" ( (binary_expression "*plVar10 + 8" (pointer_expression "*plVar10" * identifier) + number_literal) )))) ))) ;) })) (expression_statement "plVar10 = plVar10 + 1;" (assignment_expression "plVar10 = plVar10 + 1" identifier = (binary_expression "plVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((long *)param_3[1] != plVar10)" ( (binary_expression "(long *)param_3[1] != plVar10" (cast_expression "(long *)param_3[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) != identifier) )) ;) })) (expression_statement "plVar10 = (long *)param_3[3];" (assignment_expression "plVar10 = (long *)param_3[3]" identifier = (cast_expression "(long *)param_3[3]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) ;) (if_statement "if (plVar10 != (long *)param_3[4]) {\n    do {\n      if (*(long *)(*plVar10 + 0xf8) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[4] != plVar10);\n  }" if (parenthesized_expression "(plVar10 != (long *)param_3[4])" ( (binary_expression "plVar10 != (long *)param_3[4]" identifier != (cast_expression "(long *)param_3[4]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[4]" identifier [ number_literal ]))) )) (compound_statement "{\n    do {\n      if (*(long *)(*plVar10 + 0xf8) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[4] != plVar10);\n  }" { (do_statement "do {\n      if (*(long *)(*plVar10 + 0xf8) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[4] != plVar10);" do (compound_statement "{\n      if (*(long *)(*plVar10 + 0xf8) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    }" { (if_statement "if (*(long *)(*plVar10 + 0xf8) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }" if (parenthesized_expression "(*(long *)(*plVar10 + 0xf8) != 0)" ( (binary_expression "*(long *)(*plVar10 + 0xf8) != 0" (pointer_expression "*(long *)(*plVar10 + 0xf8)" * (cast_expression "(long *)(*plVar10 + 0xf8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar10 + 0xf8)" ( (binary_expression "*plVar10 + 0xf8" (pointer_expression "*plVar10" * identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }" { (expression_statement "FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));" (call_expression "FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8))" identifier (argument_list "(param_1,*(undefined8 *)(*plVar10 + 8))" ( identifier , (pointer_expression "*(undefined8 *)(*plVar10 + 8)" * (cast_expression "(undefined8 *)(*plVar10 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar10 + 8)" ( (binary_expression "*plVar10 + 8" (pointer_expression "*plVar10" * identifier) + number_literal) )))) ))) ;) })) (expression_statement "plVar10 = plVar10 + 1;" (assignment_expression "plVar10 = plVar10 + 1" identifier = (binary_expression "plVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((long *)param_3[4] != plVar10)" ( (binary_expression "(long *)param_3[4] != plVar10" (cast_expression "(long *)param_3[4]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[4]" identifier [ number_literal ])) != identifier) )) ;) })) (expression_statement "lVar3 = param_1;" (assignment_expression "lVar3 = param_1" identifier = identifier) ;) (if_statement "if ((*(long *)(param_1 + 0x158) != 0) && (lVar3 = FUN_00335c60(), lVar3 != 0)) {\n    puVar4 = (undefined8 *)FUN_0049cb60(0x40);\n    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n    uVar2 = *(undefined8 *)(param_1 + 0x158);\n    *puVar4 = &PTR_FUN_00670da0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0xffffffffffffffff;\n    puVar4[5] = 0;\n    puVar4[6] = 1;\n    puVar4[7] = uVar2;\n    lVar3 = 0;\n    FUN_003839a0(param_2,".gnu.attributes",0x6ffffff5,0,puVar4,0);\n    return lVar3;\n  }" if (parenthesized_expression "((*(long *)(param_1 + 0x158) != 0) && (lVar3 = FUN_00335c60(), lVar3 != 0))" ( (binary_expression "(*(long *)(param_1 + 0x158) != 0) && (lVar3 = FUN_00335c60(), lVar3 != 0)" (parenthesized_expression "(*(long *)(param_1 + 0x158) != 0)" ( (binary_expression "*(long *)(param_1 + 0x158) != 0" (pointer_expression "*(long *)(param_1 + 0x158)" * (cast_expression "(long *)(param_1 + 0x158)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x158)" ( (binary_expression "param_1 + 0x158" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(lVar3 = FUN_00335c60(), lVar3 != 0)" ( (comma_expression "lVar3 = FUN_00335c60(), lVar3 != 0" (assignment_expression "lVar3 = FUN_00335c60()" identifier = (call_expression "FUN_00335c60()" identifier (argument_list "()" ( )))) , (binary_expression "lVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    puVar4 = (undefined8 *)FUN_0049cb60(0x40);\n    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n    uVar2 = *(undefined8 *)(param_1 + 0x158);\n    *puVar4 = &PTR_FUN_00670da0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0xffffffffffffffff;\n    puVar4[5] = 0;\n    puVar4[6] = 1;\n    puVar4[7] = uVar2;\n    lVar3 = 0;\n    FUN_003839a0(param_2,".gnu.attributes",0x6ffffff5,0,puVar4,0);\n    return lVar3;\n  }" { (expression_statement "puVar4 = (undefined8 *)FUN_0049cb60(0x40);" (assignment_expression "puVar4 = (undefined8 *)FUN_0049cb60(0x40)" identifier = (cast_expression "(undefined8 *)FUN_0049cb60(0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0049cb60(0x40)" identifier (argument_list "(0x40)" ( number_literal ))))) ;) (expression_statement "*(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;" (assignment_expression "*(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 4)" * (cast_expression "(byte *)(puVar4 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 4)" ( (binary_expression "puVar4 + 4" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar4 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 4)" * (cast_expression "(byte *)(puVar4 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 4)" ( (binary_expression "puVar4 + 4" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x158);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x158)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x158)" * (cast_expression "(undefined8 *)(param_1 + 0x158)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x158)" ( (binary_expression "param_1 + 0x158" identifier + number_literal) ))))) ;) (expression_statement "*puVar4 = &PTR_FUN_00670da0;" (assignment_expression "*puVar4 = &PTR_FUN_00670da0" (pointer_expression "*puVar4" * identifier) = (pointer_expression "&PTR_FUN_00670da0" & identifier)) ;) (expression_statement "puVar4[1] = 0;" (assignment_expression "puVar4[1] = 0" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[2] = 0;" (assignment_expression "puVar4[2] = 0" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[3] = 0xffffffffffffffff;" (assignment_expression "puVar4[3] = 0xffffffffffffffff" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[5] = 0;" (assignment_expression "puVar4[5] = 0" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[6] = 1;" (assignment_expression "puVar4[6] = 1" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[7] = uVar2;" (assignment_expression "puVar4[7] = uVar2" (subscript_expression "puVar4[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" identifier = number_literal) ;) (expression_statement "FUN_003839a0(param_2,".gnu.attributes",0x6ffffff5,0,puVar4,0);" (call_expression "FUN_003839a0(param_2,".gnu.attributes",0x6ffffff5,0,puVar4,0)" identifier (argument_list "(param_2,".gnu.attributes",0x6ffffff5,0,puVar4,0)" ( identifier , (string_literal "".gnu.attributes"" " string_content ") , number_literal , number_literal , identifier , number_literal ))) ;) (return_statement "return lVar3;" return identifier ;) })) (return_statement "return lVar3;" return identifier ;) })))
(translation_unit (function_definition (sized_type_specifier long) (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , LIT , LIT , IDENT , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , LIT , LIT , IDENT , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT ))) ;) }))) })) (for_statement for ( (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )))) )) ))) )) && (parenthesized_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) ))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT) ))) <= IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) + (binary_expression IDENT * LIT)) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) })) })) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , LIT , LIT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (string_literal " string_content ") , LIT , LIT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (string_literal " string_content ") , LIT , LIT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (string_literal " string_content ") , LIT , LIT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (string_literal " string_content ") , LIT , LIT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (string_literal " string_content ") , LIT , LIT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (string_literal " string_content ") , LIT , LIT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (string_literal " string_content ") , LIT , LIT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (string_literal " string_content ") , LIT , LIT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (string_literal " string_content ") , LIT , LIT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (string_literal " string_content ") , LIT , LIT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (string_literal " string_content ") , LIT , LIT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , LIT , LIT , IDENT , LIT , (binary_expression IDENT & LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - IDENT) )))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) })) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , 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 (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (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) )))) & LIT) )) + LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = 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) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ))) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * 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 (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) + LIT) )))) & LIT) )) != LIT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) && (parenthesized_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) ))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT >> LIT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) * LIT)) )) - IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))))) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , LIT , LIT , IDENT , LIT ))) ;) (return_statement return IDENT ;) })) (return_statement return IDENT ;) })))
(function_definition "long FUN_0021f7f0(long param_1,long param_2,long *param_3,long param_4)\n\n{\n  ulong *puVar1;\n  undefined8 uVar2;\n  long lVar3;\n  undefined8 *puVar4;\n  long lVar5;\n  ulong uVar6;\n  ulong uVar7;\n  uint uVar8;\n  undefined8 extraout_RDX;\n  ulong uVar9;\n  long *plVar10;\n  long lVar11;\n  ulong uVar12;\n  undefined8 uVar13;\n  undefined8 in_stack_ffffffffffffff90;\n  long *local_58;\n  undefined8 uStack_50;\n  undefined8 local_48;\n  \n  if (PTR_DAT_0067cb08[0x20] == '\0') {\nLAB_00220139:\n                    \n    FUN_001dc9b0();\n  }\n  if (PTR_DAT_0067cb08[0x21] != '\0') {\n    if (*(long *)(param_1 + 0x30) == 0) {\n      FUN_00445d10(param_4,"__rela_iplt_start",0,5,0,0,0,1,2,0,1,0);\n      in_stack_ffffffffffffff90 = 0;\n      FUN_00445d10(param_4,"__rela_iplt_end",0,5,0,0,0,1,2,0,1);\n    }\n    else {\n      uVar2 = *(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38);\n      FUN_00445bb0(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1);\n      FUN_00445bb0(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1);\n    }\n  }\n  for (puVar4 = *(undefined8 **)(param_4 + 0x40); puVar4 != (undefined8 *)0x0;\n      puVar4 = (undefined8 *)*puVar4) {\n    lVar3 = puVar4[3];\n    if (((((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)) &&\n        ((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)))) && (*(int *)(lVar5 + 0x224) == *(int *)(lVar3 + 0x18))) {\n      uVar9 = *(ulong *)(lVar3 + 0x40) >> 4;\n      if ((ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4) <= uVar9) {\n        FUN_001dc890();\n        goto LAB_00220139;\n      }\n      if ((*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1) != 0) {\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        FUN_00443500(lVar3);\n        *(undefined4 *)(lVar3 + 0x1c) = 0xffffffff;\n        *(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000;\n      }\n    }\n  }\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;\n  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x5051) == '\0') {\n    puVar4 = (undefined8 *)FUN_0049cb60(0x40);\n    puVar4[1] = 0;\n    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n    puVar4[2] = 0;\n    puVar4[3] = 0xffffffffffffffff;\n    puVar4[5] = 0;\n    puVar4[6] = 4;\n    *puVar4 = &PTR_FUN_00664fb8;\n    puVar4[7] = 0;\n                    \n    FUN_001db270(puVar4,param_4,&DAT_0054cfeb,0xe,0x1f,FUN_001d8b40,FUN_001d8b60);\n    FUN_001db270(puVar4,param_4,"_restgpr0_",0xe,0x1d,FUN_001d8b90,FUN_001d8bb0);\n    FUN_001db270(puVar4,param_4,"_restgpr0_",0x1e,0x1f,FUN_001d8b90,FUN_001d8bb0);\n    FUN_001db270(puVar4,param_4,"_savegpr1_",0xe,0x1f,FUN_001d8c10,FUN_001d8c30);\n    FUN_001db270(puVar4,param_4,"_restgpr1_",0xe,0x1f,FUN_001d8c60,FUN_001d8c80);\n    FUN_001db270(puVar4,param_4,"_savefpr_",0xe,0x1f,FUN_001d8cb0,FUN_001d8cd0);\n    FUN_001db270(puVar4,param_4,"_restfpr_",0xe,0x1d,FUN_001d8d00,FUN_001d8d20);\n    FUN_001db270(puVar4,param_4,"_restfpr_",0x1e,0x1f,FUN_001d8d00,FUN_001d8d20);\n    FUN_001db270(puVar4,param_4,"._savef",0xe,0x1f,FUN_001d8cb0,FUN_001d8d80);\n    FUN_001db270(puVar4,param_4,"._restf",0xe,0x1f,FUN_001d8d00,FUN_001d8db0);\n    FUN_001db270(puVar4,param_4,"_savevr_",0x14,0x1f,FUN_001d8de0,FUN_001d8e10);\n    uVar9 = 0;\n    FUN_001db270(puVar4,param_4,"_restvr_",0x14,0x1f,FUN_001d8e40,FUN_001d8e70);\n    *(undefined8 **)(param_1 + 0x140) = puVar4;\n    FUN_003839a0(param_2,".text",1,6,puVar4,9,uVar9 & 0xffffffff00000000);\n    FUN_001de660(param_1 + 0x20,param_4,param_2);\n    in_stack_ffffffffffffff90 = 0x21fea3;\n    FUN_001e1ee0(param_1,param_2);\n    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;\n    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841) != '\0') &&\n       (lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28), lVar3 != 0)) {\n      lVar5 = *(long *)(lVar3 + 0x90);\n      lVar3 = *(long *)(lVar3 + 0x88);\n      if (0x3f < (ulong)(lVar5 - lVar3)) {\n        FUN_002297f0(&local_58,lVar3,lVar5);\n        if (local_48 == 0) {\n                    \n          FUN_001f7950(lVar3,lVar5);\n        }\n        else {\n                    \n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        FUN_0049e310(local_48,&DAT_0058ad47);\n      }\n    }\n  }\n  lVar3 = *(long *)(param_2 + 0x300);\n  if (lVar3 != 0) {\n    uVar2 = 0;\n    lVar5 = *(long *)(param_1 + 0x28);\n    if (lVar5 != 0) {\n      uVar2 = *(undefined8 *)(lVar5 + 0x38);\n    }\n    uVar13 = 0;\n    FUN_0037e220(param_2,0,lVar5,uVar2,*(undefined8 *)(param_1 + 0x50),1);\n    plVar10 = *(long **)(param_1 + 0x48);\n    if (plVar10 != (long *)0x0) {\n      if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n        (**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13);\n        if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n                    \n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        plVar10 = *(long **)(param_1 + 0x48);\n      }\n      puVar4 = *(undefined8 **)(lVar3 + 0x40);\n      local_48 = CONCAT44((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000);\n      local_58 = plVar10;\n      if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n        FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n      }\n      else {\n        *puVar4 = plVar10;\n        puVar4[1] = uStack_50;\n        puVar4[2] = local_48;\n        *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n      }\n    }\n    if (*(char *)(param_1 + 0x133) == '\0') {\n      uVar8 = 0;\n      if (*(byte *)(param_1 + 0x134) == 0) goto LAB_0021f9ad;\n    }\n    else {\n      uVar8 = 4;\n    }\n    local_48 = -0x8ffffffd;\n    puVar4 = *(undefined8 **)(lVar3 + 0x40);\n    local_58 = (long *)CONCAT44(local_58._4_4_,*(byte *)(param_1 + 0x134) | uVar8);\n    if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n      FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n    }\n    else {\n      *puVar4 = local_58;\n      puVar4[1] = uStack_50;\n      puVar4[2] = 0xffffffff70000003;\n      *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n    }\n  }\nLAB_0021f9ad:\n  if (*(long *)(param_1 + 0x60) != *(long *)(param_1 + 0x58)) {\n    uVar2 = FUN_001e1980(param_1 + 0x50,param_2);\n    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\nLAB_00220104:\n                    \n      FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n    }\n    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0') &&\n       (plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60))) {\n      do {\n        if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }\n        plVar10 = plVar10 + 7;\n      } while (*(long **)(param_1 + 0x60) != plVar10);\n    }\n    FUN_0033bfa0(param_1 + 0x58,uVar2);\n  }\n  plVar10 = (long *)*param_3;\n  if (plVar10 != (long *)param_3[1]) {\n    do {\n      if (*(long *)(*plVar10 + 0x308) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[1] != plVar10);\n  }\n  plVar10 = (long *)param_3[3];\n  if (plVar10 != (long *)param_3[4]) {\n    do {\n      if (*(long *)(*plVar10 + 0xf8) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[4] != plVar10);\n  }\n  lVar3 = param_1;\n  if ((*(long *)(param_1 + 0x158) != 0) && (lVar3 = FUN_00335c60(), lVar3 != 0)) {\n    puVar4 = (undefined8 *)FUN_0049cb60(0x40);\n    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n    uVar2 = *(undefined8 *)(param_1 + 0x158);\n    *puVar4 = &PTR_FUN_00670da0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0xffffffffffffffff;\n    puVar4[5] = 0;\n    puVar4[6] = 1;\n    puVar4[7] = uVar2;\n    lVar3 = 0;\n    FUN_003839a0(param_2,".gnu.attributes",0x6ffffff5,0,puVar4,0);\n    return lVar3;\n  }\n  return lVar3;\n}" (sized_type_specifier "long" (long "long")) (function_declarator "FUN_0021f7f0(long param_1,long param_2,long *param_3,long param_4)" (identifier "FUN_0021f7f0") (parameter_list "(long param_1,long param_2,long *param_3,long param_4)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) (, ",") (parameter_declaration "long *param_3" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "long param_4" (sized_type_specifier "long" (long "long")) (identifier "param_4")) () ")"))) (compound_statement "{\n  ulong *puVar1;\n  undefined8 uVar2;\n  long lVar3;\n  undefined8 *puVar4;\n  long lVar5;\n  ulong uVar6;\n  ulong uVar7;\n  uint uVar8;\n  undefined8 extraout_RDX;\n  ulong uVar9;\n  long *plVar10;\n  long lVar11;\n  ulong uVar12;\n  undefined8 uVar13;\n  undefined8 in_stack_ffffffffffffff90;\n  long *local_58;\n  undefined8 uStack_50;\n  undefined8 local_48;\n  \n  if (PTR_DAT_0067cb08[0x20] == '\0') {\nLAB_00220139:\n                    \n    FUN_001dc9b0();\n  }\n  if (PTR_DAT_0067cb08[0x21] != '\0') {\n    if (*(long *)(param_1 + 0x30) == 0) {\n      FUN_00445d10(param_4,"__rela_iplt_start",0,5,0,0,0,1,2,0,1,0);\n      in_stack_ffffffffffffff90 = 0;\n      FUN_00445d10(param_4,"__rela_iplt_end",0,5,0,0,0,1,2,0,1);\n    }\n    else {\n      uVar2 = *(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38);\n      FUN_00445bb0(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1);\n      FUN_00445bb0(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1);\n    }\n  }\n  for (puVar4 = *(undefined8 **)(param_4 + 0x40); puVar4 != (undefined8 *)0x0;\n      puVar4 = (undefined8 *)*puVar4) {\n    lVar3 = puVar4[3];\n    if (((((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)) &&\n        ((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)))) && (*(int *)(lVar5 + 0x224) == *(int *)(lVar3 + 0x18))) {\n      uVar9 = *(ulong *)(lVar3 + 0x40) >> 4;\n      if ((ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4) <= uVar9) {\n        FUN_001dc890();\n        goto LAB_00220139;\n      }\n      if ((*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1) != 0) {\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        FUN_00443500(lVar3);\n        *(undefined4 *)(lVar3 + 0x1c) = 0xffffffff;\n        *(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000;\n      }\n    }\n  }\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;\n  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x5051) == '\0') {\n    puVar4 = (undefined8 *)FUN_0049cb60(0x40);\n    puVar4[1] = 0;\n    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n    puVar4[2] = 0;\n    puVar4[3] = 0xffffffffffffffff;\n    puVar4[5] = 0;\n    puVar4[6] = 4;\n    *puVar4 = &PTR_FUN_00664fb8;\n    puVar4[7] = 0;\n                    \n    FUN_001db270(puVar4,param_4,&DAT_0054cfeb,0xe,0x1f,FUN_001d8b40,FUN_001d8b60);\n    FUN_001db270(puVar4,param_4,"_restgpr0_",0xe,0x1d,FUN_001d8b90,FUN_001d8bb0);\n    FUN_001db270(puVar4,param_4,"_restgpr0_",0x1e,0x1f,FUN_001d8b90,FUN_001d8bb0);\n    FUN_001db270(puVar4,param_4,"_savegpr1_",0xe,0x1f,FUN_001d8c10,FUN_001d8c30);\n    FUN_001db270(puVar4,param_4,"_restgpr1_",0xe,0x1f,FUN_001d8c60,FUN_001d8c80);\n    FUN_001db270(puVar4,param_4,"_savefpr_",0xe,0x1f,FUN_001d8cb0,FUN_001d8cd0);\n    FUN_001db270(puVar4,param_4,"_restfpr_",0xe,0x1d,FUN_001d8d00,FUN_001d8d20);\n    FUN_001db270(puVar4,param_4,"_restfpr_",0x1e,0x1f,FUN_001d8d00,FUN_001d8d20);\n    FUN_001db270(puVar4,param_4,"._savef",0xe,0x1f,FUN_001d8cb0,FUN_001d8d80);\n    FUN_001db270(puVar4,param_4,"._restf",0xe,0x1f,FUN_001d8d00,FUN_001d8db0);\n    FUN_001db270(puVar4,param_4,"_savevr_",0x14,0x1f,FUN_001d8de0,FUN_001d8e10);\n    uVar9 = 0;\n    FUN_001db270(puVar4,param_4,"_restvr_",0x14,0x1f,FUN_001d8e40,FUN_001d8e70);\n    *(undefined8 **)(param_1 + 0x140) = puVar4;\n    FUN_003839a0(param_2,".text",1,6,puVar4,9,uVar9 & 0xffffffff00000000);\n    FUN_001de660(param_1 + 0x20,param_4,param_2);\n    in_stack_ffffffffffffff90 = 0x21fea3;\n    FUN_001e1ee0(param_1,param_2);\n    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;\n    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841) != '\0') &&\n       (lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28), lVar3 != 0)) {\n      lVar5 = *(long *)(lVar3 + 0x90);\n      lVar3 = *(long *)(lVar3 + 0x88);\n      if (0x3f < (ulong)(lVar5 - lVar3)) {\n        FUN_002297f0(&local_58,lVar3,lVar5);\n        if (local_48 == 0) {\n                    \n          FUN_001f7950(lVar3,lVar5);\n        }\n        else {\n                    \n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        FUN_0049e310(local_48,&DAT_0058ad47);\n      }\n    }\n  }\n  lVar3 = *(long *)(param_2 + 0x300);\n  if (lVar3 != 0) {\n    uVar2 = 0;\n    lVar5 = *(long *)(param_1 + 0x28);\n    if (lVar5 != 0) {\n      uVar2 = *(undefined8 *)(lVar5 + 0x38);\n    }\n    uVar13 = 0;\n    FUN_0037e220(param_2,0,lVar5,uVar2,*(undefined8 *)(param_1 + 0x50),1);\n    plVar10 = *(long **)(param_1 + 0x48);\n    if (plVar10 != (long *)0x0) {\n      if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n        (**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13);\n        if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n                    \n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        plVar10 = *(long **)(param_1 + 0x48);\n      }\n      puVar4 = *(undefined8 **)(lVar3 + 0x40);\n      local_48 = CONCAT44((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000);\n      local_58 = plVar10;\n      if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n        FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n      }\n      else {\n        *puVar4 = plVar10;\n        puVar4[1] = uStack_50;\n        puVar4[2] = local_48;\n        *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n      }\n    }\n    if (*(char *)(param_1 + 0x133) == '\0') {\n      uVar8 = 0;\n      if (*(byte *)(param_1 + 0x134) == 0) goto LAB_0021f9ad;\n    }\n    else {\n      uVar8 = 4;\n    }\n    local_48 = -0x8ffffffd;\n    puVar4 = *(undefined8 **)(lVar3 + 0x40);\n    local_58 = (long *)CONCAT44(local_58._4_4_,*(byte *)(param_1 + 0x134) | uVar8);\n    if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n      FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n    }\n    else {\n      *puVar4 = local_58;\n      puVar4[1] = uStack_50;\n      puVar4[2] = 0xffffffff70000003;\n      *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n    }\n  }\nLAB_0021f9ad:\n  if (*(long *)(param_1 + 0x60) != *(long *)(param_1 + 0x58)) {\n    uVar2 = FUN_001e1980(param_1 + 0x50,param_2);\n    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\nLAB_00220104:\n                    \n      FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n    }\n    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0') &&\n       (plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60))) {\n      do {\n        if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }\n        plVar10 = plVar10 + 7;\n      } while (*(long **)(param_1 + 0x60) != plVar10);\n    }\n    FUN_0033bfa0(param_1 + 0x58,uVar2);\n  }\n  plVar10 = (long *)*param_3;\n  if (plVar10 != (long *)param_3[1]) {\n    do {\n      if (*(long *)(*plVar10 + 0x308) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[1] != plVar10);\n  }\n  plVar10 = (long *)param_3[3];\n  if (plVar10 != (long *)param_3[4]) {\n    do {\n      if (*(long *)(*plVar10 + 0xf8) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[4] != plVar10);\n  }\n  lVar3 = param_1;\n  if ((*(long *)(param_1 + 0x158) != 0) && (lVar3 = FUN_00335c60(), lVar3 != 0)) {\n    puVar4 = (undefined8 *)FUN_0049cb60(0x40);\n    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n    uVar2 = *(undefined8 *)(param_1 + 0x158);\n    *puVar4 = &PTR_FUN_00670da0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0xffffffffffffffff;\n    puVar4[5] = 0;\n    puVar4[6] = 1;\n    puVar4[7] = uVar2;\n    lVar3 = 0;\n    FUN_003839a0(param_2,".gnu.attributes",0x6ffffff5,0,puVar4,0);\n    return lVar3;\n  }\n  return lVar3;\n}" ({ "{") (declaration "ulong *puVar1;" (type_identifier "ulong") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "undefined8 *puVar4;" (type_identifier "undefined8") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "long lVar5;" (sized_type_specifier "long" (long "long")) (identifier "lVar5") (; ";")) (declaration "ulong uVar6;" (type_identifier "ulong") (identifier "uVar6") (; ";")) (declaration "ulong uVar7;" (type_identifier "ulong") (identifier "uVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "undefined8 extraout_RDX;" (type_identifier "undefined8") (identifier "extraout_RDX") (; ";")) (declaration "ulong uVar9;" (type_identifier "ulong") (identifier "uVar9") (; ";")) (declaration "long *plVar10;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar10" (* "*") (identifier "plVar10")) (; ";")) (declaration "long lVar11;" (sized_type_specifier "long" (long "long")) (identifier "lVar11") (; ";")) (declaration "ulong uVar12;" (type_identifier "ulong") (identifier "uVar12") (; ";")) (declaration "undefined8 uVar13;" (type_identifier "undefined8") (identifier "uVar13") (; ";")) (declaration "undefined8 in_stack_ffffffffffffff90;" (type_identifier "undefined8") (identifier "in_stack_ffffffffffffff90") (; ";")) (declaration "long *local_58;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "undefined8 uStack_50;" (type_identifier "undefined8") (identifier "uStack_50") (; ";")) (declaration "undefined8 local_48;" (type_identifier "undefined8") (identifier "local_48") (; ";")) (if_statement "if (PTR_DAT_0067cb08[0x20] == '\0') {\nLAB_00220139:\n                    \n    FUN_001dc9b0();\n  }" (if "if") (parenthesized_expression "(PTR_DAT_0067cb08[0x20] == '\0')" (( "(") (binary_expression "PTR_DAT_0067cb08[0x20] == '\0'" (subscript_expression "PTR_DAT_0067cb08[0x20]" (identifier "PTR_DAT_0067cb08") ([ "[") (number_literal "0x20") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_00220139:\n                    \n    FUN_001dc9b0();\n  }" ({ "{") (labeled_statement "LAB_00220139:\n                    \n    FUN_001dc9b0();" (statement_identifier "LAB_00220139") (: ":") (expression_statement "FUN_001dc9b0();" (call_expression "FUN_001dc9b0()" (identifier "FUN_001dc9b0") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}"))) (if_statement "if (PTR_DAT_0067cb08[0x21] != '\0') {\n    if (*(long *)(param_1 + 0x30) == 0) {\n      FUN_00445d10(param_4,"__rela_iplt_start",0,5,0,0,0,1,2,0,1,0);\n      in_stack_ffffffffffffff90 = 0;\n      FUN_00445d10(param_4,"__rela_iplt_end",0,5,0,0,0,1,2,0,1);\n    }\n    else {\n      uVar2 = *(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38);\n      FUN_00445bb0(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1);\n      FUN_00445bb0(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1);\n    }\n  }" (if "if") (parenthesized_expression "(PTR_DAT_0067cb08[0x21] != '\0')" (( "(") (binary_expression "PTR_DAT_0067cb08[0x21] != '\0'" (subscript_expression "PTR_DAT_0067cb08[0x21]" (identifier "PTR_DAT_0067cb08") ([ "[") (number_literal "0x21") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    if (*(long *)(param_1 + 0x30) == 0) {\n      FUN_00445d10(param_4,"__rela_iplt_start",0,5,0,0,0,1,2,0,1,0);\n      in_stack_ffffffffffffff90 = 0;\n      FUN_00445d10(param_4,"__rela_iplt_end",0,5,0,0,0,1,2,0,1);\n    }\n    else {\n      uVar2 = *(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38);\n      FUN_00445bb0(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1);\n      FUN_00445bb0(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1);\n    }\n  }" ({ "{") (if_statement "if (*(long *)(param_1 + 0x30) == 0) {\n      FUN_00445d10(param_4,"__rela_iplt_start",0,5,0,0,0,1,2,0,1,0);\n      in_stack_ffffffffffffff90 = 0;\n      FUN_00445d10(param_4,"__rela_iplt_end",0,5,0,0,0,1,2,0,1);\n    }\n    else {\n      uVar2 = *(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38);\n      FUN_00445bb0(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1);\n      FUN_00445bb0(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1);\n    }" (if "if") (parenthesized_expression "(*(long *)(param_1 + 0x30) == 0)" (( "(") (binary_expression "*(long *)(param_1 + 0x30) == 0" (pointer_expression "*(long *)(param_1 + 0x30)" (* "*") (cast_expression "(long *)(param_1 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00445d10(param_4,"__rela_iplt_start",0,5,0,0,0,1,2,0,1,0);\n      in_stack_ffffffffffffff90 = 0;\n      FUN_00445d10(param_4,"__rela_iplt_end",0,5,0,0,0,1,2,0,1);\n    }" ({ "{") (expression_statement "FUN_00445d10(param_4,"__rela_iplt_start",0,5,0,0,0,1,2,0,1,0);" (call_expression "FUN_00445d10(param_4,"__rela_iplt_start",0,5,0,0,0,1,2,0,1,0)" (identifier "FUN_00445d10") (argument_list "(param_4,"__rela_iplt_start",0,5,0,0,0,1,2,0,1,0)" (( "(") (identifier "param_4") (, ",") (string_literal ""__rela_iplt_start"" (" """) (string_content "__rela_iplt_start") (" """)) (, ",") (number_literal "0") (, ",") (number_literal "5") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "2") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "in_stack_ffffffffffffff90 = 0;" (assignment_expression "in_stack_ffffffffffffff90 = 0" (identifier "in_stack_ffffffffffffff90") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00445d10(param_4,"__rela_iplt_end",0,5,0,0,0,1,2,0,1);" (call_expression "FUN_00445d10(param_4,"__rela_iplt_end",0,5,0,0,0,1,2,0,1)" (identifier "FUN_00445d10") (argument_list "(param_4,"__rela_iplt_end",0,5,0,0,0,1,2,0,1)" (( "(") (identifier "param_4") (, ",") (string_literal ""__rela_iplt_end"" (" """) (string_content "__rela_iplt_end") (" """)) (, ",") (number_literal "0") (, ",") (number_literal "5") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "2") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      uVar2 = *(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38);\n      FUN_00445bb0(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1);\n      FUN_00445bb0(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1);\n    }" (else "else") (compound_statement "{\n      uVar2 = *(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38);\n      FUN_00445bb0(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1);\n      FUN_00445bb0(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1);\n    }" ({ "{") (expression_statement "uVar2 = *(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38);" (assignment_expression "uVar2 = *(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38)" (* "*") (cast_expression "(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 0x30) + 0x38)" (( "(") (binary_expression "*(long *)(param_1 + 0x30) + 0x38" (pointer_expression "*(long *)(param_1 + 0x30)" (* "*") (cast_expression "(long *)(param_1 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "FUN_00445bb0(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1);" (call_expression "FUN_00445bb0(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1)" (identifier "FUN_00445bb0") (argument_list "(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1)" (( "(") (identifier "param_4") (, ",") (string_literal ""__rela_iplt_start"" (" """) (string_content "__rela_iplt_start") (" """)) (, ",") (number_literal "0") (, ",") (number_literal "5") (, ",") (identifier "uVar2") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "2") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "FUN_00445bb0(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1);" (call_expression "FUN_00445bb0(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1)" (identifier "FUN_00445bb0") (argument_list "(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1)" (( "(") (identifier "param_4") (, ",") (string_literal ""__rela_iplt_end"" (" """) (string_content "__rela_iplt_end") (" """)) (, ",") (number_literal "0") (, ",") (number_literal "5") (, ",") (identifier "uVar2") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "2") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "1") () ")"))) (; ";")) (} "}")))) (} "}"))) (for_statement "for (puVar4 = *(undefined8 **)(param_4 + 0x40); puVar4 != (undefined8 *)0x0;\n      puVar4 = (undefined8 *)*puVar4) {\n    lVar3 = puVar4[3];\n    if (((((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)) &&\n        ((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)))) && (*(int *)(lVar5 + 0x224) == *(int *)(lVar3 + 0x18))) {\n      uVar9 = *(ulong *)(lVar3 + 0x40) >> 4;\n      if ((ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4) <= uVar9) {\n        FUN_001dc890();\n        goto LAB_00220139;\n      }\n      if ((*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1) != 0) {\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        FUN_00443500(lVar3);\n        *(undefined4 *)(lVar3 + 0x1c) = 0xffffffff;\n        *(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000;\n      }\n    }\n  }" (for "for") (( "(") (assignment_expression "puVar4 = *(undefined8 **)(param_4 + 0x40)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined8 **)(param_4 + 0x40)" (* "*") (cast_expression "(undefined8 **)(param_4 + 0x40)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4 + 0x40)" (( "(") (binary_expression "param_4 + 0x40" (identifier "param_4") (+ "+") (number_literal "0x40")) () ")"))))) (; ";") (binary_expression "puVar4 != (undefined8 *)0x0" (identifier "puVar4") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar4 = (undefined8 *)*puVar4" (identifier "puVar4") (= "=") (cast_expression "(undefined8 *)*puVar4" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")))) () ")") (compound_statement "{\n    lVar3 = puVar4[3];\n    if (((((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)) &&\n        ((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)))) && (*(int *)(lVar5 + 0x224) == *(int *)(lVar3 + 0x18))) {\n      uVar9 = *(ulong *)(lVar3 + 0x40) >> 4;\n      if ((ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4) <= uVar9) {\n        FUN_001dc890();\n        goto LAB_00220139;\n      }\n      if ((*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1) != 0) {\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        FUN_00443500(lVar3);\n        *(undefined4 *)(lVar3 + 0x1c) = 0xffffffff;\n        *(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000;\n      }\n    }\n  }" ({ "{") (expression_statement "lVar3 = puVar4[3];" (assignment_expression "lVar3 = puVar4[3]" (identifier "lVar3") (= "=") (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]"))) (; ";")) (if_statement "if (((((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)) &&\n        ((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)))) && (*(int *)(lVar5 + 0x224) == *(int *)(lVar3 + 0x18))) {\n      uVar9 = *(ulong *)(lVar3 + 0x40) >> 4;\n      if ((ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4) <= uVar9) {\n        FUN_001dc890();\n        goto LAB_00220139;\n      }\n      if ((*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1) != 0) {\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        FUN_00443500(lVar3);\n        *(undefined4 *)(lVar3 + 0x1c) = 0xffffffff;\n        *(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000;\n      }\n    }" (if "if") (parenthesized_expression "(((((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)) &&\n        ((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)))) && (*(int *)(lVar5 + 0x224) == *(int *)(lVar3 + 0x18)))" (( "(") (binary_expression "((((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)) &&\n        ((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)))) && (*(int *)(lVar5 + 0x224) == *(int *)(lVar3 + 0x18))" (parenthesized_expression "((((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)) &&\n        ((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0))))" (( "(") (binary_expression "(((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)) &&\n        ((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)))" (parenthesized_expression "(((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0))" (( "(") (binary_expression "((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&\n         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)" (parenthesized_expression "((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0))" (( "(") (binary_expression "(*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)" (parenthesized_expression "(*(int *)(lVar3 + 0x1c) == 0)" (( "(") (binary_expression "*(int *)(lVar3 + 0x1c) == 0" (pointer_expression "*(int *)(lVar3 + 0x1c)" (* "*") (cast_expression "(int *)(lVar3 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x1c)" (( "(") (binary_expression "lVar3 + 0x1c" (identifier "lVar3") (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(lVar3 + 0x3a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)(lVar3 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)(lVar3 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)(lVar3 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar3 + 0x3a)" (* "*") (cast_expression "(byte *)(lVar3 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x3a)" (( "(") (binary_expression "lVar3 + 0x3a" (identifier "lVar3") (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)" (( "(") (binary_expression "(*(byte *)(lVar3 + 0x3b) & 0x40) != 0" (parenthesized_expression "(*(byte *)(lVar3 + 0x3b) & 0x40)" (( "(") (binary_expression "*(byte *)(lVar3 + 0x3b) & 0x40" (pointer_expression "*(byte *)(lVar3 + 0x3b)" (* "*") (cast_expression "(byte *)(lVar3 + 0x3b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x3b)" (( "(") (binary_expression "lVar3 + 0x3b" (identifier "lVar3") (+ "+") (number_literal "0x3b")) () ")")))) (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)))" (( "(") (parenthesized_expression "(lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0))" (( "(") (comma_expression "lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)" (assignment_expression "lVar5 = *(long *)(lVar3 + 0x10)" (identifier "lVar5") (= "=") (pointer_expression "*(long *)(lVar3 + 0x10)" (* "*") (cast_expression "(long *)(lVar3 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x10)" (( "(") (binary_expression "lVar3 + 0x10" (identifier "lVar3") (+ "+") (number_literal "0x10")) () ")"))))) (, ",") (binary_expression "(*(byte *)(lVar5 + 0x3c) & 1) == 0 &&\n         (*(int *)(lVar5 + 0x224) != 0)" (binary_expression "(*(byte *)(lVar5 + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)(lVar5 + 0x3c) & 1)" (( "(") (binary_expression "*(byte *)(lVar5 + 0x3c) & 1" (pointer_expression "*(byte *)(lVar5 + 0x3c)" (* "*") (cast_expression "(byte *)(lVar5 + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x3c)" (( "(") (binary_expression "lVar5 + 0x3c" (identifier "lVar5") (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(*(int *)(lVar5 + 0x224) != 0)" (( "(") (binary_expression "*(int *)(lVar5 + 0x224) != 0" (pointer_expression "*(int *)(lVar5 + 0x224)" (* "*") (cast_expression "(int *)(lVar5 + 0x224)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x224)" (( "(") (binary_expression "lVar5 + 0x224" (identifier "lVar5") (+ "+") (number_literal "0x224")) () ")")))) (!= "!=") (number_literal "0")) () ")")))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(lVar5 + 0x224) == *(int *)(lVar3 + 0x18))" (( "(") (binary_expression "*(int *)(lVar5 + 0x224) == *(int *)(lVar3 + 0x18)" (pointer_expression "*(int *)(lVar5 + 0x224)" (* "*") (cast_expression "(int *)(lVar5 + 0x224)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x224)" (( "(") (binary_expression "lVar5 + 0x224" (identifier "lVar5") (+ "+") (number_literal "0x224")) () ")")))) (== "==") (pointer_expression "*(int *)(lVar3 + 0x18)" (* "*") (cast_expression "(int *)(lVar3 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x18)" (( "(") (binary_expression "lVar3 + 0x18" (identifier "lVar3") (+ "+") (number_literal "0x18")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n      uVar9 = *(ulong *)(lVar3 + 0x40) >> 4;\n      if ((ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4) <= uVar9) {\n        FUN_001dc890();\n        goto LAB_00220139;\n      }\n      if ((*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1) != 0) {\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        FUN_00443500(lVar3);\n        *(undefined4 *)(lVar3 + 0x1c) = 0xffffffff;\n        *(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000;\n      }\n    }" ({ "{") (expression_statement "uVar9 = *(ulong *)(lVar3 + 0x40) >> 4;" (assignment_expression "uVar9 = *(ulong *)(lVar3 + 0x40) >> 4" (identifier "uVar9") (= "=") (binary_expression "*(ulong *)(lVar3 + 0x40) >> 4" (pointer_expression "*(ulong *)(lVar3 + 0x40)" (* "*") (cast_expression "(ulong *)(lVar3 + 0x40)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x40)" (( "(") (binary_expression "lVar3 + 0x40" (identifier "lVar3") (+ "+") (number_literal "0x40")) () ")")))) (>> ">>") (number_literal "4"))) (; ";")) (if_statement "if ((ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4) <= uVar9) {\n        FUN_001dc890();\n        goto LAB_00220139;\n      }" (if "if") (parenthesized_expression "((ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4) <= uVar9)" (( "(") (binary_expression "(ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4) <= uVar9" (call_expression "(ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4)" (( "(") (binary_expression "*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4" (binary_expression "*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260)" (pointer_expression "*(long *)(lVar5 + 0x268)" (* "*") (cast_expression "(long *)(lVar5 + 0x268)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x268)" (( "(") (binary_expression "lVar5 + 0x268" (identifier "lVar5") (+ "+") (number_literal "0x268")) () ")")))) (- "-") (pointer_expression "*(long *)(lVar5 + 0x260)" (* "*") (cast_expression "(long *)(lVar5 + 0x260)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x260)" (( "(") (binary_expression "lVar5 + 0x260" (identifier "lVar5") (+ "+") (number_literal "0x260")) () ")"))))) (>> ">>") (number_literal "4")) () ")"))) (<= "<=") (identifier "uVar9")) () ")")) (compound_statement "{\n        FUN_001dc890();\n        goto LAB_00220139;\n      }" ({ "{") (expression_statement "FUN_001dc890();" (call_expression "FUN_001dc890()" (identifier "FUN_001dc890") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_00220139;" (goto "goto") (statement_identifier "LAB_00220139") (; ";")) (} "}"))) (if_statement "if ((*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1) != 0) {\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        FUN_00443500(lVar3);\n        *(undefined4 *)(lVar3 + 0x1c) = 0xffffffff;\n        *(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000;\n      }" (if "if") (parenthesized_expression "((*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1) != 0" (parenthesized_expression "(*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1)" (( "(") (binary_expression "*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1" (pointer_expression "*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10)" (* "*") (cast_expression "(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10)" (( "(") (binary_expression "*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10" (binary_expression "*(long *)(lVar5 + 0x260) + 4" (pointer_expression "*(long *)(lVar5 + 0x260)" (* "*") (cast_expression "(long *)(lVar5 + 0x260)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x260)" (( "(") (binary_expression "lVar5 + 0x260" (identifier "lVar5") (+ "+") (number_literal "0x260")) () ")")))) (+ "+") (number_literal "4")) (+ "+") (binary_expression "uVar9 * 0x10" (identifier "uVar9") (* "*") (number_literal "0x10"))) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        in_stack_ffffffffffffff90 = 0x21fbbd;\n        FUN_00443500(lVar3);\n        *(undefined4 *)(lVar3 + 0x1c) = 0xffffffff;\n        *(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000;\n      }" ({ "{") (expression_statement "in_stack_ffffffffffffff90 = 0x21fbbd;" (assignment_expression "in_stack_ffffffffffffff90 = 0x21fbbd" (identifier "in_stack_ffffffffffffff90") (= "=") (number_literal "0x21fbbd")) (; ";")) (expression_statement "FUN_00443500(lVar3);" (call_expression "FUN_00443500(lVar3)" (identifier "FUN_00443500") (argument_list "(lVar3)" (( "(") (identifier "lVar3") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(lVar3 + 0x1c) = 0xffffffff;" (assignment_expression "*(undefined4 *)(lVar3 + 0x1c) = 0xffffffff" (pointer_expression "*(undefined4 *)(lVar3 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(lVar3 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x1c)" (( "(") (binary_expression "lVar3 + 0x1c" (identifier "lVar3") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "*(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000;" (assignment_expression "*(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000" (pointer_expression "*(uint *)(lVar3 + 0x38)" (* "*") (cast_expression "(uint *)(lVar3 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x38)" (( "(") (binary_expression "lVar3 + 0x38" (identifier "lVar3") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (binary_expression "*(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000" (binary_expression "*(uint *)(lVar3 + 0x38) & 0x7ffffcff" (pointer_expression "*(uint *)(lVar3 + 0x38)" (* "*") (cast_expression "(uint *)(lVar3 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x38)" (( "(") (binary_expression "lVar3 + 0x38" (identifier "lVar3") (+ "+") (number_literal "0x38")) () ")")))) (& "&") (number_literal "0x7ffffcff")) (| "|") (number_literal "0x80000000"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (if_statement "if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;" (if "if") (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) == 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" (( "(") (binary_expression "PTR_DAT_0067cb08 + 0x10" (identifier "PTR_DAT_0067cb08") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00220104;" (goto "goto") (statement_identifier "LAB_00220104") (; ";"))) (if_statement "if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x5051) == '\0') {\n    puVar4 = (undefined8 *)FUN_0049cb60(0x40);\n    puVar4[1] = 0;\n    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n    puVar4[2] = 0;\n    puVar4[3] = 0xffffffffffffffff;\n    puVar4[5] = 0;\n    puVar4[6] = 4;\n    *puVar4 = &PTR_FUN_00664fb8;\n    puVar4[7] = 0;\n                    \n    FUN_001db270(puVar4,param_4,&DAT_0054cfeb,0xe,0x1f,FUN_001d8b40,FUN_001d8b60);\n    FUN_001db270(puVar4,param_4,"_restgpr0_",0xe,0x1d,FUN_001d8b90,FUN_001d8bb0);\n    FUN_001db270(puVar4,param_4,"_restgpr0_",0x1e,0x1f,FUN_001d8b90,FUN_001d8bb0);\n    FUN_001db270(puVar4,param_4,"_savegpr1_",0xe,0x1f,FUN_001d8c10,FUN_001d8c30);\n    FUN_001db270(puVar4,param_4,"_restgpr1_",0xe,0x1f,FUN_001d8c60,FUN_001d8c80);\n    FUN_001db270(puVar4,param_4,"_savefpr_",0xe,0x1f,FUN_001d8cb0,FUN_001d8cd0);\n    FUN_001db270(puVar4,param_4,"_restfpr_",0xe,0x1d,FUN_001d8d00,FUN_001d8d20);\n    FUN_001db270(puVar4,param_4,"_restfpr_",0x1e,0x1f,FUN_001d8d00,FUN_001d8d20);\n    FUN_001db270(puVar4,param_4,"._savef",0xe,0x1f,FUN_001d8cb0,FUN_001d8d80);\n    FUN_001db270(puVar4,param_4,"._restf",0xe,0x1f,FUN_001d8d00,FUN_001d8db0);\n    FUN_001db270(puVar4,param_4,"_savevr_",0x14,0x1f,FUN_001d8de0,FUN_001d8e10);\n    uVar9 = 0;\n    FUN_001db270(puVar4,param_4,"_restvr_",0x14,0x1f,FUN_001d8e40,FUN_001d8e70);\n    *(undefined8 **)(param_1 + 0x140) = puVar4;\n    FUN_003839a0(param_2,".text",1,6,puVar4,9,uVar9 & 0xffffffff00000000);\n    FUN_001de660(param_1 + 0x20,param_4,param_2);\n    in_stack_ffffffffffffff90 = 0x21fea3;\n    FUN_001e1ee0(param_1,param_2);\n    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;\n    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841) != '\0') &&\n       (lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28), lVar3 != 0)) {\n      lVar5 = *(long *)(lVar3 + 0x90);\n      lVar3 = *(long *)(lVar3 + 0x88);\n      if (0x3f < (ulong)(lVar5 - lVar3)) {\n        FUN_002297f0(&local_58,lVar3,lVar5);\n        if (local_48 == 0) {\n                    \n          FUN_001f7950(lVar3,lVar5);\n        }\n        else {\n                    \n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        FUN_0049e310(local_48,&DAT_0058ad47);\n      }\n    }\n  }" (if "if") (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x5051) == '\0')" (( "(") (binary_expression "*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x5051) == '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x5051)" (* "*") (cast_expression "(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x5051)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x5051)" (( "(") (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x5051" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" (( "(") (binary_expression "PTR_DAT_0067cb08 + 0x10" (identifier "PTR_DAT_0067cb08") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x5051")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    puVar4 = (undefined8 *)FUN_0049cb60(0x40);\n    puVar4[1] = 0;\n    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n    puVar4[2] = 0;\n    puVar4[3] = 0xffffffffffffffff;\n    puVar4[5] = 0;\n    puVar4[6] = 4;\n    *puVar4 = &PTR_FUN_00664fb8;\n    puVar4[7] = 0;\n                    \n    FUN_001db270(puVar4,param_4,&DAT_0054cfeb,0xe,0x1f,FUN_001d8b40,FUN_001d8b60);\n    FUN_001db270(puVar4,param_4,"_restgpr0_",0xe,0x1d,FUN_001d8b90,FUN_001d8bb0);\n    FUN_001db270(puVar4,param_4,"_restgpr0_",0x1e,0x1f,FUN_001d8b90,FUN_001d8bb0);\n    FUN_001db270(puVar4,param_4,"_savegpr1_",0xe,0x1f,FUN_001d8c10,FUN_001d8c30);\n    FUN_001db270(puVar4,param_4,"_restgpr1_",0xe,0x1f,FUN_001d8c60,FUN_001d8c80);\n    FUN_001db270(puVar4,param_4,"_savefpr_",0xe,0x1f,FUN_001d8cb0,FUN_001d8cd0);\n    FUN_001db270(puVar4,param_4,"_restfpr_",0xe,0x1d,FUN_001d8d00,FUN_001d8d20);\n    FUN_001db270(puVar4,param_4,"_restfpr_",0x1e,0x1f,FUN_001d8d00,FUN_001d8d20);\n    FUN_001db270(puVar4,param_4,"._savef",0xe,0x1f,FUN_001d8cb0,FUN_001d8d80);\n    FUN_001db270(puVar4,param_4,"._restf",0xe,0x1f,FUN_001d8d00,FUN_001d8db0);\n    FUN_001db270(puVar4,param_4,"_savevr_",0x14,0x1f,FUN_001d8de0,FUN_001d8e10);\n    uVar9 = 0;\n    FUN_001db270(puVar4,param_4,"_restvr_",0x14,0x1f,FUN_001d8e40,FUN_001d8e70);\n    *(undefined8 **)(param_1 + 0x140) = puVar4;\n    FUN_003839a0(param_2,".text",1,6,puVar4,9,uVar9 & 0xffffffff00000000);\n    FUN_001de660(param_1 + 0x20,param_4,param_2);\n    in_stack_ffffffffffffff90 = 0x21fea3;\n    FUN_001e1ee0(param_1,param_2);\n    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;\n    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841) != '\0') &&\n       (lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28), lVar3 != 0)) {\n      lVar5 = *(long *)(lVar3 + 0x90);\n      lVar3 = *(long *)(lVar3 + 0x88);\n      if (0x3f < (ulong)(lVar5 - lVar3)) {\n        FUN_002297f0(&local_58,lVar3,lVar5);\n        if (local_48 == 0) {\n                    \n          FUN_001f7950(lVar3,lVar5);\n        }\n        else {\n                    \n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        FUN_0049e310(local_48,&DAT_0058ad47);\n      }\n    }\n  }" ({ "{") (expression_statement "puVar4 = (undefined8 *)FUN_0049cb60(0x40);" (assignment_expression "puVar4 = (undefined8 *)FUN_0049cb60(0x40)" (identifier "puVar4") (= "=") (cast_expression "(undefined8 *)FUN_0049cb60(0x40)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0049cb60(0x40)" (identifier "FUN_0049cb60") (argument_list "(0x40)" (( "(") (number_literal "0x40") () ")"))))) (; ";")) (expression_statement "puVar4[1] = 0;" (assignment_expression "puVar4[1] = 0" (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;" (assignment_expression "*(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 4)" (* "*") (cast_expression "(byte *)(puVar4 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 4)" (( "(") (binary_expression "puVar4 + 4" (identifier "puVar4") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar4 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 4)" (* "*") (cast_expression "(byte *)(puVar4 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 4)" (( "(") (binary_expression "puVar4 + 4" (identifier "puVar4") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xe0"))) (; ";")) (expression_statement "puVar4[2] = 0;" (assignment_expression "puVar4[2] = 0" (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[3] = 0xffffffffffffffff;" (assignment_expression "puVar4[3] = 0xffffffffffffffff" (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "puVar4[5] = 0;" (assignment_expression "puVar4[5] = 0" (subscript_expression "puVar4[5]" (identifier "puVar4") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[6] = 4;" (assignment_expression "puVar4[6] = 4" (subscript_expression "puVar4[6]" (identifier "puVar4") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "4")) (; ";")) (expression_statement "*puVar4 = &PTR_FUN_00664fb8;" (assignment_expression "*puVar4 = &PTR_FUN_00664fb8" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (pointer_expression "&PTR_FUN_00664fb8" (& "&") (identifier "PTR_FUN_00664fb8"))) (; ";")) (expression_statement "puVar4[7] = 0;" (assignment_expression "puVar4[7] = 0" (subscript_expression "puVar4[7]" (identifier "puVar4") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_001db270(puVar4,param_4,&DAT_0054cfeb,0xe,0x1f,FUN_001d8b40,FUN_001d8b60);" (call_expression "FUN_001db270(puVar4,param_4,&DAT_0054cfeb,0xe,0x1f,FUN_001d8b40,FUN_001d8b60)" (identifier "FUN_001db270") (argument_list "(puVar4,param_4,&DAT_0054cfeb,0xe,0x1f,FUN_001d8b40,FUN_001d8b60)" (( "(") (identifier "puVar4") (, ",") (identifier "param_4") (, ",") (pointer_expression "&DAT_0054cfeb" (& "&") (identifier "DAT_0054cfeb")) (, ",") (number_literal "0xe") (, ",") (number_literal "0x1f") (, ",") (identifier "FUN_001d8b40") (, ",") (identifier "FUN_001d8b60") () ")"))) (; ";")) (expression_statement "FUN_001db270(puVar4,param_4,"_restgpr0_",0xe,0x1d,FUN_001d8b90,FUN_001d8bb0);" (call_expression "FUN_001db270(puVar4,param_4,"_restgpr0_",0xe,0x1d,FUN_001d8b90,FUN_001d8bb0)" (identifier "FUN_001db270") (argument_list "(puVar4,param_4,"_restgpr0_",0xe,0x1d,FUN_001d8b90,FUN_001d8bb0)" (( "(") (identifier "puVar4") (, ",") (identifier "param_4") (, ",") (string_literal ""_restgpr0_"" (" """) (string_content "_restgpr0_") (" """)) (, ",") (number_literal "0xe") (, ",") (number_literal "0x1d") (, ",") (identifier "FUN_001d8b90") (, ",") (identifier "FUN_001d8bb0") () ")"))) (; ";")) (expression_statement "FUN_001db270(puVar4,param_4,"_restgpr0_",0x1e,0x1f,FUN_001d8b90,FUN_001d8bb0);" (call_expression "FUN_001db270(puVar4,param_4,"_restgpr0_",0x1e,0x1f,FUN_001d8b90,FUN_001d8bb0)" (identifier "FUN_001db270") (argument_list "(puVar4,param_4,"_restgpr0_",0x1e,0x1f,FUN_001d8b90,FUN_001d8bb0)" (( "(") (identifier "puVar4") (, ",") (identifier "param_4") (, ",") (string_literal ""_restgpr0_"" (" """) (string_content "_restgpr0_") (" """)) (, ",") (number_literal "0x1e") (, ",") (number_literal "0x1f") (, ",") (identifier "FUN_001d8b90") (, ",") (identifier "FUN_001d8bb0") () ")"))) (; ";")) (expression_statement "FUN_001db270(puVar4,param_4,"_savegpr1_",0xe,0x1f,FUN_001d8c10,FUN_001d8c30);" (call_expression "FUN_001db270(puVar4,param_4,"_savegpr1_",0xe,0x1f,FUN_001d8c10,FUN_001d8c30)" (identifier "FUN_001db270") (argument_list "(puVar4,param_4,"_savegpr1_",0xe,0x1f,FUN_001d8c10,FUN_001d8c30)" (( "(") (identifier "puVar4") (, ",") (identifier "param_4") (, ",") (string_literal ""_savegpr1_"" (" """) (string_content "_savegpr1_") (" """)) (, ",") (number_literal "0xe") (, ",") (number_literal "0x1f") (, ",") (identifier "FUN_001d8c10") (, ",") (identifier "FUN_001d8c30") () ")"))) (; ";")) (expression_statement "FUN_001db270(puVar4,param_4,"_restgpr1_",0xe,0x1f,FUN_001d8c60,FUN_001d8c80);" (call_expression "FUN_001db270(puVar4,param_4,"_restgpr1_",0xe,0x1f,FUN_001d8c60,FUN_001d8c80)" (identifier "FUN_001db270") (argument_list "(puVar4,param_4,"_restgpr1_",0xe,0x1f,FUN_001d8c60,FUN_001d8c80)" (( "(") (identifier "puVar4") (, ",") (identifier "param_4") (, ",") (string_literal ""_restgpr1_"" (" """) (string_content "_restgpr1_") (" """)) (, ",") (number_literal "0xe") (, ",") (number_literal "0x1f") (, ",") (identifier "FUN_001d8c60") (, ",") (identifier "FUN_001d8c80") () ")"))) (; ";")) (expression_statement "FUN_001db270(puVar4,param_4,"_savefpr_",0xe,0x1f,FUN_001d8cb0,FUN_001d8cd0);" (call_expression "FUN_001db270(puVar4,param_4,"_savefpr_",0xe,0x1f,FUN_001d8cb0,FUN_001d8cd0)" (identifier "FUN_001db270") (argument_list "(puVar4,param_4,"_savefpr_",0xe,0x1f,FUN_001d8cb0,FUN_001d8cd0)" (( "(") (identifier "puVar4") (, ",") (identifier "param_4") (, ",") (string_literal ""_savefpr_"" (" """) (string_content "_savefpr_") (" """)) (, ",") (number_literal "0xe") (, ",") (number_literal "0x1f") (, ",") (identifier "FUN_001d8cb0") (, ",") (identifier "FUN_001d8cd0") () ")"))) (; ";")) (expression_statement "FUN_001db270(puVar4,param_4,"_restfpr_",0xe,0x1d,FUN_001d8d00,FUN_001d8d20);" (call_expression "FUN_001db270(puVar4,param_4,"_restfpr_",0xe,0x1d,FUN_001d8d00,FUN_001d8d20)" (identifier "FUN_001db270") (argument_list "(puVar4,param_4,"_restfpr_",0xe,0x1d,FUN_001d8d00,FUN_001d8d20)" (( "(") (identifier "puVar4") (, ",") (identifier "param_4") (, ",") (string_literal ""_restfpr_"" (" """) (string_content "_restfpr_") (" """)) (, ",") (number_literal "0xe") (, ",") (number_literal "0x1d") (, ",") (identifier "FUN_001d8d00") (, ",") (identifier "FUN_001d8d20") () ")"))) (; ";")) (expression_statement "FUN_001db270(puVar4,param_4,"_restfpr_",0x1e,0x1f,FUN_001d8d00,FUN_001d8d20);" (call_expression "FUN_001db270(puVar4,param_4,"_restfpr_",0x1e,0x1f,FUN_001d8d00,FUN_001d8d20)" (identifier "FUN_001db270") (argument_list "(puVar4,param_4,"_restfpr_",0x1e,0x1f,FUN_001d8d00,FUN_001d8d20)" (( "(") (identifier "puVar4") (, ",") (identifier "param_4") (, ",") (string_literal ""_restfpr_"" (" """) (string_content "_restfpr_") (" """)) (, ",") (number_literal "0x1e") (, ",") (number_literal "0x1f") (, ",") (identifier "FUN_001d8d00") (, ",") (identifier "FUN_001d8d20") () ")"))) (; ";")) (expression_statement "FUN_001db270(puVar4,param_4,"._savef",0xe,0x1f,FUN_001d8cb0,FUN_001d8d80);" (call_expression "FUN_001db270(puVar4,param_4,"._savef",0xe,0x1f,FUN_001d8cb0,FUN_001d8d80)" (identifier "FUN_001db270") (argument_list "(puVar4,param_4,"._savef",0xe,0x1f,FUN_001d8cb0,FUN_001d8d80)" (( "(") (identifier "puVar4") (, ",") (identifier "param_4") (, ",") (string_literal ""._savef"" (" """) (string_content "._savef") (" """)) (, ",") (number_literal "0xe") (, ",") (number_literal "0x1f") (, ",") (identifier "FUN_001d8cb0") (, ",") (identifier "FUN_001d8d80") () ")"))) (; ";")) (expression_statement "FUN_001db270(puVar4,param_4,"._restf",0xe,0x1f,FUN_001d8d00,FUN_001d8db0);" (call_expression "FUN_001db270(puVar4,param_4,"._restf",0xe,0x1f,FUN_001d8d00,FUN_001d8db0)" (identifier "FUN_001db270") (argument_list "(puVar4,param_4,"._restf",0xe,0x1f,FUN_001d8d00,FUN_001d8db0)" (( "(") (identifier "puVar4") (, ",") (identifier "param_4") (, ",") (string_literal ""._restf"" (" """) (string_content "._restf") (" """)) (, ",") (number_literal "0xe") (, ",") (number_literal "0x1f") (, ",") (identifier "FUN_001d8d00") (, ",") (identifier "FUN_001d8db0") () ")"))) (; ";")) (expression_statement "FUN_001db270(puVar4,param_4,"_savevr_",0x14,0x1f,FUN_001d8de0,FUN_001d8e10);" (call_expression "FUN_001db270(puVar4,param_4,"_savevr_",0x14,0x1f,FUN_001d8de0,FUN_001d8e10)" (identifier "FUN_001db270") (argument_list "(puVar4,param_4,"_savevr_",0x14,0x1f,FUN_001d8de0,FUN_001d8e10)" (( "(") (identifier "puVar4") (, ",") (identifier "param_4") (, ",") (string_literal ""_savevr_"" (" """) (string_content "_savevr_") (" """)) (, ",") (number_literal "0x14") (, ",") (number_literal "0x1f") (, ",") (identifier "FUN_001d8de0") (, ",") (identifier "FUN_001d8e10") () ")"))) (; ";")) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_001db270(puVar4,param_4,"_restvr_",0x14,0x1f,FUN_001d8e40,FUN_001d8e70);" (call_expression "FUN_001db270(puVar4,param_4,"_restvr_",0x14,0x1f,FUN_001d8e40,FUN_001d8e70)" (identifier "FUN_001db270") (argument_list "(puVar4,param_4,"_restvr_",0x14,0x1f,FUN_001d8e40,FUN_001d8e70)" (( "(") (identifier "puVar4") (, ",") (identifier "param_4") (, ",") (string_literal ""_restvr_"" (" """) (string_content "_restvr_") (" """)) (, ",") (number_literal "0x14") (, ",") (number_literal "0x1f") (, ",") (identifier "FUN_001d8e40") (, ",") (identifier "FUN_001d8e70") () ")"))) (; ";")) (expression_statement "*(undefined8 **)(param_1 + 0x140) = puVar4;" (assignment_expression "*(undefined8 **)(param_1 + 0x140) = puVar4" (pointer_expression "*(undefined8 **)(param_1 + 0x140)" (* "*") (cast_expression "(undefined8 **)(param_1 + 0x140)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "FUN_003839a0(param_2,".text",1,6,puVar4,9,uVar9 & 0xffffffff00000000);" (call_expression "FUN_003839a0(param_2,".text",1,6,puVar4,9,uVar9 & 0xffffffff00000000)" (identifier "FUN_003839a0") (argument_list "(param_2,".text",1,6,puVar4,9,uVar9 & 0xffffffff00000000)" (( "(") (identifier "param_2") (, ",") (string_literal "".text"" (" """) (string_content ".text") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "6") (, ",") (identifier "puVar4") (, ",") (number_literal "9") (, ",") (binary_expression "uVar9 & 0xffffffff00000000" (identifier "uVar9") (& "&") (number_literal "0xffffffff00000000")) () ")"))) (; ";")) (expression_statement "FUN_001de660(param_1 + 0x20,param_4,param_2);" (call_expression "FUN_001de660(param_1 + 0x20,param_4,param_2)" (identifier "FUN_001de660") (argument_list "(param_1 + 0x20,param_4,param_2)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) (, ",") (identifier "param_4") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "in_stack_ffffffffffffff90 = 0x21fea3;" (assignment_expression "in_stack_ffffffffffffff90 = 0x21fea3" (identifier "in_stack_ffffffffffffff90") (= "=") (number_literal "0x21fea3")) (; ";")) (expression_statement "FUN_001e1ee0(param_1,param_2);" (call_expression "FUN_001e1ee0(param_1,param_2)" (identifier "FUN_001e1ee0") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")"))) (; ";")) (if_statement "if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;" (if "if") (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) == 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" (( "(") (binary_expression "PTR_DAT_0067cb08 + 0x10" (identifier "PTR_DAT_0067cb08") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00220104;" (goto "goto") (statement_identifier "LAB_00220104") (; ";"))) (if_statement "if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841) != '\0') &&\n       (lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28), lVar3 != 0)) {\n      lVar5 = *(long *)(lVar3 + 0x90);\n      lVar3 = *(long *)(lVar3 + 0x88);\n      if (0x3f < (ulong)(lVar5 - lVar3)) {\n        FUN_002297f0(&local_58,lVar3,lVar5);\n        if (local_48 == 0) {\n                    \n          FUN_001f7950(lVar3,lVar5);\n        }\n        else {\n                    \n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        FUN_0049e310(local_48,&DAT_0058ad47);\n      }\n    }" (if "if") (parenthesized_expression "((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841) != '\0') &&\n       (lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28), lVar3 != 0))" (( "(") (binary_expression "(*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841) != '\0') &&\n       (lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28), lVar3 != 0)" (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841) != '\0')" (( "(") (binary_expression "*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841) != '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841)" (* "*") (cast_expression "(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841)" (( "(") (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" (( "(") (binary_expression "PTR_DAT_0067cb08 + 0x10" (identifier "PTR_DAT_0067cb08") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x6841")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28), lVar3 != 0)" (( "(") (comma_expression "lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28), lVar3 != 0" (assignment_expression "lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(*(long *)(param_1 + 0x20) + 0x28)" (* "*") (cast_expression "(long *)(*(long *)(param_1 + 0x20) + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 0x20) + 0x28)" (( "(") (binary_expression "*(long *)(param_1 + 0x20) + 0x28" (pointer_expression "*(long *)(param_1 + 0x20)" (* "*") (cast_expression "(long *)(param_1 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (+ "+") (number_literal "0x28")) () ")"))))) (, ",") (binary_expression "lVar3 != 0" (identifier "lVar3") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      lVar5 = *(long *)(lVar3 + 0x90);\n      lVar3 = *(long *)(lVar3 + 0x88);\n      if (0x3f < (ulong)(lVar5 - lVar3)) {\n        FUN_002297f0(&local_58,lVar3,lVar5);\n        if (local_48 == 0) {\n                    \n          FUN_001f7950(lVar3,lVar5);\n        }\n        else {\n                    \n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        FUN_0049e310(local_48,&DAT_0058ad47);\n      }\n    }" ({ "{") (expression_statement "lVar5 = *(long *)(lVar3 + 0x90);" (assignment_expression "lVar5 = *(long *)(lVar3 + 0x90)" (identifier "lVar5") (= "=") (pointer_expression "*(long *)(lVar3 + 0x90)" (* "*") (cast_expression "(long *)(lVar3 + 0x90)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x90)" (( "(") (binary_expression "lVar3 + 0x90" (identifier "lVar3") (+ "+") (number_literal "0x90")) () ")"))))) (; ";")) (expression_statement "lVar3 = *(long *)(lVar3 + 0x88);" (assignment_expression "lVar3 = *(long *)(lVar3 + 0x88)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(lVar3 + 0x88)" (* "*") (cast_expression "(long *)(lVar3 + 0x88)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x88)" (( "(") (binary_expression "lVar3 + 0x88" (identifier "lVar3") (+ "+") (number_literal "0x88")) () ")"))))) (; ";")) (if_statement "if (0x3f < (ulong)(lVar5 - lVar3)) {\n        FUN_002297f0(&local_58,lVar3,lVar5);\n        if (local_48 == 0) {\n                    \n          FUN_001f7950(lVar3,lVar5);\n        }\n        else {\n                    \n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        FUN_0049e310(local_48,&DAT_0058ad47);\n      }" (if "if") (parenthesized_expression "(0x3f < (ulong)(lVar5 - lVar3))" (( "(") (binary_expression "0x3f < (ulong)(lVar5 - lVar3)" (number_literal "0x3f") (< "<") (call_expression "(ulong)(lVar5 - lVar3)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(lVar5 - lVar3)" (( "(") (binary_expression "lVar5 - lVar3" (identifier "lVar5") (- "-") (identifier "lVar3")) () ")")))) () ")")) (compound_statement "{\n        FUN_002297f0(&local_58,lVar3,lVar5);\n        if (local_48 == 0) {\n                    \n          FUN_001f7950(lVar3,lVar5);\n        }\n        else {\n                    \n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }\n        in_stack_ffffffffffffff90 = 0x21ff32;\n        FUN_0049e310(local_48,&DAT_0058ad47);\n      }" ({ "{") (expression_statement "FUN_002297f0(&local_58,lVar3,lVar5);" (call_expression "FUN_002297f0(&local_58,lVar3,lVar5)" (identifier "FUN_002297f0") (argument_list "(&local_58,lVar3,lVar5)" (( "(") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (identifier "lVar3") (, ",") (identifier "lVar5") () ")"))) (; ";")) (if_statement "if (local_48 == 0) {\n                    \n          FUN_001f7950(lVar3,lVar5);\n        }\n        else {\n                    \n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }" (if "if") (parenthesized_expression "(local_48 == 0)" (( "(") (binary_expression "local_48 == 0" (identifier "local_48") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n          FUN_001f7950(lVar3,lVar5);\n        }" ({ "{") (expression_statement "FUN_001f7950(lVar3,lVar5);" (call_expression "FUN_001f7950(lVar3,lVar5)" (identifier "FUN_001f7950") (argument_list "(lVar3,lVar5)" (( "(") (identifier "lVar3") (, ",") (identifier "lVar5") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                    \n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }" (else "else") (compound_statement "{\n                    \n          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);\n        }" ({ "{") (expression_statement "FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);" (call_expression "FUN_001f80c0(lVar3,lVar5,local_48,uStack_50)" (identifier "FUN_001f80c0") (argument_list "(lVar3,lVar5,local_48,uStack_50)" (( "(") (identifier "lVar3") (, ",") (identifier "lVar5") (, ",") (identifier "local_48") (, ",") (identifier "uStack_50") () ")"))) (; ";")) (} "}")))) (expression_statement "in_stack_ffffffffffffff90 = 0x21ff32;" (assignment_expression "in_stack_ffffffffffffff90 = 0x21ff32" (identifier "in_stack_ffffffffffffff90") (= "=") (number_literal "0x21ff32")) (; ";")) (expression_statement "FUN_0049e310(local_48,&DAT_0058ad47);" (call_expression "FUN_0049e310(local_48,&DAT_0058ad47)" (identifier "FUN_0049e310") (argument_list "(local_48,&DAT_0058ad47)" (( "(") (identifier "local_48") (, ",") (pointer_expression "&DAT_0058ad47" (& "&") (identifier "DAT_0058ad47")) () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "lVar3 = *(long *)(param_2 + 0x300);" (assignment_expression "lVar3 = *(long *)(param_2 + 0x300)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_2 + 0x300)" (* "*") (cast_expression "(long *)(param_2 + 0x300)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x300)" (( "(") (binary_expression "param_2 + 0x300" (identifier "param_2") (+ "+") (number_literal "0x300")) () ")"))))) (; ";")) (if_statement "if (lVar3 != 0) {\n    uVar2 = 0;\n    lVar5 = *(long *)(param_1 + 0x28);\n    if (lVar5 != 0) {\n      uVar2 = *(undefined8 *)(lVar5 + 0x38);\n    }\n    uVar13 = 0;\n    FUN_0037e220(param_2,0,lVar5,uVar2,*(undefined8 *)(param_1 + 0x50),1);\n    plVar10 = *(long **)(param_1 + 0x48);\n    if (plVar10 != (long *)0x0) {\n      if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n        (**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13);\n        if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n                    \n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        plVar10 = *(long **)(param_1 + 0x48);\n      }\n      puVar4 = *(undefined8 **)(lVar3 + 0x40);\n      local_48 = CONCAT44((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000);\n      local_58 = plVar10;\n      if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n        FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n      }\n      else {\n        *puVar4 = plVar10;\n        puVar4[1] = uStack_50;\n        puVar4[2] = local_48;\n        *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n      }\n    }\n    if (*(char *)(param_1 + 0x133) == '\0') {\n      uVar8 = 0;\n      if (*(byte *)(param_1 + 0x134) == 0) goto LAB_0021f9ad;\n    }\n    else {\n      uVar8 = 4;\n    }\n    local_48 = -0x8ffffffd;\n    puVar4 = *(undefined8 **)(lVar3 + 0x40);\n    local_58 = (long *)CONCAT44(local_58._4_4_,*(byte *)(param_1 + 0x134) | uVar8);\n    if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n      FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n    }\n    else {\n      *puVar4 = local_58;\n      puVar4[1] = uStack_50;\n      puVar4[2] = 0xffffffff70000003;\n      *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n    }\n  }" (if "if") (parenthesized_expression "(lVar3 != 0)" (( "(") (binary_expression "lVar3 != 0" (identifier "lVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar2 = 0;\n    lVar5 = *(long *)(param_1 + 0x28);\n    if (lVar5 != 0) {\n      uVar2 = *(undefined8 *)(lVar5 + 0x38);\n    }\n    uVar13 = 0;\n    FUN_0037e220(param_2,0,lVar5,uVar2,*(undefined8 *)(param_1 + 0x50),1);\n    plVar10 = *(long **)(param_1 + 0x48);\n    if (plVar10 != (long *)0x0) {\n      if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n        (**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13);\n        if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n                    \n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        plVar10 = *(long **)(param_1 + 0x48);\n      }\n      puVar4 = *(undefined8 **)(lVar3 + 0x40);\n      local_48 = CONCAT44((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000);\n      local_58 = plVar10;\n      if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n        FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n      }\n      else {\n        *puVar4 = plVar10;\n        puVar4[1] = uStack_50;\n        puVar4[2] = local_48;\n        *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n      }\n    }\n    if (*(char *)(param_1 + 0x133) == '\0') {\n      uVar8 = 0;\n      if (*(byte *)(param_1 + 0x134) == 0) goto LAB_0021f9ad;\n    }\n    else {\n      uVar8 = 4;\n    }\n    local_48 = -0x8ffffffd;\n    puVar4 = *(undefined8 **)(lVar3 + 0x40);\n    local_58 = (long *)CONCAT44(local_58._4_4_,*(byte *)(param_1 + 0x134) | uVar8);\n    if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n      FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n    }\n    else {\n      *puVar4 = local_58;\n      puVar4[1] = uStack_50;\n      puVar4[2] = 0xffffffff70000003;\n      *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n    }\n  }" ({ "{") (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar5 = *(long *)(param_1 + 0x28);" (assignment_expression "lVar5 = *(long *)(param_1 + 0x28)" (identifier "lVar5") (= "=") (pointer_expression "*(long *)(param_1 + 0x28)" (* "*") (cast_expression "(long *)(param_1 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (lVar5 != 0) {\n      uVar2 = *(undefined8 *)(lVar5 + 0x38);\n    }" (if "if") (parenthesized_expression "(lVar5 != 0)" (( "(") (binary_expression "lVar5 != 0" (identifier "lVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar2 = *(undefined8 *)(lVar5 + 0x38);\n    }" ({ "{") (expression_statement "uVar2 = *(undefined8 *)(lVar5 + 0x38);" (assignment_expression "uVar2 = *(undefined8 *)(lVar5 + 0x38)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined8 *)(lVar5 + 0x38)" (* "*") (cast_expression "(undefined8 *)(lVar5 + 0x38)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x38)" (( "(") (binary_expression "lVar5 + 0x38" (identifier "lVar5") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" (identifier "uVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_0037e220(param_2,0,lVar5,uVar2,*(undefined8 *)(param_1 + 0x50),1);" (call_expression "FUN_0037e220(param_2,0,lVar5,uVar2,*(undefined8 *)(param_1 + 0x50),1)" (identifier "FUN_0037e220") (argument_list "(param_2,0,lVar5,uVar2,*(undefined8 *)(param_1 + 0x50),1)" (( "(") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "lVar5") (, ",") (identifier "uVar2") (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x50)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x50)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")")))) (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "plVar10 = *(long **)(param_1 + 0x48);" (assignment_expression "plVar10 = *(long **)(param_1 + 0x48)" (identifier "plVar10") (= "=") (pointer_expression "*(long **)(param_1 + 0x48)" (* "*") (cast_expression "(long **)(param_1 + 0x48)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (if_statement "if (plVar10 != (long *)0x0) {\n      if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n        (**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13);\n        if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n                    \n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        plVar10 = *(long **)(param_1 + 0x48);\n      }\n      puVar4 = *(undefined8 **)(lVar3 + 0x40);\n      local_48 = CONCAT44((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000);\n      local_58 = plVar10;\n      if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n        FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n      }\n      else {\n        *puVar4 = plVar10;\n        puVar4[1] = uStack_50;\n        puVar4[2] = local_48;\n        *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n      }\n    }" (if "if") (parenthesized_expression "(plVar10 != (long *)0x0)" (( "(") (binary_expression "plVar10 != (long *)0x0" (identifier "plVar10") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n        (**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13);\n        if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n                    \n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        plVar10 = *(long **)(param_1 + 0x48);\n      }\n      puVar4 = *(undefined8 **)(lVar3 + 0x40);\n      local_48 = CONCAT44((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000);\n      local_58 = plVar10;\n      if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n        FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n      }\n      else {\n        *puVar4 = plVar10;\n        puVar4[1] = uStack_50;\n        puVar4[2] = local_48;\n        *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n      }\n    }" ({ "{") (if_statement "if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n        (**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13);\n        if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n                    \n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        plVar10 = *(long **)(param_1 + 0x48);\n      }" (if "if") (parenthesized_expression "((*(byte *)(plVar10 + 4) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(plVar10 + 4) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar10 + 4) & 2)" (( "(") (binary_expression "*(byte *)(plVar10 + 4) & 2" (pointer_expression "*(byte *)(plVar10 + 4)" (* "*") (cast_expression "(byte *)(plVar10 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar10 + 4)" (( "(") (binary_expression "plVar10 + 4" (identifier "plVar10") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        (**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13);\n        if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n                    \n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        plVar10 = *(long **)(param_1 + 0x48);\n      }" ({ "{") (expression_statement "(**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13);" (call_expression "(**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13)" (parenthesized_expression "(**(code **)(*plVar10 + 0x70))" (( "(") (pointer_expression "**(code **)(*plVar10 + 0x70)" (* "*") (pointer_expression "*(code **)(*plVar10 + 0x70)" (* "*") (cast_expression "(code **)(*plVar10 + 0x70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar10 + 0x70)" (( "(") (binary_expression "*plVar10 + 0x70" (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) (+ "+") (number_literal "0x70")) () ")"))))) () ")")) (argument_list "(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13)" (( "(") (identifier "plVar10") (, ",") (identifier "in_stack_ffffffffffffff90") (, ",") (identifier "extraout_RDX") (, ",") (identifier "uVar13") () ")"))) (; ";")) (if_statement "if ((*(byte *)(plVar10 + 4) & 2) == 0) {\n                    \n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }" (if "if") (parenthesized_expression "((*(byte *)(plVar10 + 4) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(plVar10 + 4) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar10 + 4) & 2)" (( "(") (binary_expression "*(byte *)(plVar10 + 4) & 2" (pointer_expression "*(byte *)(plVar10 + 4)" (* "*") (cast_expression "(byte *)(plVar10 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar10 + 4)" (( "(") (binary_expression "plVar10 + 4" (identifier "plVar10") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n        }" ({ "{") (expression_statement "FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");" (call_expression "FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size")" (identifier "FUN_00352af0") (argument_list "("../../gold/output.h",0x163,"finalize_data_size")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x163") (, ",") (string_literal ""finalize_data_size"" (" """) (string_content "finalize_data_size") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "plVar10 = *(long **)(param_1 + 0x48);" (assignment_expression "plVar10 = *(long **)(param_1 + 0x48)" (identifier "plVar10") (= "=") (pointer_expression "*(long **)(param_1 + 0x48)" (* "*") (cast_expression "(long **)(param_1 + 0x48)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (} "}"))) (expression_statement "puVar4 = *(undefined8 **)(lVar3 + 0x40);" (assignment_expression "puVar4 = *(undefined8 **)(lVar3 + 0x40)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined8 **)(lVar3 + 0x40)" (* "*") (cast_expression "(undefined8 **)(lVar3 + 0x40)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar3 + 0x40)" (( "(") (binary_expression "lVar3 + 0x40" (identifier "lVar3") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "local_48 = CONCAT44((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000);" (assignment_expression "local_48 = CONCAT44((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000)" (identifier "local_48") (= "=") (call_expression "CONCAT44((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000)" (identifier "CONCAT44") (argument_list "((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,\n                          0x70000000)" (( "(") (binary_expression "(-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20" (parenthesized_expression "(-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4)" (( "(") (binary_expression "-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4" (unary_expression "-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0)" (- "-") (call_expression "(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((*(uint *)(plVar10[7] + 0x10) & 2) == 0)" (( "(") (binary_expression "(*(uint *)(plVar10[7] + 0x10) & 2) == 0" (parenthesized_expression "(*(uint *)(plVar10[7] + 0x10) & 2)" (( "(") (binary_expression "*(uint *)(plVar10[7] + 0x10) & 2" (pointer_expression "*(uint *)(plVar10[7] + 0x10)" (* "*") (cast_expression "(uint *)(plVar10[7] + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar10[7] + 0x10)" (( "(") (binary_expression "plVar10[7] + 0x10" (subscript_expression "plVar10[7]" (identifier "plVar10") ([ "[") (number_literal "7") (] "]")) (+ "+") (number_literal "0x10")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0xfffffff4")) () ")")) (+ "+") (number_literal "0x20")) (, ",") (number_literal "0x70000000") () ")")))) (; ";")) (expression_statement "local_58 = plVar10;" (assignment_expression "local_58 = plVar10" (identifier "local_58") (= "=") (identifier "plVar10")) (; ";")) (if_statement "if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n        FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n      }\n      else {\n        *puVar4 = plVar10;\n        puVar4[1] = uStack_50;\n        puVar4[2] = local_48;\n        *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n      }" (if "if") (parenthesized_expression "(puVar4 == *(undefined8 **)(lVar3 + 0x48))" (( "(") (binary_expression "puVar4 == *(undefined8 **)(lVar3 + 0x48)" (identifier "puVar4") (== "==") (pointer_expression "*(undefined8 **)(lVar3 + 0x48)" (* "*") (cast_expression "(undefined8 **)(lVar3 + 0x48)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar3 + 0x48)" (( "(") (binary_expression "lVar3 + 0x48" (identifier "lVar3") (+ "+") (number_literal "0x48")) () ")"))))) () ")")) (compound_statement "{\n        FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n      }" ({ "{") (expression_statement "FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);" (call_expression "FUN_001c1130(lVar3 + 0x38,puVar4,&local_58)" (identifier "FUN_001c1130") (argument_list "(lVar3 + 0x38,puVar4,&local_58)" (( "(") (binary_expression "lVar3 + 0x38" (identifier "lVar3") (+ "+") (number_literal "0x38")) (, ",") (identifier "puVar4") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n        *puVar4 = plVar10;\n        puVar4[1] = uStack_50;\n        puVar4[2] = local_48;\n        *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n      }" (else "else") (compound_statement "{\n        *puVar4 = plVar10;\n        puVar4[1] = uStack_50;\n        puVar4[2] = local_48;\n        *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n      }" ({ "{") (expression_statement "*puVar4 = plVar10;" (assignment_expression "*puVar4 = plVar10" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (identifier "plVar10")) (; ";")) (expression_statement "puVar4[1] = uStack_50;" (assignment_expression "puVar4[1] = uStack_50" (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uStack_50")) (; ";")) (expression_statement "puVar4[2] = local_48;" (assignment_expression "puVar4[2] = local_48" (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_48")) (; ";")) (expression_statement "*(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;" (assignment_expression "*(undefined8 **)(lVar3 + 0x40) = puVar4 + 3" (pointer_expression "*(undefined8 **)(lVar3 + 0x40)" (* "*") (cast_expression "(undefined8 **)(lVar3 + 0x40)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar3 + 0x40)" (( "(") (binary_expression "lVar3 + 0x40" (identifier "lVar3") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (binary_expression "puVar4 + 3" (identifier "puVar4") (+ "+") (number_literal "3"))) (; ";")) (} "}")))) (} "}"))) (if_statement "if (*(char *)(param_1 + 0x133) == '\0') {\n      uVar8 = 0;\n      if (*(byte *)(param_1 + 0x134) == 0) goto LAB_0021f9ad;\n    }\n    else {\n      uVar8 = 4;\n    }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0x133) == '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x133) == '\0'" (pointer_expression "*(char *)(param_1 + 0x133)" (* "*") (cast_expression "(char *)(param_1 + 0x133)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x133)" (( "(") (binary_expression "param_1 + 0x133" (identifier "param_1") (+ "+") (number_literal "0x133")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar8 = 0;\n      if (*(byte *)(param_1 + 0x134) == 0) goto LAB_0021f9ad;\n    }" ({ "{") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*(byte *)(param_1 + 0x134) == 0) goto LAB_0021f9ad;" (if "if") (parenthesized_expression "(*(byte *)(param_1 + 0x134) == 0)" (( "(") (binary_expression "*(byte *)(param_1 + 0x134) == 0" (pointer_expression "*(byte *)(param_1 + 0x134)" (* "*") (cast_expression "(byte *)(param_1 + 0x134)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x134)" (( "(") (binary_expression "param_1 + 0x134" (identifier "param_1") (+ "+") (number_literal "0x134")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0021f9ad;" (goto "goto") (statement_identifier "LAB_0021f9ad") (; ";"))) (} "}")) (else_clause "else {\n      uVar8 = 4;\n    }" (else "else") (compound_statement "{\n      uVar8 = 4;\n    }" ({ "{") (expression_statement "uVar8 = 4;" (assignment_expression "uVar8 = 4" (identifier "uVar8") (= "=") (number_literal "4")) (; ";")) (} "}")))) (expression_statement "local_48 = -0x8ffffffd;" (assignment_expression "local_48 = -0x8ffffffd" (identifier "local_48") (= "=") (number_literal "-0x8ffffffd")) (; ";")) (expression_statement "puVar4 = *(undefined8 **)(lVar3 + 0x40);" (assignment_expression "puVar4 = *(undefined8 **)(lVar3 + 0x40)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined8 **)(lVar3 + 0x40)" (* "*") (cast_expression "(undefined8 **)(lVar3 + 0x40)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar3 + 0x40)" (( "(") (binary_expression "lVar3 + 0x40" (identifier "lVar3") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "local_58 = (long *)CONCAT44(local_58._4_4_,*(byte *)(param_1 + 0x134) | uVar8);" (assignment_expression "local_58 = (long *)CONCAT44(local_58._4_4_,*(byte *)(param_1 + 0x134) | uVar8)" (identifier "local_58") (= "=") (cast_expression "(long *)CONCAT44(local_58._4_4_,*(byte *)(param_1 + 0x134) | uVar8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT44(local_58._4_4_,*(byte *)(param_1 + 0x134) | uVar8)" (identifier "CONCAT44") (argument_list "(local_58._4_4_,*(byte *)(param_1 + 0x134) | uVar8)" (( "(") (field_expression "local_58._4_4_" (identifier "local_58") (. ".") (field_identifier "_4_4_")) (, ",") (binary_expression "*(byte *)(param_1 + 0x134) | uVar8" (pointer_expression "*(byte *)(param_1 + 0x134)" (* "*") (cast_expression "(byte *)(param_1 + 0x134)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x134)" (( "(") (binary_expression "param_1 + 0x134" (identifier "param_1") (+ "+") (number_literal "0x134")) () ")")))) (| "|") (identifier "uVar8")) () ")"))))) (; ";")) (if_statement "if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {\n      FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n    }\n    else {\n      *puVar4 = local_58;\n      puVar4[1] = uStack_50;\n      puVar4[2] = 0xffffffff70000003;\n      *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n    }" (if "if") (parenthesized_expression "(puVar4 == *(undefined8 **)(lVar3 + 0x48))" (( "(") (binary_expression "puVar4 == *(undefined8 **)(lVar3 + 0x48)" (identifier "puVar4") (== "==") (pointer_expression "*(undefined8 **)(lVar3 + 0x48)" (* "*") (cast_expression "(undefined8 **)(lVar3 + 0x48)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar3 + 0x48)" (( "(") (binary_expression "lVar3 + 0x48" (identifier "lVar3") (+ "+") (number_literal "0x48")) () ")"))))) () ")")) (compound_statement "{\n      FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);\n    }" ({ "{") (expression_statement "FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);" (call_expression "FUN_001c1130(lVar3 + 0x38,puVar4,&local_58)" (identifier "FUN_001c1130") (argument_list "(lVar3 + 0x38,puVar4,&local_58)" (( "(") (binary_expression "lVar3 + 0x38" (identifier "lVar3") (+ "+") (number_literal "0x38")) (, ",") (identifier "puVar4") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n      *puVar4 = local_58;\n      puVar4[1] = uStack_50;\n      puVar4[2] = 0xffffffff70000003;\n      *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n    }" (else "else") (compound_statement "{\n      *puVar4 = local_58;\n      puVar4[1] = uStack_50;\n      puVar4[2] = 0xffffffff70000003;\n      *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;\n    }" ({ "{") (expression_statement "*puVar4 = local_58;" (assignment_expression "*puVar4 = local_58" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (identifier "local_58")) (; ";")) (expression_statement "puVar4[1] = uStack_50;" (assignment_expression "puVar4[1] = uStack_50" (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uStack_50")) (; ";")) (expression_statement "puVar4[2] = 0xffffffff70000003;" (assignment_expression "puVar4[2] = 0xffffffff70000003" (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0xffffffff70000003")) (; ";")) (expression_statement "*(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;" (assignment_expression "*(undefined8 **)(lVar3 + 0x40) = puVar4 + 3" (pointer_expression "*(undefined8 **)(lVar3 + 0x40)" (* "*") (cast_expression "(undefined8 **)(lVar3 + 0x40)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar3 + 0x40)" (( "(") (binary_expression "lVar3 + 0x40" (identifier "lVar3") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (binary_expression "puVar4 + 3" (identifier "puVar4") (+ "+") (number_literal "3"))) (; ";")) (} "}")))) (} "}"))) (labeled_statement "LAB_0021f9ad:\n  if (*(long *)(param_1 + 0x60) != *(long *)(param_1 + 0x58)) {\n    uVar2 = FUN_001e1980(param_1 + 0x50,param_2);\n    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\nLAB_00220104:\n                    \n      FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n    }\n    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0') &&\n       (plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60))) {\n      do {\n        if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }\n        plVar10 = plVar10 + 7;\n      } while (*(long **)(param_1 + 0x60) != plVar10);\n    }\n    FUN_0033bfa0(param_1 + 0x58,uVar2);\n  }" (statement_identifier "LAB_0021f9ad") (: ":") (if_statement "if (*(long *)(param_1 + 0x60) != *(long *)(param_1 + 0x58)) {\n    uVar2 = FUN_001e1980(param_1 + 0x50,param_2);\n    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\nLAB_00220104:\n                    \n      FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n    }\n    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0') &&\n       (plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60))) {\n      do {\n        if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }\n        plVar10 = plVar10 + 7;\n      } while (*(long **)(param_1 + 0x60) != plVar10);\n    }\n    FUN_0033bfa0(param_1 + 0x58,uVar2);\n  }" (if "if") (parenthesized_expression "(*(long *)(param_1 + 0x60) != *(long *)(param_1 + 0x58))" (( "(") (binary_expression "*(long *)(param_1 + 0x60) != *(long *)(param_1 + 0x58)" (pointer_expression "*(long *)(param_1 + 0x60)" (* "*") (cast_expression "(long *)(param_1 + 0x60)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x60)" (( "(") (binary_expression "param_1 + 0x60" (identifier "param_1") (+ "+") (number_literal "0x60")) () ")")))) (!= "!=") (pointer_expression "*(long *)(param_1 + 0x58)" (* "*") (cast_expression "(long *)(param_1 + 0x58)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x58)" (( "(") (binary_expression "param_1 + 0x58" (identifier "param_1") (+ "+") (number_literal "0x58")) () ")"))))) () ")")) (compound_statement "{\n    uVar2 = FUN_001e1980(param_1 + 0x50,param_2);\n    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\nLAB_00220104:\n                    \n      FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n    }\n    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0') &&\n       (plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60))) {\n      do {\n        if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }\n        plVar10 = plVar10 + 7;\n      } while (*(long **)(param_1 + 0x60) != plVar10);\n    }\n    FUN_0033bfa0(param_1 + 0x58,uVar2);\n  }" ({ "{") (expression_statement "uVar2 = FUN_001e1980(param_1 + 0x50,param_2);" (assignment_expression "uVar2 = FUN_001e1980(param_1 + 0x50,param_2)" (identifier "uVar2") (= "=") (call_expression "FUN_001e1980(param_1 + 0x50,param_2)" (identifier "FUN_001e1980") (argument_list "(param_1 + 0x50,param_2)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\nLAB_00220104:\n                    \n      FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n    }" (if "if") (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) == 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" (( "(") (binary_expression "PTR_DAT_0067cb08 + 0x10" (identifier "PTR_DAT_0067cb08") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00220104:\n                    \n      FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n    }" ({ "{") (labeled_statement "LAB_00220104:\n                    \n      FUN_00352af0("../../gold/parameters.h",0x5c,"options");" (statement_identifier "LAB_00220104") (: ":") (expression_statement "FUN_00352af0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00352af0("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_00352af0") (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 *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0') &&\n       (plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60))) {\n      do {\n        if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }\n        plVar10 = plVar10 + 7;\n      } while (*(long **)(param_1 + 0x60) != plVar10);\n    }" (if "if") (parenthesized_expression "((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0') &&\n       (plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60)))" (( "(") (binary_expression "(*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0') &&\n       (plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60))" (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0')" (( "(") (binary_expression "*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779)" (* "*") (cast_expression "(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779)" (( "(") (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" (( "(") (binary_expression "PTR_DAT_0067cb08 + 0x10" (identifier "PTR_DAT_0067cb08") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x6779")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60))" (( "(") (comma_expression "plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60)" (assignment_expression "plVar10 = *(long **)(param_1 + 0x58)" (identifier "plVar10") (= "=") (pointer_expression "*(long **)(param_1 + 0x58)" (* "*") (cast_expression "(long **)(param_1 + 0x58)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x58)" (( "(") (binary_expression "param_1 + 0x58" (identifier "param_1") (+ "+") (number_literal "0x58")) () ")"))))) (, ",") (binary_expression "plVar10 != *(long **)(param_1 + 0x60)" (identifier "plVar10") (!= "!=") (pointer_expression "*(long **)(param_1 + 0x60)" (* "*") (cast_expression "(long **)(param_1 + 0x60)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x60)" (( "(") (binary_expression "param_1 + 0x60" (identifier "param_1") (+ "+") (number_literal "0x60")) () ")")))))) () ")"))) () ")")) (compound_statement "{\n      do {\n        if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }\n        plVar10 = plVar10 + 7;\n      } while (*(long **)(param_1 + 0x60) != plVar10);\n    }" ({ "{") (do_statement "do {\n        if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }\n        plVar10 = plVar10 + 7;\n      } while (*(long **)(param_1 + 0x60) != plVar10);" (do "do") (compound_statement "{\n        if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }\n        plVar10 = plVar10 + 7;\n      }" ({ "{") (if_statement "if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }" (if "if") (parenthesized_expression "(((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c)))))" (( "(") (binary_expression "((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&\n           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))" (parenthesized_expression "((*(byte *)(*plVar10 + 0x3a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)(*plVar10 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)(*plVar10 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)(*plVar10 + 0x3a) & 7" (pointer_expression "*(byte *)(*plVar10 + 0x3a)" (* "*") (cast_expression "(byte *)(*plVar10 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*plVar10 + 0x3a)" (( "(") (binary_expression "*plVar10 + 0x3a" (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))" (( "(") (parenthesized_expression "((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c)))" (( "(") (binary_expression "(*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&\n            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))" (binary_expression "(*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0" (parenthesized_expression "(*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1)" (( "(") (binary_expression "*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1" (pointer_expression "*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c)" (* "*") (cast_expression "(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(*plVar10 + 0x10) + 0x3c)" (( "(") (binary_expression "*(long *)(*plVar10 + 0x10) + 0x3c" (pointer_expression "*(long *)(*plVar10 + 0x10)" (* "*") (cast_expression "(long *)(*plVar10 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*plVar10 + 0x10)" (( "(") (binary_expression "*plVar10 + 0x10" (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))" (( "(") (comma_expression "lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c)" (assignment_expression "lVar3 = plVar10[2]" (identifier "lVar3") (= "=") (subscript_expression "plVar10[2]" (identifier "plVar10") ([ "[") (number_literal "2") (] "]"))) (, ",") (binary_expression "(int)plVar10[3] == *(int *)(lVar3 + 0x22c)" (cast_expression "(int)plVar10[3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar10[3]" (identifier "plVar10") ([ "[") (number_literal "3") (] "]"))) (== "==") (pointer_expression "*(int *)(lVar3 + 0x22c)" (* "*") (cast_expression "(int *)(lVar3 + 0x22c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x22c)" (( "(") (binary_expression "lVar3 + 0x22c" (identifier "lVar3") (+ "+") (number_literal "0x22c")) () ")")))))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          lVar5 = *(long *)(lVar3 + 0x248);\n          lVar11 = *(long *)(lVar3 + 0x238);\n          uVar9 = plVar10[5];\n          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }\n          uVar7 = uVar9 >> 3;\n          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }\n        }" ({ "{") (expression_statement "lVar5 = *(long *)(lVar3 + 0x248);" (assignment_expression "lVar5 = *(long *)(lVar3 + 0x248)" (identifier "lVar5") (= "=") (pointer_expression "*(long *)(lVar3 + 0x248)" (* "*") (cast_expression "(long *)(lVar3 + 0x248)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x248)" (( "(") (binary_expression "lVar3 + 0x248" (identifier "lVar3") (+ "+") (number_literal "0x248")) () ")"))))) (; ";")) (expression_statement "lVar11 = *(long *)(lVar3 + 0x238);" (assignment_expression "lVar11 = *(long *)(lVar3 + 0x238)" (identifier "lVar11") (= "=") (pointer_expression "*(long *)(lVar3 + 0x238)" (* "*") (cast_expression "(long *)(lVar3 + 0x238)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x238)" (( "(") (binary_expression "lVar3 + 0x238" (identifier "lVar3") (+ "+") (number_literal "0x238")) () ")"))))) (; ";")) (expression_statement "uVar9 = plVar10[5];" (assignment_expression "uVar9 = plVar10[5]" (identifier "uVar9") (= "=") (subscript_expression "plVar10[5]" (identifier "plVar10") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "uVar12 = (ulong)*(uint *)(lVar3 + 0x250);" (assignment_expression "uVar12 = (ulong)*(uint *)(lVar3 + 0x250)" (identifier "uVar12") (= "=") (binary_expression "(ulong)*(uint *)(lVar3 + 0x250)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(uint *)(lVar3 + 0x250)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x250)" (( "(") (binary_expression "lVar3 + 0x250" (identifier "lVar3") (+ "+") (number_literal "0x250")) () ")"))))) (; ";")) (expression_statement "uVar6 = (ulong)*(uint *)(lVar3 + 0x240);" (assignment_expression "uVar6 = (ulong)*(uint *)(lVar3 + 0x240)" (identifier "uVar6") (= "=") (binary_expression "(ulong)*(uint *)(lVar3 + 0x240)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(uint *)(lVar3 + 0x240)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x240)" (( "(") (binary_expression "lVar3 + 0x240" (identifier "lVar3") (+ "+") (number_literal "0x240")) () ")"))))) (; ";")) (if_statement "if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }" (if "if") (parenthesized_expression "((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240)))" (( "(") (binary_expression "(lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))" (parenthesized_expression "(lVar5 == lVar11)" (( "(") (binary_expression "lVar5 == lVar11" (identifier "lVar5") (== "==") (identifier "lVar11")) () ")")) (&& "&&") (parenthesized_expression "(*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))" (( "(") (binary_expression "*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240)" (pointer_expression "*(uint *)(lVar3 + 0x250)" (* "*") (cast_expression "(uint *)(lVar3 + 0x250)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x250)" (( "(") (binary_expression "lVar3 + 0x250" (identifier "lVar3") (+ "+") (number_literal "0x250")) () ")")))) (== "==") (pointer_expression "*(uint *)(lVar3 + 0x240)" (* "*") (cast_expression "(uint *)(lVar3 + 0x240)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x240)" (( "(") (binary_expression "lVar3 + 0x240" (identifier "lVar3") (+ "+") (number_literal "0x240")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);\n            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);\n            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);\n            lVar11 = *(long *)(lVar3 + 0x238);\n            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);\n            lVar5 = *(long *)(lVar3 + 0x248);\n          }" ({ "{") (expression_statement "uVar6 = FUN_0022d9f0(lVar3 + 0xf8);" (assignment_expression "uVar6 = FUN_0022d9f0(lVar3 + 0xf8)" (identifier "uVar6") (= "=") (call_expression "FUN_0022d9f0(lVar3 + 0xf8)" (identifier "FUN_0022d9f0") (argument_list "(lVar3 + 0xf8)" (( "(") (binary_expression "lVar3 + 0xf8" (identifier "lVar3") (+ "+") (number_literal "0xf8")) () ")")))) (; ";")) (expression_statement "FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);" (call_expression "FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0)" (identifier "FUN_0022a2b0") (argument_list "(lVar3 + 0x238,uVar6 >> 3,0)" (( "(") (binary_expression "lVar3 + 0x238" (identifier "lVar3") (+ "+") (number_literal "0x238")) (, ",") (binary_expression "uVar6 >> 3" (identifier "uVar6") (>> ">>") (number_literal "3")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "uVar6 = (ulong)*(uint *)(lVar3 + 0x240);" (assignment_expression "uVar6 = (ulong)*(uint *)(lVar3 + 0x240)" (identifier "uVar6") (= "=") (binary_expression "(ulong)*(uint *)(lVar3 + 0x240)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(uint *)(lVar3 + 0x240)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x240)" (( "(") (binary_expression "lVar3 + 0x240" (identifier "lVar3") (+ "+") (number_literal "0x240")) () ")"))))) (; ";")) (expression_statement "lVar11 = *(long *)(lVar3 + 0x238);" (assignment_expression "lVar11 = *(long *)(lVar3 + 0x238)" (identifier "lVar11") (= "=") (pointer_expression "*(long *)(lVar3 + 0x238)" (* "*") (cast_expression "(long *)(lVar3 + 0x238)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x238)" (( "(") (binary_expression "lVar3 + 0x238" (identifier "lVar3") (+ "+") (number_literal "0x238")) () ")"))))) (; ";")) (expression_statement "uVar12 = (ulong)*(uint *)(lVar3 + 0x250);" (assignment_expression "uVar12 = (ulong)*(uint *)(lVar3 + 0x250)" (identifier "uVar12") (= "=") (binary_expression "(ulong)*(uint *)(lVar3 + 0x250)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(uint *)(lVar3 + 0x250)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x250)" (( "(") (binary_expression "lVar3 + 0x250" (identifier "lVar3") (+ "+") (number_literal "0x250")) () ")"))))) (; ";")) (expression_statement "lVar5 = *(long *)(lVar3 + 0x248);" (assignment_expression "lVar5 = *(long *)(lVar3 + 0x248)" (identifier "lVar5") (= "=") (pointer_expression "*(long *)(lVar3 + 0x248)" (* "*") (cast_expression "(long *)(lVar3 + 0x248)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x248)" (( "(") (binary_expression "lVar3 + 0x248" (identifier "lVar3") (+ "+") (number_literal "0x248")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar7 = uVar9 >> 3;" (assignment_expression "uVar7 = uVar9 >> 3" (identifier "uVar7") (= "=") (binary_expression "uVar9 >> 3" (identifier "uVar9") (>> ">>") (number_literal "3"))) (; ";")) (if_statement "if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }" (if "if") (parenthesized_expression "(uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6)" (( "(") (binary_expression "uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6" (identifier "uVar7") (< "<") (binary_expression "(uVar12 + (lVar5 - lVar11) * 8) - uVar6" (parenthesized_expression "(uVar12 + (lVar5 - lVar11) * 8)" (( "(") (binary_expression "uVar12 + (lVar5 - lVar11) * 8" (identifier "uVar12") (+ "+") (binary_expression "(lVar5 - lVar11) * 8" (parenthesized_expression "(lVar5 - lVar11)" (( "(") (binary_expression "lVar5 - lVar11" (identifier "lVar5") (- "-") (identifier "lVar11")) () ")")) (* "*") (number_literal "8"))) () ")")) (- "-") (identifier "uVar6"))) () ")")) (compound_statement "{\n            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);\n            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);\n          }" ({ "{") (expression_statement "puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);" (assignment_expression "puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8)" (identifier "puVar1") (= "=") (cast_expression "(ulong *)(lVar11 + (uVar9 >> 9) * 8)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar11 + (uVar9 >> 9) * 8)" (( "(") (binary_expression "lVar11 + (uVar9 >> 9) * 8" (identifier "lVar11") (+ "+") (binary_expression "(uVar9 >> 9) * 8" (parenthesized_expression "(uVar9 >> 9)" (( "(") (binary_expression "uVar9 >> 9" (identifier "uVar9") (>> ">>") (number_literal "9")) () ")")) (* "*") (number_literal "8"))) () ")")))) (; ";")) (expression_statement "*puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);" (assignment_expression "*puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f)" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (binary_expression "*puVar1 | 1L << ((byte)uVar7 & 0x3f)" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (| "|") (binary_expression "1L << ((byte)uVar7 & 0x3f)" (number_literal "1L") (<< "<<") (parenthesized_expression "((byte)uVar7 & 0x3f)" (( "(") (binary_expression "(byte)uVar7 & 0x3f" (cast_expression "(byte)uVar7" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar7")) (& "&") (number_literal "0x3f")) () ")"))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "plVar10 = plVar10 + 7;" (assignment_expression "plVar10 = plVar10 + 7" (identifier "plVar10") (= "=") (binary_expression "plVar10 + 7" (identifier "plVar10") (+ "+") (number_literal "7"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(long **)(param_1 + 0x60) != plVar10)" (( "(") (binary_expression "*(long **)(param_1 + 0x60) != plVar10" (pointer_expression "*(long **)(param_1 + 0x60)" (* "*") (cast_expression "(long **)(param_1 + 0x60)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x60)" (( "(") (binary_expression "param_1 + 0x60" (identifier "param_1") (+ "+") (number_literal "0x60")) () ")")))) (!= "!=") (identifier "plVar10")) () ")")) (; ";")) (} "}"))) (expression_statement "FUN_0033bfa0(param_1 + 0x58,uVar2);" (call_expression "FUN_0033bfa0(param_1 + 0x58,uVar2)" (identifier "FUN_0033bfa0") (argument_list "(param_1 + 0x58,uVar2)" (( "(") (binary_expression "param_1 + 0x58" (identifier "param_1") (+ "+") (number_literal "0x58")) (, ",") (identifier "uVar2") () ")"))) (; ";")) (} "}")))) (expression_statement "plVar10 = (long *)*param_3;" (assignment_expression "plVar10 = (long *)*param_3" (identifier "plVar10") (= "=") (cast_expression "(long *)*param_3" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_3" (* "*") (identifier "param_3")))) (; ";")) (if_statement "if (plVar10 != (long *)param_3[1]) {\n    do {\n      if (*(long *)(*plVar10 + 0x308) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[1] != plVar10);\n  }" (if "if") (parenthesized_expression "(plVar10 != (long *)param_3[1])" (( "(") (binary_expression "plVar10 != (long *)param_3[1]" (identifier "plVar10") (!= "!=") (cast_expression "(long *)param_3[1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")))) () ")")) (compound_statement "{\n    do {\n      if (*(long *)(*plVar10 + 0x308) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[1] != plVar10);\n  }" ({ "{") (do_statement "do {\n      if (*(long *)(*plVar10 + 0x308) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[1] != plVar10);" (do "do") (compound_statement "{\n      if (*(long *)(*plVar10 + 0x308) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    }" ({ "{") (if_statement "if (*(long *)(*plVar10 + 0x308) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }" (if "if") (parenthesized_expression "(*(long *)(*plVar10 + 0x308) != 0)" (( "(") (binary_expression "*(long *)(*plVar10 + 0x308) != 0" (pointer_expression "*(long *)(*plVar10 + 0x308)" (* "*") (cast_expression "(long *)(*plVar10 + 0x308)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*plVar10 + 0x308)" (( "(") (binary_expression "*plVar10 + 0x308" (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) (+ "+") (number_literal "0x308")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }" ({ "{") (expression_statement "FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));" (call_expression "FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8))" (identifier "FUN_001db670") (argument_list "(param_1,*(undefined8 *)(*plVar10 + 8))" (( "(") (identifier "param_1") (, ",") (pointer_expression "*(undefined8 *)(*plVar10 + 8)" (* "*") (cast_expression "(undefined8 *)(*plVar10 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*plVar10 + 8)" (( "(") (binary_expression "*plVar10 + 8" (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) (+ "+") (number_literal "8")) () ")")))) () ")"))) (; ";")) (} "}"))) (expression_statement "plVar10 = plVar10 + 1;" (assignment_expression "plVar10 = plVar10 + 1" (identifier "plVar10") (= "=") (binary_expression "plVar10 + 1" (identifier "plVar10") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((long *)param_3[1] != plVar10)" (( "(") (binary_expression "(long *)param_3[1] != plVar10" (cast_expression "(long *)param_3[1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (identifier "plVar10")) () ")")) (; ";")) (} "}"))) (expression_statement "plVar10 = (long *)param_3[3];" (assignment_expression "plVar10 = (long *)param_3[3]" (identifier "plVar10") (= "=") (cast_expression "(long *)param_3[3]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")))) (; ";")) (if_statement "if (plVar10 != (long *)param_3[4]) {\n    do {\n      if (*(long *)(*plVar10 + 0xf8) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[4] != plVar10);\n  }" (if "if") (parenthesized_expression "(plVar10 != (long *)param_3[4])" (( "(") (binary_expression "plVar10 != (long *)param_3[4]" (identifier "plVar10") (!= "!=") (cast_expression "(long *)param_3[4]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[4]" (identifier "param_3") ([ "[") (number_literal "4") (] "]")))) () ")")) (compound_statement "{\n    do {\n      if (*(long *)(*plVar10 + 0xf8) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[4] != plVar10);\n  }" ({ "{") (do_statement "do {\n      if (*(long *)(*plVar10 + 0xf8) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    } while ((long *)param_3[4] != plVar10);" (do "do") (compound_statement "{\n      if (*(long *)(*plVar10 + 0xf8) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }\n      plVar10 = plVar10 + 1;\n    }" ({ "{") (if_statement "if (*(long *)(*plVar10 + 0xf8) != 0) {\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }" (if "if") (parenthesized_expression "(*(long *)(*plVar10 + 0xf8) != 0)" (( "(") (binary_expression "*(long *)(*plVar10 + 0xf8) != 0" (pointer_expression "*(long *)(*plVar10 + 0xf8)" (* "*") (cast_expression "(long *)(*plVar10 + 0xf8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*plVar10 + 0xf8)" (( "(") (binary_expression "*plVar10 + 0xf8" (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) (+ "+") (number_literal "0xf8")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));\n      }" ({ "{") (expression_statement "FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));" (call_expression "FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8))" (identifier "FUN_001db670") (argument_list "(param_1,*(undefined8 *)(*plVar10 + 8))" (( "(") (identifier "param_1") (, ",") (pointer_expression "*(undefined8 *)(*plVar10 + 8)" (* "*") (cast_expression "(undefined8 *)(*plVar10 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*plVar10 + 8)" (( "(") (binary_expression "*plVar10 + 8" (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) (+ "+") (number_literal "8")) () ")")))) () ")"))) (; ";")) (} "}"))) (expression_statement "plVar10 = plVar10 + 1;" (assignment_expression "plVar10 = plVar10 + 1" (identifier "plVar10") (= "=") (binary_expression "plVar10 + 1" (identifier "plVar10") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((long *)param_3[4] != plVar10)" (( "(") (binary_expression "(long *)param_3[4] != plVar10" (cast_expression "(long *)param_3[4]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[4]" (identifier "param_3") ([ "[") (number_literal "4") (] "]"))) (!= "!=") (identifier "plVar10")) () ")")) (; ";")) (} "}"))) (expression_statement "lVar3 = param_1;" (assignment_expression "lVar3 = param_1" (identifier "lVar3") (= "=") (identifier "param_1")) (; ";")) (if_statement "if ((*(long *)(param_1 + 0x158) != 0) && (lVar3 = FUN_00335c60(), lVar3 != 0)) {\n    puVar4 = (undefined8 *)FUN_0049cb60(0x40);\n    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n    uVar2 = *(undefined8 *)(param_1 + 0x158);\n    *puVar4 = &PTR_FUN_00670da0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0xffffffffffffffff;\n    puVar4[5] = 0;\n    puVar4[6] = 1;\n    puVar4[7] = uVar2;\n    lVar3 = 0;\n    FUN_003839a0(param_2,".gnu.attributes",0x6ffffff5,0,puVar4,0);\n    return lVar3;\n  }" (if "if") (parenthesized_expression "((*(long *)(param_1 + 0x158) != 0) && (lVar3 = FUN_00335c60(), lVar3 != 0))" (( "(") (binary_expression "(*(long *)(param_1 + 0x158) != 0) && (lVar3 = FUN_00335c60(), lVar3 != 0)" (parenthesized_expression "(*(long *)(param_1 + 0x158) != 0)" (( "(") (binary_expression "*(long *)(param_1 + 0x158) != 0" (pointer_expression "*(long *)(param_1 + 0x158)" (* "*") (cast_expression "(long *)(param_1 + 0x158)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x158)" (( "(") (binary_expression "param_1 + 0x158" (identifier "param_1") (+ "+") (number_literal "0x158")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(lVar3 = FUN_00335c60(), lVar3 != 0)" (( "(") (comma_expression "lVar3 = FUN_00335c60(), lVar3 != 0" (assignment_expression "lVar3 = FUN_00335c60()" (identifier "lVar3") (= "=") (call_expression "FUN_00335c60()" (identifier "FUN_00335c60") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "lVar3 != 0" (identifier "lVar3") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    puVar4 = (undefined8 *)FUN_0049cb60(0x40);\n    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;\n    uVar2 = *(undefined8 *)(param_1 + 0x158);\n    *puVar4 = &PTR_FUN_00670da0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0xffffffffffffffff;\n    puVar4[5] = 0;\n    puVar4[6] = 1;\n    puVar4[7] = uVar2;\n    lVar3 = 0;\n    FUN_003839a0(param_2,".gnu.attributes",0x6ffffff5,0,puVar4,0);\n    return lVar3;\n  }" ({ "{") (expression_statement "puVar4 = (undefined8 *)FUN_0049cb60(0x40);" (assignment_expression "puVar4 = (undefined8 *)FUN_0049cb60(0x40)" (identifier "puVar4") (= "=") (cast_expression "(undefined8 *)FUN_0049cb60(0x40)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0049cb60(0x40)" (identifier "FUN_0049cb60") (argument_list "(0x40)" (( "(") (number_literal "0x40") () ")"))))) (; ";")) (expression_statement "*(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;" (assignment_expression "*(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 4)" (* "*") (cast_expression "(byte *)(puVar4 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 4)" (( "(") (binary_expression "puVar4 + 4" (identifier "puVar4") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar4 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 4)" (* "*") (cast_expression "(byte *)(puVar4 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 4)" (( "(") (binary_expression "puVar4 + 4" (identifier "puVar4") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xe0"))) (; ";")) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x158);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x158)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x158)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x158)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x158)" (( "(") (binary_expression "param_1 + 0x158" (identifier "param_1") (+ "+") (number_literal "0x158")) () ")"))))) (; ";")) (expression_statement "*puVar4 = &PTR_FUN_00670da0;" (assignment_expression "*puVar4 = &PTR_FUN_00670da0" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (pointer_expression "&PTR_FUN_00670da0" (& "&") (identifier "PTR_FUN_00670da0"))) (; ";")) (expression_statement "puVar4[1] = 0;" (assignment_expression "puVar4[1] = 0" (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[2] = 0;" (assignment_expression "puVar4[2] = 0" (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[3] = 0xffffffffffffffff;" (assignment_expression "puVar4[3] = 0xffffffffffffffff" (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "puVar4[5] = 0;" (assignment_expression "puVar4[5] = 0" (subscript_expression "puVar4[5]" (identifier "puVar4") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[6] = 1;" (assignment_expression "puVar4[6] = 1" (subscript_expression "puVar4[6]" (identifier "puVar4") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar4[7] = uVar2;" (assignment_expression "puVar4[7] = uVar2" (subscript_expression "puVar4[7]" (identifier "puVar4") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" (identifier "lVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_003839a0(param_2,".gnu.attributes",0x6ffffff5,0,puVar4,0);" (call_expression "FUN_003839a0(param_2,".gnu.attributes",0x6ffffff5,0,puVar4,0)" (identifier "FUN_003839a0") (argument_list "(param_2,".gnu.attributes",0x6ffffff5,0,puVar4,0)" (( "(") (identifier "param_2") (, ",") (string_literal "".gnu.attributes"" (" """) (string_content ".gnu.attributes") (" """)) (, ",") (number_literal "0x6ffffff5") (, ",") (number_literal "0") (, ",") (identifier "puVar4") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return lVar3;" (return "return") (identifier "lVar3") (; ";")) (} "}"))) (return_statement "return lVar3;" (return "return") (identifier "lVar3") (; ";")) (} "}")))

/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* WARNING: Enum "STT": Some values do not have unique names */
/* WARNING: Enum "STB": Some values do not have unique names */
/* DWARF original prototype: void do_finalize_sections(Target_powerpc<64,_false> * this, Layout *
   layout, Input_objects * input_objects, Symbol_table * symtab) */

void __thiscall
anon_unknown.dwarf_6a1ea8::var_43<64,var_11>::do_finalize_sections
          (var_43<64,var_11> *this,Layout *layout,Input_objects *input_objects,
          Symbol_table *symtab)

{
  undefined1 *puVar1;
  type_1 var_61;
  type_1 var_62;
  type_2 *var_14;
  var_1<64,var_11> *this_00;
  type_3 *pOVar5;
  type_4 *var_49;
  var_2<64,var_11> *var_50;
  type_5 iVar7;
  var_3<64,var_11> *pSVar8;
  vector<var_15::var_75*,var_16::var_65<var_15::var_75*>var_5> *var_74;
  type_6 *var_78;
  type_7 ppOVar10;
  type_8 *var_45;
  __normal_iterator<var_15::Output_section::var_4*,var_16::vector<var_15::Output_section::var_4,var_16::var_65<var_15::Output_section::var_4>var_5>var_5>
  var_6;
  __normal_iterator<var_15::Output_section::var_4*,var_16::vector<var_15::Output_section::var_4,var_16::var_65<var_15::Output_section::var_4>var_5>var_5>
  var_7;
  type_9 *reloc_section;
  size_t var_80;
  var_8<64,var_11> *this_01;
  type_10 *posd;
  type_11 *var_59;
  type_12 var_67;
  type_13 *pOVar15;
  type_14 var_68;
  type_1 var_17;
  type_14 var_18;
  type_14 var_70;
  type_7 var_71;
  type_7 var_73;
  type_7 var_77;
  char *r_off;
  var_1<64,var_11> *pPVar23;
  type_11 *var_60;
  type_14 var_69;
  var_9<64,var_11> *var_52;
  type_15 in_stack_ffffffffffffff90;
  type_16 __buf;
  
  if (var_15::parameters->doing_static_link_valid_ == false) {
                    /* WARNING: Subroutine does not return */
    gold::Parameters::var_10((type_17 *)this,(type_17 *)layout);
  }
  r_off = (char *)layout;
  pPVar23 = (var_1<64,var_11> *)this;
  if (var_15::parameters->doing_static_link_ != false) {
    pPVar23 = (var_1<64,var_11> *)symtab;
    if (this->iplt_ == (var_2<64,var_11> *)0x0) {
      gold::Symbol_table::var_12
                (symtab,"__rela_iplt_start",(char *)0x0,PREDEFINED,0,0,STT_NOTYPE,STB_GLOBAL,
                 STV_HIDDEN,'\0',true,false);
      in_stack_ffffffffffffff90 = 0;
      r_off = "__rela_iplt_end";
      gold::Symbol_table::var_12
                (symtab,"__rela_iplt_end",(char *)0x0,PREDEFINED,0,0,STT_NOTYPE,STB_GLOBAL,
                 STV_HIDDEN,'\0',true,false);
    }
    else {
      pOVar15 = (type_13 *)this->iplt_->rel_;
      gold::Symbol_table::var_13
                (symtab,"__rela_iplt_start",(char *)0x0,PREDEFINED,pOVar15,0,0,STT_NOTYPE,STB_GLOBAL
                 ,STV_HIDDEN,'\0',false,true);
      r_off = "__rela_iplt_end";
      gold::Symbol_table::var_13
                (symtab,"__rela_iplt_end",(char *)0x0,PREDEFINED,pOVar15,0,0,STT_NOTYPE,STB_GLOBAL,
                 STV_HIDDEN,'\0',true,true);
    }
  }
  for (var_14 = (symtab->table_)._M_h._M_before_begin._M_nxt; var_14 != (type_2 *)0x0;
      var_14 = var_14->_M_nxt) {
    this_00 = (var_1<64,var_11> *)var_14[3]._M_nxt;
    if (((((*(type_1 *)((long)&(this_00->super_Sized_relobj_file<64,var_11>).
                             super_Sized_relobj<64,var_11>.super_Relobj.super_Object.name_.field_2 +
                     4) == 0) &&
          (((this_00->super_Sized_relobj_file<64,var_11>).super_Sized_relobj<64,var_11>.super_Relobj
            .super_Object.shnum_ & 0x70000) == 0)) &&
         (((this_00->super_Sized_relobj_file<64,var_11>).super_Sized_relobj<64,var_11>.super_Relobj.
           super_Object.shnum_ & 0x40000000) != 0)) &&
        ((pOVar5 = ((type_18 *)
                   &(this_00->super_Sized_relobj_file<64,var_11>).super_Sized_relobj<64,var_11>.
                    super_Relobj.super_Object.name_._M_string_length)->output_segment,
         ((type_14)pOVar5->output_lists_[2].
                 super__Vector_base<var_15::type_13*,var_16::var_65<var_15::type_13*>var_5>._M_impl
                 ._M_finish & 0x100000000) == 0 &&
         (var_17 = *(type_1 *)((long)&pOVar5->output_lists_[0x16].
                                    super__Vector_base<var_15::type_13*,var_16::var_65<var_15::type_13*>var_5>
                                    ._M_impl._M_end_of_storage + 4), var_17 != 0)))) &&
       (var_17 == *(type_1 *)&(this_00->super_Sized_relobj_file<64,var_11>).
                            super_Sized_relobj<64,var_11>.super_Relobj.super_Object.name_.field_2))
    {
      ppOVar10 = pOVar5->output_lists_[0x19].
                 super__Vector_base<var_15::type_13*,var_16::var_65<var_15::type_13*>var_5>._M_impl
                 ._M_finish;
      var_18 = (type_14)(this_00->super_Sized_relobj_file<64,var_11>).super_Sized_relobj<64,var_11>.
                      super_Relobj.super_Object.xindex_ >> 4;
      if ((type_14)((long)pOVar5->output_lists_[0x19].
                        super__Vector_base<var_15::type_13*,var_16::var_65<var_15::type_13*>var_5>.
                        _M_impl._M_end_of_storage - (long)ppOVar10 >> 4) <= var_18) {
                    /* WARNING: Subroutine does not return */
        var_1<64,var_11>::var_19(pPVar23,(type_19)r_off);
      }
      if ((*(type_20 *)((long)ppOVar10 + var_18 * 0x10 + 4) & 1) != 0) {
        in_stack_ffffffffffffff90 = 0x21fbbd;
        pPVar23 = this_00;
        gold::Symbol::var_20((type_21 *)this_00);
        var_17 = (this_00->super_Sized_relobj_file<64,var_11>).super_Sized_relobj<64,var_11>.
                 super_Relobj.super_Object.shnum_;
        *(type_1 *)((long)&(this_00->super_Sized_relobj_file<64,var_11>).super_Sized_relobj<64,var_11>
                         .super_Relobj.super_Object.name_.field_2 + 4) = 0xffffffff;
        (this_00->super_Sized_relobj_file<64,var_11>).super_Sized_relobj<64,var_11>.super_Relobj.
        super_Object.shnum_ = var_17 & 0x7ffffcff | 0x80000000;
      }
    }
  }
  if (var_15::parameters->options_ == (type_22 *)0x0) goto LAB_00220104;
  if ((var_15::parameters->options_->relocatable_).value == false) {
    this_01 = (var_8<64,var_11> *)var_21(0x40);
    *(type_15 *)&this_01->field_0x8 = 0;
    this_01->field_0x20 = this_01->field_0x20 & 0xe0;
    *(type_15 *)&this_01->field_0x10 = 0;
    *(type_15 *)&this_01->field_0x18 = 0xffffffffffffffff;
    *(type_15 *)&this_01->field_0x28 = 0;
    *(type_15 *)&this_01->field_0x30 = 4;
    *(type_23 ***)this_01 = &PTR__Output_data_save_res_00664fb8;
    this_01->contents_ = (type_24 *)0x0;
                    /* try { // try from 0021fc56 to 0021fe51 has its CatchHandler @ 00220146 */
    var_8<64,var_11>::var_22
              (this_01,symtab,"_savegpr0_",0xe,0x1f,var_23<false>,var_24<false>);
    var_8<64,var_11>::var_22
              (this_01,symtab,"_restgpr0_",0xe,0x1d,var_25<false>,var_26<false>);
    var_8<64,var_11>::var_22
              (this_01,symtab,"_restgpr0_",0x1e,0x1f,var_25<false>,var_26<false>);
    var_8<64,var_11>::var_22
              (this_01,symtab,"_savegpr1_",0xe,0x1f,var_27<false>,var_28<false>);
    var_8<64,var_11>::var_22
              (this_01,symtab,"_restgpr1_",0xe,0x1f,var_29<false>,var_30<false>);
    var_8<64,var_11>::var_22
              (this_01,symtab,"_savefpr_",0xe,0x1f,var_31<false>,var_32<false>);
    var_8<64,var_11>::var_22
              (this_01,symtab,"_restfpr_",0xe,0x1d,var_33<false>,var_34<false>);
    var_8<64,var_11>::var_22
              (this_01,symtab,"_restfpr_",0x1e,0x1f,var_33<false>,var_34<false>);
    var_8<64,var_11>::var_22
              (this_01,symtab,"._savef",0xe,0x1f,var_31<false>,var_35<false>);
    var_8<64,var_11>::var_22
              (this_01,symtab,"._restf",0xe,0x1f,var_33<false>,var_36<false>);
    var_8<64,var_11>::var_22
              (this_01,symtab,"_savevr_",0x14,0x1f,var_37<false>,var_38<false>);
    var_8<64,var_11>::var_22
              (this_01,symtab,"_restvr_",0x14,0x1f,var_39<false>,var_40<false>);
    this->savres_section_ = this_01;
    gold::Layout::var_41
              (layout,".text",1,6,(type_10 *)this_01,ORDER_TEXT,false);
    var_42((var_43<64,var_11> *)&this->got_,symtab,layout);
    in_stack_ffffffffffffff90 = 0x21fea3;
    var_44(this,layout);
    if (var_15::parameters->options_ == (type_22 *)0x0) goto LAB_00220104;
    if (((var_15::parameters->options_->toc_sort_).value != false) &&
       (var_45 = (this->got_->super_Output_data_got<64,var_11>).super_Output_data_got_base.
                  super_Output_section_data_build.super_Output_section_data.output_section_,
       var_45 != (type_8 *)0x0)) {
      var_6._M_current =
           (var_45->input_sections_).
           super__Vector_base<var_15::type_8::var_4,var_16::var_65<var_15::Output_section::var_4>var_5>
           ._M_impl._M_finish;
      var_7._M_current =
           (var_45->input_sections_).
           super__Vector_base<var_15::type_8::var_4,var_16::var_65<var_15::Output_section::var_4>var_5>
           ._M_impl._M_start;
      if (0x3f < (type_14)((long)var_6._M_current - (long)var_7._M_current)) {
        std::
        var_46<__gnu_cxx::__normal_iterator<var_15::type_8::var_4*,var_16::vector<var_15::Output_section::var_4,var_16::var_65<var_15::type_8::var_4>var_5>var_5>,_gold::Output_section::var_4>
        ::var_46(&__buf,var_7,var_6);
        if (__buf._M_buffer == (type_7)0x0) {
                    /* try { // try from 002200fa to 002200fe has its CatchHandler @ 0022013e */
          std::
          __inplace_stable_sort<__gnu_cxx::__normal_iterator<var_15::type_8::var_4*,var_16::vector<var_15::type_8::var_4>var_5>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::var_47<false>var_5>var_5>
                    (var_7._M_current,var_6._M_current);
        }
        else {
                    /* try { // try from 0021ff1d to 0021ff21 has its CatchHandler @ 0022013e */
          std::
          __stable_sort_adaptive<__gnu_cxx::__normal_iterator<var_15::type_8::var_4*,var_16::vector<var_15::type_8::var_4>var_5>,_gold::type_8::var_4*,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::var_47<false>var_5>var_5>
                    (var_7._M_current,var_6._M_current);
        }
        in_stack_ffffffffffffff90 = 0x21ff32;
        var_48(__buf._M_buffer,(type_25 *)&std::nothrow);
      }
    }
  }
  var_49 = layout->dynamic_data_;
  if (var_49 != (type_4 *)0x0) {
    pOVar15 = (type_13 *)0x0;
    var_50 = this->plt_;
    if (var_50 != (var_2<64,var_11> *)0x0) {
      pOVar15 = (type_13 *)var_50->rel_;
    }
    gold::Layout::var_51
              (layout,false,(type_13 *)var_50,pOVar15,
               (type_26 *)this->rela_dyn_,true,false);
    var_52 = this->glink_;
    if (var_52 != (var_9<64,var_11> *)0x0) {
      if ((*(type_1 *)&var_52->field_0x20 & 2) == 0) {
        (**(type_27 **)((char *)var_52->invalid_address + 0x70))(var_52,in_stack_ffffffffffffff90);
        if ((*(type_1 *)&var_52->field_0x20 & 2) == 0) {
                    /* WARNING: Subroutine does not return */
          gold::var_53("../../gold/output.h",0x163,"finalize_data_size");
        }
        var_52 = this->glink_;
      }
      iVar7._M_current =
           (var_49->entries_).
           super__Vector_base<var_15::type_4::var_54,var_16::var_65<var_15::Output_data_dynamic::var_54>var_5>
           ._M_impl._M_finish;
      __buf._M_buffer =
           (type_7)var_55((-(type_1)((*(type_1 *)&var_52->targ_->field_0x10 & 2) == 0) & 0xfffffff4)
                             + 0x20,0x70000000);
      __buf._M_original_len = (type_28)var_52;
      if (iVar7._M_current ==
          (var_49->entries_).
          super__Vector_base<var_15::type_4::var_54,var_16::var_65<var_15::type_4::var_54>var_5>
          ._M_impl._M_end_of_storage) {
        std::
        vector<var_15::Output_data_dynamic::var_54,var_16::var_65<var_15::Output_data_dynamic::var_54>var_5>
        ::_M_realloc_insert<const_gold::Output_data_dynamic::var_54&>
                  (&var_49->entries_,iVar7,(var_54 *)&__buf);
      }
      else {
        ((iVar7._M_current)->u_).sym = (type_21 *)var_52;
        (iVar7._M_current)->od2 = (type_13 *)__buf._M_len;
        *(type_7 *)&(iVar7._M_current)->tag_ = __buf._M_buffer;
        (var_49->entries_).
        super__Vector_base<var_15::Output_data_dynamic::var_54,var_16::var_65<var_15::Output_data_dynamic::var_54>var_5>
        ._M_impl._M_finish = iVar7._M_current + 1;
      }
    }
    if (this->has_localentry0_ == false) {
      var_17 = 0;
      if (this->has_tls_get_addr_opt_ == false) goto LAB_0021f9ad;
    }
    else {
      var_17 = 4;
    }
    __buf._M_buffer = (type_7)0xffffffff70000003;
    iVar7._M_current =
         (var_49->entries_).
         super__Vector_base<var_15::type_4::var_54,var_16::var_65<var_15::Output_data_dynamic::var_54>var_5>
         ._M_impl._M_finish;
    __buf._M_original_len =
         var_55(__buf._M_original_len._4_4_,this->has_tls_get_addr_opt_ | var_17);
    if (iVar7._M_current ==
        (var_49->entries_).
        super__Vector_base<var_15::type_4::var_54,var_16::var_65<var_15::type_4::var_54>var_5>
        ._M_impl._M_end_of_storage) {
      std::
      vector<var_15::Output_data_dynamic::var_54,var_16::var_65<var_15::Output_data_dynamic::var_54>var_5>
      ::_M_realloc_insert<const_gold::Output_data_dynamic::var_54&>
                (&var_49->entries_,iVar7,(var_54 *)&__buf);
    }
    else {
      (iVar7._M_current)->u_ = (type_29)__buf._M_original_len;
      (iVar7._M_current)->od2 = (type_13 *)__buf._M_len;
      (iVar7._M_current)->tag_ = DT_MIPS_ICHECKSUM;
      (iVar7._M_current)->offset_ = 0xffffffff;
      (var_49->entries_).
      super__Vector_base<var_15::Output_data_dynamic::var_54,var_16::var_65<var_15::Output_data_dynamic::var_54>var_5>
      ._M_impl._M_finish = iVar7._M_current + 1;
    }
  }
LAB_0021f9ad:
  if ((this->copy_relocs_).super_Copy_relocs<4,_64,var_11>.entries_.
      super__Vector_base<var_15::var_56<4,_64,var_11>::var_57,var_16::var_65<var_15::var_56<4,_64,var_11>::var_57>var_5>
      ._M_impl._M_finish !=
      (this->copy_relocs_).super_Copy_relocs<4,_64,var_11>.entries_.
      super__Vector_base<var_15::var_56<4,_64,var_11>::var_57,var_16::var_65<var_15::var_56<4,_64,var_11>::var_57>var_5>
      ._M_impl._M_start) {
    reloc_section = var_58((var_43<64,var_11> *)&this->rela_dyn_,layout);
    if (var_15::parameters->options_ == (type_22 *)0x0) {
LAB_00220104:
                    /* WARNING: Subroutine does not return */
      gold::var_53("../../gold/parameters.h",0x5c,"options");
    }
    if (((var_15::parameters->options_->toc_optimize_).value != false) &&
       (var_71 = (this->copy_relocs_).super_Copy_relocs<4,_64,var_11>.entries_.
                  super__Vector_base<var_15::var_56<4,_64,var_11>::var_57,var_16::var_65<var_15::var_56<4,_64,var_11>::var_57>var_5>
                  ._M_impl._M_start,
       var_71 !=
       (this->copy_relocs_).super_Copy_relocs<4,_64,var_11>.entries_.
       super__Vector_base<var_15::var_56<4,_64,var_11>::var_57,var_16::var_65<var_15::var_56<4,_64,var_11>::var_57>var_5>
       ._M_impl._M_finish)) {
      do {
        if (((var_71->sym_->field_0x3a & 7) == 0) &&
           (((type_14)((var_71->sym_->u1_).output_segment)->output_lists_[2].
                    super__Vector_base<var_15::type_13*,var_16::var_65<var_15::type_13*>var_5>.
                    _M_impl._M_finish & 0x100000000) != 0)) {
          pSVar8 = var_71->relobj_;
          var_17 = *(type_1 *)((long)&pSVar8[1].super_Sized_relobj<64,var_11>.super_Relobj.
                                    super_Object.name_._M_dataplus._M_p + 4);
          if (var_71->shndx_ == var_17) {
            var_59 = pSVar8[1].super_Sized_relobj<64,var_11>.super_Relobj.super_Object.input_file_;
            var_60 = (type_11 *)
                      pSVar8[1].super_Sized_relobj<64,var_11>.super_Relobj.super_Object.name_.
                      field_2._M_allocated_capacity;
            var_18 = var_71->address_;
            var_61 = (type_1)pSVar8[1].super_Sized_relobj<64,var_11>.super_Relobj.super_Object.offset_;
            var_69 = (type_14)var_61;
            var_62 = *(type_1 *)((long)&pSVar8[1].super_Sized_relobj<64,var_11>.super_Relobj.
                                     super_Object.name_.field_2 + 8);
            var_70 = (type_14)var_62;
            if ((var_59 == var_60) && (var_61 == var_62)) {
              var_67 = elfcpp::Elf_file<64,var_11,_gold::var_63>::var_64
                                 (&pSVar8->elf_file_,var_17);
              std::vector<var_66,var_16::var_65<var_66>var_5>::resize
                        ((vector<var_66,var_16::var_65<var_66>var_5> *)
                         &pSVar8[1].super_Sized_relobj<64,var_11>.super_Relobj.super_Object.name_.
                          field_2,var_67 >> 3,false);
              var_70 = (type_14)*(type_1 *)((long)&pSVar8[1].super_Sized_relobj<64,var_11>.super_Relobj.
                                               super_Object.name_.field_2 + 8);
              var_60 = (type_11 *)
                        pSVar8[1].super_Sized_relobj<64,var_11>.super_Relobj.super_Object.name_.
                        field_2._M_allocated_capacity;
              var_69 = (type_14)(type_1)pSVar8[1].super_Sized_relobj<64,var_11>.super_Relobj.
                                    super_Object.offset_;
              var_59 = pSVar8[1].super_Sized_relobj<64,var_11>.super_Relobj.super_Object.
                        input_file_;
            }
            var_68 = var_18 >> 3;
            if (var_68 < (var_69 + ((long)var_59 - (long)var_60) * 8) - var_70) {
              (&var_60->input_argument_)[var_18 >> 9] =
                   (type_30 *)
                   ((type_14)(&var_60->input_argument_)[var_18 >> 9] | 1L << ((type_20)var_68 & 0x3f));
            }
          }
        }
        var_71 = var_71 + 1;
      } while ((this->copy_relocs_).super_Copy_relocs<4,_64,var_11>.entries_.
               super__Vector_base<var_15::var_56<4,_64,var_11>::var_57,var_16::var_65<var_15::var_56<4,_64,var_11>::var_57>var_5>
               ._M_impl._M_finish != var_71);
    }
    gold::var_56<4,_64,var_11>::var_72
              (&(this->copy_relocs_).super_Copy_relocs<4,_64,var_11>,reloc_section);
  }
  var_73 = (input_objects->relobj_list_).
             super__Vector_base<var_15::Relobj*,var_16::var_65<var_15::Relobj*>var_5>._M_impl._M_start;
  if (var_73 !=
      (input_objects->relobj_list_).
      super__Vector_base<var_15::Relobj*,var_16::var_65<var_15::Relobj*>var_5>._M_impl._M_finish) {
    do {
      var_74 = (*var_73)[4].map_to_relocatable_relocs_;
      if (var_74 != (vector<var_15::var_75*,var_16::var_65<var_15::var_75*>var_5> *)
                  0x0) {
        var_76
                  (this,((*var_73)->super_Object).name_._M_dataplus._M_p,
                   (type_6 *)var_74);
      }
      var_73 = var_73 + 1;
    } while ((input_objects->relobj_list_).
             super__Vector_base<var_15::Relobj*,var_16::var_65<var_15::Relobj*>var_5>._M_impl._M_finish !=
             var_73);
  }
  var_77 = (input_objects->dynobj_list_).
             super__Vector_base<var_15::Dynobj*,var_16::var_65<var_15::Dynobj*>var_5>._M_impl._M_start;
  if (var_77 !=
      (input_objects->dynobj_list_).
      super__Vector_base<var_15::Dynobj*,var_16::var_65<var_15::Dynobj*>var_5>._M_impl._M_finish) {
    do {
      var_78 = *(type_6 **)((long)&(*var_77)[1].soname_.field_2 + 8);
      if (var_78 != (type_6 *)0x0) {
        var_76(this,((*var_77)->super_Object).name_._M_dataplus._M_p,var_78);
      }
      var_77 = var_77 + 1;
    } while ((input_objects->dynobj_list_).
             super__Vector_base<var_15::Dynobj*,var_16::var_65<var_15::Dynobj*>var_5>._M_impl._M_finish !=
             var_77);
  }
  if ((this->attributes_section_data_ != (type_6 *)0x0) &&
     (var_80 = var_15::type_6::var_79(this->attributes_section_data_), var_80 != 0)) {
    posd = (type_10 *)var_21(0x40);
    puVar1 = &(posd->super_Output_data).field_0x20;
    *puVar1 = *puVar1 & 0xe0;
    var_78 = this->attributes_section_data_;
    (posd->super_Output_data)._vptr_Output_data =
         (type_31 **)&PTR__Output_attributes_section_data_00670da0;
    (posd->super_Output_data).address_ = 0;
    (posd->super_Output_data).data_size_ = 0;
    (posd->super_Output_data).offset_ = -1;
    posd->output_section_ = (type_8 *)0x0;
    posd->addralign_ = 1;
    posd[1].super_Output_data._vptr_Output_data = (type_31 **)var_78;
    gold::Layout::var_41
              (layout,".gnu.attributes",0x6ffffff5,0,posd,ORDER_INVALID,false);
    return;
  }
  return;
}


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

long MASKED(long param_1,long param_2,long *param_3,long param_4)

{
  ulong *puVar1;
  undefined8 uVar2;
  long lVar3;
  undefined8 *puVar4;
  long lVar5;
  ulong uVar6;
  ulong uVar7;
  uint uVar8;
  undefined8 extraout_RDX;
  ulong uVar9;
  long *plVar10;
  long lVar11;
  ulong uVar12;
  undefined8 uVar13;
  undefined8 in_stack_ffffffffffffff90;
  long *local_58;
  undefined8 uStack_50;
  undefined8 local_48;
  
  if (PTR_DAT_0067cb08[0x20] == '\0') {
LAB_00220139:
                    /* WARNING: Subroutine does not return */
    FUN_001dc9b0();
  }
  if (PTR_DAT_0067cb08[0x21] != '\0') {
    if (*(long *)(param_1 + 0x30) == 0) {
      FUN_00445d10(param_4,"__rela_iplt_start",0,5,0,0,0,1,2,0,1,0);
      in_stack_ffffffffffffff90 = 0;
      FUN_00445d10(param_4,"__rela_iplt_end",0,5,0,0,0,1,2,0,1);
    }
    else {
      uVar2 = *(undefined8 *)(*(long *)(param_1 + 0x30) + 0x38);
      FUN_00445bb0(param_4,"__rela_iplt_start",0,5,uVar2,0,0,0,1,2,0,0,1);
      FUN_00445bb0(param_4,"__rela_iplt_end",0,5,uVar2,0,0,0,1,2,0,1,1);
    }
  }
  for (puVar4 = *(undefined8 **)(param_4 + 0x40); puVar4 != (undefined8 *)0x0;
      puVar4 = (undefined8 *)*puVar4) {
    lVar3 = puVar4[3];
    if (((((*(int *)(lVar3 + 0x1c) == 0) && ((*(byte *)(lVar3 + 0x3a) & 7) == 0)) &&
         ((*(byte *)(lVar3 + 0x3b) & 0x40) != 0)) &&
        ((lVar5 = *(long *)(lVar3 + 0x10), (*(byte *)(lVar5 + 0x3c) & 1) == 0 &&
         (*(int *)(lVar5 + 0x224) != 0)))) && (*(int *)(lVar5 + 0x224) == *(int *)(lVar3 + 0x18))) {
      uVar9 = *(ulong *)(lVar3 + 0x40) >> 4;
      if ((ulong)(*(long *)(lVar5 + 0x268) - *(long *)(lVar5 + 0x260) >> 4) <= uVar9) {
        FUN_001dc890();
        goto LAB_00220139;
      }
      if ((*(byte *)(*(long *)(lVar5 + 0x260) + 4 + uVar9 * 0x10) & 1) != 0) {
        in_stack_ffffffffffffff90 = 0x21fbbd;
        FUN_00443500(lVar3);
        *(undefined4 *)(lVar3 + 0x1c) = 0xffffffff;
        *(uint *)(lVar3 + 0x38) = *(uint *)(lVar3 + 0x38) & 0x7ffffcff | 0x80000000;
      }
    }
  }
  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;
  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x5051) == '\0') {
    puVar4 = (undefined8 *)FUN_0049cb60(0x40);
    puVar4[1] = 0;
    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;
    puVar4[2] = 0;
    puVar4[3] = 0xffffffffffffffff;
    puVar4[5] = 0;
    puVar4[6] = 4;
    *puVar4 = &PTR_FUN_00664fb8;
    puVar4[7] = 0;
                    /* try { // try from 0021fc56 to 0021fe51 has its CatchHandler @ 00220146 */
    FUN_001db270(puVar4,param_4,&DAT_0054cfeb,0xe,0x1f,FUN_001d8b40,FUN_001d8b60);
    FUN_001db270(puVar4,param_4,"_restgpr0_",0xe,0x1d,FUN_001d8b90,FUN_001d8bb0);
    FUN_001db270(puVar4,param_4,"_restgpr0_",0x1e,0x1f,FUN_001d8b90,FUN_001d8bb0);
    FUN_001db270(puVar4,param_4,"_savegpr1_",0xe,0x1f,FUN_001d8c10,FUN_001d8c30);
    FUN_001db270(puVar4,param_4,"_restgpr1_",0xe,0x1f,FUN_001d8c60,FUN_001d8c80);
    FUN_001db270(puVar4,param_4,"_savefpr_",0xe,0x1f,FUN_001d8cb0,FUN_001d8cd0);
    FUN_001db270(puVar4,param_4,"_restfpr_",0xe,0x1d,FUN_001d8d00,FUN_001d8d20);
    FUN_001db270(puVar4,param_4,"_restfpr_",0x1e,0x1f,FUN_001d8d00,FUN_001d8d20);
    FUN_001db270(puVar4,param_4,"._savef",0xe,0x1f,FUN_001d8cb0,FUN_001d8d80);
    FUN_001db270(puVar4,param_4,"._restf",0xe,0x1f,FUN_001d8d00,FUN_001d8db0);
    FUN_001db270(puVar4,param_4,"_savevr_",0x14,0x1f,FUN_001d8de0,FUN_001d8e10);
    uVar9 = 0;
    FUN_001db270(puVar4,param_4,"_restvr_",0x14,0x1f,FUN_001d8e40,FUN_001d8e70);
    *(undefined8 **)(param_1 + 0x140) = puVar4;
    FUN_003839a0(param_2,".text",1,6,puVar4,9,uVar9 & 0xffffffff00000000);
    FUN_001de660(param_1 + 0x20,param_4,param_2);
    in_stack_ffffffffffffff90 = 0x21fea3;
    FUN_001e1ee0(param_1,param_2);
    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) goto LAB_00220104;
    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6841) != '\0') &&
       (lVar3 = *(long *)(*(long *)(param_1 + 0x20) + 0x28), lVar3 != 0)) {
      lVar5 = *(long *)(lVar3 + 0x90);
      lVar3 = *(long *)(lVar3 + 0x88);
      if (0x3f < (ulong)(lVar5 - lVar3)) {
        FUN_002297f0(&local_58,lVar3,lVar5);
        if (local_48 == 0) {
                    /* try { // try from 002200fa to 002200fe has its CatchHandler @ 0022013e */
          FUN_001f7950(lVar3,lVar5);
        }
        else {
                    /* try { // try from 0021ff1d to 0021ff21 has its CatchHandler @ 0022013e */
          FUN_001f80c0(lVar3,lVar5,local_48,uStack_50);
        }
        in_stack_ffffffffffffff90 = 0x21ff32;
        FUN_0049e310(local_48,&DAT_0058ad47);
      }
    }
  }
  lVar3 = *(long *)(param_2 + 0x300);
  if (lVar3 != 0) {
    uVar2 = 0;
    lVar5 = *(long *)(param_1 + 0x28);
    if (lVar5 != 0) {
      uVar2 = *(undefined8 *)(lVar5 + 0x38);
    }
    uVar13 = 0;
    FUN_0037e220(param_2,0,lVar5,uVar2,*(undefined8 *)(param_1 + 0x50),1);
    plVar10 = *(long **)(param_1 + 0x48);
    if (plVar10 != (long *)0x0) {
      if ((*(byte *)(plVar10 + 4) & 2) == 0) {
        (**(code **)(*plVar10 + 0x70))(plVar10,in_stack_ffffffffffffff90,extraout_RDX,uVar13);
        if ((*(byte *)(plVar10 + 4) & 2) == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");
        }
        plVar10 = *(long **)(param_1 + 0x48);
      }
      puVar4 = *(undefined8 **)(lVar3 + 0x40);
      local_48 = CONCAT44((-(uint)((*(uint *)(plVar10[7] + 0x10) & 2) == 0) & 0xfffffff4) + 0x20,
                          0x70000000);
      local_58 = plVar10;
      if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {
        FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);
      }
      else {
        *puVar4 = plVar10;
        puVar4[1] = uStack_50;
        puVar4[2] = local_48;
        *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;
      }
    }
    if (*(char *)(param_1 + 0x133) == '\0') {
      uVar8 = 0;
      if (*(byte *)(param_1 + 0x134) == 0) goto LAB_0021f9ad;
    }
    else {
      uVar8 = 4;
    }
    local_48 = -0x8ffffffd;
    puVar4 = *(undefined8 **)(lVar3 + 0x40);
    local_58 = (long *)CONCAT44(local_58._4_4_,*(byte *)(param_1 + 0x134) | uVar8);
    if (puVar4 == *(undefined8 **)(lVar3 + 0x48)) {
      FUN_001c1130(lVar3 + 0x38,puVar4,&local_58);
    }
    else {
      *puVar4 = local_58;
      puVar4[1] = uStack_50;
      puVar4[2] = 0xffffffff70000003;
      *(undefined8 **)(lVar3 + 0x40) = puVar4 + 3;
    }
  }
LAB_0021f9ad:
  if (*(long *)(param_1 + 0x60) != *(long *)(param_1 + 0x58)) {
    uVar2 = FUN_001e1980(param_1 + 0x50,param_2);
    if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {
LAB_00220104:
                    /* WARNING: Subroutine does not return */
      FUN_00352af0("../../gold/parameters.h",0x5c,"options");
    }
    if ((*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x6779) != '\0') &&
       (plVar10 = *(long **)(param_1 + 0x58), plVar10 != *(long **)(param_1 + 0x60))) {
      do {
        if (((*(byte *)(*plVar10 + 0x3a) & 7) == 0) &&
           (((*(byte *)(*(long *)(*plVar10 + 0x10) + 0x3c) & 1) != 0 &&
            (lVar3 = plVar10[2], (int)plVar10[3] == *(int *)(lVar3 + 0x22c))))) {
          lVar5 = *(long *)(lVar3 + 0x248);
          lVar11 = *(long *)(lVar3 + 0x238);
          uVar9 = plVar10[5];
          uVar12 = (ulong)*(uint *)(lVar3 + 0x250);
          uVar6 = (ulong)*(uint *)(lVar3 + 0x240);
          if ((lVar5 == lVar11) && (*(uint *)(lVar3 + 0x250) == *(uint *)(lVar3 + 0x240))) {
            uVar6 = FUN_0022d9f0(lVar3 + 0xf8);
            FUN_0022a2b0(lVar3 + 0x238,uVar6 >> 3,0);
            uVar6 = (ulong)*(uint *)(lVar3 + 0x240);
            lVar11 = *(long *)(lVar3 + 0x238);
            uVar12 = (ulong)*(uint *)(lVar3 + 0x250);
            lVar5 = *(long *)(lVar3 + 0x248);
          }
          uVar7 = uVar9 >> 3;
          if (uVar7 < (uVar12 + (lVar5 - lVar11) * 8) - uVar6) {
            puVar1 = (ulong *)(lVar11 + (uVar9 >> 9) * 8);
            *puVar1 = *puVar1 | 1L << ((byte)uVar7 & 0x3f);
          }
        }
        plVar10 = plVar10 + 7;
      } while (*(long **)(param_1 + 0x60) != plVar10);
    }
    FUN_0033bfa0(param_1 + 0x58,uVar2);
  }
  plVar10 = (long *)*param_3;
  if (plVar10 != (long *)param_3[1]) {
    do {
      if (*(long *)(*plVar10 + 0x308) != 0) {
        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));
      }
      plVar10 = plVar10 + 1;
    } while ((long *)param_3[1] != plVar10);
  }
  plVar10 = (long *)param_3[3];
  if (plVar10 != (long *)param_3[4]) {
    do {
      if (*(long *)(*plVar10 + 0xf8) != 0) {
        FUN_001db670(param_1,*(undefined8 *)(*plVar10 + 8));
      }
      plVar10 = plVar10 + 1;
    } while ((long *)param_3[4] != plVar10);
  }
  lVar3 = param_1;
  if ((*(long *)(param_1 + 0x158) != 0) && (lVar3 = FUN_00335c60(), lVar3 != 0)) {
    puVar4 = (undefined8 *)FUN_0049cb60(0x40);
    *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0;
    uVar2 = *(undefined8 *)(param_1 + 0x158);
    *puVar4 = &PTR_FUN_00670da0;
    puVar4[1] = 0;
    puVar4[2] = 0;
    puVar4[3] = 0xffffffffffffffff;
    puVar4[5] = 0;
    puVar4[6] = 1;
    puVar4[7] = uVar2;
    lVar3 = 0;
    FUN_003839a0(param_2,".gnu.attributes",0x6ffffff5,0,puVar4,0);
    return lVar3;
  }
  return lVar3;
}

