
/* DWARF original prototype: uint64_t get_input_sections(Output_section * this, uint64_t address,
   string * fill,
   list<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_> *
   input_sections) */

uint64_t __thiscall
gold::Output_section::get_input_sections
          (Output_section *this,uint64_t address,string *fill,
          list<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
          *input_sections)

{
  size_t *psVar1;
  Checkpoint_output_section *pCVar2;
  _func_int_varargs *p_Var3;
  iterator __position;
  anon_union_8_2_227b06d7_for_u1_ aVar4;
  _List_node_base *p_Var5;
  pointer pIVar6;
  uint uVar7;
  undefined4 uVar8;
  _Alloc_hider __src;
  int iVar9;
  _List_node_base *this_00;
  uint64_t uVar10;
  ulong uVar11;
  anon_union_8_4_139239c7_for_u2_ aVar12;
  undefined4 extraout_var;
  undefined4 extraout_var_00;
  Compressed_section_map **__dest;
  pointer pIVar13;
  ulong uVar14;
  Input_section *pIVar15;
  pointer pIVar16;
  pointer pIVar17;
  Input_section *pIVar18;
  pointer pIVar19;
  long lVar20;
  uint64_t uVar21;
  uint64_t uVar23;
  Xindex *local_b8;
  Input_section *local_a8;
  Input_section_list remaining;
  string this_fill;
  size_type __dnew;
  anon_union_8_2_227b06d7_for_u1_ local_50;
  anon_union_8_4_139239c7_for_u2_ local_48;
  uint local_40;
  size_type sVar22;
  
  pCVar2 = this->checkpoint_;
  if (pCVar2 != (Checkpoint_output_section *)0x0) {
    pIVar17 = (pCVar2->input_sections_copy_).
              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
              ._M_impl._M_finish;
    pIVar16 = (pCVar2->input_sections_copy_).
              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
              ._M_impl._M_start;
    uVar11 = pCVar2->input_sections_size_;
    lVar20 = (long)pIVar17 - (long)pIVar16;
    if (uVar11 != lVar20 >> 5) {
      if (0x7ffffffffffffff < uVar11) {
                    /* WARNING: Subroutine does not return */
        std::__throw_length_error("vector::reserve");
      }
      uVar14 = uVar11;
      if ((ulong)((long)(pCVar2->input_sections_copy_).
                        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
                        ._M_impl._M_end_of_storage - (long)pIVar16 >> 5) < uVar11) {
        pIVar6 = pIVar16;
        if (uVar11 == 0) {
          pIVar13 = (pointer)0x0;
          pIVar19 = pIVar16;
          pIVar16 = pIVar13;
        }
        else {
          pIVar13 = (pointer)operator_new(uVar11 * 0x20);
          pIVar19 = (pCVar2->input_sections_copy_).
                    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
                    ._M_impl._M_start;
          pIVar16 = pIVar13;
        }
        for (; pIVar17 != pIVar6; pIVar6 = pIVar6 + 1) {
          uVar7 = pIVar6->p2align_;
          aVar4 = pIVar6->u1_;
          pIVar13->shndx_ = pIVar6->shndx_;
          pIVar13->p2align_ = uVar7;
          pIVar13->u1_ = aVar4;
          uVar7 = pIVar6->section_order_index_;
          uVar8 = *(undefined4 *)&pIVar6->field_0x1c;
          pIVar13->u2_ = pIVar6->u2_;
          pIVar13->section_order_index_ = uVar7;
          *(undefined4 *)&pIVar13->field_0x1c = uVar8;
          pIVar13 = pIVar13 + 1;
        }
        if (pIVar19 != (pointer)0x0) {
          operator_delete(pIVar19);
        }
        pIVar17 = (pointer)((long)pIVar16 + lVar20);
        (pCVar2->input_sections_copy_).
        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
        ._M_impl._M_start = pIVar16;
        (pCVar2->input_sections_copy_).
        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
        ._M_impl._M_finish = pIVar17;
        uVar14 = pCVar2->input_sections_size_;
        (pCVar2->input_sections_copy_).
        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
        ._M_impl._M_end_of_storage = pIVar16 + uVar11;
      }
      if (pIVar16 != pIVar17) {
        (pCVar2->input_sections_copy_).
        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
        ._M_impl._M_finish = pIVar16;
      }
      pIVar17 = (pCVar2->input_sections_->
                super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
                )._M_impl._M_start;
      if (uVar14 < (ulong)((long)(pCVar2->input_sections_->
                                 super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
                                 )._M_impl._M_finish - (long)pIVar17 >> 5)) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/output.h",0x10fd,"save_input_sections");
      }
      if (uVar14 != 0) {
        uVar11 = 0;
        do {
          __position._M_current =
               (pCVar2->input_sections_copy_).
               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
               ._M_impl._M_finish;
          if (__position._M_current ==
              (pCVar2->input_sections_copy_).
              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
              ._M_impl._M_end_of_storage) {
            std::
            vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
            ::_M_realloc_insert<const_gold::Output_section::Input_section&>
                      (&pCVar2->input_sections_copy_,__position,pIVar17);
          }
          else {
            uVar7 = pIVar17->p2align_;
            aVar4 = pIVar17->u1_;
            (__position._M_current)->shndx_ = pIVar17->shndx_;
            (__position._M_current)->p2align_ = uVar7;
            (__position._M_current)->u1_ = aVar4;
            uVar7 = pIVar17->section_order_index_;
            uVar8 = *(undefined4 *)&pIVar17->field_0x1c;
            (__position._M_current)->u2_ = pIVar17->u2_;
            (__position._M_current)->section_order_index_ = uVar7;
            *(undefined4 *)&(__position._M_current)->field_0x1c = uVar8;
            (pCVar2->input_sections_copy_).
            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
            ._M_impl._M_finish = __position._M_current + 1;
          }
          uVar11 = uVar11 + 1;
          pIVar17 = pIVar17 + 1;
        } while (uVar11 < pCVar2->input_sections_size_);
      }
    }
  }
  this->lookup_maps_->is_valid_ = false;
  p_Var3 = (this->super_Output_data)._vptr_Output_data[3];
  if (p_Var3 == do_addralign) {
    uVar10 = this->addralign_;
  }
  else {
    iVar9 = (*p_Var3)(this);
    uVar10 = CONCAT44(extraout_var_00,iVar9);
  }
  uVar21 = address;
  if (uVar10 != 0) {
    uVar21 = (uVar10 - 1) + address & -uVar10;
  }
  pIVar15 = (this->input_sections_).
            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
            ._M_impl._M_start;
  pIVar18 = (this->input_sections_).
            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
            ._M_impl._M_finish;
  remaining.
  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
  ._M_impl._M_start = (pointer)0x0;
  remaining.
  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
  ._M_impl._M_finish = (pointer)0x0;
  remaining.
  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
  ._M_impl._M_end_of_storage = (pointer)0x0;
  if (pIVar15 == pIVar18) {
    remaining.
    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
    ._M_impl._M_end_of_storage = (pointer)0x0;
    remaining.
    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
    ._M_impl._M_finish = (pointer)0x0;
    remaining.
    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
    ._M_impl._M_start = (pointer)0x0;
  }
  else {
    do {
      while (pIVar18 = pIVar15, pIVar18->shndx_ != 0xffffffff) {
                    /* try { // try from 00210145 to 002102fc has its CatchHandler @ 002106dc */
        this_00 = (_List_node_base *)operator_new(0x30);
        aVar4 = pIVar18->u1_;
        this_00[1]._M_next = *(_List_node_base **)pIVar18;
        this_00[1]._M_prev = (_List_node_base *)aVar4;
        p_Var5 = *(_List_node_base **)&pIVar18->section_order_index_;
        *(anon_union_8_4_139239c7_for_u2_ *)(this_00 + 2) = pIVar18->u2_;
        this_00[2]._M_prev = p_Var5;
        std::__detail::_List_node_base::_M_hook(this_00,(_List_node_base *)input_sections);
        psVar1 = &(input_sections->
                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
                  )._M_impl._M_node._M_size;
        *psVar1 = *psVar1 + 1;
        pIVar15 = pIVar18 + 1;
        if ((this->input_sections_).
            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
            ._M_impl._M_finish == pIVar18 + 1) goto LAB_00210220;
      }
      if (pIVar18->p2align_ == 0) {
        p_Var3 = (((pIVar18->u2_).posd)->super_Output_data)._vptr_Output_data[3];
        if (p_Var3 == Output_section_data::do_addralign) {
          uVar10 = ((pIVar18->u2_).posd)->addralign_;
        }
        else {
                    /* try { // try from 00210530 to 00210531 has its CatchHandler @ 002106dc */
          iVar9 = (*p_Var3)();
          uVar10 = CONCAT44(extraout_var,iVar9);
        }
      }
      else {
        uVar10 = 1L << ((char)pIVar18->p2align_ - 1U & 0x3f);
      }
      uVar23 = uVar21;
      if (((uVar10 != 0) && (uVar23 = (uVar21 - 1) + uVar10 & -uVar10, uVar21 != uVar23)) &&
         (fill->_M_string_length != 0)) {
        this_fill.field_2._M_local_buf[0] = '\0';
        this_fill._M_string_length = 0;
        uVar11 = uVar23 - uVar21;
        this_fill._M_dataplus._M_p = (pointer)&this_fill.field_2;
                    /* try { // try from 002103f8 to 00210515 has its CatchHandler @ 002106e4 */
        std::string::reserve((string *)&this_fill,uVar11);
        while (uVar14 = fill->_M_string_length, this_fill._M_string_length + uVar14 <= uVar11) {
          std::string::_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);
        }
        if (this_fill._M_string_length < uVar11) {
          if (uVar11 - this_fill._M_string_length <= uVar14) {
            uVar14 = uVar11 - this_fill._M_string_length;
          }
                    /* try { // try from 00210551 to 00210555 has its CatchHandler @ 002106e4 */
          std::string::_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);
        }
        aVar12.object = (Relobj *)operator_new(0x58);
        sVar22 = this_fill._M_string_length;
        __src = this_fill._M_dataplus;
        ((aVar12.object)->super_Object).name_._M_dataplus._M_p = (pointer)0x0;
        ((aVar12.object)->super_Object).input_file_ = (Input_file *)0x0;
        ((aVar12.object)->super_Object).offset_ = 0;
        ((aVar12.object)->super_Object).name_._M_string_length = this_fill._M_string_length;
        ((aVar12.object)->super_Object).name_.field_2._M_allocated_capacity = 0xffffffffffffffff;
        local_b8 = (Xindex *)this_fill._M_string_length;
        ((aVar12.object)->super_Object).name_.field_2._M_local_buf[8] =
             ((aVar12.object)->super_Object).name_.field_2._M_local_buf[8] & 0xe0U | 10;
        ((aVar12.object)->super_Object)._vptr_Object =
             (_func_int_varargs **)&PTR__Output_data_const_00445c48;
        __dest = &((aVar12.object)->super_Object).compressed_sections_;
        *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_ = __dest;
        if ((this_fill._M_dataplus._M_p + this_fill._M_string_length != (pointer)0x0) &&
           (this_fill._M_dataplus._M_p == (pointer)0x0)) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0021068e to 00210692 has its CatchHandler @ 002106d4 */
          std::__throw_logic_error("basic_string::_M_construct null not valid");
        }
        __dnew = this_fill._M_string_length;
        if (this_fill._M_string_length < 0x10) {
          if (this_fill._M_string_length == 1) {
            *(char *)&((aVar12.object)->super_Object).compressed_sections_ =
                 *this_fill._M_dataplus._M_p;
          }
          else if (this_fill._M_string_length != 0) goto LAB_002105af;
        }
        else {
                    /* try { // try from 0021059d to 002105a1 has its CatchHandler @ 002106d4 */
          __dest = (Compressed_section_map **)
                   std::string::_M_create
                             ((string *)&((aVar12.object)->super_Object).shnum_,&__dnew,0);
          *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_ = __dest;
          ((aVar12.object)->super_Object).compressed_sections_ = (Compressed_section_map *)__dnew;
LAB_002105af:
          memcpy(__dest,__src._M_p,sVar22);
          local_b8 = (Xindex *)__dnew;
          __dest = *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_;
        }
        local_a8 = (Input_section *)&__dnew;
        ((aVar12.object)->super_Object).xindex_ = local_b8;
        *(undefined1 *)((long)__dest + (long)local_b8) = 0;
        local_40 = 0;
        __dnew = 0xffffffff;
        local_50.data_size = 0;
        local_48.object = aVar12.object;
        std::
        vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
        ::emplace_back<gold::Output_section::Input_section>(&remaining,local_a8);
        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
             *)this_fill._M_dataplus._M_p != &this_fill.field_2) {
          operator_delete(this_fill._M_dataplus._M_p);
        }
      }
      if (remaining.
          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
          ._M_impl._M_finish ==
          remaining.
          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
          ._M_impl._M_end_of_storage) {
        std::
        vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
        ::_M_realloc_insert<const_gold::Output_section::Input_section&>
                  (&remaining,
                   (iterator)
                   remaining.
                   super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
                   ._M_impl._M_finish,pIVar18);
      }
      else {
        uVar7 = pIVar18->p2align_;
        aVar4 = pIVar18->u1_;
        (remaining.
         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
         ._M_impl._M_finish)->shndx_ = pIVar18->shndx_;
        (remaining.
         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
         ._M_impl._M_finish)->p2align_ = uVar7;
        (remaining.
         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
         ._M_impl._M_finish)->u1_ = aVar4;
        uVar7 = pIVar18->section_order_index_;
        uVar8 = *(undefined4 *)&pIVar18->field_0x1c;
        (remaining.
         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
         ._M_impl._M_finish)->u2_ = pIVar18->u2_;
        (remaining.
         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
         ._M_impl._M_finish)->section_order_index_ = uVar7;
        *(undefined4 *)
         &(remaining.
           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
           ._M_impl._M_finish)->field_0x1c = uVar8;
        remaining.
        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
        ._M_impl._M_finish =
             remaining.
             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
             ._M_impl._M_finish + 1;
      }
      if ((pIVar18->shndx_ + 4 < 4) &&
         (pIVar15 = pIVar18, Input_section::finalize_data_size(pIVar18),
         0xfffffffb < pIVar18->shndx_)) {
        if (((((pIVar18->u2_).object)->super_Object).name_.field_2._M_local_buf[8] & 2U) == 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00210693 to 002106af has its CatchHandler @ 002106dc */
          Input_section::data_size(pIVar15);
        }
        sVar22 = (((pIVar18->u2_).object)->super_Object).name_._M_string_length;
      }
      else {
        sVar22 = (pIVar18->u1_).data_size;
      }
      uVar21 = sVar22 + uVar23;
      pIVar15 = pIVar18 + 1;
    } while ((this->input_sections_).
             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
             ._M_impl._M_finish != pIVar18 + 1);
LAB_00210220:
    pIVar15 = pIVar18 + 1;
    pIVar18 = (this->input_sections_).
              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
              ._M_impl._M_start;
  }
  (this->input_sections_).
  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
  ._M_impl._M_finish =
       remaining.
       super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
       ._M_impl._M_finish;
  pIVar17 = (this->input_sections_).
            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
            ._M_impl._M_end_of_storage;
  (this->input_sections_).
  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
  ._M_impl._M_start =
       remaining.
       super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
       ._M_impl._M_start;
  (this->input_sections_).
  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
  ._M_impl._M_end_of_storage =
       remaining.
       super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
       ._M_impl._M_end_of_storage;
  this->first_input_offset_ = 0;
  remaining.
  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
  ._M_impl._M_start = pIVar18;
  remaining.
  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
  ._M_impl._M_finish = pIVar15;
  remaining.
  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
  ._M_impl._M_end_of_storage = pIVar17;
  if (((this->super_Output_data).field_0x20 & 2) != 0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");
  }
  (this->super_Output_data).data_size_ = uVar21 - address;
  if (pIVar18 != (Input_section *)0x0) {
    operator_delete(pIVar18);
  }
  return uVar21 - address;
}



long FUN_00210070(long *param_1,ulong param_2,undefined8 *param_3,long param_4)

{
  code *pcVar1;
  undefined8 uVar2;
  undefined8 *puVar3;
  undefined1 *__src;
  undefined8 *puVar4;
  long lVar5;
  undefined8 *puVar6;
  undefined8 *puVar7;
  ulong uVar8;
  uint *puVar9;
  uint *puVar10;
  undefined8 *puVar11;
  long lVar12;
  ulong uVar13;
  ulong uVar14;
  ulong local_b8;
  ulong *local_a8;
  uint *local_98;
  uint *local_90;
  undefined8 *local_88;
  undefined1 *local_78;
  ulong local_70;
  undefined1 local_68 [16];
  ulong local_58 [2];
  undefined8 *local_48;
  undefined4 local_40;
  
  lVar5 = param_1[0x1d];
  if (lVar5 != 0) {
    puVar6 = *(undefined8 **)(lVar5 + 0x30);
    puVar4 = *(undefined8 **)(lVar5 + 0x28);
    uVar13 = *(ulong *)(lVar5 + 0x20);
    lVar12 = (long)puVar6 - (long)puVar4;
    if (uVar13 != lVar12 >> 5) {
      if (0x7ffffffffffffff < uVar13) {
                    /* WARNING: Subroutine does not return */
        FUN_00330790("vector::reserve");
      }
      uVar14 = uVar13;
      if ((ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5) < uVar13) {
        puVar3 = puVar4;
        if (uVar13 == 0) {
          puVar7 = (undefined8 *)0x0;
          puVar11 = puVar4;
          puVar4 = puVar7;
        }
        else {
          puVar7 = (undefined8 *)FUN_002f0690();
          puVar11 = *(undefined8 **)(lVar5 + 0x28);
          puVar4 = puVar7;
        }
        for (; puVar6 != puVar3; puVar3 = puVar3 + 4) {
          uVar2 = puVar3[1];
          *puVar7 = *puVar3;
          puVar7[1] = uVar2;
          uVar2 = puVar3[3];
          puVar7[2] = puVar3[2];
          puVar7[3] = uVar2;
          puVar7 = puVar7 + 4;
        }
        if (puVar11 != (undefined8 *)0x0) {
          FUN_002f1e60();
        }
        puVar6 = (undefined8 *)((long)puVar4 + lVar12);
        *(undefined8 **)(lVar5 + 0x28) = puVar4;
        *(undefined8 **)(lVar5 + 0x30) = puVar6;
        uVar14 = *(ulong *)(lVar5 + 0x20);
        *(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4;
      }
      if (puVar4 != puVar6) {
        *(undefined8 **)(lVar5 + 0x30) = puVar4;
      }
      puVar6 = (undefined8 *)**(long **)(lVar5 + 0x18);
      if (uVar14 < (ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)) {
                    /* WARNING: Subroutine does not return */
        FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections");
      }
      if (uVar14 != 0) {
        uVar13 = 0;
        do {
          puVar4 = *(undefined8 **)(lVar5 + 0x30);
          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {
            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);
          }
          else {
            uVar2 = puVar6[1];
            *puVar4 = *puVar6;
            puVar4[1] = uVar2;
            uVar2 = puVar6[3];
            puVar4[2] = puVar6[2];
            puVar4[3] = uVar2;
            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;
          }
          uVar13 = uVar13 + 1;
          puVar6 = puVar6 + 4;
        } while (uVar13 < *(ulong *)(lVar5 + 0x20));
      }
    }
  }
  *(undefined1 *)param_1[0x1e] = 0;
  if (*(code **)(*param_1 + 0x18) == FUN_001c5d30) {
    lVar5 = param_1[6];
  }
  else {
    lVar5 = (**(code **)(*param_1 + 0x18))(param_1);
  }
  uVar13 = param_2;
  if (lVar5 != 0) {
    uVar13 = lVar5 + -1 + param_2 & -lVar5;
  }
  puVar9 = (uint *)param_1[0x11];
  puVar10 = (uint *)param_1[0x12];
  local_98 = (uint *)0x0;
  local_90 = (uint *)0x0;
  local_88 = (undefined8 *)0x0;
  if (puVar9 == puVar10) {
    local_88 = (undefined8 *)0x0;
    local_90 = (uint *)0x0;
    local_98 = (uint *)0x0;
  }
  else {
    do {
      while (puVar10 = puVar9, *puVar10 != 0xffffffff) {
                    /* try { // try from 00210145 to 002102fc has its CatchHandler @ 002106dc */
        lVar5 = FUN_002f0690(0x30);
        uVar2 = *(undefined8 *)(puVar10 + 2);
        *(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;
        *(undefined8 *)(lVar5 + 0x18) = uVar2;
        uVar2 = *(undefined8 *)(puVar10 + 6);
        *(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);
        *(undefined8 *)(lVar5 + 0x28) = uVar2;
        FUN_002f4d00(lVar5,param_4);
        *(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;
        puVar9 = puVar10 + 8;
        if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;
      }
      if (puVar10[1] == 0) {
        pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);
        if (pcVar1 == FUN_00172c90) {
          lVar5 = (*(long **)(puVar10 + 4))[6];
        }
        else {
                    /* try { // try from 00210530 to 00210531 has its CatchHandler @ 002106dc */
          lVar5 = (*pcVar1)();
        }
      }
      else {
        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);
      }
      uVar14 = uVar13;
      if (((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&
         (param_3[1] != 0)) {
        local_68[0] = 0;
        local_70 = 0;
        uVar13 = uVar14 - uVar13;
        local_78 = local_68;
                    /* try { // try from 002103f8 to 00210515 has its CatchHandler @ 002106e4 */
        FUN_002f9000(&local_78,uVar13);
        while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {
          FUN_002fa0e0(&local_78,*param_3);
        }
        if (local_70 < uVar13) {
          if (uVar13 - local_70 <= uVar8) {
            uVar8 = uVar13 - local_70;
          }
                    /* try { // try from 00210551 to 00210555 has its CatchHandler @ 002106e4 */
          FUN_002fa0e0(&local_78,*param_3,uVar8);
        }
        puVar4 = (undefined8 *)FUN_002f0690(0x58);
        uVar13 = local_70;
        __src = local_78;
        puVar4[1] = 0;
        puVar4[5] = 0;
        puVar4[6] = 0;
        puVar4[2] = local_70;
        puVar4[3] = 0xffffffffffffffff;
        local_b8 = local_70;
        *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;
        *puVar4 = &PTR_FUN_00445c48;
        puVar6 = puVar4 + 9;
        puVar4[7] = puVar6;
        if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0021068e to 00210692 has its CatchHandler @ 002106d4 */
          FUN_003306d0("basic_string::_M_construct null not valid");
        }
        local_58[0] = local_70;
        if (local_70 < 0x10) {
          if (local_70 == 1) {
            *(undefined1 *)(puVar4 + 9) = *local_78;
          }
          else if (local_70 != 0) goto LAB_002105af;
        }
        else {
                    /* try { // try from 0021059d to 002105a1 has its CatchHandler @ 002106d4 */
          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);
          puVar4[7] = puVar6;
          puVar4[9] = local_58[0];
LAB_002105af:
          memcpy(puVar6,__src,uVar13);
          local_b8 = local_58[0];
          puVar6 = (undefined8 *)puVar4[7];
        }
        local_a8 = local_58;
        puVar4[8] = local_b8;
        *(undefined1 *)((long)puVar6 + local_b8) = 0;
        local_40 = 0;
        local_58[0] = 0xffffffff;
        local_58[1] = 0;
        local_48 = puVar4;
        FUN_00223190(&local_98,local_a8);
        if (local_78 != local_68) {
          FUN_002f1e60();
        }
      }
      if (local_90 == (uint *)local_88) {
        FUN_00220270(&local_98,local_90,puVar10);
      }
      else {
        uVar2 = *(undefined8 *)(puVar10 + 2);
        *(undefined8 *)local_90 = *(undefined8 *)puVar10;
        *(undefined8 *)((long)local_90 + 8) = uVar2;
        uVar2 = *(undefined8 *)(puVar10 + 6);
        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);
        *(undefined8 *)((long)local_90 + 0x18) = uVar2;
        local_90 = (uint *)((long)local_90 + 0x20);
      }
      if ((*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)) {
        if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00210693 to 002106af has its CatchHandler @ 002106dc */
          FUN_0020a520();
        }
        lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);
      }
      else {
        lVar5 = *(long *)(puVar10 + 2);
      }
      uVar13 = lVar5 + uVar14;
      puVar9 = puVar10 + 8;
    } while ((uint *)param_1[0x12] != puVar10 + 8);
LAB_00210220:
    puVar9 = puVar10 + 8;
    puVar10 = (uint *)param_1[0x11];
  }
  param_1[0x12] = (long)local_90;
  lVar5 = param_1[0x13];
  param_1[0x11] = (long)local_98;
  param_1[0x13] = (long)local_88;
  param_1[0x14] = 0;
  local_98 = puVar10;
  local_90 = puVar9;
  local_88 = (undefined8 *)lVar5;
  if ((*(byte *)(param_1 + 4) & 2) != 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0018ff20("../../gold/output.h",0x231,"set_current_data_size_for_child");
  }
  param_1[2] = uVar13 - param_2;
  if (puVar10 != (uint *)0x0) {
    FUN_002f1e60();
  }
  return uVar13 - param_2;
}


PUSH R15
MOV R15,RDX
PUSH R14
PUSH R13
PUSH R12
MOV R12,RDI
PUSH RBP
MOV RBP,RCX
PUSH RBX
SUB RSP,0x98
MOV R14,qword ptr [RDI + 0xe8]
MOV qword ptr [RSP + 0x8],RSI
TEST R14,R14
JZ 0x002100bd
MOV RSI,qword ptr [R14 + 0x30]
MOV RBX,qword ptr [R14 + 0x28]
MOV RCX,qword ptr [R14 + 0x20]
MOV R13,RSI
SUB R13,RBX
MOV RAX,R13
SAR RAX,0x5
CMP RCX,RAX
JNZ 0x00210320
MOV RAX,qword ptr [R12 + 0xf0]
LEA RDX,[0x1c5d30]
MOV byte ptr [RAX],0x0
MOV RAX,qword ptr [R12]
MOV RAX,qword ptr [RAX + 0x18]
CMP RAX,RDX
JNZ 0x00210580
MOV RAX,qword ptr [R12 + 0x30]
MOV RDX,qword ptr [RSP + 0x8]
MOV R13,RDX
TEST RAX,RAX
JNZ 0x00210308
MOV RBX,qword ptr [R12 + 0x88]
MOV RDI,qword ptr [R12 + 0x90]
MOV qword ptr [RSP + 0x30],0x0
MOV qword ptr [RSP + 0x38],0x0
MOV qword ptr [RSP + 0x40],0x0
CMP RBX,RDI
JZ 0x00210666
LEA RAX,[RSP + 0x50]
MOV qword ptr [RSP],RAX
LEA RAX,[RSP + 0x60]
MOV qword ptr [RSP + 0x18],RAX
JMP 0x0021017d
MOV EDI,0x30
CALL 0x002f0690
MOVDQU XMM0,xmmword ptr [RBX]
MOV RSI,RBP
MOV RDI,RAX
ADD RBX,0x20
MOVUPS xmmword ptr [RAX + 0x10],XMM0
MOVDQU XMM1,xmmword ptr [RBX + -0x10]
MOVUPS xmmword ptr [RAX + 0x20],XMM1
CALL 0x002f4d00
ADD qword ptr [RBP + 0x10],0x1
CMP qword ptr [R12 + 0x90],RBX
JZ 0x00210220
CMP dword ptr [RBX],-0x1
JNZ 0x00210140
MOV ECX,dword ptr [RBX + 0x4]
TEST ECX,ECX
JNZ 0x002102e0
MOV RDI,qword ptr [RBX + 0x10]
LEA RDX,[0x172c90]
MOV RAX,qword ptr [RDI]
MOV RAX,qword ptr [RAX + 0x18]
CMP RAX,RDX
JNZ 0x00210530
MOV RAX,qword ptr [RDI + 0x30]
MOV R14,R13
TEST RAX,RAX
JZ 0x002101cf
LEA R14,[R13 + RAX*0x1 + -0x1]
NEG RAX
AND R14,RAX
CMP R13,R14
JZ 0x002101cf
CMP qword ptr [R15 + 0x8],0x0
JNZ 0x002103d0
MOV RSI,qword ptr [RSP + 0x38]
CMP RSI,qword ptr [RSP + 0x40]
JZ 0x002102f0
MOVDQU XMM2,xmmword ptr [RBX]
ADD RSI,0x20
MOVUPS xmmword ptr [RSI + -0x20],XMM2
MOVDQU XMM3,xmmword ptr [RBX + 0x10]
MOVUPS xmmword ptr [RSI + -0x10],XMM3
MOV qword ptr [RSP + 0x38],RSI
MOV EAX,dword ptr [RBX]
ADD EAX,0x4
CMP EAX,0x3
JBE 0x002102b0
MOV R13,qword ptr [RBX + 0x8]
ADD R13,R14
ADD RBX,0x20
CMP qword ptr [R12 + 0x90],RBX
JNZ 0x0021017d
MOV RDI,qword ptr [R12 + 0x88]
MOV RCX,qword ptr [RSP + 0x30]
MOV RAX,qword ptr [RSP + 0x38]
MOV RDX,qword ptr [RSP + 0x40]
MOV qword ptr [R12 + 0x90],RAX
MOV RAX,qword ptr [R12 + 0x98]
MOV qword ptr [R12 + 0x88],RCX
SUB R13,qword ptr [RSP + 0x8]
MOV qword ptr [RSP + 0x30],RDI
MOV qword ptr [RSP + 0x38],RBX
MOV qword ptr [R12 + 0x98],RDX
MOV qword ptr [RSP + 0x40],RAX
MOV qword ptr [R12 + 0xa0],0x0
TEST byte ptr [R12 + 0x20],0x2
JNZ 0x00210698
MOV qword ptr [R12 + 0x10],R13
TEST RDI,RDI
JZ 0x00210292
CALL 0x002f1e60
ADD RSP,0x98
MOV RAX,R13
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RDI,RBX
CALL 0x0020ab90
CMP dword ptr [RBX],-0x4
JC 0x00210207
MOV RAX,qword ptr [RBX + 0x10]
TEST byte ptr [RAX + 0x20],0x2
JZ 0x00210693
MOV R13,qword ptr [RAX + 0x10]
JMP 0x0021020b
SUB ECX,0x1
MOV EAX,0x1
SHL RAX,CL
JMP 0x002101ac
LEA RDI,[RSP + 0x30]
MOV RDX,RBX
CALL 0x00220270
JMP 0x002101f9
LEA R13,[RAX + RDX*0x1 + -0x1]
NEG RAX
AND R13,RAX
JMP 0x002100f6
LEA RAX,[R14 + 0x28]
MOV qword ptr [RSP],RAX
MOV RAX,0x7ffffffffffffff
CMP RCX,RAX
JA 0x002106b0
MOV RAX,qword ptr [R14 + 0x38]
SUB RAX,RBX
SAR RAX,0x5
CMP RCX,RAX
JA 0x002105d4
CMP RBX,RSI
JZ 0x00210358
MOV qword ptr [R14 + 0x30],RBX
MOV RAX,qword ptr [R14 + 0x18]
MOV R13,qword ptr [RAX]
MOV RAX,qword ptr [RAX + 0x8]
SUB RAX,R13
SAR RAX,0x5
CMP RAX,RCX
JA 0x002106bc
TEST RCX,RCX
JZ 0x002100bd
XOR EBX,EBX
JMP 0x002103ae
MOVDQU XMM4,xmmword ptr [R13]
ADD RSI,0x20
MOVUPS xmmword ptr [RSI + -0x20],XMM4
MOVDQU XMM5,xmmword ptr [R13 + 0x10]
MOVUPS xmmword ptr [RSI + -0x10],XMM5
MOV qword ptr [R14 + 0x30],RSI
ADD RBX,0x1
ADD R13,0x20
CMP qword ptr [R14 + 0x20],RBX
JBE 0x002100bd
MOV RSI,qword ptr [R14 + 0x30]
CMP RSI,qword ptr [R14 + 0x38]
JNZ 0x00210380
MOV RDI,qword ptr [RSP]
MOV RDX,R13
CALL 0x00220270
JMP 0x0021039c
MOV RAX,R14
MOV RDI,qword ptr [RSP]
MOV byte ptr [RSP + 0x60],0x0
MOV qword ptr [RSP + 0x58],0x0
SUB RAX,R13
MOV R13,RAX
MOV RAX,qword ptr [RSP + 0x18]
MOV RSI,R13
MOV qword ptr [RSP + 0x50],RAX
CALL 0x002f9000
JMP 0x0021040c
MOV RSI,qword ptr [R15]
MOV RDI,qword ptr [RSP]
CALL 0x002fa0e0
MOV RAX,qword ptr [RSP + 0x58]
MOV RDX,qword ptr [R15 + 0x8]
LEA RCX,[RAX + RDX*0x1]
CMP R13,RCX
JNC 0x00210400
CMP R13,RAX
JA 0x00210540
MOV EDI,0x58
CALL 0x002f0690
MOV RDX,qword ptr [RSP + 0x58]
MOV R13,RAX
MOV qword ptr [RAX + 0x8],0x0
MOV qword ptr [RAX + 0x28],0x0
MOV RDI,qword ptr [RSP + 0x50]
MOV qword ptr [RAX + 0x30],0x0
MOV qword ptr [RAX + 0x10],RDX
MOV RCX,RDI
MOV qword ptr [RAX + 0x18],-0x1
MOVZX EAX,byte ptr [RAX + 0x20]
MOV qword ptr [RSP + 0x10],RDX
AND EAX,0xffffffe0
MOV qword ptr [RSP + 0x28],RDI
OR EAX,0xa
ADD RCX,RDX
MOV byte ptr [R13 + 0x20],AL
LEA RAX,[0x445c48]
MOV qword ptr [R13],RAX
LEA RAX,[R13 + 0x48]
MOV qword ptr [R13 + 0x38],RAX
JZ 0x0021049e
TEST RDI,RDI
JZ 0x00210687
MOV RCX,qword ptr [RSP + 0x10]
MOV qword ptr [RSP + 0x70],RCX
CMP RCX,0xf
JA 0x0021058a
CMP qword ptr [RSP + 0x10],0x1
JNZ 0x0021055b
MOV RCX,qword ptr [RSP + 0x28]
MOVZX EDX,byte ptr [RCX]
MOV byte ptr [R13 + 0x48],DL
LEA RDX,[RSP + 0x70]
MOV qword ptr [RSP + 0x20],RDX
MOV RDX,qword ptr [RSP + 0x10]
MOV RSI,qword ptr [RSP + 0x20]
LEA RDI,[RSP + 0x30]
MOV qword ptr [R13 + 0x40],RDX
MOV byte ptr [RAX + RDX*0x1],0x0
MOV EAX,0xffffffff
MOV dword ptr [RSP + 0x88],0x0
MOV qword ptr [RSP + 0x70],RAX
MOV qword ptr [RSP + 0x78],0x0
MOV qword ptr [RSP + 0x80],R13
CALL 0x00223190
MOV RDI,qword ptr [RSP + 0x50]
CMP RDI,qword ptr [RSP + 0x18]
JZ 0x002101cf
CALL 0x002f1e60
JMP 0x002101cf
CALL RAX
JMP 0x002101ac
SUB R13,RAX
MOV RSI,qword ptr [R15]
MOV RDI,qword ptr [RSP]
CMP R13,RDX
CMOVBE RDX,R13
CALL 0x002fa0e0
JMP 0x00210427
CMP qword ptr [RSP + 0x10],0x0
JNZ 0x00210678
LEA RDX,[RSP + 0x70]
MOV qword ptr [RSP + 0x20],RDX
JMP 0x002104d4
MOV RDI,R12
CALL RAX
JMP 0x002100e5
LEA RAX,[RSP + 0x70]
LEA RDI,[R13 + 0x38]
XOR EDX,EDX
MOV RSI,RAX
MOV qword ptr [RSP + 0x20],RAX
CALL 0x002f8790
MOV RDX,qword ptr [RSP + 0x70]
MOV qword ptr [R13 + 0x38],RAX
MOV qword ptr [R13 + 0x48],RDX
MOV RDX,qword ptr [RSP + 0x10]
MOV RSI,qword ptr [RSP + 0x28]
MOV RDI,RAX
CALL 0x00149a90
MOV RAX,qword ptr [RSP + 0x70]
MOV qword ptr [RSP + 0x10],RAX
MOV RAX,qword ptr [R13 + 0x38]
JMP 0x002104d4
MOV RDI,RCX
SHL RDI,0x5
MOV qword ptr [RSP + 0x10],RDI
TEST RCX,RCX
JZ 0x00210671
MOV qword ptr [RSP + 0x18],RSI
CALL 0x002f0690
MOV RDI,qword ptr [R14 + 0x28]
MOV RSI,qword ptr [RSP + 0x18]
MOV RDX,RBX
MOV RCX,RAX
CMP RSI,RBX
JZ 0x0021062e
NOP word ptr [RAX + RAX*0x1]
MOVDQU XMM6,xmmword ptr [RDX]
ADD RDX,0x20
ADD RCX,0x20
MOVUPS xmmword ptr [RCX + -0x20],XMM6
MOVDQU XMM7,xmmword ptr [RDX + -0x10]
MOVUPS xmmword ptr [RCX + -0x10],XMM7
CMP RSI,RDX
JNZ 0x00210610
TEST RDI,RDI
JZ 0x00210642
MOV qword ptr [RSP + 0x18],RAX
CALL 0x002f1e60
MOV RAX,qword ptr [RSP + 0x18]
LEA RSI,[RAX + R13*0x1]
MOV R13,qword ptr [RSP + 0x10]
MOV qword ptr [R14 + 0x28],RAX
MOV RBX,RAX
MOV qword ptr [R14 + 0x30],RSI
MOV RCX,qword ptr [R14 + 0x20]
ADD R13,RAX
MOV qword ptr [R14 + 0x38],R13
JMP 0x0021034f
XOR EDX,EDX
XOR EAX,EAX
XOR ECX,ECX
JMP 0x00210237
MOV RDI,RBX
XOR EAX,EAX
JMP 0x002105fc
LEA RCX,[RSP + 0x70]
MOV qword ptr [RSP + 0x20],RCX
JMP 0x002105af
LEA RDI,[0x3820a0]
CALL 0x003306d0
CALL 0x0020a520
LEA RDX,[0x39afa0]
MOV ESI,0x231
LEA RDI,[0x387398]
CALL 0x0018ff20
LEA RDI,[0x38d834]
CALL 0x00330790
LEA RDX,[0x39a780]
MOV ESI,0x10fd
LEA RDI,[0x387398]
CALL 0x0018ff20
(translation_unit "long FUN_00210070(long *param_1,ulong param_2,undefined8 *param_3,long param_4)\n\n{\n  code *pcVar1;\n  undefined8 uVar2;\n  undefined8 *puVar3;\n  undefined1 *__src;\n  undefined8 *puVar4;\n  long lVar5;\n  undefined8 *puVar6;\n  undefined8 *puVar7;\n  ulong uVar8;\n  uint *puVar9;\n  uint *puVar10;\n  undefined8 *puVar11;\n  long lVar12;\n  ulong uVar13;\n  ulong uVar14;\n  ulong local_b8;\n  ulong *local_a8;\n  uint *local_98;\n  uint *local_90;\n  undefined8 *local_88;\n  undefined1 *local_78;\n  ulong local_70;\n  undefined1 local_68 [16];\n  ulong local_58 [2];\n  undefined8 *local_48;\n  undefined4 local_40;\n  \n  lVar5 = param_1[0x1d];\n  if (lVar5 != 0) {\n    puVar6 = *(undefined8 **)(lVar5 + 0x30);\n    puVar4 = *(undefined8 **)(lVar5 + 0x28);\n    uVar13 = *(ulong *)(lVar5 + 0x20);\n    lVar12 = (long)puVar6 - (long)puVar4;\n    if (uVar13 != lVar12 >> 5) {\n      if (0x7ffffffffffffff < uVar13) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00330790("vector::reserve");\n      }\n      uVar14 = uVar13;\n      if ((ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5) < uVar13) {\n        puVar3 = puVar4;\n        if (uVar13 == 0) {\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }\n        else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }\n        for (; puVar6 != puVar3; puVar3 = puVar3 + 4) {\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }\n        if (puVar11 != (undefined8 *)0x0) {\n          FUN_002f1e60();\n        }\n        puVar6 = (undefined8 *)((long)puVar4 + lVar12);\n        *(undefined8 **)(lVar5 + 0x28) = puVar4;\n        *(undefined8 **)(lVar5 + 0x30) = puVar6;\n        uVar14 = *(ulong *)(lVar5 + 0x20);\n        *(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4;\n      }\n      if (puVar4 != puVar6) {\n        *(undefined8 **)(lVar5 + 0x30) = puVar4;\n      }\n      puVar6 = (undefined8 *)**(long **)(lVar5 + 0x18);\n      if (uVar14 < (ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections");\n      }\n      if (uVar14 != 0) {\n        uVar13 = 0;\n        do {\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        } while (uVar13 < *(ulong *)(lVar5 + 0x20));\n      }\n    }\n  }\n  *(undefined1 *)param_1[0x1e] = 0;\n  if (*(code **)(*param_1 + 0x18) == FUN_001c5d30) {\n    lVar5 = param_1[6];\n  }\n  else {\n    lVar5 = (**(code **)(*param_1 + 0x18))(param_1);\n  }\n  uVar13 = param_2;\n  if (lVar5 != 0) {\n    uVar13 = lVar5 + -1 + param_2 & -lVar5;\n  }\n  puVar9 = (uint *)param_1[0x11];\n  puVar10 = (uint *)param_1[0x12];\n  local_98 = (uint *)0x0;\n  local_90 = (uint *)0x0;\n  local_88 = (undefined8 *)0x0;\n  if (puVar9 == puVar10) {\n    local_88 = (undefined8 *)0x0;\n    local_90 = (uint *)0x0;\n    local_98 = (uint *)0x0;\n  }\n  else {\n    do {\n      while (puVar10 = puVar9, *puVar10 != 0xffffffff) {\n                    /* try { // try from 00210145 to 002102fc has its CatchHandler @ 002106dc */\n        lVar5 = FUN_002f0690(0x30);\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;\n        *(undefined8 *)(lVar5 + 0x18) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)(lVar5 + 0x28) = uVar2;\n        FUN_002f4d00(lVar5,param_4);\n        *(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;\n        puVar9 = puVar10 + 8;\n        if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;\n      }\n      if (puVar10[1] == 0) {\n        pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);\n        if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    /* try { // try from 00210530 to 00210531 has its CatchHandler @ 002106dc */\n          lVar5 = (*pcVar1)();\n        }\n      }\n      else {\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }\n      uVar14 = uVar13;\n      if (((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0)) {\n        local_68[0] = 0;\n        local_70 = 0;\n        uVar13 = uVar14 - uVar13;\n        local_78 = local_68;\n                    /* try { // try from 002103f8 to 00210515 has its CatchHandler @ 002106e4 */\n        FUN_002f9000(&local_78,uVar13);\n        while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }\n        if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    /* try { // try from 00210551 to 00210555 has its CatchHandler @ 002106e4 */\n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }\n        puVar4 = (undefined8 *)FUN_002f0690(0x58);\n        uVar13 = local_70;\n        __src = local_78;\n        puVar4[1] = 0;\n        puVar4[5] = 0;\n        puVar4[6] = 0;\n        puVar4[2] = local_70;\n        puVar4[3] = 0xffffffffffffffff;\n        local_b8 = local_70;\n        *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;\n        *puVar4 = &PTR_FUN_00445c48;\n        puVar6 = puVar4 + 9;\n        puVar4[7] = puVar6;\n        if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021068e to 00210692 has its CatchHandler @ 002106d4 */\n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }\n        local_58[0] = local_70;\n        if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    /* try { // try from 0021059d to 002105a1 has its CatchHandler @ 002106d4 */\n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }\n        local_a8 = local_58;\n        puVar4[8] = local_b8;\n        *(undefined1 *)((long)puVar6 + local_b8) = 0;\n        local_40 = 0;\n        local_58[0] = 0xffffffff;\n        local_58[1] = 0;\n        local_48 = puVar4;\n        FUN_00223190(&local_98,local_a8);\n        if (local_78 != local_68) {\n          FUN_002f1e60();\n        }\n      }\n      if (local_90 == (uint *)local_88) {\n        FUN_00220270(&local_98,local_90,puVar10);\n      }\n      else {\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }\n      if ((*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)) {\n        if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00210693 to 002106af has its CatchHandler @ 002106dc */\n          FUN_0020a520();\n        }\n        lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);\n      }\n      else {\n        lVar5 = *(long *)(puVar10 + 2);\n      }\n      uVar13 = lVar5 + uVar14;\n      puVar9 = puVar10 + 8;\n    } while ((uint *)param_1[0x12] != puVar10 + 8);\nLAB_00210220:\n    puVar9 = puVar10 + 8;\n    puVar10 = (uint *)param_1[0x11];\n  }\n  param_1[0x12] = (long)local_90;\n  lVar5 = param_1[0x13];\n  param_1[0x11] = (long)local_98;\n  param_1[0x13] = (long)local_88;\n  param_1[0x14] = 0;\n  local_98 = puVar10;\n  local_90 = puVar9;\n  local_88 = (undefined8 *)lVar5;\n  if ((*(byte *)(param_1 + 4) & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0018ff20("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }\n  param_1[2] = uVar13 - param_2;\n  if (puVar10 != (uint *)0x0) {\n    FUN_002f1e60();\n  }\n  return uVar13 - param_2;\n}\n\n" (function_definition "long FUN_00210070(long *param_1,ulong param_2,undefined8 *param_3,long param_4)\n\n{\n  code *pcVar1;\n  undefined8 uVar2;\n  undefined8 *puVar3;\n  undefined1 *__src;\n  undefined8 *puVar4;\n  long lVar5;\n  undefined8 *puVar6;\n  undefined8 *puVar7;\n  ulong uVar8;\n  uint *puVar9;\n  uint *puVar10;\n  undefined8 *puVar11;\n  long lVar12;\n  ulong uVar13;\n  ulong uVar14;\n  ulong local_b8;\n  ulong *local_a8;\n  uint *local_98;\n  uint *local_90;\n  undefined8 *local_88;\n  undefined1 *local_78;\n  ulong local_70;\n  undefined1 local_68 [16];\n  ulong local_58 [2];\n  undefined8 *local_48;\n  undefined4 local_40;\n  \n  lVar5 = param_1[0x1d];\n  if (lVar5 != 0) {\n    puVar6 = *(undefined8 **)(lVar5 + 0x30);\n    puVar4 = *(undefined8 **)(lVar5 + 0x28);\n    uVar13 = *(ulong *)(lVar5 + 0x20);\n    lVar12 = (long)puVar6 - (long)puVar4;\n    if (uVar13 != lVar12 >> 5) {\n      if (0x7ffffffffffffff < uVar13) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00330790("vector::reserve");\n      }\n      uVar14 = uVar13;\n      if ((ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5) < uVar13) {\n        puVar3 = puVar4;\n        if (uVar13 == 0) {\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }\n        else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }\n        for (; puVar6 != puVar3; puVar3 = puVar3 + 4) {\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }\n        if (puVar11 != (undefined8 *)0x0) {\n          FUN_002f1e60();\n        }\n        puVar6 = (undefined8 *)((long)puVar4 + lVar12);\n        *(undefined8 **)(lVar5 + 0x28) = puVar4;\n        *(undefined8 **)(lVar5 + 0x30) = puVar6;\n        uVar14 = *(ulong *)(lVar5 + 0x20);\n        *(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4;\n      }\n      if (puVar4 != puVar6) {\n        *(undefined8 **)(lVar5 + 0x30) = puVar4;\n      }\n      puVar6 = (undefined8 *)**(long **)(lVar5 + 0x18);\n      if (uVar14 < (ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections");\n      }\n      if (uVar14 != 0) {\n        uVar13 = 0;\n        do {\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        } while (uVar13 < *(ulong *)(lVar5 + 0x20));\n      }\n    }\n  }\n  *(undefined1 *)param_1[0x1e] = 0;\n  if (*(code **)(*param_1 + 0x18) == FUN_001c5d30) {\n    lVar5 = param_1[6];\n  }\n  else {\n    lVar5 = (**(code **)(*param_1 + 0x18))(param_1);\n  }\n  uVar13 = param_2;\n  if (lVar5 != 0) {\n    uVar13 = lVar5 + -1 + param_2 & -lVar5;\n  }\n  puVar9 = (uint *)param_1[0x11];\n  puVar10 = (uint *)param_1[0x12];\n  local_98 = (uint *)0x0;\n  local_90 = (uint *)0x0;\n  local_88 = (undefined8 *)0x0;\n  if (puVar9 == puVar10) {\n    local_88 = (undefined8 *)0x0;\n    local_90 = (uint *)0x0;\n    local_98 = (uint *)0x0;\n  }\n  else {\n    do {\n      while (puVar10 = puVar9, *puVar10 != 0xffffffff) {\n                    /* try { // try from 00210145 to 002102fc has its CatchHandler @ 002106dc */\n        lVar5 = FUN_002f0690(0x30);\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;\n        *(undefined8 *)(lVar5 + 0x18) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)(lVar5 + 0x28) = uVar2;\n        FUN_002f4d00(lVar5,param_4);\n        *(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;\n        puVar9 = puVar10 + 8;\n        if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;\n      }\n      if (puVar10[1] == 0) {\n        pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);\n        if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    /* try { // try from 00210530 to 00210531 has its CatchHandler @ 002106dc */\n          lVar5 = (*pcVar1)();\n        }\n      }\n      else {\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }\n      uVar14 = uVar13;\n      if (((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0)) {\n        local_68[0] = 0;\n        local_70 = 0;\n        uVar13 = uVar14 - uVar13;\n        local_78 = local_68;\n                    /* try { // try from 002103f8 to 00210515 has its CatchHandler @ 002106e4 */\n        FUN_002f9000(&local_78,uVar13);\n        while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }\n        if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    /* try { // try from 00210551 to 00210555 has its CatchHandler @ 002106e4 */\n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }\n        puVar4 = (undefined8 *)FUN_002f0690(0x58);\n        uVar13 = local_70;\n        __src = local_78;\n        puVar4[1] = 0;\n        puVar4[5] = 0;\n        puVar4[6] = 0;\n        puVar4[2] = local_70;\n        puVar4[3] = 0xffffffffffffffff;\n        local_b8 = local_70;\n        *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;\n        *puVar4 = &PTR_FUN_00445c48;\n        puVar6 = puVar4 + 9;\n        puVar4[7] = puVar6;\n        if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021068e to 00210692 has its CatchHandler @ 002106d4 */\n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }\n        local_58[0] = local_70;\n        if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    /* try { // try from 0021059d to 002105a1 has its CatchHandler @ 002106d4 */\n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }\n        local_a8 = local_58;\n        puVar4[8] = local_b8;\n        *(undefined1 *)((long)puVar6 + local_b8) = 0;\n        local_40 = 0;\n        local_58[0] = 0xffffffff;\n        local_58[1] = 0;\n        local_48 = puVar4;\n        FUN_00223190(&local_98,local_a8);\n        if (local_78 != local_68) {\n          FUN_002f1e60();\n        }\n      }\n      if (local_90 == (uint *)local_88) {\n        FUN_00220270(&local_98,local_90,puVar10);\n      }\n      else {\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }\n      if ((*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)) {\n        if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00210693 to 002106af has its CatchHandler @ 002106dc */\n          FUN_0020a520();\n        }\n        lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);\n      }\n      else {\n        lVar5 = *(long *)(puVar10 + 2);\n      }\n      uVar13 = lVar5 + uVar14;\n      puVar9 = puVar10 + 8;\n    } while ((uint *)param_1[0x12] != puVar10 + 8);\nLAB_00210220:\n    puVar9 = puVar10 + 8;\n    puVar10 = (uint *)param_1[0x11];\n  }\n  param_1[0x12] = (long)local_90;\n  lVar5 = param_1[0x13];\n  param_1[0x11] = (long)local_98;\n  param_1[0x13] = (long)local_88;\n  param_1[0x14] = 0;\n  local_98 = puVar10;\n  local_90 = puVar9;\n  local_88 = (undefined8 *)lVar5;\n  if ((*(byte *)(param_1 + 4) & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0018ff20("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }\n  param_1[2] = uVar13 - param_2;\n  if (puVar10 != (uint *)0x0) {\n    FUN_002f1e60();\n  }\n  return uVar13 - param_2;\n}" (sized_type_specifier "long" long) (function_declarator "FUN_00210070(long *param_1,ulong param_2,undefined8 *param_3,long param_4)" identifier (parameter_list "(long *param_1,ulong param_2,undefined8 *param_3,long param_4)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "ulong param_2" type_identifier identifier) , (parameter_declaration "undefined8 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  code *pcVar1;\n  undefined8 uVar2;\n  undefined8 *puVar3;\n  undefined1 *__src;\n  undefined8 *puVar4;\n  long lVar5;\n  undefined8 *puVar6;\n  undefined8 *puVar7;\n  ulong uVar8;\n  uint *puVar9;\n  uint *puVar10;\n  undefined8 *puVar11;\n  long lVar12;\n  ulong uVar13;\n  ulong uVar14;\n  ulong local_b8;\n  ulong *local_a8;\n  uint *local_98;\n  uint *local_90;\n  undefined8 *local_88;\n  undefined1 *local_78;\n  ulong local_70;\n  undefined1 local_68 [16];\n  ulong local_58 [2];\n  undefined8 *local_48;\n  undefined4 local_40;\n  \n  lVar5 = param_1[0x1d];\n  if (lVar5 != 0) {\n    puVar6 = *(undefined8 **)(lVar5 + 0x30);\n    puVar4 = *(undefined8 **)(lVar5 + 0x28);\n    uVar13 = *(ulong *)(lVar5 + 0x20);\n    lVar12 = (long)puVar6 - (long)puVar4;\n    if (uVar13 != lVar12 >> 5) {\n      if (0x7ffffffffffffff < uVar13) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00330790("vector::reserve");\n      }\n      uVar14 = uVar13;\n      if ((ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5) < uVar13) {\n        puVar3 = puVar4;\n        if (uVar13 == 0) {\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }\n        else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }\n        for (; puVar6 != puVar3; puVar3 = puVar3 + 4) {\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }\n        if (puVar11 != (undefined8 *)0x0) {\n          FUN_002f1e60();\n        }\n        puVar6 = (undefined8 *)((long)puVar4 + lVar12);\n        *(undefined8 **)(lVar5 + 0x28) = puVar4;\n        *(undefined8 **)(lVar5 + 0x30) = puVar6;\n        uVar14 = *(ulong *)(lVar5 + 0x20);\n        *(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4;\n      }\n      if (puVar4 != puVar6) {\n        *(undefined8 **)(lVar5 + 0x30) = puVar4;\n      }\n      puVar6 = (undefined8 *)**(long **)(lVar5 + 0x18);\n      if (uVar14 < (ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections");\n      }\n      if (uVar14 != 0) {\n        uVar13 = 0;\n        do {\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        } while (uVar13 < *(ulong *)(lVar5 + 0x20));\n      }\n    }\n  }\n  *(undefined1 *)param_1[0x1e] = 0;\n  if (*(code **)(*param_1 + 0x18) == FUN_001c5d30) {\n    lVar5 = param_1[6];\n  }\n  else {\n    lVar5 = (**(code **)(*param_1 + 0x18))(param_1);\n  }\n  uVar13 = param_2;\n  if (lVar5 != 0) {\n    uVar13 = lVar5 + -1 + param_2 & -lVar5;\n  }\n  puVar9 = (uint *)param_1[0x11];\n  puVar10 = (uint *)param_1[0x12];\n  local_98 = (uint *)0x0;\n  local_90 = (uint *)0x0;\n  local_88 = (undefined8 *)0x0;\n  if (puVar9 == puVar10) {\n    local_88 = (undefined8 *)0x0;\n    local_90 = (uint *)0x0;\n    local_98 = (uint *)0x0;\n  }\n  else {\n    do {\n      while (puVar10 = puVar9, *puVar10 != 0xffffffff) {\n                    /* try { // try from 00210145 to 002102fc has its CatchHandler @ 002106dc */\n        lVar5 = FUN_002f0690(0x30);\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;\n        *(undefined8 *)(lVar5 + 0x18) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)(lVar5 + 0x28) = uVar2;\n        FUN_002f4d00(lVar5,param_4);\n        *(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;\n        puVar9 = puVar10 + 8;\n        if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;\n      }\n      if (puVar10[1] == 0) {\n        pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);\n        if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    /* try { // try from 00210530 to 00210531 has its CatchHandler @ 002106dc */\n          lVar5 = (*pcVar1)();\n        }\n      }\n      else {\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }\n      uVar14 = uVar13;\n      if (((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0)) {\n        local_68[0] = 0;\n        local_70 = 0;\n        uVar13 = uVar14 - uVar13;\n        local_78 = local_68;\n                    /* try { // try from 002103f8 to 00210515 has its CatchHandler @ 002106e4 */\n        FUN_002f9000(&local_78,uVar13);\n        while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }\n        if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    /* try { // try from 00210551 to 00210555 has its CatchHandler @ 002106e4 */\n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }\n        puVar4 = (undefined8 *)FUN_002f0690(0x58);\n        uVar13 = local_70;\n        __src = local_78;\n        puVar4[1] = 0;\n        puVar4[5] = 0;\n        puVar4[6] = 0;\n        puVar4[2] = local_70;\n        puVar4[3] = 0xffffffffffffffff;\n        local_b8 = local_70;\n        *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;\n        *puVar4 = &PTR_FUN_00445c48;\n        puVar6 = puVar4 + 9;\n        puVar4[7] = puVar6;\n        if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021068e to 00210692 has its CatchHandler @ 002106d4 */\n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }\n        local_58[0] = local_70;\n        if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    /* try { // try from 0021059d to 002105a1 has its CatchHandler @ 002106d4 */\n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }\n        local_a8 = local_58;\n        puVar4[8] = local_b8;\n        *(undefined1 *)((long)puVar6 + local_b8) = 0;\n        local_40 = 0;\n        local_58[0] = 0xffffffff;\n        local_58[1] = 0;\n        local_48 = puVar4;\n        FUN_00223190(&local_98,local_a8);\n        if (local_78 != local_68) {\n          FUN_002f1e60();\n        }\n      }\n      if (local_90 == (uint *)local_88) {\n        FUN_00220270(&local_98,local_90,puVar10);\n      }\n      else {\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }\n      if ((*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)) {\n        if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00210693 to 002106af has its CatchHandler @ 002106dc */\n          FUN_0020a520();\n        }\n        lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);\n      }\n      else {\n        lVar5 = *(long *)(puVar10 + 2);\n      }\n      uVar13 = lVar5 + uVar14;\n      puVar9 = puVar10 + 8;\n    } while ((uint *)param_1[0x12] != puVar10 + 8);\nLAB_00210220:\n    puVar9 = puVar10 + 8;\n    puVar10 = (uint *)param_1[0x11];\n  }\n  param_1[0x12] = (long)local_90;\n  lVar5 = param_1[0x13];\n  param_1[0x11] = (long)local_98;\n  param_1[0x13] = (long)local_88;\n  param_1[0x14] = 0;\n  local_98 = puVar10;\n  local_90 = puVar9;\n  local_88 = (undefined8 *)lVar5;\n  if ((*(byte *)(param_1 + 4) & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0018ff20("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }\n  param_1[2] = uVar13 - param_2;\n  if (puVar10 != (uint *)0x0) {\n    FUN_002f1e60();\n  }\n  return uVar13 - param_2;\n}" { (declaration "code *pcVar1;" type_identifier (pointer_declarator "*pcVar1" * identifier) ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined8 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined1 *__src;" type_identifier (pointer_declarator "*__src" * identifier) ;) (declaration "undefined8 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "ulong uVar8;" type_identifier identifier ;) (declaration "uint *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined8 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "ulong local_b8;" type_identifier identifier ;) (declaration "ulong *local_a8;" type_identifier (pointer_declarator "*local_a8" * identifier) ;) (declaration "uint *local_98;" type_identifier (pointer_declarator "*local_98" * identifier) ;) (declaration "uint *local_90;" type_identifier (pointer_declarator "*local_90" * identifier) ;) (declaration "undefined8 *local_88;" type_identifier (pointer_declarator "*local_88" * identifier) ;) (declaration "undefined1 *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "ulong local_70;" type_identifier identifier ;) (declaration "undefined1 local_68 [16];" type_identifier (array_declarator "local_68 [16]" identifier [ number_literal ]) ;) (declaration "ulong local_58 [2];" type_identifier (array_declarator "local_58 [2]" identifier [ number_literal ]) ;) (declaration "undefined8 *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (expression_statement "lVar5 = param_1[0x1d];" (assignment_expression "lVar5 = param_1[0x1d]" identifier = (subscript_expression "param_1[0x1d]" identifier [ number_literal ])) ;) (if_statement "if (lVar5 != 0) {\n    puVar6 = *(undefined8 **)(lVar5 + 0x30);\n    puVar4 = *(undefined8 **)(lVar5 + 0x28);\n    uVar13 = *(ulong *)(lVar5 + 0x20);\n    lVar12 = (long)puVar6 - (long)puVar4;\n    if (uVar13 != lVar12 >> 5) {\n      if (0x7ffffffffffffff < uVar13) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00330790("vector::reserve");\n      }\n      uVar14 = uVar13;\n      if ((ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5) < uVar13) {\n        puVar3 = puVar4;\n        if (uVar13 == 0) {\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }\n        else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }\n        for (; puVar6 != puVar3; puVar3 = puVar3 + 4) {\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }\n        if (puVar11 != (undefined8 *)0x0) {\n          FUN_002f1e60();\n        }\n        puVar6 = (undefined8 *)((long)puVar4 + lVar12);\n        *(undefined8 **)(lVar5 + 0x28) = puVar4;\n        *(undefined8 **)(lVar5 + 0x30) = puVar6;\n        uVar14 = *(ulong *)(lVar5 + 0x20);\n        *(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4;\n      }\n      if (puVar4 != puVar6) {\n        *(undefined8 **)(lVar5 + 0x30) = puVar4;\n      }\n      puVar6 = (undefined8 *)**(long **)(lVar5 + 0x18);\n      if (uVar14 < (ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections");\n      }\n      if (uVar14 != 0) {\n        uVar13 = 0;\n        do {\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        } while (uVar13 < *(ulong *)(lVar5 + 0x20));\n      }\n    }\n  }" if (parenthesized_expression "(lVar5 != 0)" ( (binary_expression "lVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    puVar6 = *(undefined8 **)(lVar5 + 0x30);\n    puVar4 = *(undefined8 **)(lVar5 + 0x28);\n    uVar13 = *(ulong *)(lVar5 + 0x20);\n    lVar12 = (long)puVar6 - (long)puVar4;\n    if (uVar13 != lVar12 >> 5) {\n      if (0x7ffffffffffffff < uVar13) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00330790("vector::reserve");\n      }\n      uVar14 = uVar13;\n      if ((ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5) < uVar13) {\n        puVar3 = puVar4;\n        if (uVar13 == 0) {\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }\n        else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }\n        for (; puVar6 != puVar3; puVar3 = puVar3 + 4) {\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }\n        if (puVar11 != (undefined8 *)0x0) {\n          FUN_002f1e60();\n        }\n        puVar6 = (undefined8 *)((long)puVar4 + lVar12);\n        *(undefined8 **)(lVar5 + 0x28) = puVar4;\n        *(undefined8 **)(lVar5 + 0x30) = puVar6;\n        uVar14 = *(ulong *)(lVar5 + 0x20);\n        *(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4;\n      }\n      if (puVar4 != puVar6) {\n        *(undefined8 **)(lVar5 + 0x30) = puVar4;\n      }\n      puVar6 = (undefined8 *)**(long **)(lVar5 + 0x18);\n      if (uVar14 < (ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections");\n      }\n      if (uVar14 != 0) {\n        uVar13 = 0;\n        do {\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        } while (uVar13 < *(ulong *)(lVar5 + 0x20));\n      }\n    }\n  }" { (expression_statement "puVar6 = *(undefined8 **)(lVar5 + 0x30);" (assignment_expression "puVar6 = *(undefined8 **)(lVar5 + 0x30)" identifier = (pointer_expression "*(undefined8 **)(lVar5 + 0x30)" * (cast_expression "(undefined8 **)(lVar5 + 0x30)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x30)" ( (binary_expression "lVar5 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "puVar4 = *(undefined8 **)(lVar5 + 0x28);" (assignment_expression "puVar4 = *(undefined8 **)(lVar5 + 0x28)" identifier = (pointer_expression "*(undefined8 **)(lVar5 + 0x28)" * (cast_expression "(undefined8 **)(lVar5 + 0x28)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x28)" ( (binary_expression "lVar5 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = *(ulong *)(lVar5 + 0x20);" (assignment_expression "uVar13 = *(ulong *)(lVar5 + 0x20)" identifier = (pointer_expression "*(ulong *)(lVar5 + 0x20)" * (cast_expression "(ulong *)(lVar5 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x20)" ( (binary_expression "lVar5 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "lVar12 = (long)puVar6 - (long)puVar4;" (assignment_expression "lVar12 = (long)puVar6 - (long)puVar4" identifier = (binary_expression "(long)puVar6 - (long)puVar4" (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)puVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if (uVar13 != lVar12 >> 5) {\n      if (0x7ffffffffffffff < uVar13) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00330790("vector::reserve");\n      }\n      uVar14 = uVar13;\n      if ((ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5) < uVar13) {\n        puVar3 = puVar4;\n        if (uVar13 == 0) {\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }\n        else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }\n        for (; puVar6 != puVar3; puVar3 = puVar3 + 4) {\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }\n        if (puVar11 != (undefined8 *)0x0) {\n          FUN_002f1e60();\n        }\n        puVar6 = (undefined8 *)((long)puVar4 + lVar12);\n        *(undefined8 **)(lVar5 + 0x28) = puVar4;\n        *(undefined8 **)(lVar5 + 0x30) = puVar6;\n        uVar14 = *(ulong *)(lVar5 + 0x20);\n        *(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4;\n      }\n      if (puVar4 != puVar6) {\n        *(undefined8 **)(lVar5 + 0x30) = puVar4;\n      }\n      puVar6 = (undefined8 *)**(long **)(lVar5 + 0x18);\n      if (uVar14 < (ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections");\n      }\n      if (uVar14 != 0) {\n        uVar13 = 0;\n        do {\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        } while (uVar13 < *(ulong *)(lVar5 + 0x20));\n      }\n    }" if (parenthesized_expression "(uVar13 != lVar12 >> 5)" ( (binary_expression "uVar13 != lVar12 >> 5" identifier != (binary_expression "lVar12 >> 5" identifier >> number_literal)) )) (compound_statement "{\n      if (0x7ffffffffffffff < uVar13) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00330790("vector::reserve");\n      }\n      uVar14 = uVar13;\n      if ((ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5) < uVar13) {\n        puVar3 = puVar4;\n        if (uVar13 == 0) {\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }\n        else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }\n        for (; puVar6 != puVar3; puVar3 = puVar3 + 4) {\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }\n        if (puVar11 != (undefined8 *)0x0) {\n          FUN_002f1e60();\n        }\n        puVar6 = (undefined8 *)((long)puVar4 + lVar12);\n        *(undefined8 **)(lVar5 + 0x28) = puVar4;\n        *(undefined8 **)(lVar5 + 0x30) = puVar6;\n        uVar14 = *(ulong *)(lVar5 + 0x20);\n        *(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4;\n      }\n      if (puVar4 != puVar6) {\n        *(undefined8 **)(lVar5 + 0x30) = puVar4;\n      }\n      puVar6 = (undefined8 *)**(long **)(lVar5 + 0x18);\n      if (uVar14 < (ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections");\n      }\n      if (uVar14 != 0) {\n        uVar13 = 0;\n        do {\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        } while (uVar13 < *(ulong *)(lVar5 + 0x20));\n      }\n    }" { (if_statement "if (0x7ffffffffffffff < uVar13) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00330790("vector::reserve");\n      }" if (parenthesized_expression "(0x7ffffffffffffff < uVar13)" ( (binary_expression "0x7ffffffffffffff < uVar13" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_00330790("vector::reserve");\n      }" { comment (expression_statement "FUN_00330790("vector::reserve");" (call_expression "FUN_00330790("vector::reserve")" identifier (argument_list "("vector::reserve")" ( (string_literal ""vector::reserve"" " string_content ") ))) ;) })) (expression_statement "uVar14 = uVar13;" (assignment_expression "uVar14 = uVar13" identifier = identifier) ;) (if_statement "if ((ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5) < uVar13) {\n        puVar3 = puVar4;\n        if (uVar13 == 0) {\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }\n        else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }\n        for (; puVar6 != puVar3; puVar3 = puVar3 + 4) {\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }\n        if (puVar11 != (undefined8 *)0x0) {\n          FUN_002f1e60();\n        }\n        puVar6 = (undefined8 *)((long)puVar4 + lVar12);\n        *(undefined8 **)(lVar5 + 0x28) = puVar4;\n        *(undefined8 **)(lVar5 + 0x30) = puVar6;\n        uVar14 = *(ulong *)(lVar5 + 0x20);\n        *(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4;\n      }" if (parenthesized_expression "((ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5) < uVar13)" ( (binary_expression "(ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5) < uVar13" (call_expression "(ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5)" ( (binary_expression "*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5" (binary_expression "*(long *)(lVar5 + 0x38) - (long)puVar4" (pointer_expression "*(long *)(lVar5 + 0x38)" * (cast_expression "(long *)(lVar5 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x38)" ( (binary_expression "lVar5 + 0x38" identifier + number_literal) )))) - (cast_expression "(long)puVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal) ))) < identifier) )) (compound_statement "{\n        puVar3 = puVar4;\n        if (uVar13 == 0) {\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }\n        else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }\n        for (; puVar6 != puVar3; puVar3 = puVar3 + 4) {\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }\n        if (puVar11 != (undefined8 *)0x0) {\n          FUN_002f1e60();\n        }\n        puVar6 = (undefined8 *)((long)puVar4 + lVar12);\n        *(undefined8 **)(lVar5 + 0x28) = puVar4;\n        *(undefined8 **)(lVar5 + 0x30) = puVar6;\n        uVar14 = *(ulong *)(lVar5 + 0x20);\n        *(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4;\n      }" { (expression_statement "puVar3 = puVar4;" (assignment_expression "puVar3 = puVar4" identifier = identifier) ;) (if_statement "if (uVar13 == 0) {\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }\n        else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }" { (expression_statement "puVar7 = (undefined8 *)0x0;" (assignment_expression "puVar7 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar11 = puVar4;" (assignment_expression "puVar11 = puVar4" identifier = identifier) ;) (expression_statement "puVar4 = puVar7;" (assignment_expression "puVar4 = puVar7" identifier = identifier) ;) }) (else_clause "else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }" else (compound_statement "{\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }" { (expression_statement "puVar7 = (undefined8 *)FUN_002f0690();" (assignment_expression "puVar7 = (undefined8 *)FUN_002f0690()" identifier = (cast_expression "(undefined8 *)FUN_002f0690()" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002f0690()" identifier (argument_list "()" ( ))))) ;) (expression_statement "puVar11 = *(undefined8 **)(lVar5 + 0x28);" (assignment_expression "puVar11 = *(undefined8 **)(lVar5 + 0x28)" identifier = (pointer_expression "*(undefined8 **)(lVar5 + 0x28)" * (cast_expression "(undefined8 **)(lVar5 + 0x28)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x28)" ( (binary_expression "lVar5 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar4 = puVar7;" (assignment_expression "puVar4 = puVar7" identifier = identifier) ;) }))) (for_statement "for (; puVar6 != puVar3; puVar3 = puVar3 + 4) {\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }" for ( ; (binary_expression "puVar6 != puVar3" identifier != identifier) ; (assignment_expression "puVar3 = puVar3 + 4" identifier = (binary_expression "puVar3 + 4" identifier + number_literal)) ) (compound_statement "{\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }" { (expression_statement "uVar2 = puVar3[1];" (assignment_expression "uVar2 = puVar3[1]" identifier = (subscript_expression "puVar3[1]" identifier [ number_literal ])) ;) (expression_statement "*puVar7 = *puVar3;" (assignment_expression "*puVar7 = *puVar3" (pointer_expression "*puVar7" * identifier) = (pointer_expression "*puVar3" * identifier)) ;) (expression_statement "puVar7[1] = uVar2;" (assignment_expression "puVar7[1] = uVar2" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = puVar3[3];" (assignment_expression "uVar2 = puVar3[3]" identifier = (subscript_expression "puVar3[3]" identifier [ number_literal ])) ;) (expression_statement "puVar7[2] = puVar3[2];" (assignment_expression "puVar7[2] = puVar3[2]" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = (subscript_expression "puVar3[2]" identifier [ number_literal ])) ;) (expression_statement "puVar7[3] = uVar2;" (assignment_expression "puVar7[3] = uVar2" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7 = puVar7 + 4;" (assignment_expression "puVar7 = puVar7 + 4" identifier = (binary_expression "puVar7 + 4" identifier + number_literal)) ;) })) (if_statement "if (puVar11 != (undefined8 *)0x0) {\n          FUN_002f1e60();\n        }" if (parenthesized_expression "(puVar11 != (undefined8 *)0x0)" ( (binary_expression "puVar11 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          FUN_002f1e60();\n        }" { (expression_statement "FUN_002f1e60();" (call_expression "FUN_002f1e60()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "puVar6 = (undefined8 *)((long)puVar4 + lVar12);" (assignment_expression "puVar6 = (undefined8 *)((long)puVar4 + lVar12)" identifier = (cast_expression "(undefined8 *)((long)puVar4 + lVar12)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar4 + lVar12)" ( (binary_expression "(long)puVar4 + lVar12" (cast_expression "(long)puVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) (expression_statement "*(undefined8 **)(lVar5 + 0x28) = puVar4;" (assignment_expression "*(undefined8 **)(lVar5 + 0x28) = puVar4" (pointer_expression "*(undefined8 **)(lVar5 + 0x28)" * (cast_expression "(undefined8 **)(lVar5 + 0x28)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x28)" ( (binary_expression "lVar5 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 **)(lVar5 + 0x30) = puVar6;" (assignment_expression "*(undefined8 **)(lVar5 + 0x30) = puVar6" (pointer_expression "*(undefined8 **)(lVar5 + 0x30)" * (cast_expression "(undefined8 **)(lVar5 + 0x30)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x30)" ( (binary_expression "lVar5 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar14 = *(ulong *)(lVar5 + 0x20);" (assignment_expression "uVar14 = *(ulong *)(lVar5 + 0x20)" identifier = (pointer_expression "*(ulong *)(lVar5 + 0x20)" * (cast_expression "(ulong *)(lVar5 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x20)" ( (binary_expression "lVar5 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4;" (assignment_expression "*(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4" (pointer_expression "*(undefined8 **)(lVar5 + 0x38)" * (cast_expression "(undefined8 **)(lVar5 + 0x38)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x38)" ( (binary_expression "lVar5 + 0x38" identifier + number_literal) )))) = (binary_expression "puVar4 + uVar13 * 4" identifier + (binary_expression "uVar13 * 4" identifier * number_literal))) ;) })) (if_statement "if (puVar4 != puVar6) {\n        *(undefined8 **)(lVar5 + 0x30) = puVar4;\n      }" if (parenthesized_expression "(puVar4 != puVar6)" ( (binary_expression "puVar4 != puVar6" identifier != identifier) )) (compound_statement "{\n        *(undefined8 **)(lVar5 + 0x30) = puVar4;\n      }" { (expression_statement "*(undefined8 **)(lVar5 + 0x30) = puVar4;" (assignment_expression "*(undefined8 **)(lVar5 + 0x30) = puVar4" (pointer_expression "*(undefined8 **)(lVar5 + 0x30)" * (cast_expression "(undefined8 **)(lVar5 + 0x30)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x30)" ( (binary_expression "lVar5 + 0x30" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "puVar6 = (undefined8 *)**(long **)(lVar5 + 0x18);" (assignment_expression "puVar6 = (undefined8 *)**(long **)(lVar5 + 0x18)" identifier = (cast_expression "(undefined8 *)**(long **)(lVar5 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(long **)(lVar5 + 0x18)" * (pointer_expression "*(long **)(lVar5 + 0x18)" * (cast_expression "(long **)(lVar5 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x18)" ( (binary_expression "lVar5 + 0x18" identifier + number_literal) ))))))) ;) (if_statement "if (uVar14 < (ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections");\n      }" if (parenthesized_expression "(uVar14 < (ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5))" ( (binary_expression "uVar14 < (ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)" identifier < (call_expression "(ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)" ( (binary_expression "(*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5" (binary_expression "(*(long **)(lVar5 + 0x18))[1] - (long)puVar6" (subscript_expression "(*(long **)(lVar5 + 0x18))[1]" (parenthesized_expression "(*(long **)(lVar5 + 0x18))" ( (pointer_expression "*(long **)(lVar5 + 0x18)" * (cast_expression "(long **)(lVar5 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x18)" ( (binary_expression "lVar5 + 0x18" identifier + number_literal) )))) )) [ number_literal ]) - (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal) )))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections");\n      }" { comment (expression_statement "FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections");" (call_expression "FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections")" identifier (argument_list "("../../gold/output.h",0x10fd,"save_input_sections")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""save_input_sections"" " string_content ") ))) ;) })) (if_statement "if (uVar14 != 0) {\n        uVar13 = 0;\n        do {\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        } while (uVar13 < *(ulong *)(lVar5 + 0x20));\n      }" if (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar13 = 0;\n        do {\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        } while (uVar13 < *(ulong *)(lVar5 + 0x20));\n      }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        } while (uVar13 < *(ulong *)(lVar5 + 0x20));" do (compound_statement "{\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        }" { (expression_statement "puVar4 = *(undefined8 **)(lVar5 + 0x30);" (assignment_expression "puVar4 = *(undefined8 **)(lVar5 + 0x30)" identifier = (pointer_expression "*(undefined8 **)(lVar5 + 0x30)" * (cast_expression "(undefined8 **)(lVar5 + 0x30)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x30)" ( (binary_expression "lVar5 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }" if (parenthesized_expression "(puVar4 == *(undefined8 **)(lVar5 + 0x38))" ( (binary_expression "puVar4 == *(undefined8 **)(lVar5 + 0x38)" identifier == (pointer_expression "*(undefined8 **)(lVar5 + 0x38)" * (cast_expression "(undefined8 **)(lVar5 + 0x38)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x38)" ( (binary_expression "lVar5 + 0x38" identifier + number_literal) ))))) )) (compound_statement "{\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }" { (expression_statement "FUN_00220270(lVar5 + 0x28,puVar4,puVar6);" (call_expression "FUN_00220270(lVar5 + 0x28,puVar4,puVar6)" identifier (argument_list "(lVar5 + 0x28,puVar4,puVar6)" ( (binary_expression "lVar5 + 0x28" identifier + number_literal) , identifier , identifier ))) ;) }) (else_clause "else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }" else (compound_statement "{\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }" { (expression_statement "uVar2 = puVar6[1];" (assignment_expression "uVar2 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "*puVar4 = *puVar6;" (assignment_expression "*puVar4 = *puVar6" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar4[1] = uVar2;" (assignment_expression "puVar4[1] = uVar2" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = puVar6[3];" (assignment_expression "uVar2 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "puVar4[2] = puVar6[2];" (assignment_expression "puVar4[2] = puVar6[2]" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "puVar4[3] = uVar2;" (assignment_expression "puVar4[3] = uVar2" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;" (assignment_expression "*(undefined8 **)(lVar5 + 0x30) = puVar4 + 4" (pointer_expression "*(undefined8 **)(lVar5 + 0x30)" * (cast_expression "(undefined8 **)(lVar5 + 0x30)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x30)" ( (binary_expression "lVar5 + 0x30" identifier + number_literal) )))) = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) }))) (expression_statement "uVar13 = uVar13 + 1;" (assignment_expression "uVar13 = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;) (expression_statement "puVar6 = puVar6 + 4;" (assignment_expression "puVar6 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar13 < *(ulong *)(lVar5 + 0x20))" ( (binary_expression "uVar13 < *(ulong *)(lVar5 + 0x20)" identifier < (pointer_expression "*(ulong *)(lVar5 + 0x20)" * (cast_expression "(ulong *)(lVar5 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x20)" ( (binary_expression "lVar5 + 0x20" identifier + number_literal) ))))) )) ;) })) })) })) (expression_statement "*(undefined1 *)param_1[0x1e] = 0;" (assignment_expression "*(undefined1 *)param_1[0x1e] = 0" (pointer_expression "*(undefined1 *)param_1[0x1e]" * (cast_expression "(undefined1 *)param_1[0x1e]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x1e]" identifier [ number_literal ]))) = number_literal) ;) (if_statement "if (*(code **)(*param_1 + 0x18) == FUN_001c5d30) {\n    lVar5 = param_1[6];\n  }\n  else {\n    lVar5 = (**(code **)(*param_1 + 0x18))(param_1);\n  }" if (parenthesized_expression "(*(code **)(*param_1 + 0x18) == FUN_001c5d30)" ( (binary_expression "*(code **)(*param_1 + 0x18) == FUN_001c5d30" (pointer_expression "*(code **)(*param_1 + 0x18)" * (cast_expression "(code **)(*param_1 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x18)" ( (binary_expression "*param_1 + 0x18" (pointer_expression "*param_1" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n    lVar5 = param_1[6];\n  }" { (expression_statement "lVar5 = param_1[6];" (assignment_expression "lVar5 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) }) (else_clause "else {\n    lVar5 = (**(code **)(*param_1 + 0x18))(param_1);\n  }" else (compound_statement "{\n    lVar5 = (**(code **)(*param_1 + 0x18))(param_1);\n  }" { (expression_statement "lVar5 = (**(code **)(*param_1 + 0x18))(param_1);" (assignment_expression "lVar5 = (**(code **)(*param_1 + 0x18))(param_1)" identifier = (call_expression "(**(code **)(*param_1 + 0x18))(param_1)" (parenthesized_expression "(**(code **)(*param_1 + 0x18))" ( (pointer_expression "**(code **)(*param_1 + 0x18)" * (pointer_expression "*(code **)(*param_1 + 0x18)" * (cast_expression "(code **)(*param_1 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x18)" ( (binary_expression "*param_1 + 0x18" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "(param_1)" ( identifier )))) ;) }))) (expression_statement "uVar13 = param_2;" (assignment_expression "uVar13 = param_2" identifier = identifier) ;) (if_statement "if (lVar5 != 0) {\n    uVar13 = lVar5 + -1 + param_2 & -lVar5;\n  }" if (parenthesized_expression "(lVar5 != 0)" ( (binary_expression "lVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar13 = lVar5 + -1 + param_2 & -lVar5;\n  }" { (expression_statement "uVar13 = lVar5 + -1 + param_2 & -lVar5;" (assignment_expression "uVar13 = lVar5 + -1 + param_2 & -lVar5" identifier = (binary_expression "lVar5 + -1 + param_2 & -lVar5" (binary_expression "lVar5 + -1 + param_2" (binary_expression "lVar5 + -1" identifier + number_literal) + identifier) & (unary_expression "-lVar5" - identifier))) ;) })) (expression_statement "puVar9 = (uint *)param_1[0x11];" (assignment_expression "puVar9 = (uint *)param_1[0x11]" identifier = (cast_expression "(uint *)param_1[0x11]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x11]" identifier [ number_literal ]))) ;) (expression_statement "puVar10 = (uint *)param_1[0x12];" (assignment_expression "puVar10 = (uint *)param_1[0x12]" identifier = (cast_expression "(uint *)param_1[0x12]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x12]" identifier [ number_literal ]))) ;) (expression_statement "local_98 = (uint *)0x0;" (assignment_expression "local_98 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_90 = (uint *)0x0;" (assignment_expression "local_90 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_88 = (undefined8 *)0x0;" (assignment_expression "local_88 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (puVar9 == puVar10) {\n    local_88 = (undefined8 *)0x0;\n    local_90 = (uint *)0x0;\n    local_98 = (uint *)0x0;\n  }\n  else {\n    do {\n      while (puVar10 = puVar9, *puVar10 != 0xffffffff) {\n                    /* try { // try from 00210145 to 002102fc has its CatchHandler @ 002106dc */\n        lVar5 = FUN_002f0690(0x30);\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;\n        *(undefined8 *)(lVar5 + 0x18) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)(lVar5 + 0x28) = uVar2;\n        FUN_002f4d00(lVar5,param_4);\n        *(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;\n        puVar9 = puVar10 + 8;\n        if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;\n      }\n      if (puVar10[1] == 0) {\n        pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);\n        if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    /* try { // try from 00210530 to 00210531 has its CatchHandler @ 002106dc */\n          lVar5 = (*pcVar1)();\n        }\n      }\n      else {\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }\n      uVar14 = uVar13;\n      if (((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0)) {\n        local_68[0] = 0;\n        local_70 = 0;\n        uVar13 = uVar14 - uVar13;\n        local_78 = local_68;\n                    /* try { // try from 002103f8 to 00210515 has its CatchHandler @ 002106e4 */\n        FUN_002f9000(&local_78,uVar13);\n        while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }\n        if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    /* try { // try from 00210551 to 00210555 has its CatchHandler @ 002106e4 */\n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }\n        puVar4 = (undefined8 *)FUN_002f0690(0x58);\n        uVar13 = local_70;\n        __src = local_78;\n        puVar4[1] = 0;\n        puVar4[5] = 0;\n        puVar4[6] = 0;\n        puVar4[2] = local_70;\n        puVar4[3] = 0xffffffffffffffff;\n        local_b8 = local_70;\n        *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;\n        *puVar4 = &PTR_FUN_00445c48;\n        puVar6 = puVar4 + 9;\n        puVar4[7] = puVar6;\n        if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021068e to 00210692 has its CatchHandler @ 002106d4 */\n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }\n        local_58[0] = local_70;\n        if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    /* try { // try from 0021059d to 002105a1 has its CatchHandler @ 002106d4 */\n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }\n        local_a8 = local_58;\n        puVar4[8] = local_b8;\n        *(undefined1 *)((long)puVar6 + local_b8) = 0;\n        local_40 = 0;\n        local_58[0] = 0xffffffff;\n        local_58[1] = 0;\n        local_48 = puVar4;\n        FUN_00223190(&local_98,local_a8);\n        if (local_78 != local_68) {\n          FUN_002f1e60();\n        }\n      }\n      if (local_90 == (uint *)local_88) {\n        FUN_00220270(&local_98,local_90,puVar10);\n      }\n      else {\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }\n      if ((*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)) {\n        if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00210693 to 002106af has its CatchHandler @ 002106dc */\n          FUN_0020a520();\n        }\n        lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);\n      }\n      else {\n        lVar5 = *(long *)(puVar10 + 2);\n      }\n      uVar13 = lVar5 + uVar14;\n      puVar9 = puVar10 + 8;\n    } while ((uint *)param_1[0x12] != puVar10 + 8);\nLAB_00210220:\n    puVar9 = puVar10 + 8;\n    puVar10 = (uint *)param_1[0x11];\n  }" if (parenthesized_expression "(puVar9 == puVar10)" ( (binary_expression "puVar9 == puVar10" identifier == identifier) )) (compound_statement "{\n    local_88 = (undefined8 *)0x0;\n    local_90 = (uint *)0x0;\n    local_98 = (uint *)0x0;\n  }" { (expression_statement "local_88 = (undefined8 *)0x0;" (assignment_expression "local_88 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_90 = (uint *)0x0;" (assignment_expression "local_90 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_98 = (uint *)0x0;" (assignment_expression "local_98 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    do {\n      while (puVar10 = puVar9, *puVar10 != 0xffffffff) {\n                    /* try { // try from 00210145 to 002102fc has its CatchHandler @ 002106dc */\n        lVar5 = FUN_002f0690(0x30);\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;\n        *(undefined8 *)(lVar5 + 0x18) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)(lVar5 + 0x28) = uVar2;\n        FUN_002f4d00(lVar5,param_4);\n        *(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;\n        puVar9 = puVar10 + 8;\n        if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;\n      }\n      if (puVar10[1] == 0) {\n        pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);\n        if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    /* try { // try from 00210530 to 00210531 has its CatchHandler @ 002106dc */\n          lVar5 = (*pcVar1)();\n        }\n      }\n      else {\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }\n      uVar14 = uVar13;\n      if (((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0)) {\n        local_68[0] = 0;\n        local_70 = 0;\n        uVar13 = uVar14 - uVar13;\n        local_78 = local_68;\n                    /* try { // try from 002103f8 to 00210515 has its CatchHandler @ 002106e4 */\n        FUN_002f9000(&local_78,uVar13);\n        while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }\n        if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    /* try { // try from 00210551 to 00210555 has its CatchHandler @ 002106e4 */\n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }\n        puVar4 = (undefined8 *)FUN_002f0690(0x58);\n        uVar13 = local_70;\n        __src = local_78;\n        puVar4[1] = 0;\n        puVar4[5] = 0;\n        puVar4[6] = 0;\n        puVar4[2] = local_70;\n        puVar4[3] = 0xffffffffffffffff;\n        local_b8 = local_70;\n        *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;\n        *puVar4 = &PTR_FUN_00445c48;\n        puVar6 = puVar4 + 9;\n        puVar4[7] = puVar6;\n        if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021068e to 00210692 has its CatchHandler @ 002106d4 */\n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }\n        local_58[0] = local_70;\n        if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    /* try { // try from 0021059d to 002105a1 has its CatchHandler @ 002106d4 */\n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }\n        local_a8 = local_58;\n        puVar4[8] = local_b8;\n        *(undefined1 *)((long)puVar6 + local_b8) = 0;\n        local_40 = 0;\n        local_58[0] = 0xffffffff;\n        local_58[1] = 0;\n        local_48 = puVar4;\n        FUN_00223190(&local_98,local_a8);\n        if (local_78 != local_68) {\n          FUN_002f1e60();\n        }\n      }\n      if (local_90 == (uint *)local_88) {\n        FUN_00220270(&local_98,local_90,puVar10);\n      }\n      else {\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }\n      if ((*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)) {\n        if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00210693 to 002106af has its CatchHandler @ 002106dc */\n          FUN_0020a520();\n        }\n        lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);\n      }\n      else {\n        lVar5 = *(long *)(puVar10 + 2);\n      }\n      uVar13 = lVar5 + uVar14;\n      puVar9 = puVar10 + 8;\n    } while ((uint *)param_1[0x12] != puVar10 + 8);\nLAB_00210220:\n    puVar9 = puVar10 + 8;\n    puVar10 = (uint *)param_1[0x11];\n  }" else (compound_statement "{\n    do {\n      while (puVar10 = puVar9, *puVar10 != 0xffffffff) {\n                    /* try { // try from 00210145 to 002102fc has its CatchHandler @ 002106dc */\n        lVar5 = FUN_002f0690(0x30);\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;\n        *(undefined8 *)(lVar5 + 0x18) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)(lVar5 + 0x28) = uVar2;\n        FUN_002f4d00(lVar5,param_4);\n        *(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;\n        puVar9 = puVar10 + 8;\n        if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;\n      }\n      if (puVar10[1] == 0) {\n        pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);\n        if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    /* try { // try from 00210530 to 00210531 has its CatchHandler @ 002106dc */\n          lVar5 = (*pcVar1)();\n        }\n      }\n      else {\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }\n      uVar14 = uVar13;\n      if (((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0)) {\n        local_68[0] = 0;\n        local_70 = 0;\n        uVar13 = uVar14 - uVar13;\n        local_78 = local_68;\n                    /* try { // try from 002103f8 to 00210515 has its CatchHandler @ 002106e4 */\n        FUN_002f9000(&local_78,uVar13);\n        while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }\n        if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    /* try { // try from 00210551 to 00210555 has its CatchHandler @ 002106e4 */\n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }\n        puVar4 = (undefined8 *)FUN_002f0690(0x58);\n        uVar13 = local_70;\n        __src = local_78;\n        puVar4[1] = 0;\n        puVar4[5] = 0;\n        puVar4[6] = 0;\n        puVar4[2] = local_70;\n        puVar4[3] = 0xffffffffffffffff;\n        local_b8 = local_70;\n        *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;\n        *puVar4 = &PTR_FUN_00445c48;\n        puVar6 = puVar4 + 9;\n        puVar4[7] = puVar6;\n        if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021068e to 00210692 has its CatchHandler @ 002106d4 */\n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }\n        local_58[0] = local_70;\n        if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    /* try { // try from 0021059d to 002105a1 has its CatchHandler @ 002106d4 */\n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }\n        local_a8 = local_58;\n        puVar4[8] = local_b8;\n        *(undefined1 *)((long)puVar6 + local_b8) = 0;\n        local_40 = 0;\n        local_58[0] = 0xffffffff;\n        local_58[1] = 0;\n        local_48 = puVar4;\n        FUN_00223190(&local_98,local_a8);\n        if (local_78 != local_68) {\n          FUN_002f1e60();\n        }\n      }\n      if (local_90 == (uint *)local_88) {\n        FUN_00220270(&local_98,local_90,puVar10);\n      }\n      else {\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }\n      if ((*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)) {\n        if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00210693 to 002106af has its CatchHandler @ 002106dc */\n          FUN_0020a520();\n        }\n        lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);\n      }\n      else {\n        lVar5 = *(long *)(puVar10 + 2);\n      }\n      uVar13 = lVar5 + uVar14;\n      puVar9 = puVar10 + 8;\n    } while ((uint *)param_1[0x12] != puVar10 + 8);\nLAB_00210220:\n    puVar9 = puVar10 + 8;\n    puVar10 = (uint *)param_1[0x11];\n  }" { (do_statement "do {\n      while (puVar10 = puVar9, *puVar10 != 0xffffffff) {\n                    /* try { // try from 00210145 to 002102fc has its CatchHandler @ 002106dc */\n        lVar5 = FUN_002f0690(0x30);\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;\n        *(undefined8 *)(lVar5 + 0x18) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)(lVar5 + 0x28) = uVar2;\n        FUN_002f4d00(lVar5,param_4);\n        *(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;\n        puVar9 = puVar10 + 8;\n        if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;\n      }\n      if (puVar10[1] == 0) {\n        pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);\n        if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    /* try { // try from 00210530 to 00210531 has its CatchHandler @ 002106dc */\n          lVar5 = (*pcVar1)();\n        }\n      }\n      else {\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }\n      uVar14 = uVar13;\n      if (((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0)) {\n        local_68[0] = 0;\n        local_70 = 0;\n        uVar13 = uVar14 - uVar13;\n        local_78 = local_68;\n                    /* try { // try from 002103f8 to 00210515 has its CatchHandler @ 002106e4 */\n        FUN_002f9000(&local_78,uVar13);\n        while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }\n        if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    /* try { // try from 00210551 to 00210555 has its CatchHandler @ 002106e4 */\n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }\n        puVar4 = (undefined8 *)FUN_002f0690(0x58);\n        uVar13 = local_70;\n        __src = local_78;\n        puVar4[1] = 0;\n        puVar4[5] = 0;\n        puVar4[6] = 0;\n        puVar4[2] = local_70;\n        puVar4[3] = 0xffffffffffffffff;\n        local_b8 = local_70;\n        *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;\n        *puVar4 = &PTR_FUN_00445c48;\n        puVar6 = puVar4 + 9;\n        puVar4[7] = puVar6;\n        if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021068e to 00210692 has its CatchHandler @ 002106d4 */\n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }\n        local_58[0] = local_70;\n        if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    /* try { // try from 0021059d to 002105a1 has its CatchHandler @ 002106d4 */\n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }\n        local_a8 = local_58;\n        puVar4[8] = local_b8;\n        *(undefined1 *)((long)puVar6 + local_b8) = 0;\n        local_40 = 0;\n        local_58[0] = 0xffffffff;\n        local_58[1] = 0;\n        local_48 = puVar4;\n        FUN_00223190(&local_98,local_a8);\n        if (local_78 != local_68) {\n          FUN_002f1e60();\n        }\n      }\n      if (local_90 == (uint *)local_88) {\n        FUN_00220270(&local_98,local_90,puVar10);\n      }\n      else {\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }\n      if ((*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)) {\n        if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00210693 to 002106af has its CatchHandler @ 002106dc */\n          FUN_0020a520();\n        }\n        lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);\n      }\n      else {\n        lVar5 = *(long *)(puVar10 + 2);\n      }\n      uVar13 = lVar5 + uVar14;\n      puVar9 = puVar10 + 8;\n    } while ((uint *)param_1[0x12] != puVar10 + 8);" do (compound_statement "{\n      while (puVar10 = puVar9, *puVar10 != 0xffffffff) {\n                    /* try { // try from 00210145 to 002102fc has its CatchHandler @ 002106dc */\n        lVar5 = FUN_002f0690(0x30);\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;\n        *(undefined8 *)(lVar5 + 0x18) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)(lVar5 + 0x28) = uVar2;\n        FUN_002f4d00(lVar5,param_4);\n        *(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;\n        puVar9 = puVar10 + 8;\n        if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;\n      }\n      if (puVar10[1] == 0) {\n        pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);\n        if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    /* try { // try from 00210530 to 00210531 has its CatchHandler @ 002106dc */\n          lVar5 = (*pcVar1)();\n        }\n      }\n      else {\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }\n      uVar14 = uVar13;\n      if (((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0)) {\n        local_68[0] = 0;\n        local_70 = 0;\n        uVar13 = uVar14 - uVar13;\n        local_78 = local_68;\n                    /* try { // try from 002103f8 to 00210515 has its CatchHandler @ 002106e4 */\n        FUN_002f9000(&local_78,uVar13);\n        while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }\n        if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    /* try { // try from 00210551 to 00210555 has its CatchHandler @ 002106e4 */\n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }\n        puVar4 = (undefined8 *)FUN_002f0690(0x58);\n        uVar13 = local_70;\n        __src = local_78;\n        puVar4[1] = 0;\n        puVar4[5] = 0;\n        puVar4[6] = 0;\n        puVar4[2] = local_70;\n        puVar4[3] = 0xffffffffffffffff;\n        local_b8 = local_70;\n        *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;\n        *puVar4 = &PTR_FUN_00445c48;\n        puVar6 = puVar4 + 9;\n        puVar4[7] = puVar6;\n        if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021068e to 00210692 has its CatchHandler @ 002106d4 */\n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }\n        local_58[0] = local_70;\n        if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    /* try { // try from 0021059d to 002105a1 has its CatchHandler @ 002106d4 */\n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }\n        local_a8 = local_58;\n        puVar4[8] = local_b8;\n        *(undefined1 *)((long)puVar6 + local_b8) = 0;\n        local_40 = 0;\n        local_58[0] = 0xffffffff;\n        local_58[1] = 0;\n        local_48 = puVar4;\n        FUN_00223190(&local_98,local_a8);\n        if (local_78 != local_68) {\n          FUN_002f1e60();\n        }\n      }\n      if (local_90 == (uint *)local_88) {\n        FUN_00220270(&local_98,local_90,puVar10);\n      }\n      else {\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }\n      if ((*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)) {\n        if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00210693 to 002106af has its CatchHandler @ 002106dc */\n          FUN_0020a520();\n        }\n        lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);\n      }\n      else {\n        lVar5 = *(long *)(puVar10 + 2);\n      }\n      uVar13 = lVar5 + uVar14;\n      puVar9 = puVar10 + 8;\n    }" { (while_statement "while (puVar10 = puVar9, *puVar10 != 0xffffffff) {\n                    /* try { // try from 00210145 to 002102fc has its CatchHandler @ 002106dc */\n        lVar5 = FUN_002f0690(0x30);\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;\n        *(undefined8 *)(lVar5 + 0x18) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)(lVar5 + 0x28) = uVar2;\n        FUN_002f4d00(lVar5,param_4);\n        *(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;\n        puVar9 = puVar10 + 8;\n        if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;\n      }" while (parenthesized_expression "(puVar10 = puVar9, *puVar10 != 0xffffffff)" ( (comma_expression "puVar10 = puVar9, *puVar10 != 0xffffffff" (assignment_expression "puVar10 = puVar9" identifier = identifier) , (binary_expression "*puVar10 != 0xffffffff" (pointer_expression "*puVar10" * identifier) != number_literal)) )) (compound_statement "{\n                    /* try { // try from 00210145 to 002102fc has its CatchHandler @ 002106dc */\n        lVar5 = FUN_002f0690(0x30);\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;\n        *(undefined8 *)(lVar5 + 0x18) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)(lVar5 + 0x28) = uVar2;\n        FUN_002f4d00(lVar5,param_4);\n        *(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;\n        puVar9 = puVar10 + 8;\n        if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;\n      }" { comment (expression_statement "lVar5 = FUN_002f0690(0x30);" (assignment_expression "lVar5 = FUN_002f0690(0x30)" identifier = (call_expression "FUN_002f0690(0x30)" identifier (argument_list "(0x30)" ( number_literal )))) ;) (expression_statement "uVar2 = *(undefined8 *)(puVar10 + 2);" (assignment_expression "uVar2 = *(undefined8 *)(puVar10 + 2)" identifier = (pointer_expression "*(undefined8 *)(puVar10 + 2)" * (cast_expression "(undefined8 *)(puVar10 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 2)" ( (binary_expression "puVar10 + 2" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;" (assignment_expression "*(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10" (pointer_expression "*(undefined8 *)(lVar5 + 0x10)" * (cast_expression "(undefined8 *)(lVar5 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)puVar10" * (cast_expression "(undefined8 *)puVar10" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined8 *)(lVar5 + 0x18) = uVar2;" (assignment_expression "*(undefined8 *)(lVar5 + 0x18) = uVar2" (pointer_expression "*(undefined8 *)(lVar5 + 0x18)" * (cast_expression "(undefined8 *)(lVar5 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x18)" ( (binary_expression "lVar5 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = *(undefined8 *)(puVar10 + 6);" (assignment_expression "uVar2 = *(undefined8 *)(puVar10 + 6)" identifier = (pointer_expression "*(undefined8 *)(puVar10 + 6)" * (cast_expression "(undefined8 *)(puVar10 + 6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 6)" ( (binary_expression "puVar10 + 6" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);" (assignment_expression "*(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4)" (pointer_expression "*(undefined8 *)(lVar5 + 0x20)" * (cast_expression "(undefined8 *)(lVar5 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x20)" ( (binary_expression "lVar5 + 0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(puVar10 + 4)" * (cast_expression "(undefined8 *)(puVar10 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(lVar5 + 0x28) = uVar2;" (assignment_expression "*(undefined8 *)(lVar5 + 0x28) = uVar2" (pointer_expression "*(undefined8 *)(lVar5 + 0x28)" * (cast_expression "(undefined8 *)(lVar5 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x28)" ( (binary_expression "lVar5 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_002f4d00(lVar5,param_4);" (call_expression "FUN_002f4d00(lVar5,param_4)" identifier (argument_list "(lVar5,param_4)" ( identifier , identifier ))) ;) (expression_statement "*(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;" (assignment_expression "*(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1" (pointer_expression "*(long *)(param_4 + 0x10)" * (cast_expression "(long *)(param_4 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x10)" ( (binary_expression "param_4 + 0x10" identifier + number_literal) )))) = (binary_expression "*(long *)(param_4 + 0x10) + 1" (pointer_expression "*(long *)(param_4 + 0x10)" * (cast_expression "(long *)(param_4 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x10)" ( (binary_expression "param_4 + 0x10" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "puVar9 = puVar10 + 8;" (assignment_expression "puVar9 = puVar10 + 8" identifier = (binary_expression "puVar10 + 8" identifier + number_literal)) ;) (if_statement "if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;" if (parenthesized_expression "((uint *)param_1[0x12] == puVar10 + 8)" ( (binary_expression "(uint *)param_1[0x12] == puVar10 + 8" (cast_expression "(uint *)param_1[0x12]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x12]" identifier [ number_literal ])) == (binary_expression "puVar10 + 8" identifier + number_literal)) )) (goto_statement "goto LAB_00210220;" goto statement_identifier ;)) })) (if_statement "if (puVar10[1] == 0) {\n        pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);\n        if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    /* try { // try from 00210530 to 00210531 has its CatchHandler @ 002106dc */\n          lVar5 = (*pcVar1)();\n        }\n      }\n      else {\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }" if (parenthesized_expression "(puVar10[1] == 0)" ( (binary_expression "puVar10[1] == 0" (subscript_expression "puVar10[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);\n        if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    /* try { // try from 00210530 to 00210531 has its CatchHandler @ 002106dc */\n          lVar5 = (*pcVar1)();\n        }\n      }" { (expression_statement "pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);" (assignment_expression "pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18)" identifier = (pointer_expression "*(code **)(**(long **)(puVar10 + 4) + 0x18)" * (cast_expression "(code **)(**(long **)(puVar10 + 4) + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(puVar10 + 4) + 0x18)" ( (binary_expression "**(long **)(puVar10 + 4) + 0x18" (pointer_expression "**(long **)(puVar10 + 4)" * (pointer_expression "*(long **)(puVar10 + 4)" * (cast_expression "(long **)(puVar10 + 4)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    /* try { // try from 00210530 to 00210531 has its CatchHandler @ 002106dc */\n          lVar5 = (*pcVar1)();\n        }" if (parenthesized_expression "(pcVar1 == FUN_00172c90)" ( (binary_expression "pcVar1 == FUN_00172c90" identifier == identifier) )) (compound_statement "{\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }" { (expression_statement "lVar5 = (*(long **)(puVar10 + 4))[6];" (assignment_expression "lVar5 = (*(long **)(puVar10 + 4))[6]" identifier = (subscript_expression "(*(long **)(puVar10 + 4))[6]" (parenthesized_expression "(*(long **)(puVar10 + 4))" ( (pointer_expression "*(long **)(puVar10 + 4)" * (cast_expression "(long **)(puVar10 + 4)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) )) [ number_literal ])) ;) }) (else_clause "else {\n                    /* try { // try from 00210530 to 00210531 has its CatchHandler @ 002106dc */\n          lVar5 = (*pcVar1)();\n        }" else (compound_statement "{\n                    /* try { // try from 00210530 to 00210531 has its CatchHandler @ 002106dc */\n          lVar5 = (*pcVar1)();\n        }" { comment (expression_statement "lVar5 = (*pcVar1)();" (assignment_expression "lVar5 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) }))) }) (else_clause "else {\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }" else (compound_statement "{\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }" { (expression_statement "lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);" (assignment_expression "lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f)" identifier = (binary_expression "1L << ((char)puVar10[1] - 1U & 0x3f)" number_literal << (parenthesized_expression "((char)puVar10[1] - 1U & 0x3f)" ( (binary_expression "(char)puVar10[1] - 1U & 0x3f" (binary_expression "(char)puVar10[1] - 1U" (cast_expression "(char)puVar10[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "puVar10[1]" identifier [ number_literal ])) - number_literal) & number_literal) )))) ;) }))) (expression_statement "uVar14 = uVar13;" (assignment_expression "uVar14 = uVar13" identifier = identifier) ;) (if_statement "if (((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0)) {\n        local_68[0] = 0;\n        local_70 = 0;\n        uVar13 = uVar14 - uVar13;\n        local_78 = local_68;\n                    /* try { // try from 002103f8 to 00210515 has its CatchHandler @ 002106e4 */\n        FUN_002f9000(&local_78,uVar13);\n        while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }\n        if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    /* try { // try from 00210551 to 00210555 has its CatchHandler @ 002106e4 */\n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }\n        puVar4 = (undefined8 *)FUN_002f0690(0x58);\n        uVar13 = local_70;\n        __src = local_78;\n        puVar4[1] = 0;\n        puVar4[5] = 0;\n        puVar4[6] = 0;\n        puVar4[2] = local_70;\n        puVar4[3] = 0xffffffffffffffff;\n        local_b8 = local_70;\n        *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;\n        *puVar4 = &PTR_FUN_00445c48;\n        puVar6 = puVar4 + 9;\n        puVar4[7] = puVar6;\n        if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021068e to 00210692 has its CatchHandler @ 002106d4 */\n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }\n        local_58[0] = local_70;\n        if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    /* try { // try from 0021059d to 002105a1 has its CatchHandler @ 002106d4 */\n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }\n        local_a8 = local_58;\n        puVar4[8] = local_b8;\n        *(undefined1 *)((long)puVar6 + local_b8) = 0;\n        local_40 = 0;\n        local_58[0] = 0xffffffff;\n        local_58[1] = 0;\n        local_48 = puVar4;\n        FUN_00223190(&local_98,local_a8);\n        if (local_78 != local_68) {\n          FUN_002f1e60();\n        }\n      }" if (parenthesized_expression "(((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0))" ( (binary_expression "((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0)" (parenthesized_expression "((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14))" ( (binary_expression "(lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)" (parenthesized_expression "(lVar5 != 0)" ( (binary_expression "lVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)" ( (comma_expression "uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14" (assignment_expression "uVar14 = (uVar13 - 1) + lVar5 & -lVar5" identifier = (binary_expression "(uVar13 - 1) + lVar5 & -lVar5" (binary_expression "(uVar13 - 1) + lVar5" (parenthesized_expression "(uVar13 - 1)" ( (binary_expression "uVar13 - 1" identifier - number_literal) )) + identifier) & (unary_expression "-lVar5" - identifier))) , (binary_expression "uVar13 != uVar14" identifier != identifier)) ))) )) && (parenthesized_expression "(param_3[1] != 0)" ( (binary_expression "param_3[1] != 0" (subscript_expression "param_3[1]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n        local_68[0] = 0;\n        local_70 = 0;\n        uVar13 = uVar14 - uVar13;\n        local_78 = local_68;\n                    /* try { // try from 002103f8 to 00210515 has its CatchHandler @ 002106e4 */\n        FUN_002f9000(&local_78,uVar13);\n        while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }\n        if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    /* try { // try from 00210551 to 00210555 has its CatchHandler @ 002106e4 */\n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }\n        puVar4 = (undefined8 *)FUN_002f0690(0x58);\n        uVar13 = local_70;\n        __src = local_78;\n        puVar4[1] = 0;\n        puVar4[5] = 0;\n        puVar4[6] = 0;\n        puVar4[2] = local_70;\n        puVar4[3] = 0xffffffffffffffff;\n        local_b8 = local_70;\n        *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;\n        *puVar4 = &PTR_FUN_00445c48;\n        puVar6 = puVar4 + 9;\n        puVar4[7] = puVar6;\n        if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021068e to 00210692 has its CatchHandler @ 002106d4 */\n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }\n        local_58[0] = local_70;\n        if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    /* try { // try from 0021059d to 002105a1 has its CatchHandler @ 002106d4 */\n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }\n        local_a8 = local_58;\n        puVar4[8] = local_b8;\n        *(undefined1 *)((long)puVar6 + local_b8) = 0;\n        local_40 = 0;\n        local_58[0] = 0xffffffff;\n        local_58[1] = 0;\n        local_48 = puVar4;\n        FUN_00223190(&local_98,local_a8);\n        if (local_78 != local_68) {\n          FUN_002f1e60();\n        }\n      }" { (expression_statement "local_68[0] = 0;" (assignment_expression "local_68[0] = 0" (subscript_expression "local_68[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (expression_statement "uVar13 = uVar14 - uVar13;" (assignment_expression "uVar13 = uVar14 - uVar13" identifier = (binary_expression "uVar14 - uVar13" identifier - identifier)) ;) (expression_statement "local_78 = local_68;" (assignment_expression "local_78 = local_68" identifier = identifier) ;) comment (expression_statement "FUN_002f9000(&local_78,uVar13);" (call_expression "FUN_002f9000(&local_78,uVar13)" identifier (argument_list "(&local_78,uVar13)" ( (pointer_expression "&local_78" & identifier) , identifier ))) ;) (while_statement "while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }" while (parenthesized_expression "(uVar8 = param_3[1], local_70 + uVar8 <= uVar13)" ( (comma_expression "uVar8 = param_3[1], local_70 + uVar8 <= uVar13" (assignment_expression "uVar8 = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) , (binary_expression "local_70 + uVar8 <= uVar13" (binary_expression "local_70 + uVar8" identifier + identifier) <= identifier)) )) (compound_statement "{\n          FUN_002fa0e0(&local_78,*param_3);\n        }" { (expression_statement "FUN_002fa0e0(&local_78,*param_3);" (call_expression "FUN_002fa0e0(&local_78,*param_3)" identifier (argument_list "(&local_78,*param_3)" ( (pointer_expression "&local_78" & identifier) , (pointer_expression "*param_3" * identifier) ))) ;) })) (if_statement "if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    /* try { // try from 00210551 to 00210555 has its CatchHandler @ 002106e4 */\n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }" if (parenthesized_expression "(local_70 < uVar13)" ( (binary_expression "local_70 < uVar13" identifier < identifier) )) (compound_statement "{\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    /* try { // try from 00210551 to 00210555 has its CatchHandler @ 002106e4 */\n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }" { (if_statement "if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }" if (parenthesized_expression "(uVar13 - local_70 <= uVar8)" ( (binary_expression "uVar13 - local_70 <= uVar8" (binary_expression "uVar13 - local_70" identifier - identifier) <= identifier) )) (compound_statement "{\n            uVar8 = uVar13 - local_70;\n          }" { (expression_statement "uVar8 = uVar13 - local_70;" (assignment_expression "uVar8 = uVar13 - local_70" identifier = (binary_expression "uVar13 - local_70" identifier - identifier)) ;) })) comment (expression_statement "FUN_002fa0e0(&local_78,*param_3,uVar8);" (call_expression "FUN_002fa0e0(&local_78,*param_3,uVar8)" identifier (argument_list "(&local_78,*param_3,uVar8)" ( (pointer_expression "&local_78" & identifier) , (pointer_expression "*param_3" * identifier) , identifier ))) ;) })) (expression_statement "puVar4 = (undefined8 *)FUN_002f0690(0x58);" (assignment_expression "puVar4 = (undefined8 *)FUN_002f0690(0x58)" identifier = (cast_expression "(undefined8 *)FUN_002f0690(0x58)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002f0690(0x58)" identifier (argument_list "(0x58)" ( number_literal ))))) ;) (expression_statement "uVar13 = local_70;" (assignment_expression "uVar13 = local_70" identifier = identifier) ;) (expression_statement "__src = local_78;" (assignment_expression "__src = local_78" identifier = identifier) ;) (expression_statement "puVar4[1] = 0;" (assignment_expression "puVar4[1] = 0" (subscript_expression "puVar4[1]" 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] = 0;" (assignment_expression "puVar4[6] = 0" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[2] = local_70;" (assignment_expression "puVar4[2] = local_70" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = 0xffffffffffffffff;" (assignment_expression "puVar4[3] = 0xffffffffffffffff" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_b8 = local_70;" (assignment_expression "local_b8 = local_70" identifier = identifier) ;) (expression_statement "*(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10" (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 | 10" (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) | number_literal)) ;) (expression_statement "*puVar4 = &PTR_FUN_00445c48;" (assignment_expression "*puVar4 = &PTR_FUN_00445c48" (pointer_expression "*puVar4" * identifier) = (pointer_expression "&PTR_FUN_00445c48" & identifier)) ;) (expression_statement "puVar6 = puVar4 + 9;" (assignment_expression "puVar6 = puVar4 + 9" identifier = (binary_expression "puVar4 + 9" identifier + number_literal)) ;) (expression_statement "puVar4[7] = puVar6;" (assignment_expression "puVar4[7] = puVar6" (subscript_expression "puVar4[7]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021068e to 00210692 has its CatchHandler @ 002106d4 */\n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }" if (parenthesized_expression "((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0))" ( (binary_expression "(local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)" (parenthesized_expression "(local_78 + local_70 != (undefined1 *)0x0)" ( (binary_expression "local_78 + local_70 != (undefined1 *)0x0" (binary_expression "local_78 + local_70" identifier + identifier) != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_78 == (undefined1 *)0x0)" ( (binary_expression "local_78 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021068e to 00210692 has its CatchHandler @ 002106d4 */\n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }" { comment comment (expression_statement "FUN_003306d0("basic_string::_M_construct null not valid");" (call_expression "FUN_003306d0("basic_string::_M_construct null not valid")" identifier (argument_list "("basic_string::_M_construct null not valid")" ( (string_literal ""basic_string::_M_construct null not valid"" " string_content ") ))) ;) })) (expression_statement "local_58[0] = local_70;" (assignment_expression "local_58[0] = local_70" (subscript_expression "local_58[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    /* try { // try from 0021059d to 002105a1 has its CatchHandler @ 002106d4 */\n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }" if (parenthesized_expression "(local_70 < 0x10)" ( (binary_expression "local_70 < 0x10" identifier < number_literal) )) (compound_statement "{\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }" { (if_statement "if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;" if (parenthesized_expression "(local_70 == 1)" ( (binary_expression "local_70 == 1" identifier == number_literal) )) (compound_statement "{\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }" { (expression_statement "*(undefined1 *)(puVar4 + 9) = *local_78;" (assignment_expression "*(undefined1 *)(puVar4 + 9) = *local_78" (pointer_expression "*(undefined1 *)(puVar4 + 9)" * (cast_expression "(undefined1 *)(puVar4 + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 9)" ( (binary_expression "puVar4 + 9" identifier + number_literal) )))) = (pointer_expression "*local_78" * identifier)) ;) }) (else_clause "else if (local_70 != 0) goto LAB_002105af;" else (if_statement "if (local_70 != 0) goto LAB_002105af;" if (parenthesized_expression "(local_70 != 0)" ( (binary_expression "local_70 != 0" identifier != number_literal) )) (goto_statement "goto LAB_002105af;" goto statement_identifier ;)))) }) (else_clause "else {\n                    /* try { // try from 0021059d to 002105a1 has its CatchHandler @ 002106d4 */\n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }" else (compound_statement "{\n                    /* try { // try from 0021059d to 002105a1 has its CatchHandler @ 002106d4 */\n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }" { comment (expression_statement "puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);" (assignment_expression "puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0)" identifier = (cast_expression "(undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002f8790(puVar4 + 7,local_58,0)" identifier (argument_list "(puVar4 + 7,local_58,0)" ( (binary_expression "puVar4 + 7" identifier + number_literal) , identifier , number_literal ))))) ;) (expression_statement "puVar4[7] = puVar6;" (assignment_expression "puVar4[7] = puVar6" (subscript_expression "puVar4[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[9] = local_58[0];" (assignment_expression "puVar4[9] = local_58[0]" (subscript_expression "puVar4[9]" identifier [ number_literal ]) = (subscript_expression "local_58[0]" identifier [ number_literal ])) ;) (labeled_statement "LAB_002105af:\n          memcpy(puVar6,__src,uVar13);" statement_identifier : (expression_statement "memcpy(puVar6,__src,uVar13);" (call_expression "memcpy(puVar6,__src,uVar13)" identifier (argument_list "(puVar6,__src,uVar13)" ( identifier , identifier , identifier ))) ;)) (expression_statement "local_b8 = local_58[0];" (assignment_expression "local_b8 = local_58[0]" identifier = (subscript_expression "local_58[0]" identifier [ number_literal ])) ;) (expression_statement "puVar6 = (undefined8 *)puVar4[7];" (assignment_expression "puVar6 = (undefined8 *)puVar4[7]" identifier = (cast_expression "(undefined8 *)puVar4[7]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[7]" identifier [ number_literal ]))) ;) }))) (expression_statement "local_a8 = local_58;" (assignment_expression "local_a8 = local_58" identifier = identifier) ;) (expression_statement "puVar4[8] = local_b8;" (assignment_expression "puVar4[8] = local_b8" (subscript_expression "puVar4[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((long)puVar6 + local_b8) = 0;" (assignment_expression "*(undefined1 *)((long)puVar6 + local_b8) = 0" (pointer_expression "*(undefined1 *)((long)puVar6 + local_b8)" * (cast_expression "(undefined1 *)((long)puVar6 + local_b8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar6 + local_b8)" ( (binary_expression "(long)puVar6 + local_b8" (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_58[0] = 0xffffffff;" (assignment_expression "local_58[0] = 0xffffffff" (subscript_expression "local_58[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_58[1] = 0;" (assignment_expression "local_58[1] = 0" (subscript_expression "local_58[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_48 = puVar4;" (assignment_expression "local_48 = puVar4" identifier = identifier) ;) (expression_statement "FUN_00223190(&local_98,local_a8);" (call_expression "FUN_00223190(&local_98,local_a8)" identifier (argument_list "(&local_98,local_a8)" ( (pointer_expression "&local_98" & identifier) , identifier ))) ;) (if_statement "if (local_78 != local_68) {\n          FUN_002f1e60();\n        }" if (parenthesized_expression "(local_78 != local_68)" ( (binary_expression "local_78 != local_68" identifier != identifier) )) (compound_statement "{\n          FUN_002f1e60();\n        }" { (expression_statement "FUN_002f1e60();" (call_expression "FUN_002f1e60()" identifier (argument_list "()" ( ))) ;) })) })) (if_statement "if (local_90 == (uint *)local_88) {\n        FUN_00220270(&local_98,local_90,puVar10);\n      }\n      else {\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }" if (parenthesized_expression "(local_90 == (uint *)local_88)" ( (binary_expression "local_90 == (uint *)local_88" identifier == (cast_expression "(uint *)local_88" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n        FUN_00220270(&local_98,local_90,puVar10);\n      }" { (expression_statement "FUN_00220270(&local_98,local_90,puVar10);" (call_expression "FUN_00220270(&local_98,local_90,puVar10)" identifier (argument_list "(&local_98,local_90,puVar10)" ( (pointer_expression "&local_98" & identifier) , identifier , identifier ))) ;) }) (else_clause "else {\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }" else (compound_statement "{\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }" { (expression_statement "uVar2 = *(undefined8 *)(puVar10 + 2);" (assignment_expression "uVar2 = *(undefined8 *)(puVar10 + 2)" identifier = (pointer_expression "*(undefined8 *)(puVar10 + 2)" * (cast_expression "(undefined8 *)(puVar10 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 2)" ( (binary_expression "puVar10 + 2" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)local_90 = *(undefined8 *)puVar10;" (assignment_expression "*(undefined8 *)local_90 = *(undefined8 *)puVar10" (pointer_expression "*(undefined8 *)local_90" * (cast_expression "(undefined8 *)local_90" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined8 *)puVar10" * (cast_expression "(undefined8 *)puVar10" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined8 *)((long)local_90 + 8) = uVar2;" (assignment_expression "*(undefined8 *)((long)local_90 + 8) = uVar2" (pointer_expression "*(undefined8 *)((long)local_90 + 8)" * (cast_expression "(undefined8 *)((long)local_90 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_90 + 8)" ( (binary_expression "(long)local_90 + 8" (cast_expression "(long)local_90" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = *(undefined8 *)(puVar10 + 6);" (assignment_expression "uVar2 = *(undefined8 *)(puVar10 + 6)" identifier = (pointer_expression "*(undefined8 *)(puVar10 + 6)" * (cast_expression "(undefined8 *)(puVar10 + 6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 6)" ( (binary_expression "puVar10 + 6" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);" (assignment_expression "*(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4)" (pointer_expression "*(undefined8 *)((long)local_90 + 0x10)" * (cast_expression "(undefined8 *)((long)local_90 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_90 + 0x10)" ( (binary_expression "(long)local_90 + 0x10" (cast_expression "(long)local_90" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined8 *)(puVar10 + 4)" * (cast_expression "(undefined8 *)(puVar10 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)((long)local_90 + 0x18) = uVar2;" (assignment_expression "*(undefined8 *)((long)local_90 + 0x18) = uVar2" (pointer_expression "*(undefined8 *)((long)local_90 + 0x18)" * (cast_expression "(undefined8 *)((long)local_90 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_90 + 0x18)" ( (binary_expression "(long)local_90 + 0x18" (cast_expression "(long)local_90" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_90 = (uint *)((long)local_90 + 0x20);" (assignment_expression "local_90 = (uint *)((long)local_90 + 0x20)" identifier = (cast_expression "(uint *)((long)local_90 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_90 + 0x20)" ( (binary_expression "(long)local_90 + 0x20" (cast_expression "(long)local_90" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) }))) (if_statement "if ((*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)) {\n        if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00210693 to 002106af has its CatchHandler @ 002106dc */\n          FUN_0020a520();\n        }\n        lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);\n      }\n      else {\n        lVar5 = *(long *)(puVar10 + 2);\n      }" if (parenthesized_expression "((*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10))" ( (binary_expression "(*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)" (parenthesized_expression "(*puVar10 + 4 < 4)" ( (binary_expression "*puVar10 + 4 < 4" (binary_expression "*puVar10 + 4" (pointer_expression "*puVar10" * identifier) + number_literal) < number_literal) )) && (parenthesized_expression "(FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)" ( (comma_expression "FUN_0020ab90(puVar10), 0xfffffffb < *puVar10" (call_expression "FUN_0020ab90(puVar10)" identifier (argument_list "(puVar10)" ( identifier ))) , (binary_expression "0xfffffffb < *puVar10" number_literal < (pointer_expression "*puVar10" * identifier))) ))) )) (compound_statement "{\n        if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00210693 to 002106af has its CatchHandler @ 002106dc */\n          FUN_0020a520();\n        }\n        lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);\n      }" { (if_statement "if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00210693 to 002106af has its CatchHandler @ 002106dc */\n          FUN_0020a520();\n        }" if (parenthesized_expression "((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2)" ( (binary_expression "*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2" (pointer_expression "*(byte *)(*(long *)(puVar10 + 4) + 0x20)" * (cast_expression "(byte *)(*(long *)(puVar10 + 4) + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(puVar10 + 4) + 0x20)" ( (binary_expression "*(long *)(puVar10 + 4) + 0x20" (pointer_expression "*(long *)(puVar10 + 4)" * (cast_expression "(long *)(puVar10 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00210693 to 002106af has its CatchHandler @ 002106dc */\n          FUN_0020a520();\n        }" { comment comment (expression_statement "FUN_0020a520();" (call_expression "FUN_0020a520()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);" (assignment_expression "lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10)" identifier = (pointer_expression "*(long *)(*(long *)(puVar10 + 4) + 0x10)" * (cast_expression "(long *)(*(long *)(puVar10 + 4) + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(puVar10 + 4) + 0x10)" ( (binary_expression "*(long *)(puVar10 + 4) + 0x10" (pointer_expression "*(long *)(puVar10 + 4)" * (cast_expression "(long *)(puVar10 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n        lVar5 = *(long *)(puVar10 + 2);\n      }" else (compound_statement "{\n        lVar5 = *(long *)(puVar10 + 2);\n      }" { (expression_statement "lVar5 = *(long *)(puVar10 + 2);" (assignment_expression "lVar5 = *(long *)(puVar10 + 2)" identifier = (pointer_expression "*(long *)(puVar10 + 2)" * (cast_expression "(long *)(puVar10 + 2)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 2)" ( (binary_expression "puVar10 + 2" identifier + number_literal) ))))) ;) }))) (expression_statement "uVar13 = lVar5 + uVar14;" (assignment_expression "uVar13 = lVar5 + uVar14" identifier = (binary_expression "lVar5 + uVar14" identifier + identifier)) ;) (expression_statement "puVar9 = puVar10 + 8;" (assignment_expression "puVar9 = puVar10 + 8" identifier = (binary_expression "puVar10 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "((uint *)param_1[0x12] != puVar10 + 8)" ( (binary_expression "(uint *)param_1[0x12] != puVar10 + 8" (cast_expression "(uint *)param_1[0x12]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x12]" identifier [ number_literal ])) != (binary_expression "puVar10 + 8" identifier + number_literal)) )) ;) (labeled_statement "LAB_00210220:\n    puVar9 = puVar10 + 8;" statement_identifier : (expression_statement "puVar9 = puVar10 + 8;" (assignment_expression "puVar9 = puVar10 + 8" identifier = (binary_expression "puVar10 + 8" identifier + number_literal)) ;)) (expression_statement "puVar10 = (uint *)param_1[0x11];" (assignment_expression "puVar10 = (uint *)param_1[0x11]" identifier = (cast_expression "(uint *)param_1[0x11]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x11]" identifier [ number_literal ]))) ;) }))) (expression_statement "param_1[0x12] = (long)local_90;" (assignment_expression "param_1[0x12] = (long)local_90" (subscript_expression "param_1[0x12]" identifier [ number_literal ]) = (cast_expression "(long)local_90" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "lVar5 = param_1[0x13];" (assignment_expression "lVar5 = param_1[0x13]" identifier = (subscript_expression "param_1[0x13]" identifier [ number_literal ])) ;) (expression_statement "param_1[0x11] = (long)local_98;" (assignment_expression "param_1[0x11] = (long)local_98" (subscript_expression "param_1[0x11]" identifier [ number_literal ]) = (cast_expression "(long)local_98" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "param_1[0x13] = (long)local_88;" (assignment_expression "param_1[0x13] = (long)local_88" (subscript_expression "param_1[0x13]" identifier [ number_literal ]) = (cast_expression "(long)local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "param_1[0x14] = 0;" (assignment_expression "param_1[0x14] = 0" (subscript_expression "param_1[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_98 = puVar10;" (assignment_expression "local_98 = puVar10" identifier = identifier) ;) (expression_statement "local_90 = puVar9;" (assignment_expression "local_90 = puVar9" identifier = identifier) ;) (expression_statement "local_88 = (undefined8 *)lVar5;" (assignment_expression "local_88 = (undefined8 *)lVar5" identifier = (cast_expression "(undefined8 *)lVar5" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((*(byte *)(param_1 + 4) & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0018ff20("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }" if (parenthesized_expression "((*(byte *)(param_1 + 4) & 2) != 0)" ( (binary_expression "(*(byte *)(param_1 + 4) & 2) != 0" (parenthesized_expression "(*(byte *)(param_1 + 4) & 2)" ( (binary_expression "*(byte *)(param_1 + 4) & 2" (pointer_expression "*(byte *)(param_1 + 4)" * (cast_expression "(byte *)(param_1 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0018ff20("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }" { comment (expression_statement "FUN_0018ff20("../../gold/output.h",0x231,"set_current_data_size_for_child");" (call_expression "FUN_0018ff20("../../gold/output.h",0x231,"set_current_data_size_for_child")" identifier (argument_list "("../../gold/output.h",0x231,"set_current_data_size_for_child")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_current_data_size_for_child"" " string_content ") ))) ;) })) (expression_statement "param_1[2] = uVar13 - param_2;" (assignment_expression "param_1[2] = uVar13 - param_2" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (binary_expression "uVar13 - param_2" identifier - identifier)) ;) (if_statement "if (puVar10 != (uint *)0x0) {\n    FUN_002f1e60();\n  }" if (parenthesized_expression "(puVar10 != (uint *)0x0)" ( (binary_expression "puVar10 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_002f1e60();\n  }" { (expression_statement "FUN_002f1e60();" (call_expression "FUN_002f1e60()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return uVar13 - param_2;" return (binary_expression "uVar13 - param_2" identifier - identifier) ;) })))
(translation_unit "/* DWARF original prototype: uint64_t get_input_sections(Output_section * this, uint64_t address,\n   string * fill,\n   list<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_> *\n   input_sections) */\n\nuint64_t __thiscall\ngold::Output_section::get_input_sections\n          (Output_section *this,uint64_t address,string *fill,\n          list<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          *input_sections)\n\n{\n  size_t *psVar1;\n  Checkpoint_output_section *pCVar2;\n  _func_int_varargs *p_Var3;\n  iterator __position;\n  anon_union_8_2_227b06d7_for_u1_ aVar4;\n  _List_node_base *p_Var5;\n  pointer pIVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  _Alloc_hider __src;\n  int iVar9;\n  _List_node_base *this_00;\n  uint64_t uVar10;\n  ulong uVar11;\n  anon_union_8_4_139239c7_for_u2_ aVar12;\n  undefined4 extraout_var;\n  undefined4 extraout_var_00;\n  Compressed_section_map **__dest;\n  pointer pIVar13;\n  ulong uVar14;\n  Input_section *pIVar15;\n  pointer pIVar16;\n  pointer pIVar17;\n  Input_section *pIVar18;\n  pointer pIVar19;\n  long lVar20;\n  uint64_t uVar21;\n  uint64_t uVar23;\n  Xindex *local_b8;\n  Input_section *local_a8;\n  Input_section_list remaining;\n  string this_fill;\n  size_type __dnew;\n  anon_union_8_2_227b06d7_for_u1_ local_50;\n  anon_union_8_4_139239c7_for_u2_ local_48;\n  uint local_40;\n  size_type sVar22;\n  \n  pCVar2 = this->checkpoint_;\n  if (pCVar2 != (Checkpoint_output_section *)0x0) {\n    pIVar17 = (pCVar2->input_sections_copy_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_finish;\n    pIVar16 = (pCVar2->input_sections_copy_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start;\n    uVar11 = pCVar2->input_sections_size_;\n    lVar20 = (long)pIVar17 - (long)pIVar16;\n    if (uVar11 != lVar20 >> 5) {\n      if (0x7ffffffffffffff < uVar11) {\n                    /* WARNING: Subroutine does not return */\n        std::__throw_length_error("vector::reserve");\n      }\n      uVar14 = uVar11;\n      if ((ulong)((long)(pCVar2->input_sections_copy_).\n                        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                        ._M_impl._M_end_of_storage - (long)pIVar16 >> 5) < uVar11) {\n        pIVar6 = pIVar16;\n        if (uVar11 == 0) {\n          pIVar13 = (pointer)0x0;\n          pIVar19 = pIVar16;\n          pIVar16 = pIVar13;\n        }\n        else {\n          pIVar13 = (pointer)operator_new(uVar11 * 0x20);\n          pIVar19 = (pCVar2->input_sections_copy_).\n                    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                    ._M_impl._M_start;\n          pIVar16 = pIVar13;\n        }\n        for (; pIVar17 != pIVar6; pIVar6 = pIVar6 + 1) {\n          uVar7 = pIVar6->p2align_;\n          aVar4 = pIVar6->u1_;\n          pIVar13->shndx_ = pIVar6->shndx_;\n          pIVar13->p2align_ = uVar7;\n          pIVar13->u1_ = aVar4;\n          uVar7 = pIVar6->section_order_index_;\n          uVar8 = *(undefined4 *)&pIVar6->field_0x1c;\n          pIVar13->u2_ = pIVar6->u2_;\n          pIVar13->section_order_index_ = uVar7;\n          *(undefined4 *)&pIVar13->field_0x1c = uVar8;\n          pIVar13 = pIVar13 + 1;\n        }\n        if (pIVar19 != (pointer)0x0) {\n          operator_delete(pIVar19);\n        }\n        pIVar17 = (pointer)((long)pIVar16 + lVar20);\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_start = pIVar16;\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish = pIVar17;\n        uVar14 = pCVar2->input_sections_size_;\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_end_of_storage = pIVar16 + uVar11;\n      }\n      if (pIVar16 != pIVar17) {\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish = pIVar16;\n      }\n      pIVar17 = (pCVar2->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 (uVar14 < (ulong)((long)(pCVar2->input_sections_->\n                                 super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                                 )._M_impl._M_finish - (long)pIVar17 >> 5)) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x10fd,"save_input_sections");\n      }\n      if (uVar14 != 0) {\n        uVar11 = 0;\n        do {\n          __position._M_current =\n               (pCVar2->input_sections_copy_).\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               ._M_impl._M_finish;\n          if (__position._M_current ==\n              (pCVar2->input_sections_copy_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_end_of_storage) {\n            std::\n            vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n                      (&pCVar2->input_sections_copy_,__position,pIVar17);\n          }\n          else {\n            uVar7 = pIVar17->p2align_;\n            aVar4 = pIVar17->u1_;\n            (__position._M_current)->shndx_ = pIVar17->shndx_;\n            (__position._M_current)->p2align_ = uVar7;\n            (__position._M_current)->u1_ = aVar4;\n            uVar7 = pIVar17->section_order_index_;\n            uVar8 = *(undefined4 *)&pIVar17->field_0x1c;\n            (__position._M_current)->u2_ = pIVar17->u2_;\n            (__position._M_current)->section_order_index_ = uVar7;\n            *(undefined4 *)&(__position._M_current)->field_0x1c = uVar8;\n            (pCVar2->input_sections_copy_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_finish = __position._M_current + 1;\n          }\n          uVar11 = uVar11 + 1;\n          pIVar17 = pIVar17 + 1;\n        } while (uVar11 < pCVar2->input_sections_size_);\n      }\n    }\n  }\n  this->lookup_maps_->is_valid_ = false;\n  p_Var3 = (this->super_Output_data)._vptr_Output_data[3];\n  if (p_Var3 == do_addralign) {\n    uVar10 = this->addralign_;\n  }\n  else {\n    iVar9 = (*p_Var3)(this);\n    uVar10 = CONCAT44(extraout_var_00,iVar9);\n  }\n  uVar21 = address;\n  if (uVar10 != 0) {\n    uVar21 = (uVar10 - 1) + address & -uVar10;\n  }\n  pIVar15 = (this->input_sections_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_start;\n  pIVar18 = (this->input_sections_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_finish;\n  remaining.\n  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_start = (pointer)0x0;\n  remaining.\n  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_finish = (pointer)0x0;\n  remaining.\n  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_end_of_storage = (pointer)0x0;\n  if (pIVar15 == pIVar18) {\n    remaining.\n    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    remaining.\n    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    remaining.\n    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ._M_impl._M_start = (pointer)0x0;\n  }\n  else {\n    do {\n      while (pIVar18 = pIVar15, pIVar18->shndx_ != 0xffffffff) {\n                    /* try { // try from 00210145 to 002102fc has its CatchHandler @ 002106dc */\n        this_00 = (_List_node_base *)operator_new(0x30);\n        aVar4 = pIVar18->u1_;\n        this_00[1]._M_next = *(_List_node_base **)pIVar18;\n        this_00[1]._M_prev = (_List_node_base *)aVar4;\n        p_Var5 = *(_List_node_base **)&pIVar18->section_order_index_;\n        *(anon_union_8_4_139239c7_for_u2_ *)(this_00 + 2) = pIVar18->u2_;\n        this_00[2]._M_prev = p_Var5;\n        std::__detail::_List_node_base::_M_hook(this_00,(_List_node_base *)input_sections);\n        psVar1 = &(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_node._M_size;\n        *psVar1 = *psVar1 + 1;\n        pIVar15 = pIVar18 + 1;\n        if ((this->input_sections_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_finish == pIVar18 + 1) goto LAB_00210220;\n      }\n      if (pIVar18->p2align_ == 0) {\n        p_Var3 = (((pIVar18->u2_).posd)->super_Output_data)._vptr_Output_data[3];\n        if (p_Var3 == Output_section_data::do_addralign) {\n          uVar10 = ((pIVar18->u2_).posd)->addralign_;\n        }\n        else {\n                    /* try { // try from 00210530 to 00210531 has its CatchHandler @ 002106dc */\n          iVar9 = (*p_Var3)();\n          uVar10 = CONCAT44(extraout_var,iVar9);\n        }\n      }\n      else {\n        uVar10 = 1L << ((char)pIVar18->p2align_ - 1U & 0x3f);\n      }\n      uVar23 = uVar21;\n      if (((uVar10 != 0) && (uVar23 = (uVar21 - 1) + uVar10 & -uVar10, uVar21 != uVar23)) &&\n         (fill->_M_string_length != 0)) {\n        this_fill.field_2._M_local_buf[0] = '\0';\n        this_fill._M_string_length = 0;\n        uVar11 = uVar23 - uVar21;\n        this_fill._M_dataplus._M_p = (pointer)&this_fill.field_2;\n                    /* try { // try from 002103f8 to 00210515 has its CatchHandler @ 002106e4 */\n        std::string::reserve((string *)&this_fill,uVar11);\n        while (uVar14 = fill->_M_string_length, this_fill._M_string_length + uVar14 <= uVar11) {\n          std::string::_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);\n        }\n        if (this_fill._M_string_length < uVar11) {\n          if (uVar11 - this_fill._M_string_length <= uVar14) {\n            uVar14 = uVar11 - this_fill._M_string_length;\n          }\n                    /* try { // try from 00210551 to 00210555 has its CatchHandler @ 002106e4 */\n          std::string::_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);\n        }\n        aVar12.object = (Relobj *)operator_new(0x58);\n        sVar22 = this_fill._M_string_length;\n        __src = this_fill._M_dataplus;\n        ((aVar12.object)->super_Object).name_._M_dataplus._M_p = (pointer)0x0;\n        ((aVar12.object)->super_Object).input_file_ = (Input_file *)0x0;\n        ((aVar12.object)->super_Object).offset_ = 0;\n        ((aVar12.object)->super_Object).name_._M_string_length = this_fill._M_string_length;\n        ((aVar12.object)->super_Object).name_.field_2._M_allocated_capacity = 0xffffffffffffffff;\n        local_b8 = (Xindex *)this_fill._M_string_length;\n        ((aVar12.object)->super_Object).name_.field_2._M_local_buf[8] =\n             ((aVar12.object)->super_Object).name_.field_2._M_local_buf[8] & 0xe0U | 10;\n        ((aVar12.object)->super_Object)._vptr_Object =\n             (_func_int_varargs **)&PTR__Output_data_const_00445c48;\n        __dest = &((aVar12.object)->super_Object).compressed_sections_;\n        *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_ = __dest;\n        if ((this_fill._M_dataplus._M_p + this_fill._M_string_length != (pointer)0x0) &&\n           (this_fill._M_dataplus._M_p == (pointer)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021068e to 00210692 has its CatchHandler @ 002106d4 */\n          std::__throw_logic_error("basic_string::_M_construct null not valid");\n        }\n        __dnew = this_fill._M_string_length;\n        if (this_fill._M_string_length < 0x10) {\n          if (this_fill._M_string_length == 1) {\n            *(char *)&((aVar12.object)->super_Object).compressed_sections_ =\n                 *this_fill._M_dataplus._M_p;\n          }\n          else if (this_fill._M_string_length != 0) goto LAB_002105af;\n        }\n        else {\n                    /* try { // try from 0021059d to 002105a1 has its CatchHandler @ 002106d4 */\n          __dest = (Compressed_section_map **)\n                   std::string::_M_create\n                             ((string *)&((aVar12.object)->super_Object).shnum_,&__dnew,0);\n          *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_ = __dest;\n          ((aVar12.object)->super_Object).compressed_sections_ = (Compressed_section_map *)__dnew;\nLAB_002105af:\n          memcpy(__dest,__src._M_p,sVar22);\n          local_b8 = (Xindex *)__dnew;\n          __dest = *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_;\n        }\n        local_a8 = (Input_section *)&__dnew;\n        ((aVar12.object)->super_Object).xindex_ = local_b8;\n        *(undefined1 *)((long)__dest + (long)local_b8) = 0;\n        local_40 = 0;\n        __dnew = 0xffffffff;\n        local_50.data_size = 0;\n        local_48.object = aVar12.object;\n        std::\n        vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ::emplace_back<gold::Output_section::Input_section>(&remaining,local_a8);\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)this_fill._M_dataplus._M_p != &this_fill.field_2) {\n          operator_delete(this_fill._M_dataplus._M_p);\n        }\n      }\n      if (remaining.\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          ._M_impl._M_finish ==\n          remaining.\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          ._M_impl._M_end_of_storage) {\n        std::\n        vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n                  (&remaining,\n                   (iterator)\n                   remaining.\n                   super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                   ._M_impl._M_finish,pIVar18);\n      }\n      else {\n        uVar7 = pIVar18->p2align_;\n        aVar4 = pIVar18->u1_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->shndx_ = pIVar18->shndx_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->p2align_ = uVar7;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->u1_ = aVar4;\n        uVar7 = pIVar18->section_order_index_;\n        uVar8 = *(undefined4 *)&pIVar18->field_0x1c;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->u2_ = pIVar18->u2_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->section_order_index_ = uVar7;\n        *(undefined4 *)\n         &(remaining.\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish)->field_0x1c = uVar8;\n        remaining.\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish =\n             remaining.\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_finish + 1;\n      }\n      if ((pIVar18->shndx_ + 4 < 4) &&\n         (pIVar15 = pIVar18, Input_section::finalize_data_size(pIVar18),\n         0xfffffffb < pIVar18->shndx_)) {\n        if (((((pIVar18->u2_).object)->super_Object).name_.field_2._M_local_buf[8] & 2U) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00210693 to 002106af has its CatchHandler @ 002106dc */\n          Input_section::data_size(pIVar15);\n        }\n        sVar22 = (((pIVar18->u2_).object)->super_Object).name_._M_string_length;\n      }\n      else {\n        sVar22 = (pIVar18->u1_).data_size;\n      }\n      uVar21 = sVar22 + uVar23;\n      pIVar15 = pIVar18 + 1;\n    } while ((this->input_sections_).\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_finish != pIVar18 + 1);\nLAB_00210220:\n    pIVar15 = pIVar18 + 1;\n    pIVar18 = (this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start;\n  }\n  (this->input_sections_).\n  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_finish =\n       remaining.\n       super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n       ._M_impl._M_finish;\n  pIVar17 = (this->input_sections_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_end_of_storage;\n  (this->input_sections_).\n  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_start =\n       remaining.\n       super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n       ._M_impl._M_start;\n  (this->input_sections_).\n  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_end_of_storage =\n       remaining.\n       super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n       ._M_impl._M_end_of_storage;\n  this->first_input_offset_ = 0;\n  remaining.\n  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_start = pIVar18;\n  remaining.\n  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_finish = pIVar15;\n  remaining.\n  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_end_of_storage = pIVar17;\n  if (((this->super_Output_data).field_0x20 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }\n  (this->super_Output_data).data_size_ = uVar21 - address;\n  if (pIVar18 != (Input_section *)0x0) {\n    operator_delete(pIVar18);\n  }\n  return uVar21 - address;\n}\n\n" comment (function_definition "uint64_t __thiscall\ngold::Output_section::get_input_sections\n          (Output_section *this,uint64_t address,string *fill,\n          list<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          *input_sections)\n\n{\n  size_t *psVar1;\n  Checkpoint_output_section *pCVar2;\n  _func_int_varargs *p_Var3;\n  iterator __position;\n  anon_union_8_2_227b06d7_for_u1_ aVar4;\n  _List_node_base *p_Var5;\n  pointer pIVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  _Alloc_hider __src;\n  int iVar9;\n  _List_node_base *this_00;\n  uint64_t uVar10;\n  ulong uVar11;\n  anon_union_8_4_139239c7_for_u2_ aVar12;\n  undefined4 extraout_var;\n  undefined4 extraout_var_00;\n  Compressed_section_map **__dest;\n  pointer pIVar13;\n  ulong uVar14;\n  Input_section *pIVar15;\n  pointer pIVar16;\n  pointer pIVar17;\n  Input_section *pIVar18;\n  pointer pIVar19;\n  long lVar20;\n  uint64_t uVar21;\n  uint64_t uVar23;\n  Xindex *local_b8;\n  Input_section *local_a8;\n  Input_section_list remaining;\n  string this_fill;\n  size_type __dnew;\n  anon_union_8_2_227b06d7_for_u1_ local_50;\n  anon_union_8_4_139239c7_for_u2_ local_48;\n  uint local_40;\n  size_type sVar22;\n  \n  pCVar2 = this->checkpoint_;\n  if (pCVar2 != (Checkpoint_output_section *)0x0) {\n    pIVar17 = (pCVar2->input_sections_copy_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_finish;\n    pIVar16 = (pCVar2->input_sections_copy_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start;\n    uVar11 = pCVar2->input_sections_size_;\n    lVar20 = (long)pIVar17 - (long)pIVar16;\n    if (uVar11 != lVar20 >> 5) {\n      if (0x7ffffffffffffff < uVar11) {\n                    /* WARNING: Subroutine does not return */\n        std::__throw_length_error("vector::reserve");\n      }\n      uVar14 = uVar11;\n      if ((ulong)((long)(pCVar2->input_sections_copy_).\n                        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                        ._M_impl._M_end_of_storage - (long)pIVar16 >> 5) < uVar11) {\n        pIVar6 = pIVar16;\n        if (uVar11 == 0) {\n          pIVar13 = (pointer)0x0;\n          pIVar19 = pIVar16;\n          pIVar16 = pIVar13;\n        }\n        else {\n          pIVar13 = (pointer)operator_new(uVar11 * 0x20);\n          pIVar19 = (pCVar2->input_sections_copy_).\n                    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                    ._M_impl._M_start;\n          pIVar16 = pIVar13;\n        }\n        for (; pIVar17 != pIVar6; pIVar6 = pIVar6 + 1) {\n          uVar7 = pIVar6->p2align_;\n          aVar4 = pIVar6->u1_;\n          pIVar13->shndx_ = pIVar6->shndx_;\n          pIVar13->p2align_ = uVar7;\n          pIVar13->u1_ = aVar4;\n          uVar7 = pIVar6->section_order_index_;\n          uVar8 = *(undefined4 *)&pIVar6->field_0x1c;\n          pIVar13->u2_ = pIVar6->u2_;\n          pIVar13->section_order_index_ = uVar7;\n          *(undefined4 *)&pIVar13->field_0x1c = uVar8;\n          pIVar13 = pIVar13 + 1;\n        }\n        if (pIVar19 != (pointer)0x0) {\n          operator_delete(pIVar19);\n        }\n        pIVar17 = (pointer)((long)pIVar16 + lVar20);\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_start = pIVar16;\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish = pIVar17;\n        uVar14 = pCVar2->input_sections_size_;\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_end_of_storage = pIVar16 + uVar11;\n      }\n      if (pIVar16 != pIVar17) {\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish = pIVar16;\n      }\n      pIVar17 = (pCVar2->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 (uVar14 < (ulong)((long)(pCVar2->input_sections_->\n                                 super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                                 )._M_impl._M_finish - (long)pIVar17 >> 5)) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x10fd,"save_input_sections");\n      }\n      if (uVar14 != 0) {\n        uVar11 = 0;\n        do {\n          __position._M_current =\n               (pCVar2->input_sections_copy_).\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               ._M_impl._M_finish;\n          if (__position._M_current ==\n              (pCVar2->input_sections_copy_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_end_of_storage) {\n            std::\n            vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n                      (&pCVar2->input_sections_copy_,__position,pIVar17);\n          }\n          else {\n            uVar7 = pIVar17->p2align_;\n            aVar4 = pIVar17->u1_;\n            (__position._M_current)->shndx_ = pIVar17->shndx_;\n            (__position._M_current)->p2align_ = uVar7;\n            (__position._M_current)->u1_ = aVar4;\n            uVar7 = pIVar17->section_order_index_;\n            uVar8 = *(undefined4 *)&pIVar17->field_0x1c;\n            (__position._M_current)->u2_ = pIVar17->u2_;\n            (__position._M_current)->section_order_index_ = uVar7;\n            *(undefined4 *)&(__position._M_current)->field_0x1c = uVar8;\n            (pCVar2->input_sections_copy_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_finish = __position._M_current + 1;\n          }\n          uVar11 = uVar11 + 1;\n          pIVar17 = pIVar17 + 1;\n        } while (uVar11 < pCVar2->input_sections_size_);\n      }\n    }\n  }\n  this->lookup_maps_->is_valid_ = false;\n  p_Var3 = (this->super_Output_data)._vptr_Output_data[3];\n  if (p_Var3 == do_addralign) {\n    uVar10 = this->addralign_;\n  }\n  else {\n    iVar9 = (*p_Var3)(this);\n    uVar10 = CONCAT44(extraout_var_00,iVar9);\n  }\n  uVar21 = address;\n  if (uVar10 != 0) {\n    uVar21 = (uVar10 - 1) + address & -uVar10;\n  }\n  pIVar15 = (this->input_sections_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_start;\n  pIVar18 = (this->input_sections_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_finish;\n  remaining.\n  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_start = (pointer)0x0;\n  remaining.\n  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_finish = (pointer)0x0;\n  remaining.\n  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_end_of_storage = (pointer)0x0;\n  if (pIVar15 == pIVar18) {\n    remaining.\n    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    remaining.\n    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    remaining.\n    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ._M_impl._M_start = (pointer)0x0;\n  }\n  else {\n    do {\n      while (pIVar18 = pIVar15, pIVar18->shndx_ != 0xffffffff) {\n                    /* try { // try from 00210145 to 002102fc has its CatchHandler @ 002106dc */\n        this_00 = (_List_node_base *)operator_new(0x30);\n        aVar4 = pIVar18->u1_;\n        this_00[1]._M_next = *(_List_node_base **)pIVar18;\n        this_00[1]._M_prev = (_List_node_base *)aVar4;\n        p_Var5 = *(_List_node_base **)&pIVar18->section_order_index_;\n        *(anon_union_8_4_139239c7_for_u2_ *)(this_00 + 2) = pIVar18->u2_;\n        this_00[2]._M_prev = p_Var5;\n        std::__detail::_List_node_base::_M_hook(this_00,(_List_node_base *)input_sections);\n        psVar1 = &(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_node._M_size;\n        *psVar1 = *psVar1 + 1;\n        pIVar15 = pIVar18 + 1;\n        if ((this->input_sections_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_finish == pIVar18 + 1) goto LAB_00210220;\n      }\n      if (pIVar18->p2align_ == 0) {\n        p_Var3 = (((pIVar18->u2_).posd)->super_Output_data)._vptr_Output_data[3];\n        if (p_Var3 == Output_section_data::do_addralign) {\n          uVar10 = ((pIVar18->u2_).posd)->addralign_;\n        }\n        else {\n                    /* try { // try from 00210530 to 00210531 has its CatchHandler @ 002106dc */\n          iVar9 = (*p_Var3)();\n          uVar10 = CONCAT44(extraout_var,iVar9);\n        }\n      }\n      else {\n        uVar10 = 1L << ((char)pIVar18->p2align_ - 1U & 0x3f);\n      }\n      uVar23 = uVar21;\n      if (((uVar10 != 0) && (uVar23 = (uVar21 - 1) + uVar10 & -uVar10, uVar21 != uVar23)) &&\n         (fill->_M_string_length != 0)) {\n        this_fill.field_2._M_local_buf[0] = '\0';\n        this_fill._M_string_length = 0;\n        uVar11 = uVar23 - uVar21;\n        this_fill._M_dataplus._M_p = (pointer)&this_fill.field_2;\n                    /* try { // try from 002103f8 to 00210515 has its CatchHandler @ 002106e4 */\n        std::string::reserve((string *)&this_fill,uVar11);\n        while (uVar14 = fill->_M_string_length, this_fill._M_string_length + uVar14 <= uVar11) {\n          std::string::_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);\n        }\n        if (this_fill._M_string_length < uVar11) {\n          if (uVar11 - this_fill._M_string_length <= uVar14) {\n            uVar14 = uVar11 - this_fill._M_string_length;\n          }\n                    /* try { // try from 00210551 to 00210555 has its CatchHandler @ 002106e4 */\n          std::string::_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);\n        }\n        aVar12.object = (Relobj *)operator_new(0x58);\n        sVar22 = this_fill._M_string_length;\n        __src = this_fill._M_dataplus;\n        ((aVar12.object)->super_Object).name_._M_dataplus._M_p = (pointer)0x0;\n        ((aVar12.object)->super_Object).input_file_ = (Input_file *)0x0;\n        ((aVar12.object)->super_Object).offset_ = 0;\n        ((aVar12.object)->super_Object).name_._M_string_length = this_fill._M_string_length;\n        ((aVar12.object)->super_Object).name_.field_2._M_allocated_capacity = 0xffffffffffffffff;\n        local_b8 = (Xindex *)this_fill._M_string_length;\n        ((aVar12.object)->super_Object).name_.field_2._M_local_buf[8] =\n             ((aVar12.object)->super_Object).name_.field_2._M_local_buf[8] & 0xe0U | 10;\n        ((aVar12.object)->super_Object)._vptr_Object =\n             (_func_int_varargs **)&PTR__Output_data_const_00445c48;\n        __dest = &((aVar12.object)->super_Object).compressed_sections_;\n        *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_ = __dest;\n        if ((this_fill._M_dataplus._M_p + this_fill._M_string_length != (pointer)0x0) &&\n           (this_fill._M_dataplus._M_p == (pointer)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021068e to 00210692 has its CatchHandler @ 002106d4 */\n          std::__throw_logic_error("basic_string::_M_construct null not valid");\n        }\n        __dnew = this_fill._M_string_length;\n        if (this_fill._M_string_length < 0x10) {\n          if (this_fill._M_string_length == 1) {\n            *(char *)&((aVar12.object)->super_Object).compressed_sections_ =\n                 *this_fill._M_dataplus._M_p;\n          }\n          else if (this_fill._M_string_length != 0) goto LAB_002105af;\n        }\n        else {\n                    /* try { // try from 0021059d to 002105a1 has its CatchHandler @ 002106d4 */\n          __dest = (Compressed_section_map **)\n                   std::string::_M_create\n                             ((string *)&((aVar12.object)->super_Object).shnum_,&__dnew,0);\n          *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_ = __dest;\n          ((aVar12.object)->super_Object).compressed_sections_ = (Compressed_section_map *)__dnew;\nLAB_002105af:\n          memcpy(__dest,__src._M_p,sVar22);\n          local_b8 = (Xindex *)__dnew;\n          __dest = *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_;\n        }\n        local_a8 = (Input_section *)&__dnew;\n        ((aVar12.object)->super_Object).xindex_ = local_b8;\n        *(undefined1 *)((long)__dest + (long)local_b8) = 0;\n        local_40 = 0;\n        __dnew = 0xffffffff;\n        local_50.data_size = 0;\n        local_48.object = aVar12.object;\n        std::\n        vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ::emplace_back<gold::Output_section::Input_section>(&remaining,local_a8);\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)this_fill._M_dataplus._M_p != &this_fill.field_2) {\n          operator_delete(this_fill._M_dataplus._M_p);\n        }\n      }\n      if (remaining.\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          ._M_impl._M_finish ==\n          remaining.\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          ._M_impl._M_end_of_storage) {\n        std::\n        vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n                  (&remaining,\n                   (iterator)\n                   remaining.\n                   super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                   ._M_impl._M_finish,pIVar18);\n      }\n      else {\n        uVar7 = pIVar18->p2align_;\n        aVar4 = pIVar18->u1_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->shndx_ = pIVar18->shndx_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->p2align_ = uVar7;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->u1_ = aVar4;\n        uVar7 = pIVar18->section_order_index_;\n        uVar8 = *(undefined4 *)&pIVar18->field_0x1c;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->u2_ = pIVar18->u2_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->section_order_index_ = uVar7;\n        *(undefined4 *)\n         &(remaining.\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish)->field_0x1c = uVar8;\n        remaining.\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish =\n             remaining.\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_finish + 1;\n      }\n      if ((pIVar18->shndx_ + 4 < 4) &&\n         (pIVar15 = pIVar18, Input_section::finalize_data_size(pIVar18),\n         0xfffffffb < pIVar18->shndx_)) {\n        if (((((pIVar18->u2_).object)->super_Object).name_.field_2._M_local_buf[8] & 2U) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00210693 to 002106af has its CatchHandler @ 002106dc */\n          Input_section::data_size(pIVar15);\n        }\n        sVar22 = (((pIVar18->u2_).object)->super_Object).name_._M_string_length;\n      }\n      else {\n        sVar22 = (pIVar18->u1_).data_size;\n      }\n      uVar21 = sVar22 + uVar23;\n      pIVar15 = pIVar18 + 1;\n    } while ((this->input_sections_).\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_finish != pIVar18 + 1);\nLAB_00210220:\n    pIVar15 = pIVar18 + 1;\n    pIVar18 = (this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start;\n  }\n  (this->input_sections_).\n  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_finish =\n       remaining.\n       super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n       ._M_impl._M_finish;\n  pIVar17 = (this->input_sections_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_end_of_storage;\n  (this->input_sections_).\n  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_start =\n       remaining.\n       super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n       ._M_impl._M_start;\n  (this->input_sections_).\n  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_end_of_storage =\n       remaining.\n       super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n       ._M_impl._M_end_of_storage;\n  this->first_input_offset_ = 0;\n  remaining.\n  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_start = pIVar18;\n  remaining.\n  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_finish = pIVar15;\n  remaining.\n  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_end_of_storage = pIVar17;\n  if (((this->super_Output_data).field_0x20 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }\n  (this->super_Output_data).data_size_ = uVar21 - address;\n  if (pIVar18 != (Input_section *)0x0) {\n    operator_delete(pIVar18);\n  }\n  return uVar21 - address;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Output_section::" identifier : : identifier : :) (function_declarator "get_input_sections\n          (Output_section *this,uint64_t address,string *fill,\n          list<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          *input_sections)" identifier (parameter_list "(Output_section *this,uint64_t address,string *fill,\n          list<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          *input_sections)" ( (parameter_declaration "Output_section *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "uint64_t address" primitive_type identifier) , (parameter_declaration "string *fill" type_identifier (pointer_declarator "*fill" * identifier)) , (parameter_declaration "list<gold::Output_section::Input_section" type_identifier (ERROR "<gold::Output_section::" < identifier : : identifier : :) identifier) , (parameter_declaration "_std::allocator<gold::Output_section::Input_section>_>\n          *input_sections" type_identifier (ERROR "::allocator<gold::Output_section::Input_section>_>" : : identifier < identifier : : identifier : : identifier > identifier >) (pointer_declarator "*input_sections" * identifier)) ))) (compound_statement "{\n  size_t *psVar1;\n  Checkpoint_output_section *pCVar2;\n  _func_int_varargs *p_Var3;\n  iterator __position;\n  anon_union_8_2_227b06d7_for_u1_ aVar4;\n  _List_node_base *p_Var5;\n  pointer pIVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  _Alloc_hider __src;\n  int iVar9;\n  _List_node_base *this_00;\n  uint64_t uVar10;\n  ulong uVar11;\n  anon_union_8_4_139239c7_for_u2_ aVar12;\n  undefined4 extraout_var;\n  undefined4 extraout_var_00;\n  Compressed_section_map **__dest;\n  pointer pIVar13;\n  ulong uVar14;\n  Input_section *pIVar15;\n  pointer pIVar16;\n  pointer pIVar17;\n  Input_section *pIVar18;\n  pointer pIVar19;\n  long lVar20;\n  uint64_t uVar21;\n  uint64_t uVar23;\n  Xindex *local_b8;\n  Input_section *local_a8;\n  Input_section_list remaining;\n  string this_fill;\n  size_type __dnew;\n  anon_union_8_2_227b06d7_for_u1_ local_50;\n  anon_union_8_4_139239c7_for_u2_ local_48;\n  uint local_40;\n  size_type sVar22;\n  \n  pCVar2 = this->checkpoint_;\n  if (pCVar2 != (Checkpoint_output_section *)0x0) {\n    pIVar17 = (pCVar2->input_sections_copy_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_finish;\n    pIVar16 = (pCVar2->input_sections_copy_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start;\n    uVar11 = pCVar2->input_sections_size_;\n    lVar20 = (long)pIVar17 - (long)pIVar16;\n    if (uVar11 != lVar20 >> 5) {\n      if (0x7ffffffffffffff < uVar11) {\n                    /* WARNING: Subroutine does not return */\n        std::__throw_length_error("vector::reserve");\n      }\n      uVar14 = uVar11;\n      if ((ulong)((long)(pCVar2->input_sections_copy_).\n                        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                        ._M_impl._M_end_of_storage - (long)pIVar16 >> 5) < uVar11) {\n        pIVar6 = pIVar16;\n        if (uVar11 == 0) {\n          pIVar13 = (pointer)0x0;\n          pIVar19 = pIVar16;\n          pIVar16 = pIVar13;\n        }\n        else {\n          pIVar13 = (pointer)operator_new(uVar11 * 0x20);\n          pIVar19 = (pCVar2->input_sections_copy_).\n                    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                    ._M_impl._M_start;\n          pIVar16 = pIVar13;\n        }\n        for (; pIVar17 != pIVar6; pIVar6 = pIVar6 + 1) {\n          uVar7 = pIVar6->p2align_;\n          aVar4 = pIVar6->u1_;\n          pIVar13->shndx_ = pIVar6->shndx_;\n          pIVar13->p2align_ = uVar7;\n          pIVar13->u1_ = aVar4;\n          uVar7 = pIVar6->section_order_index_;\n          uVar8 = *(undefined4 *)&pIVar6->field_0x1c;\n          pIVar13->u2_ = pIVar6->u2_;\n          pIVar13->section_order_index_ = uVar7;\n          *(undefined4 *)&pIVar13->field_0x1c = uVar8;\n          pIVar13 = pIVar13 + 1;\n        }\n        if (pIVar19 != (pointer)0x0) {\n          operator_delete(pIVar19);\n        }\n        pIVar17 = (pointer)((long)pIVar16 + lVar20);\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_start = pIVar16;\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish = pIVar17;\n        uVar14 = pCVar2->input_sections_size_;\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_end_of_storage = pIVar16 + uVar11;\n      }\n      if (pIVar16 != pIVar17) {\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish = pIVar16;\n      }\n      pIVar17 = (pCVar2->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 (uVar14 < (ulong)((long)(pCVar2->input_sections_->\n                                 super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                                 )._M_impl._M_finish - (long)pIVar17 >> 5)) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x10fd,"save_input_sections");\n      }\n      if (uVar14 != 0) {\n        uVar11 = 0;\n        do {\n          __position._M_current =\n               (pCVar2->input_sections_copy_).\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               ._M_impl._M_finish;\n          if (__position._M_current ==\n              (pCVar2->input_sections_copy_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_end_of_storage) {\n            std::\n            vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n                      (&pCVar2->input_sections_copy_,__position,pIVar17);\n          }\n          else {\n            uVar7 = pIVar17->p2align_;\n            aVar4 = pIVar17->u1_;\n            (__position._M_current)->shndx_ = pIVar17->shndx_;\n            (__position._M_current)->p2align_ = uVar7;\n            (__position._M_current)->u1_ = aVar4;\n            uVar7 = pIVar17->section_order_index_;\n            uVar8 = *(undefined4 *)&pIVar17->field_0x1c;\n            (__position._M_current)->u2_ = pIVar17->u2_;\n            (__position._M_current)->section_order_index_ = uVar7;\n            *(undefined4 *)&(__position._M_current)->field_0x1c = uVar8;\n            (pCVar2->input_sections_copy_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_finish = __position._M_current + 1;\n          }\n          uVar11 = uVar11 + 1;\n          pIVar17 = pIVar17 + 1;\n        } while (uVar11 < pCVar2->input_sections_size_);\n      }\n    }\n  }\n  this->lookup_maps_->is_valid_ = false;\n  p_Var3 = (this->super_Output_data)._vptr_Output_data[3];\n  if (p_Var3 == do_addralign) {\n    uVar10 = this->addralign_;\n  }\n  else {\n    iVar9 = (*p_Var3)(this);\n    uVar10 = CONCAT44(extraout_var_00,iVar9);\n  }\n  uVar21 = address;\n  if (uVar10 != 0) {\n    uVar21 = (uVar10 - 1) + address & -uVar10;\n  }\n  pIVar15 = (this->input_sections_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_start;\n  pIVar18 = (this->input_sections_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_finish;\n  remaining.\n  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_start = (pointer)0x0;\n  remaining.\n  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_finish = (pointer)0x0;\n  remaining.\n  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_end_of_storage = (pointer)0x0;\n  if (pIVar15 == pIVar18) {\n    remaining.\n    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    remaining.\n    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    remaining.\n    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ._M_impl._M_start = (pointer)0x0;\n  }\n  else {\n    do {\n      while (pIVar18 = pIVar15, pIVar18->shndx_ != 0xffffffff) {\n                    /* try { // try from 00210145 to 002102fc has its CatchHandler @ 002106dc */\n        this_00 = (_List_node_base *)operator_new(0x30);\n        aVar4 = pIVar18->u1_;\n        this_00[1]._M_next = *(_List_node_base **)pIVar18;\n        this_00[1]._M_prev = (_List_node_base *)aVar4;\n        p_Var5 = *(_List_node_base **)&pIVar18->section_order_index_;\n        *(anon_union_8_4_139239c7_for_u2_ *)(this_00 + 2) = pIVar18->u2_;\n        this_00[2]._M_prev = p_Var5;\n        std::__detail::_List_node_base::_M_hook(this_00,(_List_node_base *)input_sections);\n        psVar1 = &(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_node._M_size;\n        *psVar1 = *psVar1 + 1;\n        pIVar15 = pIVar18 + 1;\n        if ((this->input_sections_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_finish == pIVar18 + 1) goto LAB_00210220;\n      }\n      if (pIVar18->p2align_ == 0) {\n        p_Var3 = (((pIVar18->u2_).posd)->super_Output_data)._vptr_Output_data[3];\n        if (p_Var3 == Output_section_data::do_addralign) {\n          uVar10 = ((pIVar18->u2_).posd)->addralign_;\n        }\n        else {\n                    /* try { // try from 00210530 to 00210531 has its CatchHandler @ 002106dc */\n          iVar9 = (*p_Var3)();\n          uVar10 = CONCAT44(extraout_var,iVar9);\n        }\n      }\n      else {\n        uVar10 = 1L << ((char)pIVar18->p2align_ - 1U & 0x3f);\n      }\n      uVar23 = uVar21;\n      if (((uVar10 != 0) && (uVar23 = (uVar21 - 1) + uVar10 & -uVar10, uVar21 != uVar23)) &&\n         (fill->_M_string_length != 0)) {\n        this_fill.field_2._M_local_buf[0] = '\0';\n        this_fill._M_string_length = 0;\n        uVar11 = uVar23 - uVar21;\n        this_fill._M_dataplus._M_p = (pointer)&this_fill.field_2;\n                    /* try { // try from 002103f8 to 00210515 has its CatchHandler @ 002106e4 */\n        std::string::reserve((string *)&this_fill,uVar11);\n        while (uVar14 = fill->_M_string_length, this_fill._M_string_length + uVar14 <= uVar11) {\n          std::string::_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);\n        }\n        if (this_fill._M_string_length < uVar11) {\n          if (uVar11 - this_fill._M_string_length <= uVar14) {\n            uVar14 = uVar11 - this_fill._M_string_length;\n          }\n                    /* try { // try from 00210551 to 00210555 has its CatchHandler @ 002106e4 */\n          std::string::_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);\n        }\n        aVar12.object = (Relobj *)operator_new(0x58);\n        sVar22 = this_fill._M_string_length;\n        __src = this_fill._M_dataplus;\n        ((aVar12.object)->super_Object).name_._M_dataplus._M_p = (pointer)0x0;\n        ((aVar12.object)->super_Object).input_file_ = (Input_file *)0x0;\n        ((aVar12.object)->super_Object).offset_ = 0;\n        ((aVar12.object)->super_Object).name_._M_string_length = this_fill._M_string_length;\n        ((aVar12.object)->super_Object).name_.field_2._M_allocated_capacity = 0xffffffffffffffff;\n        local_b8 = (Xindex *)this_fill._M_string_length;\n        ((aVar12.object)->super_Object).name_.field_2._M_local_buf[8] =\n             ((aVar12.object)->super_Object).name_.field_2._M_local_buf[8] & 0xe0U | 10;\n        ((aVar12.object)->super_Object)._vptr_Object =\n             (_func_int_varargs **)&PTR__Output_data_const_00445c48;\n        __dest = &((aVar12.object)->super_Object).compressed_sections_;\n        *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_ = __dest;\n        if ((this_fill._M_dataplus._M_p + this_fill._M_string_length != (pointer)0x0) &&\n           (this_fill._M_dataplus._M_p == (pointer)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021068e to 00210692 has its CatchHandler @ 002106d4 */\n          std::__throw_logic_error("basic_string::_M_construct null not valid");\n        }\n        __dnew = this_fill._M_string_length;\n        if (this_fill._M_string_length < 0x10) {\n          if (this_fill._M_string_length == 1) {\n            *(char *)&((aVar12.object)->super_Object).compressed_sections_ =\n                 *this_fill._M_dataplus._M_p;\n          }\n          else if (this_fill._M_string_length != 0) goto LAB_002105af;\n        }\n        else {\n                    /* try { // try from 0021059d to 002105a1 has its CatchHandler @ 002106d4 */\n          __dest = (Compressed_section_map **)\n                   std::string::_M_create\n                             ((string *)&((aVar12.object)->super_Object).shnum_,&__dnew,0);\n          *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_ = __dest;\n          ((aVar12.object)->super_Object).compressed_sections_ = (Compressed_section_map *)__dnew;\nLAB_002105af:\n          memcpy(__dest,__src._M_p,sVar22);\n          local_b8 = (Xindex *)__dnew;\n          __dest = *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_;\n        }\n        local_a8 = (Input_section *)&__dnew;\n        ((aVar12.object)->super_Object).xindex_ = local_b8;\n        *(undefined1 *)((long)__dest + (long)local_b8) = 0;\n        local_40 = 0;\n        __dnew = 0xffffffff;\n        local_50.data_size = 0;\n        local_48.object = aVar12.object;\n        std::\n        vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ::emplace_back<gold::Output_section::Input_section>(&remaining,local_a8);\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)this_fill._M_dataplus._M_p != &this_fill.field_2) {\n          operator_delete(this_fill._M_dataplus._M_p);\n        }\n      }\n      if (remaining.\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          ._M_impl._M_finish ==\n          remaining.\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          ._M_impl._M_end_of_storage) {\n        std::\n        vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n                  (&remaining,\n                   (iterator)\n                   remaining.\n                   super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                   ._M_impl._M_finish,pIVar18);\n      }\n      else {\n        uVar7 = pIVar18->p2align_;\n        aVar4 = pIVar18->u1_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->shndx_ = pIVar18->shndx_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->p2align_ = uVar7;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->u1_ = aVar4;\n        uVar7 = pIVar18->section_order_index_;\n        uVar8 = *(undefined4 *)&pIVar18->field_0x1c;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->u2_ = pIVar18->u2_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->section_order_index_ = uVar7;\n        *(undefined4 *)\n         &(remaining.\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish)->field_0x1c = uVar8;\n        remaining.\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish =\n             remaining.\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_finish + 1;\n      }\n      if ((pIVar18->shndx_ + 4 < 4) &&\n         (pIVar15 = pIVar18, Input_section::finalize_data_size(pIVar18),\n         0xfffffffb < pIVar18->shndx_)) {\n        if (((((pIVar18->u2_).object)->super_Object).name_.field_2._M_local_buf[8] & 2U) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00210693 to 002106af has its CatchHandler @ 002106dc */\n          Input_section::data_size(pIVar15);\n        }\n        sVar22 = (((pIVar18->u2_).object)->super_Object).name_._M_string_length;\n      }\n      else {\n        sVar22 = (pIVar18->u1_).data_size;\n      }\n      uVar21 = sVar22 + uVar23;\n      pIVar15 = pIVar18 + 1;\n    } while ((this->input_sections_).\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_finish != pIVar18 + 1);\nLAB_00210220:\n    pIVar15 = pIVar18 + 1;\n    pIVar18 = (this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start;\n  }\n  (this->input_sections_).\n  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_finish =\n       remaining.\n       super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n       ._M_impl._M_finish;\n  pIVar17 = (this->input_sections_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_end_of_storage;\n  (this->input_sections_).\n  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_start =\n       remaining.\n       super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n       ._M_impl._M_start;\n  (this->input_sections_).\n  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_end_of_storage =\n       remaining.\n       super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n       ._M_impl._M_end_of_storage;\n  this->first_input_offset_ = 0;\n  remaining.\n  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_start = pIVar18;\n  remaining.\n  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_finish = pIVar15;\n  remaining.\n  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_end_of_storage = pIVar17;\n  if (((this->super_Output_data).field_0x20 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }\n  (this->super_Output_data).data_size_ = uVar21 - address;\n  if (pIVar18 != (Input_section *)0x0) {\n    operator_delete(pIVar18);\n  }\n  return uVar21 - address;\n}" { (declaration "size_t *psVar1;" primitive_type (pointer_declarator "*psVar1" * identifier) ;) (declaration "Checkpoint_output_section *pCVar2;" type_identifier (pointer_declarator "*pCVar2" * identifier) ;) (declaration "_func_int_varargs *p_Var3;" type_identifier (pointer_declarator "*p_Var3" * identifier) ;) (declaration "iterator __position;" type_identifier identifier ;) (declaration "anon_union_8_2_227b06d7_for_u1_ aVar4;" type_identifier identifier ;) (declaration "_List_node_base *p_Var5;" type_identifier (pointer_declarator "*p_Var5" * identifier) ;) (declaration "pointer pIVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "_Alloc_hider __src;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "_List_node_base *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "uint64_t uVar10;" primitive_type identifier ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "anon_union_8_4_139239c7_for_u2_ aVar12;" type_identifier identifier ;) (declaration "undefined4 extraout_var;" type_identifier identifier ;) (declaration "undefined4 extraout_var_00;" type_identifier identifier ;) (declaration "Compressed_section_map **__dest;" type_identifier (pointer_declarator "**__dest" * (pointer_declarator "*__dest" * identifier)) ;) (declaration "pointer pIVar13;" type_identifier identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "Input_section *pIVar15;" type_identifier (pointer_declarator "*pIVar15" * identifier) ;) (declaration "pointer pIVar16;" type_identifier identifier ;) (declaration "pointer pIVar17;" type_identifier identifier ;) (declaration "Input_section *pIVar18;" type_identifier (pointer_declarator "*pIVar18" * identifier) ;) (declaration "pointer pIVar19;" type_identifier identifier ;) (declaration "long lVar20;" (sized_type_specifier "long" long) identifier ;) (declaration "uint64_t uVar21;" primitive_type identifier ;) (declaration "uint64_t uVar23;" primitive_type identifier ;) (declaration "Xindex *local_b8;" type_identifier (pointer_declarator "*local_b8" * identifier) ;) (declaration "Input_section *local_a8;" type_identifier (pointer_declarator "*local_a8" * identifier) ;) (declaration "Input_section_list remaining;" type_identifier identifier ;) (declaration "string this_fill;" type_identifier identifier ;) (declaration "size_type __dnew;" type_identifier identifier ;) (declaration "anon_union_8_2_227b06d7_for_u1_ local_50;" type_identifier identifier ;) (declaration "anon_union_8_4_139239c7_for_u2_ local_48;" type_identifier identifier ;) (declaration "uint local_40;" type_identifier identifier ;) (declaration "size_type sVar22;" type_identifier identifier ;) (expression_statement "pCVar2 = this->checkpoint_;" (assignment_expression "pCVar2 = this->checkpoint_" identifier = (field_expression "this->checkpoint_" identifier -> field_identifier)) ;) (if_statement "if (pCVar2 != (Checkpoint_output_section *)0x0) {\n    pIVar17 = (pCVar2->input_sections_copy_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_finish;\n    pIVar16 = (pCVar2->input_sections_copy_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start;\n    uVar11 = pCVar2->input_sections_size_;\n    lVar20 = (long)pIVar17 - (long)pIVar16;\n    if (uVar11 != lVar20 >> 5) {\n      if (0x7ffffffffffffff < uVar11) {\n                    /* WARNING: Subroutine does not return */\n        std::__throw_length_error("vector::reserve");\n      }\n      uVar14 = uVar11;\n      if ((ulong)((long)(pCVar2->input_sections_copy_).\n                        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                        ._M_impl._M_end_of_storage - (long)pIVar16 >> 5) < uVar11) {\n        pIVar6 = pIVar16;\n        if (uVar11 == 0) {\n          pIVar13 = (pointer)0x0;\n          pIVar19 = pIVar16;\n          pIVar16 = pIVar13;\n        }\n        else {\n          pIVar13 = (pointer)operator_new(uVar11 * 0x20);\n          pIVar19 = (pCVar2->input_sections_copy_).\n                    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                    ._M_impl._M_start;\n          pIVar16 = pIVar13;\n        }\n        for (; pIVar17 != pIVar6; pIVar6 = pIVar6 + 1) {\n          uVar7 = pIVar6->p2align_;\n          aVar4 = pIVar6->u1_;\n          pIVar13->shndx_ = pIVar6->shndx_;\n          pIVar13->p2align_ = uVar7;\n          pIVar13->u1_ = aVar4;\n          uVar7 = pIVar6->section_order_index_;\n          uVar8 = *(undefined4 *)&pIVar6->field_0x1c;\n          pIVar13->u2_ = pIVar6->u2_;\n          pIVar13->section_order_index_ = uVar7;\n          *(undefined4 *)&pIVar13->field_0x1c = uVar8;\n          pIVar13 = pIVar13 + 1;\n        }\n        if (pIVar19 != (pointer)0x0) {\n          operator_delete(pIVar19);\n        }\n        pIVar17 = (pointer)((long)pIVar16 + lVar20);\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_start = pIVar16;\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish = pIVar17;\n        uVar14 = pCVar2->input_sections_size_;\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_end_of_storage = pIVar16 + uVar11;\n      }\n      if (pIVar16 != pIVar17) {\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish = pIVar16;\n      }\n      pIVar17 = (pCVar2->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 (uVar14 < (ulong)((long)(pCVar2->input_sections_->\n                                 super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                                 )._M_impl._M_finish - (long)pIVar17 >> 5)) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x10fd,"save_input_sections");\n      }\n      if (uVar14 != 0) {\n        uVar11 = 0;\n        do {\n          __position._M_current =\n               (pCVar2->input_sections_copy_).\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               ._M_impl._M_finish;\n          if (__position._M_current ==\n              (pCVar2->input_sections_copy_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_end_of_storage) {\n            std::\n            vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n                      (&pCVar2->input_sections_copy_,__position,pIVar17);\n          }\n          else {\n            uVar7 = pIVar17->p2align_;\n            aVar4 = pIVar17->u1_;\n            (__position._M_current)->shndx_ = pIVar17->shndx_;\n            (__position._M_current)->p2align_ = uVar7;\n            (__position._M_current)->u1_ = aVar4;\n            uVar7 = pIVar17->section_order_index_;\n            uVar8 = *(undefined4 *)&pIVar17->field_0x1c;\n            (__position._M_current)->u2_ = pIVar17->u2_;\n            (__position._M_current)->section_order_index_ = uVar7;\n            *(undefined4 *)&(__position._M_current)->field_0x1c = uVar8;\n            (pCVar2->input_sections_copy_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_finish = __position._M_current + 1;\n          }\n          uVar11 = uVar11 + 1;\n          pIVar17 = pIVar17 + 1;\n        } while (uVar11 < pCVar2->input_sections_size_);\n      }\n    }\n  }" if (parenthesized_expression "(pCVar2 != (Checkpoint_output_section *)0x0)" ( (binary_expression "pCVar2 != (Checkpoint_output_section *)0x0" identifier != (cast_expression "(Checkpoint_output_section *)0x0" ( (type_descriptor "Checkpoint_output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pIVar17 = (pCVar2->input_sections_copy_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_finish;\n    pIVar16 = (pCVar2->input_sections_copy_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start;\n    uVar11 = pCVar2->input_sections_size_;\n    lVar20 = (long)pIVar17 - (long)pIVar16;\n    if (uVar11 != lVar20 >> 5) {\n      if (0x7ffffffffffffff < uVar11) {\n                    /* WARNING: Subroutine does not return */\n        std::__throw_length_error("vector::reserve");\n      }\n      uVar14 = uVar11;\n      if ((ulong)((long)(pCVar2->input_sections_copy_).\n                        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                        ._M_impl._M_end_of_storage - (long)pIVar16 >> 5) < uVar11) {\n        pIVar6 = pIVar16;\n        if (uVar11 == 0) {\n          pIVar13 = (pointer)0x0;\n          pIVar19 = pIVar16;\n          pIVar16 = pIVar13;\n        }\n        else {\n          pIVar13 = (pointer)operator_new(uVar11 * 0x20);\n          pIVar19 = (pCVar2->input_sections_copy_).\n                    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                    ._M_impl._M_start;\n          pIVar16 = pIVar13;\n        }\n        for (; pIVar17 != pIVar6; pIVar6 = pIVar6 + 1) {\n          uVar7 = pIVar6->p2align_;\n          aVar4 = pIVar6->u1_;\n          pIVar13->shndx_ = pIVar6->shndx_;\n          pIVar13->p2align_ = uVar7;\n          pIVar13->u1_ = aVar4;\n          uVar7 = pIVar6->section_order_index_;\n          uVar8 = *(undefined4 *)&pIVar6->field_0x1c;\n          pIVar13->u2_ = pIVar6->u2_;\n          pIVar13->section_order_index_ = uVar7;\n          *(undefined4 *)&pIVar13->field_0x1c = uVar8;\n          pIVar13 = pIVar13 + 1;\n        }\n        if (pIVar19 != (pointer)0x0) {\n          operator_delete(pIVar19);\n        }\n        pIVar17 = (pointer)((long)pIVar16 + lVar20);\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_start = pIVar16;\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish = pIVar17;\n        uVar14 = pCVar2->input_sections_size_;\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_end_of_storage = pIVar16 + uVar11;\n      }\n      if (pIVar16 != pIVar17) {\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish = pIVar16;\n      }\n      pIVar17 = (pCVar2->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 (uVar14 < (ulong)((long)(pCVar2->input_sections_->\n                                 super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                                 )._M_impl._M_finish - (long)pIVar17 >> 5)) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x10fd,"save_input_sections");\n      }\n      if (uVar14 != 0) {\n        uVar11 = 0;\n        do {\n          __position._M_current =\n               (pCVar2->input_sections_copy_).\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               ._M_impl._M_finish;\n          if (__position._M_current ==\n              (pCVar2->input_sections_copy_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_end_of_storage) {\n            std::\n            vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n                      (&pCVar2->input_sections_copy_,__position,pIVar17);\n          }\n          else {\n            uVar7 = pIVar17->p2align_;\n            aVar4 = pIVar17->u1_;\n            (__position._M_current)->shndx_ = pIVar17->shndx_;\n            (__position._M_current)->p2align_ = uVar7;\n            (__position._M_current)->u1_ = aVar4;\n            uVar7 = pIVar17->section_order_index_;\n            uVar8 = *(undefined4 *)&pIVar17->field_0x1c;\n            (__position._M_current)->u2_ = pIVar17->u2_;\n            (__position._M_current)->section_order_index_ = uVar7;\n            *(undefined4 *)&(__position._M_current)->field_0x1c = uVar8;\n            (pCVar2->input_sections_copy_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_finish = __position._M_current + 1;\n          }\n          uVar11 = uVar11 + 1;\n          pIVar17 = pIVar17 + 1;\n        } while (uVar11 < pCVar2->input_sections_size_);\n      }\n    }\n  }" { (ERROR "pIVar17 = (pCVar2->input_sections_copy_).\n              super__Vector_base<gold::" (assignment_expression "pIVar17 = (pCVar2->input_sections_copy_).\n              super__Vector_base<gold" identifier = (binary_expression "(pCVar2->input_sections_copy_).\n              super__Vector_base<gold" (field_expression "(pCVar2->input_sections_copy_).\n              super__Vector_base" (parenthesized_expression "(pCVar2->input_sections_copy_)" ( (field_expression "pCVar2->input_sections_copy_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_finish;" 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              ._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 "pIVar16 = (pCVar2->input_sections_copy_).\n              super__Vector_base<gold::" (assignment_expression "pIVar16 = (pCVar2->input_sections_copy_).\n              super__Vector_base<gold" identifier = (binary_expression "(pCVar2->input_sections_copy_).\n              super__Vector_base<gold" (field_expression "(pCVar2->input_sections_copy_).\n              super__Vector_base" (parenthesized_expression "(pCVar2->input_sections_copy_)" ( (field_expression "pCVar2->input_sections_copy_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start;" 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              ._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) ;))) (expression_statement "uVar11 = pCVar2->input_sections_size_;" (assignment_expression "uVar11 = pCVar2->input_sections_size_" identifier = (field_expression "pCVar2->input_sections_size_" identifier -> field_identifier)) ;) (expression_statement "lVar20 = (long)pIVar17 - (long)pIVar16;" (assignment_expression "lVar20 = (long)pIVar17 - (long)pIVar16" identifier = (binary_expression "(long)pIVar17 - (long)pIVar16" (cast_expression "(long)pIVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pIVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if (uVar11 != lVar20 >> 5) {\n      if (0x7ffffffffffffff < uVar11) {\n                    /* WARNING: Subroutine does not return */\n        std::__throw_length_error("vector::reserve");\n      }\n      uVar14 = uVar11;\n      if ((ulong)((long)(pCVar2->input_sections_copy_).\n                        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                        ._M_impl._M_end_of_storage - (long)pIVar16 >> 5) < uVar11) {\n        pIVar6 = pIVar16;\n        if (uVar11 == 0) {\n          pIVar13 = (pointer)0x0;\n          pIVar19 = pIVar16;\n          pIVar16 = pIVar13;\n        }\n        else {\n          pIVar13 = (pointer)operator_new(uVar11 * 0x20);\n          pIVar19 = (pCVar2->input_sections_copy_).\n                    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                    ._M_impl._M_start;\n          pIVar16 = pIVar13;\n        }\n        for (; pIVar17 != pIVar6; pIVar6 = pIVar6 + 1) {\n          uVar7 = pIVar6->p2align_;\n          aVar4 = pIVar6->u1_;\n          pIVar13->shndx_ = pIVar6->shndx_;\n          pIVar13->p2align_ = uVar7;\n          pIVar13->u1_ = aVar4;\n          uVar7 = pIVar6->section_order_index_;\n          uVar8 = *(undefined4 *)&pIVar6->field_0x1c;\n          pIVar13->u2_ = pIVar6->u2_;\n          pIVar13->section_order_index_ = uVar7;\n          *(undefined4 *)&pIVar13->field_0x1c = uVar8;\n          pIVar13 = pIVar13 + 1;\n        }\n        if (pIVar19 != (pointer)0x0) {\n          operator_delete(pIVar19);\n        }\n        pIVar17 = (pointer)((long)pIVar16 + lVar20);\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_start = pIVar16;\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish = pIVar17;\n        uVar14 = pCVar2->input_sections_size_;\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_end_of_storage = pIVar16 + uVar11;\n      }\n      if (pIVar16 != pIVar17) {\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish = pIVar16;\n      }\n      pIVar17 = (pCVar2->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 (uVar14 < (ulong)((long)(pCVar2->input_sections_->\n                                 super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                                 )._M_impl._M_finish - (long)pIVar17 >> 5)) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x10fd,"save_input_sections");\n      }\n      if (uVar14 != 0) {\n        uVar11 = 0;\n        do {\n          __position._M_current =\n               (pCVar2->input_sections_copy_).\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               ._M_impl._M_finish;\n          if (__position._M_current ==\n              (pCVar2->input_sections_copy_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_end_of_storage) {\n            std::\n            vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n                      (&pCVar2->input_sections_copy_,__position,pIVar17);\n          }\n          else {\n            uVar7 = pIVar17->p2align_;\n            aVar4 = pIVar17->u1_;\n            (__position._M_current)->shndx_ = pIVar17->shndx_;\n            (__position._M_current)->p2align_ = uVar7;\n            (__position._M_current)->u1_ = aVar4;\n            uVar7 = pIVar17->section_order_index_;\n            uVar8 = *(undefined4 *)&pIVar17->field_0x1c;\n            (__position._M_current)->u2_ = pIVar17->u2_;\n            (__position._M_current)->section_order_index_ = uVar7;\n            *(undefined4 *)&(__position._M_current)->field_0x1c = uVar8;\n            (pCVar2->input_sections_copy_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_finish = __position._M_current + 1;\n          }\n          uVar11 = uVar11 + 1;\n          pIVar17 = pIVar17 + 1;\n        } while (uVar11 < pCVar2->input_sections_size_);\n      }\n    }" if (parenthesized_expression "(uVar11 != lVar20 >> 5)" ( (binary_expression "uVar11 != lVar20 >> 5" identifier != (binary_expression "lVar20 >> 5" identifier >> number_literal)) )) (compound_statement "{\n      if (0x7ffffffffffffff < uVar11) {\n                    /* WARNING: Subroutine does not return */\n        std::__throw_length_error("vector::reserve");\n      }\n      uVar14 = uVar11;\n      if ((ulong)((long)(pCVar2->input_sections_copy_).\n                        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                        ._M_impl._M_end_of_storage - (long)pIVar16 >> 5) < uVar11) {\n        pIVar6 = pIVar16;\n        if (uVar11 == 0) {\n          pIVar13 = (pointer)0x0;\n          pIVar19 = pIVar16;\n          pIVar16 = pIVar13;\n        }\n        else {\n          pIVar13 = (pointer)operator_new(uVar11 * 0x20);\n          pIVar19 = (pCVar2->input_sections_copy_).\n                    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                    ._M_impl._M_start;\n          pIVar16 = pIVar13;\n        }\n        for (; pIVar17 != pIVar6; pIVar6 = pIVar6 + 1) {\n          uVar7 = pIVar6->p2align_;\n          aVar4 = pIVar6->u1_;\n          pIVar13->shndx_ = pIVar6->shndx_;\n          pIVar13->p2align_ = uVar7;\n          pIVar13->u1_ = aVar4;\n          uVar7 = pIVar6->section_order_index_;\n          uVar8 = *(undefined4 *)&pIVar6->field_0x1c;\n          pIVar13->u2_ = pIVar6->u2_;\n          pIVar13->section_order_index_ = uVar7;\n          *(undefined4 *)&pIVar13->field_0x1c = uVar8;\n          pIVar13 = pIVar13 + 1;\n        }\n        if (pIVar19 != (pointer)0x0) {\n          operator_delete(pIVar19);\n        }\n        pIVar17 = (pointer)((long)pIVar16 + lVar20);\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_start = pIVar16;\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish = pIVar17;\n        uVar14 = pCVar2->input_sections_size_;\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_end_of_storage = pIVar16 + uVar11;\n      }\n      if (pIVar16 != pIVar17) {\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish = pIVar16;\n      }\n      pIVar17 = (pCVar2->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 (uVar14 < (ulong)((long)(pCVar2->input_sections_->\n                                 super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                                 )._M_impl._M_finish - (long)pIVar17 >> 5)) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x10fd,"save_input_sections");\n      }\n      if (uVar14 != 0) {\n        uVar11 = 0;\n        do {\n          __position._M_current =\n               (pCVar2->input_sections_copy_).\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               ._M_impl._M_finish;\n          if (__position._M_current ==\n              (pCVar2->input_sections_copy_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_end_of_storage) {\n            std::\n            vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n                      (&pCVar2->input_sections_copy_,__position,pIVar17);\n          }\n          else {\n            uVar7 = pIVar17->p2align_;\n            aVar4 = pIVar17->u1_;\n            (__position._M_current)->shndx_ = pIVar17->shndx_;\n            (__position._M_current)->p2align_ = uVar7;\n            (__position._M_current)->u1_ = aVar4;\n            uVar7 = pIVar17->section_order_index_;\n            uVar8 = *(undefined4 *)&pIVar17->field_0x1c;\n            (__position._M_current)->u2_ = pIVar17->u2_;\n            (__position._M_current)->section_order_index_ = uVar7;\n            *(undefined4 *)&(__position._M_current)->field_0x1c = uVar8;\n            (pCVar2->input_sections_copy_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_finish = __position._M_current + 1;\n          }\n          uVar11 = uVar11 + 1;\n          pIVar17 = pIVar17 + 1;\n        } while (uVar11 < pCVar2->input_sections_size_);\n      }\n    }" { (if_statement "if (0x7ffffffffffffff < uVar11) {\n                    /* WARNING: Subroutine does not return */\n        std::__throw_length_error("vector::reserve");\n      }" if (parenthesized_expression "(0x7ffffffffffffff < uVar11)" ( (binary_expression "0x7ffffffffffffff < uVar11" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        std::__throw_length_error("vector::reserve");\n      }" { comment (labeled_statement "std::__throw_length_error("vector::reserve");" statement_identifier : (ERROR ":" :) (expression_statement "__throw_length_error("vector::reserve");" (call_expression "__throw_length_error("vector::reserve")" identifier (argument_list "("vector::reserve")" ( (string_literal ""vector::reserve"" " string_content ") ))) ;)) })) (expression_statement "uVar14 = uVar11;" (assignment_expression "uVar14 = uVar11" identifier = identifier) ;) (if_statement "if ((ulong)((long)(pCVar2->input_sections_copy_).\n                        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                        ._M_impl._M_end_of_storage - (long)pIVar16 >> 5) < uVar11) {\n        pIVar6 = pIVar16;\n        if (uVar11 == 0) {\n          pIVar13 = (pointer)0x0;\n          pIVar19 = pIVar16;\n          pIVar16 = pIVar13;\n        }\n        else {\n          pIVar13 = (pointer)operator_new(uVar11 * 0x20);\n          pIVar19 = (pCVar2->input_sections_copy_).\n                    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                    ._M_impl._M_start;\n          pIVar16 = pIVar13;\n        }\n        for (; pIVar17 != pIVar6; pIVar6 = pIVar6 + 1) {\n          uVar7 = pIVar6->p2align_;\n          aVar4 = pIVar6->u1_;\n          pIVar13->shndx_ = pIVar6->shndx_;\n          pIVar13->p2align_ = uVar7;\n          pIVar13->u1_ = aVar4;\n          uVar7 = pIVar6->section_order_index_;\n          uVar8 = *(undefined4 *)&pIVar6->field_0x1c;\n          pIVar13->u2_ = pIVar6->u2_;\n          pIVar13->section_order_index_ = uVar7;\n          *(undefined4 *)&pIVar13->field_0x1c = uVar8;\n          pIVar13 = pIVar13 + 1;\n        }\n        if (pIVar19 != (pointer)0x0) {\n          operator_delete(pIVar19);\n        }\n        pIVar17 = (pointer)((long)pIVar16 + lVar20);\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_start = pIVar16;\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish = pIVar17;\n        uVar14 = pCVar2->input_sections_size_;\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_end_of_storage = pIVar16 + uVar11;\n      }" if (parenthesized_expression "((ulong)((long)(pCVar2->input_sections_copy_).\n                        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                        ._M_impl._M_end_of_storage - (long)pIVar16 >> 5) < uVar11)" ( (binary_expression "(ulong)((long)(pCVar2->input_sections_copy_).\n                        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                        ._M_impl._M_end_of_storage - (long)pIVar16 >> 5) < uVar11" (call_expression "(ulong)((long)(pCVar2->input_sections_copy_).\n                        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                        ._M_impl._M_end_of_storage - (long)pIVar16 >> 5)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)(pCVar2->input_sections_copy_).\n                        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                        ._M_impl._M_end_of_storage - (long)pIVar16 >> 5)" ( (binary_expression "(long)(pCVar2->input_sections_copy_).\n                        super__Vector_base<gold" (cast_expression "(long)(pCVar2->input_sections_copy_).\n                        super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "(pCVar2->input_sections_copy_).\n                        super__Vector_base" (parenthesized_expression "(pCVar2->input_sections_copy_)" ( (field_expression "pCVar2->input_sections_copy_" identifier -> field_identifier) )) . field_identifier)) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , (ERROR "_std::allocator<gold::Output_section::" identifier : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Input_section>_>\n                        ._M_impl._M_end_of_storage - (long)pIVar16 >> 5" (binary_expression "Input_section>_>\n                        ._M_impl._M_end_of_storage - (long)pIVar16" (field_expression "Input_section>_>\n                        ._M_impl._M_end_of_storage" (field_expression "Input_section>_>\n                        ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(long)pIVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal) ))) < identifier) )) (compound_statement "{\n        pIVar6 = pIVar16;\n        if (uVar11 == 0) {\n          pIVar13 = (pointer)0x0;\n          pIVar19 = pIVar16;\n          pIVar16 = pIVar13;\n        }\n        else {\n          pIVar13 = (pointer)operator_new(uVar11 * 0x20);\n          pIVar19 = (pCVar2->input_sections_copy_).\n                    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                    ._M_impl._M_start;\n          pIVar16 = pIVar13;\n        }\n        for (; pIVar17 != pIVar6; pIVar6 = pIVar6 + 1) {\n          uVar7 = pIVar6->p2align_;\n          aVar4 = pIVar6->u1_;\n          pIVar13->shndx_ = pIVar6->shndx_;\n          pIVar13->p2align_ = uVar7;\n          pIVar13->u1_ = aVar4;\n          uVar7 = pIVar6->section_order_index_;\n          uVar8 = *(undefined4 *)&pIVar6->field_0x1c;\n          pIVar13->u2_ = pIVar6->u2_;\n          pIVar13->section_order_index_ = uVar7;\n          *(undefined4 *)&pIVar13->field_0x1c = uVar8;\n          pIVar13 = pIVar13 + 1;\n        }\n        if (pIVar19 != (pointer)0x0) {\n          operator_delete(pIVar19);\n        }\n        pIVar17 = (pointer)((long)pIVar16 + lVar20);\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_start = pIVar16;\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish = pIVar17;\n        uVar14 = pCVar2->input_sections_size_;\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_end_of_storage = pIVar16 + uVar11;\n      }" { (expression_statement "pIVar6 = pIVar16;" (assignment_expression "pIVar6 = pIVar16" identifier = identifier) ;) (if_statement "if (uVar11 == 0) {\n          pIVar13 = (pointer)0x0;\n          pIVar19 = pIVar16;\n          pIVar16 = pIVar13;\n        }\n        else {\n          pIVar13 = (pointer)operator_new(uVar11 * 0x20);\n          pIVar19 = (pCVar2->input_sections_copy_).\n                    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                    ._M_impl._M_start;\n          pIVar16 = pIVar13;\n        }" if (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) )) (compound_statement "{\n          pIVar13 = (pointer)0x0;\n          pIVar19 = pIVar16;\n          pIVar16 = pIVar13;\n        }" { (expression_statement "pIVar13 = (pointer)0x0;" (assignment_expression "pIVar13 = (pointer)0x0" identifier = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "pIVar19 = pIVar16;" (assignment_expression "pIVar19 = pIVar16" identifier = identifier) ;) (expression_statement "pIVar16 = pIVar13;" (assignment_expression "pIVar16 = pIVar13" identifier = identifier) ;) }) (else_clause "else {\n          pIVar13 = (pointer)operator_new(uVar11 * 0x20);\n          pIVar19 = (pCVar2->input_sections_copy_).\n                    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                    ._M_impl._M_start;\n          pIVar16 = pIVar13;\n        }" else (compound_statement "{\n          pIVar13 = (pointer)operator_new(uVar11 * 0x20);\n          pIVar19 = (pCVar2->input_sections_copy_).\n                    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                    ._M_impl._M_start;\n          pIVar16 = pIVar13;\n        }" { (expression_statement "pIVar13 = (pointer)operator_new(uVar11 * 0x20);" (assignment_expression "pIVar13 = (pointer)operator_new(uVar11 * 0x20)" identifier = (cast_expression "(pointer)operator_new(uVar11 * 0x20)" ( (type_descriptor "pointer" type_identifier) ) (call_expression "operator_new(uVar11 * 0x20)" identifier (argument_list "(uVar11 * 0x20)" ( (binary_expression "uVar11 * 0x20" identifier * number_literal) ))))) ;) (ERROR "pIVar19 = (pCVar2->input_sections_copy_).\n                    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::" (comma_expression "pIVar19 = (pCVar2->input_sections_copy_).\n                    super__Vector_base<gold::Output_section::Input_section,_std" (assignment_expression "pIVar19 = (pCVar2->input_sections_copy_).\n                    super__Vector_base<gold" identifier = (binary_expression "(pCVar2->input_sections_copy_).\n                    super__Vector_base<gold" (field_expression "(pCVar2->input_sections_copy_).\n                    super__Vector_base" (parenthesized_expression "(pCVar2->input_sections_copy_)" ( (field_expression "pCVar2->input_sections_copy_" 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) ;)) (expression_statement "pIVar16 = pIVar13;" (assignment_expression "pIVar16 = pIVar13" identifier = identifier) ;) }))) (for_statement "for (; pIVar17 != pIVar6; pIVar6 = pIVar6 + 1) {\n          uVar7 = pIVar6->p2align_;\n          aVar4 = pIVar6->u1_;\n          pIVar13->shndx_ = pIVar6->shndx_;\n          pIVar13->p2align_ = uVar7;\n          pIVar13->u1_ = aVar4;\n          uVar7 = pIVar6->section_order_index_;\n          uVar8 = *(undefined4 *)&pIVar6->field_0x1c;\n          pIVar13->u2_ = pIVar6->u2_;\n          pIVar13->section_order_index_ = uVar7;\n          *(undefined4 *)&pIVar13->field_0x1c = uVar8;\n          pIVar13 = pIVar13 + 1;\n        }" for ( ; (binary_expression "pIVar17 != pIVar6" identifier != identifier) ; (assignment_expression "pIVar6 = pIVar6 + 1" identifier = (binary_expression "pIVar6 + 1" identifier + number_literal)) ) (compound_statement "{\n          uVar7 = pIVar6->p2align_;\n          aVar4 = pIVar6->u1_;\n          pIVar13->shndx_ = pIVar6->shndx_;\n          pIVar13->p2align_ = uVar7;\n          pIVar13->u1_ = aVar4;\n          uVar7 = pIVar6->section_order_index_;\n          uVar8 = *(undefined4 *)&pIVar6->field_0x1c;\n          pIVar13->u2_ = pIVar6->u2_;\n          pIVar13->section_order_index_ = uVar7;\n          *(undefined4 *)&pIVar13->field_0x1c = uVar8;\n          pIVar13 = pIVar13 + 1;\n        }" { (expression_statement "uVar7 = pIVar6->p2align_;" (assignment_expression "uVar7 = pIVar6->p2align_" identifier = (field_expression "pIVar6->p2align_" identifier -> field_identifier)) ;) (expression_statement "aVar4 = pIVar6->u1_;" (assignment_expression "aVar4 = pIVar6->u1_" identifier = (field_expression "pIVar6->u1_" identifier -> field_identifier)) ;) (expression_statement "pIVar13->shndx_ = pIVar6->shndx_;" (assignment_expression "pIVar13->shndx_ = pIVar6->shndx_" (field_expression "pIVar13->shndx_" identifier -> field_identifier) = (field_expression "pIVar6->shndx_" identifier -> field_identifier)) ;) (expression_statement "pIVar13->p2align_ = uVar7;" (assignment_expression "pIVar13->p2align_ = uVar7" (field_expression "pIVar13->p2align_" identifier -> field_identifier) = identifier) ;) (expression_statement "pIVar13->u1_ = aVar4;" (assignment_expression "pIVar13->u1_ = aVar4" (field_expression "pIVar13->u1_" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar7 = pIVar6->section_order_index_;" (assignment_expression "uVar7 = pIVar6->section_order_index_" identifier = (field_expression "pIVar6->section_order_index_" identifier -> field_identifier)) ;) (expression_statement "uVar8 = *(undefined4 *)&pIVar6->field_0x1c;" (assignment_expression "uVar8 = *(undefined4 *)&pIVar6->field_0x1c" identifier = (pointer_expression "*(undefined4 *)&pIVar6->field_0x1c" * (cast_expression "(undefined4 *)&pIVar6->field_0x1c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar6->field_0x1c" & (field_expression "pIVar6->field_0x1c" identifier -> field_identifier))))) ;) (expression_statement "pIVar13->u2_ = pIVar6->u2_;" (assignment_expression "pIVar13->u2_ = pIVar6->u2_" (field_expression "pIVar13->u2_" identifier -> field_identifier) = (field_expression "pIVar6->u2_" identifier -> field_identifier)) ;) (expression_statement "pIVar13->section_order_index_ = uVar7;" (assignment_expression "pIVar13->section_order_index_ = uVar7" (field_expression "pIVar13->section_order_index_" identifier -> field_identifier) = identifier) ;) (expression_statement "*(undefined4 *)&pIVar13->field_0x1c = uVar8;" (assignment_expression "*(undefined4 *)&pIVar13->field_0x1c = uVar8" (pointer_expression "*(undefined4 *)&pIVar13->field_0x1c" * (cast_expression "(undefined4 *)&pIVar13->field_0x1c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar13->field_0x1c" & (field_expression "pIVar13->field_0x1c" identifier -> field_identifier)))) = identifier) ;) (expression_statement "pIVar13 = pIVar13 + 1;" (assignment_expression "pIVar13 = pIVar13 + 1" identifier = (binary_expression "pIVar13 + 1" identifier + number_literal)) ;) })) (if_statement "if (pIVar19 != (pointer)0x0) {\n          operator_delete(pIVar19);\n        }" if (parenthesized_expression "(pIVar19 != (pointer)0x0)" ( (binary_expression "pIVar19 != (pointer)0x0" identifier != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n          operator_delete(pIVar19);\n        }" { (expression_statement "operator_delete(pIVar19);" (call_expression "operator_delete(pIVar19)" identifier (argument_list "(pIVar19)" ( identifier ))) ;) })) (expression_statement "pIVar17 = (pointer)((long)pIVar16 + lVar20);" (assignment_expression "pIVar17 = (pointer)((long)pIVar16 + lVar20)" identifier = (call_expression "(pointer)((long)pIVar16 + lVar20)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((long)pIVar16 + lVar20)" ( (binary_expression "(long)pIVar16 + lVar20" (cast_expression "(long)pIVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) (ERROR "(pCVar2->input_sections_copy_).\n        super__Vector_base<gold::" (binary_expression "(pCVar2->input_sections_copy_).\n        super__Vector_base<gold" (field_expression "(pCVar2->input_sections_copy_).\n        super__Vector_base" (parenthesized_expression "(pCVar2->input_sections_copy_)" ( (field_expression "pCVar2->input_sections_copy_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_start = pIVar16;" 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        ._M_impl._M_start = pIVar16;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n        ._M_impl._M_start = pIVar16;" (assignment_expression "Input_section>_>\n        ._M_impl._M_start = pIVar16" (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) = identifier) ;))) (ERROR "(pCVar2->input_sections_copy_).\n        super__Vector_base<gold::" (binary_expression "(pCVar2->input_sections_copy_).\n        super__Vector_base<gold" (field_expression "(pCVar2->input_sections_copy_).\n        super__Vector_base" (parenthesized_expression "(pCVar2->input_sections_copy_)" ( (field_expression "pCVar2->input_sections_copy_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish = pIVar17;" 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        ._M_impl._M_finish = pIVar17;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n        ._M_impl._M_finish = pIVar17;" (assignment_expression "Input_section>_>\n        ._M_impl._M_finish = pIVar17" (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) = identifier) ;))) (expression_statement "uVar14 = pCVar2->input_sections_size_;" (assignment_expression "uVar14 = pCVar2->input_sections_size_" identifier = (field_expression "pCVar2->input_sections_size_" identifier -> field_identifier)) ;) (ERROR "(pCVar2->input_sections_copy_).\n        super__Vector_base<gold::" (binary_expression "(pCVar2->input_sections_copy_).\n        super__Vector_base<gold" (field_expression "(pCVar2->input_sections_copy_).\n        super__Vector_base" (parenthesized_expression "(pCVar2->input_sections_copy_)" ( (field_expression "pCVar2->input_sections_copy_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_end_of_storage = pIVar16 + uVar11;" 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        ._M_impl._M_end_of_storage = pIVar16 + uVar11;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n        ._M_impl._M_end_of_storage = pIVar16 + uVar11;" (assignment_expression "Input_section>_>\n        ._M_impl._M_end_of_storage = pIVar16 + uVar11" (field_expression "Input_section>_>\n        ._M_impl._M_end_of_storage" (field_expression "Input_section>_>\n        ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (binary_expression "pIVar16 + uVar11" identifier + identifier)) ;))) })) (if_statement "if (pIVar16 != pIVar17) {\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish = pIVar16;\n      }" if (parenthesized_expression "(pIVar16 != pIVar17)" ( (binary_expression "pIVar16 != pIVar17" identifier != identifier) )) (compound_statement "{\n        (pCVar2->input_sections_copy_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish = pIVar16;\n      }" { (ERROR "(pCVar2->input_sections_copy_).\n        super__Vector_base<gold::" (binary_expression "(pCVar2->input_sections_copy_).\n        super__Vector_base<gold" (field_expression "(pCVar2->input_sections_copy_).\n        super__Vector_base" (parenthesized_expression "(pCVar2->input_sections_copy_)" ( (field_expression "pCVar2->input_sections_copy_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish = pIVar16;" 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        ._M_impl._M_finish = pIVar16;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n        ._M_impl._M_finish = pIVar16;" (assignment_expression "Input_section>_>\n        ._M_impl._M_finish = pIVar16" (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) = identifier) ;))) })) (expression_statement "pIVar17 = (pCVar2->input_sections_->\n                super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                )._M_impl._M_start;" (assignment_expression "pIVar17 = (pCVar2->input_sections_->\n                super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                )._M_impl._M_start" identifier = (field_expression "(pCVar2->input_sections_->\n                super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                )._M_impl._M_start" (field_expression "(pCVar2->input_sections_->\n                super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                )._M_impl" (parenthesized_expression "(pCVar2->input_sections_->\n                super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                )" ( (ERROR "pCVar2->input_sections_->\n                super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "pCVar2->input_sections_->\n                super__Vector_base<gold::Output_section::Input_section,_std" (binary_expression "pCVar2->input_sections_->\n                super__Vector_base<gold" (field_expression "pCVar2->input_sections_->\n                super__Vector_base" (field_expression "pCVar2->input_sections_" identifier -> field_identifier) -> field_identifier) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Input_section>_>" (binary_expression "Input_section>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (uVar14 < (ulong)((long)(pCVar2->input_sections_->\n                                 super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                                 )._M_impl._M_finish - (long)pIVar17 >> 5)) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x10fd,"save_input_sections");\n      }" if (parenthesized_expression "(uVar14 < (ulong)((long)(pCVar2->input_sections_->\n                                 super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                                 )._M_impl._M_finish - (long)pIVar17 >> 5))" ( (binary_expression "uVar14 < (ulong)((long)(pCVar2->input_sections_->\n                                 super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                                 )._M_impl._M_finish - (long)pIVar17 >> 5)" identifier < (call_expression "(ulong)((long)(pCVar2->input_sections_->\n                                 super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                                 )._M_impl._M_finish - (long)pIVar17 >> 5)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)(pCVar2->input_sections_->\n                                 super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                                 )._M_impl._M_finish - (long)pIVar17 >> 5)" ( (binary_expression "(long)(pCVar2->input_sections_->\n                                 super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                                 )._M_impl._M_finish - (long)pIVar17 >> 5" (binary_expression "(long)(pCVar2->input_sections_->\n                                 super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                                 )._M_impl._M_finish - (long)pIVar17" (cast_expression "(long)(pCVar2->input_sections_->\n                                 super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                                 )._M_impl._M_finish" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "(pCVar2->input_sections_->\n                                 super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                                 )._M_impl._M_finish" (field_expression "(pCVar2->input_sections_->\n                                 super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                                 )._M_impl" (parenthesized_expression "(pCVar2->input_sections_->\n                                 super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                                 )" ( (ERROR "pCVar2->input_sections_->\n                                 super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "pCVar2->input_sections_->\n                                 super__Vector_base<gold::Output_section::Input_section,_std" (binary_expression "pCVar2->input_sections_->\n                                 super__Vector_base<gold" (field_expression "pCVar2->input_sections_->\n                                 super__Vector_base" (field_expression "pCVar2->input_sections_" identifier -> field_identifier) -> field_identifier) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Input_section>_>" (binary_expression "Input_section>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) - (cast_expression "(long)pIVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal) )))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x10fd,"save_input_sections");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0x10fd,"save_input_sections");" (call_expression "do_gold_unreachable("../../gold/output.h",0x10fd,"save_input_sections")" identifier (argument_list "("../../gold/output.h",0x10fd,"save_input_sections")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""save_input_sections"" " string_content ") ))) ;) })) (if_statement "if (uVar14 != 0) {\n        uVar11 = 0;\n        do {\n          __position._M_current =\n               (pCVar2->input_sections_copy_).\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               ._M_impl._M_finish;\n          if (__position._M_current ==\n              (pCVar2->input_sections_copy_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_end_of_storage) {\n            std::\n            vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n                      (&pCVar2->input_sections_copy_,__position,pIVar17);\n          }\n          else {\n            uVar7 = pIVar17->p2align_;\n            aVar4 = pIVar17->u1_;\n            (__position._M_current)->shndx_ = pIVar17->shndx_;\n            (__position._M_current)->p2align_ = uVar7;\n            (__position._M_current)->u1_ = aVar4;\n            uVar7 = pIVar17->section_order_index_;\n            uVar8 = *(undefined4 *)&pIVar17->field_0x1c;\n            (__position._M_current)->u2_ = pIVar17->u2_;\n            (__position._M_current)->section_order_index_ = uVar7;\n            *(undefined4 *)&(__position._M_current)->field_0x1c = uVar8;\n            (pCVar2->input_sections_copy_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_finish = __position._M_current + 1;\n          }\n          uVar11 = uVar11 + 1;\n          pIVar17 = pIVar17 + 1;\n        } while (uVar11 < pCVar2->input_sections_size_);\n      }" if (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar11 = 0;\n        do {\n          __position._M_current =\n               (pCVar2->input_sections_copy_).\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               ._M_impl._M_finish;\n          if (__position._M_current ==\n              (pCVar2->input_sections_copy_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_end_of_storage) {\n            std::\n            vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n                      (&pCVar2->input_sections_copy_,__position,pIVar17);\n          }\n          else {\n            uVar7 = pIVar17->p2align_;\n            aVar4 = pIVar17->u1_;\n            (__position._M_current)->shndx_ = pIVar17->shndx_;\n            (__position._M_current)->p2align_ = uVar7;\n            (__position._M_current)->u1_ = aVar4;\n            uVar7 = pIVar17->section_order_index_;\n            uVar8 = *(undefined4 *)&pIVar17->field_0x1c;\n            (__position._M_current)->u2_ = pIVar17->u2_;\n            (__position._M_current)->section_order_index_ = uVar7;\n            *(undefined4 *)&(__position._M_current)->field_0x1c = uVar8;\n            (pCVar2->input_sections_copy_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_finish = __position._M_current + 1;\n          }\n          uVar11 = uVar11 + 1;\n          pIVar17 = pIVar17 + 1;\n        } while (uVar11 < pCVar2->input_sections_size_);\n      }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n          __position._M_current =\n               (pCVar2->input_sections_copy_).\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               ._M_impl._M_finish;\n          if (__position._M_current ==\n              (pCVar2->input_sections_copy_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_end_of_storage) {\n            std::\n            vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n                      (&pCVar2->input_sections_copy_,__position,pIVar17);\n          }\n          else {\n            uVar7 = pIVar17->p2align_;\n            aVar4 = pIVar17->u1_;\n            (__position._M_current)->shndx_ = pIVar17->shndx_;\n            (__position._M_current)->p2align_ = uVar7;\n            (__position._M_current)->u1_ = aVar4;\n            uVar7 = pIVar17->section_order_index_;\n            uVar8 = *(undefined4 *)&pIVar17->field_0x1c;\n            (__position._M_current)->u2_ = pIVar17->u2_;\n            (__position._M_current)->section_order_index_ = uVar7;\n            *(undefined4 *)&(__position._M_current)->field_0x1c = uVar8;\n            (pCVar2->input_sections_copy_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_finish = __position._M_current + 1;\n          }\n          uVar11 = uVar11 + 1;\n          pIVar17 = pIVar17 + 1;\n        } while (uVar11 < pCVar2->input_sections_size_);" do (compound_statement "{\n          __position._M_current =\n               (pCVar2->input_sections_copy_).\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               ._M_impl._M_finish;\n          if (__position._M_current ==\n              (pCVar2->input_sections_copy_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_end_of_storage) {\n            std::\n            vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n                      (&pCVar2->input_sections_copy_,__position,pIVar17);\n          }\n          else {\n            uVar7 = pIVar17->p2align_;\n            aVar4 = pIVar17->u1_;\n            (__position._M_current)->shndx_ = pIVar17->shndx_;\n            (__position._M_current)->p2align_ = uVar7;\n            (__position._M_current)->u1_ = aVar4;\n            uVar7 = pIVar17->section_order_index_;\n            uVar8 = *(undefined4 *)&pIVar17->field_0x1c;\n            (__position._M_current)->u2_ = pIVar17->u2_;\n            (__position._M_current)->section_order_index_ = uVar7;\n            *(undefined4 *)&(__position._M_current)->field_0x1c = uVar8;\n            (pCVar2->input_sections_copy_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_finish = __position._M_current + 1;\n          }\n          uVar11 = uVar11 + 1;\n          pIVar17 = pIVar17 + 1;\n        }" { (ERROR "__position._M_current =\n               (pCVar2->input_sections_copy_).\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::" (comma_expression "__position._M_current =\n               (pCVar2->input_sections_copy_).\n               super__Vector_base<gold::Output_section::Input_section,_std" (assignment_expression "__position._M_current =\n               (pCVar2->input_sections_copy_).\n               super__Vector_base<gold" (field_expression "__position._M_current" identifier . field_identifier) = (binary_expression "(pCVar2->input_sections_copy_).\n               super__Vector_base<gold" (field_expression "(pCVar2->input_sections_copy_).\n               super__Vector_base" (parenthesized_expression "(pCVar2->input_sections_copy_)" ( (field_expression "pCVar2->input_sections_copy_" 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) ;)) (if_statement "if (__position._M_current ==\n              (pCVar2->input_sections_copy_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_end_of_storage) {\n            std::\n            vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n                      (&pCVar2->input_sections_copy_,__position,pIVar17);\n          }\n          else {\n            uVar7 = pIVar17->p2align_;\n            aVar4 = pIVar17->u1_;\n            (__position._M_current)->shndx_ = pIVar17->shndx_;\n            (__position._M_current)->p2align_ = uVar7;\n            (__position._M_current)->u1_ = aVar4;\n            uVar7 = pIVar17->section_order_index_;\n            uVar8 = *(undefined4 *)&pIVar17->field_0x1c;\n            (__position._M_current)->u2_ = pIVar17->u2_;\n            (__position._M_current)->section_order_index_ = uVar7;\n            *(undefined4 *)&(__position._M_current)->field_0x1c = uVar8;\n            (pCVar2->input_sections_copy_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_finish = __position._M_current + 1;\n          }" if (parenthesized_expression "(__position._M_current ==\n              (pCVar2->input_sections_copy_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_end_of_storage)" ( (ERROR "__position._M_current ==\n              (pCVar2->input_sections_copy_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "__position._M_current ==\n              (pCVar2->input_sections_copy_).\n              super__Vector_base<gold::Output_section::Input_section,_std" (binary_expression "__position._M_current ==\n              (pCVar2->input_sections_copy_).\n              super__Vector_base<gold" (field_expression "__position._M_current" identifier . field_identifier) == (binary_expression "(pCVar2->input_sections_copy_).\n              super__Vector_base<gold" (field_expression "(pCVar2->input_sections_copy_).\n              super__Vector_base" (parenthesized_expression "(pCVar2->input_sections_copy_)" ( (field_expression "pCVar2->input_sections_copy_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (field_expression "Input_section>_>\n              ._M_impl._M_end_of_storage" (field_expression "Input_section>_>\n              ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n            std::\n            vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n                      (&pCVar2->input_sections_copy_,__position,pIVar17);\n          }" { (labeled_statement "std::\n            vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n                      (&pCVar2->input_sections_copy_,__position,pIVar17);" statement_identifier (ERROR "::\n            vector<gold:" : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n                      (&pCVar2->input_sections_copy_,__position,pIVar17);" 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            ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n                      (&pCVar2->input_sections_copy_,__position,pIVar17);" statement_identifier (ERROR "::Input_section>_>\n            ::_M_realloc_insert<const_gold:" : : (binary_expression "Input_section>_" identifier > identifier) > : : (binary_expression "_M_realloc_insert<const_gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section&>\n                      (&pCVar2->input_sections_copy_,__position,pIVar17);" statement_identifier : (ERROR ":" :) (expression_statement "Input_section&>\n                      (&pCVar2->input_sections_copy_,__position,pIVar17);" (binary_expression "Input_section&>\n                      (&pCVar2->input_sections_copy_,__position,pIVar17)" identifier (ERROR "&" &) > (parenthesized_expression "(&pCVar2->input_sections_copy_,__position,pIVar17)" ( (comma_expression "&pCVar2->input_sections_copy_,__position,pIVar17" (pointer_expression "&pCVar2->input_sections_copy_" & (field_expression "pCVar2->input_sections_copy_" identifier -> field_identifier)) , (comma_expression "__position,pIVar17" identifier , identifier)) ))) ;))))) }) (else_clause "else {\n            uVar7 = pIVar17->p2align_;\n            aVar4 = pIVar17->u1_;\n            (__position._M_current)->shndx_ = pIVar17->shndx_;\n            (__position._M_current)->p2align_ = uVar7;\n            (__position._M_current)->u1_ = aVar4;\n            uVar7 = pIVar17->section_order_index_;\n            uVar8 = *(undefined4 *)&pIVar17->field_0x1c;\n            (__position._M_current)->u2_ = pIVar17->u2_;\n            (__position._M_current)->section_order_index_ = uVar7;\n            *(undefined4 *)&(__position._M_current)->field_0x1c = uVar8;\n            (pCVar2->input_sections_copy_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_finish = __position._M_current + 1;\n          }" else (compound_statement "{\n            uVar7 = pIVar17->p2align_;\n            aVar4 = pIVar17->u1_;\n            (__position._M_current)->shndx_ = pIVar17->shndx_;\n            (__position._M_current)->p2align_ = uVar7;\n            (__position._M_current)->u1_ = aVar4;\n            uVar7 = pIVar17->section_order_index_;\n            uVar8 = *(undefined4 *)&pIVar17->field_0x1c;\n            (__position._M_current)->u2_ = pIVar17->u2_;\n            (__position._M_current)->section_order_index_ = uVar7;\n            *(undefined4 *)&(__position._M_current)->field_0x1c = uVar8;\n            (pCVar2->input_sections_copy_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_finish = __position._M_current + 1;\n          }" { (expression_statement "uVar7 = pIVar17->p2align_;" (assignment_expression "uVar7 = pIVar17->p2align_" identifier = (field_expression "pIVar17->p2align_" identifier -> field_identifier)) ;) (expression_statement "aVar4 = pIVar17->u1_;" (assignment_expression "aVar4 = pIVar17->u1_" identifier = (field_expression "pIVar17->u1_" identifier -> field_identifier)) ;) (expression_statement "(__position._M_current)->shndx_ = pIVar17->shndx_;" (assignment_expression "(__position._M_current)->shndx_ = pIVar17->shndx_" (field_expression "(__position._M_current)->shndx_" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = (field_expression "pIVar17->shndx_" identifier -> field_identifier)) ;) (expression_statement "(__position._M_current)->p2align_ = uVar7;" (assignment_expression "(__position._M_current)->p2align_ = uVar7" (field_expression "(__position._M_current)->p2align_" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = identifier) ;) (expression_statement "(__position._M_current)->u1_ = aVar4;" (assignment_expression "(__position._M_current)->u1_ = aVar4" (field_expression "(__position._M_current)->u1_" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = identifier) ;) (expression_statement "uVar7 = pIVar17->section_order_index_;" (assignment_expression "uVar7 = pIVar17->section_order_index_" identifier = (field_expression "pIVar17->section_order_index_" identifier -> field_identifier)) ;) (expression_statement "uVar8 = *(undefined4 *)&pIVar17->field_0x1c;" (assignment_expression "uVar8 = *(undefined4 *)&pIVar17->field_0x1c" identifier = (pointer_expression "*(undefined4 *)&pIVar17->field_0x1c" * (cast_expression "(undefined4 *)&pIVar17->field_0x1c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar17->field_0x1c" & (field_expression "pIVar17->field_0x1c" identifier -> field_identifier))))) ;) (expression_statement "(__position._M_current)->u2_ = pIVar17->u2_;" (assignment_expression "(__position._M_current)->u2_ = pIVar17->u2_" (field_expression "(__position._M_current)->u2_" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = (field_expression "pIVar17->u2_" identifier -> field_identifier)) ;) (expression_statement "(__position._M_current)->section_order_index_ = uVar7;" (assignment_expression "(__position._M_current)->section_order_index_ = uVar7" (field_expression "(__position._M_current)->section_order_index_" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = identifier) ;) (expression_statement "*(undefined4 *)&(__position._M_current)->field_0x1c = uVar8;" (assignment_expression "*(undefined4 *)&(__position._M_current)->field_0x1c = uVar8" (pointer_expression "*(undefined4 *)&(__position._M_current)->field_0x1c" * (cast_expression "(undefined4 *)&(__position._M_current)->field_0x1c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(__position._M_current)->field_0x1c" & (field_expression "(__position._M_current)->field_0x1c" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier)))) = identifier) ;) (ERROR "(pCVar2->input_sections_copy_).\n            super__Vector_base<gold::" (binary_expression "(pCVar2->input_sections_copy_).\n            super__Vector_base<gold" (field_expression "(pCVar2->input_sections_copy_).\n            super__Vector_base" (parenthesized_expression "(pCVar2->input_sections_copy_)" ( (field_expression "pCVar2->input_sections_copy_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_finish = __position._M_current + 1;" 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            ._M_impl._M_finish = __position._M_current + 1;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n            ._M_impl._M_finish = __position._M_current + 1;" (assignment_expression "Input_section>_>\n            ._M_impl._M_finish = __position._M_current + 1" (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) = (binary_expression "__position._M_current + 1" (field_expression "__position._M_current" identifier . field_identifier) + number_literal)) ;))) }))) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "pIVar17 = pIVar17 + 1;" (assignment_expression "pIVar17 = pIVar17 + 1" identifier = (binary_expression "pIVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar11 < pCVar2->input_sections_size_)" ( (binary_expression "uVar11 < pCVar2->input_sections_size_" identifier < (field_expression "pCVar2->input_sections_size_" identifier -> field_identifier)) )) ;) })) })) })) (expression_statement "this->lookup_maps_->is_valid_ = false;" (assignment_expression "this->lookup_maps_->is_valid_ = false" (field_expression "this->lookup_maps_->is_valid_" (field_expression "this->lookup_maps_" identifier -> field_identifier) -> field_identifier) = false) ;) (expression_statement "p_Var3 = (this->super_Output_data)._vptr_Output_data[3];" (assignment_expression "p_Var3 = (this->super_Output_data)._vptr_Output_data[3]" identifier = (subscript_expression "(this->super_Output_data)._vptr_Output_data[3]" (field_expression "(this->super_Output_data)._vptr_Output_data" (parenthesized_expression "(this->super_Output_data)" ( (field_expression "this->super_Output_data" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var3 == do_addralign) {\n    uVar10 = this->addralign_;\n  }\n  else {\n    iVar9 = (*p_Var3)(this);\n    uVar10 = CONCAT44(extraout_var_00,iVar9);\n  }" if (parenthesized_expression "(p_Var3 == do_addralign)" ( (binary_expression "p_Var3 == do_addralign" identifier == identifier) )) (compound_statement "{\n    uVar10 = this->addralign_;\n  }" { (expression_statement "uVar10 = this->addralign_;" (assignment_expression "uVar10 = this->addralign_" identifier = (field_expression "this->addralign_" identifier -> field_identifier)) ;) }) (else_clause "else {\n    iVar9 = (*p_Var3)(this);\n    uVar10 = CONCAT44(extraout_var_00,iVar9);\n  }" else (compound_statement "{\n    iVar9 = (*p_Var3)(this);\n    uVar10 = CONCAT44(extraout_var_00,iVar9);\n  }" { (expression_statement "iVar9 = (*p_Var3)(this);" (assignment_expression "iVar9 = (*p_Var3)(this)" identifier = (call_expression "(*p_Var3)(this)" (parenthesized_expression "(*p_Var3)" ( (pointer_expression "*p_Var3" * identifier) )) (argument_list "(this)" ( identifier )))) ;) (expression_statement "uVar10 = CONCAT44(extraout_var_00,iVar9);" (assignment_expression "uVar10 = CONCAT44(extraout_var_00,iVar9)" identifier = (call_expression "CONCAT44(extraout_var_00,iVar9)" identifier (argument_list "(extraout_var_00,iVar9)" ( identifier , identifier )))) ;) }))) (expression_statement "uVar21 = address;" (assignment_expression "uVar21 = address" identifier = identifier) ;) (if_statement "if (uVar10 != 0) {\n    uVar21 = (uVar10 - 1) + address & -uVar10;\n  }" if (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar21 = (uVar10 - 1) + address & -uVar10;\n  }" { (expression_statement "uVar21 = (uVar10 - 1) + address & -uVar10;" (assignment_expression "uVar21 = (uVar10 - 1) + address & -uVar10" identifier = (binary_expression "(uVar10 - 1) + address & -uVar10" (binary_expression "(uVar10 - 1) + address" (parenthesized_expression "(uVar10 - 1)" ( (binary_expression "uVar10 - 1" identifier - number_literal) )) + identifier) & (unary_expression "-uVar10" - identifier))) ;) })) (ERROR "pIVar15 = (this->input_sections_).\n            super__Vector_base<gold::" (assignment_expression "pIVar15 = (this->input_sections_).\n            super__Vector_base<gold" identifier = (binary_expression "(this->input_sections_).\n            super__Vector_base<gold" (field_expression "(this->input_sections_).\n            super__Vector_base" (parenthesized_expression "(this->input_sections_)" ( (field_expression "this->input_sections_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_start;" 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            ._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) ;))) (ERROR "pIVar18 = (this->input_sections_).\n            super__Vector_base<gold::" (assignment_expression "pIVar18 = (this->input_sections_).\n            super__Vector_base<gold" identifier = (binary_expression "(this->input_sections_).\n            super__Vector_base<gold" (field_expression "(this->input_sections_).\n            super__Vector_base" (parenthesized_expression "(this->input_sections_)" ( (field_expression "this->input_sections_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_finish;" 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            ._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 "remaining.\n  super__Vector_base<gold::" (binary_expression "remaining.\n  super__Vector_base<gold" (field_expression "remaining.\n  super__Vector_base" identifier . field_identifier) < identifier) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_start = (pointer)0x0;" 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  ._M_impl._M_start = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n  ._M_impl._M_start = (pointer)0x0;" (assignment_expression "Input_section>_>\n  ._M_impl._M_start = (pointer)0x0" (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) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;))) (ERROR "remaining.\n  super__Vector_base<gold::" (binary_expression "remaining.\n  super__Vector_base<gold" (field_expression "remaining.\n  super__Vector_base" identifier . field_identifier) < identifier) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_finish = (pointer)0x0;" 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  ._M_impl._M_finish = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n  ._M_impl._M_finish = (pointer)0x0;" (assignment_expression "Input_section>_>\n  ._M_impl._M_finish = (pointer)0x0" (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) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;))) (ERROR "remaining.\n  super__Vector_base<gold::" (binary_expression "remaining.\n  super__Vector_base<gold" (field_expression "remaining.\n  super__Vector_base" identifier . field_identifier) < identifier) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_end_of_storage = (pointer)0x0;" 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  ._M_impl._M_end_of_storage = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n  ._M_impl._M_end_of_storage = (pointer)0x0;" (assignment_expression "Input_section>_>\n  ._M_impl._M_end_of_storage = (pointer)0x0" (field_expression "Input_section>_>\n  ._M_impl._M_end_of_storage" (field_expression "Input_section>_>\n  ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;))) (if_statement "if (pIVar15 == pIVar18) {\n    remaining.\n    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    remaining.\n    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    remaining.\n    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ._M_impl._M_start = (pointer)0x0;\n  }\n  else {\n    do {\n      while (pIVar18 = pIVar15, pIVar18->shndx_ != 0xffffffff) {\n                    /* try { // try from 00210145 to 002102fc has its CatchHandler @ 002106dc */\n        this_00 = (_List_node_base *)operator_new(0x30);\n        aVar4 = pIVar18->u1_;\n        this_00[1]._M_next = *(_List_node_base **)pIVar18;\n        this_00[1]._M_prev = (_List_node_base *)aVar4;\n        p_Var5 = *(_List_node_base **)&pIVar18->section_order_index_;\n        *(anon_union_8_4_139239c7_for_u2_ *)(this_00 + 2) = pIVar18->u2_;\n        this_00[2]._M_prev = p_Var5;\n        std::__detail::_List_node_base::_M_hook(this_00,(_List_node_base *)input_sections);\n        psVar1 = &(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_node._M_size;\n        *psVar1 = *psVar1 + 1;\n        pIVar15 = pIVar18 + 1;\n        if ((this->input_sections_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_finish == pIVar18 + 1) goto LAB_00210220;\n      }\n      if (pIVar18->p2align_ == 0) {\n        p_Var3 = (((pIVar18->u2_).posd)->super_Output_data)._vptr_Output_data[3];\n        if (p_Var3 == Output_section_data::do_addralign) {\n          uVar10 = ((pIVar18->u2_).posd)->addralign_;\n        }\n        else {\n                    /* try { // try from 00210530 to 00210531 has its CatchHandler @ 002106dc */\n          iVar9 = (*p_Var3)();\n          uVar10 = CONCAT44(extraout_var,iVar9);\n        }\n      }\n      else {\n        uVar10 = 1L << ((char)pIVar18->p2align_ - 1U & 0x3f);\n      }\n      uVar23 = uVar21;\n      if (((uVar10 != 0) && (uVar23 = (uVar21 - 1) + uVar10 & -uVar10, uVar21 != uVar23)) &&\n         (fill->_M_string_length != 0)) {\n        this_fill.field_2._M_local_buf[0] = '\0';\n        this_fill._M_string_length = 0;\n        uVar11 = uVar23 - uVar21;\n        this_fill._M_dataplus._M_p = (pointer)&this_fill.field_2;\n                    /* try { // try from 002103f8 to 00210515 has its CatchHandler @ 002106e4 */\n        std::string::reserve((string *)&this_fill,uVar11);\n        while (uVar14 = fill->_M_string_length, this_fill._M_string_length + uVar14 <= uVar11) {\n          std::string::_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);\n        }\n        if (this_fill._M_string_length < uVar11) {\n          if (uVar11 - this_fill._M_string_length <= uVar14) {\n            uVar14 = uVar11 - this_fill._M_string_length;\n          }\n                    /* try { // try from 00210551 to 00210555 has its CatchHandler @ 002106e4 */\n          std::string::_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);\n        }\n        aVar12.object = (Relobj *)operator_new(0x58);\n        sVar22 = this_fill._M_string_length;\n        __src = this_fill._M_dataplus;\n        ((aVar12.object)->super_Object).name_._M_dataplus._M_p = (pointer)0x0;\n        ((aVar12.object)->super_Object).input_file_ = (Input_file *)0x0;\n        ((aVar12.object)->super_Object).offset_ = 0;\n        ((aVar12.object)->super_Object).name_._M_string_length = this_fill._M_string_length;\n        ((aVar12.object)->super_Object).name_.field_2._M_allocated_capacity = 0xffffffffffffffff;\n        local_b8 = (Xindex *)this_fill._M_string_length;\n        ((aVar12.object)->super_Object).name_.field_2._M_local_buf[8] =\n             ((aVar12.object)->super_Object).name_.field_2._M_local_buf[8] & 0xe0U | 10;\n        ((aVar12.object)->super_Object)._vptr_Object =\n             (_func_int_varargs **)&PTR__Output_data_const_00445c48;\n        __dest = &((aVar12.object)->super_Object).compressed_sections_;\n        *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_ = __dest;\n        if ((this_fill._M_dataplus._M_p + this_fill._M_string_length != (pointer)0x0) &&\n           (this_fill._M_dataplus._M_p == (pointer)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021068e to 00210692 has its CatchHandler @ 002106d4 */\n          std::__throw_logic_error("basic_string::_M_construct null not valid");\n        }\n        __dnew = this_fill._M_string_length;\n        if (this_fill._M_string_length < 0x10) {\n          if (this_fill._M_string_length == 1) {\n            *(char *)&((aVar12.object)->super_Object).compressed_sections_ =\n                 *this_fill._M_dataplus._M_p;\n          }\n          else if (this_fill._M_string_length != 0) goto LAB_002105af;\n        }\n        else {\n                    /* try { // try from 0021059d to 002105a1 has its CatchHandler @ 002106d4 */\n          __dest = (Compressed_section_map **)\n                   std::string::_M_create\n                             ((string *)&((aVar12.object)->super_Object).shnum_,&__dnew,0);\n          *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_ = __dest;\n          ((aVar12.object)->super_Object).compressed_sections_ = (Compressed_section_map *)__dnew;\nLAB_002105af:\n          memcpy(__dest,__src._M_p,sVar22);\n          local_b8 = (Xindex *)__dnew;\n          __dest = *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_;\n        }\n        local_a8 = (Input_section *)&__dnew;\n        ((aVar12.object)->super_Object).xindex_ = local_b8;\n        *(undefined1 *)((long)__dest + (long)local_b8) = 0;\n        local_40 = 0;\n        __dnew = 0xffffffff;\n        local_50.data_size = 0;\n        local_48.object = aVar12.object;\n        std::\n        vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ::emplace_back<gold::Output_section::Input_section>(&remaining,local_a8);\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)this_fill._M_dataplus._M_p != &this_fill.field_2) {\n          operator_delete(this_fill._M_dataplus._M_p);\n        }\n      }\n      if (remaining.\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          ._M_impl._M_finish ==\n          remaining.\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          ._M_impl._M_end_of_storage) {\n        std::\n        vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n                  (&remaining,\n                   (iterator)\n                   remaining.\n                   super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                   ._M_impl._M_finish,pIVar18);\n      }\n      else {\n        uVar7 = pIVar18->p2align_;\n        aVar4 = pIVar18->u1_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->shndx_ = pIVar18->shndx_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->p2align_ = uVar7;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->u1_ = aVar4;\n        uVar7 = pIVar18->section_order_index_;\n        uVar8 = *(undefined4 *)&pIVar18->field_0x1c;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->u2_ = pIVar18->u2_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->section_order_index_ = uVar7;\n        *(undefined4 *)\n         &(remaining.\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish)->field_0x1c = uVar8;\n        remaining.\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish =\n             remaining.\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_finish + 1;\n      }\n      if ((pIVar18->shndx_ + 4 < 4) &&\n         (pIVar15 = pIVar18, Input_section::finalize_data_size(pIVar18),\n         0xfffffffb < pIVar18->shndx_)) {\n        if (((((pIVar18->u2_).object)->super_Object).name_.field_2._M_local_buf[8] & 2U) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00210693 to 002106af has its CatchHandler @ 002106dc */\n          Input_section::data_size(pIVar15);\n        }\n        sVar22 = (((pIVar18->u2_).object)->super_Object).name_._M_string_length;\n      }\n      else {\n        sVar22 = (pIVar18->u1_).data_size;\n      }\n      uVar21 = sVar22 + uVar23;\n      pIVar15 = pIVar18 + 1;\n    } while ((this->input_sections_).\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_finish != pIVar18 + 1);\nLAB_00210220:\n    pIVar15 = pIVar18 + 1;\n    pIVar18 = (this->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 (parenthesized_expression "(pIVar15 == pIVar18)" ( (binary_expression "pIVar15 == pIVar18" identifier == identifier) )) (compound_statement "{\n    remaining.\n    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    remaining.\n    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    remaining.\n    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ._M_impl._M_start = (pointer)0x0;\n  }" { (ERROR "remaining.\n    super__Vector_base<gold::" (binary_expression "remaining.\n    super__Vector_base<gold" (field_expression "remaining.\n    super__Vector_base" identifier . field_identifier) < identifier) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;" 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    ._M_impl._M_end_of_storage = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;" (assignment_expression "Input_section>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0" (field_expression "Input_section>_>\n    ._M_impl._M_end_of_storage" (field_expression "Input_section>_>\n    ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;))) (ERROR "remaining.\n    super__Vector_base<gold::" (binary_expression "remaining.\n    super__Vector_base<gold" (field_expression "remaining.\n    super__Vector_base" identifier . field_identifier) < identifier) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ._M_impl._M_finish = (pointer)0x0;" 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    ._M_impl._M_finish = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n    ._M_impl._M_finish = (pointer)0x0;" (assignment_expression "Input_section>_>\n    ._M_impl._M_finish = (pointer)0x0" (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) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;))) (ERROR "remaining.\n    super__Vector_base<gold::" (binary_expression "remaining.\n    super__Vector_base<gold" (field_expression "remaining.\n    super__Vector_base" identifier . field_identifier) < identifier) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ._M_impl._M_start = (pointer)0x0;" 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    ._M_impl._M_start = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n    ._M_impl._M_start = (pointer)0x0;" (assignment_expression "Input_section>_>\n    ._M_impl._M_start = (pointer)0x0" (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) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;))) }) (else_clause "else {\n    do {\n      while (pIVar18 = pIVar15, pIVar18->shndx_ != 0xffffffff) {\n                    /* try { // try from 00210145 to 002102fc has its CatchHandler @ 002106dc */\n        this_00 = (_List_node_base *)operator_new(0x30);\n        aVar4 = pIVar18->u1_;\n        this_00[1]._M_next = *(_List_node_base **)pIVar18;\n        this_00[1]._M_prev = (_List_node_base *)aVar4;\n        p_Var5 = *(_List_node_base **)&pIVar18->section_order_index_;\n        *(anon_union_8_4_139239c7_for_u2_ *)(this_00 + 2) = pIVar18->u2_;\n        this_00[2]._M_prev = p_Var5;\n        std::__detail::_List_node_base::_M_hook(this_00,(_List_node_base *)input_sections);\n        psVar1 = &(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_node._M_size;\n        *psVar1 = *psVar1 + 1;\n        pIVar15 = pIVar18 + 1;\n        if ((this->input_sections_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_finish == pIVar18 + 1) goto LAB_00210220;\n      }\n      if (pIVar18->p2align_ == 0) {\n        p_Var3 = (((pIVar18->u2_).posd)->super_Output_data)._vptr_Output_data[3];\n        if (p_Var3 == Output_section_data::do_addralign) {\n          uVar10 = ((pIVar18->u2_).posd)->addralign_;\n        }\n        else {\n                    /* try { // try from 00210530 to 00210531 has its CatchHandler @ 002106dc */\n          iVar9 = (*p_Var3)();\n          uVar10 = CONCAT44(extraout_var,iVar9);\n        }\n      }\n      else {\n        uVar10 = 1L << ((char)pIVar18->p2align_ - 1U & 0x3f);\n      }\n      uVar23 = uVar21;\n      if (((uVar10 != 0) && (uVar23 = (uVar21 - 1) + uVar10 & -uVar10, uVar21 != uVar23)) &&\n         (fill->_M_string_length != 0)) {\n        this_fill.field_2._M_local_buf[0] = '\0';\n        this_fill._M_string_length = 0;\n        uVar11 = uVar23 - uVar21;\n        this_fill._M_dataplus._M_p = (pointer)&this_fill.field_2;\n                    /* try { // try from 002103f8 to 00210515 has its CatchHandler @ 002106e4 */\n        std::string::reserve((string *)&this_fill,uVar11);\n        while (uVar14 = fill->_M_string_length, this_fill._M_string_length + uVar14 <= uVar11) {\n          std::string::_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);\n        }\n        if (this_fill._M_string_length < uVar11) {\n          if (uVar11 - this_fill._M_string_length <= uVar14) {\n            uVar14 = uVar11 - this_fill._M_string_length;\n          }\n                    /* try { // try from 00210551 to 00210555 has its CatchHandler @ 002106e4 */\n          std::string::_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);\n        }\n        aVar12.object = (Relobj *)operator_new(0x58);\n        sVar22 = this_fill._M_string_length;\n        __src = this_fill._M_dataplus;\n        ((aVar12.object)->super_Object).name_._M_dataplus._M_p = (pointer)0x0;\n        ((aVar12.object)->super_Object).input_file_ = (Input_file *)0x0;\n        ((aVar12.object)->super_Object).offset_ = 0;\n        ((aVar12.object)->super_Object).name_._M_string_length = this_fill._M_string_length;\n        ((aVar12.object)->super_Object).name_.field_2._M_allocated_capacity = 0xffffffffffffffff;\n        local_b8 = (Xindex *)this_fill._M_string_length;\n        ((aVar12.object)->super_Object).name_.field_2._M_local_buf[8] =\n             ((aVar12.object)->super_Object).name_.field_2._M_local_buf[8] & 0xe0U | 10;\n        ((aVar12.object)->super_Object)._vptr_Object =\n             (_func_int_varargs **)&PTR__Output_data_const_00445c48;\n        __dest = &((aVar12.object)->super_Object).compressed_sections_;\n        *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_ = __dest;\n        if ((this_fill._M_dataplus._M_p + this_fill._M_string_length != (pointer)0x0) &&\n           (this_fill._M_dataplus._M_p == (pointer)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021068e to 00210692 has its CatchHandler @ 002106d4 */\n          std::__throw_logic_error("basic_string::_M_construct null not valid");\n        }\n        __dnew = this_fill._M_string_length;\n        if (this_fill._M_string_length < 0x10) {\n          if (this_fill._M_string_length == 1) {\n            *(char *)&((aVar12.object)->super_Object).compressed_sections_ =\n                 *this_fill._M_dataplus._M_p;\n          }\n          else if (this_fill._M_string_length != 0) goto LAB_002105af;\n        }\n        else {\n                    /* try { // try from 0021059d to 002105a1 has its CatchHandler @ 002106d4 */\n          __dest = (Compressed_section_map **)\n                   std::string::_M_create\n                             ((string *)&((aVar12.object)->super_Object).shnum_,&__dnew,0);\n          *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_ = __dest;\n          ((aVar12.object)->super_Object).compressed_sections_ = (Compressed_section_map *)__dnew;\nLAB_002105af:\n          memcpy(__dest,__src._M_p,sVar22);\n          local_b8 = (Xindex *)__dnew;\n          __dest = *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_;\n        }\n        local_a8 = (Input_section *)&__dnew;\n        ((aVar12.object)->super_Object).xindex_ = local_b8;\n        *(undefined1 *)((long)__dest + (long)local_b8) = 0;\n        local_40 = 0;\n        __dnew = 0xffffffff;\n        local_50.data_size = 0;\n        local_48.object = aVar12.object;\n        std::\n        vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ::emplace_back<gold::Output_section::Input_section>(&remaining,local_a8);\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)this_fill._M_dataplus._M_p != &this_fill.field_2) {\n          operator_delete(this_fill._M_dataplus._M_p);\n        }\n      }\n      if (remaining.\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          ._M_impl._M_finish ==\n          remaining.\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          ._M_impl._M_end_of_storage) {\n        std::\n        vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n                  (&remaining,\n                   (iterator)\n                   remaining.\n                   super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                   ._M_impl._M_finish,pIVar18);\n      }\n      else {\n        uVar7 = pIVar18->p2align_;\n        aVar4 = pIVar18->u1_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->shndx_ = pIVar18->shndx_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->p2align_ = uVar7;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->u1_ = aVar4;\n        uVar7 = pIVar18->section_order_index_;\n        uVar8 = *(undefined4 *)&pIVar18->field_0x1c;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->u2_ = pIVar18->u2_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->section_order_index_ = uVar7;\n        *(undefined4 *)\n         &(remaining.\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish)->field_0x1c = uVar8;\n        remaining.\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish =\n             remaining.\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_finish + 1;\n      }\n      if ((pIVar18->shndx_ + 4 < 4) &&\n         (pIVar15 = pIVar18, Input_section::finalize_data_size(pIVar18),\n         0xfffffffb < pIVar18->shndx_)) {\n        if (((((pIVar18->u2_).object)->super_Object).name_.field_2._M_local_buf[8] & 2U) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00210693 to 002106af has its CatchHandler @ 002106dc */\n          Input_section::data_size(pIVar15);\n        }\n        sVar22 = (((pIVar18->u2_).object)->super_Object).name_._M_string_length;\n      }\n      else {\n        sVar22 = (pIVar18->u1_).data_size;\n      }\n      uVar21 = sVar22 + uVar23;\n      pIVar15 = pIVar18 + 1;\n    } while ((this->input_sections_).\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_finish != pIVar18 + 1);\nLAB_00210220:\n    pIVar15 = pIVar18 + 1;\n    pIVar18 = (this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start;\n  }" else (compound_statement "{\n    do {\n      while (pIVar18 = pIVar15, pIVar18->shndx_ != 0xffffffff) {\n                    /* try { // try from 00210145 to 002102fc has its CatchHandler @ 002106dc */\n        this_00 = (_List_node_base *)operator_new(0x30);\n        aVar4 = pIVar18->u1_;\n        this_00[1]._M_next = *(_List_node_base **)pIVar18;\n        this_00[1]._M_prev = (_List_node_base *)aVar4;\n        p_Var5 = *(_List_node_base **)&pIVar18->section_order_index_;\n        *(anon_union_8_4_139239c7_for_u2_ *)(this_00 + 2) = pIVar18->u2_;\n        this_00[2]._M_prev = p_Var5;\n        std::__detail::_List_node_base::_M_hook(this_00,(_List_node_base *)input_sections);\n        psVar1 = &(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_node._M_size;\n        *psVar1 = *psVar1 + 1;\n        pIVar15 = pIVar18 + 1;\n        if ((this->input_sections_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_finish == pIVar18 + 1) goto LAB_00210220;\n      }\n      if (pIVar18->p2align_ == 0) {\n        p_Var3 = (((pIVar18->u2_).posd)->super_Output_data)._vptr_Output_data[3];\n        if (p_Var3 == Output_section_data::do_addralign) {\n          uVar10 = ((pIVar18->u2_).posd)->addralign_;\n        }\n        else {\n                    /* try { // try from 00210530 to 00210531 has its CatchHandler @ 002106dc */\n          iVar9 = (*p_Var3)();\n          uVar10 = CONCAT44(extraout_var,iVar9);\n        }\n      }\n      else {\n        uVar10 = 1L << ((char)pIVar18->p2align_ - 1U & 0x3f);\n      }\n      uVar23 = uVar21;\n      if (((uVar10 != 0) && (uVar23 = (uVar21 - 1) + uVar10 & -uVar10, uVar21 != uVar23)) &&\n         (fill->_M_string_length != 0)) {\n        this_fill.field_2._M_local_buf[0] = '\0';\n        this_fill._M_string_length = 0;\n        uVar11 = uVar23 - uVar21;\n        this_fill._M_dataplus._M_p = (pointer)&this_fill.field_2;\n                    /* try { // try from 002103f8 to 00210515 has its CatchHandler @ 002106e4 */\n        std::string::reserve((string *)&this_fill,uVar11);\n        while (uVar14 = fill->_M_string_length, this_fill._M_string_length + uVar14 <= uVar11) {\n          std::string::_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);\n        }\n        if (this_fill._M_string_length < uVar11) {\n          if (uVar11 - this_fill._M_string_length <= uVar14) {\n            uVar14 = uVar11 - this_fill._M_string_length;\n          }\n                    /* try { // try from 00210551 to 00210555 has its CatchHandler @ 002106e4 */\n          std::string::_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);\n        }\n        aVar12.object = (Relobj *)operator_new(0x58);\n        sVar22 = this_fill._M_string_length;\n        __src = this_fill._M_dataplus;\n        ((aVar12.object)->super_Object).name_._M_dataplus._M_p = (pointer)0x0;\n        ((aVar12.object)->super_Object).input_file_ = (Input_file *)0x0;\n        ((aVar12.object)->super_Object).offset_ = 0;\n        ((aVar12.object)->super_Object).name_._M_string_length = this_fill._M_string_length;\n        ((aVar12.object)->super_Object).name_.field_2._M_allocated_capacity = 0xffffffffffffffff;\n        local_b8 = (Xindex *)this_fill._M_string_length;\n        ((aVar12.object)->super_Object).name_.field_2._M_local_buf[8] =\n             ((aVar12.object)->super_Object).name_.field_2._M_local_buf[8] & 0xe0U | 10;\n        ((aVar12.object)->super_Object)._vptr_Object =\n             (_func_int_varargs **)&PTR__Output_data_const_00445c48;\n        __dest = &((aVar12.object)->super_Object).compressed_sections_;\n        *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_ = __dest;\n        if ((this_fill._M_dataplus._M_p + this_fill._M_string_length != (pointer)0x0) &&\n           (this_fill._M_dataplus._M_p == (pointer)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021068e to 00210692 has its CatchHandler @ 002106d4 */\n          std::__throw_logic_error("basic_string::_M_construct null not valid");\n        }\n        __dnew = this_fill._M_string_length;\n        if (this_fill._M_string_length < 0x10) {\n          if (this_fill._M_string_length == 1) {\n            *(char *)&((aVar12.object)->super_Object).compressed_sections_ =\n                 *this_fill._M_dataplus._M_p;\n          }\n          else if (this_fill._M_string_length != 0) goto LAB_002105af;\n        }\n        else {\n                    /* try { // try from 0021059d to 002105a1 has its CatchHandler @ 002106d4 */\n          __dest = (Compressed_section_map **)\n                   std::string::_M_create\n                             ((string *)&((aVar12.object)->super_Object).shnum_,&__dnew,0);\n          *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_ = __dest;\n          ((aVar12.object)->super_Object).compressed_sections_ = (Compressed_section_map *)__dnew;\nLAB_002105af:\n          memcpy(__dest,__src._M_p,sVar22);\n          local_b8 = (Xindex *)__dnew;\n          __dest = *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_;\n        }\n        local_a8 = (Input_section *)&__dnew;\n        ((aVar12.object)->super_Object).xindex_ = local_b8;\n        *(undefined1 *)((long)__dest + (long)local_b8) = 0;\n        local_40 = 0;\n        __dnew = 0xffffffff;\n        local_50.data_size = 0;\n        local_48.object = aVar12.object;\n        std::\n        vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ::emplace_back<gold::Output_section::Input_section>(&remaining,local_a8);\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)this_fill._M_dataplus._M_p != &this_fill.field_2) {\n          operator_delete(this_fill._M_dataplus._M_p);\n        }\n      }\n      if (remaining.\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          ._M_impl._M_finish ==\n          remaining.\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          ._M_impl._M_end_of_storage) {\n        std::\n        vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n                  (&remaining,\n                   (iterator)\n                   remaining.\n                   super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                   ._M_impl._M_finish,pIVar18);\n      }\n      else {\n        uVar7 = pIVar18->p2align_;\n        aVar4 = pIVar18->u1_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->shndx_ = pIVar18->shndx_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->p2align_ = uVar7;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->u1_ = aVar4;\n        uVar7 = pIVar18->section_order_index_;\n        uVar8 = *(undefined4 *)&pIVar18->field_0x1c;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->u2_ = pIVar18->u2_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->section_order_index_ = uVar7;\n        *(undefined4 *)\n         &(remaining.\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish)->field_0x1c = uVar8;\n        remaining.\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish =\n             remaining.\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_finish + 1;\n      }\n      if ((pIVar18->shndx_ + 4 < 4) &&\n         (pIVar15 = pIVar18, Input_section::finalize_data_size(pIVar18),\n         0xfffffffb < pIVar18->shndx_)) {\n        if (((((pIVar18->u2_).object)->super_Object).name_.field_2._M_local_buf[8] & 2U) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00210693 to 002106af has its CatchHandler @ 002106dc */\n          Input_section::data_size(pIVar15);\n        }\n        sVar22 = (((pIVar18->u2_).object)->super_Object).name_._M_string_length;\n      }\n      else {\n        sVar22 = (pIVar18->u1_).data_size;\n      }\n      uVar21 = sVar22 + uVar23;\n      pIVar15 = pIVar18 + 1;\n    } while ((this->input_sections_).\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_finish != pIVar18 + 1);\nLAB_00210220:\n    pIVar15 = pIVar18 + 1;\n    pIVar18 = (this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start;\n  }" { (do_statement "do {\n      while (pIVar18 = pIVar15, pIVar18->shndx_ != 0xffffffff) {\n                    /* try { // try from 00210145 to 002102fc has its CatchHandler @ 002106dc */\n        this_00 = (_List_node_base *)operator_new(0x30);\n        aVar4 = pIVar18->u1_;\n        this_00[1]._M_next = *(_List_node_base **)pIVar18;\n        this_00[1]._M_prev = (_List_node_base *)aVar4;\n        p_Var5 = *(_List_node_base **)&pIVar18->section_order_index_;\n        *(anon_union_8_4_139239c7_for_u2_ *)(this_00 + 2) = pIVar18->u2_;\n        this_00[2]._M_prev = p_Var5;\n        std::__detail::_List_node_base::_M_hook(this_00,(_List_node_base *)input_sections);\n        psVar1 = &(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_node._M_size;\n        *psVar1 = *psVar1 + 1;\n        pIVar15 = pIVar18 + 1;\n        if ((this->input_sections_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_finish == pIVar18 + 1) goto LAB_00210220;\n      }\n      if (pIVar18->p2align_ == 0) {\n        p_Var3 = (((pIVar18->u2_).posd)->super_Output_data)._vptr_Output_data[3];\n        if (p_Var3 == Output_section_data::do_addralign) {\n          uVar10 = ((pIVar18->u2_).posd)->addralign_;\n        }\n        else {\n                    /* try { // try from 00210530 to 00210531 has its CatchHandler @ 002106dc */\n          iVar9 = (*p_Var3)();\n          uVar10 = CONCAT44(extraout_var,iVar9);\n        }\n      }\n      else {\n        uVar10 = 1L << ((char)pIVar18->p2align_ - 1U & 0x3f);\n      }\n      uVar23 = uVar21;\n      if (((uVar10 != 0) && (uVar23 = (uVar21 - 1) + uVar10 & -uVar10, uVar21 != uVar23)) &&\n         (fill->_M_string_length != 0)) {\n        this_fill.field_2._M_local_buf[0] = '\0';\n        this_fill._M_string_length = 0;\n        uVar11 = uVar23 - uVar21;\n        this_fill._M_dataplus._M_p = (pointer)&this_fill.field_2;\n                    /* try { // try from 002103f8 to 00210515 has its CatchHandler @ 002106e4 */\n        std::string::reserve((string *)&this_fill,uVar11);\n        while (uVar14 = fill->_M_string_length, this_fill._M_string_length + uVar14 <= uVar11) {\n          std::string::_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);\n        }\n        if (this_fill._M_string_length < uVar11) {\n          if (uVar11 - this_fill._M_string_length <= uVar14) {\n            uVar14 = uVar11 - this_fill._M_string_length;\n          }\n                    /* try { // try from 00210551 to 00210555 has its CatchHandler @ 002106e4 */\n          std::string::_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);\n        }\n        aVar12.object = (Relobj *)operator_new(0x58);\n        sVar22 = this_fill._M_string_length;\n        __src = this_fill._M_dataplus;\n        ((aVar12.object)->super_Object).name_._M_dataplus._M_p = (pointer)0x0;\n        ((aVar12.object)->super_Object).input_file_ = (Input_file *)0x0;\n        ((aVar12.object)->super_Object).offset_ = 0;\n        ((aVar12.object)->super_Object).name_._M_string_length = this_fill._M_string_length;\n        ((aVar12.object)->super_Object).name_.field_2._M_allocated_capacity = 0xffffffffffffffff;\n        local_b8 = (Xindex *)this_fill._M_string_length;\n        ((aVar12.object)->super_Object).name_.field_2._M_local_buf[8] =\n             ((aVar12.object)->super_Object).name_.field_2._M_local_buf[8] & 0xe0U | 10;\n        ((aVar12.object)->super_Object)._vptr_Object =\n             (_func_int_varargs **)&PTR__Output_data_const_00445c48;\n        __dest = &((aVar12.object)->super_Object).compressed_sections_;\n        *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_ = __dest;\n        if ((this_fill._M_dataplus._M_p + this_fill._M_string_length != (pointer)0x0) &&\n           (this_fill._M_dataplus._M_p == (pointer)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021068e to 00210692 has its CatchHandler @ 002106d4 */\n          std::__throw_logic_error("basic_string::_M_construct null not valid");\n        }\n        __dnew = this_fill._M_string_length;\n        if (this_fill._M_string_length < 0x10) {\n          if (this_fill._M_string_length == 1) {\n            *(char *)&((aVar12.object)->super_Object).compressed_sections_ =\n                 *this_fill._M_dataplus._M_p;\n          }\n          else if (this_fill._M_string_length != 0) goto LAB_002105af;\n        }\n        else {\n                    /* try { // try from 0021059d to 002105a1 has its CatchHandler @ 002106d4 */\n          __dest = (Compressed_section_map **)\n                   std::string::_M_create\n                             ((string *)&((aVar12.object)->super_Object).shnum_,&__dnew,0);\n          *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_ = __dest;\n          ((aVar12.object)->super_Object).compressed_sections_ = (Compressed_section_map *)__dnew;\nLAB_002105af:\n          memcpy(__dest,__src._M_p,sVar22);\n          local_b8 = (Xindex *)__dnew;\n          __dest = *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_;\n        }\n        local_a8 = (Input_section *)&__dnew;\n        ((aVar12.object)->super_Object).xindex_ = local_b8;\n        *(undefined1 *)((long)__dest + (long)local_b8) = 0;\n        local_40 = 0;\n        __dnew = 0xffffffff;\n        local_50.data_size = 0;\n        local_48.object = aVar12.object;\n        std::\n        vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ::emplace_back<gold::Output_section::Input_section>(&remaining,local_a8);\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)this_fill._M_dataplus._M_p != &this_fill.field_2) {\n          operator_delete(this_fill._M_dataplus._M_p);\n        }\n      }\n      if (remaining.\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          ._M_impl._M_finish ==\n          remaining.\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          ._M_impl._M_end_of_storage) {\n        std::\n        vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n                  (&remaining,\n                   (iterator)\n                   remaining.\n                   super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                   ._M_impl._M_finish,pIVar18);\n      }\n      else {\n        uVar7 = pIVar18->p2align_;\n        aVar4 = pIVar18->u1_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->shndx_ = pIVar18->shndx_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->p2align_ = uVar7;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->u1_ = aVar4;\n        uVar7 = pIVar18->section_order_index_;\n        uVar8 = *(undefined4 *)&pIVar18->field_0x1c;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->u2_ = pIVar18->u2_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->section_order_index_ = uVar7;\n        *(undefined4 *)\n         &(remaining.\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish)->field_0x1c = uVar8;\n        remaining.\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish =\n             remaining.\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_finish + 1;\n      }\n      if ((pIVar18->shndx_ + 4 < 4) &&\n         (pIVar15 = pIVar18, Input_section::finalize_data_size(pIVar18),\n         0xfffffffb < pIVar18->shndx_)) {\n        if (((((pIVar18->u2_).object)->super_Object).name_.field_2._M_local_buf[8] & 2U) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00210693 to 002106af has its CatchHandler @ 002106dc */\n          Input_section::data_size(pIVar15);\n        }\n        sVar22 = (((pIVar18->u2_).object)->super_Object).name_._M_string_length;\n      }\n      else {\n        sVar22 = (pIVar18->u1_).data_size;\n      }\n      uVar21 = sVar22 + uVar23;\n      pIVar15 = pIVar18 + 1;\n    } while ((this->input_sections_).\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_finish != pIVar18 + 1);" do (compound_statement "{\n      while (pIVar18 = pIVar15, pIVar18->shndx_ != 0xffffffff) {\n                    /* try { // try from 00210145 to 002102fc has its CatchHandler @ 002106dc */\n        this_00 = (_List_node_base *)operator_new(0x30);\n        aVar4 = pIVar18->u1_;\n        this_00[1]._M_next = *(_List_node_base **)pIVar18;\n        this_00[1]._M_prev = (_List_node_base *)aVar4;\n        p_Var5 = *(_List_node_base **)&pIVar18->section_order_index_;\n        *(anon_union_8_4_139239c7_for_u2_ *)(this_00 + 2) = pIVar18->u2_;\n        this_00[2]._M_prev = p_Var5;\n        std::__detail::_List_node_base::_M_hook(this_00,(_List_node_base *)input_sections);\n        psVar1 = &(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_node._M_size;\n        *psVar1 = *psVar1 + 1;\n        pIVar15 = pIVar18 + 1;\n        if ((this->input_sections_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_finish == pIVar18 + 1) goto LAB_00210220;\n      }\n      if (pIVar18->p2align_ == 0) {\n        p_Var3 = (((pIVar18->u2_).posd)->super_Output_data)._vptr_Output_data[3];\n        if (p_Var3 == Output_section_data::do_addralign) {\n          uVar10 = ((pIVar18->u2_).posd)->addralign_;\n        }\n        else {\n                    /* try { // try from 00210530 to 00210531 has its CatchHandler @ 002106dc */\n          iVar9 = (*p_Var3)();\n          uVar10 = CONCAT44(extraout_var,iVar9);\n        }\n      }\n      else {\n        uVar10 = 1L << ((char)pIVar18->p2align_ - 1U & 0x3f);\n      }\n      uVar23 = uVar21;\n      if (((uVar10 != 0) && (uVar23 = (uVar21 - 1) + uVar10 & -uVar10, uVar21 != uVar23)) &&\n         (fill->_M_string_length != 0)) {\n        this_fill.field_2._M_local_buf[0] = '\0';\n        this_fill._M_string_length = 0;\n        uVar11 = uVar23 - uVar21;\n        this_fill._M_dataplus._M_p = (pointer)&this_fill.field_2;\n                    /* try { // try from 002103f8 to 00210515 has its CatchHandler @ 002106e4 */\n        std::string::reserve((string *)&this_fill,uVar11);\n        while (uVar14 = fill->_M_string_length, this_fill._M_string_length + uVar14 <= uVar11) {\n          std::string::_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);\n        }\n        if (this_fill._M_string_length < uVar11) {\n          if (uVar11 - this_fill._M_string_length <= uVar14) {\n            uVar14 = uVar11 - this_fill._M_string_length;\n          }\n                    /* try { // try from 00210551 to 00210555 has its CatchHandler @ 002106e4 */\n          std::string::_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);\n        }\n        aVar12.object = (Relobj *)operator_new(0x58);\n        sVar22 = this_fill._M_string_length;\n        __src = this_fill._M_dataplus;\n        ((aVar12.object)->super_Object).name_._M_dataplus._M_p = (pointer)0x0;\n        ((aVar12.object)->super_Object).input_file_ = (Input_file *)0x0;\n        ((aVar12.object)->super_Object).offset_ = 0;\n        ((aVar12.object)->super_Object).name_._M_string_length = this_fill._M_string_length;\n        ((aVar12.object)->super_Object).name_.field_2._M_allocated_capacity = 0xffffffffffffffff;\n        local_b8 = (Xindex *)this_fill._M_string_length;\n        ((aVar12.object)->super_Object).name_.field_2._M_local_buf[8] =\n             ((aVar12.object)->super_Object).name_.field_2._M_local_buf[8] & 0xe0U | 10;\n        ((aVar12.object)->super_Object)._vptr_Object =\n             (_func_int_varargs **)&PTR__Output_data_const_00445c48;\n        __dest = &((aVar12.object)->super_Object).compressed_sections_;\n        *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_ = __dest;\n        if ((this_fill._M_dataplus._M_p + this_fill._M_string_length != (pointer)0x0) &&\n           (this_fill._M_dataplus._M_p == (pointer)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021068e to 00210692 has its CatchHandler @ 002106d4 */\n          std::__throw_logic_error("basic_string::_M_construct null not valid");\n        }\n        __dnew = this_fill._M_string_length;\n        if (this_fill._M_string_length < 0x10) {\n          if (this_fill._M_string_length == 1) {\n            *(char *)&((aVar12.object)->super_Object).compressed_sections_ =\n                 *this_fill._M_dataplus._M_p;\n          }\n          else if (this_fill._M_string_length != 0) goto LAB_002105af;\n        }\n        else {\n                    /* try { // try from 0021059d to 002105a1 has its CatchHandler @ 002106d4 */\n          __dest = (Compressed_section_map **)\n                   std::string::_M_create\n                             ((string *)&((aVar12.object)->super_Object).shnum_,&__dnew,0);\n          *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_ = __dest;\n          ((aVar12.object)->super_Object).compressed_sections_ = (Compressed_section_map *)__dnew;\nLAB_002105af:\n          memcpy(__dest,__src._M_p,sVar22);\n          local_b8 = (Xindex *)__dnew;\n          __dest = *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_;\n        }\n        local_a8 = (Input_section *)&__dnew;\n        ((aVar12.object)->super_Object).xindex_ = local_b8;\n        *(undefined1 *)((long)__dest + (long)local_b8) = 0;\n        local_40 = 0;\n        __dnew = 0xffffffff;\n        local_50.data_size = 0;\n        local_48.object = aVar12.object;\n        std::\n        vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ::emplace_back<gold::Output_section::Input_section>(&remaining,local_a8);\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)this_fill._M_dataplus._M_p != &this_fill.field_2) {\n          operator_delete(this_fill._M_dataplus._M_p);\n        }\n      }\n      if (remaining.\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          ._M_impl._M_finish ==\n          remaining.\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          ._M_impl._M_end_of_storage) {\n        std::\n        vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n                  (&remaining,\n                   (iterator)\n                   remaining.\n                   super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                   ._M_impl._M_finish,pIVar18);\n      }\n      else {\n        uVar7 = pIVar18->p2align_;\n        aVar4 = pIVar18->u1_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->shndx_ = pIVar18->shndx_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->p2align_ = uVar7;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->u1_ = aVar4;\n        uVar7 = pIVar18->section_order_index_;\n        uVar8 = *(undefined4 *)&pIVar18->field_0x1c;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->u2_ = pIVar18->u2_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->section_order_index_ = uVar7;\n        *(undefined4 *)\n         &(remaining.\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish)->field_0x1c = uVar8;\n        remaining.\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish =\n             remaining.\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_finish + 1;\n      }\n      if ((pIVar18->shndx_ + 4 < 4) &&\n         (pIVar15 = pIVar18, Input_section::finalize_data_size(pIVar18),\n         0xfffffffb < pIVar18->shndx_)) {\n        if (((((pIVar18->u2_).object)->super_Object).name_.field_2._M_local_buf[8] & 2U) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00210693 to 002106af has its CatchHandler @ 002106dc */\n          Input_section::data_size(pIVar15);\n        }\n        sVar22 = (((pIVar18->u2_).object)->super_Object).name_._M_string_length;\n      }\n      else {\n        sVar22 = (pIVar18->u1_).data_size;\n      }\n      uVar21 = sVar22 + uVar23;\n      pIVar15 = pIVar18 + 1;\n    }" { (while_statement "while (pIVar18 = pIVar15, pIVar18->shndx_ != 0xffffffff) {\n                    /* try { // try from 00210145 to 002102fc has its CatchHandler @ 002106dc */\n        this_00 = (_List_node_base *)operator_new(0x30);\n        aVar4 = pIVar18->u1_;\n        this_00[1]._M_next = *(_List_node_base **)pIVar18;\n        this_00[1]._M_prev = (_List_node_base *)aVar4;\n        p_Var5 = *(_List_node_base **)&pIVar18->section_order_index_;\n        *(anon_union_8_4_139239c7_for_u2_ *)(this_00 + 2) = pIVar18->u2_;\n        this_00[2]._M_prev = p_Var5;\n        std::__detail::_List_node_base::_M_hook(this_00,(_List_node_base *)input_sections);\n        psVar1 = &(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_node._M_size;\n        *psVar1 = *psVar1 + 1;\n        pIVar15 = pIVar18 + 1;\n        if ((this->input_sections_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_finish == pIVar18 + 1) goto LAB_00210220;\n      }" while (parenthesized_expression "(pIVar18 = pIVar15, pIVar18->shndx_ != 0xffffffff)" ( (comma_expression "pIVar18 = pIVar15, pIVar18->shndx_ != 0xffffffff" (assignment_expression "pIVar18 = pIVar15" identifier = identifier) , (binary_expression "pIVar18->shndx_ != 0xffffffff" (field_expression "pIVar18->shndx_" identifier -> field_identifier) != number_literal)) )) (compound_statement "{\n                    /* try { // try from 00210145 to 002102fc has its CatchHandler @ 002106dc */\n        this_00 = (_List_node_base *)operator_new(0x30);\n        aVar4 = pIVar18->u1_;\n        this_00[1]._M_next = *(_List_node_base **)pIVar18;\n        this_00[1]._M_prev = (_List_node_base *)aVar4;\n        p_Var5 = *(_List_node_base **)&pIVar18->section_order_index_;\n        *(anon_union_8_4_139239c7_for_u2_ *)(this_00 + 2) = pIVar18->u2_;\n        this_00[2]._M_prev = p_Var5;\n        std::__detail::_List_node_base::_M_hook(this_00,(_List_node_base *)input_sections);\n        psVar1 = &(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_node._M_size;\n        *psVar1 = *psVar1 + 1;\n        pIVar15 = pIVar18 + 1;\n        if ((this->input_sections_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_finish == pIVar18 + 1) goto LAB_00210220;\n      }" { comment (expression_statement "this_00 = (_List_node_base *)operator_new(0x30);" (assignment_expression "this_00 = (_List_node_base *)operator_new(0x30)" identifier = (cast_expression "(_List_node_base *)operator_new(0x30)" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "aVar4 = pIVar18->u1_;" (assignment_expression "aVar4 = pIVar18->u1_" identifier = (field_expression "pIVar18->u1_" identifier -> field_identifier)) ;) (expression_statement "this_00[1]._M_next = *(_List_node_base **)pIVar18;" (assignment_expression "this_00[1]._M_next = *(_List_node_base **)pIVar18" (field_expression "this_00[1]._M_next" (subscript_expression "this_00[1]" identifier [ number_literal ]) . field_identifier) = (pointer_expression "*(_List_node_base **)pIVar18" * (cast_expression "(_List_node_base **)pIVar18" ( (type_descriptor "_List_node_base **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "this_00[1]._M_prev = (_List_node_base *)aVar4;" (assignment_expression "this_00[1]._M_prev = (_List_node_base *)aVar4" (field_expression "this_00[1]._M_prev" (subscript_expression "this_00[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_List_node_base *)aVar4" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "p_Var5 = *(_List_node_base **)&pIVar18->section_order_index_;" (assignment_expression "p_Var5 = *(_List_node_base **)&pIVar18->section_order_index_" identifier = (pointer_expression "*(_List_node_base **)&pIVar18->section_order_index_" * (cast_expression "(_List_node_base **)&pIVar18->section_order_index_" ( (type_descriptor "_List_node_base **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pIVar18->section_order_index_" & (field_expression "pIVar18->section_order_index_" identifier -> field_identifier))))) ;) (expression_statement "*(anon_union_8_4_139239c7_for_u2_ *)(this_00 + 2) = pIVar18->u2_;" (assignment_expression "*(anon_union_8_4_139239c7_for_u2_ *)(this_00 + 2) = pIVar18->u2_" (pointer_expression "*(anon_union_8_4_139239c7_for_u2_ *)(this_00 + 2)" * (cast_expression "(anon_union_8_4_139239c7_for_u2_ *)(this_00 + 2)" ( (type_descriptor "anon_union_8_4_139239c7_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_00 + 2)" ( (binary_expression "this_00 + 2" identifier + number_literal) )))) = (field_expression "pIVar18->u2_" identifier -> field_identifier)) ;) (expression_statement "this_00[2]._M_prev = p_Var5;" (assignment_expression "this_00[2]._M_prev = p_Var5" (field_expression "this_00[2]._M_prev" (subscript_expression "this_00[2]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (labeled_statement "std::__detail::_List_node_base::_M_hook(this_00,(_List_node_base *)input_sections);" statement_identifier : (ERROR ":" :) (labeled_statement "__detail::_List_node_base::_M_hook(this_00,(_List_node_base *)input_sections);" statement_identifier : (ERROR ":" :) (labeled_statement "_List_node_base::_M_hook(this_00,(_List_node_base *)input_sections);" statement_identifier : (ERROR ":" :) (expression_statement "_M_hook(this_00,(_List_node_base *)input_sections);" (call_expression "_M_hook(this_00,(_List_node_base *)input_sections)" identifier (argument_list "(this_00,(_List_node_base *)input_sections)" ( identifier , (cast_expression "(_List_node_base *)input_sections" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)))) (expression_statement "psVar1 = &(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_node._M_size;" (assignment_expression "psVar1 = &(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_node._M_size" identifier = (pointer_expression "&(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_node._M_size" & (field_expression "(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_node._M_size" (field_expression "(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_node" (field_expression "(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl" (parenthesized_expression "(input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )" ( (ERROR "input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "input_sections->\n                  super__List_base<gold::Output_section::Input_section,_std" (binary_expression "input_sections->\n                  super__List_base<gold" (field_expression "input_sections->\n                  super__List_base" identifier -> field_identifier) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Input_section>_>" (binary_expression "Input_section>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "*psVar1 = *psVar1 + 1;" (assignment_expression "*psVar1 = *psVar1 + 1" (pointer_expression "*psVar1" * identifier) = (binary_expression "*psVar1 + 1" (pointer_expression "*psVar1" * identifier) + number_literal)) ;) (expression_statement "pIVar15 = pIVar18 + 1;" (assignment_expression "pIVar15 = pIVar18 + 1" identifier = (binary_expression "pIVar18 + 1" identifier + number_literal)) ;) (if_statement "if ((this->input_sections_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_finish == pIVar18 + 1) goto LAB_00210220;" if (parenthesized_expression "((this->input_sections_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_finish == pIVar18 + 1)" ( (ERROR "(this->input_sections_).\n            super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "(this->input_sections_).\n            super__Vector_base<gold::Output_section::Input_section,_std" (binary_expression "(this->input_sections_).\n            super__Vector_base<gold" (field_expression "(this->input_sections_).\n            super__Vector_base" (parenthesized_expression "(this->input_sections_)" ( (field_expression "this->input_sections_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Input_section>_>\n            ._M_impl._M_finish == pIVar18 + 1" (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) == (binary_expression "pIVar18 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_00210220;" goto statement_identifier ;)) })) (if_statement "if (pIVar18->p2align_ == 0) {\n        p_Var3 = (((pIVar18->u2_).posd)->super_Output_data)._vptr_Output_data[3];\n        if (p_Var3 == Output_section_data::do_addralign) {\n          uVar10 = ((pIVar18->u2_).posd)->addralign_;\n        }\n        else {\n                    /* try { // try from 00210530 to 00210531 has its CatchHandler @ 002106dc */\n          iVar9 = (*p_Var3)();\n          uVar10 = CONCAT44(extraout_var,iVar9);\n        }\n      }\n      else {\n        uVar10 = 1L << ((char)pIVar18->p2align_ - 1U & 0x3f);\n      }" if (parenthesized_expression "(pIVar18->p2align_ == 0)" ( (binary_expression "pIVar18->p2align_ == 0" (field_expression "pIVar18->p2align_" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n        p_Var3 = (((pIVar18->u2_).posd)->super_Output_data)._vptr_Output_data[3];\n        if (p_Var3 == Output_section_data::do_addralign) {\n          uVar10 = ((pIVar18->u2_).posd)->addralign_;\n        }\n        else {\n                    /* try { // try from 00210530 to 00210531 has its CatchHandler @ 002106dc */\n          iVar9 = (*p_Var3)();\n          uVar10 = CONCAT44(extraout_var,iVar9);\n        }\n      }" { (expression_statement "p_Var3 = (((pIVar18->u2_).posd)->super_Output_data)._vptr_Output_data[3];" (assignment_expression "p_Var3 = (((pIVar18->u2_).posd)->super_Output_data)._vptr_Output_data[3]" identifier = (subscript_expression "(((pIVar18->u2_).posd)->super_Output_data)._vptr_Output_data[3]" (field_expression "(((pIVar18->u2_).posd)->super_Output_data)._vptr_Output_data" (parenthesized_expression "(((pIVar18->u2_).posd)->super_Output_data)" ( (field_expression "((pIVar18->u2_).posd)->super_Output_data" (parenthesized_expression "((pIVar18->u2_).posd)" ( (field_expression "(pIVar18->u2_).posd" (parenthesized_expression "(pIVar18->u2_)" ( (field_expression "pIVar18->u2_" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var3 == Output_section_data::do_addralign) {\n          uVar10 = ((pIVar18->u2_).posd)->addralign_;\n        }\n        else {\n                    /* try { // try from 00210530 to 00210531 has its CatchHandler @ 002106dc */\n          iVar9 = (*p_Var3)();\n          uVar10 = CONCAT44(extraout_var,iVar9);\n        }" if (parenthesized_expression "(p_Var3 == Output_section_data::do_addralign)" ( (binary_expression "p_Var3 == Output_section_data" identifier == identifier) (ERROR "::do_addralign" : : identifier) )) (compound_statement "{\n          uVar10 = ((pIVar18->u2_).posd)->addralign_;\n        }" { (expression_statement "uVar10 = ((pIVar18->u2_).posd)->addralign_;" (assignment_expression "uVar10 = ((pIVar18->u2_).posd)->addralign_" identifier = (field_expression "((pIVar18->u2_).posd)->addralign_" (parenthesized_expression "((pIVar18->u2_).posd)" ( (field_expression "(pIVar18->u2_).posd" (parenthesized_expression "(pIVar18->u2_)" ( (field_expression "pIVar18->u2_" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) }) (else_clause "else {\n                    /* try { // try from 00210530 to 00210531 has its CatchHandler @ 002106dc */\n          iVar9 = (*p_Var3)();\n          uVar10 = CONCAT44(extraout_var,iVar9);\n        }" else (compound_statement "{\n                    /* try { // try from 00210530 to 00210531 has its CatchHandler @ 002106dc */\n          iVar9 = (*p_Var3)();\n          uVar10 = CONCAT44(extraout_var,iVar9);\n        }" { comment (expression_statement "iVar9 = (*p_Var3)();" (assignment_expression "iVar9 = (*p_Var3)()" identifier = (call_expression "(*p_Var3)()" (parenthesized_expression "(*p_Var3)" ( (pointer_expression "*p_Var3" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar10 = CONCAT44(extraout_var,iVar9);" (assignment_expression "uVar10 = CONCAT44(extraout_var,iVar9)" identifier = (call_expression "CONCAT44(extraout_var,iVar9)" identifier (argument_list "(extraout_var,iVar9)" ( identifier , identifier )))) ;) }))) }) (else_clause "else {\n        uVar10 = 1L << ((char)pIVar18->p2align_ - 1U & 0x3f);\n      }" else (compound_statement "{\n        uVar10 = 1L << ((char)pIVar18->p2align_ - 1U & 0x3f);\n      }" { (expression_statement "uVar10 = 1L << ((char)pIVar18->p2align_ - 1U & 0x3f);" (assignment_expression "uVar10 = 1L << ((char)pIVar18->p2align_ - 1U & 0x3f)" identifier = (binary_expression "1L << ((char)pIVar18->p2align_ - 1U & 0x3f)" number_literal << (parenthesized_expression "((char)pIVar18->p2align_ - 1U & 0x3f)" ( (binary_expression "(char)pIVar18->p2align_ - 1U & 0x3f" (binary_expression "(char)pIVar18->p2align_ - 1U" (cast_expression "(char)pIVar18->p2align_" ( (type_descriptor "char" primitive_type) ) (field_expression "pIVar18->p2align_" identifier -> field_identifier)) - number_literal) & number_literal) )))) ;) }))) (expression_statement "uVar23 = uVar21;" (assignment_expression "uVar23 = uVar21" identifier = identifier) ;) (if_statement "if (((uVar10 != 0) && (uVar23 = (uVar21 - 1) + uVar10 & -uVar10, uVar21 != uVar23)) &&\n         (fill->_M_string_length != 0)) {\n        this_fill.field_2._M_local_buf[0] = '\0';\n        this_fill._M_string_length = 0;\n        uVar11 = uVar23 - uVar21;\n        this_fill._M_dataplus._M_p = (pointer)&this_fill.field_2;\n                    /* try { // try from 002103f8 to 00210515 has its CatchHandler @ 002106e4 */\n        std::string::reserve((string *)&this_fill,uVar11);\n        while (uVar14 = fill->_M_string_length, this_fill._M_string_length + uVar14 <= uVar11) {\n          std::string::_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);\n        }\n        if (this_fill._M_string_length < uVar11) {\n          if (uVar11 - this_fill._M_string_length <= uVar14) {\n            uVar14 = uVar11 - this_fill._M_string_length;\n          }\n                    /* try { // try from 00210551 to 00210555 has its CatchHandler @ 002106e4 */\n          std::string::_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);\n        }\n        aVar12.object = (Relobj *)operator_new(0x58);\n        sVar22 = this_fill._M_string_length;\n        __src = this_fill._M_dataplus;\n        ((aVar12.object)->super_Object).name_._M_dataplus._M_p = (pointer)0x0;\n        ((aVar12.object)->super_Object).input_file_ = (Input_file *)0x0;\n        ((aVar12.object)->super_Object).offset_ = 0;\n        ((aVar12.object)->super_Object).name_._M_string_length = this_fill._M_string_length;\n        ((aVar12.object)->super_Object).name_.field_2._M_allocated_capacity = 0xffffffffffffffff;\n        local_b8 = (Xindex *)this_fill._M_string_length;\n        ((aVar12.object)->super_Object).name_.field_2._M_local_buf[8] =\n             ((aVar12.object)->super_Object).name_.field_2._M_local_buf[8] & 0xe0U | 10;\n        ((aVar12.object)->super_Object)._vptr_Object =\n             (_func_int_varargs **)&PTR__Output_data_const_00445c48;\n        __dest = &((aVar12.object)->super_Object).compressed_sections_;\n        *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_ = __dest;\n        if ((this_fill._M_dataplus._M_p + this_fill._M_string_length != (pointer)0x0) &&\n           (this_fill._M_dataplus._M_p == (pointer)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021068e to 00210692 has its CatchHandler @ 002106d4 */\n          std::__throw_logic_error("basic_string::_M_construct null not valid");\n        }\n        __dnew = this_fill._M_string_length;\n        if (this_fill._M_string_length < 0x10) {\n          if (this_fill._M_string_length == 1) {\n            *(char *)&((aVar12.object)->super_Object).compressed_sections_ =\n                 *this_fill._M_dataplus._M_p;\n          }\n          else if (this_fill._M_string_length != 0) goto LAB_002105af;\n        }\n        else {\n                    /* try { // try from 0021059d to 002105a1 has its CatchHandler @ 002106d4 */\n          __dest = (Compressed_section_map **)\n                   std::string::_M_create\n                             ((string *)&((aVar12.object)->super_Object).shnum_,&__dnew,0);\n          *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_ = __dest;\n          ((aVar12.object)->super_Object).compressed_sections_ = (Compressed_section_map *)__dnew;\nLAB_002105af:\n          memcpy(__dest,__src._M_p,sVar22);\n          local_b8 = (Xindex *)__dnew;\n          __dest = *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_;\n        }\n        local_a8 = (Input_section *)&__dnew;\n        ((aVar12.object)->super_Object).xindex_ = local_b8;\n        *(undefined1 *)((long)__dest + (long)local_b8) = 0;\n        local_40 = 0;\n        __dnew = 0xffffffff;\n        local_50.data_size = 0;\n        local_48.object = aVar12.object;\n        std::\n        vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ::emplace_back<gold::Output_section::Input_section>(&remaining,local_a8);\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)this_fill._M_dataplus._M_p != &this_fill.field_2) {\n          operator_delete(this_fill._M_dataplus._M_p);\n        }\n      }" if (parenthesized_expression "(((uVar10 != 0) && (uVar23 = (uVar21 - 1) + uVar10 & -uVar10, uVar21 != uVar23)) &&\n         (fill->_M_string_length != 0))" ( (binary_expression "((uVar10 != 0) && (uVar23 = (uVar21 - 1) + uVar10 & -uVar10, uVar21 != uVar23)) &&\n         (fill->_M_string_length != 0)" (parenthesized_expression "((uVar10 != 0) && (uVar23 = (uVar21 - 1) + uVar10 & -uVar10, uVar21 != uVar23))" ( (binary_expression "(uVar10 != 0) && (uVar23 = (uVar21 - 1) + uVar10 & -uVar10, uVar21 != uVar23)" (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar23 = (uVar21 - 1) + uVar10 & -uVar10, uVar21 != uVar23)" ( (comma_expression "uVar23 = (uVar21 - 1) + uVar10 & -uVar10, uVar21 != uVar23" (assignment_expression "uVar23 = (uVar21 - 1) + uVar10 & -uVar10" identifier = (binary_expression "(uVar21 - 1) + uVar10 & -uVar10" (binary_expression "(uVar21 - 1) + uVar10" (parenthesized_expression "(uVar21 - 1)" ( (binary_expression "uVar21 - 1" identifier - number_literal) )) + identifier) & (unary_expression "-uVar10" - identifier))) , (binary_expression "uVar21 != uVar23" identifier != identifier)) ))) )) && (parenthesized_expression "(fill->_M_string_length != 0)" ( (binary_expression "fill->_M_string_length != 0" (field_expression "fill->_M_string_length" identifier -> field_identifier) != number_literal) ))) )) (compound_statement "{\n        this_fill.field_2._M_local_buf[0] = '\0';\n        this_fill._M_string_length = 0;\n        uVar11 = uVar23 - uVar21;\n        this_fill._M_dataplus._M_p = (pointer)&this_fill.field_2;\n                    /* try { // try from 002103f8 to 00210515 has its CatchHandler @ 002106e4 */\n        std::string::reserve((string *)&this_fill,uVar11);\n        while (uVar14 = fill->_M_string_length, this_fill._M_string_length + uVar14 <= uVar11) {\n          std::string::_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);\n        }\n        if (this_fill._M_string_length < uVar11) {\n          if (uVar11 - this_fill._M_string_length <= uVar14) {\n            uVar14 = uVar11 - this_fill._M_string_length;\n          }\n                    /* try { // try from 00210551 to 00210555 has its CatchHandler @ 002106e4 */\n          std::string::_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);\n        }\n        aVar12.object = (Relobj *)operator_new(0x58);\n        sVar22 = this_fill._M_string_length;\n        __src = this_fill._M_dataplus;\n        ((aVar12.object)->super_Object).name_._M_dataplus._M_p = (pointer)0x0;\n        ((aVar12.object)->super_Object).input_file_ = (Input_file *)0x0;\n        ((aVar12.object)->super_Object).offset_ = 0;\n        ((aVar12.object)->super_Object).name_._M_string_length = this_fill._M_string_length;\n        ((aVar12.object)->super_Object).name_.field_2._M_allocated_capacity = 0xffffffffffffffff;\n        local_b8 = (Xindex *)this_fill._M_string_length;\n        ((aVar12.object)->super_Object).name_.field_2._M_local_buf[8] =\n             ((aVar12.object)->super_Object).name_.field_2._M_local_buf[8] & 0xe0U | 10;\n        ((aVar12.object)->super_Object)._vptr_Object =\n             (_func_int_varargs **)&PTR__Output_data_const_00445c48;\n        __dest = &((aVar12.object)->super_Object).compressed_sections_;\n        *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_ = __dest;\n        if ((this_fill._M_dataplus._M_p + this_fill._M_string_length != (pointer)0x0) &&\n           (this_fill._M_dataplus._M_p == (pointer)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021068e to 00210692 has its CatchHandler @ 002106d4 */\n          std::__throw_logic_error("basic_string::_M_construct null not valid");\n        }\n        __dnew = this_fill._M_string_length;\n        if (this_fill._M_string_length < 0x10) {\n          if (this_fill._M_string_length == 1) {\n            *(char *)&((aVar12.object)->super_Object).compressed_sections_ =\n                 *this_fill._M_dataplus._M_p;\n          }\n          else if (this_fill._M_string_length != 0) goto LAB_002105af;\n        }\n        else {\n                    /* try { // try from 0021059d to 002105a1 has its CatchHandler @ 002106d4 */\n          __dest = (Compressed_section_map **)\n                   std::string::_M_create\n                             ((string *)&((aVar12.object)->super_Object).shnum_,&__dnew,0);\n          *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_ = __dest;\n          ((aVar12.object)->super_Object).compressed_sections_ = (Compressed_section_map *)__dnew;\nLAB_002105af:\n          memcpy(__dest,__src._M_p,sVar22);\n          local_b8 = (Xindex *)__dnew;\n          __dest = *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_;\n        }\n        local_a8 = (Input_section *)&__dnew;\n        ((aVar12.object)->super_Object).xindex_ = local_b8;\n        *(undefined1 *)((long)__dest + (long)local_b8) = 0;\n        local_40 = 0;\n        __dnew = 0xffffffff;\n        local_50.data_size = 0;\n        local_48.object = aVar12.object;\n        std::\n        vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ::emplace_back<gold::Output_section::Input_section>(&remaining,local_a8);\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)this_fill._M_dataplus._M_p != &this_fill.field_2) {\n          operator_delete(this_fill._M_dataplus._M_p);\n        }\n      }" { (expression_statement "this_fill.field_2._M_local_buf[0] = '\0';" (assignment_expression "this_fill.field_2._M_local_buf[0] = '\0'" (subscript_expression "this_fill.field_2._M_local_buf[0]" (field_expression "this_fill.field_2._M_local_buf" (field_expression "this_fill.field_2" identifier . field_identifier) . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "this_fill._M_string_length = 0;" (assignment_expression "this_fill._M_string_length = 0" (field_expression "this_fill._M_string_length" identifier . field_identifier) = number_literal) ;) (expression_statement "uVar11 = uVar23 - uVar21;" (assignment_expression "uVar11 = uVar23 - uVar21" identifier = (binary_expression "uVar23 - uVar21" identifier - identifier)) ;) (expression_statement "this_fill._M_dataplus._M_p = (pointer)&this_fill.field_2;" (assignment_expression "this_fill._M_dataplus._M_p = (pointer)&this_fill.field_2" (field_expression "this_fill._M_dataplus._M_p" (field_expression "this_fill._M_dataplus" identifier . field_identifier) . field_identifier) = (binary_expression "(pointer)&this_fill.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "this_fill.field_2" identifier . field_identifier))) ;) comment (labeled_statement "std::string::reserve((string *)&this_fill,uVar11);" statement_identifier : (ERROR ":" :) (labeled_statement "string::reserve((string *)&this_fill,uVar11);" statement_identifier : (ERROR ":" :) (expression_statement "reserve((string *)&this_fill,uVar11);" (call_expression "reserve((string *)&this_fill,uVar11)" identifier (argument_list "((string *)&this_fill,uVar11)" ( (cast_expression "(string *)&this_fill" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this_fill" & identifier)) , identifier ))) ;))) (while_statement "while (uVar14 = fill->_M_string_length, this_fill._M_string_length + uVar14 <= uVar11) {\n          std::string::_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);\n        }" while (parenthesized_expression "(uVar14 = fill->_M_string_length, this_fill._M_string_length + uVar14 <= uVar11)" ( (comma_expression "uVar14 = fill->_M_string_length, this_fill._M_string_length + uVar14 <= uVar11" (assignment_expression "uVar14 = fill->_M_string_length" identifier = (field_expression "fill->_M_string_length" identifier -> field_identifier)) , (binary_expression "this_fill._M_string_length + uVar14 <= uVar11" (binary_expression "this_fill._M_string_length + uVar14" (field_expression "this_fill._M_string_length" identifier . field_identifier) + identifier) <= identifier)) )) (compound_statement "{\n          std::string::_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);\n        }" { (labeled_statement "std::string::_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);" statement_identifier : (ERROR ":" :) (labeled_statement "string::_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);" statement_identifier : (ERROR ":" :) (expression_statement "_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);" (call_expression "_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14)" identifier (argument_list "((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14)" ( (cast_expression "(string *)&this_fill" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this_fill" & identifier)) , (field_expression "(fill->_M_dataplus)._M_p" (parenthesized_expression "(fill->_M_dataplus)" ( (field_expression "fill->_M_dataplus" identifier -> field_identifier) )) . field_identifier) , identifier ))) ;))) })) (if_statement "if (this_fill._M_string_length < uVar11) {\n          if (uVar11 - this_fill._M_string_length <= uVar14) {\n            uVar14 = uVar11 - this_fill._M_string_length;\n          }\n                    /* try { // try from 00210551 to 00210555 has its CatchHandler @ 002106e4 */\n          std::string::_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);\n        }" if (parenthesized_expression "(this_fill._M_string_length < uVar11)" ( (binary_expression "this_fill._M_string_length < uVar11" (field_expression "this_fill._M_string_length" identifier . field_identifier) < identifier) )) (compound_statement "{\n          if (uVar11 - this_fill._M_string_length <= uVar14) {\n            uVar14 = uVar11 - this_fill._M_string_length;\n          }\n                    /* try { // try from 00210551 to 00210555 has its CatchHandler @ 002106e4 */\n          std::string::_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);\n        }" { (if_statement "if (uVar11 - this_fill._M_string_length <= uVar14) {\n            uVar14 = uVar11 - this_fill._M_string_length;\n          }" if (parenthesized_expression "(uVar11 - this_fill._M_string_length <= uVar14)" ( (binary_expression "uVar11 - this_fill._M_string_length <= uVar14" (binary_expression "uVar11 - this_fill._M_string_length" identifier - (field_expression "this_fill._M_string_length" identifier . field_identifier)) <= identifier) )) (compound_statement "{\n            uVar14 = uVar11 - this_fill._M_string_length;\n          }" { (expression_statement "uVar14 = uVar11 - this_fill._M_string_length;" (assignment_expression "uVar14 = uVar11 - this_fill._M_string_length" identifier = (binary_expression "uVar11 - this_fill._M_string_length" identifier - (field_expression "this_fill._M_string_length" identifier . field_identifier))) ;) })) comment (labeled_statement "std::string::_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);" statement_identifier : (ERROR ":" :) (labeled_statement "string::_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);" statement_identifier : (ERROR ":" :) (expression_statement "_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14);" (call_expression "_M_append((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14)" identifier (argument_list "((string *)&this_fill,(fill->_M_dataplus)._M_p,uVar14)" ( (cast_expression "(string *)&this_fill" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this_fill" & identifier)) , (field_expression "(fill->_M_dataplus)._M_p" (parenthesized_expression "(fill->_M_dataplus)" ( (field_expression "fill->_M_dataplus" identifier -> field_identifier) )) . field_identifier) , identifier ))) ;))) })) (expression_statement "aVar12.object = (Relobj *)operator_new(0x58);" (assignment_expression "aVar12.object = (Relobj *)operator_new(0x58)" (field_expression "aVar12.object" identifier . field_identifier) = (cast_expression "(Relobj *)operator_new(0x58)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x58)" identifier (argument_list "(0x58)" ( number_literal ))))) ;) (expression_statement "sVar22 = this_fill._M_string_length;" (assignment_expression "sVar22 = this_fill._M_string_length" identifier = (field_expression "this_fill._M_string_length" identifier . field_identifier)) ;) (expression_statement "__src = this_fill._M_dataplus;" (assignment_expression "__src = this_fill._M_dataplus" identifier = (field_expression "this_fill._M_dataplus" identifier . field_identifier)) ;) (expression_statement "((aVar12.object)->super_Object).name_._M_dataplus._M_p = (pointer)0x0;" (assignment_expression "((aVar12.object)->super_Object).name_._M_dataplus._M_p = (pointer)0x0" (field_expression "((aVar12.object)->super_Object).name_._M_dataplus._M_p" (field_expression "((aVar12.object)->super_Object).name_._M_dataplus" (field_expression "((aVar12.object)->super_Object).name_" (parenthesized_expression "((aVar12.object)->super_Object)" ( (field_expression "(aVar12.object)->super_Object" (parenthesized_expression "(aVar12.object)" ( (field_expression "aVar12.object" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "((aVar12.object)->super_Object).input_file_ = (Input_file *)0x0;" (assignment_expression "((aVar12.object)->super_Object).input_file_ = (Input_file *)0x0" (field_expression "((aVar12.object)->super_Object).input_file_" (parenthesized_expression "((aVar12.object)->super_Object)" ( (field_expression "(aVar12.object)->super_Object" (parenthesized_expression "(aVar12.object)" ( (field_expression "aVar12.object" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "((aVar12.object)->super_Object).offset_ = 0;" (assignment_expression "((aVar12.object)->super_Object).offset_ = 0" (field_expression "((aVar12.object)->super_Object).offset_" (parenthesized_expression "((aVar12.object)->super_Object)" ( (field_expression "(aVar12.object)->super_Object" (parenthesized_expression "(aVar12.object)" ( (field_expression "aVar12.object" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "((aVar12.object)->super_Object).name_._M_string_length = this_fill._M_string_length;" (assignment_expression "((aVar12.object)->super_Object).name_._M_string_length = this_fill._M_string_length" (field_expression "((aVar12.object)->super_Object).name_._M_string_length" (field_expression "((aVar12.object)->super_Object).name_" (parenthesized_expression "((aVar12.object)->super_Object)" ( (field_expression "(aVar12.object)->super_Object" (parenthesized_expression "(aVar12.object)" ( (field_expression "aVar12.object" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) = (field_expression "this_fill._M_string_length" identifier . field_identifier)) ;) (expression_statement "((aVar12.object)->super_Object).name_.field_2._M_allocated_capacity = 0xffffffffffffffff;" (assignment_expression "((aVar12.object)->super_Object).name_.field_2._M_allocated_capacity = 0xffffffffffffffff" (field_expression "((aVar12.object)->super_Object).name_.field_2._M_allocated_capacity" (field_expression "((aVar12.object)->super_Object).name_.field_2" (field_expression "((aVar12.object)->super_Object).name_" (parenthesized_expression "((aVar12.object)->super_Object)" ( (field_expression "(aVar12.object)->super_Object" (parenthesized_expression "(aVar12.object)" ( (field_expression "aVar12.object" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "local_b8 = (Xindex *)this_fill._M_string_length;" (assignment_expression "local_b8 = (Xindex *)this_fill._M_string_length" identifier = (cast_expression "(Xindex *)this_fill._M_string_length" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this_fill._M_string_length" identifier . field_identifier))) ;) (expression_statement "((aVar12.object)->super_Object).name_.field_2._M_local_buf[8] =\n             ((aVar12.object)->super_Object).name_.field_2._M_local_buf[8] & 0xe0U | 10;" (assignment_expression "((aVar12.object)->super_Object).name_.field_2._M_local_buf[8] =\n             ((aVar12.object)->super_Object).name_.field_2._M_local_buf[8] & 0xe0U | 10" (subscript_expression "((aVar12.object)->super_Object).name_.field_2._M_local_buf[8]" (field_expression "((aVar12.object)->super_Object).name_.field_2._M_local_buf" (field_expression "((aVar12.object)->super_Object).name_.field_2" (field_expression "((aVar12.object)->super_Object).name_" (parenthesized_expression "((aVar12.object)->super_Object)" ( (field_expression "(aVar12.object)->super_Object" (parenthesized_expression "(aVar12.object)" ( (field_expression "aVar12.object" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) [ number_literal ]) = (binary_expression "((aVar12.object)->super_Object).name_.field_2._M_local_buf[8] & 0xe0U | 10" (binary_expression "((aVar12.object)->super_Object).name_.field_2._M_local_buf[8] & 0xe0U" (subscript_expression "((aVar12.object)->super_Object).name_.field_2._M_local_buf[8]" (field_expression "((aVar12.object)->super_Object).name_.field_2._M_local_buf" (field_expression "((aVar12.object)->super_Object).name_.field_2" (field_expression "((aVar12.object)->super_Object).name_" (parenthesized_expression "((aVar12.object)->super_Object)" ( (field_expression "(aVar12.object)->super_Object" (parenthesized_expression "(aVar12.object)" ( (field_expression "aVar12.object" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) [ number_literal ]) & number_literal) | number_literal)) ;) (expression_statement "((aVar12.object)->super_Object)._vptr_Object =\n             (_func_int_varargs **)&PTR__Output_data_const_00445c48;" (assignment_expression "((aVar12.object)->super_Object)._vptr_Object =\n             (_func_int_varargs **)&PTR__Output_data_const_00445c48" (field_expression "((aVar12.object)->super_Object)._vptr_Object" (parenthesized_expression "((aVar12.object)->super_Object)" ( (field_expression "(aVar12.object)->super_Object" (parenthesized_expression "(aVar12.object)" ( (field_expression "aVar12.object" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Output_data_const_00445c48" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Output_data_const_00445c48" & identifier))) ;) (expression_statement "__dest = &((aVar12.object)->super_Object).compressed_sections_;" (assignment_expression "__dest = &((aVar12.object)->super_Object).compressed_sections_" identifier = (pointer_expression "&((aVar12.object)->super_Object).compressed_sections_" & (field_expression "((aVar12.object)->super_Object).compressed_sections_" (parenthesized_expression "((aVar12.object)->super_Object)" ( (field_expression "(aVar12.object)->super_Object" (parenthesized_expression "(aVar12.object)" ( (field_expression "aVar12.object" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))) ;) (expression_statement "*(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_ = __dest;" (assignment_expression "*(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_ = __dest" (pointer_expression "*(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_" * (cast_expression "(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_" ( (type_descriptor "Compressed_section_map ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "&((aVar12.object)->super_Object).shnum_" & (field_expression "((aVar12.object)->super_Object).shnum_" (parenthesized_expression "((aVar12.object)->super_Object)" ( (field_expression "(aVar12.object)->super_Object" (parenthesized_expression "(aVar12.object)" ( (field_expression "aVar12.object" identifier . field_identifier) )) -> field_identifier) )) . field_identifier)))) = identifier) ;) (if_statement "if ((this_fill._M_dataplus._M_p + this_fill._M_string_length != (pointer)0x0) &&\n           (this_fill._M_dataplus._M_p == (pointer)0x0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021068e to 00210692 has its CatchHandler @ 002106d4 */\n          std::__throw_logic_error("basic_string::_M_construct null not valid");\n        }" if (parenthesized_expression "((this_fill._M_dataplus._M_p + this_fill._M_string_length != (pointer)0x0) &&\n           (this_fill._M_dataplus._M_p == (pointer)0x0))" ( (binary_expression "(this_fill._M_dataplus._M_p + this_fill._M_string_length != (pointer)0x0) &&\n           (this_fill._M_dataplus._M_p == (pointer)0x0)" (parenthesized_expression "(this_fill._M_dataplus._M_p + this_fill._M_string_length != (pointer)0x0)" ( (binary_expression "this_fill._M_dataplus._M_p + this_fill._M_string_length != (pointer)0x0" (binary_expression "this_fill._M_dataplus._M_p + this_fill._M_string_length" (field_expression "this_fill._M_dataplus._M_p" (field_expression "this_fill._M_dataplus" identifier . field_identifier) . field_identifier) + (field_expression "this_fill._M_string_length" identifier . field_identifier)) != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) && (parenthesized_expression "(this_fill._M_dataplus._M_p == (pointer)0x0)" ( (binary_expression "this_fill._M_dataplus._M_p == (pointer)0x0" (field_expression "this_fill._M_dataplus._M_p" (field_expression "this_fill._M_dataplus" identifier . field_identifier) . field_identifier) == (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0021068e to 00210692 has its CatchHandler @ 002106d4 */\n          std::__throw_logic_error("basic_string::_M_construct null not valid");\n        }" { comment comment (labeled_statement "std::__throw_logic_error("basic_string::_M_construct null not valid");" statement_identifier : (ERROR ":" :) (expression_statement "__throw_logic_error("basic_string::_M_construct null not valid");" (call_expression "__throw_logic_error("basic_string::_M_construct null not valid")" identifier (argument_list "("basic_string::_M_construct null not valid")" ( (string_literal ""basic_string::_M_construct null not valid"" " string_content ") ))) ;)) })) (expression_statement "__dnew = this_fill._M_string_length;" (assignment_expression "__dnew = this_fill._M_string_length" identifier = (field_expression "this_fill._M_string_length" identifier . field_identifier)) ;) (if_statement "if (this_fill._M_string_length < 0x10) {\n          if (this_fill._M_string_length == 1) {\n            *(char *)&((aVar12.object)->super_Object).compressed_sections_ =\n                 *this_fill._M_dataplus._M_p;\n          }\n          else if (this_fill._M_string_length != 0) goto LAB_002105af;\n        }\n        else {\n                    /* try { // try from 0021059d to 002105a1 has its CatchHandler @ 002106d4 */\n          __dest = (Compressed_section_map **)\n                   std::string::_M_create\n                             ((string *)&((aVar12.object)->super_Object).shnum_,&__dnew,0);\n          *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_ = __dest;\n          ((aVar12.object)->super_Object).compressed_sections_ = (Compressed_section_map *)__dnew;\nLAB_002105af:\n          memcpy(__dest,__src._M_p,sVar22);\n          local_b8 = (Xindex *)__dnew;\n          __dest = *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_;\n        }" if (parenthesized_expression "(this_fill._M_string_length < 0x10)" ( (binary_expression "this_fill._M_string_length < 0x10" (field_expression "this_fill._M_string_length" identifier . field_identifier) < number_literal) )) (compound_statement "{\n          if (this_fill._M_string_length == 1) {\n            *(char *)&((aVar12.object)->super_Object).compressed_sections_ =\n                 *this_fill._M_dataplus._M_p;\n          }\n          else if (this_fill._M_string_length != 0) goto LAB_002105af;\n        }" { (if_statement "if (this_fill._M_string_length == 1) {\n            *(char *)&((aVar12.object)->super_Object).compressed_sections_ =\n                 *this_fill._M_dataplus._M_p;\n          }\n          else if (this_fill._M_string_length != 0) goto LAB_002105af;" if (parenthesized_expression "(this_fill._M_string_length == 1)" ( (binary_expression "this_fill._M_string_length == 1" (field_expression "this_fill._M_string_length" identifier . field_identifier) == number_literal) )) (compound_statement "{\n            *(char *)&((aVar12.object)->super_Object).compressed_sections_ =\n                 *this_fill._M_dataplus._M_p;\n          }" { (expression_statement "*(char *)&((aVar12.object)->super_Object).compressed_sections_ =\n                 *this_fill._M_dataplus._M_p;" (assignment_expression "*(char *)&((aVar12.object)->super_Object).compressed_sections_ =\n                 *this_fill._M_dataplus._M_p" (pointer_expression "*(char *)&((aVar12.object)->super_Object).compressed_sections_" * (cast_expression "(char *)&((aVar12.object)->super_Object).compressed_sections_" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((aVar12.object)->super_Object).compressed_sections_" & (field_expression "((aVar12.object)->super_Object).compressed_sections_" (parenthesized_expression "((aVar12.object)->super_Object)" ( (field_expression "(aVar12.object)->super_Object" (parenthesized_expression "(aVar12.object)" ( (field_expression "aVar12.object" identifier . field_identifier) )) -> field_identifier) )) . field_identifier)))) = (pointer_expression "*this_fill._M_dataplus._M_p" * (field_expression "this_fill._M_dataplus._M_p" (field_expression "this_fill._M_dataplus" identifier . field_identifier) . field_identifier))) ;) }) (else_clause "else if (this_fill._M_string_length != 0) goto LAB_002105af;" else (if_statement "if (this_fill._M_string_length != 0) goto LAB_002105af;" if (parenthesized_expression "(this_fill._M_string_length != 0)" ( (binary_expression "this_fill._M_string_length != 0" (field_expression "this_fill._M_string_length" identifier . field_identifier) != number_literal) )) (goto_statement "goto LAB_002105af;" goto statement_identifier ;)))) }) (else_clause "else {\n                    /* try { // try from 0021059d to 002105a1 has its CatchHandler @ 002106d4 */\n          __dest = (Compressed_section_map **)\n                   std::string::_M_create\n                             ((string *)&((aVar12.object)->super_Object).shnum_,&__dnew,0);\n          *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_ = __dest;\n          ((aVar12.object)->super_Object).compressed_sections_ = (Compressed_section_map *)__dnew;\nLAB_002105af:\n          memcpy(__dest,__src._M_p,sVar22);\n          local_b8 = (Xindex *)__dnew;\n          __dest = *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_;\n        }" else (compound_statement "{\n                    /* try { // try from 0021059d to 002105a1 has its CatchHandler @ 002106d4 */\n          __dest = (Compressed_section_map **)\n                   std::string::_M_create\n                             ((string *)&((aVar12.object)->super_Object).shnum_,&__dnew,0);\n          *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_ = __dest;\n          ((aVar12.object)->super_Object).compressed_sections_ = (Compressed_section_map *)__dnew;\nLAB_002105af:\n          memcpy(__dest,__src._M_p,sVar22);\n          local_b8 = (Xindex *)__dnew;\n          __dest = *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_;\n        }" { comment (ERROR "__dest = (Compressed_section_map **)\n                   std::" (assignment_expression "__dest = (Compressed_section_map **)\n                   std" identifier = (cast_expression "(Compressed_section_map **)\n                   std" ( (type_descriptor "Compressed_section_map **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) : :) (labeled_statement "string::_M_create\n                             ((string *)&((aVar12.object)->super_Object).shnum_,&__dnew,0);" statement_identifier : (ERROR ":" :) (expression_statement "_M_create\n                             ((string *)&((aVar12.object)->super_Object).shnum_,&__dnew,0);" (call_expression "_M_create\n                             ((string *)&((aVar12.object)->super_Object).shnum_,&__dnew,0)" identifier (argument_list "((string *)&((aVar12.object)->super_Object).shnum_,&__dnew,0)" ( (cast_expression "(string *)&((aVar12.object)->super_Object).shnum_" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((aVar12.object)->super_Object).shnum_" & (field_expression "((aVar12.object)->super_Object).shnum_" (parenthesized_expression "((aVar12.object)->super_Object)" ( (field_expression "(aVar12.object)->super_Object" (parenthesized_expression "(aVar12.object)" ( (field_expression "aVar12.object" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))) , (pointer_expression "&__dnew" & identifier) , number_literal ))) ;)) (expression_statement "*(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_ = __dest;" (assignment_expression "*(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_ = __dest" (pointer_expression "*(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_" * (cast_expression "(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_" ( (type_descriptor "Compressed_section_map ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "&((aVar12.object)->super_Object).shnum_" & (field_expression "((aVar12.object)->super_Object).shnum_" (parenthesized_expression "((aVar12.object)->super_Object)" ( (field_expression "(aVar12.object)->super_Object" (parenthesized_expression "(aVar12.object)" ( (field_expression "aVar12.object" identifier . field_identifier) )) -> field_identifier) )) . field_identifier)))) = identifier) ;) (expression_statement "((aVar12.object)->super_Object).compressed_sections_ = (Compressed_section_map *)__dnew;" (assignment_expression "((aVar12.object)->super_Object).compressed_sections_ = (Compressed_section_map *)__dnew" (field_expression "((aVar12.object)->super_Object).compressed_sections_" (parenthesized_expression "((aVar12.object)->super_Object)" ( (field_expression "(aVar12.object)->super_Object" (parenthesized_expression "(aVar12.object)" ( (field_expression "aVar12.object" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = (cast_expression "(Compressed_section_map *)__dnew" ( (type_descriptor "Compressed_section_map *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "LAB_002105af:\n          memcpy(__dest,__src._M_p,sVar22);" statement_identifier : (expression_statement "memcpy(__dest,__src._M_p,sVar22);" (call_expression "memcpy(__dest,__src._M_p,sVar22)" identifier (argument_list "(__dest,__src._M_p,sVar22)" ( identifier , (field_expression "__src._M_p" identifier . field_identifier) , identifier ))) ;)) (expression_statement "local_b8 = (Xindex *)__dnew;" (assignment_expression "local_b8 = (Xindex *)__dnew" identifier = (cast_expression "(Xindex *)__dnew" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "__dest = *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_;" (assignment_expression "__dest = *(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_" identifier = (pointer_expression "*(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_" * (cast_expression "(Compressed_section_map ***)&((aVar12.object)->super_Object).shnum_" ( (type_descriptor "Compressed_section_map ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "&((aVar12.object)->super_Object).shnum_" & (field_expression "((aVar12.object)->super_Object).shnum_" (parenthesized_expression "((aVar12.object)->super_Object)" ( (field_expression "(aVar12.object)->super_Object" (parenthesized_expression "(aVar12.object)" ( (field_expression "aVar12.object" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))))) ;) }))) (expression_statement "local_a8 = (Input_section *)&__dnew;" (assignment_expression "local_a8 = (Input_section *)&__dnew" identifier = (cast_expression "(Input_section *)&__dnew" ( (type_descriptor "Input_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&__dnew" & identifier))) ;) (expression_statement "((aVar12.object)->super_Object).xindex_ = local_b8;" (assignment_expression "((aVar12.object)->super_Object).xindex_ = local_b8" (field_expression "((aVar12.object)->super_Object).xindex_" (parenthesized_expression "((aVar12.object)->super_Object)" ( (field_expression "(aVar12.object)->super_Object" (parenthesized_expression "(aVar12.object)" ( (field_expression "aVar12.object" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "*(undefined1 *)((long)__dest + (long)local_b8) = 0;" (assignment_expression "*(undefined1 *)((long)__dest + (long)local_b8) = 0" (pointer_expression "*(undefined1 *)((long)__dest + (long)local_b8)" * (cast_expression "(undefined1 *)((long)__dest + (long)local_b8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__dest + (long)local_b8)" ( (binary_expression "(long)__dest + (long)local_b8" (cast_expression "(long)__dest" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(long)local_b8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "__dnew = 0xffffffff;" (assignment_expression "__dnew = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_50.data_size = 0;" (assignment_expression "local_50.data_size = 0" (field_expression "local_50.data_size" identifier . field_identifier) = number_literal) ;) (expression_statement "local_48.object = aVar12.object;" (assignment_expression "local_48.object = aVar12.object" (field_expression "local_48.object" identifier . field_identifier) = (field_expression "aVar12.object" identifier . field_identifier)) ;) (labeled_statement "std::\n        vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ::emplace_back<gold::Output_section::Input_section>(&remaining,local_a8);" statement_identifier (ERROR "::\n        vector<gold:" : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ::emplace_back<gold::Output_section::Input_section>(&remaining,local_a8);" 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        ::emplace_back<gold::Output_section::Input_section>(&remaining,local_a8);" statement_identifier (ERROR "::Input_section>_>\n        ::emplace_back<gold:" : : (binary_expression "Input_section>_" identifier > identifier) > : : (binary_expression "emplace_back<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section>(&remaining,local_a8);" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>(&remaining,local_a8);" (binary_expression "Input_section>(&remaining,local_a8)" identifier > (parenthesized_expression "(&remaining,local_a8)" ( (comma_expression "&remaining,local_a8" (pointer_expression "&remaining" & identifier) , identifier) ))) ;))))) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)this_fill._M_dataplus._M_p != &this_fill.field_2) {\n          operator_delete(this_fill._M_dataplus._M_p);\n        }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)this_fill._M_dataplus._M_p != &this_fill.field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)this_fill._M_dataplus._M_p != &this_fill.field_2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n             *)this_fill._M_dataplus._M_p != &this_fill.field_2" (binary_expression "allocator<char>_>_9\n             *)this_fill._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n             *)this_fill._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "this_fill._M_dataplus._M_p" (field_expression "this_fill._M_dataplus" identifier . field_identifier) . field_identifier))) != (pointer_expression "&this_fill.field_2" & (field_expression "this_fill.field_2" identifier . field_identifier))) )) )) (compound_statement "{\n          operator_delete(this_fill._M_dataplus._M_p);\n        }" { (expression_statement "operator_delete(this_fill._M_dataplus._M_p);" (call_expression "operator_delete(this_fill._M_dataplus._M_p)" identifier (argument_list "(this_fill._M_dataplus._M_p)" ( (field_expression "this_fill._M_dataplus._M_p" (field_expression "this_fill._M_dataplus" identifier . field_identifier) . field_identifier) ))) ;) })) })) (if_statement "if (remaining.\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          ._M_impl._M_finish ==\n          remaining.\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          ._M_impl._M_end_of_storage) {\n        std::\n        vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n                  (&remaining,\n                   (iterator)\n                   remaining.\n                   super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                   ._M_impl._M_finish,pIVar18);\n      }\n      else {\n        uVar7 = pIVar18->p2align_;\n        aVar4 = pIVar18->u1_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->shndx_ = pIVar18->shndx_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->p2align_ = uVar7;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->u1_ = aVar4;\n        uVar7 = pIVar18->section_order_index_;\n        uVar8 = *(undefined4 *)&pIVar18->field_0x1c;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->u2_ = pIVar18->u2_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->section_order_index_ = uVar7;\n        *(undefined4 *)\n         &(remaining.\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish)->field_0x1c = uVar8;\n        remaining.\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish =\n             remaining.\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_finish + 1;\n      }" if (parenthesized_expression "(remaining.\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          ._M_impl._M_finish ==\n          remaining.\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          ._M_impl._M_end_of_storage)" ( (ERROR "remaining.\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          ._M_impl._M_finish ==\n          remaining.\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "remaining.\n          super__Vector_base<gold::Output_section::Input_section,_std" (binary_expression "remaining.\n          super__Vector_base<gold" (field_expression "remaining.\n          super__Vector_base" identifier . field_identifier) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : : (binary_expression "Input_section>_>\n          ._M_impl._M_finish ==\n          remaining.\n          super__Vector_base<gold" (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) == (binary_expression "remaining.\n          super__Vector_base<gold" (field_expression "remaining.\n          super__Vector_base" identifier . field_identifier) < identifier)) : : identifier : : (comma_expression "Input_section,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (field_expression "Input_section>_>\n          ._M_impl._M_end_of_storage" (field_expression "Input_section>_>\n          ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n        std::\n        vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n                  (&remaining,\n                   (iterator)\n                   remaining.\n                   super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                   ._M_impl._M_finish,pIVar18);\n      }" { (labeled_statement "std::\n        vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n                  (&remaining,\n                   (iterator)\n                   remaining.\n                   super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                   ._M_impl._M_finish,pIVar18);" statement_identifier (ERROR "::\n        vector<gold:" : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n                  (&remaining,\n                   (iterator)\n                   remaining.\n                   super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                   ._M_impl._M_finish,pIVar18);" 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        ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n                  (&remaining,\n                   (iterator)\n                   remaining.\n                   super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                   ._M_impl._M_finish,pIVar18);" statement_identifier (ERROR "::Input_section>_>\n        ::_M_realloc_insert<const_gold:" : : (binary_expression "Input_section>_" identifier > identifier) > : : (binary_expression "_M_realloc_insert<const_gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section&>\n                  (&remaining,\n                   (iterator)\n                   remaining.\n                   super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                   ._M_impl._M_finish,pIVar18);" statement_identifier (ERROR "::Input_section&>\n                  (&remaining,\n                   (iterator)\n                   remaining.\n                   super__Vector_base<gold:" : : identifier (ERROR "&" &) > ( (comma_expression "&remaining,\n                   (iterator)\n                   remaining.\n                   super__Vector_base<gold" (pointer_expression "&remaining" & identifier) , (binary_expression "(iterator)\n                   remaining.\n                   super__Vector_base<gold" (cast_expression "(iterator)\n                   remaining.\n                   super__Vector_base" ( (type_descriptor "iterator" type_identifier) ) (field_expression "remaining.\n                   super__Vector_base" identifier . field_identifier)) < identifier)) :) : (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                   ._M_impl._M_finish,pIVar18);" 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                   ._M_impl._M_finish,pIVar18);" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n                   ._M_impl._M_finish,pIVar18);" (comma_expression "Input_section>_>\n                   ._M_impl._M_finish,pIVar18" (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) , identifier) (ERROR ")" )) ;))))))) }) (else_clause "else {\n        uVar7 = pIVar18->p2align_;\n        aVar4 = pIVar18->u1_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->shndx_ = pIVar18->shndx_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->p2align_ = uVar7;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->u1_ = aVar4;\n        uVar7 = pIVar18->section_order_index_;\n        uVar8 = *(undefined4 *)&pIVar18->field_0x1c;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->u2_ = pIVar18->u2_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->section_order_index_ = uVar7;\n        *(undefined4 *)\n         &(remaining.\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish)->field_0x1c = uVar8;\n        remaining.\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish =\n             remaining.\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_finish + 1;\n      }" else (compound_statement "{\n        uVar7 = pIVar18->p2align_;\n        aVar4 = pIVar18->u1_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->shndx_ = pIVar18->shndx_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->p2align_ = uVar7;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->u1_ = aVar4;\n        uVar7 = pIVar18->section_order_index_;\n        uVar8 = *(undefined4 *)&pIVar18->field_0x1c;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->u2_ = pIVar18->u2_;\n        (remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->section_order_index_ = uVar7;\n        *(undefined4 *)\n         &(remaining.\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish)->field_0x1c = uVar8;\n        remaining.\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish =\n             remaining.\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_finish + 1;\n      }" { (expression_statement "uVar7 = pIVar18->p2align_;" (assignment_expression "uVar7 = pIVar18->p2align_" identifier = (field_expression "pIVar18->p2align_" identifier -> field_identifier)) ;) (expression_statement "aVar4 = pIVar18->u1_;" (assignment_expression "aVar4 = pIVar18->u1_" identifier = (field_expression "pIVar18->u1_" identifier -> field_identifier)) ;) (expression_statement "(remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->shndx_ = pIVar18->shndx_;" (assignment_expression "(remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->shndx_ = pIVar18->shndx_" (field_expression "(remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->shndx_" (parenthesized_expression "(remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)" ( (ERROR "remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std" (binary_expression "remaining.\n         super__Vector_base<gold" (field_expression "remaining.\n         super__Vector_base" identifier . field_identifier) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (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) )) -> field_identifier) = (field_expression "pIVar18->shndx_" identifier -> field_identifier)) ;) (expression_statement "(remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->p2align_ = uVar7;" (assignment_expression "(remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->p2align_ = uVar7" (field_expression "(remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->p2align_" (parenthesized_expression "(remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)" ( (ERROR "remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std" (binary_expression "remaining.\n         super__Vector_base<gold" (field_expression "remaining.\n         super__Vector_base" identifier . field_identifier) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (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) )) -> field_identifier) = identifier) ;) (expression_statement "(remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->u1_ = aVar4;" (assignment_expression "(remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->u1_ = aVar4" (field_expression "(remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->u1_" (parenthesized_expression "(remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)" ( (ERROR "remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std" (binary_expression "remaining.\n         super__Vector_base<gold" (field_expression "remaining.\n         super__Vector_base" identifier . field_identifier) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (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) )) -> field_identifier) = identifier) ;) (expression_statement "uVar7 = pIVar18->section_order_index_;" (assignment_expression "uVar7 = pIVar18->section_order_index_" identifier = (field_expression "pIVar18->section_order_index_" identifier -> field_identifier)) ;) (expression_statement "uVar8 = *(undefined4 *)&pIVar18->field_0x1c;" (assignment_expression "uVar8 = *(undefined4 *)&pIVar18->field_0x1c" identifier = (pointer_expression "*(undefined4 *)&pIVar18->field_0x1c" * (cast_expression "(undefined4 *)&pIVar18->field_0x1c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar18->field_0x1c" & (field_expression "pIVar18->field_0x1c" identifier -> field_identifier))))) ;) (expression_statement "(remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->u2_ = pIVar18->u2_;" (assignment_expression "(remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->u2_ = pIVar18->u2_" (field_expression "(remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->u2_" (parenthesized_expression "(remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)" ( (ERROR "remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std" (binary_expression "remaining.\n         super__Vector_base<gold" (field_expression "remaining.\n         super__Vector_base" identifier . field_identifier) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (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) )) -> field_identifier) = (field_expression "pIVar18->u2_" identifier -> field_identifier)) ;) (expression_statement "(remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->section_order_index_ = uVar7;" (assignment_expression "(remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->section_order_index_ = uVar7" (field_expression "(remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)->section_order_index_" (parenthesized_expression "(remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n         ._M_impl._M_finish)" ( (ERROR "remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "remaining.\n         super__Vector_base<gold::Output_section::Input_section,_std" (binary_expression "remaining.\n         super__Vector_base<gold" (field_expression "remaining.\n         super__Vector_base" identifier . field_identifier) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (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) )) -> field_identifier) = identifier) ;) (expression_statement "*(undefined4 *)\n         &(remaining.\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish)->field_0x1c = uVar8;" (assignment_expression "*(undefined4 *)\n         &(remaining.\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish)->field_0x1c = uVar8" (pointer_expression "*(undefined4 *)\n         &(remaining.\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish)->field_0x1c" * (cast_expression "(undefined4 *)\n         &(remaining.\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish)->field_0x1c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(remaining.\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish)->field_0x1c" & (field_expression "(remaining.\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish)->field_0x1c" (parenthesized_expression "(remaining.\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish)" ( (ERROR "remaining.\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "remaining.\n           super__Vector_base<gold::Output_section::Input_section,_std" (binary_expression "remaining.\n           super__Vector_base<gold" (field_expression "remaining.\n           super__Vector_base" identifier . field_identifier) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (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) )) -> field_identifier)))) = identifier) ;) (ERROR "remaining.\n        super__Vector_base<gold::" (binary_expression "remaining.\n        super__Vector_base<gold" (field_expression "remaining.\n        super__Vector_base" identifier . field_identifier) < identifier) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish =\n             remaining.\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_finish + 1;" 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        ._M_impl._M_finish =\n             remaining.\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_finish + 1;" statement_identifier (ERROR "::Input_section>_>\n        ._M_impl._M_finish =\n             remaining.\n             super__Vector_base<gold:" : : (assignment_expression "Input_section>_>\n        ._M_impl._M_finish =\n             remaining.\n             super__Vector_base<gold" (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) = (binary_expression "remaining.\n             super__Vector_base<gold" (field_expression "remaining.\n             super__Vector_base" identifier . field_identifier) < identifier)) :) : (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_finish + 1;" 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             ._M_impl._M_finish + 1;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n             ._M_impl._M_finish + 1;" (binary_expression "Input_section>_>\n             ._M_impl._M_finish + 1" (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) + number_literal) ;))))) }))) (if_statement "if ((pIVar18->shndx_ + 4 < 4) &&\n         (pIVar15 = pIVar18, Input_section::finalize_data_size(pIVar18),\n         0xfffffffb < pIVar18->shndx_)) {\n        if (((((pIVar18->u2_).object)->super_Object).name_.field_2._M_local_buf[8] & 2U) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00210693 to 002106af has its CatchHandler @ 002106dc */\n          Input_section::data_size(pIVar15);\n        }\n        sVar22 = (((pIVar18->u2_).object)->super_Object).name_._M_string_length;\n      }\n      else {\n        sVar22 = (pIVar18->u1_).data_size;\n      }" if (parenthesized_expression "((pIVar18->shndx_ + 4 < 4) &&\n         (pIVar15 = pIVar18, Input_section::finalize_data_size(pIVar18),\n         0xfffffffb < pIVar18->shndx_))" ( (binary_expression "(pIVar18->shndx_ + 4 < 4) &&\n         (pIVar15 = pIVar18, Input_section::finalize_data_size(pIVar18),\n         0xfffffffb < pIVar18->shndx_)" (parenthesized_expression "(pIVar18->shndx_ + 4 < 4)" ( (binary_expression "pIVar18->shndx_ + 4 < 4" (binary_expression "pIVar18->shndx_ + 4" (field_expression "pIVar18->shndx_" identifier -> field_identifier) + number_literal) < number_literal) )) && (parenthesized_expression "(pIVar15 = pIVar18, Input_section::finalize_data_size(pIVar18),\n         0xfffffffb < pIVar18->shndx_)" ( (ERROR "pIVar15 = pIVar18, Input_section::" (comma_expression "pIVar15 = pIVar18, Input_section" (assignment_expression "pIVar15 = pIVar18" identifier = identifier) , identifier) : :) (comma_expression "finalize_data_size(pIVar18),\n         0xfffffffb < pIVar18->shndx_" (call_expression "finalize_data_size(pIVar18)" identifier (argument_list "(pIVar18)" ( identifier ))) , (binary_expression "0xfffffffb < pIVar18->shndx_" number_literal < (field_expression "pIVar18->shndx_" identifier -> field_identifier))) ))) )) (compound_statement "{\n        if (((((pIVar18->u2_).object)->super_Object).name_.field_2._M_local_buf[8] & 2U) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00210693 to 002106af has its CatchHandler @ 002106dc */\n          Input_section::data_size(pIVar15);\n        }\n        sVar22 = (((pIVar18->u2_).object)->super_Object).name_._M_string_length;\n      }" { (if_statement "if (((((pIVar18->u2_).object)->super_Object).name_.field_2._M_local_buf[8] & 2U) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00210693 to 002106af has its CatchHandler @ 002106dc */\n          Input_section::data_size(pIVar15);\n        }" if (parenthesized_expression "(((((pIVar18->u2_).object)->super_Object).name_.field_2._M_local_buf[8] & 2U) == 0)" ( (binary_expression "((((pIVar18->u2_).object)->super_Object).name_.field_2._M_local_buf[8] & 2U) == 0" (parenthesized_expression "((((pIVar18->u2_).object)->super_Object).name_.field_2._M_local_buf[8] & 2U)" ( (binary_expression "(((pIVar18->u2_).object)->super_Object).name_.field_2._M_local_buf[8] & 2U" (subscript_expression "(((pIVar18->u2_).object)->super_Object).name_.field_2._M_local_buf[8]" (field_expression "(((pIVar18->u2_).object)->super_Object).name_.field_2._M_local_buf" (field_expression "(((pIVar18->u2_).object)->super_Object).name_.field_2" (field_expression "(((pIVar18->u2_).object)->super_Object).name_" (parenthesized_expression "(((pIVar18->u2_).object)->super_Object)" ( (field_expression "((pIVar18->u2_).object)->super_Object" (parenthesized_expression "((pIVar18->u2_).object)" ( (field_expression "(pIVar18->u2_).object" (parenthesized_expression "(pIVar18->u2_)" ( (field_expression "pIVar18->u2_" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00210693 to 002106af has its CatchHandler @ 002106dc */\n          Input_section::data_size(pIVar15);\n        }" { comment comment (labeled_statement "Input_section::data_size(pIVar15);" statement_identifier : (ERROR ":" :) (expression_statement "data_size(pIVar15);" (call_expression "data_size(pIVar15)" identifier (argument_list "(pIVar15)" ( identifier ))) ;)) })) (expression_statement "sVar22 = (((pIVar18->u2_).object)->super_Object).name_._M_string_length;" (assignment_expression "sVar22 = (((pIVar18->u2_).object)->super_Object).name_._M_string_length" identifier = (field_expression "(((pIVar18->u2_).object)->super_Object).name_._M_string_length" (field_expression "(((pIVar18->u2_).object)->super_Object).name_" (parenthesized_expression "(((pIVar18->u2_).object)->super_Object)" ( (field_expression "((pIVar18->u2_).object)->super_Object" (parenthesized_expression "((pIVar18->u2_).object)" ( (field_expression "(pIVar18->u2_).object" (parenthesized_expression "(pIVar18->u2_)" ( (field_expression "pIVar18->u2_" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n        sVar22 = (pIVar18->u1_).data_size;\n      }" else (compound_statement "{\n        sVar22 = (pIVar18->u1_).data_size;\n      }" { (expression_statement "sVar22 = (pIVar18->u1_).data_size;" (assignment_expression "sVar22 = (pIVar18->u1_).data_size" identifier = (field_expression "(pIVar18->u1_).data_size" (parenthesized_expression "(pIVar18->u1_)" ( (field_expression "pIVar18->u1_" identifier -> field_identifier) )) . field_identifier)) ;) }))) (expression_statement "uVar21 = sVar22 + uVar23;" (assignment_expression "uVar21 = sVar22 + uVar23" identifier = (binary_expression "sVar22 + uVar23" identifier + identifier)) ;) (expression_statement "pIVar15 = pIVar18 + 1;" (assignment_expression "pIVar15 = pIVar18 + 1" identifier = (binary_expression "pIVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((this->input_sections_).\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_finish != pIVar18 + 1)" ( (ERROR "(this->input_sections_).\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "(this->input_sections_).\n             super__Vector_base<gold::Output_section::Input_section,_std" (binary_expression "(this->input_sections_).\n             super__Vector_base<gold" (field_expression "(this->input_sections_).\n             super__Vector_base" (parenthesized_expression "(this->input_sections_)" ( (field_expression "this->input_sections_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Input_section>_>\n             ._M_impl._M_finish != pIVar18 + 1" (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) != (binary_expression "pIVar18 + 1" identifier + number_literal)) )) ;) (labeled_statement "LAB_00210220:\n    pIVar15 = pIVar18 + 1;" statement_identifier : (expression_statement "pIVar15 = pIVar18 + 1;" (assignment_expression "pIVar15 = pIVar18 + 1" identifier = (binary_expression "pIVar18 + 1" identifier + number_literal)) ;)) (ERROR "pIVar18 = (this->input_sections_).\n              super__Vector_base<gold::" (assignment_expression "pIVar18 = (this->input_sections_).\n              super__Vector_base<gold" identifier = (binary_expression "(this->input_sections_).\n              super__Vector_base<gold" (field_expression "(this->input_sections_).\n              super__Vector_base" (parenthesized_expression "(this->input_sections_)" ( (field_expression "this->input_sections_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start;" 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              ._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) ;))) }))) (ERROR "(this->input_sections_).\n  super__Vector_base<gold::" (binary_expression "(this->input_sections_).\n  super__Vector_base<gold" (field_expression "(this->input_sections_).\n  super__Vector_base" (parenthesized_expression "(this->input_sections_)" ( (field_expression "this->input_sections_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_finish =\n       remaining.\n       super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n       ._M_impl._M_finish;" 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  ._M_impl._M_finish =\n       remaining.\n       super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n       ._M_impl._M_finish;" statement_identifier (ERROR "::Input_section>_>\n  ._M_impl._M_finish =\n       remaining.\n       super__Vector_base<gold:" : : (assignment_expression "Input_section>_>\n  ._M_impl._M_finish =\n       remaining.\n       super__Vector_base<gold" (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) = (binary_expression "remaining.\n       super__Vector_base<gold" (field_expression "remaining.\n       super__Vector_base" identifier . field_identifier) < identifier)) :) : (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n       ._M_impl._M_finish;" 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       ._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 "pIVar17 = (this->input_sections_).\n            super__Vector_base<gold::" (assignment_expression "pIVar17 = (this->input_sections_).\n            super__Vector_base<gold" identifier = (binary_expression "(this->input_sections_).\n            super__Vector_base<gold" (field_expression "(this->input_sections_).\n            super__Vector_base" (parenthesized_expression "(this->input_sections_)" ( (field_expression "this->input_sections_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_end_of_storage;" 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            ._M_impl._M_end_of_storage;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n            ._M_impl._M_end_of_storage;" (field_expression "Input_section>_>\n            ._M_impl._M_end_of_storage" (field_expression "Input_section>_>\n            ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) (ERROR "(this->input_sections_).\n  super__Vector_base<gold::" (binary_expression "(this->input_sections_).\n  super__Vector_base<gold" (field_expression "(this->input_sections_).\n  super__Vector_base" (parenthesized_expression "(this->input_sections_)" ( (field_expression "this->input_sections_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_start =\n       remaining.\n       super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n       ._M_impl._M_start;" 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  ._M_impl._M_start =\n       remaining.\n       super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n       ._M_impl._M_start;" statement_identifier (ERROR "::Input_section>_>\n  ._M_impl._M_start =\n       remaining.\n       super__Vector_base<gold:" : : (assignment_expression "Input_section>_>\n  ._M_impl._M_start =\n       remaining.\n       super__Vector_base<gold" (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) = (binary_expression "remaining.\n       super__Vector_base<gold" (field_expression "remaining.\n       super__Vector_base" identifier . field_identifier) < identifier)) :) : (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n       ._M_impl._M_start;" 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       ._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) ;))))) (ERROR "(this->input_sections_).\n  super__Vector_base<gold::" (binary_expression "(this->input_sections_).\n  super__Vector_base<gold" (field_expression "(this->input_sections_).\n  super__Vector_base" (parenthesized_expression "(this->input_sections_)" ( (field_expression "this->input_sections_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_end_of_storage =\n       remaining.\n       super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n       ._M_impl._M_end_of_storage;" 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  ._M_impl._M_end_of_storage =\n       remaining.\n       super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n       ._M_impl._M_end_of_storage;" statement_identifier (ERROR "::Input_section>_>\n  ._M_impl._M_end_of_storage =\n       remaining.\n       super__Vector_base<gold:" : : (assignment_expression "Input_section>_>\n  ._M_impl._M_end_of_storage =\n       remaining.\n       super__Vector_base<gold" (field_expression "Input_section>_>\n  ._M_impl._M_end_of_storage" (field_expression "Input_section>_>\n  ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (binary_expression "remaining.\n       super__Vector_base<gold" (field_expression "remaining.\n       super__Vector_base" identifier . field_identifier) < identifier)) :) : (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n       ._M_impl._M_end_of_storage;" 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       ._M_impl._M_end_of_storage;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n       ._M_impl._M_end_of_storage;" (field_expression "Input_section>_>\n       ._M_impl._M_end_of_storage" (field_expression "Input_section>_>\n       ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))))) (expression_statement "this->first_input_offset_ = 0;" (assignment_expression "this->first_input_offset_ = 0" (field_expression "this->first_input_offset_" identifier -> field_identifier) = number_literal) ;) (ERROR "remaining.\n  super__Vector_base<gold::" (binary_expression "remaining.\n  super__Vector_base<gold" (field_expression "remaining.\n  super__Vector_base" identifier . field_identifier) < identifier) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_start = pIVar18;" 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  ._M_impl._M_start = pIVar18;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n  ._M_impl._M_start = pIVar18;" (assignment_expression "Input_section>_>\n  ._M_impl._M_start = pIVar18" (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) = identifier) ;))) (ERROR "remaining.\n  super__Vector_base<gold::" (binary_expression "remaining.\n  super__Vector_base<gold" (field_expression "remaining.\n  super__Vector_base" identifier . field_identifier) < identifier) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_finish = pIVar15;" 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  ._M_impl._M_finish = pIVar15;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n  ._M_impl._M_finish = pIVar15;" (assignment_expression "Input_section>_>\n  ._M_impl._M_finish = pIVar15" (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) = identifier) ;))) (ERROR "remaining.\n  super__Vector_base<gold::" (binary_expression "remaining.\n  super__Vector_base<gold" (field_expression "remaining.\n  super__Vector_base" identifier . field_identifier) < identifier) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_end_of_storage = pIVar17;" 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  ._M_impl._M_end_of_storage = pIVar17;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n  ._M_impl._M_end_of_storage = pIVar17;" (assignment_expression "Input_section>_>\n  ._M_impl._M_end_of_storage = pIVar17" (field_expression "Input_section>_>\n  ._M_impl._M_end_of_storage" (field_expression "Input_section>_>\n  ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = identifier) ;))) (if_statement "if (((this->super_Output_data).field_0x20 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }" if (parenthesized_expression "(((this->super_Output_data).field_0x20 & 2) != 0)" ( (binary_expression "((this->super_Output_data).field_0x20 & 2) != 0" (parenthesized_expression "((this->super_Output_data).field_0x20 & 2)" ( (binary_expression "(this->super_Output_data).field_0x20 & 2" (field_expression "(this->super_Output_data).field_0x20" (parenthesized_expression "(this->super_Output_data)" ( (field_expression "this->super_Output_data" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");" (call_expression "do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child")" identifier (argument_list "("../../gold/output.h",0x231,"set_current_data_size_for_child")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_current_data_size_for_child"" " string_content ") ))) ;) })) (expression_statement "(this->super_Output_data).data_size_ = uVar21 - address;" (assignment_expression "(this->super_Output_data).data_size_ = uVar21 - address" (field_expression "(this->super_Output_data).data_size_" (parenthesized_expression "(this->super_Output_data)" ( (field_expression "this->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (binary_expression "uVar21 - address" identifier - identifier)) ;) (if_statement "if (pIVar18 != (Input_section *)0x0) {\n    operator_delete(pIVar18);\n  }" if (parenthesized_expression "(pIVar18 != (Input_section *)0x0)" ( (binary_expression "pIVar18 != (Input_section *)0x0" identifier != (cast_expression "(Input_section *)0x0" ( (type_descriptor "Input_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    operator_delete(pIVar18);\n  }" { (expression_statement "operator_delete(pIVar18);" (call_expression "operator_delete(pIVar18)" identifier (argument_list "(pIVar18)" ( identifier ))) ;) })) (return_statement "return uVar21 - address;" return (binary_expression "uVar21 - address" identifier - identifier) ;) })))
(translation_unit "long FUN_00210070(long *param_1,ulong param_2,undefined8 *param_3,long param_4)\n\n{\n  code *pcVar1;\n  undefined8 uVar2;\n  undefined8 *puVar3;\n  undefined1 *__src;\n  undefined8 *puVar4;\n  long lVar5;\n  undefined8 *puVar6;\n  undefined8 *puVar7;\n  ulong uVar8;\n  uint *puVar9;\n  uint *puVar10;\n  undefined8 *puVar11;\n  long lVar12;\n  ulong uVar13;\n  ulong uVar14;\n  ulong local_b8;\n  ulong *local_a8;\n  uint *local_98;\n  uint *local_90;\n  undefined8 *local_88;\n  undefined1 *local_78;\n  ulong local_70;\n  undefined1 local_68 [16];\n  ulong local_58 [2];\n  undefined8 *local_48;\n  undefined4 local_40;\n  \n  lVar5 = param_1[0x1d];\n  if (lVar5 != 0) {\n    puVar6 = *(undefined8 **)(lVar5 + 0x30);\n    puVar4 = *(undefined8 **)(lVar5 + 0x28);\n    uVar13 = *(ulong *)(lVar5 + 0x20);\n    lVar12 = (long)puVar6 - (long)puVar4;\n    if (uVar13 != lVar12 >> 5) {\n      if (0x7ffffffffffffff < uVar13) {\n                    \n        FUN_00330790("vector::reserve");\n      }\n      uVar14 = uVar13;\n      if ((ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5) < uVar13) {\n        puVar3 = puVar4;\n        if (uVar13 == 0) {\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }\n        else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }\n        for (; puVar6 != puVar3; puVar3 = puVar3 + 4) {\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }\n        if (puVar11 != (undefined8 *)0x0) {\n          FUN_002f1e60();\n        }\n        puVar6 = (undefined8 *)((long)puVar4 + lVar12);\n        *(undefined8 **)(lVar5 + 0x28) = puVar4;\n        *(undefined8 **)(lVar5 + 0x30) = puVar6;\n        uVar14 = *(ulong *)(lVar5 + 0x20);\n        *(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4;\n      }\n      if (puVar4 != puVar6) {\n        *(undefined8 **)(lVar5 + 0x30) = puVar4;\n      }\n      puVar6 = (undefined8 *)**(long **)(lVar5 + 0x18);\n      if (uVar14 < (ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)) {\n                    \n        FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections");\n      }\n      if (uVar14 != 0) {\n        uVar13 = 0;\n        do {\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        } while (uVar13 < *(ulong *)(lVar5 + 0x20));\n      }\n    }\n  }\n  *(undefined1 *)param_1[0x1e] = 0;\n  if (*(code **)(*param_1 + 0x18) == FUN_001c5d30) {\n    lVar5 = param_1[6];\n  }\n  else {\n    lVar5 = (**(code **)(*param_1 + 0x18))(param_1);\n  }\n  uVar13 = param_2;\n  if (lVar5 != 0) {\n    uVar13 = lVar5 + -1 + param_2 & -lVar5;\n  }\n  puVar9 = (uint *)param_1[0x11];\n  puVar10 = (uint *)param_1[0x12];\n  local_98 = (uint *)0x0;\n  local_90 = (uint *)0x0;\n  local_88 = (undefined8 *)0x0;\n  if (puVar9 == puVar10) {\n    local_88 = (undefined8 *)0x0;\n    local_90 = (uint *)0x0;\n    local_98 = (uint *)0x0;\n  }\n  else {\n    do {\n      while (puVar10 = puVar9, *puVar10 != 0xffffffff) {\n                    \n        lVar5 = FUN_002f0690(0x30);\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;\n        *(undefined8 *)(lVar5 + 0x18) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)(lVar5 + 0x28) = uVar2;\n        FUN_002f4d00(lVar5,param_4);\n        *(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;\n        puVar9 = puVar10 + 8;\n        if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;\n      }\n      if (puVar10[1] == 0) {\n        pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);\n        if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    \n          lVar5 = (*pcVar1)();\n        }\n      }\n      else {\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }\n      uVar14 = uVar13;\n      if (((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0)) {\n        local_68[0] = 0;\n        local_70 = 0;\n        uVar13 = uVar14 - uVar13;\n        local_78 = local_68;\n                    \n        FUN_002f9000(&local_78,uVar13);\n        while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }\n        if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    \n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }\n        puVar4 = (undefined8 *)FUN_002f0690(0x58);\n        uVar13 = local_70;\n        __src = local_78;\n        puVar4[1] = 0;\n        puVar4[5] = 0;\n        puVar4[6] = 0;\n        puVar4[2] = local_70;\n        puVar4[3] = 0xffffffffffffffff;\n        local_b8 = local_70;\n        *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;\n        *puVar4 = &PTR_FUN_00445c48;\n        puVar6 = puVar4 + 9;\n        puVar4[7] = puVar6;\n        if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    \n                    \n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }\n        local_58[0] = local_70;\n        if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    \n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }\n        local_a8 = local_58;\n        puVar4[8] = local_b8;\n        *(undefined1 *)((long)puVar6 + local_b8) = 0;\n        local_40 = 0;\n        local_58[0] = 0xffffffff;\n        local_58[1] = 0;\n        local_48 = puVar4;\n        FUN_00223190(&local_98,local_a8);\n        if (local_78 != local_68) {\n          FUN_002f1e60();\n        }\n      }\n      if (local_90 == (uint *)local_88) {\n        FUN_00220270(&local_98,local_90,puVar10);\n      }\n      else {\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }\n      if ((*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)) {\n        if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    \n                    \n          FUN_0020a520();\n        }\n        lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);\n      }\n      else {\n        lVar5 = *(long *)(puVar10 + 2);\n      }\n      uVar13 = lVar5 + uVar14;\n      puVar9 = puVar10 + 8;\n    } while ((uint *)param_1[0x12] != puVar10 + 8);\nLAB_00210220:\n    puVar9 = puVar10 + 8;\n    puVar10 = (uint *)param_1[0x11];\n  }\n  param_1[0x12] = (long)local_90;\n  lVar5 = param_1[0x13];\n  param_1[0x11] = (long)local_98;\n  param_1[0x13] = (long)local_88;\n  param_1[0x14] = 0;\n  local_98 = puVar10;\n  local_90 = puVar9;\n  local_88 = (undefined8 *)lVar5;\n  if ((*(byte *)(param_1 + 4) & 2) != 0) {\n                    \n    FUN_0018ff20("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }\n  param_1[2] = uVar13 - param_2;\n  if (puVar10 != (uint *)0x0) {\n    FUN_002f1e60();\n  }\n  return uVar13 - param_2;\n}\n\n" (function_definition "long FUN_00210070(long *param_1,ulong param_2,undefined8 *param_3,long param_4)\n\n{\n  code *pcVar1;\n  undefined8 uVar2;\n  undefined8 *puVar3;\n  undefined1 *__src;\n  undefined8 *puVar4;\n  long lVar5;\n  undefined8 *puVar6;\n  undefined8 *puVar7;\n  ulong uVar8;\n  uint *puVar9;\n  uint *puVar10;\n  undefined8 *puVar11;\n  long lVar12;\n  ulong uVar13;\n  ulong uVar14;\n  ulong local_b8;\n  ulong *local_a8;\n  uint *local_98;\n  uint *local_90;\n  undefined8 *local_88;\n  undefined1 *local_78;\n  ulong local_70;\n  undefined1 local_68 [16];\n  ulong local_58 [2];\n  undefined8 *local_48;\n  undefined4 local_40;\n  \n  lVar5 = param_1[0x1d];\n  if (lVar5 != 0) {\n    puVar6 = *(undefined8 **)(lVar5 + 0x30);\n    puVar4 = *(undefined8 **)(lVar5 + 0x28);\n    uVar13 = *(ulong *)(lVar5 + 0x20);\n    lVar12 = (long)puVar6 - (long)puVar4;\n    if (uVar13 != lVar12 >> 5) {\n      if (0x7ffffffffffffff < uVar13) {\n                    \n        FUN_00330790("vector::reserve");\n      }\n      uVar14 = uVar13;\n      if ((ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5) < uVar13) {\n        puVar3 = puVar4;\n        if (uVar13 == 0) {\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }\n        else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }\n        for (; puVar6 != puVar3; puVar3 = puVar3 + 4) {\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }\n        if (puVar11 != (undefined8 *)0x0) {\n          FUN_002f1e60();\n        }\n        puVar6 = (undefined8 *)((long)puVar4 + lVar12);\n        *(undefined8 **)(lVar5 + 0x28) = puVar4;\n        *(undefined8 **)(lVar5 + 0x30) = puVar6;\n        uVar14 = *(ulong *)(lVar5 + 0x20);\n        *(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4;\n      }\n      if (puVar4 != puVar6) {\n        *(undefined8 **)(lVar5 + 0x30) = puVar4;\n      }\n      puVar6 = (undefined8 *)**(long **)(lVar5 + 0x18);\n      if (uVar14 < (ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)) {\n                    \n        FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections");\n      }\n      if (uVar14 != 0) {\n        uVar13 = 0;\n        do {\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        } while (uVar13 < *(ulong *)(lVar5 + 0x20));\n      }\n    }\n  }\n  *(undefined1 *)param_1[0x1e] = 0;\n  if (*(code **)(*param_1 + 0x18) == FUN_001c5d30) {\n    lVar5 = param_1[6];\n  }\n  else {\n    lVar5 = (**(code **)(*param_1 + 0x18))(param_1);\n  }\n  uVar13 = param_2;\n  if (lVar5 != 0) {\n    uVar13 = lVar5 + -1 + param_2 & -lVar5;\n  }\n  puVar9 = (uint *)param_1[0x11];\n  puVar10 = (uint *)param_1[0x12];\n  local_98 = (uint *)0x0;\n  local_90 = (uint *)0x0;\n  local_88 = (undefined8 *)0x0;\n  if (puVar9 == puVar10) {\n    local_88 = (undefined8 *)0x0;\n    local_90 = (uint *)0x0;\n    local_98 = (uint *)0x0;\n  }\n  else {\n    do {\n      while (puVar10 = puVar9, *puVar10 != 0xffffffff) {\n                    \n        lVar5 = FUN_002f0690(0x30);\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;\n        *(undefined8 *)(lVar5 + 0x18) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)(lVar5 + 0x28) = uVar2;\n        FUN_002f4d00(lVar5,param_4);\n        *(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;\n        puVar9 = puVar10 + 8;\n        if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;\n      }\n      if (puVar10[1] == 0) {\n        pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);\n        if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    \n          lVar5 = (*pcVar1)();\n        }\n      }\n      else {\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }\n      uVar14 = uVar13;\n      if (((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0)) {\n        local_68[0] = 0;\n        local_70 = 0;\n        uVar13 = uVar14 - uVar13;\n        local_78 = local_68;\n                    \n        FUN_002f9000(&local_78,uVar13);\n        while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }\n        if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    \n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }\n        puVar4 = (undefined8 *)FUN_002f0690(0x58);\n        uVar13 = local_70;\n        __src = local_78;\n        puVar4[1] = 0;\n        puVar4[5] = 0;\n        puVar4[6] = 0;\n        puVar4[2] = local_70;\n        puVar4[3] = 0xffffffffffffffff;\n        local_b8 = local_70;\n        *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;\n        *puVar4 = &PTR_FUN_00445c48;\n        puVar6 = puVar4 + 9;\n        puVar4[7] = puVar6;\n        if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    \n                    \n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }\n        local_58[0] = local_70;\n        if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    \n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }\n        local_a8 = local_58;\n        puVar4[8] = local_b8;\n        *(undefined1 *)((long)puVar6 + local_b8) = 0;\n        local_40 = 0;\n        local_58[0] = 0xffffffff;\n        local_58[1] = 0;\n        local_48 = puVar4;\n        FUN_00223190(&local_98,local_a8);\n        if (local_78 != local_68) {\n          FUN_002f1e60();\n        }\n      }\n      if (local_90 == (uint *)local_88) {\n        FUN_00220270(&local_98,local_90,puVar10);\n      }\n      else {\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }\n      if ((*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)) {\n        if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    \n                    \n          FUN_0020a520();\n        }\n        lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);\n      }\n      else {\n        lVar5 = *(long *)(puVar10 + 2);\n      }\n      uVar13 = lVar5 + uVar14;\n      puVar9 = puVar10 + 8;\n    } while ((uint *)param_1[0x12] != puVar10 + 8);\nLAB_00210220:\n    puVar9 = puVar10 + 8;\n    puVar10 = (uint *)param_1[0x11];\n  }\n  param_1[0x12] = (long)local_90;\n  lVar5 = param_1[0x13];\n  param_1[0x11] = (long)local_98;\n  param_1[0x13] = (long)local_88;\n  param_1[0x14] = 0;\n  local_98 = puVar10;\n  local_90 = puVar9;\n  local_88 = (undefined8 *)lVar5;\n  if ((*(byte *)(param_1 + 4) & 2) != 0) {\n                    \n    FUN_0018ff20("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }\n  param_1[2] = uVar13 - param_2;\n  if (puVar10 != (uint *)0x0) {\n    FUN_002f1e60();\n  }\n  return uVar13 - param_2;\n}" (sized_type_specifier "long" long) (function_declarator "FUN_00210070(long *param_1,ulong param_2,undefined8 *param_3,long param_4)" identifier (parameter_list "(long *param_1,ulong param_2,undefined8 *param_3,long param_4)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "ulong param_2" type_identifier identifier) , (parameter_declaration "undefined8 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  code *pcVar1;\n  undefined8 uVar2;\n  undefined8 *puVar3;\n  undefined1 *__src;\n  undefined8 *puVar4;\n  long lVar5;\n  undefined8 *puVar6;\n  undefined8 *puVar7;\n  ulong uVar8;\n  uint *puVar9;\n  uint *puVar10;\n  undefined8 *puVar11;\n  long lVar12;\n  ulong uVar13;\n  ulong uVar14;\n  ulong local_b8;\n  ulong *local_a8;\n  uint *local_98;\n  uint *local_90;\n  undefined8 *local_88;\n  undefined1 *local_78;\n  ulong local_70;\n  undefined1 local_68 [16];\n  ulong local_58 [2];\n  undefined8 *local_48;\n  undefined4 local_40;\n  \n  lVar5 = param_1[0x1d];\n  if (lVar5 != 0) {\n    puVar6 = *(undefined8 **)(lVar5 + 0x30);\n    puVar4 = *(undefined8 **)(lVar5 + 0x28);\n    uVar13 = *(ulong *)(lVar5 + 0x20);\n    lVar12 = (long)puVar6 - (long)puVar4;\n    if (uVar13 != lVar12 >> 5) {\n      if (0x7ffffffffffffff < uVar13) {\n                    \n        FUN_00330790("vector::reserve");\n      }\n      uVar14 = uVar13;\n      if ((ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5) < uVar13) {\n        puVar3 = puVar4;\n        if (uVar13 == 0) {\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }\n        else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }\n        for (; puVar6 != puVar3; puVar3 = puVar3 + 4) {\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }\n        if (puVar11 != (undefined8 *)0x0) {\n          FUN_002f1e60();\n        }\n        puVar6 = (undefined8 *)((long)puVar4 + lVar12);\n        *(undefined8 **)(lVar5 + 0x28) = puVar4;\n        *(undefined8 **)(lVar5 + 0x30) = puVar6;\n        uVar14 = *(ulong *)(lVar5 + 0x20);\n        *(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4;\n      }\n      if (puVar4 != puVar6) {\n        *(undefined8 **)(lVar5 + 0x30) = puVar4;\n      }\n      puVar6 = (undefined8 *)**(long **)(lVar5 + 0x18);\n      if (uVar14 < (ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)) {\n                    \n        FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections");\n      }\n      if (uVar14 != 0) {\n        uVar13 = 0;\n        do {\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        } while (uVar13 < *(ulong *)(lVar5 + 0x20));\n      }\n    }\n  }\n  *(undefined1 *)param_1[0x1e] = 0;\n  if (*(code **)(*param_1 + 0x18) == FUN_001c5d30) {\n    lVar5 = param_1[6];\n  }\n  else {\n    lVar5 = (**(code **)(*param_1 + 0x18))(param_1);\n  }\n  uVar13 = param_2;\n  if (lVar5 != 0) {\n    uVar13 = lVar5 + -1 + param_2 & -lVar5;\n  }\n  puVar9 = (uint *)param_1[0x11];\n  puVar10 = (uint *)param_1[0x12];\n  local_98 = (uint *)0x0;\n  local_90 = (uint *)0x0;\n  local_88 = (undefined8 *)0x0;\n  if (puVar9 == puVar10) {\n    local_88 = (undefined8 *)0x0;\n    local_90 = (uint *)0x0;\n    local_98 = (uint *)0x0;\n  }\n  else {\n    do {\n      while (puVar10 = puVar9, *puVar10 != 0xffffffff) {\n                    \n        lVar5 = FUN_002f0690(0x30);\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;\n        *(undefined8 *)(lVar5 + 0x18) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)(lVar5 + 0x28) = uVar2;\n        FUN_002f4d00(lVar5,param_4);\n        *(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;\n        puVar9 = puVar10 + 8;\n        if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;\n      }\n      if (puVar10[1] == 0) {\n        pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);\n        if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    \n          lVar5 = (*pcVar1)();\n        }\n      }\n      else {\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }\n      uVar14 = uVar13;\n      if (((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0)) {\n        local_68[0] = 0;\n        local_70 = 0;\n        uVar13 = uVar14 - uVar13;\n        local_78 = local_68;\n                    \n        FUN_002f9000(&local_78,uVar13);\n        while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }\n        if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    \n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }\n        puVar4 = (undefined8 *)FUN_002f0690(0x58);\n        uVar13 = local_70;\n        __src = local_78;\n        puVar4[1] = 0;\n        puVar4[5] = 0;\n        puVar4[6] = 0;\n        puVar4[2] = local_70;\n        puVar4[3] = 0xffffffffffffffff;\n        local_b8 = local_70;\n        *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;\n        *puVar4 = &PTR_FUN_00445c48;\n        puVar6 = puVar4 + 9;\n        puVar4[7] = puVar6;\n        if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    \n                    \n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }\n        local_58[0] = local_70;\n        if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    \n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }\n        local_a8 = local_58;\n        puVar4[8] = local_b8;\n        *(undefined1 *)((long)puVar6 + local_b8) = 0;\n        local_40 = 0;\n        local_58[0] = 0xffffffff;\n        local_58[1] = 0;\n        local_48 = puVar4;\n        FUN_00223190(&local_98,local_a8);\n        if (local_78 != local_68) {\n          FUN_002f1e60();\n        }\n      }\n      if (local_90 == (uint *)local_88) {\n        FUN_00220270(&local_98,local_90,puVar10);\n      }\n      else {\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }\n      if ((*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)) {\n        if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    \n                    \n          FUN_0020a520();\n        }\n        lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);\n      }\n      else {\n        lVar5 = *(long *)(puVar10 + 2);\n      }\n      uVar13 = lVar5 + uVar14;\n      puVar9 = puVar10 + 8;\n    } while ((uint *)param_1[0x12] != puVar10 + 8);\nLAB_00210220:\n    puVar9 = puVar10 + 8;\n    puVar10 = (uint *)param_1[0x11];\n  }\n  param_1[0x12] = (long)local_90;\n  lVar5 = param_1[0x13];\n  param_1[0x11] = (long)local_98;\n  param_1[0x13] = (long)local_88;\n  param_1[0x14] = 0;\n  local_98 = puVar10;\n  local_90 = puVar9;\n  local_88 = (undefined8 *)lVar5;\n  if ((*(byte *)(param_1 + 4) & 2) != 0) {\n                    \n    FUN_0018ff20("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }\n  param_1[2] = uVar13 - param_2;\n  if (puVar10 != (uint *)0x0) {\n    FUN_002f1e60();\n  }\n  return uVar13 - param_2;\n}" { (declaration "code *pcVar1;" type_identifier (pointer_declarator "*pcVar1" * identifier) ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined8 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined1 *__src;" type_identifier (pointer_declarator "*__src" * identifier) ;) (declaration "undefined8 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "ulong uVar8;" type_identifier identifier ;) (declaration "uint *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined8 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "ulong local_b8;" type_identifier identifier ;) (declaration "ulong *local_a8;" type_identifier (pointer_declarator "*local_a8" * identifier) ;) (declaration "uint *local_98;" type_identifier (pointer_declarator "*local_98" * identifier) ;) (declaration "uint *local_90;" type_identifier (pointer_declarator "*local_90" * identifier) ;) (declaration "undefined8 *local_88;" type_identifier (pointer_declarator "*local_88" * identifier) ;) (declaration "undefined1 *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "ulong local_70;" type_identifier identifier ;) (declaration "undefined1 local_68 [16];" type_identifier (array_declarator "local_68 [16]" identifier [ number_literal ]) ;) (declaration "ulong local_58 [2];" type_identifier (array_declarator "local_58 [2]" identifier [ number_literal ]) ;) (declaration "undefined8 *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (expression_statement "lVar5 = param_1[0x1d];" (assignment_expression "lVar5 = param_1[0x1d]" identifier = (subscript_expression "param_1[0x1d]" identifier [ number_literal ])) ;) (if_statement "if (lVar5 != 0) {\n    puVar6 = *(undefined8 **)(lVar5 + 0x30);\n    puVar4 = *(undefined8 **)(lVar5 + 0x28);\n    uVar13 = *(ulong *)(lVar5 + 0x20);\n    lVar12 = (long)puVar6 - (long)puVar4;\n    if (uVar13 != lVar12 >> 5) {\n      if (0x7ffffffffffffff < uVar13) {\n                    \n        FUN_00330790("vector::reserve");\n      }\n      uVar14 = uVar13;\n      if ((ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5) < uVar13) {\n        puVar3 = puVar4;\n        if (uVar13 == 0) {\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }\n        else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }\n        for (; puVar6 != puVar3; puVar3 = puVar3 + 4) {\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }\n        if (puVar11 != (undefined8 *)0x0) {\n          FUN_002f1e60();\n        }\n        puVar6 = (undefined8 *)((long)puVar4 + lVar12);\n        *(undefined8 **)(lVar5 + 0x28) = puVar4;\n        *(undefined8 **)(lVar5 + 0x30) = puVar6;\n        uVar14 = *(ulong *)(lVar5 + 0x20);\n        *(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4;\n      }\n      if (puVar4 != puVar6) {\n        *(undefined8 **)(lVar5 + 0x30) = puVar4;\n      }\n      puVar6 = (undefined8 *)**(long **)(lVar5 + 0x18);\n      if (uVar14 < (ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)) {\n                    \n        FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections");\n      }\n      if (uVar14 != 0) {\n        uVar13 = 0;\n        do {\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        } while (uVar13 < *(ulong *)(lVar5 + 0x20));\n      }\n    }\n  }" if (parenthesized_expression "(lVar5 != 0)" ( (binary_expression "lVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    puVar6 = *(undefined8 **)(lVar5 + 0x30);\n    puVar4 = *(undefined8 **)(lVar5 + 0x28);\n    uVar13 = *(ulong *)(lVar5 + 0x20);\n    lVar12 = (long)puVar6 - (long)puVar4;\n    if (uVar13 != lVar12 >> 5) {\n      if (0x7ffffffffffffff < uVar13) {\n                    \n        FUN_00330790("vector::reserve");\n      }\n      uVar14 = uVar13;\n      if ((ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5) < uVar13) {\n        puVar3 = puVar4;\n        if (uVar13 == 0) {\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }\n        else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }\n        for (; puVar6 != puVar3; puVar3 = puVar3 + 4) {\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }\n        if (puVar11 != (undefined8 *)0x0) {\n          FUN_002f1e60();\n        }\n        puVar6 = (undefined8 *)((long)puVar4 + lVar12);\n        *(undefined8 **)(lVar5 + 0x28) = puVar4;\n        *(undefined8 **)(lVar5 + 0x30) = puVar6;\n        uVar14 = *(ulong *)(lVar5 + 0x20);\n        *(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4;\n      }\n      if (puVar4 != puVar6) {\n        *(undefined8 **)(lVar5 + 0x30) = puVar4;\n      }\n      puVar6 = (undefined8 *)**(long **)(lVar5 + 0x18);\n      if (uVar14 < (ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)) {\n                    \n        FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections");\n      }\n      if (uVar14 != 0) {\n        uVar13 = 0;\n        do {\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        } while (uVar13 < *(ulong *)(lVar5 + 0x20));\n      }\n    }\n  }" { (expression_statement "puVar6 = *(undefined8 **)(lVar5 + 0x30);" (assignment_expression "puVar6 = *(undefined8 **)(lVar5 + 0x30)" identifier = (pointer_expression "*(undefined8 **)(lVar5 + 0x30)" * (cast_expression "(undefined8 **)(lVar5 + 0x30)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x30)" ( (binary_expression "lVar5 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "puVar4 = *(undefined8 **)(lVar5 + 0x28);" (assignment_expression "puVar4 = *(undefined8 **)(lVar5 + 0x28)" identifier = (pointer_expression "*(undefined8 **)(lVar5 + 0x28)" * (cast_expression "(undefined8 **)(lVar5 + 0x28)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x28)" ( (binary_expression "lVar5 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = *(ulong *)(lVar5 + 0x20);" (assignment_expression "uVar13 = *(ulong *)(lVar5 + 0x20)" identifier = (pointer_expression "*(ulong *)(lVar5 + 0x20)" * (cast_expression "(ulong *)(lVar5 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x20)" ( (binary_expression "lVar5 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "lVar12 = (long)puVar6 - (long)puVar4;" (assignment_expression "lVar12 = (long)puVar6 - (long)puVar4" identifier = (binary_expression "(long)puVar6 - (long)puVar4" (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)puVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if (uVar13 != lVar12 >> 5) {\n      if (0x7ffffffffffffff < uVar13) {\n                    \n        FUN_00330790("vector::reserve");\n      }\n      uVar14 = uVar13;\n      if ((ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5) < uVar13) {\n        puVar3 = puVar4;\n        if (uVar13 == 0) {\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }\n        else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }\n        for (; puVar6 != puVar3; puVar3 = puVar3 + 4) {\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }\n        if (puVar11 != (undefined8 *)0x0) {\n          FUN_002f1e60();\n        }\n        puVar6 = (undefined8 *)((long)puVar4 + lVar12);\n        *(undefined8 **)(lVar5 + 0x28) = puVar4;\n        *(undefined8 **)(lVar5 + 0x30) = puVar6;\n        uVar14 = *(ulong *)(lVar5 + 0x20);\n        *(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4;\n      }\n      if (puVar4 != puVar6) {\n        *(undefined8 **)(lVar5 + 0x30) = puVar4;\n      }\n      puVar6 = (undefined8 *)**(long **)(lVar5 + 0x18);\n      if (uVar14 < (ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)) {\n                    \n        FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections");\n      }\n      if (uVar14 != 0) {\n        uVar13 = 0;\n        do {\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        } while (uVar13 < *(ulong *)(lVar5 + 0x20));\n      }\n    }" if (parenthesized_expression "(uVar13 != lVar12 >> 5)" ( (binary_expression "uVar13 != lVar12 >> 5" identifier != (binary_expression "lVar12 >> 5" identifier >> number_literal)) )) (compound_statement "{\n      if (0x7ffffffffffffff < uVar13) {\n                    \n        FUN_00330790("vector::reserve");\n      }\n      uVar14 = uVar13;\n      if ((ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5) < uVar13) {\n        puVar3 = puVar4;\n        if (uVar13 == 0) {\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }\n        else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }\n        for (; puVar6 != puVar3; puVar3 = puVar3 + 4) {\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }\n        if (puVar11 != (undefined8 *)0x0) {\n          FUN_002f1e60();\n        }\n        puVar6 = (undefined8 *)((long)puVar4 + lVar12);\n        *(undefined8 **)(lVar5 + 0x28) = puVar4;\n        *(undefined8 **)(lVar5 + 0x30) = puVar6;\n        uVar14 = *(ulong *)(lVar5 + 0x20);\n        *(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4;\n      }\n      if (puVar4 != puVar6) {\n        *(undefined8 **)(lVar5 + 0x30) = puVar4;\n      }\n      puVar6 = (undefined8 *)**(long **)(lVar5 + 0x18);\n      if (uVar14 < (ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)) {\n                    \n        FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections");\n      }\n      if (uVar14 != 0) {\n        uVar13 = 0;\n        do {\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        } while (uVar13 < *(ulong *)(lVar5 + 0x20));\n      }\n    }" { (if_statement "if (0x7ffffffffffffff < uVar13) {\n                    \n        FUN_00330790("vector::reserve");\n      }" if (parenthesized_expression "(0x7ffffffffffffff < uVar13)" ( (binary_expression "0x7ffffffffffffff < uVar13" number_literal < identifier) )) (compound_statement "{\n                    \n        FUN_00330790("vector::reserve");\n      }" { (expression_statement "FUN_00330790("vector::reserve");" (call_expression "FUN_00330790("vector::reserve")" identifier (argument_list "("vector::reserve")" ( (string_literal ""vector::reserve"" " string_content ") ))) ;) })) (expression_statement "uVar14 = uVar13;" (assignment_expression "uVar14 = uVar13" identifier = identifier) ;) (if_statement "if ((ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5) < uVar13) {\n        puVar3 = puVar4;\n        if (uVar13 == 0) {\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }\n        else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }\n        for (; puVar6 != puVar3; puVar3 = puVar3 + 4) {\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }\n        if (puVar11 != (undefined8 *)0x0) {\n          FUN_002f1e60();\n        }\n        puVar6 = (undefined8 *)((long)puVar4 + lVar12);\n        *(undefined8 **)(lVar5 + 0x28) = puVar4;\n        *(undefined8 **)(lVar5 + 0x30) = puVar6;\n        uVar14 = *(ulong *)(lVar5 + 0x20);\n        *(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4;\n      }" if (parenthesized_expression "((ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5) < uVar13)" ( (binary_expression "(ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5) < uVar13" (call_expression "(ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5)" ( (binary_expression "*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5" (binary_expression "*(long *)(lVar5 + 0x38) - (long)puVar4" (pointer_expression "*(long *)(lVar5 + 0x38)" * (cast_expression "(long *)(lVar5 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x38)" ( (binary_expression "lVar5 + 0x38" identifier + number_literal) )))) - (cast_expression "(long)puVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal) ))) < identifier) )) (compound_statement "{\n        puVar3 = puVar4;\n        if (uVar13 == 0) {\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }\n        else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }\n        for (; puVar6 != puVar3; puVar3 = puVar3 + 4) {\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }\n        if (puVar11 != (undefined8 *)0x0) {\n          FUN_002f1e60();\n        }\n        puVar6 = (undefined8 *)((long)puVar4 + lVar12);\n        *(undefined8 **)(lVar5 + 0x28) = puVar4;\n        *(undefined8 **)(lVar5 + 0x30) = puVar6;\n        uVar14 = *(ulong *)(lVar5 + 0x20);\n        *(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4;\n      }" { (expression_statement "puVar3 = puVar4;" (assignment_expression "puVar3 = puVar4" identifier = identifier) ;) (if_statement "if (uVar13 == 0) {\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }\n        else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }" { (expression_statement "puVar7 = (undefined8 *)0x0;" (assignment_expression "puVar7 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar11 = puVar4;" (assignment_expression "puVar11 = puVar4" identifier = identifier) ;) (expression_statement "puVar4 = puVar7;" (assignment_expression "puVar4 = puVar7" identifier = identifier) ;) }) (else_clause "else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }" else (compound_statement "{\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }" { (expression_statement "puVar7 = (undefined8 *)FUN_002f0690();" (assignment_expression "puVar7 = (undefined8 *)FUN_002f0690()" identifier = (cast_expression "(undefined8 *)FUN_002f0690()" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002f0690()" identifier (argument_list "()" ( ))))) ;) (expression_statement "puVar11 = *(undefined8 **)(lVar5 + 0x28);" (assignment_expression "puVar11 = *(undefined8 **)(lVar5 + 0x28)" identifier = (pointer_expression "*(undefined8 **)(lVar5 + 0x28)" * (cast_expression "(undefined8 **)(lVar5 + 0x28)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x28)" ( (binary_expression "lVar5 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar4 = puVar7;" (assignment_expression "puVar4 = puVar7" identifier = identifier) ;) }))) (for_statement "for (; puVar6 != puVar3; puVar3 = puVar3 + 4) {\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }" for ( ; (binary_expression "puVar6 != puVar3" identifier != identifier) ; (assignment_expression "puVar3 = puVar3 + 4" identifier = (binary_expression "puVar3 + 4" identifier + number_literal)) ) (compound_statement "{\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }" { (expression_statement "uVar2 = puVar3[1];" (assignment_expression "uVar2 = puVar3[1]" identifier = (subscript_expression "puVar3[1]" identifier [ number_literal ])) ;) (expression_statement "*puVar7 = *puVar3;" (assignment_expression "*puVar7 = *puVar3" (pointer_expression "*puVar7" * identifier) = (pointer_expression "*puVar3" * identifier)) ;) (expression_statement "puVar7[1] = uVar2;" (assignment_expression "puVar7[1] = uVar2" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = puVar3[3];" (assignment_expression "uVar2 = puVar3[3]" identifier = (subscript_expression "puVar3[3]" identifier [ number_literal ])) ;) (expression_statement "puVar7[2] = puVar3[2];" (assignment_expression "puVar7[2] = puVar3[2]" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = (subscript_expression "puVar3[2]" identifier [ number_literal ])) ;) (expression_statement "puVar7[3] = uVar2;" (assignment_expression "puVar7[3] = uVar2" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7 = puVar7 + 4;" (assignment_expression "puVar7 = puVar7 + 4" identifier = (binary_expression "puVar7 + 4" identifier + number_literal)) ;) })) (if_statement "if (puVar11 != (undefined8 *)0x0) {\n          FUN_002f1e60();\n        }" if (parenthesized_expression "(puVar11 != (undefined8 *)0x0)" ( (binary_expression "puVar11 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          FUN_002f1e60();\n        }" { (expression_statement "FUN_002f1e60();" (call_expression "FUN_002f1e60()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "puVar6 = (undefined8 *)((long)puVar4 + lVar12);" (assignment_expression "puVar6 = (undefined8 *)((long)puVar4 + lVar12)" identifier = (cast_expression "(undefined8 *)((long)puVar4 + lVar12)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar4 + lVar12)" ( (binary_expression "(long)puVar4 + lVar12" (cast_expression "(long)puVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) (expression_statement "*(undefined8 **)(lVar5 + 0x28) = puVar4;" (assignment_expression "*(undefined8 **)(lVar5 + 0x28) = puVar4" (pointer_expression "*(undefined8 **)(lVar5 + 0x28)" * (cast_expression "(undefined8 **)(lVar5 + 0x28)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x28)" ( (binary_expression "lVar5 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 **)(lVar5 + 0x30) = puVar6;" (assignment_expression "*(undefined8 **)(lVar5 + 0x30) = puVar6" (pointer_expression "*(undefined8 **)(lVar5 + 0x30)" * (cast_expression "(undefined8 **)(lVar5 + 0x30)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x30)" ( (binary_expression "lVar5 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar14 = *(ulong *)(lVar5 + 0x20);" (assignment_expression "uVar14 = *(ulong *)(lVar5 + 0x20)" identifier = (pointer_expression "*(ulong *)(lVar5 + 0x20)" * (cast_expression "(ulong *)(lVar5 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x20)" ( (binary_expression "lVar5 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4;" (assignment_expression "*(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4" (pointer_expression "*(undefined8 **)(lVar5 + 0x38)" * (cast_expression "(undefined8 **)(lVar5 + 0x38)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x38)" ( (binary_expression "lVar5 + 0x38" identifier + number_literal) )))) = (binary_expression "puVar4 + uVar13 * 4" identifier + (binary_expression "uVar13 * 4" identifier * number_literal))) ;) })) (if_statement "if (puVar4 != puVar6) {\n        *(undefined8 **)(lVar5 + 0x30) = puVar4;\n      }" if (parenthesized_expression "(puVar4 != puVar6)" ( (binary_expression "puVar4 != puVar6" identifier != identifier) )) (compound_statement "{\n        *(undefined8 **)(lVar5 + 0x30) = puVar4;\n      }" { (expression_statement "*(undefined8 **)(lVar5 + 0x30) = puVar4;" (assignment_expression "*(undefined8 **)(lVar5 + 0x30) = puVar4" (pointer_expression "*(undefined8 **)(lVar5 + 0x30)" * (cast_expression "(undefined8 **)(lVar5 + 0x30)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x30)" ( (binary_expression "lVar5 + 0x30" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "puVar6 = (undefined8 *)**(long **)(lVar5 + 0x18);" (assignment_expression "puVar6 = (undefined8 *)**(long **)(lVar5 + 0x18)" identifier = (cast_expression "(undefined8 *)**(long **)(lVar5 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(long **)(lVar5 + 0x18)" * (pointer_expression "*(long **)(lVar5 + 0x18)" * (cast_expression "(long **)(lVar5 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x18)" ( (binary_expression "lVar5 + 0x18" identifier + number_literal) ))))))) ;) (if_statement "if (uVar14 < (ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)) {\n                    \n        FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections");\n      }" if (parenthesized_expression "(uVar14 < (ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5))" ( (binary_expression "uVar14 < (ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)" identifier < (call_expression "(ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)" ( (binary_expression "(*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5" (binary_expression "(*(long **)(lVar5 + 0x18))[1] - (long)puVar6" (subscript_expression "(*(long **)(lVar5 + 0x18))[1]" (parenthesized_expression "(*(long **)(lVar5 + 0x18))" ( (pointer_expression "*(long **)(lVar5 + 0x18)" * (cast_expression "(long **)(lVar5 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x18)" ( (binary_expression "lVar5 + 0x18" identifier + number_literal) )))) )) [ number_literal ]) - (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal) )))) )) (compound_statement "{\n                    \n        FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections");\n      }" { (expression_statement "FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections");" (call_expression "FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections")" identifier (argument_list "("../../gold/output.h",0x10fd,"save_input_sections")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""save_input_sections"" " string_content ") ))) ;) })) (if_statement "if (uVar14 != 0) {\n        uVar13 = 0;\n        do {\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        } while (uVar13 < *(ulong *)(lVar5 + 0x20));\n      }" if (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar13 = 0;\n        do {\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        } while (uVar13 < *(ulong *)(lVar5 + 0x20));\n      }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        } while (uVar13 < *(ulong *)(lVar5 + 0x20));" do (compound_statement "{\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        }" { (expression_statement "puVar4 = *(undefined8 **)(lVar5 + 0x30);" (assignment_expression "puVar4 = *(undefined8 **)(lVar5 + 0x30)" identifier = (pointer_expression "*(undefined8 **)(lVar5 + 0x30)" * (cast_expression "(undefined8 **)(lVar5 + 0x30)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x30)" ( (binary_expression "lVar5 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }" if (parenthesized_expression "(puVar4 == *(undefined8 **)(lVar5 + 0x38))" ( (binary_expression "puVar4 == *(undefined8 **)(lVar5 + 0x38)" identifier == (pointer_expression "*(undefined8 **)(lVar5 + 0x38)" * (cast_expression "(undefined8 **)(lVar5 + 0x38)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x38)" ( (binary_expression "lVar5 + 0x38" identifier + number_literal) ))))) )) (compound_statement "{\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }" { (expression_statement "FUN_00220270(lVar5 + 0x28,puVar4,puVar6);" (call_expression "FUN_00220270(lVar5 + 0x28,puVar4,puVar6)" identifier (argument_list "(lVar5 + 0x28,puVar4,puVar6)" ( (binary_expression "lVar5 + 0x28" identifier + number_literal) , identifier , identifier ))) ;) }) (else_clause "else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }" else (compound_statement "{\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }" { (expression_statement "uVar2 = puVar6[1];" (assignment_expression "uVar2 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "*puVar4 = *puVar6;" (assignment_expression "*puVar4 = *puVar6" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar4[1] = uVar2;" (assignment_expression "puVar4[1] = uVar2" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = puVar6[3];" (assignment_expression "uVar2 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "puVar4[2] = puVar6[2];" (assignment_expression "puVar4[2] = puVar6[2]" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "puVar4[3] = uVar2;" (assignment_expression "puVar4[3] = uVar2" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;" (assignment_expression "*(undefined8 **)(lVar5 + 0x30) = puVar4 + 4" (pointer_expression "*(undefined8 **)(lVar5 + 0x30)" * (cast_expression "(undefined8 **)(lVar5 + 0x30)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x30)" ( (binary_expression "lVar5 + 0x30" identifier + number_literal) )))) = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) }))) (expression_statement "uVar13 = uVar13 + 1;" (assignment_expression "uVar13 = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;) (expression_statement "puVar6 = puVar6 + 4;" (assignment_expression "puVar6 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar13 < *(ulong *)(lVar5 + 0x20))" ( (binary_expression "uVar13 < *(ulong *)(lVar5 + 0x20)" identifier < (pointer_expression "*(ulong *)(lVar5 + 0x20)" * (cast_expression "(ulong *)(lVar5 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x20)" ( (binary_expression "lVar5 + 0x20" identifier + number_literal) ))))) )) ;) })) })) })) (expression_statement "*(undefined1 *)param_1[0x1e] = 0;" (assignment_expression "*(undefined1 *)param_1[0x1e] = 0" (pointer_expression "*(undefined1 *)param_1[0x1e]" * (cast_expression "(undefined1 *)param_1[0x1e]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x1e]" identifier [ number_literal ]))) = number_literal) ;) (if_statement "if (*(code **)(*param_1 + 0x18) == FUN_001c5d30) {\n    lVar5 = param_1[6];\n  }\n  else {\n    lVar5 = (**(code **)(*param_1 + 0x18))(param_1);\n  }" if (parenthesized_expression "(*(code **)(*param_1 + 0x18) == FUN_001c5d30)" ( (binary_expression "*(code **)(*param_1 + 0x18) == FUN_001c5d30" (pointer_expression "*(code **)(*param_1 + 0x18)" * (cast_expression "(code **)(*param_1 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x18)" ( (binary_expression "*param_1 + 0x18" (pointer_expression "*param_1" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n    lVar5 = param_1[6];\n  }" { (expression_statement "lVar5 = param_1[6];" (assignment_expression "lVar5 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) }) (else_clause "else {\n    lVar5 = (**(code **)(*param_1 + 0x18))(param_1);\n  }" else (compound_statement "{\n    lVar5 = (**(code **)(*param_1 + 0x18))(param_1);\n  }" { (expression_statement "lVar5 = (**(code **)(*param_1 + 0x18))(param_1);" (assignment_expression "lVar5 = (**(code **)(*param_1 + 0x18))(param_1)" identifier = (call_expression "(**(code **)(*param_1 + 0x18))(param_1)" (parenthesized_expression "(**(code **)(*param_1 + 0x18))" ( (pointer_expression "**(code **)(*param_1 + 0x18)" * (pointer_expression "*(code **)(*param_1 + 0x18)" * (cast_expression "(code **)(*param_1 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x18)" ( (binary_expression "*param_1 + 0x18" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "(param_1)" ( identifier )))) ;) }))) (expression_statement "uVar13 = param_2;" (assignment_expression "uVar13 = param_2" identifier = identifier) ;) (if_statement "if (lVar5 != 0) {\n    uVar13 = lVar5 + -1 + param_2 & -lVar5;\n  }" if (parenthesized_expression "(lVar5 != 0)" ( (binary_expression "lVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar13 = lVar5 + -1 + param_2 & -lVar5;\n  }" { (expression_statement "uVar13 = lVar5 + -1 + param_2 & -lVar5;" (assignment_expression "uVar13 = lVar5 + -1 + param_2 & -lVar5" identifier = (binary_expression "lVar5 + -1 + param_2 & -lVar5" (binary_expression "lVar5 + -1 + param_2" (binary_expression "lVar5 + -1" identifier + number_literal) + identifier) & (unary_expression "-lVar5" - identifier))) ;) })) (expression_statement "puVar9 = (uint *)param_1[0x11];" (assignment_expression "puVar9 = (uint *)param_1[0x11]" identifier = (cast_expression "(uint *)param_1[0x11]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x11]" identifier [ number_literal ]))) ;) (expression_statement "puVar10 = (uint *)param_1[0x12];" (assignment_expression "puVar10 = (uint *)param_1[0x12]" identifier = (cast_expression "(uint *)param_1[0x12]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x12]" identifier [ number_literal ]))) ;) (expression_statement "local_98 = (uint *)0x0;" (assignment_expression "local_98 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_90 = (uint *)0x0;" (assignment_expression "local_90 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_88 = (undefined8 *)0x0;" (assignment_expression "local_88 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (puVar9 == puVar10) {\n    local_88 = (undefined8 *)0x0;\n    local_90 = (uint *)0x0;\n    local_98 = (uint *)0x0;\n  }\n  else {\n    do {\n      while (puVar10 = puVar9, *puVar10 != 0xffffffff) {\n                    \n        lVar5 = FUN_002f0690(0x30);\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;\n        *(undefined8 *)(lVar5 + 0x18) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)(lVar5 + 0x28) = uVar2;\n        FUN_002f4d00(lVar5,param_4);\n        *(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;\n        puVar9 = puVar10 + 8;\n        if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;\n      }\n      if (puVar10[1] == 0) {\n        pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);\n        if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    \n          lVar5 = (*pcVar1)();\n        }\n      }\n      else {\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }\n      uVar14 = uVar13;\n      if (((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0)) {\n        local_68[0] = 0;\n        local_70 = 0;\n        uVar13 = uVar14 - uVar13;\n        local_78 = local_68;\n                    \n        FUN_002f9000(&local_78,uVar13);\n        while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }\n        if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    \n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }\n        puVar4 = (undefined8 *)FUN_002f0690(0x58);\n        uVar13 = local_70;\n        __src = local_78;\n        puVar4[1] = 0;\n        puVar4[5] = 0;\n        puVar4[6] = 0;\n        puVar4[2] = local_70;\n        puVar4[3] = 0xffffffffffffffff;\n        local_b8 = local_70;\n        *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;\n        *puVar4 = &PTR_FUN_00445c48;\n        puVar6 = puVar4 + 9;\n        puVar4[7] = puVar6;\n        if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    \n                    \n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }\n        local_58[0] = local_70;\n        if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    \n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }\n        local_a8 = local_58;\n        puVar4[8] = local_b8;\n        *(undefined1 *)((long)puVar6 + local_b8) = 0;\n        local_40 = 0;\n        local_58[0] = 0xffffffff;\n        local_58[1] = 0;\n        local_48 = puVar4;\n        FUN_00223190(&local_98,local_a8);\n        if (local_78 != local_68) {\n          FUN_002f1e60();\n        }\n      }\n      if (local_90 == (uint *)local_88) {\n        FUN_00220270(&local_98,local_90,puVar10);\n      }\n      else {\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }\n      if ((*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)) {\n        if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    \n                    \n          FUN_0020a520();\n        }\n        lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);\n      }\n      else {\n        lVar5 = *(long *)(puVar10 + 2);\n      }\n      uVar13 = lVar5 + uVar14;\n      puVar9 = puVar10 + 8;\n    } while ((uint *)param_1[0x12] != puVar10 + 8);\nLAB_00210220:\n    puVar9 = puVar10 + 8;\n    puVar10 = (uint *)param_1[0x11];\n  }" if (parenthesized_expression "(puVar9 == puVar10)" ( (binary_expression "puVar9 == puVar10" identifier == identifier) )) (compound_statement "{\n    local_88 = (undefined8 *)0x0;\n    local_90 = (uint *)0x0;\n    local_98 = (uint *)0x0;\n  }" { (expression_statement "local_88 = (undefined8 *)0x0;" (assignment_expression "local_88 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_90 = (uint *)0x0;" (assignment_expression "local_90 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_98 = (uint *)0x0;" (assignment_expression "local_98 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    do {\n      while (puVar10 = puVar9, *puVar10 != 0xffffffff) {\n                    \n        lVar5 = FUN_002f0690(0x30);\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;\n        *(undefined8 *)(lVar5 + 0x18) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)(lVar5 + 0x28) = uVar2;\n        FUN_002f4d00(lVar5,param_4);\n        *(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;\n        puVar9 = puVar10 + 8;\n        if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;\n      }\n      if (puVar10[1] == 0) {\n        pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);\n        if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    \n          lVar5 = (*pcVar1)();\n        }\n      }\n      else {\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }\n      uVar14 = uVar13;\n      if (((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0)) {\n        local_68[0] = 0;\n        local_70 = 0;\n        uVar13 = uVar14 - uVar13;\n        local_78 = local_68;\n                    \n        FUN_002f9000(&local_78,uVar13);\n        while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }\n        if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    \n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }\n        puVar4 = (undefined8 *)FUN_002f0690(0x58);\n        uVar13 = local_70;\n        __src = local_78;\n        puVar4[1] = 0;\n        puVar4[5] = 0;\n        puVar4[6] = 0;\n        puVar4[2] = local_70;\n        puVar4[3] = 0xffffffffffffffff;\n        local_b8 = local_70;\n        *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;\n        *puVar4 = &PTR_FUN_00445c48;\n        puVar6 = puVar4 + 9;\n        puVar4[7] = puVar6;\n        if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    \n                    \n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }\n        local_58[0] = local_70;\n        if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    \n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }\n        local_a8 = local_58;\n        puVar4[8] = local_b8;\n        *(undefined1 *)((long)puVar6 + local_b8) = 0;\n        local_40 = 0;\n        local_58[0] = 0xffffffff;\n        local_58[1] = 0;\n        local_48 = puVar4;\n        FUN_00223190(&local_98,local_a8);\n        if (local_78 != local_68) {\n          FUN_002f1e60();\n        }\n      }\n      if (local_90 == (uint *)local_88) {\n        FUN_00220270(&local_98,local_90,puVar10);\n      }\n      else {\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }\n      if ((*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)) {\n        if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    \n                    \n          FUN_0020a520();\n        }\n        lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);\n      }\n      else {\n        lVar5 = *(long *)(puVar10 + 2);\n      }\n      uVar13 = lVar5 + uVar14;\n      puVar9 = puVar10 + 8;\n    } while ((uint *)param_1[0x12] != puVar10 + 8);\nLAB_00210220:\n    puVar9 = puVar10 + 8;\n    puVar10 = (uint *)param_1[0x11];\n  }" else (compound_statement "{\n    do {\n      while (puVar10 = puVar9, *puVar10 != 0xffffffff) {\n                    \n        lVar5 = FUN_002f0690(0x30);\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;\n        *(undefined8 *)(lVar5 + 0x18) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)(lVar5 + 0x28) = uVar2;\n        FUN_002f4d00(lVar5,param_4);\n        *(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;\n        puVar9 = puVar10 + 8;\n        if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;\n      }\n      if (puVar10[1] == 0) {\n        pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);\n        if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    \n          lVar5 = (*pcVar1)();\n        }\n      }\n      else {\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }\n      uVar14 = uVar13;\n      if (((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0)) {\n        local_68[0] = 0;\n        local_70 = 0;\n        uVar13 = uVar14 - uVar13;\n        local_78 = local_68;\n                    \n        FUN_002f9000(&local_78,uVar13);\n        while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }\n        if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    \n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }\n        puVar4 = (undefined8 *)FUN_002f0690(0x58);\n        uVar13 = local_70;\n        __src = local_78;\n        puVar4[1] = 0;\n        puVar4[5] = 0;\n        puVar4[6] = 0;\n        puVar4[2] = local_70;\n        puVar4[3] = 0xffffffffffffffff;\n        local_b8 = local_70;\n        *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;\n        *puVar4 = &PTR_FUN_00445c48;\n        puVar6 = puVar4 + 9;\n        puVar4[7] = puVar6;\n        if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    \n                    \n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }\n        local_58[0] = local_70;\n        if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    \n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }\n        local_a8 = local_58;\n        puVar4[8] = local_b8;\n        *(undefined1 *)((long)puVar6 + local_b8) = 0;\n        local_40 = 0;\n        local_58[0] = 0xffffffff;\n        local_58[1] = 0;\n        local_48 = puVar4;\n        FUN_00223190(&local_98,local_a8);\n        if (local_78 != local_68) {\n          FUN_002f1e60();\n        }\n      }\n      if (local_90 == (uint *)local_88) {\n        FUN_00220270(&local_98,local_90,puVar10);\n      }\n      else {\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }\n      if ((*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)) {\n        if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    \n                    \n          FUN_0020a520();\n        }\n        lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);\n      }\n      else {\n        lVar5 = *(long *)(puVar10 + 2);\n      }\n      uVar13 = lVar5 + uVar14;\n      puVar9 = puVar10 + 8;\n    } while ((uint *)param_1[0x12] != puVar10 + 8);\nLAB_00210220:\n    puVar9 = puVar10 + 8;\n    puVar10 = (uint *)param_1[0x11];\n  }" { (do_statement "do {\n      while (puVar10 = puVar9, *puVar10 != 0xffffffff) {\n                    \n        lVar5 = FUN_002f0690(0x30);\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;\n        *(undefined8 *)(lVar5 + 0x18) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)(lVar5 + 0x28) = uVar2;\n        FUN_002f4d00(lVar5,param_4);\n        *(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;\n        puVar9 = puVar10 + 8;\n        if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;\n      }\n      if (puVar10[1] == 0) {\n        pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);\n        if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    \n          lVar5 = (*pcVar1)();\n        }\n      }\n      else {\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }\n      uVar14 = uVar13;\n      if (((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0)) {\n        local_68[0] = 0;\n        local_70 = 0;\n        uVar13 = uVar14 - uVar13;\n        local_78 = local_68;\n                    \n        FUN_002f9000(&local_78,uVar13);\n        while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }\n        if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    \n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }\n        puVar4 = (undefined8 *)FUN_002f0690(0x58);\n        uVar13 = local_70;\n        __src = local_78;\n        puVar4[1] = 0;\n        puVar4[5] = 0;\n        puVar4[6] = 0;\n        puVar4[2] = local_70;\n        puVar4[3] = 0xffffffffffffffff;\n        local_b8 = local_70;\n        *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;\n        *puVar4 = &PTR_FUN_00445c48;\n        puVar6 = puVar4 + 9;\n        puVar4[7] = puVar6;\n        if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    \n                    \n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }\n        local_58[0] = local_70;\n        if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    \n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }\n        local_a8 = local_58;\n        puVar4[8] = local_b8;\n        *(undefined1 *)((long)puVar6 + local_b8) = 0;\n        local_40 = 0;\n        local_58[0] = 0xffffffff;\n        local_58[1] = 0;\n        local_48 = puVar4;\n        FUN_00223190(&local_98,local_a8);\n        if (local_78 != local_68) {\n          FUN_002f1e60();\n        }\n      }\n      if (local_90 == (uint *)local_88) {\n        FUN_00220270(&local_98,local_90,puVar10);\n      }\n      else {\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }\n      if ((*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)) {\n        if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    \n                    \n          FUN_0020a520();\n        }\n        lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);\n      }\n      else {\n        lVar5 = *(long *)(puVar10 + 2);\n      }\n      uVar13 = lVar5 + uVar14;\n      puVar9 = puVar10 + 8;\n    } while ((uint *)param_1[0x12] != puVar10 + 8);" do (compound_statement "{\n      while (puVar10 = puVar9, *puVar10 != 0xffffffff) {\n                    \n        lVar5 = FUN_002f0690(0x30);\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;\n        *(undefined8 *)(lVar5 + 0x18) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)(lVar5 + 0x28) = uVar2;\n        FUN_002f4d00(lVar5,param_4);\n        *(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;\n        puVar9 = puVar10 + 8;\n        if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;\n      }\n      if (puVar10[1] == 0) {\n        pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);\n        if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    \n          lVar5 = (*pcVar1)();\n        }\n      }\n      else {\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }\n      uVar14 = uVar13;\n      if (((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0)) {\n        local_68[0] = 0;\n        local_70 = 0;\n        uVar13 = uVar14 - uVar13;\n        local_78 = local_68;\n                    \n        FUN_002f9000(&local_78,uVar13);\n        while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }\n        if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    \n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }\n        puVar4 = (undefined8 *)FUN_002f0690(0x58);\n        uVar13 = local_70;\n        __src = local_78;\n        puVar4[1] = 0;\n        puVar4[5] = 0;\n        puVar4[6] = 0;\n        puVar4[2] = local_70;\n        puVar4[3] = 0xffffffffffffffff;\n        local_b8 = local_70;\n        *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;\n        *puVar4 = &PTR_FUN_00445c48;\n        puVar6 = puVar4 + 9;\n        puVar4[7] = puVar6;\n        if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    \n                    \n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }\n        local_58[0] = local_70;\n        if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    \n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }\n        local_a8 = local_58;\n        puVar4[8] = local_b8;\n        *(undefined1 *)((long)puVar6 + local_b8) = 0;\n        local_40 = 0;\n        local_58[0] = 0xffffffff;\n        local_58[1] = 0;\n        local_48 = puVar4;\n        FUN_00223190(&local_98,local_a8);\n        if (local_78 != local_68) {\n          FUN_002f1e60();\n        }\n      }\n      if (local_90 == (uint *)local_88) {\n        FUN_00220270(&local_98,local_90,puVar10);\n      }\n      else {\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }\n      if ((*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)) {\n        if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    \n                    \n          FUN_0020a520();\n        }\n        lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);\n      }\n      else {\n        lVar5 = *(long *)(puVar10 + 2);\n      }\n      uVar13 = lVar5 + uVar14;\n      puVar9 = puVar10 + 8;\n    }" { (while_statement "while (puVar10 = puVar9, *puVar10 != 0xffffffff) {\n                    \n        lVar5 = FUN_002f0690(0x30);\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;\n        *(undefined8 *)(lVar5 + 0x18) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)(lVar5 + 0x28) = uVar2;\n        FUN_002f4d00(lVar5,param_4);\n        *(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;\n        puVar9 = puVar10 + 8;\n        if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;\n      }" while (parenthesized_expression "(puVar10 = puVar9, *puVar10 != 0xffffffff)" ( (comma_expression "puVar10 = puVar9, *puVar10 != 0xffffffff" (assignment_expression "puVar10 = puVar9" identifier = identifier) , (binary_expression "*puVar10 != 0xffffffff" (pointer_expression "*puVar10" * identifier) != number_literal)) )) (compound_statement "{\n                    \n        lVar5 = FUN_002f0690(0x30);\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;\n        *(undefined8 *)(lVar5 + 0x18) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)(lVar5 + 0x28) = uVar2;\n        FUN_002f4d00(lVar5,param_4);\n        *(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;\n        puVar9 = puVar10 + 8;\n        if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;\n      }" { (expression_statement "lVar5 = FUN_002f0690(0x30);" (assignment_expression "lVar5 = FUN_002f0690(0x30)" identifier = (call_expression "FUN_002f0690(0x30)" identifier (argument_list "(0x30)" ( number_literal )))) ;) (expression_statement "uVar2 = *(undefined8 *)(puVar10 + 2);" (assignment_expression "uVar2 = *(undefined8 *)(puVar10 + 2)" identifier = (pointer_expression "*(undefined8 *)(puVar10 + 2)" * (cast_expression "(undefined8 *)(puVar10 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 2)" ( (binary_expression "puVar10 + 2" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;" (assignment_expression "*(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10" (pointer_expression "*(undefined8 *)(lVar5 + 0x10)" * (cast_expression "(undefined8 *)(lVar5 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)puVar10" * (cast_expression "(undefined8 *)puVar10" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined8 *)(lVar5 + 0x18) = uVar2;" (assignment_expression "*(undefined8 *)(lVar5 + 0x18) = uVar2" (pointer_expression "*(undefined8 *)(lVar5 + 0x18)" * (cast_expression "(undefined8 *)(lVar5 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x18)" ( (binary_expression "lVar5 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = *(undefined8 *)(puVar10 + 6);" (assignment_expression "uVar2 = *(undefined8 *)(puVar10 + 6)" identifier = (pointer_expression "*(undefined8 *)(puVar10 + 6)" * (cast_expression "(undefined8 *)(puVar10 + 6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 6)" ( (binary_expression "puVar10 + 6" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);" (assignment_expression "*(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4)" (pointer_expression "*(undefined8 *)(lVar5 + 0x20)" * (cast_expression "(undefined8 *)(lVar5 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x20)" ( (binary_expression "lVar5 + 0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(puVar10 + 4)" * (cast_expression "(undefined8 *)(puVar10 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(lVar5 + 0x28) = uVar2;" (assignment_expression "*(undefined8 *)(lVar5 + 0x28) = uVar2" (pointer_expression "*(undefined8 *)(lVar5 + 0x28)" * (cast_expression "(undefined8 *)(lVar5 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x28)" ( (binary_expression "lVar5 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_002f4d00(lVar5,param_4);" (call_expression "FUN_002f4d00(lVar5,param_4)" identifier (argument_list "(lVar5,param_4)" ( identifier , identifier ))) ;) (expression_statement "*(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;" (assignment_expression "*(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1" (pointer_expression "*(long *)(param_4 + 0x10)" * (cast_expression "(long *)(param_4 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x10)" ( (binary_expression "param_4 + 0x10" identifier + number_literal) )))) = (binary_expression "*(long *)(param_4 + 0x10) + 1" (pointer_expression "*(long *)(param_4 + 0x10)" * (cast_expression "(long *)(param_4 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x10)" ( (binary_expression "param_4 + 0x10" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "puVar9 = puVar10 + 8;" (assignment_expression "puVar9 = puVar10 + 8" identifier = (binary_expression "puVar10 + 8" identifier + number_literal)) ;) (if_statement "if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;" if (parenthesized_expression "((uint *)param_1[0x12] == puVar10 + 8)" ( (binary_expression "(uint *)param_1[0x12] == puVar10 + 8" (cast_expression "(uint *)param_1[0x12]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x12]" identifier [ number_literal ])) == (binary_expression "puVar10 + 8" identifier + number_literal)) )) (goto_statement "goto LAB_00210220;" goto statement_identifier ;)) })) (if_statement "if (puVar10[1] == 0) {\n        pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);\n        if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    \n          lVar5 = (*pcVar1)();\n        }\n      }\n      else {\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }" if (parenthesized_expression "(puVar10[1] == 0)" ( (binary_expression "puVar10[1] == 0" (subscript_expression "puVar10[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);\n        if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    \n          lVar5 = (*pcVar1)();\n        }\n      }" { (expression_statement "pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);" (assignment_expression "pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18)" identifier = (pointer_expression "*(code **)(**(long **)(puVar10 + 4) + 0x18)" * (cast_expression "(code **)(**(long **)(puVar10 + 4) + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(puVar10 + 4) + 0x18)" ( (binary_expression "**(long **)(puVar10 + 4) + 0x18" (pointer_expression "**(long **)(puVar10 + 4)" * (pointer_expression "*(long **)(puVar10 + 4)" * (cast_expression "(long **)(puVar10 + 4)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    \n          lVar5 = (*pcVar1)();\n        }" if (parenthesized_expression "(pcVar1 == FUN_00172c90)" ( (binary_expression "pcVar1 == FUN_00172c90" identifier == identifier) )) (compound_statement "{\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }" { (expression_statement "lVar5 = (*(long **)(puVar10 + 4))[6];" (assignment_expression "lVar5 = (*(long **)(puVar10 + 4))[6]" identifier = (subscript_expression "(*(long **)(puVar10 + 4))[6]" (parenthesized_expression "(*(long **)(puVar10 + 4))" ( (pointer_expression "*(long **)(puVar10 + 4)" * (cast_expression "(long **)(puVar10 + 4)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) )) [ number_literal ])) ;) }) (else_clause "else {\n                    \n          lVar5 = (*pcVar1)();\n        }" else (compound_statement "{\n                    \n          lVar5 = (*pcVar1)();\n        }" { (expression_statement "lVar5 = (*pcVar1)();" (assignment_expression "lVar5 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) }))) }) (else_clause "else {\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }" else (compound_statement "{\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }" { (expression_statement "lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);" (assignment_expression "lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f)" identifier = (binary_expression "1L << ((char)puVar10[1] - 1U & 0x3f)" number_literal << (parenthesized_expression "((char)puVar10[1] - 1U & 0x3f)" ( (binary_expression "(char)puVar10[1] - 1U & 0x3f" (binary_expression "(char)puVar10[1] - 1U" (cast_expression "(char)puVar10[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "puVar10[1]" identifier [ number_literal ])) - number_literal) & number_literal) )))) ;) }))) (expression_statement "uVar14 = uVar13;" (assignment_expression "uVar14 = uVar13" identifier = identifier) ;) (if_statement "if (((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0)) {\n        local_68[0] = 0;\n        local_70 = 0;\n        uVar13 = uVar14 - uVar13;\n        local_78 = local_68;\n                    \n        FUN_002f9000(&local_78,uVar13);\n        while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }\n        if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    \n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }\n        puVar4 = (undefined8 *)FUN_002f0690(0x58);\n        uVar13 = local_70;\n        __src = local_78;\n        puVar4[1] = 0;\n        puVar4[5] = 0;\n        puVar4[6] = 0;\n        puVar4[2] = local_70;\n        puVar4[3] = 0xffffffffffffffff;\n        local_b8 = local_70;\n        *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;\n        *puVar4 = &PTR_FUN_00445c48;\n        puVar6 = puVar4 + 9;\n        puVar4[7] = puVar6;\n        if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    \n                    \n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }\n        local_58[0] = local_70;\n        if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    \n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }\n        local_a8 = local_58;\n        puVar4[8] = local_b8;\n        *(undefined1 *)((long)puVar6 + local_b8) = 0;\n        local_40 = 0;\n        local_58[0] = 0xffffffff;\n        local_58[1] = 0;\n        local_48 = puVar4;\n        FUN_00223190(&local_98,local_a8);\n        if (local_78 != local_68) {\n          FUN_002f1e60();\n        }\n      }" if (parenthesized_expression "(((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0))" ( (binary_expression "((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0)" (parenthesized_expression "((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14))" ( (binary_expression "(lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)" (parenthesized_expression "(lVar5 != 0)" ( (binary_expression "lVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)" ( (comma_expression "uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14" (assignment_expression "uVar14 = (uVar13 - 1) + lVar5 & -lVar5" identifier = (binary_expression "(uVar13 - 1) + lVar5 & -lVar5" (binary_expression "(uVar13 - 1) + lVar5" (parenthesized_expression "(uVar13 - 1)" ( (binary_expression "uVar13 - 1" identifier - number_literal) )) + identifier) & (unary_expression "-lVar5" - identifier))) , (binary_expression "uVar13 != uVar14" identifier != identifier)) ))) )) && (parenthesized_expression "(param_3[1] != 0)" ( (binary_expression "param_3[1] != 0" (subscript_expression "param_3[1]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n        local_68[0] = 0;\n        local_70 = 0;\n        uVar13 = uVar14 - uVar13;\n        local_78 = local_68;\n                    \n        FUN_002f9000(&local_78,uVar13);\n        while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }\n        if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    \n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }\n        puVar4 = (undefined8 *)FUN_002f0690(0x58);\n        uVar13 = local_70;\n        __src = local_78;\n        puVar4[1] = 0;\n        puVar4[5] = 0;\n        puVar4[6] = 0;\n        puVar4[2] = local_70;\n        puVar4[3] = 0xffffffffffffffff;\n        local_b8 = local_70;\n        *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;\n        *puVar4 = &PTR_FUN_00445c48;\n        puVar6 = puVar4 + 9;\n        puVar4[7] = puVar6;\n        if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    \n                    \n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }\n        local_58[0] = local_70;\n        if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    \n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }\n        local_a8 = local_58;\n        puVar4[8] = local_b8;\n        *(undefined1 *)((long)puVar6 + local_b8) = 0;\n        local_40 = 0;\n        local_58[0] = 0xffffffff;\n        local_58[1] = 0;\n        local_48 = puVar4;\n        FUN_00223190(&local_98,local_a8);\n        if (local_78 != local_68) {\n          FUN_002f1e60();\n        }\n      }" { (expression_statement "local_68[0] = 0;" (assignment_expression "local_68[0] = 0" (subscript_expression "local_68[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (expression_statement "uVar13 = uVar14 - uVar13;" (assignment_expression "uVar13 = uVar14 - uVar13" identifier = (binary_expression "uVar14 - uVar13" identifier - identifier)) ;) (expression_statement "local_78 = local_68;" (assignment_expression "local_78 = local_68" identifier = identifier) ;) (expression_statement "FUN_002f9000(&local_78,uVar13);" (call_expression "FUN_002f9000(&local_78,uVar13)" identifier (argument_list "(&local_78,uVar13)" ( (pointer_expression "&local_78" & identifier) , identifier ))) ;) (while_statement "while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }" while (parenthesized_expression "(uVar8 = param_3[1], local_70 + uVar8 <= uVar13)" ( (comma_expression "uVar8 = param_3[1], local_70 + uVar8 <= uVar13" (assignment_expression "uVar8 = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) , (binary_expression "local_70 + uVar8 <= uVar13" (binary_expression "local_70 + uVar8" identifier + identifier) <= identifier)) )) (compound_statement "{\n          FUN_002fa0e0(&local_78,*param_3);\n        }" { (expression_statement "FUN_002fa0e0(&local_78,*param_3);" (call_expression "FUN_002fa0e0(&local_78,*param_3)" identifier (argument_list "(&local_78,*param_3)" ( (pointer_expression "&local_78" & identifier) , (pointer_expression "*param_3" * identifier) ))) ;) })) (if_statement "if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    \n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }" if (parenthesized_expression "(local_70 < uVar13)" ( (binary_expression "local_70 < uVar13" identifier < identifier) )) (compound_statement "{\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    \n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }" { (if_statement "if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }" if (parenthesized_expression "(uVar13 - local_70 <= uVar8)" ( (binary_expression "uVar13 - local_70 <= uVar8" (binary_expression "uVar13 - local_70" identifier - identifier) <= identifier) )) (compound_statement "{\n            uVar8 = uVar13 - local_70;\n          }" { (expression_statement "uVar8 = uVar13 - local_70;" (assignment_expression "uVar8 = uVar13 - local_70" identifier = (binary_expression "uVar13 - local_70" identifier - identifier)) ;) })) (expression_statement "FUN_002fa0e0(&local_78,*param_3,uVar8);" (call_expression "FUN_002fa0e0(&local_78,*param_3,uVar8)" identifier (argument_list "(&local_78,*param_3,uVar8)" ( (pointer_expression "&local_78" & identifier) , (pointer_expression "*param_3" * identifier) , identifier ))) ;) })) (expression_statement "puVar4 = (undefined8 *)FUN_002f0690(0x58);" (assignment_expression "puVar4 = (undefined8 *)FUN_002f0690(0x58)" identifier = (cast_expression "(undefined8 *)FUN_002f0690(0x58)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002f0690(0x58)" identifier (argument_list "(0x58)" ( number_literal ))))) ;) (expression_statement "uVar13 = local_70;" (assignment_expression "uVar13 = local_70" identifier = identifier) ;) (expression_statement "__src = local_78;" (assignment_expression "__src = local_78" identifier = identifier) ;) (expression_statement "puVar4[1] = 0;" (assignment_expression "puVar4[1] = 0" (subscript_expression "puVar4[1]" 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] = 0;" (assignment_expression "puVar4[6] = 0" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[2] = local_70;" (assignment_expression "puVar4[2] = local_70" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = 0xffffffffffffffff;" (assignment_expression "puVar4[3] = 0xffffffffffffffff" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_b8 = local_70;" (assignment_expression "local_b8 = local_70" identifier = identifier) ;) (expression_statement "*(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10" (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 | 10" (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) | number_literal)) ;) (expression_statement "*puVar4 = &PTR_FUN_00445c48;" (assignment_expression "*puVar4 = &PTR_FUN_00445c48" (pointer_expression "*puVar4" * identifier) = (pointer_expression "&PTR_FUN_00445c48" & identifier)) ;) (expression_statement "puVar6 = puVar4 + 9;" (assignment_expression "puVar6 = puVar4 + 9" identifier = (binary_expression "puVar4 + 9" identifier + number_literal)) ;) (expression_statement "puVar4[7] = puVar6;" (assignment_expression "puVar4[7] = puVar6" (subscript_expression "puVar4[7]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    \n                    \n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }" if (parenthesized_expression "((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0))" ( (binary_expression "(local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)" (parenthesized_expression "(local_78 + local_70 != (undefined1 *)0x0)" ( (binary_expression "local_78 + local_70 != (undefined1 *)0x0" (binary_expression "local_78 + local_70" identifier + identifier) != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_78 == (undefined1 *)0x0)" ( (binary_expression "local_78 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                    \n                    \n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }" { (expression_statement "FUN_003306d0("basic_string::_M_construct null not valid");" (call_expression "FUN_003306d0("basic_string::_M_construct null not valid")" identifier (argument_list "("basic_string::_M_construct null not valid")" ( (string_literal ""basic_string::_M_construct null not valid"" " string_content ") ))) ;) })) (expression_statement "local_58[0] = local_70;" (assignment_expression "local_58[0] = local_70" (subscript_expression "local_58[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    \n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }" if (parenthesized_expression "(local_70 < 0x10)" ( (binary_expression "local_70 < 0x10" identifier < number_literal) )) (compound_statement "{\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }" { (if_statement "if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;" if (parenthesized_expression "(local_70 == 1)" ( (binary_expression "local_70 == 1" identifier == number_literal) )) (compound_statement "{\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }" { (expression_statement "*(undefined1 *)(puVar4 + 9) = *local_78;" (assignment_expression "*(undefined1 *)(puVar4 + 9) = *local_78" (pointer_expression "*(undefined1 *)(puVar4 + 9)" * (cast_expression "(undefined1 *)(puVar4 + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 9)" ( (binary_expression "puVar4 + 9" identifier + number_literal) )))) = (pointer_expression "*local_78" * identifier)) ;) }) (else_clause "else if (local_70 != 0) goto LAB_002105af;" else (if_statement "if (local_70 != 0) goto LAB_002105af;" if (parenthesized_expression "(local_70 != 0)" ( (binary_expression "local_70 != 0" identifier != number_literal) )) (goto_statement "goto LAB_002105af;" goto statement_identifier ;)))) }) (else_clause "else {\n                    \n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }" else (compound_statement "{\n                    \n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }" { (expression_statement "puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);" (assignment_expression "puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0)" identifier = (cast_expression "(undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002f8790(puVar4 + 7,local_58,0)" identifier (argument_list "(puVar4 + 7,local_58,0)" ( (binary_expression "puVar4 + 7" identifier + number_literal) , identifier , number_literal ))))) ;) (expression_statement "puVar4[7] = puVar6;" (assignment_expression "puVar4[7] = puVar6" (subscript_expression "puVar4[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[9] = local_58[0];" (assignment_expression "puVar4[9] = local_58[0]" (subscript_expression "puVar4[9]" identifier [ number_literal ]) = (subscript_expression "local_58[0]" identifier [ number_literal ])) ;) (labeled_statement "LAB_002105af:\n          memcpy(puVar6,__src,uVar13);" statement_identifier : (expression_statement "memcpy(puVar6,__src,uVar13);" (call_expression "memcpy(puVar6,__src,uVar13)" identifier (argument_list "(puVar6,__src,uVar13)" ( identifier , identifier , identifier ))) ;)) (expression_statement "local_b8 = local_58[0];" (assignment_expression "local_b8 = local_58[0]" identifier = (subscript_expression "local_58[0]" identifier [ number_literal ])) ;) (expression_statement "puVar6 = (undefined8 *)puVar4[7];" (assignment_expression "puVar6 = (undefined8 *)puVar4[7]" identifier = (cast_expression "(undefined8 *)puVar4[7]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[7]" identifier [ number_literal ]))) ;) }))) (expression_statement "local_a8 = local_58;" (assignment_expression "local_a8 = local_58" identifier = identifier) ;) (expression_statement "puVar4[8] = local_b8;" (assignment_expression "puVar4[8] = local_b8" (subscript_expression "puVar4[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((long)puVar6 + local_b8) = 0;" (assignment_expression "*(undefined1 *)((long)puVar6 + local_b8) = 0" (pointer_expression "*(undefined1 *)((long)puVar6 + local_b8)" * (cast_expression "(undefined1 *)((long)puVar6 + local_b8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar6 + local_b8)" ( (binary_expression "(long)puVar6 + local_b8" (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_58[0] = 0xffffffff;" (assignment_expression "local_58[0] = 0xffffffff" (subscript_expression "local_58[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_58[1] = 0;" (assignment_expression "local_58[1] = 0" (subscript_expression "local_58[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_48 = puVar4;" (assignment_expression "local_48 = puVar4" identifier = identifier) ;) (expression_statement "FUN_00223190(&local_98,local_a8);" (call_expression "FUN_00223190(&local_98,local_a8)" identifier (argument_list "(&local_98,local_a8)" ( (pointer_expression "&local_98" & identifier) , identifier ))) ;) (if_statement "if (local_78 != local_68) {\n          FUN_002f1e60();\n        }" if (parenthesized_expression "(local_78 != local_68)" ( (binary_expression "local_78 != local_68" identifier != identifier) )) (compound_statement "{\n          FUN_002f1e60();\n        }" { (expression_statement "FUN_002f1e60();" (call_expression "FUN_002f1e60()" identifier (argument_list "()" ( ))) ;) })) })) (if_statement "if (local_90 == (uint *)local_88) {\n        FUN_00220270(&local_98,local_90,puVar10);\n      }\n      else {\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }" if (parenthesized_expression "(local_90 == (uint *)local_88)" ( (binary_expression "local_90 == (uint *)local_88" identifier == (cast_expression "(uint *)local_88" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n        FUN_00220270(&local_98,local_90,puVar10);\n      }" { (expression_statement "FUN_00220270(&local_98,local_90,puVar10);" (call_expression "FUN_00220270(&local_98,local_90,puVar10)" identifier (argument_list "(&local_98,local_90,puVar10)" ( (pointer_expression "&local_98" & identifier) , identifier , identifier ))) ;) }) (else_clause "else {\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }" else (compound_statement "{\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }" { (expression_statement "uVar2 = *(undefined8 *)(puVar10 + 2);" (assignment_expression "uVar2 = *(undefined8 *)(puVar10 + 2)" identifier = (pointer_expression "*(undefined8 *)(puVar10 + 2)" * (cast_expression "(undefined8 *)(puVar10 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 2)" ( (binary_expression "puVar10 + 2" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)local_90 = *(undefined8 *)puVar10;" (assignment_expression "*(undefined8 *)local_90 = *(undefined8 *)puVar10" (pointer_expression "*(undefined8 *)local_90" * (cast_expression "(undefined8 *)local_90" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined8 *)puVar10" * (cast_expression "(undefined8 *)puVar10" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined8 *)((long)local_90 + 8) = uVar2;" (assignment_expression "*(undefined8 *)((long)local_90 + 8) = uVar2" (pointer_expression "*(undefined8 *)((long)local_90 + 8)" * (cast_expression "(undefined8 *)((long)local_90 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_90 + 8)" ( (binary_expression "(long)local_90 + 8" (cast_expression "(long)local_90" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = *(undefined8 *)(puVar10 + 6);" (assignment_expression "uVar2 = *(undefined8 *)(puVar10 + 6)" identifier = (pointer_expression "*(undefined8 *)(puVar10 + 6)" * (cast_expression "(undefined8 *)(puVar10 + 6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 6)" ( (binary_expression "puVar10 + 6" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);" (assignment_expression "*(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4)" (pointer_expression "*(undefined8 *)((long)local_90 + 0x10)" * (cast_expression "(undefined8 *)((long)local_90 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_90 + 0x10)" ( (binary_expression "(long)local_90 + 0x10" (cast_expression "(long)local_90" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined8 *)(puVar10 + 4)" * (cast_expression "(undefined8 *)(puVar10 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)((long)local_90 + 0x18) = uVar2;" (assignment_expression "*(undefined8 *)((long)local_90 + 0x18) = uVar2" (pointer_expression "*(undefined8 *)((long)local_90 + 0x18)" * (cast_expression "(undefined8 *)((long)local_90 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_90 + 0x18)" ( (binary_expression "(long)local_90 + 0x18" (cast_expression "(long)local_90" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_90 = (uint *)((long)local_90 + 0x20);" (assignment_expression "local_90 = (uint *)((long)local_90 + 0x20)" identifier = (cast_expression "(uint *)((long)local_90 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_90 + 0x20)" ( (binary_expression "(long)local_90 + 0x20" (cast_expression "(long)local_90" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) }))) (if_statement "if ((*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)) {\n        if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    \n                    \n          FUN_0020a520();\n        }\n        lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);\n      }\n      else {\n        lVar5 = *(long *)(puVar10 + 2);\n      }" if (parenthesized_expression "((*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10))" ( (binary_expression "(*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)" (parenthesized_expression "(*puVar10 + 4 < 4)" ( (binary_expression "*puVar10 + 4 < 4" (binary_expression "*puVar10 + 4" (pointer_expression "*puVar10" * identifier) + number_literal) < number_literal) )) && (parenthesized_expression "(FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)" ( (comma_expression "FUN_0020ab90(puVar10), 0xfffffffb < *puVar10" (call_expression "FUN_0020ab90(puVar10)" identifier (argument_list "(puVar10)" ( identifier ))) , (binary_expression "0xfffffffb < *puVar10" number_literal < (pointer_expression "*puVar10" * identifier))) ))) )) (compound_statement "{\n        if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    \n                    \n          FUN_0020a520();\n        }\n        lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);\n      }" { (if_statement "if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    \n                    \n          FUN_0020a520();\n        }" if (parenthesized_expression "((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2)" ( (binary_expression "*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2" (pointer_expression "*(byte *)(*(long *)(puVar10 + 4) + 0x20)" * (cast_expression "(byte *)(*(long *)(puVar10 + 4) + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(puVar10 + 4) + 0x20)" ( (binary_expression "*(long *)(puVar10 + 4) + 0x20" (pointer_expression "*(long *)(puVar10 + 4)" * (cast_expression "(long *)(puVar10 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    \n                    \n          FUN_0020a520();\n        }" { (expression_statement "FUN_0020a520();" (call_expression "FUN_0020a520()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);" (assignment_expression "lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10)" identifier = (pointer_expression "*(long *)(*(long *)(puVar10 + 4) + 0x10)" * (cast_expression "(long *)(*(long *)(puVar10 + 4) + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(puVar10 + 4) + 0x10)" ( (binary_expression "*(long *)(puVar10 + 4) + 0x10" (pointer_expression "*(long *)(puVar10 + 4)" * (cast_expression "(long *)(puVar10 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n        lVar5 = *(long *)(puVar10 + 2);\n      }" else (compound_statement "{\n        lVar5 = *(long *)(puVar10 + 2);\n      }" { (expression_statement "lVar5 = *(long *)(puVar10 + 2);" (assignment_expression "lVar5 = *(long *)(puVar10 + 2)" identifier = (pointer_expression "*(long *)(puVar10 + 2)" * (cast_expression "(long *)(puVar10 + 2)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 2)" ( (binary_expression "puVar10 + 2" identifier + number_literal) ))))) ;) }))) (expression_statement "uVar13 = lVar5 + uVar14;" (assignment_expression "uVar13 = lVar5 + uVar14" identifier = (binary_expression "lVar5 + uVar14" identifier + identifier)) ;) (expression_statement "puVar9 = puVar10 + 8;" (assignment_expression "puVar9 = puVar10 + 8" identifier = (binary_expression "puVar10 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "((uint *)param_1[0x12] != puVar10 + 8)" ( (binary_expression "(uint *)param_1[0x12] != puVar10 + 8" (cast_expression "(uint *)param_1[0x12]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x12]" identifier [ number_literal ])) != (binary_expression "puVar10 + 8" identifier + number_literal)) )) ;) (labeled_statement "LAB_00210220:\n    puVar9 = puVar10 + 8;" statement_identifier : (expression_statement "puVar9 = puVar10 + 8;" (assignment_expression "puVar9 = puVar10 + 8" identifier = (binary_expression "puVar10 + 8" identifier + number_literal)) ;)) (expression_statement "puVar10 = (uint *)param_1[0x11];" (assignment_expression "puVar10 = (uint *)param_1[0x11]" identifier = (cast_expression "(uint *)param_1[0x11]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x11]" identifier [ number_literal ]))) ;) }))) (expression_statement "param_1[0x12] = (long)local_90;" (assignment_expression "param_1[0x12] = (long)local_90" (subscript_expression "param_1[0x12]" identifier [ number_literal ]) = (cast_expression "(long)local_90" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "lVar5 = param_1[0x13];" (assignment_expression "lVar5 = param_1[0x13]" identifier = (subscript_expression "param_1[0x13]" identifier [ number_literal ])) ;) (expression_statement "param_1[0x11] = (long)local_98;" (assignment_expression "param_1[0x11] = (long)local_98" (subscript_expression "param_1[0x11]" identifier [ number_literal ]) = (cast_expression "(long)local_98" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "param_1[0x13] = (long)local_88;" (assignment_expression "param_1[0x13] = (long)local_88" (subscript_expression "param_1[0x13]" identifier [ number_literal ]) = (cast_expression "(long)local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "param_1[0x14] = 0;" (assignment_expression "param_1[0x14] = 0" (subscript_expression "param_1[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_98 = puVar10;" (assignment_expression "local_98 = puVar10" identifier = identifier) ;) (expression_statement "local_90 = puVar9;" (assignment_expression "local_90 = puVar9" identifier = identifier) ;) (expression_statement "local_88 = (undefined8 *)lVar5;" (assignment_expression "local_88 = (undefined8 *)lVar5" identifier = (cast_expression "(undefined8 *)lVar5" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((*(byte *)(param_1 + 4) & 2) != 0) {\n                    \n    FUN_0018ff20("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }" if (parenthesized_expression "((*(byte *)(param_1 + 4) & 2) != 0)" ( (binary_expression "(*(byte *)(param_1 + 4) & 2) != 0" (parenthesized_expression "(*(byte *)(param_1 + 4) & 2)" ( (binary_expression "*(byte *)(param_1 + 4) & 2" (pointer_expression "*(byte *)(param_1 + 4)" * (cast_expression "(byte *)(param_1 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    \n    FUN_0018ff20("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }" { (expression_statement "FUN_0018ff20("../../gold/output.h",0x231,"set_current_data_size_for_child");" (call_expression "FUN_0018ff20("../../gold/output.h",0x231,"set_current_data_size_for_child")" identifier (argument_list "("../../gold/output.h",0x231,"set_current_data_size_for_child")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_current_data_size_for_child"" " string_content ") ))) ;) })) (expression_statement "param_1[2] = uVar13 - param_2;" (assignment_expression "param_1[2] = uVar13 - param_2" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (binary_expression "uVar13 - param_2" identifier - identifier)) ;) (if_statement "if (puVar10 != (uint *)0x0) {\n    FUN_002f1e60();\n  }" if (parenthesized_expression "(puVar10 != (uint *)0x0)" ( (binary_expression "puVar10 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_002f1e60();\n  }" { (expression_statement "FUN_002f1e60();" (call_expression "FUN_002f1e60()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return uVar13 - param_2;" return (binary_expression "uVar13 - param_2" identifier - identifier) ;) })))
(translation_unit (function_definition (sized_type_specifier long) (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT >> LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (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) )))) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) >> LIT) ))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (for_statement for ( ; (binary_expression IDENT != IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (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 < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) [ LIT ]) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) >> LIT) )))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (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)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })) })) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT + LIT) + IDENT) & (unary_expression - IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (pointer_expression * IDENT) != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == (binary_expression IDENT + LIT)) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) - LIT) & LIT) )))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) + IDENT) & (unary_expression - IDENT))) , (binary_expression IDENT != IDENT)) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (binary_expression (binary_expression IDENT + IDENT) <= IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * IDENT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * IDENT) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = 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 ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT ))) ;) }) (else_clause else (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) + LIT) < LIT) )) && (parenthesized_expression ( (comma_expression (call_expression IDENT (argument_list ( IDENT ))) , (binary_expression LIT < (pointer_expression * IDENT))) ))) )) (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 (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (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) ))))) ;) }) (else_clause else (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 = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (binary_expression IDENT + LIT)) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return (binary_expression IDENT - IDENT) ;) })))
(function_definition "long FUN_00210070(long *param_1,ulong param_2,undefined8 *param_3,long param_4)\n\n{\n  code *pcVar1;\n  undefined8 uVar2;\n  undefined8 *puVar3;\n  undefined1 *__src;\n  undefined8 *puVar4;\n  long lVar5;\n  undefined8 *puVar6;\n  undefined8 *puVar7;\n  ulong uVar8;\n  uint *puVar9;\n  uint *puVar10;\n  undefined8 *puVar11;\n  long lVar12;\n  ulong uVar13;\n  ulong uVar14;\n  ulong local_b8;\n  ulong *local_a8;\n  uint *local_98;\n  uint *local_90;\n  undefined8 *local_88;\n  undefined1 *local_78;\n  ulong local_70;\n  undefined1 local_68 [16];\n  ulong local_58 [2];\n  undefined8 *local_48;\n  undefined4 local_40;\n  \n  lVar5 = param_1[0x1d];\n  if (lVar5 != 0) {\n    puVar6 = *(undefined8 **)(lVar5 + 0x30);\n    puVar4 = *(undefined8 **)(lVar5 + 0x28);\n    uVar13 = *(ulong *)(lVar5 + 0x20);\n    lVar12 = (long)puVar6 - (long)puVar4;\n    if (uVar13 != lVar12 >> 5) {\n      if (0x7ffffffffffffff < uVar13) {\n                    \n        FUN_00330790("vector::reserve");\n      }\n      uVar14 = uVar13;\n      if ((ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5) < uVar13) {\n        puVar3 = puVar4;\n        if (uVar13 == 0) {\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }\n        else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }\n        for (; puVar6 != puVar3; puVar3 = puVar3 + 4) {\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }\n        if (puVar11 != (undefined8 *)0x0) {\n          FUN_002f1e60();\n        }\n        puVar6 = (undefined8 *)((long)puVar4 + lVar12);\n        *(undefined8 **)(lVar5 + 0x28) = puVar4;\n        *(undefined8 **)(lVar5 + 0x30) = puVar6;\n        uVar14 = *(ulong *)(lVar5 + 0x20);\n        *(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4;\n      }\n      if (puVar4 != puVar6) {\n        *(undefined8 **)(lVar5 + 0x30) = puVar4;\n      }\n      puVar6 = (undefined8 *)**(long **)(lVar5 + 0x18);\n      if (uVar14 < (ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)) {\n                    \n        FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections");\n      }\n      if (uVar14 != 0) {\n        uVar13 = 0;\n        do {\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        } while (uVar13 < *(ulong *)(lVar5 + 0x20));\n      }\n    }\n  }\n  *(undefined1 *)param_1[0x1e] = 0;\n  if (*(code **)(*param_1 + 0x18) == FUN_001c5d30) {\n    lVar5 = param_1[6];\n  }\n  else {\n    lVar5 = (**(code **)(*param_1 + 0x18))(param_1);\n  }\n  uVar13 = param_2;\n  if (lVar5 != 0) {\n    uVar13 = lVar5 + -1 + param_2 & -lVar5;\n  }\n  puVar9 = (uint *)param_1[0x11];\n  puVar10 = (uint *)param_1[0x12];\n  local_98 = (uint *)0x0;\n  local_90 = (uint *)0x0;\n  local_88 = (undefined8 *)0x0;\n  if (puVar9 == puVar10) {\n    local_88 = (undefined8 *)0x0;\n    local_90 = (uint *)0x0;\n    local_98 = (uint *)0x0;\n  }\n  else {\n    do {\n      while (puVar10 = puVar9, *puVar10 != 0xffffffff) {\n                    \n        lVar5 = FUN_002f0690(0x30);\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;\n        *(undefined8 *)(lVar5 + 0x18) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)(lVar5 + 0x28) = uVar2;\n        FUN_002f4d00(lVar5,param_4);\n        *(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;\n        puVar9 = puVar10 + 8;\n        if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;\n      }\n      if (puVar10[1] == 0) {\n        pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);\n        if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    \n          lVar5 = (*pcVar1)();\n        }\n      }\n      else {\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }\n      uVar14 = uVar13;\n      if (((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0)) {\n        local_68[0] = 0;\n        local_70 = 0;\n        uVar13 = uVar14 - uVar13;\n        local_78 = local_68;\n                    \n        FUN_002f9000(&local_78,uVar13);\n        while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }\n        if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    \n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }\n        puVar4 = (undefined8 *)FUN_002f0690(0x58);\n        uVar13 = local_70;\n        __src = local_78;\n        puVar4[1] = 0;\n        puVar4[5] = 0;\n        puVar4[6] = 0;\n        puVar4[2] = local_70;\n        puVar4[3] = 0xffffffffffffffff;\n        local_b8 = local_70;\n        *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;\n        *puVar4 = &PTR_FUN_00445c48;\n        puVar6 = puVar4 + 9;\n        puVar4[7] = puVar6;\n        if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    \n                    \n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }\n        local_58[0] = local_70;\n        if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    \n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }\n        local_a8 = local_58;\n        puVar4[8] = local_b8;\n        *(undefined1 *)((long)puVar6 + local_b8) = 0;\n        local_40 = 0;\n        local_58[0] = 0xffffffff;\n        local_58[1] = 0;\n        local_48 = puVar4;\n        FUN_00223190(&local_98,local_a8);\n        if (local_78 != local_68) {\n          FUN_002f1e60();\n        }\n      }\n      if (local_90 == (uint *)local_88) {\n        FUN_00220270(&local_98,local_90,puVar10);\n      }\n      else {\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }\n      if ((*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)) {\n        if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    \n                    \n          FUN_0020a520();\n        }\n        lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);\n      }\n      else {\n        lVar5 = *(long *)(puVar10 + 2);\n      }\n      uVar13 = lVar5 + uVar14;\n      puVar9 = puVar10 + 8;\n    } while ((uint *)param_1[0x12] != puVar10 + 8);\nLAB_00210220:\n    puVar9 = puVar10 + 8;\n    puVar10 = (uint *)param_1[0x11];\n  }\n  param_1[0x12] = (long)local_90;\n  lVar5 = param_1[0x13];\n  param_1[0x11] = (long)local_98;\n  param_1[0x13] = (long)local_88;\n  param_1[0x14] = 0;\n  local_98 = puVar10;\n  local_90 = puVar9;\n  local_88 = (undefined8 *)lVar5;\n  if ((*(byte *)(param_1 + 4) & 2) != 0) {\n                    \n    FUN_0018ff20("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }\n  param_1[2] = uVar13 - param_2;\n  if (puVar10 != (uint *)0x0) {\n    FUN_002f1e60();\n  }\n  return uVar13 - param_2;\n}" (sized_type_specifier "long" (long "long")) (function_declarator "FUN_00210070(long *param_1,ulong param_2,undefined8 *param_3,long param_4)" (identifier "FUN_00210070") (parameter_list "(long *param_1,ulong param_2,undefined8 *param_3,long param_4)" (( "(") (parameter_declaration "long *param_1" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "ulong param_2" (type_identifier "ulong") (identifier "param_2")) (, ",") (parameter_declaration "undefined8 *param_3" (type_identifier "undefined8") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "long param_4" (sized_type_specifier "long" (long "long")) (identifier "param_4")) () ")"))) (compound_statement "{\n  code *pcVar1;\n  undefined8 uVar2;\n  undefined8 *puVar3;\n  undefined1 *__src;\n  undefined8 *puVar4;\n  long lVar5;\n  undefined8 *puVar6;\n  undefined8 *puVar7;\n  ulong uVar8;\n  uint *puVar9;\n  uint *puVar10;\n  undefined8 *puVar11;\n  long lVar12;\n  ulong uVar13;\n  ulong uVar14;\n  ulong local_b8;\n  ulong *local_a8;\n  uint *local_98;\n  uint *local_90;\n  undefined8 *local_88;\n  undefined1 *local_78;\n  ulong local_70;\n  undefined1 local_68 [16];\n  ulong local_58 [2];\n  undefined8 *local_48;\n  undefined4 local_40;\n  \n  lVar5 = param_1[0x1d];\n  if (lVar5 != 0) {\n    puVar6 = *(undefined8 **)(lVar5 + 0x30);\n    puVar4 = *(undefined8 **)(lVar5 + 0x28);\n    uVar13 = *(ulong *)(lVar5 + 0x20);\n    lVar12 = (long)puVar6 - (long)puVar4;\n    if (uVar13 != lVar12 >> 5) {\n      if (0x7ffffffffffffff < uVar13) {\n                    \n        FUN_00330790("vector::reserve");\n      }\n      uVar14 = uVar13;\n      if ((ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5) < uVar13) {\n        puVar3 = puVar4;\n        if (uVar13 == 0) {\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }\n        else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }\n        for (; puVar6 != puVar3; puVar3 = puVar3 + 4) {\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }\n        if (puVar11 != (undefined8 *)0x0) {\n          FUN_002f1e60();\n        }\n        puVar6 = (undefined8 *)((long)puVar4 + lVar12);\n        *(undefined8 **)(lVar5 + 0x28) = puVar4;\n        *(undefined8 **)(lVar5 + 0x30) = puVar6;\n        uVar14 = *(ulong *)(lVar5 + 0x20);\n        *(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4;\n      }\n      if (puVar4 != puVar6) {\n        *(undefined8 **)(lVar5 + 0x30) = puVar4;\n      }\n      puVar6 = (undefined8 *)**(long **)(lVar5 + 0x18);\n      if (uVar14 < (ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)) {\n                    \n        FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections");\n      }\n      if (uVar14 != 0) {\n        uVar13 = 0;\n        do {\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        } while (uVar13 < *(ulong *)(lVar5 + 0x20));\n      }\n    }\n  }\n  *(undefined1 *)param_1[0x1e] = 0;\n  if (*(code **)(*param_1 + 0x18) == FUN_001c5d30) {\n    lVar5 = param_1[6];\n  }\n  else {\n    lVar5 = (**(code **)(*param_1 + 0x18))(param_1);\n  }\n  uVar13 = param_2;\n  if (lVar5 != 0) {\n    uVar13 = lVar5 + -1 + param_2 & -lVar5;\n  }\n  puVar9 = (uint *)param_1[0x11];\n  puVar10 = (uint *)param_1[0x12];\n  local_98 = (uint *)0x0;\n  local_90 = (uint *)0x0;\n  local_88 = (undefined8 *)0x0;\n  if (puVar9 == puVar10) {\n    local_88 = (undefined8 *)0x0;\n    local_90 = (uint *)0x0;\n    local_98 = (uint *)0x0;\n  }\n  else {\n    do {\n      while (puVar10 = puVar9, *puVar10 != 0xffffffff) {\n                    \n        lVar5 = FUN_002f0690(0x30);\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;\n        *(undefined8 *)(lVar5 + 0x18) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)(lVar5 + 0x28) = uVar2;\n        FUN_002f4d00(lVar5,param_4);\n        *(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;\n        puVar9 = puVar10 + 8;\n        if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;\n      }\n      if (puVar10[1] == 0) {\n        pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);\n        if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    \n          lVar5 = (*pcVar1)();\n        }\n      }\n      else {\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }\n      uVar14 = uVar13;\n      if (((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0)) {\n        local_68[0] = 0;\n        local_70 = 0;\n        uVar13 = uVar14 - uVar13;\n        local_78 = local_68;\n                    \n        FUN_002f9000(&local_78,uVar13);\n        while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }\n        if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    \n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }\n        puVar4 = (undefined8 *)FUN_002f0690(0x58);\n        uVar13 = local_70;\n        __src = local_78;\n        puVar4[1] = 0;\n        puVar4[5] = 0;\n        puVar4[6] = 0;\n        puVar4[2] = local_70;\n        puVar4[3] = 0xffffffffffffffff;\n        local_b8 = local_70;\n        *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;\n        *puVar4 = &PTR_FUN_00445c48;\n        puVar6 = puVar4 + 9;\n        puVar4[7] = puVar6;\n        if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    \n                    \n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }\n        local_58[0] = local_70;\n        if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    \n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }\n        local_a8 = local_58;\n        puVar4[8] = local_b8;\n        *(undefined1 *)((long)puVar6 + local_b8) = 0;\n        local_40 = 0;\n        local_58[0] = 0xffffffff;\n        local_58[1] = 0;\n        local_48 = puVar4;\n        FUN_00223190(&local_98,local_a8);\n        if (local_78 != local_68) {\n          FUN_002f1e60();\n        }\n      }\n      if (local_90 == (uint *)local_88) {\n        FUN_00220270(&local_98,local_90,puVar10);\n      }\n      else {\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }\n      if ((*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)) {\n        if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    \n                    \n          FUN_0020a520();\n        }\n        lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);\n      }\n      else {\n        lVar5 = *(long *)(puVar10 + 2);\n      }\n      uVar13 = lVar5 + uVar14;\n      puVar9 = puVar10 + 8;\n    } while ((uint *)param_1[0x12] != puVar10 + 8);\nLAB_00210220:\n    puVar9 = puVar10 + 8;\n    puVar10 = (uint *)param_1[0x11];\n  }\n  param_1[0x12] = (long)local_90;\n  lVar5 = param_1[0x13];\n  param_1[0x11] = (long)local_98;\n  param_1[0x13] = (long)local_88;\n  param_1[0x14] = 0;\n  local_98 = puVar10;\n  local_90 = puVar9;\n  local_88 = (undefined8 *)lVar5;\n  if ((*(byte *)(param_1 + 4) & 2) != 0) {\n                    \n    FUN_0018ff20("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }\n  param_1[2] = uVar13 - param_2;\n  if (puVar10 != (uint *)0x0) {\n    FUN_002f1e60();\n  }\n  return uVar13 - param_2;\n}" ({ "{") (declaration "code *pcVar1;" (type_identifier "code") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (declaration "undefined8 *puVar3;" (type_identifier "undefined8") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined1 *__src;" (type_identifier "undefined1") (pointer_declarator "*__src" (* "*") (identifier "__src")) (; ";")) (declaration "undefined8 *puVar4;" (type_identifier "undefined8") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "long lVar5;" (sized_type_specifier "long" (long "long")) (identifier "lVar5") (; ";")) (declaration "undefined8 *puVar6;" (type_identifier "undefined8") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "undefined8 *puVar7;" (type_identifier "undefined8") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "ulong uVar8;" (type_identifier "ulong") (identifier "uVar8") (; ";")) (declaration "uint *puVar9;" (type_identifier "uint") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "uint *puVar10;" (type_identifier "uint") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "undefined8 *puVar11;" (type_identifier "undefined8") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "long lVar12;" (sized_type_specifier "long" (long "long")) (identifier "lVar12") (; ";")) (declaration "ulong uVar13;" (type_identifier "ulong") (identifier "uVar13") (; ";")) (declaration "ulong uVar14;" (type_identifier "ulong") (identifier "uVar14") (; ";")) (declaration "ulong local_b8;" (type_identifier "ulong") (identifier "local_b8") (; ";")) (declaration "ulong *local_a8;" (type_identifier "ulong") (pointer_declarator "*local_a8" (* "*") (identifier "local_a8")) (; ";")) (declaration "uint *local_98;" (type_identifier "uint") (pointer_declarator "*local_98" (* "*") (identifier "local_98")) (; ";")) (declaration "uint *local_90;" (type_identifier "uint") (pointer_declarator "*local_90" (* "*") (identifier "local_90")) (; ";")) (declaration "undefined8 *local_88;" (type_identifier "undefined8") (pointer_declarator "*local_88" (* "*") (identifier "local_88")) (; ";")) (declaration "undefined1 *local_78;" (type_identifier "undefined1") (pointer_declarator "*local_78" (* "*") (identifier "local_78")) (; ";")) (declaration "ulong local_70;" (type_identifier "ulong") (identifier "local_70") (; ";")) (declaration "undefined1 local_68 [16];" (type_identifier "undefined1") (array_declarator "local_68 [16]" (identifier "local_68") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "ulong local_58 [2];" (type_identifier "ulong") (array_declarator "local_58 [2]" (identifier "local_58") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined8 *local_48;" (type_identifier "undefined8") (pointer_declarator "*local_48" (* "*") (identifier "local_48")) (; ";")) (declaration "undefined4 local_40;" (type_identifier "undefined4") (identifier "local_40") (; ";")) (expression_statement "lVar5 = param_1[0x1d];" (assignment_expression "lVar5 = param_1[0x1d]" (identifier "lVar5") (= "=") (subscript_expression "param_1[0x1d]" (identifier "param_1") ([ "[") (number_literal "0x1d") (] "]"))) (; ";")) (if_statement "if (lVar5 != 0) {\n    puVar6 = *(undefined8 **)(lVar5 + 0x30);\n    puVar4 = *(undefined8 **)(lVar5 + 0x28);\n    uVar13 = *(ulong *)(lVar5 + 0x20);\n    lVar12 = (long)puVar6 - (long)puVar4;\n    if (uVar13 != lVar12 >> 5) {\n      if (0x7ffffffffffffff < uVar13) {\n                    \n        FUN_00330790("vector::reserve");\n      }\n      uVar14 = uVar13;\n      if ((ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5) < uVar13) {\n        puVar3 = puVar4;\n        if (uVar13 == 0) {\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }\n        else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }\n        for (; puVar6 != puVar3; puVar3 = puVar3 + 4) {\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }\n        if (puVar11 != (undefined8 *)0x0) {\n          FUN_002f1e60();\n        }\n        puVar6 = (undefined8 *)((long)puVar4 + lVar12);\n        *(undefined8 **)(lVar5 + 0x28) = puVar4;\n        *(undefined8 **)(lVar5 + 0x30) = puVar6;\n        uVar14 = *(ulong *)(lVar5 + 0x20);\n        *(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4;\n      }\n      if (puVar4 != puVar6) {\n        *(undefined8 **)(lVar5 + 0x30) = puVar4;\n      }\n      puVar6 = (undefined8 *)**(long **)(lVar5 + 0x18);\n      if (uVar14 < (ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)) {\n                    \n        FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections");\n      }\n      if (uVar14 != 0) {\n        uVar13 = 0;\n        do {\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        } while (uVar13 < *(ulong *)(lVar5 + 0x20));\n      }\n    }\n  }" (if "if") (parenthesized_expression "(lVar5 != 0)" (( "(") (binary_expression "lVar5 != 0" (identifier "lVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    puVar6 = *(undefined8 **)(lVar5 + 0x30);\n    puVar4 = *(undefined8 **)(lVar5 + 0x28);\n    uVar13 = *(ulong *)(lVar5 + 0x20);\n    lVar12 = (long)puVar6 - (long)puVar4;\n    if (uVar13 != lVar12 >> 5) {\n      if (0x7ffffffffffffff < uVar13) {\n                    \n        FUN_00330790("vector::reserve");\n      }\n      uVar14 = uVar13;\n      if ((ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5) < uVar13) {\n        puVar3 = puVar4;\n        if (uVar13 == 0) {\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }\n        else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }\n        for (; puVar6 != puVar3; puVar3 = puVar3 + 4) {\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }\n        if (puVar11 != (undefined8 *)0x0) {\n          FUN_002f1e60();\n        }\n        puVar6 = (undefined8 *)((long)puVar4 + lVar12);\n        *(undefined8 **)(lVar5 + 0x28) = puVar4;\n        *(undefined8 **)(lVar5 + 0x30) = puVar6;\n        uVar14 = *(ulong *)(lVar5 + 0x20);\n        *(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4;\n      }\n      if (puVar4 != puVar6) {\n        *(undefined8 **)(lVar5 + 0x30) = puVar4;\n      }\n      puVar6 = (undefined8 *)**(long **)(lVar5 + 0x18);\n      if (uVar14 < (ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)) {\n                    \n        FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections");\n      }\n      if (uVar14 != 0) {\n        uVar13 = 0;\n        do {\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        } while (uVar13 < *(ulong *)(lVar5 + 0x20));\n      }\n    }\n  }" ({ "{") (expression_statement "puVar6 = *(undefined8 **)(lVar5 + 0x30);" (assignment_expression "puVar6 = *(undefined8 **)(lVar5 + 0x30)" (identifier "puVar6") (= "=") (pointer_expression "*(undefined8 **)(lVar5 + 0x30)" (* "*") (cast_expression "(undefined8 **)(lVar5 + 0x30)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar5 + 0x30)" (( "(") (binary_expression "lVar5 + 0x30" (identifier "lVar5") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "puVar4 = *(undefined8 **)(lVar5 + 0x28);" (assignment_expression "puVar4 = *(undefined8 **)(lVar5 + 0x28)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined8 **)(lVar5 + 0x28)" (* "*") (cast_expression "(undefined8 **)(lVar5 + 0x28)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar5 + 0x28)" (( "(") (binary_expression "lVar5 + 0x28" (identifier "lVar5") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uVar13 = *(ulong *)(lVar5 + 0x20);" (assignment_expression "uVar13 = *(ulong *)(lVar5 + 0x20)" (identifier "uVar13") (= "=") (pointer_expression "*(ulong *)(lVar5 + 0x20)" (* "*") (cast_expression "(ulong *)(lVar5 + 0x20)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x20)" (( "(") (binary_expression "lVar5 + 0x20" (identifier "lVar5") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "lVar12 = (long)puVar6 - (long)puVar4;" (assignment_expression "lVar12 = (long)puVar6 - (long)puVar4" (identifier "lVar12") (= "=") (binary_expression "(long)puVar6 - (long)puVar4" (cast_expression "(long)puVar6" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar6")) (- "-") (cast_expression "(long)puVar4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar4")))) (; ";")) (if_statement "if (uVar13 != lVar12 >> 5) {\n      if (0x7ffffffffffffff < uVar13) {\n                    \n        FUN_00330790("vector::reserve");\n      }\n      uVar14 = uVar13;\n      if ((ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5) < uVar13) {\n        puVar3 = puVar4;\n        if (uVar13 == 0) {\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }\n        else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }\n        for (; puVar6 != puVar3; puVar3 = puVar3 + 4) {\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }\n        if (puVar11 != (undefined8 *)0x0) {\n          FUN_002f1e60();\n        }\n        puVar6 = (undefined8 *)((long)puVar4 + lVar12);\n        *(undefined8 **)(lVar5 + 0x28) = puVar4;\n        *(undefined8 **)(lVar5 + 0x30) = puVar6;\n        uVar14 = *(ulong *)(lVar5 + 0x20);\n        *(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4;\n      }\n      if (puVar4 != puVar6) {\n        *(undefined8 **)(lVar5 + 0x30) = puVar4;\n      }\n      puVar6 = (undefined8 *)**(long **)(lVar5 + 0x18);\n      if (uVar14 < (ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)) {\n                    \n        FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections");\n      }\n      if (uVar14 != 0) {\n        uVar13 = 0;\n        do {\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        } while (uVar13 < *(ulong *)(lVar5 + 0x20));\n      }\n    }" (if "if") (parenthesized_expression "(uVar13 != lVar12 >> 5)" (( "(") (binary_expression "uVar13 != lVar12 >> 5" (identifier "uVar13") (!= "!=") (binary_expression "lVar12 >> 5" (identifier "lVar12") (>> ">>") (number_literal "5"))) () ")")) (compound_statement "{\n      if (0x7ffffffffffffff < uVar13) {\n                    \n        FUN_00330790("vector::reserve");\n      }\n      uVar14 = uVar13;\n      if ((ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5) < uVar13) {\n        puVar3 = puVar4;\n        if (uVar13 == 0) {\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }\n        else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }\n        for (; puVar6 != puVar3; puVar3 = puVar3 + 4) {\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }\n        if (puVar11 != (undefined8 *)0x0) {\n          FUN_002f1e60();\n        }\n        puVar6 = (undefined8 *)((long)puVar4 + lVar12);\n        *(undefined8 **)(lVar5 + 0x28) = puVar4;\n        *(undefined8 **)(lVar5 + 0x30) = puVar6;\n        uVar14 = *(ulong *)(lVar5 + 0x20);\n        *(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4;\n      }\n      if (puVar4 != puVar6) {\n        *(undefined8 **)(lVar5 + 0x30) = puVar4;\n      }\n      puVar6 = (undefined8 *)**(long **)(lVar5 + 0x18);\n      if (uVar14 < (ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)) {\n                    \n        FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections");\n      }\n      if (uVar14 != 0) {\n        uVar13 = 0;\n        do {\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        } while (uVar13 < *(ulong *)(lVar5 + 0x20));\n      }\n    }" ({ "{") (if_statement "if (0x7ffffffffffffff < uVar13) {\n                    \n        FUN_00330790("vector::reserve");\n      }" (if "if") (parenthesized_expression "(0x7ffffffffffffff < uVar13)" (( "(") (binary_expression "0x7ffffffffffffff < uVar13" (number_literal "0x7ffffffffffffff") (< "<") (identifier "uVar13")) () ")")) (compound_statement "{\n                    \n        FUN_00330790("vector::reserve");\n      }" ({ "{") (expression_statement "FUN_00330790("vector::reserve");" (call_expression "FUN_00330790("vector::reserve")" (identifier "FUN_00330790") (argument_list "("vector::reserve")" (( "(") (string_literal ""vector::reserve"" (" """) (string_content "vector::reserve") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar14 = uVar13;" (assignment_expression "uVar14 = uVar13" (identifier "uVar14") (= "=") (identifier "uVar13")) (; ";")) (if_statement "if ((ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5) < uVar13) {\n        puVar3 = puVar4;\n        if (uVar13 == 0) {\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }\n        else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }\n        for (; puVar6 != puVar3; puVar3 = puVar3 + 4) {\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }\n        if (puVar11 != (undefined8 *)0x0) {\n          FUN_002f1e60();\n        }\n        puVar6 = (undefined8 *)((long)puVar4 + lVar12);\n        *(undefined8 **)(lVar5 + 0x28) = puVar4;\n        *(undefined8 **)(lVar5 + 0x30) = puVar6;\n        uVar14 = *(ulong *)(lVar5 + 0x20);\n        *(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4;\n      }" (if "if") (parenthesized_expression "((ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5) < uVar13)" (( "(") (binary_expression "(ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5) < uVar13" (call_expression "(ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5)" (( "(") (binary_expression "*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5" (binary_expression "*(long *)(lVar5 + 0x38) - (long)puVar4" (pointer_expression "*(long *)(lVar5 + 0x38)" (* "*") (cast_expression "(long *)(lVar5 + 0x38)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x38)" (( "(") (binary_expression "lVar5 + 0x38" (identifier "lVar5") (+ "+") (number_literal "0x38")) () ")")))) (- "-") (cast_expression "(long)puVar4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar4"))) (>> ">>") (number_literal "5")) () ")"))) (< "<") (identifier "uVar13")) () ")")) (compound_statement "{\n        puVar3 = puVar4;\n        if (uVar13 == 0) {\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }\n        else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }\n        for (; puVar6 != puVar3; puVar3 = puVar3 + 4) {\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }\n        if (puVar11 != (undefined8 *)0x0) {\n          FUN_002f1e60();\n        }\n        puVar6 = (undefined8 *)((long)puVar4 + lVar12);\n        *(undefined8 **)(lVar5 + 0x28) = puVar4;\n        *(undefined8 **)(lVar5 + 0x30) = puVar6;\n        uVar14 = *(ulong *)(lVar5 + 0x20);\n        *(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4;\n      }" ({ "{") (expression_statement "puVar3 = puVar4;" (assignment_expression "puVar3 = puVar4" (identifier "puVar3") (= "=") (identifier "puVar4")) (; ";")) (if_statement "if (uVar13 == 0) {\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }\n        else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          puVar7 = (undefined8 *)0x0;\n          puVar11 = puVar4;\n          puVar4 = puVar7;\n        }" ({ "{") (expression_statement "puVar7 = (undefined8 *)0x0;" (assignment_expression "puVar7 = (undefined8 *)0x0" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar11 = puVar4;" (assignment_expression "puVar11 = puVar4" (identifier "puVar11") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "puVar4 = puVar7;" (assignment_expression "puVar4 = puVar7" (identifier "puVar4") (= "=") (identifier "puVar7")) (; ";")) (} "}")) (else_clause "else {\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }" (else "else") (compound_statement "{\n          puVar7 = (undefined8 *)FUN_002f0690();\n          puVar11 = *(undefined8 **)(lVar5 + 0x28);\n          puVar4 = puVar7;\n        }" ({ "{") (expression_statement "puVar7 = (undefined8 *)FUN_002f0690();" (assignment_expression "puVar7 = (undefined8 *)FUN_002f0690()" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)FUN_002f0690()" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_002f0690()" (identifier "FUN_002f0690") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar11 = *(undefined8 **)(lVar5 + 0x28);" (assignment_expression "puVar11 = *(undefined8 **)(lVar5 + 0x28)" (identifier "puVar11") (= "=") (pointer_expression "*(undefined8 **)(lVar5 + 0x28)" (* "*") (cast_expression "(undefined8 **)(lVar5 + 0x28)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar5 + 0x28)" (( "(") (binary_expression "lVar5 + 0x28" (identifier "lVar5") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "puVar4 = puVar7;" (assignment_expression "puVar4 = puVar7" (identifier "puVar4") (= "=") (identifier "puVar7")) (; ";")) (} "}")))) (for_statement "for (; puVar6 != puVar3; puVar3 = puVar3 + 4) {\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }" (for "for") (( "(") (; ";") (binary_expression "puVar6 != puVar3" (identifier "puVar6") (!= "!=") (identifier "puVar3")) (; ";") (assignment_expression "puVar3 = puVar3 + 4" (identifier "puVar3") (= "=") (binary_expression "puVar3 + 4" (identifier "puVar3") (+ "+") (number_literal "4"))) () ")") (compound_statement "{\n          uVar2 = puVar3[1];\n          *puVar7 = *puVar3;\n          puVar7[1] = uVar2;\n          uVar2 = puVar3[3];\n          puVar7[2] = puVar3[2];\n          puVar7[3] = uVar2;\n          puVar7 = puVar7 + 4;\n        }" ({ "{") (expression_statement "uVar2 = puVar3[1];" (assignment_expression "uVar2 = puVar3[1]" (identifier "uVar2") (= "=") (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*puVar7 = *puVar3;" (assignment_expression "*puVar7 = *puVar3" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (pointer_expression "*puVar3" (* "*") (identifier "puVar3"))) (; ";")) (expression_statement "puVar7[1] = uVar2;" (assignment_expression "puVar7[1] = uVar2" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar2 = puVar3[3];" (assignment_expression "uVar2 = puVar3[3]" (identifier "uVar2") (= "=") (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar7[2] = puVar3[2];" (assignment_expression "puVar7[2] = puVar3[2]" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar7[3] = uVar2;" (assignment_expression "puVar7[3] = uVar2" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "puVar7 = puVar7 + 4;" (assignment_expression "puVar7 = puVar7 + 4" (identifier "puVar7") (= "=") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4"))) (; ";")) (} "}"))) (if_statement "if (puVar11 != (undefined8 *)0x0) {\n          FUN_002f1e60();\n        }" (if "if") (parenthesized_expression "(puVar11 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar11 != (undefined8 *)0x0" (identifier "puVar11") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          FUN_002f1e60();\n        }" ({ "{") (expression_statement "FUN_002f1e60();" (call_expression "FUN_002f1e60()" (identifier "FUN_002f1e60") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar6 = (undefined8 *)((long)puVar4 + lVar12);" (assignment_expression "puVar6 = (undefined8 *)((long)puVar4 + lVar12)" (identifier "puVar6") (= "=") (cast_expression "(undefined8 *)((long)puVar4 + lVar12)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar4 + lVar12)" (( "(") (binary_expression "(long)puVar4 + lVar12" (cast_expression "(long)puVar4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar4")) (+ "+") (identifier "lVar12")) () ")")))) (; ";")) (expression_statement "*(undefined8 **)(lVar5 + 0x28) = puVar4;" (assignment_expression "*(undefined8 **)(lVar5 + 0x28) = puVar4" (pointer_expression "*(undefined8 **)(lVar5 + 0x28)" (* "*") (cast_expression "(undefined8 **)(lVar5 + 0x28)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar5 + 0x28)" (( "(") (binary_expression "lVar5 + 0x28" (identifier "lVar5") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "*(undefined8 **)(lVar5 + 0x30) = puVar6;" (assignment_expression "*(undefined8 **)(lVar5 + 0x30) = puVar6" (pointer_expression "*(undefined8 **)(lVar5 + 0x30)" (* "*") (cast_expression "(undefined8 **)(lVar5 + 0x30)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar5 + 0x30)" (( "(") (binary_expression "lVar5 + 0x30" (identifier "lVar5") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "puVar6")) (; ";")) (expression_statement "uVar14 = *(ulong *)(lVar5 + 0x20);" (assignment_expression "uVar14 = *(ulong *)(lVar5 + 0x20)" (identifier "uVar14") (= "=") (pointer_expression "*(ulong *)(lVar5 + 0x20)" (* "*") (cast_expression "(ulong *)(lVar5 + 0x20)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x20)" (( "(") (binary_expression "lVar5 + 0x20" (identifier "lVar5") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "*(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4;" (assignment_expression "*(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4" (pointer_expression "*(undefined8 **)(lVar5 + 0x38)" (* "*") (cast_expression "(undefined8 **)(lVar5 + 0x38)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar5 + 0x38)" (( "(") (binary_expression "lVar5 + 0x38" (identifier "lVar5") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (binary_expression "puVar4 + uVar13 * 4" (identifier "puVar4") (+ "+") (binary_expression "uVar13 * 4" (identifier "uVar13") (* "*") (number_literal "4")))) (; ";")) (} "}"))) (if_statement "if (puVar4 != puVar6) {\n        *(undefined8 **)(lVar5 + 0x30) = puVar4;\n      }" (if "if") (parenthesized_expression "(puVar4 != puVar6)" (( "(") (binary_expression "puVar4 != puVar6" (identifier "puVar4") (!= "!=") (identifier "puVar6")) () ")")) (compound_statement "{\n        *(undefined8 **)(lVar5 + 0x30) = puVar4;\n      }" ({ "{") (expression_statement "*(undefined8 **)(lVar5 + 0x30) = puVar4;" (assignment_expression "*(undefined8 **)(lVar5 + 0x30) = puVar4" (pointer_expression "*(undefined8 **)(lVar5 + 0x30)" (* "*") (cast_expression "(undefined8 **)(lVar5 + 0x30)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar5 + 0x30)" (( "(") (binary_expression "lVar5 + 0x30" (identifier "lVar5") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "puVar4")) (; ";")) (} "}"))) (expression_statement "puVar6 = (undefined8 *)**(long **)(lVar5 + 0x18);" (assignment_expression "puVar6 = (undefined8 *)**(long **)(lVar5 + 0x18)" (identifier "puVar6") (= "=") (cast_expression "(undefined8 *)**(long **)(lVar5 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(long **)(lVar5 + 0x18)" (* "*") (pointer_expression "*(long **)(lVar5 + 0x18)" (* "*") (cast_expression "(long **)(lVar5 + 0x18)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar5 + 0x18)" (( "(") (binary_expression "lVar5 + 0x18" (identifier "lVar5") (+ "+") (number_literal "0x18")) () ")"))))))) (; ";")) (if_statement "if (uVar14 < (ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)) {\n                    \n        FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections");\n      }" (if "if") (parenthesized_expression "(uVar14 < (ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5))" (( "(") (binary_expression "uVar14 < (ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)" (identifier "uVar14") (< "<") (call_expression "(ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)" (( "(") (binary_expression "(*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5" (binary_expression "(*(long **)(lVar5 + 0x18))[1] - (long)puVar6" (subscript_expression "(*(long **)(lVar5 + 0x18))[1]" (parenthesized_expression "(*(long **)(lVar5 + 0x18))" (( "(") (pointer_expression "*(long **)(lVar5 + 0x18)" (* "*") (cast_expression "(long **)(lVar5 + 0x18)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar5 + 0x18)" (( "(") (binary_expression "lVar5 + 0x18" (identifier "lVar5") (+ "+") (number_literal "0x18")) () ")")))) () ")")) ([ "[") (number_literal "1") (] "]")) (- "-") (cast_expression "(long)puVar6" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar6"))) (>> ">>") (number_literal "5")) () ")")))) () ")")) (compound_statement "{\n                    \n        FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections");\n      }" ({ "{") (expression_statement "FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections");" (call_expression "FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections")" (identifier "FUN_0018ff20") (argument_list "("../../gold/output.h",0x10fd,"save_input_sections")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x10fd") (, ",") (string_literal ""save_input_sections"" (" """) (string_content "save_input_sections") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (uVar14 != 0) {\n        uVar13 = 0;\n        do {\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        } while (uVar13 < *(ulong *)(lVar5 + 0x20));\n      }" (if "if") (parenthesized_expression "(uVar14 != 0)" (( "(") (binary_expression "uVar14 != 0" (identifier "uVar14") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar13 = 0;\n        do {\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        } while (uVar13 < *(ulong *)(lVar5 + 0x20));\n      }" ({ "{") (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" (identifier "uVar13") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        } while (uVar13 < *(ulong *)(lVar5 + 0x20));" (do "do") (compound_statement "{\n          puVar4 = *(undefined8 **)(lVar5 + 0x30);\n          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }\n          uVar13 = uVar13 + 1;\n          puVar6 = puVar6 + 4;\n        }" ({ "{") (expression_statement "puVar4 = *(undefined8 **)(lVar5 + 0x30);" (assignment_expression "puVar4 = *(undefined8 **)(lVar5 + 0x30)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined8 **)(lVar5 + 0x30)" (* "*") (cast_expression "(undefined8 **)(lVar5 + 0x30)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar5 + 0x30)" (( "(") (binary_expression "lVar5 + 0x30" (identifier "lVar5") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (if_statement "if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }\n          else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }" (if "if") (parenthesized_expression "(puVar4 == *(undefined8 **)(lVar5 + 0x38))" (( "(") (binary_expression "puVar4 == *(undefined8 **)(lVar5 + 0x38)" (identifier "puVar4") (== "==") (pointer_expression "*(undefined8 **)(lVar5 + 0x38)" (* "*") (cast_expression "(undefined8 **)(lVar5 + 0x38)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar5 + 0x38)" (( "(") (binary_expression "lVar5 + 0x38" (identifier "lVar5") (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (compound_statement "{\n            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);\n          }" ({ "{") (expression_statement "FUN_00220270(lVar5 + 0x28,puVar4,puVar6);" (call_expression "FUN_00220270(lVar5 + 0x28,puVar4,puVar6)" (identifier "FUN_00220270") (argument_list "(lVar5 + 0x28,puVar4,puVar6)" (( "(") (binary_expression "lVar5 + 0x28" (identifier "lVar5") (+ "+") (number_literal "0x28")) (, ",") (identifier "puVar4") (, ",") (identifier "puVar6") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }" (else "else") (compound_statement "{\n            uVar2 = puVar6[1];\n            *puVar4 = *puVar6;\n            puVar4[1] = uVar2;\n            uVar2 = puVar6[3];\n            puVar4[2] = puVar6[2];\n            puVar4[3] = uVar2;\n            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;\n          }" ({ "{") (expression_statement "uVar2 = puVar6[1];" (assignment_expression "uVar2 = puVar6[1]" (identifier "uVar2") (= "=") (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*puVar4 = *puVar6;" (assignment_expression "*puVar4 = *puVar6" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) (; ";")) (expression_statement "puVar4[1] = uVar2;" (assignment_expression "puVar4[1] = uVar2" (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar2 = puVar6[3];" (assignment_expression "uVar2 = puVar6[3]" (identifier "uVar2") (= "=") (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar4[2] = puVar6[2];" (assignment_expression "puVar4[2] = puVar6[2]" (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar4[3] = uVar2;" (assignment_expression "puVar4[3] = uVar2" (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "*(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;" (assignment_expression "*(undefined8 **)(lVar5 + 0x30) = puVar4 + 4" (pointer_expression "*(undefined8 **)(lVar5 + 0x30)" (* "*") (cast_expression "(undefined8 **)(lVar5 + 0x30)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar5 + 0x30)" (( "(") (binary_expression "lVar5 + 0x30" (identifier "lVar5") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (binary_expression "puVar4 + 4" (identifier "puVar4") (+ "+") (number_literal "4"))) (; ";")) (} "}")))) (expression_statement "uVar13 = uVar13 + 1;" (assignment_expression "uVar13 = uVar13 + 1" (identifier "uVar13") (= "=") (binary_expression "uVar13 + 1" (identifier "uVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar6 = puVar6 + 4;" (assignment_expression "puVar6 = puVar6 + 4" (identifier "puVar6") (= "=") (binary_expression "puVar6 + 4" (identifier "puVar6") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar13 < *(ulong *)(lVar5 + 0x20))" (( "(") (binary_expression "uVar13 < *(ulong *)(lVar5 + 0x20)" (identifier "uVar13") (< "<") (pointer_expression "*(ulong *)(lVar5 + 0x20)" (* "*") (cast_expression "(ulong *)(lVar5 + 0x20)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x20)" (( "(") (binary_expression "lVar5 + 0x20" (identifier "lVar5") (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "*(undefined1 *)param_1[0x1e] = 0;" (assignment_expression "*(undefined1 *)param_1[0x1e] = 0" (pointer_expression "*(undefined1 *)param_1[0x1e]" (* "*") (cast_expression "(undefined1 *)param_1[0x1e]" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x1e]" (identifier "param_1") ([ "[") (number_literal "0x1e") (] "]")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (*(code **)(*param_1 + 0x18) == FUN_001c5d30) {\n    lVar5 = param_1[6];\n  }\n  else {\n    lVar5 = (**(code **)(*param_1 + 0x18))(param_1);\n  }" (if "if") (parenthesized_expression "(*(code **)(*param_1 + 0x18) == FUN_001c5d30)" (( "(") (binary_expression "*(code **)(*param_1 + 0x18) == FUN_001c5d30" (pointer_expression "*(code **)(*param_1 + 0x18)" (* "*") (cast_expression "(code **)(*param_1 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x18)" (( "(") (binary_expression "*param_1 + 0x18" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x18")) () ")")))) (== "==") (identifier "FUN_001c5d30")) () ")")) (compound_statement "{\n    lVar5 = param_1[6];\n  }" ({ "{") (expression_statement "lVar5 = param_1[6];" (assignment_expression "lVar5 = param_1[6]" (identifier "lVar5") (= "=") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n    lVar5 = (**(code **)(*param_1 + 0x18))(param_1);\n  }" (else "else") (compound_statement "{\n    lVar5 = (**(code **)(*param_1 + 0x18))(param_1);\n  }" ({ "{") (expression_statement "lVar5 = (**(code **)(*param_1 + 0x18))(param_1);" (assignment_expression "lVar5 = (**(code **)(*param_1 + 0x18))(param_1)" (identifier "lVar5") (= "=") (call_expression "(**(code **)(*param_1 + 0x18))(param_1)" (parenthesized_expression "(**(code **)(*param_1 + 0x18))" (( "(") (pointer_expression "**(code **)(*param_1 + 0x18)" (* "*") (pointer_expression "*(code **)(*param_1 + 0x18)" (* "*") (cast_expression "(code **)(*param_1 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x18)" (( "(") (binary_expression "*param_1 + 0x18" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar13 = param_2;" (assignment_expression "uVar13 = param_2" (identifier "uVar13") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (lVar5 != 0) {\n    uVar13 = lVar5 + -1 + param_2 & -lVar5;\n  }" (if "if") (parenthesized_expression "(lVar5 != 0)" (( "(") (binary_expression "lVar5 != 0" (identifier "lVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar13 = lVar5 + -1 + param_2 & -lVar5;\n  }" ({ "{") (expression_statement "uVar13 = lVar5 + -1 + param_2 & -lVar5;" (assignment_expression "uVar13 = lVar5 + -1 + param_2 & -lVar5" (identifier "uVar13") (= "=") (binary_expression "lVar5 + -1 + param_2 & -lVar5" (binary_expression "lVar5 + -1 + param_2" (binary_expression "lVar5 + -1" (identifier "lVar5") (+ "+") (number_literal "-1")) (+ "+") (identifier "param_2")) (& "&") (unary_expression "-lVar5" (- "-") (identifier "lVar5")))) (; ";")) (} "}"))) (expression_statement "puVar9 = (uint *)param_1[0x11];" (assignment_expression "puVar9 = (uint *)param_1[0x11]" (identifier "puVar9") (= "=") (cast_expression "(uint *)param_1[0x11]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x11]" (identifier "param_1") ([ "[") (number_literal "0x11") (] "]")))) (; ";")) (expression_statement "puVar10 = (uint *)param_1[0x12];" (assignment_expression "puVar10 = (uint *)param_1[0x12]" (identifier "puVar10") (= "=") (cast_expression "(uint *)param_1[0x12]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x12]" (identifier "param_1") ([ "[") (number_literal "0x12") (] "]")))) (; ";")) (expression_statement "local_98 = (uint *)0x0;" (assignment_expression "local_98 = (uint *)0x0" (identifier "local_98") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_90 = (uint *)0x0;" (assignment_expression "local_90 = (uint *)0x0" (identifier "local_90") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_88 = (undefined8 *)0x0;" (assignment_expression "local_88 = (undefined8 *)0x0" (identifier "local_88") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (puVar9 == puVar10) {\n    local_88 = (undefined8 *)0x0;\n    local_90 = (uint *)0x0;\n    local_98 = (uint *)0x0;\n  }\n  else {\n    do {\n      while (puVar10 = puVar9, *puVar10 != 0xffffffff) {\n                    \n        lVar5 = FUN_002f0690(0x30);\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;\n        *(undefined8 *)(lVar5 + 0x18) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)(lVar5 + 0x28) = uVar2;\n        FUN_002f4d00(lVar5,param_4);\n        *(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;\n        puVar9 = puVar10 + 8;\n        if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;\n      }\n      if (puVar10[1] == 0) {\n        pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);\n        if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    \n          lVar5 = (*pcVar1)();\n        }\n      }\n      else {\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }\n      uVar14 = uVar13;\n      if (((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0)) {\n        local_68[0] = 0;\n        local_70 = 0;\n        uVar13 = uVar14 - uVar13;\n        local_78 = local_68;\n                    \n        FUN_002f9000(&local_78,uVar13);\n        while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }\n        if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    \n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }\n        puVar4 = (undefined8 *)FUN_002f0690(0x58);\n        uVar13 = local_70;\n        __src = local_78;\n        puVar4[1] = 0;\n        puVar4[5] = 0;\n        puVar4[6] = 0;\n        puVar4[2] = local_70;\n        puVar4[3] = 0xffffffffffffffff;\n        local_b8 = local_70;\n        *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;\n        *puVar4 = &PTR_FUN_00445c48;\n        puVar6 = puVar4 + 9;\n        puVar4[7] = puVar6;\n        if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    \n                    \n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }\n        local_58[0] = local_70;\n        if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    \n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }\n        local_a8 = local_58;\n        puVar4[8] = local_b8;\n        *(undefined1 *)((long)puVar6 + local_b8) = 0;\n        local_40 = 0;\n        local_58[0] = 0xffffffff;\n        local_58[1] = 0;\n        local_48 = puVar4;\n        FUN_00223190(&local_98,local_a8);\n        if (local_78 != local_68) {\n          FUN_002f1e60();\n        }\n      }\n      if (local_90 == (uint *)local_88) {\n        FUN_00220270(&local_98,local_90,puVar10);\n      }\n      else {\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }\n      if ((*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)) {\n        if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    \n                    \n          FUN_0020a520();\n        }\n        lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);\n      }\n      else {\n        lVar5 = *(long *)(puVar10 + 2);\n      }\n      uVar13 = lVar5 + uVar14;\n      puVar9 = puVar10 + 8;\n    } while ((uint *)param_1[0x12] != puVar10 + 8);\nLAB_00210220:\n    puVar9 = puVar10 + 8;\n    puVar10 = (uint *)param_1[0x11];\n  }" (if "if") (parenthesized_expression "(puVar9 == puVar10)" (( "(") (binary_expression "puVar9 == puVar10" (identifier "puVar9") (== "==") (identifier "puVar10")) () ")")) (compound_statement "{\n    local_88 = (undefined8 *)0x0;\n    local_90 = (uint *)0x0;\n    local_98 = (uint *)0x0;\n  }" ({ "{") (expression_statement "local_88 = (undefined8 *)0x0;" (assignment_expression "local_88 = (undefined8 *)0x0" (identifier "local_88") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_90 = (uint *)0x0;" (assignment_expression "local_90 = (uint *)0x0" (identifier "local_90") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_98 = (uint *)0x0;" (assignment_expression "local_98 = (uint *)0x0" (identifier "local_98") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    do {\n      while (puVar10 = puVar9, *puVar10 != 0xffffffff) {\n                    \n        lVar5 = FUN_002f0690(0x30);\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;\n        *(undefined8 *)(lVar5 + 0x18) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)(lVar5 + 0x28) = uVar2;\n        FUN_002f4d00(lVar5,param_4);\n        *(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;\n        puVar9 = puVar10 + 8;\n        if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;\n      }\n      if (puVar10[1] == 0) {\n        pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);\n        if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    \n          lVar5 = (*pcVar1)();\n        }\n      }\n      else {\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }\n      uVar14 = uVar13;\n      if (((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0)) {\n        local_68[0] = 0;\n        local_70 = 0;\n        uVar13 = uVar14 - uVar13;\n        local_78 = local_68;\n                    \n        FUN_002f9000(&local_78,uVar13);\n        while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }\n        if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    \n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }\n        puVar4 = (undefined8 *)FUN_002f0690(0x58);\n        uVar13 = local_70;\n        __src = local_78;\n        puVar4[1] = 0;\n        puVar4[5] = 0;\n        puVar4[6] = 0;\n        puVar4[2] = local_70;\n        puVar4[3] = 0xffffffffffffffff;\n        local_b8 = local_70;\n        *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;\n        *puVar4 = &PTR_FUN_00445c48;\n        puVar6 = puVar4 + 9;\n        puVar4[7] = puVar6;\n        if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    \n                    \n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }\n        local_58[0] = local_70;\n        if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    \n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }\n        local_a8 = local_58;\n        puVar4[8] = local_b8;\n        *(undefined1 *)((long)puVar6 + local_b8) = 0;\n        local_40 = 0;\n        local_58[0] = 0xffffffff;\n        local_58[1] = 0;\n        local_48 = puVar4;\n        FUN_00223190(&local_98,local_a8);\n        if (local_78 != local_68) {\n          FUN_002f1e60();\n        }\n      }\n      if (local_90 == (uint *)local_88) {\n        FUN_00220270(&local_98,local_90,puVar10);\n      }\n      else {\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }\n      if ((*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)) {\n        if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    \n                    \n          FUN_0020a520();\n        }\n        lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);\n      }\n      else {\n        lVar5 = *(long *)(puVar10 + 2);\n      }\n      uVar13 = lVar5 + uVar14;\n      puVar9 = puVar10 + 8;\n    } while ((uint *)param_1[0x12] != puVar10 + 8);\nLAB_00210220:\n    puVar9 = puVar10 + 8;\n    puVar10 = (uint *)param_1[0x11];\n  }" (else "else") (compound_statement "{\n    do {\n      while (puVar10 = puVar9, *puVar10 != 0xffffffff) {\n                    \n        lVar5 = FUN_002f0690(0x30);\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;\n        *(undefined8 *)(lVar5 + 0x18) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)(lVar5 + 0x28) = uVar2;\n        FUN_002f4d00(lVar5,param_4);\n        *(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;\n        puVar9 = puVar10 + 8;\n        if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;\n      }\n      if (puVar10[1] == 0) {\n        pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);\n        if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    \n          lVar5 = (*pcVar1)();\n        }\n      }\n      else {\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }\n      uVar14 = uVar13;\n      if (((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0)) {\n        local_68[0] = 0;\n        local_70 = 0;\n        uVar13 = uVar14 - uVar13;\n        local_78 = local_68;\n                    \n        FUN_002f9000(&local_78,uVar13);\n        while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }\n        if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    \n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }\n        puVar4 = (undefined8 *)FUN_002f0690(0x58);\n        uVar13 = local_70;\n        __src = local_78;\n        puVar4[1] = 0;\n        puVar4[5] = 0;\n        puVar4[6] = 0;\n        puVar4[2] = local_70;\n        puVar4[3] = 0xffffffffffffffff;\n        local_b8 = local_70;\n        *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;\n        *puVar4 = &PTR_FUN_00445c48;\n        puVar6 = puVar4 + 9;\n        puVar4[7] = puVar6;\n        if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    \n                    \n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }\n        local_58[0] = local_70;\n        if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    \n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }\n        local_a8 = local_58;\n        puVar4[8] = local_b8;\n        *(undefined1 *)((long)puVar6 + local_b8) = 0;\n        local_40 = 0;\n        local_58[0] = 0xffffffff;\n        local_58[1] = 0;\n        local_48 = puVar4;\n        FUN_00223190(&local_98,local_a8);\n        if (local_78 != local_68) {\n          FUN_002f1e60();\n        }\n      }\n      if (local_90 == (uint *)local_88) {\n        FUN_00220270(&local_98,local_90,puVar10);\n      }\n      else {\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }\n      if ((*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)) {\n        if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    \n                    \n          FUN_0020a520();\n        }\n        lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);\n      }\n      else {\n        lVar5 = *(long *)(puVar10 + 2);\n      }\n      uVar13 = lVar5 + uVar14;\n      puVar9 = puVar10 + 8;\n    } while ((uint *)param_1[0x12] != puVar10 + 8);\nLAB_00210220:\n    puVar9 = puVar10 + 8;\n    puVar10 = (uint *)param_1[0x11];\n  }" ({ "{") (do_statement "do {\n      while (puVar10 = puVar9, *puVar10 != 0xffffffff) {\n                    \n        lVar5 = FUN_002f0690(0x30);\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;\n        *(undefined8 *)(lVar5 + 0x18) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)(lVar5 + 0x28) = uVar2;\n        FUN_002f4d00(lVar5,param_4);\n        *(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;\n        puVar9 = puVar10 + 8;\n        if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;\n      }\n      if (puVar10[1] == 0) {\n        pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);\n        if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    \n          lVar5 = (*pcVar1)();\n        }\n      }\n      else {\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }\n      uVar14 = uVar13;\n      if (((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0)) {\n        local_68[0] = 0;\n        local_70 = 0;\n        uVar13 = uVar14 - uVar13;\n        local_78 = local_68;\n                    \n        FUN_002f9000(&local_78,uVar13);\n        while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }\n        if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    \n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }\n        puVar4 = (undefined8 *)FUN_002f0690(0x58);\n        uVar13 = local_70;\n        __src = local_78;\n        puVar4[1] = 0;\n        puVar4[5] = 0;\n        puVar4[6] = 0;\n        puVar4[2] = local_70;\n        puVar4[3] = 0xffffffffffffffff;\n        local_b8 = local_70;\n        *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;\n        *puVar4 = &PTR_FUN_00445c48;\n        puVar6 = puVar4 + 9;\n        puVar4[7] = puVar6;\n        if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    \n                    \n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }\n        local_58[0] = local_70;\n        if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    \n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }\n        local_a8 = local_58;\n        puVar4[8] = local_b8;\n        *(undefined1 *)((long)puVar6 + local_b8) = 0;\n        local_40 = 0;\n        local_58[0] = 0xffffffff;\n        local_58[1] = 0;\n        local_48 = puVar4;\n        FUN_00223190(&local_98,local_a8);\n        if (local_78 != local_68) {\n          FUN_002f1e60();\n        }\n      }\n      if (local_90 == (uint *)local_88) {\n        FUN_00220270(&local_98,local_90,puVar10);\n      }\n      else {\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }\n      if ((*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)) {\n        if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    \n                    \n          FUN_0020a520();\n        }\n        lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);\n      }\n      else {\n        lVar5 = *(long *)(puVar10 + 2);\n      }\n      uVar13 = lVar5 + uVar14;\n      puVar9 = puVar10 + 8;\n    } while ((uint *)param_1[0x12] != puVar10 + 8);" (do "do") (compound_statement "{\n      while (puVar10 = puVar9, *puVar10 != 0xffffffff) {\n                    \n        lVar5 = FUN_002f0690(0x30);\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;\n        *(undefined8 *)(lVar5 + 0x18) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)(lVar5 + 0x28) = uVar2;\n        FUN_002f4d00(lVar5,param_4);\n        *(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;\n        puVar9 = puVar10 + 8;\n        if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;\n      }\n      if (puVar10[1] == 0) {\n        pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);\n        if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    \n          lVar5 = (*pcVar1)();\n        }\n      }\n      else {\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }\n      uVar14 = uVar13;\n      if (((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0)) {\n        local_68[0] = 0;\n        local_70 = 0;\n        uVar13 = uVar14 - uVar13;\n        local_78 = local_68;\n                    \n        FUN_002f9000(&local_78,uVar13);\n        while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }\n        if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    \n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }\n        puVar4 = (undefined8 *)FUN_002f0690(0x58);\n        uVar13 = local_70;\n        __src = local_78;\n        puVar4[1] = 0;\n        puVar4[5] = 0;\n        puVar4[6] = 0;\n        puVar4[2] = local_70;\n        puVar4[3] = 0xffffffffffffffff;\n        local_b8 = local_70;\n        *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;\n        *puVar4 = &PTR_FUN_00445c48;\n        puVar6 = puVar4 + 9;\n        puVar4[7] = puVar6;\n        if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    \n                    \n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }\n        local_58[0] = local_70;\n        if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    \n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }\n        local_a8 = local_58;\n        puVar4[8] = local_b8;\n        *(undefined1 *)((long)puVar6 + local_b8) = 0;\n        local_40 = 0;\n        local_58[0] = 0xffffffff;\n        local_58[1] = 0;\n        local_48 = puVar4;\n        FUN_00223190(&local_98,local_a8);\n        if (local_78 != local_68) {\n          FUN_002f1e60();\n        }\n      }\n      if (local_90 == (uint *)local_88) {\n        FUN_00220270(&local_98,local_90,puVar10);\n      }\n      else {\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }\n      if ((*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)) {\n        if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    \n                    \n          FUN_0020a520();\n        }\n        lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);\n      }\n      else {\n        lVar5 = *(long *)(puVar10 + 2);\n      }\n      uVar13 = lVar5 + uVar14;\n      puVar9 = puVar10 + 8;\n    }" ({ "{") (while_statement "while (puVar10 = puVar9, *puVar10 != 0xffffffff) {\n                    \n        lVar5 = FUN_002f0690(0x30);\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;\n        *(undefined8 *)(lVar5 + 0x18) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)(lVar5 + 0x28) = uVar2;\n        FUN_002f4d00(lVar5,param_4);\n        *(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;\n        puVar9 = puVar10 + 8;\n        if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;\n      }" (while "while") (parenthesized_expression "(puVar10 = puVar9, *puVar10 != 0xffffffff)" (( "(") (comma_expression "puVar10 = puVar9, *puVar10 != 0xffffffff" (assignment_expression "puVar10 = puVar9" (identifier "puVar10") (= "=") (identifier "puVar9")) (, ",") (binary_expression "*puVar10 != 0xffffffff" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (!= "!=") (number_literal "0xffffffff"))) () ")")) (compound_statement "{\n                    \n        lVar5 = FUN_002f0690(0x30);\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;\n        *(undefined8 *)(lVar5 + 0x18) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)(lVar5 + 0x28) = uVar2;\n        FUN_002f4d00(lVar5,param_4);\n        *(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;\n        puVar9 = puVar10 + 8;\n        if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;\n      }" ({ "{") (expression_statement "lVar5 = FUN_002f0690(0x30);" (assignment_expression "lVar5 = FUN_002f0690(0x30)" (identifier "lVar5") (= "=") (call_expression "FUN_002f0690(0x30)" (identifier "FUN_002f0690") (argument_list "(0x30)" (( "(") (number_literal "0x30") () ")")))) (; ";")) (expression_statement "uVar2 = *(undefined8 *)(puVar10 + 2);" (assignment_expression "uVar2 = *(undefined8 *)(puVar10 + 2)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined8 *)(puVar10 + 2)" (* "*") (cast_expression "(undefined8 *)(puVar10 + 2)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 2)" (( "(") (binary_expression "puVar10 + 2" (identifier "puVar10") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "*(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;" (assignment_expression "*(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10" (pointer_expression "*(undefined8 *)(lVar5 + 0x10)" (* "*") (cast_expression "(undefined8 *)(lVar5 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x10)" (( "(") (binary_expression "lVar5 + 0x10" (identifier "lVar5") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (pointer_expression "*(undefined8 *)puVar10" (* "*") (cast_expression "(undefined8 *)puVar10" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar10")))) (; ";")) (expression_statement "*(undefined8 *)(lVar5 + 0x18) = uVar2;" (assignment_expression "*(undefined8 *)(lVar5 + 0x18) = uVar2" (pointer_expression "*(undefined8 *)(lVar5 + 0x18)" (* "*") (cast_expression "(undefined8 *)(lVar5 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x18)" (( "(") (binary_expression "lVar5 + 0x18" (identifier "lVar5") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar2 = *(undefined8 *)(puVar10 + 6);" (assignment_expression "uVar2 = *(undefined8 *)(puVar10 + 6)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined8 *)(puVar10 + 6)" (* "*") (cast_expression "(undefined8 *)(puVar10 + 6)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 6)" (( "(") (binary_expression "puVar10 + 6" (identifier "puVar10") (+ "+") (number_literal "6")) () ")"))))) (; ";")) (expression_statement "*(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);" (assignment_expression "*(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4)" (pointer_expression "*(undefined8 *)(lVar5 + 0x20)" (* "*") (cast_expression "(undefined8 *)(lVar5 + 0x20)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x20)" (( "(") (binary_expression "lVar5 + 0x20" (identifier "lVar5") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (pointer_expression "*(undefined8 *)(puVar10 + 4)" (* "*") (cast_expression "(undefined8 *)(puVar10 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 4)" (( "(") (binary_expression "puVar10 + 4" (identifier "puVar10") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(undefined8 *)(lVar5 + 0x28) = uVar2;" (assignment_expression "*(undefined8 *)(lVar5 + 0x28) = uVar2" (pointer_expression "*(undefined8 *)(lVar5 + 0x28)" (* "*") (cast_expression "(undefined8 *)(lVar5 + 0x28)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x28)" (( "(") (binary_expression "lVar5 + 0x28" (identifier "lVar5") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "FUN_002f4d00(lVar5,param_4);" (call_expression "FUN_002f4d00(lVar5,param_4)" (identifier "FUN_002f4d00") (argument_list "(lVar5,param_4)" (( "(") (identifier "lVar5") (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "*(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;" (assignment_expression "*(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1" (pointer_expression "*(long *)(param_4 + 0x10)" (* "*") (cast_expression "(long *)(param_4 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x10)" (( "(") (binary_expression "param_4 + 0x10" (identifier "param_4") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "*(long *)(param_4 + 0x10) + 1" (pointer_expression "*(long *)(param_4 + 0x10)" (* "*") (cast_expression "(long *)(param_4 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x10)" (( "(") (binary_expression "param_4 + 0x10" (identifier "param_4") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar9 = puVar10 + 8;" (assignment_expression "puVar9 = puVar10 + 8" (identifier "puVar9") (= "=") (binary_expression "puVar10 + 8" (identifier "puVar10") (+ "+") (number_literal "8"))) (; ";")) (if_statement "if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;" (if "if") (parenthesized_expression "((uint *)param_1[0x12] == puVar10 + 8)" (( "(") (binary_expression "(uint *)param_1[0x12] == puVar10 + 8" (cast_expression "(uint *)param_1[0x12]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x12]" (identifier "param_1") ([ "[") (number_literal "0x12") (] "]"))) (== "==") (binary_expression "puVar10 + 8" (identifier "puVar10") (+ "+") (number_literal "8"))) () ")")) (goto_statement "goto LAB_00210220;" (goto "goto") (statement_identifier "LAB_00210220") (; ";"))) (} "}"))) (if_statement "if (puVar10[1] == 0) {\n        pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);\n        if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    \n          lVar5 = (*pcVar1)();\n        }\n      }\n      else {\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }" (if "if") (parenthesized_expression "(puVar10[1] == 0)" (( "(") (binary_expression "puVar10[1] == 0" (subscript_expression "puVar10[1]" (identifier "puVar10") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);\n        if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    \n          lVar5 = (*pcVar1)();\n        }\n      }" ({ "{") (expression_statement "pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);" (assignment_expression "pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18)" (identifier "pcVar1") (= "=") (pointer_expression "*(code **)(**(long **)(puVar10 + 4) + 0x18)" (* "*") (cast_expression "(code **)(**(long **)(puVar10 + 4) + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(long **)(puVar10 + 4) + 0x18)" (( "(") (binary_expression "**(long **)(puVar10 + 4) + 0x18" (pointer_expression "**(long **)(puVar10 + 4)" (* "*") (pointer_expression "*(long **)(puVar10 + 4)" (* "*") (cast_expression "(long **)(puVar10 + 4)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 4)" (( "(") (binary_expression "puVar10 + 4" (identifier "puVar10") (+ "+") (number_literal "4")) () ")"))))) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (pcVar1 == FUN_00172c90) {\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }\n        else {\n                    \n          lVar5 = (*pcVar1)();\n        }" (if "if") (parenthesized_expression "(pcVar1 == FUN_00172c90)" (( "(") (binary_expression "pcVar1 == FUN_00172c90" (identifier "pcVar1") (== "==") (identifier "FUN_00172c90")) () ")")) (compound_statement "{\n          lVar5 = (*(long **)(puVar10 + 4))[6];\n        }" ({ "{") (expression_statement "lVar5 = (*(long **)(puVar10 + 4))[6];" (assignment_expression "lVar5 = (*(long **)(puVar10 + 4))[6]" (identifier "lVar5") (= "=") (subscript_expression "(*(long **)(puVar10 + 4))[6]" (parenthesized_expression "(*(long **)(puVar10 + 4))" (( "(") (pointer_expression "*(long **)(puVar10 + 4)" (* "*") (cast_expression "(long **)(puVar10 + 4)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 4)" (( "(") (binary_expression "puVar10 + 4" (identifier "puVar10") (+ "+") (number_literal "4")) () ")")))) () ")")) ([ "[") (number_literal "6") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n                    \n          lVar5 = (*pcVar1)();\n        }" (else "else") (compound_statement "{\n                    \n          lVar5 = (*pcVar1)();\n        }" ({ "{") (expression_statement "lVar5 = (*pcVar1)();" (assignment_expression "lVar5 = (*pcVar1)()" (identifier "lVar5") (= "=") (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" (( "(") (pointer_expression "*pcVar1" (* "*") (identifier "pcVar1")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }" (else "else") (compound_statement "{\n        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);\n      }" ({ "{") (expression_statement "lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);" (assignment_expression "lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f)" (identifier "lVar5") (= "=") (binary_expression "1L << ((char)puVar10[1] - 1U & 0x3f)" (number_literal "1L") (<< "<<") (parenthesized_expression "((char)puVar10[1] - 1U & 0x3f)" (( "(") (binary_expression "(char)puVar10[1] - 1U & 0x3f" (binary_expression "(char)puVar10[1] - 1U" (cast_expression "(char)puVar10[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "puVar10[1]" (identifier "puVar10") ([ "[") (number_literal "1") (] "]"))) (- "-") (number_literal "1U")) (& "&") (number_literal "0x3f")) () ")")))) (; ";")) (} "}")))) (expression_statement "uVar14 = uVar13;" (assignment_expression "uVar14 = uVar13" (identifier "uVar14") (= "=") (identifier "uVar13")) (; ";")) (if_statement "if (((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0)) {\n        local_68[0] = 0;\n        local_70 = 0;\n        uVar13 = uVar14 - uVar13;\n        local_78 = local_68;\n                    \n        FUN_002f9000(&local_78,uVar13);\n        while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }\n        if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    \n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }\n        puVar4 = (undefined8 *)FUN_002f0690(0x58);\n        uVar13 = local_70;\n        __src = local_78;\n        puVar4[1] = 0;\n        puVar4[5] = 0;\n        puVar4[6] = 0;\n        puVar4[2] = local_70;\n        puVar4[3] = 0xffffffffffffffff;\n        local_b8 = local_70;\n        *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;\n        *puVar4 = &PTR_FUN_00445c48;\n        puVar6 = puVar4 + 9;\n        puVar4[7] = puVar6;\n        if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    \n                    \n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }\n        local_58[0] = local_70;\n        if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    \n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }\n        local_a8 = local_58;\n        puVar4[8] = local_b8;\n        *(undefined1 *)((long)puVar6 + local_b8) = 0;\n        local_40 = 0;\n        local_58[0] = 0xffffffff;\n        local_58[1] = 0;\n        local_48 = puVar4;\n        FUN_00223190(&local_98,local_a8);\n        if (local_78 != local_68) {\n          FUN_002f1e60();\n        }\n      }" (if "if") (parenthesized_expression "(((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0))" (( "(") (binary_expression "((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&\n         (param_3[1] != 0)" (parenthesized_expression "((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14))" (( "(") (binary_expression "(lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)" (parenthesized_expression "(lVar5 != 0)" (( "(") (binary_expression "lVar5 != 0" (identifier "lVar5") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)" (( "(") (comma_expression "uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14" (assignment_expression "uVar14 = (uVar13 - 1) + lVar5 & -lVar5" (identifier "uVar14") (= "=") (binary_expression "(uVar13 - 1) + lVar5 & -lVar5" (binary_expression "(uVar13 - 1) + lVar5" (parenthesized_expression "(uVar13 - 1)" (( "(") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1")) () ")")) (+ "+") (identifier "lVar5")) (& "&") (unary_expression "-lVar5" (- "-") (identifier "lVar5")))) (, ",") (binary_expression "uVar13 != uVar14" (identifier "uVar13") (!= "!=") (identifier "uVar14"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(param_3[1] != 0)" (( "(") (binary_expression "param_3[1] != 0" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        local_68[0] = 0;\n        local_70 = 0;\n        uVar13 = uVar14 - uVar13;\n        local_78 = local_68;\n                    \n        FUN_002f9000(&local_78,uVar13);\n        while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }\n        if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    \n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }\n        puVar4 = (undefined8 *)FUN_002f0690(0x58);\n        uVar13 = local_70;\n        __src = local_78;\n        puVar4[1] = 0;\n        puVar4[5] = 0;\n        puVar4[6] = 0;\n        puVar4[2] = local_70;\n        puVar4[3] = 0xffffffffffffffff;\n        local_b8 = local_70;\n        *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;\n        *puVar4 = &PTR_FUN_00445c48;\n        puVar6 = puVar4 + 9;\n        puVar4[7] = puVar6;\n        if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    \n                    \n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }\n        local_58[0] = local_70;\n        if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    \n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }\n        local_a8 = local_58;\n        puVar4[8] = local_b8;\n        *(undefined1 *)((long)puVar6 + local_b8) = 0;\n        local_40 = 0;\n        local_58[0] = 0xffffffff;\n        local_58[1] = 0;\n        local_48 = puVar4;\n        FUN_00223190(&local_98,local_a8);\n        if (local_78 != local_68) {\n          FUN_002f1e60();\n        }\n      }" ({ "{") (expression_statement "local_68[0] = 0;" (assignment_expression "local_68[0] = 0" (subscript_expression "local_68[0]" (identifier "local_68") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" (identifier "local_70") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar13 = uVar14 - uVar13;" (assignment_expression "uVar13 = uVar14 - uVar13" (identifier "uVar13") (= "=") (binary_expression "uVar14 - uVar13" (identifier "uVar14") (- "-") (identifier "uVar13"))) (; ";")) (expression_statement "local_78 = local_68;" (assignment_expression "local_78 = local_68" (identifier "local_78") (= "=") (identifier "local_68")) (; ";")) (expression_statement "FUN_002f9000(&local_78,uVar13);" (call_expression "FUN_002f9000(&local_78,uVar13)" (identifier "FUN_002f9000") (argument_list "(&local_78,uVar13)" (( "(") (pointer_expression "&local_78" (& "&") (identifier "local_78")) (, ",") (identifier "uVar13") () ")"))) (; ";")) (while_statement "while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {\n          FUN_002fa0e0(&local_78,*param_3);\n        }" (while "while") (parenthesized_expression "(uVar8 = param_3[1], local_70 + uVar8 <= uVar13)" (( "(") (comma_expression "uVar8 = param_3[1], local_70 + uVar8 <= uVar13" (assignment_expression "uVar8 = param_3[1]" (identifier "uVar8") (= "=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (, ",") (binary_expression "local_70 + uVar8 <= uVar13" (binary_expression "local_70 + uVar8" (identifier "local_70") (+ "+") (identifier "uVar8")) (<= "<=") (identifier "uVar13"))) () ")")) (compound_statement "{\n          FUN_002fa0e0(&local_78,*param_3);\n        }" ({ "{") (expression_statement "FUN_002fa0e0(&local_78,*param_3);" (call_expression "FUN_002fa0e0(&local_78,*param_3)" (identifier "FUN_002fa0e0") (argument_list "(&local_78,*param_3)" (( "(") (pointer_expression "&local_78" (& "&") (identifier "local_78")) (, ",") (pointer_expression "*param_3" (* "*") (identifier "param_3")) () ")"))) (; ";")) (} "}"))) (if_statement "if (local_70 < uVar13) {\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    \n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }" (if "if") (parenthesized_expression "(local_70 < uVar13)" (( "(") (binary_expression "local_70 < uVar13" (identifier "local_70") (< "<") (identifier "uVar13")) () ")")) (compound_statement "{\n          if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }\n                    \n          FUN_002fa0e0(&local_78,*param_3,uVar8);\n        }" ({ "{") (if_statement "if (uVar13 - local_70 <= uVar8) {\n            uVar8 = uVar13 - local_70;\n          }" (if "if") (parenthesized_expression "(uVar13 - local_70 <= uVar8)" (( "(") (binary_expression "uVar13 - local_70 <= uVar8" (binary_expression "uVar13 - local_70" (identifier "uVar13") (- "-") (identifier "local_70")) (<= "<=") (identifier "uVar8")) () ")")) (compound_statement "{\n            uVar8 = uVar13 - local_70;\n          }" ({ "{") (expression_statement "uVar8 = uVar13 - local_70;" (assignment_expression "uVar8 = uVar13 - local_70" (identifier "uVar8") (= "=") (binary_expression "uVar13 - local_70" (identifier "uVar13") (- "-") (identifier "local_70"))) (; ";")) (} "}"))) (expression_statement "FUN_002fa0e0(&local_78,*param_3,uVar8);" (call_expression "FUN_002fa0e0(&local_78,*param_3,uVar8)" (identifier "FUN_002fa0e0") (argument_list "(&local_78,*param_3,uVar8)" (( "(") (pointer_expression "&local_78" (& "&") (identifier "local_78")) (, ",") (pointer_expression "*param_3" (* "*") (identifier "param_3")) (, ",") (identifier "uVar8") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar4 = (undefined8 *)FUN_002f0690(0x58);" (assignment_expression "puVar4 = (undefined8 *)FUN_002f0690(0x58)" (identifier "puVar4") (= "=") (cast_expression "(undefined8 *)FUN_002f0690(0x58)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_002f0690(0x58)" (identifier "FUN_002f0690") (argument_list "(0x58)" (( "(") (number_literal "0x58") () ")"))))) (; ";")) (expression_statement "uVar13 = local_70;" (assignment_expression "uVar13 = local_70" (identifier "uVar13") (= "=") (identifier "local_70")) (; ";")) (expression_statement "__src = local_78;" (assignment_expression "__src = local_78" (identifier "__src") (= "=") (identifier "local_78")) (; ";")) (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[5] = 0;" (assignment_expression "puVar4[5] = 0" (subscript_expression "puVar4[5]" (identifier "puVar4") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[6] = 0;" (assignment_expression "puVar4[6] = 0" (subscript_expression "puVar4[6]" (identifier "puVar4") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[2] = local_70;" (assignment_expression "puVar4[2] = local_70" (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_70")) (; ";")) (expression_statement "puVar4[3] = 0xffffffffffffffff;" (assignment_expression "puVar4[3] = 0xffffffffffffffff" (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "local_b8 = local_70;" (assignment_expression "local_b8 = local_70" (identifier "local_b8") (= "=") (identifier "local_70")) (; ";")) (expression_statement "*(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10" (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 | 10" (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")) (| "|") (number_literal "10"))) (; ";")) (expression_statement "*puVar4 = &PTR_FUN_00445c48;" (assignment_expression "*puVar4 = &PTR_FUN_00445c48" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (pointer_expression "&PTR_FUN_00445c48" (& "&") (identifier "PTR_FUN_00445c48"))) (; ";")) (expression_statement "puVar6 = puVar4 + 9;" (assignment_expression "puVar6 = puVar4 + 9" (identifier "puVar6") (= "=") (binary_expression "puVar4 + 9" (identifier "puVar4") (+ "+") (number_literal "9"))) (; ";")) (expression_statement "puVar4[7] = puVar6;" (assignment_expression "puVar4[7] = puVar6" (subscript_expression "puVar4[7]" (identifier "puVar4") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "puVar6")) (; ";")) (if_statement "if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {\n                    \n                    \n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }" (if "if") (parenthesized_expression "((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0))" (( "(") (binary_expression "(local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)" (parenthesized_expression "(local_78 + local_70 != (undefined1 *)0x0)" (( "(") (binary_expression "local_78 + local_70 != (undefined1 *)0x0" (binary_expression "local_78 + local_70" (identifier "local_78") (+ "+") (identifier "local_70")) (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_78 == (undefined1 *)0x0)" (( "(") (binary_expression "local_78 == (undefined1 *)0x0" (identifier "local_78") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n                    \n                    \n          FUN_003306d0("basic_string::_M_construct null not valid");\n        }" ({ "{") (expression_statement "FUN_003306d0("basic_string::_M_construct null not valid");" (call_expression "FUN_003306d0("basic_string::_M_construct null not valid")" (identifier "FUN_003306d0") (argument_list "("basic_string::_M_construct null not valid")" (( "(") (string_literal ""basic_string::_M_construct null not valid"" (" """) (string_content "basic_string::_M_construct null not valid") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "local_58[0] = local_70;" (assignment_expression "local_58[0] = local_70" (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_70")) (; ";")) (if_statement "if (local_70 < 0x10) {\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }\n        else {\n                    \n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }" (if "if") (parenthesized_expression "(local_70 < 0x10)" (( "(") (binary_expression "local_70 < 0x10" (identifier "local_70") (< "<") (number_literal "0x10")) () ")")) (compound_statement "{\n          if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;\n        }" ({ "{") (if_statement "if (local_70 == 1) {\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }\n          else if (local_70 != 0) goto LAB_002105af;" (if "if") (parenthesized_expression "(local_70 == 1)" (( "(") (binary_expression "local_70 == 1" (identifier "local_70") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            *(undefined1 *)(puVar4 + 9) = *local_78;\n          }" ({ "{") (expression_statement "*(undefined1 *)(puVar4 + 9) = *local_78;" (assignment_expression "*(undefined1 *)(puVar4 + 9) = *local_78" (pointer_expression "*(undefined1 *)(puVar4 + 9)" (* "*") (cast_expression "(undefined1 *)(puVar4 + 9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 9)" (( "(") (binary_expression "puVar4 + 9" (identifier "puVar4") (+ "+") (number_literal "9")) () ")")))) (= "=") (pointer_expression "*local_78" (* "*") (identifier "local_78"))) (; ";")) (} "}")) (else_clause "else if (local_70 != 0) goto LAB_002105af;" (else "else") (if_statement "if (local_70 != 0) goto LAB_002105af;" (if "if") (parenthesized_expression "(local_70 != 0)" (( "(") (binary_expression "local_70 != 0" (identifier "local_70") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_002105af;" (goto "goto") (statement_identifier "LAB_002105af") (; ";"))))) (} "}")) (else_clause "else {\n                    \n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }" (else "else") (compound_statement "{\n                    \n          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);\n          puVar4[7] = puVar6;\n          puVar4[9] = local_58[0];\nLAB_002105af:\n          memcpy(puVar6,__src,uVar13);\n          local_b8 = local_58[0];\n          puVar6 = (undefined8 *)puVar4[7];\n        }" ({ "{") (expression_statement "puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);" (assignment_expression "puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0)" (identifier "puVar6") (= "=") (cast_expression "(undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_002f8790(puVar4 + 7,local_58,0)" (identifier "FUN_002f8790") (argument_list "(puVar4 + 7,local_58,0)" (( "(") (binary_expression "puVar4 + 7" (identifier "puVar4") (+ "+") (number_literal "7")) (, ",") (identifier "local_58") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "puVar4[7] = puVar6;" (assignment_expression "puVar4[7] = puVar6" (subscript_expression "puVar4[7]" (identifier "puVar4") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "puVar6")) (; ";")) (expression_statement "puVar4[9] = local_58[0];" (assignment_expression "puVar4[9] = local_58[0]" (subscript_expression "puVar4[9]" (identifier "puVar4") ([ "[") (number_literal "9") (] "]")) (= "=") (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]"))) (; ";")) (labeled_statement "LAB_002105af:\n          memcpy(puVar6,__src,uVar13);" (statement_identifier "LAB_002105af") (: ":") (expression_statement "memcpy(puVar6,__src,uVar13);" (call_expression "memcpy(puVar6,__src,uVar13)" (identifier "memcpy") (argument_list "(puVar6,__src,uVar13)" (( "(") (identifier "puVar6") (, ",") (identifier "__src") (, ",") (identifier "uVar13") () ")"))) (; ";"))) (expression_statement "local_b8 = local_58[0];" (assignment_expression "local_b8 = local_58[0]" (identifier "local_b8") (= "=") (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "puVar6 = (undefined8 *)puVar4[7];" (assignment_expression "puVar6 = (undefined8 *)puVar4[7]" (identifier "puVar6") (= "=") (cast_expression "(undefined8 *)puVar4[7]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar4[7]" (identifier "puVar4") ([ "[") (number_literal "7") (] "]")))) (; ";")) (} "}")))) (expression_statement "local_a8 = local_58;" (assignment_expression "local_a8 = local_58" (identifier "local_a8") (= "=") (identifier "local_58")) (; ";")) (expression_statement "puVar4[8] = local_b8;" (assignment_expression "puVar4[8] = local_b8" (subscript_expression "puVar4[8]" (identifier "puVar4") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "local_b8")) (; ";")) (expression_statement "*(undefined1 *)((long)puVar6 + local_b8) = 0;" (assignment_expression "*(undefined1 *)((long)puVar6 + local_b8) = 0" (pointer_expression "*(undefined1 *)((long)puVar6 + local_b8)" (* "*") (cast_expression "(undefined1 *)((long)puVar6 + local_b8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar6 + local_b8)" (( "(") (binary_expression "(long)puVar6 + local_b8" (cast_expression "(long)puVar6" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar6")) (+ "+") (identifier "local_b8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_58[0] = 0xffffffff;" (assignment_expression "local_58[0] = 0xffffffff" (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_58[1] = 0;" (assignment_expression "local_58[1] = 0" (subscript_expression "local_58[1]" (identifier "local_58") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_48 = puVar4;" (assignment_expression "local_48 = puVar4" (identifier "local_48") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "FUN_00223190(&local_98,local_a8);" (call_expression "FUN_00223190(&local_98,local_a8)" (identifier "FUN_00223190") (argument_list "(&local_98,local_a8)" (( "(") (pointer_expression "&local_98" (& "&") (identifier "local_98")) (, ",") (identifier "local_a8") () ")"))) (; ";")) (if_statement "if (local_78 != local_68) {\n          FUN_002f1e60();\n        }" (if "if") (parenthesized_expression "(local_78 != local_68)" (( "(") (binary_expression "local_78 != local_68" (identifier "local_78") (!= "!=") (identifier "local_68")) () ")")) (compound_statement "{\n          FUN_002f1e60();\n        }" ({ "{") (expression_statement "FUN_002f1e60();" (call_expression "FUN_002f1e60()" (identifier "FUN_002f1e60") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (local_90 == (uint *)local_88) {\n        FUN_00220270(&local_98,local_90,puVar10);\n      }\n      else {\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }" (if "if") (parenthesized_expression "(local_90 == (uint *)local_88)" (( "(") (binary_expression "local_90 == (uint *)local_88" (identifier "local_90") (== "==") (cast_expression "(uint *)local_88" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_88"))) () ")")) (compound_statement "{\n        FUN_00220270(&local_98,local_90,puVar10);\n      }" ({ "{") (expression_statement "FUN_00220270(&local_98,local_90,puVar10);" (call_expression "FUN_00220270(&local_98,local_90,puVar10)" (identifier "FUN_00220270") (argument_list "(&local_98,local_90,puVar10)" (( "(") (pointer_expression "&local_98" (& "&") (identifier "local_98")) (, ",") (identifier "local_90") (, ",") (identifier "puVar10") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }" (else "else") (compound_statement "{\n        uVar2 = *(undefined8 *)(puVar10 + 2);\n        *(undefined8 *)local_90 = *(undefined8 *)puVar10;\n        *(undefined8 *)((long)local_90 + 8) = uVar2;\n        uVar2 = *(undefined8 *)(puVar10 + 6);\n        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);\n        *(undefined8 *)((long)local_90 + 0x18) = uVar2;\n        local_90 = (uint *)((long)local_90 + 0x20);\n      }" ({ "{") (expression_statement "uVar2 = *(undefined8 *)(puVar10 + 2);" (assignment_expression "uVar2 = *(undefined8 *)(puVar10 + 2)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined8 *)(puVar10 + 2)" (* "*") (cast_expression "(undefined8 *)(puVar10 + 2)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 2)" (( "(") (binary_expression "puVar10 + 2" (identifier "puVar10") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "*(undefined8 *)local_90 = *(undefined8 *)puVar10;" (assignment_expression "*(undefined8 *)local_90 = *(undefined8 *)puVar10" (pointer_expression "*(undefined8 *)local_90" (* "*") (cast_expression "(undefined8 *)local_90" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_90"))) (= "=") (pointer_expression "*(undefined8 *)puVar10" (* "*") (cast_expression "(undefined8 *)puVar10" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar10")))) (; ";")) (expression_statement "*(undefined8 *)((long)local_90 + 8) = uVar2;" (assignment_expression "*(undefined8 *)((long)local_90 + 8) = uVar2" (pointer_expression "*(undefined8 *)((long)local_90 + 8)" (* "*") (cast_expression "(undefined8 *)((long)local_90 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_90 + 8)" (( "(") (binary_expression "(long)local_90 + 8" (cast_expression "(long)local_90" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_90")) (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar2 = *(undefined8 *)(puVar10 + 6);" (assignment_expression "uVar2 = *(undefined8 *)(puVar10 + 6)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined8 *)(puVar10 + 6)" (* "*") (cast_expression "(undefined8 *)(puVar10 + 6)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 6)" (( "(") (binary_expression "puVar10 + 6" (identifier "puVar10") (+ "+") (number_literal "6")) () ")"))))) (; ";")) (expression_statement "*(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);" (assignment_expression "*(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4)" (pointer_expression "*(undefined8 *)((long)local_90 + 0x10)" (* "*") (cast_expression "(undefined8 *)((long)local_90 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_90 + 0x10)" (( "(") (binary_expression "(long)local_90 + 0x10" (cast_expression "(long)local_90" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_90")) (+ "+") (number_literal "0x10")) () ")")))) (= "=") (pointer_expression "*(undefined8 *)(puVar10 + 4)" (* "*") (cast_expression "(undefined8 *)(puVar10 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 4)" (( "(") (binary_expression "puVar10 + 4" (identifier "puVar10") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(undefined8 *)((long)local_90 + 0x18) = uVar2;" (assignment_expression "*(undefined8 *)((long)local_90 + 0x18) = uVar2" (pointer_expression "*(undefined8 *)((long)local_90 + 0x18)" (* "*") (cast_expression "(undefined8 *)((long)local_90 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_90 + 0x18)" (( "(") (binary_expression "(long)local_90 + 0x18" (cast_expression "(long)local_90" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_90")) (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "local_90 = (uint *)((long)local_90 + 0x20);" (assignment_expression "local_90 = (uint *)((long)local_90 + 0x20)" (identifier "local_90") (= "=") (cast_expression "(uint *)((long)local_90 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_90 + 0x20)" (( "(") (binary_expression "(long)local_90 + 0x20" (cast_expression "(long)local_90" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_90")) (+ "+") (number_literal "0x20")) () ")")))) (; ";")) (} "}")))) (if_statement "if ((*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)) {\n        if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    \n                    \n          FUN_0020a520();\n        }\n        lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);\n      }\n      else {\n        lVar5 = *(long *)(puVar10 + 2);\n      }" (if "if") (parenthesized_expression "((*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10))" (( "(") (binary_expression "(*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)" (parenthesized_expression "(*puVar10 + 4 < 4)" (( "(") (binary_expression "*puVar10 + 4 < 4" (binary_expression "*puVar10 + 4" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (+ "+") (number_literal "4")) (< "<") (number_literal "4")) () ")")) (&& "&&") (parenthesized_expression "(FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)" (( "(") (comma_expression "FUN_0020ab90(puVar10), 0xfffffffb < *puVar10" (call_expression "FUN_0020ab90(puVar10)" (identifier "FUN_0020ab90") (argument_list "(puVar10)" (( "(") (identifier "puVar10") () ")"))) (, ",") (binary_expression "0xfffffffb < *puVar10" (number_literal "0xfffffffb") (< "<") (pointer_expression "*puVar10" (* "*") (identifier "puVar10")))) () ")"))) () ")")) (compound_statement "{\n        if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    \n                    \n          FUN_0020a520();\n        }\n        lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);\n      }" ({ "{") (if_statement "if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {\n                    \n                    \n          FUN_0020a520();\n        }" (if "if") (parenthesized_expression "((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2)" (( "(") (binary_expression "*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2" (pointer_expression "*(byte *)(*(long *)(puVar10 + 4) + 0x20)" (* "*") (cast_expression "(byte *)(*(long *)(puVar10 + 4) + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(puVar10 + 4) + 0x20)" (( "(") (binary_expression "*(long *)(puVar10 + 4) + 0x20" (pointer_expression "*(long *)(puVar10 + 4)" (* "*") (cast_expression "(long *)(puVar10 + 4)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 4)" (( "(") (binary_expression "puVar10 + 4" (identifier "puVar10") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                    \n          FUN_0020a520();\n        }" ({ "{") (expression_statement "FUN_0020a520();" (call_expression "FUN_0020a520()" (identifier "FUN_0020a520") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);" (assignment_expression "lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10)" (identifier "lVar5") (= "=") (pointer_expression "*(long *)(*(long *)(puVar10 + 4) + 0x10)" (* "*") (cast_expression "(long *)(*(long *)(puVar10 + 4) + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(puVar10 + 4) + 0x10)" (( "(") (binary_expression "*(long *)(puVar10 + 4) + 0x10" (pointer_expression "*(long *)(puVar10 + 4)" (* "*") (cast_expression "(long *)(puVar10 + 4)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 4)" (( "(") (binary_expression "puVar10 + 4" (identifier "puVar10") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        lVar5 = *(long *)(puVar10 + 2);\n      }" (else "else") (compound_statement "{\n        lVar5 = *(long *)(puVar10 + 2);\n      }" ({ "{") (expression_statement "lVar5 = *(long *)(puVar10 + 2);" (assignment_expression "lVar5 = *(long *)(puVar10 + 2)" (identifier "lVar5") (= "=") (pointer_expression "*(long *)(puVar10 + 2)" (* "*") (cast_expression "(long *)(puVar10 + 2)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 2)" (( "(") (binary_expression "puVar10 + 2" (identifier "puVar10") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (} "}")))) (expression_statement "uVar13 = lVar5 + uVar14;" (assignment_expression "uVar13 = lVar5 + uVar14" (identifier "uVar13") (= "=") (binary_expression "lVar5 + uVar14" (identifier "lVar5") (+ "+") (identifier "uVar14"))) (; ";")) (expression_statement "puVar9 = puVar10 + 8;" (assignment_expression "puVar9 = puVar10 + 8" (identifier "puVar9") (= "=") (binary_expression "puVar10 + 8" (identifier "puVar10") (+ "+") (number_literal "8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((uint *)param_1[0x12] != puVar10 + 8)" (( "(") (binary_expression "(uint *)param_1[0x12] != puVar10 + 8" (cast_expression "(uint *)param_1[0x12]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x12]" (identifier "param_1") ([ "[") (number_literal "0x12") (] "]"))) (!= "!=") (binary_expression "puVar10 + 8" (identifier "puVar10") (+ "+") (number_literal "8"))) () ")")) (; ";")) (labeled_statement "LAB_00210220:\n    puVar9 = puVar10 + 8;" (statement_identifier "LAB_00210220") (: ":") (expression_statement "puVar9 = puVar10 + 8;" (assignment_expression "puVar9 = puVar10 + 8" (identifier "puVar9") (= "=") (binary_expression "puVar10 + 8" (identifier "puVar10") (+ "+") (number_literal "8"))) (; ";"))) (expression_statement "puVar10 = (uint *)param_1[0x11];" (assignment_expression "puVar10 = (uint *)param_1[0x11]" (identifier "puVar10") (= "=") (cast_expression "(uint *)param_1[0x11]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x11]" (identifier "param_1") ([ "[") (number_literal "0x11") (] "]")))) (; ";")) (} "}")))) (expression_statement "param_1[0x12] = (long)local_90;" (assignment_expression "param_1[0x12] = (long)local_90" (subscript_expression "param_1[0x12]" (identifier "param_1") ([ "[") (number_literal "0x12") (] "]")) (= "=") (cast_expression "(long)local_90" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_90"))) (; ";")) (expression_statement "lVar5 = param_1[0x13];" (assignment_expression "lVar5 = param_1[0x13]" (identifier "lVar5") (= "=") (subscript_expression "param_1[0x13]" (identifier "param_1") ([ "[") (number_literal "0x13") (] "]"))) (; ";")) (expression_statement "param_1[0x11] = (long)local_98;" (assignment_expression "param_1[0x11] = (long)local_98" (subscript_expression "param_1[0x11]" (identifier "param_1") ([ "[") (number_literal "0x11") (] "]")) (= "=") (cast_expression "(long)local_98" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_98"))) (; ";")) (expression_statement "param_1[0x13] = (long)local_88;" (assignment_expression "param_1[0x13] = (long)local_88" (subscript_expression "param_1[0x13]" (identifier "param_1") ([ "[") (number_literal "0x13") (] "]")) (= "=") (cast_expression "(long)local_88" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_88"))) (; ";")) (expression_statement "param_1[0x14] = 0;" (assignment_expression "param_1[0x14] = 0" (subscript_expression "param_1[0x14]" (identifier "param_1") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_98 = puVar10;" (assignment_expression "local_98 = puVar10" (identifier "local_98") (= "=") (identifier "puVar10")) (; ";")) (expression_statement "local_90 = puVar9;" (assignment_expression "local_90 = puVar9" (identifier "local_90") (= "=") (identifier "puVar9")) (; ";")) (expression_statement "local_88 = (undefined8 *)lVar5;" (assignment_expression "local_88 = (undefined8 *)lVar5" (identifier "local_88") (= "=") (cast_expression "(undefined8 *)lVar5" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "lVar5"))) (; ";")) (if_statement "if ((*(byte *)(param_1 + 4) & 2) != 0) {\n                    \n    FUN_0018ff20("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 4) & 2) != 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 4) & 2) != 0" (parenthesized_expression "(*(byte *)(param_1 + 4) & 2)" (( "(") (binary_expression "*(byte *)(param_1 + 4) & 2" (pointer_expression "*(byte *)(param_1 + 4)" (* "*") (cast_expression "(byte *)(param_1 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_0018ff20("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }" ({ "{") (expression_statement "FUN_0018ff20("../../gold/output.h",0x231,"set_current_data_size_for_child");" (call_expression "FUN_0018ff20("../../gold/output.h",0x231,"set_current_data_size_for_child")" (identifier "FUN_0018ff20") (argument_list "("../../gold/output.h",0x231,"set_current_data_size_for_child")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x231") (, ",") (string_literal ""set_current_data_size_for_child"" (" """) (string_content "set_current_data_size_for_child") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "param_1[2] = uVar13 - param_2;" (assignment_expression "param_1[2] = uVar13 - param_2" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar13 - param_2" (identifier "uVar13") (- "-") (identifier "param_2"))) (; ";")) (if_statement "if (puVar10 != (uint *)0x0) {\n    FUN_002f1e60();\n  }" (if "if") (parenthesized_expression "(puVar10 != (uint *)0x0)" (( "(") (binary_expression "puVar10 != (uint *)0x0" (identifier "puVar10") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    FUN_002f1e60();\n  }" ({ "{") (expression_statement "FUN_002f1e60();" (call_expression "FUN_002f1e60()" (identifier "FUN_002f1e60") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return uVar13 - param_2;" (return "return") (binary_expression "uVar13 - param_2" (identifier "uVar13") (- "-") (identifier "param_2")) (; ";")) (} "}")))

/* DWARF original prototype: uint64_t get_input_sections(Output_section * this, uint64_t address,
   string * fill,
   list<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_> *
   input_sections) */

uint64_t __thiscall
var_6::type_1::function_1
          (type_1 *this,uint64_t var_21,type_2 *fill,
          type_3<var_6::type_1::type_17,type_4::var_34<var_6::type_1::type_17>var_2>
          *input_sections)

{
  size_t *psVar1;
  type_5 *var_1;
  type_6 *var_17;
  type_7 __position;
  type_8 aVar4;
  type_9 *p_Var5;
  type_10 var_9;
  type_11 uVar7;
  type_12 uVar8;
  type_13 __src;
  int iVar9;
  type_9 *var_24;
  uint64_t var_20;
  type_14 var_3;
  type_15 aVar12;
  type_12 extraout_var;
  type_12 extraout_var_00;
  type_16 **__dest;
  type_10 var_10;
  type_14 var_15;
  type_17 *var_22;
  type_10 var_13;
  type_10 var_8;
  type_17 *var_23;
  type_10 var_11;
  long var_4;
  uint64_t var_27;
  uint64_t var_28;
  type_18 *local_b8;
  type_17 *local_a8;
  type_19 remaining;
  type_2 this_fill;
  type_20 __dnew;
  type_8 local_50;
  type_15 local_48;
  type_11 local_40;
  type_20 var_39;
  
  var_1 = this->checkpoint_;
  if (var_1 != (type_5 *)0x0) {
    var_8 = (var_1->input_sections_copy_).
              super__Vector_base<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
              ._M_impl._M_finish;
    var_13 = (var_1->input_sections_copy_).
              super__Vector_base<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
              ._M_impl._M_start;
    var_3 = var_1->input_sections_size_;
    var_4 = (long)var_8 - (long)var_13;
    if (var_3 != var_4 >> 5) {
      if (0x7ffffffffffffff < var_3) {
                    /* WARNING: Subroutine does not return */
        std::var_5("vector::reserve");
      }
      var_15 = var_3;
      if ((type_14)((long)(var_1->input_sections_copy_).
                        super__Vector_base<var_6::type_1::type_17,type_4::var_34<var_6::type_1::type_17>var_2>
                        ._M_impl._M_end_of_storage - (long)var_13 >> 5) < var_3) {
        var_9 = var_13;
        if (var_3 == 0) {
          var_10 = (type_10)0x0;
          var_11 = var_13;
          var_13 = var_10;
        }
        else {
          var_10 = (type_10)var_7(var_3 * 0x20);
          var_11 = (var_1->input_sections_copy_).
                    super__Vector_base<var_6::type_1::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
                    ._M_impl._M_start;
          var_13 = var_10;
        }
        for (; var_8 != var_9; var_9 = var_9 + 1) {
          uVar7 = var_9->p2align_;
          aVar4 = var_9->u1_;
          var_10->shndx_ = var_9->shndx_;
          var_10->p2align_ = uVar7;
          var_10->u1_ = aVar4;
          uVar7 = var_9->section_order_index_;
          uVar8 = *(type_12 *)&var_9->field_0x1c;
          var_10->u2_ = var_9->u2_;
          var_10->section_order_index_ = uVar7;
          *(type_12 *)&var_10->field_0x1c = uVar8;
          var_10 = var_10 + 1;
        }
        if (var_11 != (type_10)0x0) {
          var_12(var_11);
        }
        var_8 = (type_10)((long)var_13 + var_4);
        (var_1->input_sections_copy_).
        super__Vector_base<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
        ._M_impl._M_start = var_13;
        (var_1->input_sections_copy_).
        super__Vector_base<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
        ._M_impl._M_finish = var_8;
        var_15 = var_1->input_sections_size_;
        (var_1->input_sections_copy_).
        super__Vector_base<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
        ._M_impl._M_end_of_storage = var_13 + var_3;
      }
      if (var_13 != var_8) {
        (var_1->input_sections_copy_).
        super__Vector_base<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
        ._M_impl._M_finish = var_13;
      }
      var_8 = (var_1->input_sections_->
                super__Vector_base<var_6::type_1::type_17,type_4::var_34<var_6::type_1::type_17>var_2>var_14
                )._M_impl._M_start;
      if (var_15 < (type_14)((long)(var_1->input_sections_->
                                 super__Vector_base<var_6::type_1::type_17,type_4::var_34<var_6::type_1::type_17>var_2>var_14
                                 )._M_impl._M_finish - (long)var_8 >> 5)) {
                    /* WARNING: Subroutine does not return */
        var_16("../../gold/output.h",0x10fd,"save_input_sections");
      }
      if (var_15 != 0) {
        var_3 = 0;
        do {
          __position._M_current =
               (var_1->input_sections_copy_).
               super__Vector_base<var_6::type_1::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
               ._M_impl._M_finish;
          if (__position._M_current ==
              (var_1->input_sections_copy_).
              super__Vector_base<var_6::type_1::type_17,type_4::var_34<var_6::type_1::type_17>var_2>
              ._M_impl._M_end_of_storage) {
            std::
            vector<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
            ::_M_realloc_insert<const_gold::Output_section::type_17&>
                      (&var_1->input_sections_copy_,__position,var_8);
          }
          else {
            uVar7 = var_8->p2align_;
            aVar4 = var_8->u1_;
            (__position._M_current)->shndx_ = var_8->shndx_;
            (__position._M_current)->p2align_ = uVar7;
            (__position._M_current)->u1_ = aVar4;
            uVar7 = var_8->section_order_index_;
            uVar8 = *(type_12 *)&var_8->field_0x1c;
            (__position._M_current)->u2_ = var_8->u2_;
            (__position._M_current)->section_order_index_ = uVar7;
            *(type_12 *)&(__position._M_current)->field_0x1c = uVar8;
            (var_1->input_sections_copy_).
            super__Vector_base<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
            ._M_impl._M_finish = __position._M_current + 1;
          }
          var_3 = var_3 + 1;
          var_8 = var_8 + 1;
        } while (var_3 < var_1->input_sections_size_);
      }
    }
  }
  this->lookup_maps_->is_valid_ = false;
  var_17 = (this->super_Output_data)._vptr_Output_data[3];
  if (var_17 == var_18) {
    var_20 = this->addralign_;
  }
  else {
    iVar9 = (*var_17)(this);
    var_20 = var_19(extraout_var_00,iVar9);
  }
  var_27 = var_21;
  if (var_20 != 0) {
    var_27 = (var_20 - 1) + var_21 & -var_20;
  }
  var_22 = (this->input_sections_).
            super__Vector_base<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
            ._M_impl._M_start;
  var_23 = (this->input_sections_).
            super__Vector_base<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
            ._M_impl._M_finish;
  remaining.
  super__Vector_base<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
  ._M_impl._M_start = (type_10)0x0;
  remaining.
  super__Vector_base<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
  ._M_impl._M_finish = (type_10)0x0;
  remaining.
  super__Vector_base<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
  ._M_impl._M_end_of_storage = (type_10)0x0;
  if (var_22 == var_23) {
    remaining.
    super__Vector_base<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
    ._M_impl._M_end_of_storage = (type_10)0x0;
    remaining.
    super__Vector_base<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
    ._M_impl._M_finish = (type_10)0x0;
    remaining.
    super__Vector_base<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
    ._M_impl._M_start = (type_10)0x0;
  }
  else {
    do {
      while (var_23 = var_22, var_23->shndx_ != 0xffffffff) {
                    /* try { // try from 00210145 to 002102fc has its CatchHandler @ 002106dc */
        var_24 = (type_9 *)var_7(0x30);
        aVar4 = var_23->u1_;
        var_24[1]._M_next = *(type_9 **)var_23;
        var_24[1]._M_prev = (type_9 *)aVar4;
        p_Var5 = *(type_9 **)&var_23->section_order_index_;
        *(type_15 *)(var_24 + 2) = var_23->u2_;
        var_24[2]._M_prev = p_Var5;
        std::__detail::_List_node_base::var_25(var_24,(type_9 *)input_sections);
        psVar1 = &(input_sections->
                  super__List_base<var_6::type_1::type_17,type_4::var_34<var_6::type_1::type_17>var_2>var_14
                  )._M_impl._M_node._M_size;
        *psVar1 = *psVar1 + 1;
        var_22 = var_23 + 1;
        if ((this->input_sections_).
            super__Vector_base<var_6::type_1::type_17,type_4::var_34<var_6::type_1::type_17>var_2>
            ._M_impl._M_finish == var_23 + 1) goto LAB_00210220;
      }
      if (var_23->p2align_ == 0) {
        var_17 = (((var_23->u2_).posd)->super_Output_data)._vptr_Output_data[3];
        if (var_17 == var_26::var_18) {
          var_20 = ((var_23->u2_).posd)->addralign_;
        }
        else {
                    /* try { // try from 00210530 to 00210531 has its CatchHandler @ 002106dc */
          iVar9 = (*var_17)();
          var_20 = var_19(extraout_var,iVar9);
        }
      }
      else {
        var_20 = 1L << ((char)var_23->p2align_ - 1U & 0x3f);
      }
      var_28 = var_27;
      if (((var_20 != 0) && (var_28 = (var_27 - 1) + var_20 & -var_20, var_27 != var_28)) &&
         (fill->_M_string_length != 0)) {
        this_fill.field_2._M_local_buf[0] = '\0';
        this_fill._M_string_length = 0;
        var_3 = var_28 - var_27;
        this_fill._M_dataplus._M_p = (type_10)&this_fill.field_2;
                    /* try { // try from 002103f8 to 00210515 has its CatchHandler @ 002106e4 */
        std::string::var_29((type_2 *)&this_fill,var_3);
        while (var_15 = fill->_M_string_length, this_fill._M_string_length + var_15 <= var_3) {
          std::string::var_30((type_2 *)&this_fill,(fill->_M_dataplus)._M_p,var_15);
        }
        if (this_fill._M_string_length < var_3) {
          if (var_3 - this_fill._M_string_length <= var_15) {
            var_15 = var_3 - this_fill._M_string_length;
          }
                    /* try { // try from 00210551 to 00210555 has its CatchHandler @ 002106e4 */
          std::string::var_30((type_2 *)&this_fill,(fill->_M_dataplus)._M_p,var_15);
        }
        aVar12.object = (type_21 *)var_7(0x58);
        var_39 = this_fill._M_string_length;
        __src = this_fill._M_dataplus;
        ((aVar12.object)->super_Object).name_._M_dataplus._M_p = (type_10)0x0;
        ((aVar12.object)->super_Object).input_file_ = (type_22 *)0x0;
        ((aVar12.object)->super_Object).offset_ = 0;
        ((aVar12.object)->super_Object).name_._M_string_length = this_fill._M_string_length;
        ((aVar12.object)->super_Object).name_.field_2._M_allocated_capacity = 0xffffffffffffffff;
        local_b8 = (type_18 *)this_fill._M_string_length;
        ((aVar12.object)->super_Object).name_.field_2._M_local_buf[8] =
             ((aVar12.object)->super_Object).name_.field_2._M_local_buf[8] & 0xe0U | 10;
        ((aVar12.object)->super_Object)._vptr_Object =
             (type_6 **)&PTR__Output_data_const_00445c48;
        __dest = &((aVar12.object)->super_Object).compressed_sections_;
        *(type_16 ***)&((aVar12.object)->super_Object).shnum_ = __dest;
        if ((this_fill._M_dataplus._M_p + this_fill._M_string_length != (type_10)0x0) &&
           (this_fill._M_dataplus._M_p == (type_10)0x0)) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0021068e to 00210692 has its CatchHandler @ 002106d4 */
          std::var_31("basic_string::_M_construct null not valid");
        }
        __dnew = this_fill._M_string_length;
        if (this_fill._M_string_length < 0x10) {
          if (this_fill._M_string_length == 1) {
            *(char *)&((aVar12.object)->super_Object).compressed_sections_ =
                 *this_fill._M_dataplus._M_p;
          }
          else if (this_fill._M_string_length != 0) goto LAB_002105af;
        }
        else {
                    /* try { // try from 0021059d to 002105a1 has its CatchHandler @ 002106d4 */
          __dest = (type_16 **)
                   std::string::var_32
                             ((type_2 *)&((aVar12.object)->super_Object).shnum_,&__dnew,0);
          *(type_16 ***)&((aVar12.object)->super_Object).shnum_ = __dest;
          ((aVar12.object)->super_Object).compressed_sections_ = (type_16 *)__dnew;
LAB_002105af:
          var_33(__dest,__src._M_p,var_39);
          local_b8 = (type_18 *)__dnew;
          __dest = *(type_16 ***)&((aVar12.object)->super_Object).shnum_;
        }
        local_a8 = (type_17 *)&__dnew;
        ((aVar12.object)->super_Object).xindex_ = local_b8;
        *(type_23 *)((long)__dest + (long)local_b8) = 0;
        local_40 = 0;
        __dnew = 0xffffffff;
        local_50.var_38 = 0;
        local_48.object = aVar12.object;
        std::
        vector<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
        ::emplace_back<var_6::Output_section::type_17>(&remaining,local_a8);
        if ((anon_union_16_2_edb7204a_for_basic_string<var_35,type_4::char_traits<var_35>,type_4::var_34<var_35>var_2>var_36
             *)this_fill._M_dataplus._M_p != &this_fill.field_2) {
          var_12(this_fill._M_dataplus._M_p);
        }
      }
      if (remaining.
          super__Vector_base<var_6::type_1::type_17,type_4::var_34<var_6::type_1::type_17>var_2>
          ._M_impl._M_finish ==
          remaining.
          super__Vector_base<var_6::type_1::type_17,type_4::var_34<var_6::type_1::type_17>var_2>
          ._M_impl._M_end_of_storage) {
        std::
        vector<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
        ::_M_realloc_insert<const_gold::Output_section::type_17&>
                  (&remaining,
                   (type_7)
                   remaining.
                   super__Vector_base<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
                   ._M_impl._M_finish,var_23);
      }
      else {
        uVar7 = var_23->p2align_;
        aVar4 = var_23->u1_;
        (remaining.
         super__Vector_base<var_6::type_1::type_17,type_4::var_34<var_6::type_1::type_17>var_2>
         ._M_impl._M_finish)->shndx_ = var_23->shndx_;
        (remaining.
         super__Vector_base<var_6::type_1::type_17,type_4::var_34<var_6::type_1::type_17>var_2>
         ._M_impl._M_finish)->p2align_ = uVar7;
        (remaining.
         super__Vector_base<var_6::type_1::type_17,type_4::var_34<var_6::type_1::type_17>var_2>
         ._M_impl._M_finish)->u1_ = aVar4;
        uVar7 = var_23->section_order_index_;
        uVar8 = *(type_12 *)&var_23->field_0x1c;
        (remaining.
         super__Vector_base<var_6::type_1::type_17,type_4::var_34<var_6::type_1::type_17>var_2>
         ._M_impl._M_finish)->u2_ = var_23->u2_;
        (remaining.
         super__Vector_base<var_6::type_1::type_17,type_4::var_34<var_6::type_1::type_17>var_2>
         ._M_impl._M_finish)->section_order_index_ = uVar7;
        *(type_12 *)
         &(remaining.
           super__Vector_base<var_6::type_1::type_17,type_4::var_34<var_6::type_1::type_17>var_2>
           ._M_impl._M_finish)->field_0x1c = uVar8;
        remaining.
        super__Vector_base<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
        ._M_impl._M_finish =
             remaining.
             super__Vector_base<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
             ._M_impl._M_finish + 1;
      }
      if ((var_23->shndx_ + 4 < 4) &&
         (var_22 = var_23, type_17::var_37(var_23),
         0xfffffffb < var_23->shndx_)) {
        if (((((var_23->u2_).object)->super_Object).name_.field_2._M_local_buf[8] & 2U) == 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00210693 to 002106af has its CatchHandler @ 002106dc */
          Input_section::var_38(var_22);
        }
        var_39 = (((var_23->u2_).object)->super_Object).name_._M_string_length;
      }
      else {
        var_39 = (var_23->u1_).var_38;
      }
      var_27 = var_39 + var_28;
      var_22 = var_23 + 1;
    } while ((this->input_sections_).
             super__Vector_base<var_6::type_1::type_17,type_4::var_34<var_6::type_1::type_17>var_2>
             ._M_impl._M_finish != var_23 + 1);
LAB_00210220:
    var_22 = var_23 + 1;
    var_23 = (this->input_sections_).
              super__Vector_base<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
              ._M_impl._M_start;
  }
  (this->input_sections_).
  super__Vector_base<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
  ._M_impl._M_finish =
       remaining.
       super__Vector_base<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
       ._M_impl._M_finish;
  var_8 = (this->input_sections_).
            super__Vector_base<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
            ._M_impl._M_end_of_storage;
  (this->input_sections_).
  super__Vector_base<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
  ._M_impl._M_start =
       remaining.
       super__Vector_base<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
       ._M_impl._M_start;
  (this->input_sections_).
  super__Vector_base<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
  ._M_impl._M_end_of_storage =
       remaining.
       super__Vector_base<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
       ._M_impl._M_end_of_storage;
  this->first_input_offset_ = 0;
  remaining.
  super__Vector_base<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
  ._M_impl._M_start = var_23;
  remaining.
  super__Vector_base<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
  ._M_impl._M_finish = var_22;
  remaining.
  super__Vector_base<var_6::Output_section::type_17,type_4::var_34<var_6::Output_section::type_17>var_2>
  ._M_impl._M_end_of_storage = var_8;
  if (((this->super_Output_data).field_0x20 & 2) != 0) {
                    /* WARNING: Subroutine does not return */
    var_16("../../gold/output.h",0x231,"set_current_data_size_for_child");
  }
  (this->super_Output_data).data_size_ = var_27 - var_21;
  if (var_23 != (type_17 *)0x0) {
    var_12(var_23);
  }
  return var_27 - var_21;
}


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

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

{
  code *pcVar1;
  undefined8 uVar2;
  undefined8 *puVar3;
  undefined1 *__src;
  undefined8 *puVar4;
  long lVar5;
  undefined8 *puVar6;
  undefined8 *puVar7;
  ulong uVar8;
  uint *puVar9;
  uint *puVar10;
  undefined8 *puVar11;
  long lVar12;
  ulong uVar13;
  ulong uVar14;
  ulong local_b8;
  ulong *local_a8;
  uint *local_98;
  uint *local_90;
  undefined8 *local_88;
  undefined1 *local_78;
  ulong local_70;
  undefined1 local_68 [16];
  ulong local_58 [2];
  undefined8 *local_48;
  undefined4 local_40;
  
  lVar5 = param_1[0x1d];
  if (lVar5 != 0) {
    puVar6 = *(undefined8 **)(lVar5 + 0x30);
    puVar4 = *(undefined8 **)(lVar5 + 0x28);
    uVar13 = *(ulong *)(lVar5 + 0x20);
    lVar12 = (long)puVar6 - (long)puVar4;
    if (uVar13 != lVar12 >> 5) {
      if (0x7ffffffffffffff < uVar13) {
                    /* WARNING: Subroutine does not return */
        FUN_00330790("vector::reserve");
      }
      uVar14 = uVar13;
      if ((ulong)(*(long *)(lVar5 + 0x38) - (long)puVar4 >> 5) < uVar13) {
        puVar3 = puVar4;
        if (uVar13 == 0) {
          puVar7 = (undefined8 *)0x0;
          puVar11 = puVar4;
          puVar4 = puVar7;
        }
        else {
          puVar7 = (undefined8 *)FUN_002f0690();
          puVar11 = *(undefined8 **)(lVar5 + 0x28);
          puVar4 = puVar7;
        }
        for (; puVar6 != puVar3; puVar3 = puVar3 + 4) {
          uVar2 = puVar3[1];
          *puVar7 = *puVar3;
          puVar7[1] = uVar2;
          uVar2 = puVar3[3];
          puVar7[2] = puVar3[2];
          puVar7[3] = uVar2;
          puVar7 = puVar7 + 4;
        }
        if (puVar11 != (undefined8 *)0x0) {
          FUN_002f1e60();
        }
        puVar6 = (undefined8 *)((long)puVar4 + lVar12);
        *(undefined8 **)(lVar5 + 0x28) = puVar4;
        *(undefined8 **)(lVar5 + 0x30) = puVar6;
        uVar14 = *(ulong *)(lVar5 + 0x20);
        *(undefined8 **)(lVar5 + 0x38) = puVar4 + uVar13 * 4;
      }
      if (puVar4 != puVar6) {
        *(undefined8 **)(lVar5 + 0x30) = puVar4;
      }
      puVar6 = (undefined8 *)**(long **)(lVar5 + 0x18);
      if (uVar14 < (ulong)((*(long **)(lVar5 + 0x18))[1] - (long)puVar6 >> 5)) {
                    /* WARNING: Subroutine does not return */
        FUN_0018ff20("../../gold/output.h",0x10fd,"save_input_sections");
      }
      if (uVar14 != 0) {
        uVar13 = 0;
        do {
          puVar4 = *(undefined8 **)(lVar5 + 0x30);
          if (puVar4 == *(undefined8 **)(lVar5 + 0x38)) {
            FUN_00220270(lVar5 + 0x28,puVar4,puVar6);
          }
          else {
            uVar2 = puVar6[1];
            *puVar4 = *puVar6;
            puVar4[1] = uVar2;
            uVar2 = puVar6[3];
            puVar4[2] = puVar6[2];
            puVar4[3] = uVar2;
            *(undefined8 **)(lVar5 + 0x30) = puVar4 + 4;
          }
          uVar13 = uVar13 + 1;
          puVar6 = puVar6 + 4;
        } while (uVar13 < *(ulong *)(lVar5 + 0x20));
      }
    }
  }
  *(undefined1 *)param_1[0x1e] = 0;
  if (*(code **)(*param_1 + 0x18) == FUN_001c5d30) {
    lVar5 = param_1[6];
  }
  else {
    lVar5 = (**(code **)(*param_1 + 0x18))(param_1);
  }
  uVar13 = param_2;
  if (lVar5 != 0) {
    uVar13 = lVar5 + -1 + param_2 & -lVar5;
  }
  puVar9 = (uint *)param_1[0x11];
  puVar10 = (uint *)param_1[0x12];
  local_98 = (uint *)0x0;
  local_90 = (uint *)0x0;
  local_88 = (undefined8 *)0x0;
  if (puVar9 == puVar10) {
    local_88 = (undefined8 *)0x0;
    local_90 = (uint *)0x0;
    local_98 = (uint *)0x0;
  }
  else {
    do {
      while (puVar10 = puVar9, *puVar10 != 0xffffffff) {
                    /* try { // try from 00210145 to 002102fc has its CatchHandler @ 002106dc */
        lVar5 = FUN_002f0690(0x30);
        uVar2 = *(undefined8 *)(puVar10 + 2);
        *(undefined8 *)(lVar5 + 0x10) = *(undefined8 *)puVar10;
        *(undefined8 *)(lVar5 + 0x18) = uVar2;
        uVar2 = *(undefined8 *)(puVar10 + 6);
        *(undefined8 *)(lVar5 + 0x20) = *(undefined8 *)(puVar10 + 4);
        *(undefined8 *)(lVar5 + 0x28) = uVar2;
        FUN_002f4d00(lVar5,param_4);
        *(long *)(param_4 + 0x10) = *(long *)(param_4 + 0x10) + 1;
        puVar9 = puVar10 + 8;
        if ((uint *)param_1[0x12] == puVar10 + 8) goto LAB_00210220;
      }
      if (puVar10[1] == 0) {
        pcVar1 = *(code **)(**(long **)(puVar10 + 4) + 0x18);
        if (pcVar1 == FUN_00172c90) {
          lVar5 = (*(long **)(puVar10 + 4))[6];
        }
        else {
                    /* try { // try from 00210530 to 00210531 has its CatchHandler @ 002106dc */
          lVar5 = (*pcVar1)();
        }
      }
      else {
        lVar5 = 1L << ((char)puVar10[1] - 1U & 0x3f);
      }
      uVar14 = uVar13;
      if (((lVar5 != 0) && (uVar14 = (uVar13 - 1) + lVar5 & -lVar5, uVar13 != uVar14)) &&
         (param_3[1] != 0)) {
        local_68[0] = 0;
        local_70 = 0;
        uVar13 = uVar14 - uVar13;
        local_78 = local_68;
                    /* try { // try from 002103f8 to 00210515 has its CatchHandler @ 002106e4 */
        FUN_002f9000(&local_78,uVar13);
        while (uVar8 = param_3[1], local_70 + uVar8 <= uVar13) {
          FUN_002fa0e0(&local_78,*param_3);
        }
        if (local_70 < uVar13) {
          if (uVar13 - local_70 <= uVar8) {
            uVar8 = uVar13 - local_70;
          }
                    /* try { // try from 00210551 to 00210555 has its CatchHandler @ 002106e4 */
          FUN_002fa0e0(&local_78,*param_3,uVar8);
        }
        puVar4 = (undefined8 *)FUN_002f0690(0x58);
        uVar13 = local_70;
        __src = local_78;
        puVar4[1] = 0;
        puVar4[5] = 0;
        puVar4[6] = 0;
        puVar4[2] = local_70;
        puVar4[3] = 0xffffffffffffffff;
        local_b8 = local_70;
        *(byte *)(puVar4 + 4) = *(byte *)(puVar4 + 4) & 0xe0 | 10;
        *puVar4 = &PTR_FUN_00445c48;
        puVar6 = puVar4 + 9;
        puVar4[7] = puVar6;
        if ((local_78 + local_70 != (undefined1 *)0x0) && (local_78 == (undefined1 *)0x0)) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0021068e to 00210692 has its CatchHandler @ 002106d4 */
          FUN_003306d0("basic_string::_M_construct null not valid");
        }
        local_58[0] = local_70;
        if (local_70 < 0x10) {
          if (local_70 == 1) {
            *(undefined1 *)(puVar4 + 9) = *local_78;
          }
          else if (local_70 != 0) goto LAB_002105af;
        }
        else {
                    /* try { // try from 0021059d to 002105a1 has its CatchHandler @ 002106d4 */
          puVar6 = (undefined8 *)FUN_002f8790(puVar4 + 7,local_58,0);
          puVar4[7] = puVar6;
          puVar4[9] = local_58[0];
LAB_002105af:
          memcpy(puVar6,__src,uVar13);
          local_b8 = local_58[0];
          puVar6 = (undefined8 *)puVar4[7];
        }
        local_a8 = local_58;
        puVar4[8] = local_b8;
        *(undefined1 *)((long)puVar6 + local_b8) = 0;
        local_40 = 0;
        local_58[0] = 0xffffffff;
        local_58[1] = 0;
        local_48 = puVar4;
        FUN_00223190(&local_98,local_a8);
        if (local_78 != local_68) {
          FUN_002f1e60();
        }
      }
      if (local_90 == (uint *)local_88) {
        FUN_00220270(&local_98,local_90,puVar10);
      }
      else {
        uVar2 = *(undefined8 *)(puVar10 + 2);
        *(undefined8 *)local_90 = *(undefined8 *)puVar10;
        *(undefined8 *)((long)local_90 + 8) = uVar2;
        uVar2 = *(undefined8 *)(puVar10 + 6);
        *(undefined8 *)((long)local_90 + 0x10) = *(undefined8 *)(puVar10 + 4);
        *(undefined8 *)((long)local_90 + 0x18) = uVar2;
        local_90 = (uint *)((long)local_90 + 0x20);
      }
      if ((*puVar10 + 4 < 4) && (FUN_0020ab90(puVar10), 0xfffffffb < *puVar10)) {
        if ((*(byte *)(*(long *)(puVar10 + 4) + 0x20) & 2) == 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00210693 to 002106af has its CatchHandler @ 002106dc */
          FUN_0020a520();
        }
        lVar5 = *(long *)(*(long *)(puVar10 + 4) + 0x10);
      }
      else {
        lVar5 = *(long *)(puVar10 + 2);
      }
      uVar13 = lVar5 + uVar14;
      puVar9 = puVar10 + 8;
    } while ((uint *)param_1[0x12] != puVar10 + 8);
LAB_00210220:
    puVar9 = puVar10 + 8;
    puVar10 = (uint *)param_1[0x11];
  }
  param_1[0x12] = (long)local_90;
  lVar5 = param_1[0x13];
  param_1[0x11] = (long)local_98;
  param_1[0x13] = (long)local_88;
  param_1[0x14] = 0;
  local_98 = puVar10;
  local_90 = puVar9;
  local_88 = (undefined8 *)lVar5;
  if ((*(byte *)(param_1 + 4) & 2) != 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0018ff20("../../gold/output.h",0x231,"set_current_data_size_for_child");
  }
  param_1[2] = uVar13 - param_2;
  if (puVar10 != (uint *)0x0) {
    FUN_002f1e60();
  }
  return uVar13 - param_2;
}

