
/* DWARF original prototype: void
   reserve(vector<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>
   * this, size_type __n) */

void __thiscall
std::
vector<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>
::reserve(vector<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>
          *this,size_type __n)

{
  off_t oVar1;
  pointer pIVar2;
  pointer pIVar3;
  undefined4 uVar4;
  Key KVar5;
  pointer pIVar6;
  pointer pIVar7;
  int iVar8;
  pointer pIVar9;
  
  if (0xfffffff < __n) {
    (*(code *)PTR___throw_length_error_00432480)(PTR_LAB_0043220c + 0x4864);
    return;
  }
  pIVar6 = (this->
           super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>
           )._M_impl._M_start;
  if ((uint)((int)(this->
                  super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>
                  )._M_impl._M_end_of_storage - (int)pIVar6 >> 4) < __n) {
    pIVar9 = (this->
             super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>
             )._M_impl._M_finish;
    iVar8 = (int)pIVar9 - (int)pIVar6;
    if (__n == 0) {
      pIVar2 = (pointer)0x0;
      pIVar7 = pIVar2;
      pIVar3 = pIVar6;
    }
    else {
      pIVar2 = (pointer)(*(code *)PTR_operator_new_0043233c)(__n * 0x10);
      pIVar7 = pIVar2;
      pIVar3 = (this->
               super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>
               )._M_impl._M_start;
    }
    for (; pIVar9 != pIVar6; pIVar6 = pIVar6 + 1) {
      KVar5 = pIVar6->name_key_;
      uVar4 = *(undefined4 *)&pIVar6->sh_size_;
      oVar1 = pIVar6->sh_size_;
      pIVar2->shndx_ = pIVar6->shndx_;
      pIVar2->name_key_ = KVar5;
      *(undefined4 *)&pIVar2->sh_size_ = uVar4;
      *(int *)((int)&pIVar2->sh_size_ + 4) = (int)oVar1;
      pIVar2 = pIVar2 + 1;
    }
    if (pIVar3 != (pointer)0x0) {
      (*(code *)PTR_operator_delete_0043228c)();
    }
    (this->
    super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>
    )._M_impl._M_start = pIVar7;
    (this->
    super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>
    )._M_impl._M_finish = (pointer)((int)pIVar7 + iVar8);
    (this->
    super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>
    )._M_impl._M_end_of_storage = pIVar7 + __n;
    return;
  }
  return;
}



/* std::vector<gold::Incremental_object_entry::Input_section,
   std::allocator<gold::Incremental_object_entry::Input_section> >::reserve(unsigned int) */

void __thiscall
std::
vector<gold::Incremental_object_entry::Input_section,std::allocator<gold::Incremental_object_entry::Input_section>>
::reserve(vector<gold::Incremental_object_entry::Input_section,std::allocator<gold::Incremental_object_entry::Input_section>>
          *this,uint param_1)

{
  undefined4 *puVar1;
  undefined4 uVar2;
  undefined4 *puVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  undefined4 *puVar6;
  undefined4 *puVar7;
  int iVar8;
  undefined4 *puVar9;
  
  if (0xfffffff < param_1) {
    (*(code *)PTR___throw_length_error_00432480)(PTR_LAB_0043220c + 0x4864);
    return;
  }
  puVar6 = *(undefined4 **)this;
  if ((uint)(*(int *)(this + 8) - (int)puVar6 >> 4) < param_1) {
    puVar9 = *(undefined4 **)(this + 4);
    iVar8 = (int)puVar9 - (int)puVar6;
    if (param_1 == 0) {
      puVar1 = (undefined4 *)0x0;
      puVar7 = puVar1;
      puVar3 = puVar6;
    }
    else {
      puVar1 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(param_1 * 0x10);
      puVar7 = puVar1;
      puVar3 = *(undefined4 **)this;
    }
    for (; puVar9 != puVar6; puVar6 = puVar6 + 4) {
      uVar5 = puVar6[1];
      uVar4 = puVar6[2];
      uVar2 = puVar6[3];
      *puVar1 = *puVar6;
      puVar1[1] = uVar5;
      puVar1[2] = uVar4;
      puVar1[3] = uVar2;
      puVar1 = puVar1 + 4;
    }
    if (puVar3 != (undefined4 *)0x0) {
      (*(code *)PTR_operator_delete_0043228c)();
    }
    *(undefined4 **)this = puVar7;
    *(int *)(this + 4) = (int)puVar7 + iVar8;
    *(undefined4 **)(this + 8) = puVar7 + param_1 * 4;
    return;
  }
  return;
}


lui gp,0x34
addiu gp,gp,-0x775c
addu gp,gp,t9
addiu sp,sp,-0x38
lui v0,0x1000
sw gp,0x10(sp)
sltu v0,a1,v0
sw ra,0x34(sp)
sw s5,0x30(sp)
sw s4,0x2c(sp)
sw s3,0x28(sp)
sw s2,0x24(sp)
sw s1,0x20(sp)
beq v0,zero,0x00101a60
_sw s0,0x1c(sp)
lw s0,0x0(a0)
lw v0,0x8(a0)
subu v0,v0,s0
sra v0,v0,0x4
sltu v0,v0,a1
bne v0,zero,0x001019a8
_or s1,a0,zero
lw ra,0x34(sp)
lw s5,0x30(sp)
lw s4,0x2c(sp)
lw s3,0x28(sp)
lw s2,0x24(sp)
lw s1,0x20(sp)
lw s0,0x1c(sp)
jr ra
_addiu sp,sp,0x38
lw s4,0x4(a0)
sll s5,a1,0x4
beq a1,zero,0x00101a54
_subu s3,s4,s0
lw t9,-0x7e94(gp)
jalr t9
_or a0,s5,zero
lw gp,0x10(sp)
or s2,v0,zero
lw a0,0x0(s1)
beq s4,s0,0x00101a0c
_nop
or v1,s0,zero
or a1,s2,zero
lw t0,0x0(v1)
addiu v1,v1,0x10
addiu a1,a1,0x10
lw a3,-0xc(v1)
lw a2,-0x8(v1)
lw v0,-0x4(v1)
sw t0,-0x10(a1)
sw a3,-0xc(a1)
sw a2,-0x8(a1)
bne s4,v1,0x001019e0
_sw v0,-0x4(a1)
beq a0,zero,0x00101a1c
_lw t9,-0x7f44(gp)
jalr t9
_nop
lw ra,0x34(sp)
addu s3,s2,s3
lw s4,0x2c(sp)
lw s0,0x1c(sp)
sw s2,0x0(s1)
addu s2,s2,s5
sw s3,0x4(s1)
sw s2,0x8(s1)
lw s5,0x30(sp)
lw s3,0x28(sp)
lw s2,0x24(sp)
lw s1,0x20(sp)
jr ra
_addiu sp,sp,0x38
or s2,zero,zero
b 0x001019d0
_or a0,s0,zero
lw a0,-0x7fc4(gp)
lw t9,-0x7d50(gp)
jalr t9
_addiu a0,a0,0x4864
(translation_unit "/* std::vector<gold::Incremental_object_entry::Input_section,\n   std::allocator<gold::Incremental_object_entry::Input_section> >::reserve(unsigned int) */\n\nvoid __thiscall\nstd::\nvector<gold::Incremental_object_entry::Input_section,std::allocator<gold::Incremental_object_entry::Input_section>>\n::reserve(vector<gold::Incremental_object_entry::Input_section,std::allocator<gold::Incremental_object_entry::Input_section>>\n          *this,uint param_1)\n\n{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  \n  if (0xfffffff < param_1) {\n    (*(code *)PTR___throw_length_error_00432480)(PTR_LAB_0043220c + 0x4864);\n    return;\n  }\n  puVar6 = *(undefined4 **)this;\n  if ((uint)(*(int *)(this + 8) - (int)puVar6 >> 4) < param_1) {\n    puVar9 = *(undefined4 **)(this + 4);\n    iVar8 = (int)puVar9 - (int)puVar6;\n    if (param_1 == 0) {\n      puVar1 = (undefined4 *)0x0;\n      puVar7 = puVar1;\n      puVar3 = puVar6;\n    }\n    else {\n      puVar1 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(param_1 * 0x10);\n      puVar7 = puVar1;\n      puVar3 = *(undefined4 **)this;\n    }\n    for (; puVar9 != puVar6; puVar6 = puVar6 + 4) {\n      uVar5 = puVar6[1];\n      uVar4 = puVar6[2];\n      uVar2 = puVar6[3];\n      *puVar1 = *puVar6;\n      puVar1[1] = uVar5;\n      puVar1[2] = uVar4;\n      puVar1[3] = uVar2;\n      puVar1 = puVar1 + 4;\n    }\n    if (puVar3 != (undefined4 *)0x0) {\n      (*(code *)PTR_operator_delete_0043228c)();\n    }\n    *(undefined4 **)this = puVar7;\n    *(int *)(this + 4) = (int)puVar7 + iVar8;\n    *(undefined4 **)(this + 8) = puVar7 + param_1 * 4;\n    return;\n  }\n  return;\n}\n\n" comment (declaration "void __thiscall\nstd::\nvector<gold::Incremental_object_entry::Input_section,std::allocator<gold::Incremental_object_entry::Input_section>>\n::reserve(vector<gold::Incremental_object_entry::Input_section,std::allocator<gold::Incremental_object_entry::Input_section>>\n          *this,uint param_1)\n\n{\n  undefined4 *puVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::\nvector<gold::Incremental_object_entry::" identifier : : identifier < identifier : : identifier : :) identifier , (ERROR "std::allocator<gold::Incremental_object_entry::Input_section>>\n::reserve(vector<gold::Incremental_object_entry::Input_section,std::allocator<gold::Incremental_object_entry::Input_section>>\n          *this,uint param_1)\n\n{\n  undefined4" identifier : : identifier < identifier : : identifier : : identifier >> : : (function_declarator "reserve(vector<gold::Incremental_object_entry::Input_section,std::allocator<gold::Incremental_object_entry::Input_section>>\n          *this,uint param_1)" identifier (parameter_list "(vector<gold::Incremental_object_entry::Input_section,std::allocator<gold::Incremental_object_entry::Input_section>>\n          *this,uint param_1)" ( (parameter_declaration "vector<gold::Incremental_object_entry::Input_section" type_identifier (ERROR "<gold::Incremental_object_entry::" < identifier : : identifier : :) identifier) , (parameter_declaration "std::allocator<gold::Incremental_object_entry::Input_section>>\n          *this" type_identifier (ERROR "::allocator<gold::Incremental_object_entry::Input_section>>" : : identifier < identifier : : identifier : : identifier >>) (pointer_declarator "*this" * identifier)) , (parameter_declaration "uint param_1" type_identifier identifier) ))) { identifier) (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (if_statement "if (0xfffffff < param_1) {\n    (*(code *)PTR___throw_length_error_00432480)(PTR_LAB_0043220c + 0x4864);\n    return;\n  }" if (parenthesized_expression "(0xfffffff < param_1)" ( (binary_expression "0xfffffff < param_1" number_literal < identifier) )) (compound_statement "{\n    (*(code *)PTR___throw_length_error_00432480)(PTR_LAB_0043220c + 0x4864);\n    return;\n  }" { (expression_statement "(*(code *)PTR___throw_length_error_00432480)(PTR_LAB_0043220c + 0x4864);" (call_expression "(*(code *)PTR___throw_length_error_00432480)(PTR_LAB_0043220c + 0x4864)" (parenthesized_expression "(*(code *)PTR___throw_length_error_00432480)" ( (pointer_expression "*(code *)PTR___throw_length_error_00432480" * (cast_expression "(code *)PTR___throw_length_error_00432480" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_0043220c + 0x4864)" ( (binary_expression "PTR_LAB_0043220c + 0x4864" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "puVar6 = *(undefined4 **)this;" (assignment_expression "puVar6 = *(undefined4 **)this" identifier = (pointer_expression "*(undefined4 **)this" * (cast_expression "(undefined4 **)this" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if ((uint)(*(int *)(this + 8) - (int)puVar6 >> 4) < param_1) {\n    puVar9 = *(undefined4 **)(this + 4);\n    iVar8 = (int)puVar9 - (int)puVar6;\n    if (param_1 == 0) {\n      puVar1 = (undefined4 *)0x0;\n      puVar7 = puVar1;\n      puVar3 = puVar6;\n    }\n    else {\n      puVar1 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(param_1 * 0x10);\n      puVar7 = puVar1;\n      puVar3 = *(undefined4 **)this;\n    }\n    for (; puVar9 != puVar6; puVar6 = puVar6 + 4) {\n      uVar5 = puVar6[1];\n      uVar4 = puVar6[2];\n      uVar2 = puVar6[3];\n      *puVar1 = *puVar6;\n      puVar1[1] = uVar5;\n      puVar1[2] = uVar4;\n      puVar1[3] = uVar2;\n      puVar1 = puVar1 + 4;\n    }\n    if (puVar3 != (undefined4 *)0x0) {\n      (*(code *)PTR_operator_delete_0043228c)();\n    }\n    *(undefined4 **)this = puVar7;\n    *(int *)(this + 4) = (int)puVar7 + iVar8;\n    *(undefined4 **)(this + 8) = puVar7 + param_1 * 4;\n    return;\n  }" if (parenthesized_expression "((uint)(*(int *)(this + 8) - (int)puVar6 >> 4) < param_1)" ( (binary_expression "(uint)(*(int *)(this + 8) - (int)puVar6 >> 4) < param_1" (call_expression "(uint)(*(int *)(this + 8) - (int)puVar6 >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(this + 8) - (int)puVar6 >> 4)" ( (binary_expression "*(int *)(this + 8) - (int)puVar6 >> 4" (binary_expression "*(int *)(this + 8) - (int)puVar6" (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) - (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) ))) < identifier) )) (compound_statement "{\n    puVar9 = *(undefined4 **)(this + 4);\n    iVar8 = (int)puVar9 - (int)puVar6;\n    if (param_1 == 0) {\n      puVar1 = (undefined4 *)0x0;\n      puVar7 = puVar1;\n      puVar3 = puVar6;\n    }\n    else {\n      puVar1 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(param_1 * 0x10);\n      puVar7 = puVar1;\n      puVar3 = *(undefined4 **)this;\n    }\n    for (; puVar9 != puVar6; puVar6 = puVar6 + 4) {\n      uVar5 = puVar6[1];\n      uVar4 = puVar6[2];\n      uVar2 = puVar6[3];\n      *puVar1 = *puVar6;\n      puVar1[1] = uVar5;\n      puVar1[2] = uVar4;\n      puVar1[3] = uVar2;\n      puVar1 = puVar1 + 4;\n    }\n    if (puVar3 != (undefined4 *)0x0) {\n      (*(code *)PTR_operator_delete_0043228c)();\n    }\n    *(undefined4 **)this = puVar7;\n    *(int *)(this + 4) = (int)puVar7 + iVar8;\n    *(undefined4 **)(this + 8) = puVar7 + param_1 * 4;\n    return;\n  }" { (expression_statement "puVar9 = *(undefined4 **)(this + 4);" (assignment_expression "puVar9 = *(undefined4 **)(this + 4)" identifier = (pointer_expression "*(undefined4 **)(this + 4)" * (cast_expression "(undefined4 **)(this + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = (int)puVar9 - (int)puVar6;" (assignment_expression "iVar8 = (int)puVar9 - (int)puVar6" identifier = (binary_expression "(int)puVar9 - (int)puVar6" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (param_1 == 0) {\n      puVar1 = (undefined4 *)0x0;\n      puVar7 = puVar1;\n      puVar3 = puVar6;\n    }\n    else {\n      puVar1 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(param_1 * 0x10);\n      puVar7 = puVar1;\n      puVar3 = *(undefined4 **)this;\n    }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n      puVar1 = (undefined4 *)0x0;\n      puVar7 = puVar1;\n      puVar3 = puVar6;\n    }" { (expression_statement "puVar1 = (undefined4 *)0x0;" (assignment_expression "puVar1 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar7 = puVar1;" (assignment_expression "puVar7 = puVar1" identifier = identifier) ;) (expression_statement "puVar3 = puVar6;" (assignment_expression "puVar3 = puVar6" identifier = identifier) ;) }) (else_clause "else {\n      puVar1 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(param_1 * 0x10);\n      puVar7 = puVar1;\n      puVar3 = *(undefined4 **)this;\n    }" else (compound_statement "{\n      puVar1 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(param_1 * 0x10);\n      puVar7 = puVar1;\n      puVar3 = *(undefined4 **)this;\n    }" { (expression_statement "puVar1 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(param_1 * 0x10);" (assignment_expression "puVar1 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(param_1 * 0x10)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_operator_new_0043233c)(param_1 * 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_0043233c)(param_1 * 0x10)" (parenthesized_expression "(*(code *)PTR_operator_new_0043233c)" ( (pointer_expression "*(code *)PTR_operator_new_0043233c" * (cast_expression "(code *)PTR_operator_new_0043233c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1 * 0x10)" ( (binary_expression "param_1 * 0x10" identifier * number_literal) ))))) ;) (expression_statement "puVar7 = puVar1;" (assignment_expression "puVar7 = puVar1" identifier = identifier) ;) (expression_statement "puVar3 = *(undefined4 **)this;" (assignment_expression "puVar3 = *(undefined4 **)this" identifier = (pointer_expression "*(undefined4 **)this" * (cast_expression "(undefined4 **)this" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) }))) (for_statement "for (; puVar9 != puVar6; puVar6 = puVar6 + 4) {\n      uVar5 = puVar6[1];\n      uVar4 = puVar6[2];\n      uVar2 = puVar6[3];\n      *puVar1 = *puVar6;\n      puVar1[1] = uVar5;\n      puVar1[2] = uVar4;\n      puVar1[3] = uVar2;\n      puVar1 = puVar1 + 4;\n    }" for ( ; (binary_expression "puVar9 != puVar6" identifier != identifier) ; (assignment_expression "puVar6 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ) (compound_statement "{\n      uVar5 = puVar6[1];\n      uVar4 = puVar6[2];\n      uVar2 = puVar6[3];\n      *puVar1 = *puVar6;\n      puVar1[1] = uVar5;\n      puVar1[2] = uVar4;\n      puVar1[3] = uVar2;\n      puVar1 = puVar1 + 4;\n    }" { (expression_statement "uVar5 = puVar6[1];" (assignment_expression "uVar5 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = puVar6[2];" (assignment_expression "uVar4 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = puVar6[3];" (assignment_expression "uVar2 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar1 = *puVar6;" (assignment_expression "*puVar1 = *puVar6" (pointer_expression "*puVar1" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar1[1] = uVar5;" (assignment_expression "puVar1[1] = uVar5" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[2] = uVar4;" (assignment_expression "puVar1[2] = uVar4" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[3] = uVar2;" (assignment_expression "puVar1[3] = uVar2" (subscript_expression "puVar1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = puVar1 + 4;" (assignment_expression "puVar1 = puVar1 + 4" identifier = (binary_expression "puVar1 + 4" identifier + number_literal)) ;) })) (if_statement "if (puVar3 != (undefined4 *)0x0) {\n      (*(code *)PTR_operator_delete_0043228c)();\n    }" if (parenthesized_expression "(puVar3 != (undefined4 *)0x0)" ( (binary_expression "puVar3 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (*(code *)PTR_operator_delete_0043228c)();\n    }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "*(undefined4 **)this = puVar7;" (assignment_expression "*(undefined4 **)this = puVar7" (pointer_expression "*(undefined4 **)this" * (cast_expression "(undefined4 **)this" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "*(int *)(this + 4) = (int)puVar7 + iVar8;" (assignment_expression "*(int *)(this + 4) = (int)puVar7 + iVar8" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "(int)puVar7 + iVar8" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "*(undefined4 **)(this + 8) = puVar7 + param_1 * 4;" (assignment_expression "*(undefined4 **)(this + 8) = puVar7 + param_1 * 4" (pointer_expression "*(undefined4 **)(this + 8)" * (cast_expression "(undefined4 **)(this + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) = (binary_expression "puVar7 + param_1 * 4" identifier + (binary_expression "param_1 * 4" identifier * number_literal))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "/* DWARF original prototype: void\n   reserve(vector<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n   * this, size_type __n) */\n\nvoid __thiscall\nstd::\nvector<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n::reserve(vector<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n          *this,size_type __n)\n\n{\n  off_t oVar1;\n  pointer pIVar2;\n  pointer pIVar3;\n  undefined4 uVar4;\n  Key KVar5;\n  pointer pIVar6;\n  pointer pIVar7;\n  int iVar8;\n  pointer pIVar9;\n  \n  if (0xfffffff < __n) {\n    (*(code *)PTR___throw_length_error_00432480)(PTR_LAB_0043220c + 0x4864);\n    return;\n  }\n  pIVar6 = (this->\n           super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n           )._M_impl._M_start;\n  if ((uint)((int)(this->\n                  super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n                  )._M_impl._M_end_of_storage - (int)pIVar6 >> 4) < __n) {\n    pIVar9 = (this->\n             super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n             )._M_impl._M_finish;\n    iVar8 = (int)pIVar9 - (int)pIVar6;\n    if (__n == 0) {\n      pIVar2 = (pointer)0x0;\n      pIVar7 = pIVar2;\n      pIVar3 = pIVar6;\n    }\n    else {\n      pIVar2 = (pointer)(*(code *)PTR_operator_new_0043233c)(__n * 0x10);\n      pIVar7 = pIVar2;\n      pIVar3 = (this->\n               super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n               )._M_impl._M_start;\n    }\n    for (; pIVar9 != pIVar6; pIVar6 = pIVar6 + 1) {\n      KVar5 = pIVar6->name_key_;\n      uVar4 = *(undefined4 *)&pIVar6->sh_size_;\n      oVar1 = pIVar6->sh_size_;\n      pIVar2->shndx_ = pIVar6->shndx_;\n      pIVar2->name_key_ = KVar5;\n      *(undefined4 *)&pIVar2->sh_size_ = uVar4;\n      *(int *)((int)&pIVar2->sh_size_ + 4) = (int)oVar1;\n      pIVar2 = pIVar2 + 1;\n    }\n    if (pIVar3 != (pointer)0x0) {\n      (*(code *)PTR_operator_delete_0043228c)();\n    }\n    (this->\n    super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n    )._M_impl._M_start = pIVar7;\n    (this->\n    super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n    )._M_impl._M_finish = (pointer)((int)pIVar7 + iVar8);\n    (this->\n    super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n    )._M_impl._M_end_of_storage = pIVar7 + __n;\n    return;\n  }\n  return;\n}\n\n" comment (declaration "void __thiscall\nstd::\nvector<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n::reserve(vector<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n          *this,size_type __n)\n\n{\n  off_t oVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::\nvector<gold::Incremental_object_entry::" identifier : : identifier < identifier : : identifier : :) identifier , (ERROR "_std::allocator<gold::Incremental_object_entry::Input_section>_>\n::reserve(vector<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n          *this,size_type __n)\n\n{\n  off_t" identifier : : identifier < identifier : : identifier : : identifier > identifier > : : (function_declarator "reserve(vector<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n          *this,size_type __n)" identifier (parameter_list "(vector<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n          *this,size_type __n)" ( (parameter_declaration "vector<gold::Incremental_object_entry::Input_section" type_identifier (ERROR "<gold::Incremental_object_entry::" < identifier : : identifier : :) identifier) , (parameter_declaration "_std::allocator<gold::Incremental_object_entry::Input_section>_>\n          *this" type_identifier (ERROR "::allocator<gold::Incremental_object_entry::Input_section>_>" : : identifier < identifier : : identifier : : identifier > identifier >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "size_type __n" type_identifier identifier) ))) { identifier) identifier ;) (declaration "pointer pIVar2;" type_identifier identifier ;) (declaration "pointer pIVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "Key KVar5;" type_identifier identifier ;) (declaration "pointer pIVar6;" type_identifier identifier ;) (declaration "pointer pIVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "pointer pIVar9;" type_identifier identifier ;) (if_statement "if (0xfffffff < __n) {\n    (*(code *)PTR___throw_length_error_00432480)(PTR_LAB_0043220c + 0x4864);\n    return;\n  }" if (parenthesized_expression "(0xfffffff < __n)" ( (binary_expression "0xfffffff < __n" number_literal < identifier) )) (compound_statement "{\n    (*(code *)PTR___throw_length_error_00432480)(PTR_LAB_0043220c + 0x4864);\n    return;\n  }" { (expression_statement "(*(code *)PTR___throw_length_error_00432480)(PTR_LAB_0043220c + 0x4864);" (call_expression "(*(code *)PTR___throw_length_error_00432480)(PTR_LAB_0043220c + 0x4864)" (parenthesized_expression "(*(code *)PTR___throw_length_error_00432480)" ( (pointer_expression "*(code *)PTR___throw_length_error_00432480" * (cast_expression "(code *)PTR___throw_length_error_00432480" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_0043220c + 0x4864)" ( (binary_expression "PTR_LAB_0043220c + 0x4864" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "pIVar6 = (this->\n           super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n           )._M_impl._M_start;" (assignment_expression "pIVar6 = (this->\n           super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n           )._M_impl._M_start" identifier = (field_expression "(this->\n           super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n           )._M_impl._M_start" (field_expression "(this->\n           super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n           )._M_impl" (parenthesized_expression "(this->\n           super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n           )" ( (ERROR "this->\n           super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::" (comma_expression "this->\n           super__Vector_base<gold::Incremental_object_entry::Input_section,_std" (binary_expression "this->\n           super__Vector_base<gold" (field_expression "this->\n           super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Incremental_object_entry::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 ((uint)((int)(this->\n                  super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n                  )._M_impl._M_end_of_storage - (int)pIVar6 >> 4) < __n) {\n    pIVar9 = (this->\n             super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n             )._M_impl._M_finish;\n    iVar8 = (int)pIVar9 - (int)pIVar6;\n    if (__n == 0) {\n      pIVar2 = (pointer)0x0;\n      pIVar7 = pIVar2;\n      pIVar3 = pIVar6;\n    }\n    else {\n      pIVar2 = (pointer)(*(code *)PTR_operator_new_0043233c)(__n * 0x10);\n      pIVar7 = pIVar2;\n      pIVar3 = (this->\n               super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n               )._M_impl._M_start;\n    }\n    for (; pIVar9 != pIVar6; pIVar6 = pIVar6 + 1) {\n      KVar5 = pIVar6->name_key_;\n      uVar4 = *(undefined4 *)&pIVar6->sh_size_;\n      oVar1 = pIVar6->sh_size_;\n      pIVar2->shndx_ = pIVar6->shndx_;\n      pIVar2->name_key_ = KVar5;\n      *(undefined4 *)&pIVar2->sh_size_ = uVar4;\n      *(int *)((int)&pIVar2->sh_size_ + 4) = (int)oVar1;\n      pIVar2 = pIVar2 + 1;\n    }\n    if (pIVar3 != (pointer)0x0) {\n      (*(code *)PTR_operator_delete_0043228c)();\n    }\n    (this->\n    super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n    )._M_impl._M_start = pIVar7;\n    (this->\n    super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n    )._M_impl._M_finish = (pointer)((int)pIVar7 + iVar8);\n    (this->\n    super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n    )._M_impl._M_end_of_storage = pIVar7 + __n;\n    return;\n  }" if (parenthesized_expression "((uint)((int)(this->\n                  super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n                  )._M_impl._M_end_of_storage - (int)pIVar6 >> 4) < __n)" ( (binary_expression "(uint)((int)(this->\n                  super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n                  )._M_impl._M_end_of_storage - (int)pIVar6 >> 4) < __n" (call_expression "(uint)((int)(this->\n                  super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n                  )._M_impl._M_end_of_storage - (int)pIVar6 >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(this->\n                  super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n                  )._M_impl._M_end_of_storage - (int)pIVar6 >> 4)" ( (binary_expression "(int)(this->\n                  super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n                  )._M_impl._M_end_of_storage - (int)pIVar6 >> 4" (binary_expression "(int)(this->\n                  super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n                  )._M_impl._M_end_of_storage - (int)pIVar6" (cast_expression "(int)(this->\n                  super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n                  )._M_impl._M_end_of_storage" ( (type_descriptor "int" primitive_type) ) (field_expression "(this->\n                  super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n                  )._M_impl._M_end_of_storage" (field_expression "(this->\n                  super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n                  )._M_impl" (parenthesized_expression "(this->\n                  super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n                  )" ( (ERROR "this->\n                  super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::" (comma_expression "this->\n                  super__Vector_base<gold::Incremental_object_entry::Input_section,_std" (binary_expression "this->\n                  super__Vector_base<gold" (field_expression "this->\n                  super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Incremental_object_entry::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 "(int)pIVar6" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) ))) < identifier) )) (compound_statement "{\n    pIVar9 = (this->\n             super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n             )._M_impl._M_finish;\n    iVar8 = (int)pIVar9 - (int)pIVar6;\n    if (__n == 0) {\n      pIVar2 = (pointer)0x0;\n      pIVar7 = pIVar2;\n      pIVar3 = pIVar6;\n    }\n    else {\n      pIVar2 = (pointer)(*(code *)PTR_operator_new_0043233c)(__n * 0x10);\n      pIVar7 = pIVar2;\n      pIVar3 = (this->\n               super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n               )._M_impl._M_start;\n    }\n    for (; pIVar9 != pIVar6; pIVar6 = pIVar6 + 1) {\n      KVar5 = pIVar6->name_key_;\n      uVar4 = *(undefined4 *)&pIVar6->sh_size_;\n      oVar1 = pIVar6->sh_size_;\n      pIVar2->shndx_ = pIVar6->shndx_;\n      pIVar2->name_key_ = KVar5;\n      *(undefined4 *)&pIVar2->sh_size_ = uVar4;\n      *(int *)((int)&pIVar2->sh_size_ + 4) = (int)oVar1;\n      pIVar2 = pIVar2 + 1;\n    }\n    if (pIVar3 != (pointer)0x0) {\n      (*(code *)PTR_operator_delete_0043228c)();\n    }\n    (this->\n    super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n    )._M_impl._M_start = pIVar7;\n    (this->\n    super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n    )._M_impl._M_finish = (pointer)((int)pIVar7 + iVar8);\n    (this->\n    super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n    )._M_impl._M_end_of_storage = pIVar7 + __n;\n    return;\n  }" { (expression_statement "pIVar9 = (this->\n             super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n             )._M_impl._M_finish;" (assignment_expression "pIVar9 = (this->\n             super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n             )._M_impl._M_finish" identifier = (field_expression "(this->\n             super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n             )._M_impl._M_finish" (field_expression "(this->\n             super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n             )._M_impl" (parenthesized_expression "(this->\n             super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n             )" ( (ERROR "this->\n             super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::" (comma_expression "this->\n             super__Vector_base<gold::Incremental_object_entry::Input_section,_std" (binary_expression "this->\n             super__Vector_base<gold" (field_expression "this->\n             super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Incremental_object_entry::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)) ;) (expression_statement "iVar8 = (int)pIVar9 - (int)pIVar6;" (assignment_expression "iVar8 = (int)pIVar9 - (int)pIVar6" identifier = (binary_expression "(int)pIVar9 - (int)pIVar6" (cast_expression "(int)pIVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pIVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (__n == 0) {\n      pIVar2 = (pointer)0x0;\n      pIVar7 = pIVar2;\n      pIVar3 = pIVar6;\n    }\n    else {\n      pIVar2 = (pointer)(*(code *)PTR_operator_new_0043233c)(__n * 0x10);\n      pIVar7 = pIVar2;\n      pIVar3 = (this->\n               super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n               )._M_impl._M_start;\n    }" if (parenthesized_expression "(__n == 0)" ( (binary_expression "__n == 0" identifier == number_literal) )) (compound_statement "{\n      pIVar2 = (pointer)0x0;\n      pIVar7 = pIVar2;\n      pIVar3 = pIVar6;\n    }" { (expression_statement "pIVar2 = (pointer)0x0;" (assignment_expression "pIVar2 = (pointer)0x0" identifier = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "pIVar7 = pIVar2;" (assignment_expression "pIVar7 = pIVar2" identifier = identifier) ;) (expression_statement "pIVar3 = pIVar6;" (assignment_expression "pIVar3 = pIVar6" identifier = identifier) ;) }) (else_clause "else {\n      pIVar2 = (pointer)(*(code *)PTR_operator_new_0043233c)(__n * 0x10);\n      pIVar7 = pIVar2;\n      pIVar3 = (this->\n               super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n               )._M_impl._M_start;\n    }" else (compound_statement "{\n      pIVar2 = (pointer)(*(code *)PTR_operator_new_0043233c)(__n * 0x10);\n      pIVar7 = pIVar2;\n      pIVar3 = (this->\n               super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n               )._M_impl._M_start;\n    }" { (expression_statement "pIVar2 = (pointer)(*(code *)PTR_operator_new_0043233c)(__n * 0x10);" (assignment_expression "pIVar2 = (pointer)(*(code *)PTR_operator_new_0043233c)(__n * 0x10)" identifier = (call_expression "(pointer)(*(code *)PTR_operator_new_0043233c)(__n * 0x10)" (call_expression "(pointer)(*(code *)PTR_operator_new_0043233c)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "(*(code *)PTR_operator_new_0043233c)" ( (pointer_expression "*(code *)PTR_operator_new_0043233c" * (cast_expression "(code *)PTR_operator_new_0043233c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) (argument_list "(__n * 0x10)" ( (binary_expression "__n * 0x10" identifier * number_literal) )))) ;) (expression_statement "pIVar7 = pIVar2;" (assignment_expression "pIVar7 = pIVar2" identifier = identifier) ;) (expression_statement "pIVar3 = (this->\n               super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n               )._M_impl._M_start;" (assignment_expression "pIVar3 = (this->\n               super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n               )._M_impl._M_start" identifier = (field_expression "(this->\n               super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n               )._M_impl._M_start" (field_expression "(this->\n               super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n               )._M_impl" (parenthesized_expression "(this->\n               super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n               )" ( (ERROR "this->\n               super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::" (comma_expression "this->\n               super__Vector_base<gold::Incremental_object_entry::Input_section,_std" (binary_expression "this->\n               super__Vector_base<gold" (field_expression "this->\n               super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Incremental_object_entry::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)) ;) }))) (for_statement "for (; pIVar9 != pIVar6; pIVar6 = pIVar6 + 1) {\n      KVar5 = pIVar6->name_key_;\n      uVar4 = *(undefined4 *)&pIVar6->sh_size_;\n      oVar1 = pIVar6->sh_size_;\n      pIVar2->shndx_ = pIVar6->shndx_;\n      pIVar2->name_key_ = KVar5;\n      *(undefined4 *)&pIVar2->sh_size_ = uVar4;\n      *(int *)((int)&pIVar2->sh_size_ + 4) = (int)oVar1;\n      pIVar2 = pIVar2 + 1;\n    }" for ( ; (binary_expression "pIVar9 != pIVar6" identifier != identifier) ; (assignment_expression "pIVar6 = pIVar6 + 1" identifier = (binary_expression "pIVar6 + 1" identifier + number_literal)) ) (compound_statement "{\n      KVar5 = pIVar6->name_key_;\n      uVar4 = *(undefined4 *)&pIVar6->sh_size_;\n      oVar1 = pIVar6->sh_size_;\n      pIVar2->shndx_ = pIVar6->shndx_;\n      pIVar2->name_key_ = KVar5;\n      *(undefined4 *)&pIVar2->sh_size_ = uVar4;\n      *(int *)((int)&pIVar2->sh_size_ + 4) = (int)oVar1;\n      pIVar2 = pIVar2 + 1;\n    }" { (expression_statement "KVar5 = pIVar6->name_key_;" (assignment_expression "KVar5 = pIVar6->name_key_" identifier = (field_expression "pIVar6->name_key_" identifier -> field_identifier)) ;) (expression_statement "uVar4 = *(undefined4 *)&pIVar6->sh_size_;" (assignment_expression "uVar4 = *(undefined4 *)&pIVar6->sh_size_" identifier = (pointer_expression "*(undefined4 *)&pIVar6->sh_size_" * (cast_expression "(undefined4 *)&pIVar6->sh_size_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar6->sh_size_" & (field_expression "pIVar6->sh_size_" identifier -> field_identifier))))) ;) (expression_statement "oVar1 = pIVar6->sh_size_;" (assignment_expression "oVar1 = pIVar6->sh_size_" identifier = (field_expression "pIVar6->sh_size_" identifier -> field_identifier)) ;) (expression_statement "pIVar2->shndx_ = pIVar6->shndx_;" (assignment_expression "pIVar2->shndx_ = pIVar6->shndx_" (field_expression "pIVar2->shndx_" identifier -> field_identifier) = (field_expression "pIVar6->shndx_" identifier -> field_identifier)) ;) (expression_statement "pIVar2->name_key_ = KVar5;" (assignment_expression "pIVar2->name_key_ = KVar5" (field_expression "pIVar2->name_key_" identifier -> field_identifier) = identifier) ;) (expression_statement "*(undefined4 *)&pIVar2->sh_size_ = uVar4;" (assignment_expression "*(undefined4 *)&pIVar2->sh_size_ = uVar4" (pointer_expression "*(undefined4 *)&pIVar2->sh_size_" * (cast_expression "(undefined4 *)&pIVar2->sh_size_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar2->sh_size_" & (field_expression "pIVar2->sh_size_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(int *)((int)&pIVar2->sh_size_ + 4) = (int)oVar1;" (assignment_expression "*(int *)((int)&pIVar2->sh_size_ + 4) = (int)oVar1" (pointer_expression "*(int *)((int)&pIVar2->sh_size_ + 4)" * (cast_expression "(int *)((int)&pIVar2->sh_size_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pIVar2->sh_size_ + 4)" ( (binary_expression "(int)&pIVar2->sh_size_ + 4" (cast_expression "(int)&pIVar2->sh_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pIVar2->sh_size_" & (field_expression "pIVar2->sh_size_" identifier -> field_identifier))) + number_literal) )))) = (cast_expression "(int)oVar1" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pIVar2 = pIVar2 + 1;" (assignment_expression "pIVar2 = pIVar2 + 1" identifier = (binary_expression "pIVar2 + 1" identifier + number_literal)) ;) })) (if_statement "if (pIVar3 != (pointer)0x0) {\n      (*(code *)PTR_operator_delete_0043228c)();\n    }" if (parenthesized_expression "(pIVar3 != (pointer)0x0)" ( (binary_expression "pIVar3 != (pointer)0x0" identifier != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n      (*(code *)PTR_operator_delete_0043228c)();\n    }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "(this->\n    super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n    )._M_impl._M_start = pIVar7;" (assignment_expression "(this->\n    super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n    )._M_impl._M_start = pIVar7" (field_expression "(this->\n    super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n    )._M_impl._M_start" (field_expression "(this->\n    super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n    )._M_impl" (parenthesized_expression "(this->\n    super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n    )" ( (ERROR "this->\n    super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::" (comma_expression "this->\n    super__Vector_base<gold::Incremental_object_entry::Input_section,_std" (binary_expression "this->\n    super__Vector_base<gold" (field_expression "this->\n    super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Incremental_object_entry::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) = identifier) ;) (expression_statement "(this->\n    super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n    )._M_impl._M_finish = (pointer)((int)pIVar7 + iVar8);" (assignment_expression "(this->\n    super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n    )._M_impl._M_finish = (pointer)((int)pIVar7 + iVar8)" (field_expression "(this->\n    super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n    )._M_impl._M_finish" (field_expression "(this->\n    super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n    )._M_impl" (parenthesized_expression "(this->\n    super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n    )" ( (ERROR "this->\n    super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::" (comma_expression "this->\n    super__Vector_base<gold::Incremental_object_entry::Input_section,_std" (binary_expression "this->\n    super__Vector_base<gold" (field_expression "this->\n    super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Incremental_object_entry::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) = (call_expression "(pointer)((int)pIVar7 + iVar8)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((int)pIVar7 + iVar8)" ( (binary_expression "(int)pIVar7 + iVar8" (cast_expression "(int)pIVar7" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "(this->\n    super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n    )._M_impl._M_end_of_storage = pIVar7 + __n;" (assignment_expression "(this->\n    super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n    )._M_impl._M_end_of_storage = pIVar7 + __n" (field_expression "(this->\n    super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n    )._M_impl._M_end_of_storage" (field_expression "(this->\n    super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n    )._M_impl" (parenthesized_expression "(this->\n    super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>\n    )" ( (ERROR "this->\n    super__Vector_base<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::" (comma_expression "this->\n    super__Vector_base<gold::Incremental_object_entry::Input_section,_std" (binary_expression "this->\n    super__Vector_base<gold" (field_expression "this->\n    super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Incremental_object_entry::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) = (binary_expression "pIVar7 + __n" identifier + identifier)) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void __thiscall\nstd::\nvector<gold::Incremental_object_entry::Input_section,std::allocator<gold::Incremental_object_entry::Input_section>>\n::reserve(vector<gold::Incremental_object_entry::Input_section,std::allocator<gold::Incremental_object_entry::Input_section>>\n          *this,uint param_1)\n\n{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  \n  if (0xfffffff < param_1) {\n    (*(code *)PTR___throw_length_error_00432480)(PTR_LAB_0043220c + 0x4864);\n    return;\n  }\n  puVar6 = *(undefined4 **)this;\n  if ((uint)(*(int *)(this + 8) - (int)puVar6 >> 4) < param_1) {\n    puVar9 = *(undefined4 **)(this + 4);\n    iVar8 = (int)puVar9 - (int)puVar6;\n    if (param_1 == 0) {\n      puVar1 = (undefined4 *)0x0;\n      puVar7 = puVar1;\n      puVar3 = puVar6;\n    }\n    else {\n      puVar1 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(param_1 * 0x10);\n      puVar7 = puVar1;\n      puVar3 = *(undefined4 **)this;\n    }\n    for (; puVar9 != puVar6; puVar6 = puVar6 + 4) {\n      uVar5 = puVar6[1];\n      uVar4 = puVar6[2];\n      uVar2 = puVar6[3];\n      *puVar1 = *puVar6;\n      puVar1[1] = uVar5;\n      puVar1[2] = uVar4;\n      puVar1[3] = uVar2;\n      puVar1 = puVar1 + 4;\n    }\n    if (puVar3 != (undefined4 *)0x0) {\n      (*(code *)PTR_operator_delete_0043228c)();\n    }\n    *(undefined4 **)this = puVar7;\n    *(int *)(this + 4) = (int)puVar7 + iVar8;\n    *(undefined4 **)(this + 8) = puVar7 + param_1 * 4;\n    return;\n  }\n  return;\n}\n\n" (declaration "void __thiscall\nstd::\nvector<gold::Incremental_object_entry::Input_section,std::allocator<gold::Incremental_object_entry::Input_section>>\n::reserve(vector<gold::Incremental_object_entry::Input_section,std::allocator<gold::Incremental_object_entry::Input_section>>\n          *this,uint param_1)\n\n{\n  undefined4 *puVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::\nvector<gold::Incremental_object_entry::" identifier : : identifier < identifier : : identifier : :) identifier , (ERROR "std::allocator<gold::Incremental_object_entry::Input_section>>\n::reserve(vector<gold::Incremental_object_entry::Input_section,std::allocator<gold::Incremental_object_entry::Input_section>>\n          *this,uint param_1)\n\n{\n  undefined4" identifier : : identifier < identifier : : identifier : : identifier >> : : (function_declarator "reserve(vector<gold::Incremental_object_entry::Input_section,std::allocator<gold::Incremental_object_entry::Input_section>>\n          *this,uint param_1)" identifier (parameter_list "(vector<gold::Incremental_object_entry::Input_section,std::allocator<gold::Incremental_object_entry::Input_section>>\n          *this,uint param_1)" ( (parameter_declaration "vector<gold::Incremental_object_entry::Input_section" type_identifier (ERROR "<gold::Incremental_object_entry::" < identifier : : identifier : :) identifier) , (parameter_declaration "std::allocator<gold::Incremental_object_entry::Input_section>>\n          *this" type_identifier (ERROR "::allocator<gold::Incremental_object_entry::Input_section>>" : : identifier < identifier : : identifier : : identifier >>) (pointer_declarator "*this" * identifier)) , (parameter_declaration "uint param_1" type_identifier identifier) ))) { identifier) (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (if_statement "if (0xfffffff < param_1) {\n    (*(code *)PTR___throw_length_error_00432480)(PTR_LAB_0043220c + 0x4864);\n    return;\n  }" if (parenthesized_expression "(0xfffffff < param_1)" ( (binary_expression "0xfffffff < param_1" number_literal < identifier) )) (compound_statement "{\n    (*(code *)PTR___throw_length_error_00432480)(PTR_LAB_0043220c + 0x4864);\n    return;\n  }" { (expression_statement "(*(code *)PTR___throw_length_error_00432480)(PTR_LAB_0043220c + 0x4864);" (call_expression "(*(code *)PTR___throw_length_error_00432480)(PTR_LAB_0043220c + 0x4864)" (parenthesized_expression "(*(code *)PTR___throw_length_error_00432480)" ( (pointer_expression "*(code *)PTR___throw_length_error_00432480" * (cast_expression "(code *)PTR___throw_length_error_00432480" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_0043220c + 0x4864)" ( (binary_expression "PTR_LAB_0043220c + 0x4864" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "puVar6 = *(undefined4 **)this;" (assignment_expression "puVar6 = *(undefined4 **)this" identifier = (pointer_expression "*(undefined4 **)this" * (cast_expression "(undefined4 **)this" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if ((uint)(*(int *)(this + 8) - (int)puVar6 >> 4) < param_1) {\n    puVar9 = *(undefined4 **)(this + 4);\n    iVar8 = (int)puVar9 - (int)puVar6;\n    if (param_1 == 0) {\n      puVar1 = (undefined4 *)0x0;\n      puVar7 = puVar1;\n      puVar3 = puVar6;\n    }\n    else {\n      puVar1 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(param_1 * 0x10);\n      puVar7 = puVar1;\n      puVar3 = *(undefined4 **)this;\n    }\n    for (; puVar9 != puVar6; puVar6 = puVar6 + 4) {\n      uVar5 = puVar6[1];\n      uVar4 = puVar6[2];\n      uVar2 = puVar6[3];\n      *puVar1 = *puVar6;\n      puVar1[1] = uVar5;\n      puVar1[2] = uVar4;\n      puVar1[3] = uVar2;\n      puVar1 = puVar1 + 4;\n    }\n    if (puVar3 != (undefined4 *)0x0) {\n      (*(code *)PTR_operator_delete_0043228c)();\n    }\n    *(undefined4 **)this = puVar7;\n    *(int *)(this + 4) = (int)puVar7 + iVar8;\n    *(undefined4 **)(this + 8) = puVar7 + param_1 * 4;\n    return;\n  }" if (parenthesized_expression "((uint)(*(int *)(this + 8) - (int)puVar6 >> 4) < param_1)" ( (binary_expression "(uint)(*(int *)(this + 8) - (int)puVar6 >> 4) < param_1" (call_expression "(uint)(*(int *)(this + 8) - (int)puVar6 >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(this + 8) - (int)puVar6 >> 4)" ( (binary_expression "*(int *)(this + 8) - (int)puVar6 >> 4" (binary_expression "*(int *)(this + 8) - (int)puVar6" (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) - (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) ))) < identifier) )) (compound_statement "{\n    puVar9 = *(undefined4 **)(this + 4);\n    iVar8 = (int)puVar9 - (int)puVar6;\n    if (param_1 == 0) {\n      puVar1 = (undefined4 *)0x0;\n      puVar7 = puVar1;\n      puVar3 = puVar6;\n    }\n    else {\n      puVar1 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(param_1 * 0x10);\n      puVar7 = puVar1;\n      puVar3 = *(undefined4 **)this;\n    }\n    for (; puVar9 != puVar6; puVar6 = puVar6 + 4) {\n      uVar5 = puVar6[1];\n      uVar4 = puVar6[2];\n      uVar2 = puVar6[3];\n      *puVar1 = *puVar6;\n      puVar1[1] = uVar5;\n      puVar1[2] = uVar4;\n      puVar1[3] = uVar2;\n      puVar1 = puVar1 + 4;\n    }\n    if (puVar3 != (undefined4 *)0x0) {\n      (*(code *)PTR_operator_delete_0043228c)();\n    }\n    *(undefined4 **)this = puVar7;\n    *(int *)(this + 4) = (int)puVar7 + iVar8;\n    *(undefined4 **)(this + 8) = puVar7 + param_1 * 4;\n    return;\n  }" { (expression_statement "puVar9 = *(undefined4 **)(this + 4);" (assignment_expression "puVar9 = *(undefined4 **)(this + 4)" identifier = (pointer_expression "*(undefined4 **)(this + 4)" * (cast_expression "(undefined4 **)(this + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = (int)puVar9 - (int)puVar6;" (assignment_expression "iVar8 = (int)puVar9 - (int)puVar6" identifier = (binary_expression "(int)puVar9 - (int)puVar6" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (param_1 == 0) {\n      puVar1 = (undefined4 *)0x0;\n      puVar7 = puVar1;\n      puVar3 = puVar6;\n    }\n    else {\n      puVar1 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(param_1 * 0x10);\n      puVar7 = puVar1;\n      puVar3 = *(undefined4 **)this;\n    }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n      puVar1 = (undefined4 *)0x0;\n      puVar7 = puVar1;\n      puVar3 = puVar6;\n    }" { (expression_statement "puVar1 = (undefined4 *)0x0;" (assignment_expression "puVar1 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar7 = puVar1;" (assignment_expression "puVar7 = puVar1" identifier = identifier) ;) (expression_statement "puVar3 = puVar6;" (assignment_expression "puVar3 = puVar6" identifier = identifier) ;) }) (else_clause "else {\n      puVar1 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(param_1 * 0x10);\n      puVar7 = puVar1;\n      puVar3 = *(undefined4 **)this;\n    }" else (compound_statement "{\n      puVar1 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(param_1 * 0x10);\n      puVar7 = puVar1;\n      puVar3 = *(undefined4 **)this;\n    }" { (expression_statement "puVar1 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(param_1 * 0x10);" (assignment_expression "puVar1 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(param_1 * 0x10)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_operator_new_0043233c)(param_1 * 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_0043233c)(param_1 * 0x10)" (parenthesized_expression "(*(code *)PTR_operator_new_0043233c)" ( (pointer_expression "*(code *)PTR_operator_new_0043233c" * (cast_expression "(code *)PTR_operator_new_0043233c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1 * 0x10)" ( (binary_expression "param_1 * 0x10" identifier * number_literal) ))))) ;) (expression_statement "puVar7 = puVar1;" (assignment_expression "puVar7 = puVar1" identifier = identifier) ;) (expression_statement "puVar3 = *(undefined4 **)this;" (assignment_expression "puVar3 = *(undefined4 **)this" identifier = (pointer_expression "*(undefined4 **)this" * (cast_expression "(undefined4 **)this" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) }))) (for_statement "for (; puVar9 != puVar6; puVar6 = puVar6 + 4) {\n      uVar5 = puVar6[1];\n      uVar4 = puVar6[2];\n      uVar2 = puVar6[3];\n      *puVar1 = *puVar6;\n      puVar1[1] = uVar5;\n      puVar1[2] = uVar4;\n      puVar1[3] = uVar2;\n      puVar1 = puVar1 + 4;\n    }" for ( ; (binary_expression "puVar9 != puVar6" identifier != identifier) ; (assignment_expression "puVar6 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ) (compound_statement "{\n      uVar5 = puVar6[1];\n      uVar4 = puVar6[2];\n      uVar2 = puVar6[3];\n      *puVar1 = *puVar6;\n      puVar1[1] = uVar5;\n      puVar1[2] = uVar4;\n      puVar1[3] = uVar2;\n      puVar1 = puVar1 + 4;\n    }" { (expression_statement "uVar5 = puVar6[1];" (assignment_expression "uVar5 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = puVar6[2];" (assignment_expression "uVar4 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = puVar6[3];" (assignment_expression "uVar2 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar1 = *puVar6;" (assignment_expression "*puVar1 = *puVar6" (pointer_expression "*puVar1" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar1[1] = uVar5;" (assignment_expression "puVar1[1] = uVar5" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[2] = uVar4;" (assignment_expression "puVar1[2] = uVar4" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[3] = uVar2;" (assignment_expression "puVar1[3] = uVar2" (subscript_expression "puVar1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = puVar1 + 4;" (assignment_expression "puVar1 = puVar1 + 4" identifier = (binary_expression "puVar1 + 4" identifier + number_literal)) ;) })) (if_statement "if (puVar3 != (undefined4 *)0x0) {\n      (*(code *)PTR_operator_delete_0043228c)();\n    }" if (parenthesized_expression "(puVar3 != (undefined4 *)0x0)" ( (binary_expression "puVar3 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (*(code *)PTR_operator_delete_0043228c)();\n    }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "*(undefined4 **)this = puVar7;" (assignment_expression "*(undefined4 **)this = puVar7" (pointer_expression "*(undefined4 **)this" * (cast_expression "(undefined4 **)this" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "*(int *)(this + 4) = (int)puVar7 + iVar8;" (assignment_expression "*(int *)(this + 4) = (int)puVar7 + iVar8" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "(int)puVar7 + iVar8" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "*(undefined4 **)(this + 8) = puVar7 + param_1 * 4;" (assignment_expression "*(undefined4 **)(this + 8) = puVar7 + param_1 * 4" (pointer_expression "*(undefined4 **)(this + 8)" * (cast_expression "(undefined4 **)(this + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) = (binary_expression "puVar7 + param_1 * 4" identifier + (binary_expression "param_1 * 4" identifier * number_literal))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit (declaration TYPE (ms_call_modifier __thiscall) (ERROR IDENT : : IDENT < IDENT : : IDENT : :) IDENT , (ERROR IDENT : : IDENT < IDENT : : IDENT : : IDENT >> : : (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (ERROR < IDENT : : IDENT : :) IDENT) , (parameter_declaration TYPE (ERROR : : IDENT < IDENT : : IDENT : : IDENT >>) (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) { IDENT) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) 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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT) ))) < IDENT) )) (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 = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) 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 (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT * LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) 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 IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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 (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + 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 + (binary_expression IDENT * LIT))) ;) (return_statement return ;) })) (return_statement return ;) (ERROR }))
(declaration "void __thiscall\nstd::\nvector<gold::Incremental_object_entry::Input_section,std::allocator<gold::Incremental_object_entry::Input_section>>\n::reserve(vector<gold::Incremental_object_entry::Input_section,std::allocator<gold::Incremental_object_entry::Input_section>>\n          *this,uint param_1)\n\n{\n  undefined4 *puVar1;" (primitive_type "void") (ms_call_modifier "__thiscall" (__thiscall "__thiscall")) (ERROR "std::\nvector<gold::Incremental_object_entry::" (identifier "std") (: ":") (: ":") (identifier "vector") (< "<") (identifier "gold") (: ":") (: ":") (identifier "Incremental_object_entry") (: ":") (: ":")) (identifier "Input_section") (, ",") (ERROR "std::allocator<gold::Incremental_object_entry::Input_section>>\n::reserve(vector<gold::Incremental_object_entry::Input_section,std::allocator<gold::Incremental_object_entry::Input_section>>\n          *this,uint param_1)\n\n{\n  undefined4" (identifier "std") (: ":") (: ":") (identifier "allocator") (< "<") (identifier "gold") (: ":") (: ":") (identifier "Incremental_object_entry") (: ":") (: ":") (identifier "Input_section") (>> ">>") (: ":") (: ":") (function_declarator "reserve(vector<gold::Incremental_object_entry::Input_section,std::allocator<gold::Incremental_object_entry::Input_section>>\n          *this,uint param_1)" (identifier "reserve") (parameter_list "(vector<gold::Incremental_object_entry::Input_section,std::allocator<gold::Incremental_object_entry::Input_section>>\n          *this,uint param_1)" (( "(") (parameter_declaration "vector<gold::Incremental_object_entry::Input_section" (type_identifier "vector") (ERROR "<gold::Incremental_object_entry::" (< "<") (identifier "gold") (: ":") (: ":") (identifier "Incremental_object_entry") (: ":") (: ":")) (identifier "Input_section")) (, ",") (parameter_declaration "std::allocator<gold::Incremental_object_entry::Input_section>>\n          *this" (type_identifier "std") (ERROR "::allocator<gold::Incremental_object_entry::Input_section>>" (: ":") (: ":") (identifier "allocator") (< "<") (identifier "gold") (: ":") (: ":") (identifier "Incremental_object_entry") (: ":") (: ":") (identifier "Input_section") (>> ">>")) (pointer_declarator "*this" (* "*") (identifier "this"))) (, ",") (parameter_declaration "uint param_1" (type_identifier "uint") (identifier "param_1")) () ")"))) ({ "{") (identifier "undefined4")) (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "undefined4 *puVar9;" (type_identifier "undefined4") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (if_statement "if (0xfffffff < param_1) {\n    (*(code *)PTR___throw_length_error_00432480)(PTR_LAB_0043220c + 0x4864);\n    return;\n  }" (if "if") (parenthesized_expression "(0xfffffff < param_1)" (( "(") (binary_expression "0xfffffff < param_1" (number_literal "0xfffffff") (< "<") (identifier "param_1")) () ")")) (compound_statement "{\n    (*(code *)PTR___throw_length_error_00432480)(PTR_LAB_0043220c + 0x4864);\n    return;\n  }" ({ "{") (expression_statement "(*(code *)PTR___throw_length_error_00432480)(PTR_LAB_0043220c + 0x4864);" (call_expression "(*(code *)PTR___throw_length_error_00432480)(PTR_LAB_0043220c + 0x4864)" (parenthesized_expression "(*(code *)PTR___throw_length_error_00432480)" (( "(") (pointer_expression "*(code *)PTR___throw_length_error_00432480" (* "*") (cast_expression "(code *)PTR___throw_length_error_00432480" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___throw_length_error_00432480"))) () ")")) (argument_list "(PTR_LAB_0043220c + 0x4864)" (( "(") (binary_expression "PTR_LAB_0043220c + 0x4864" (identifier "PTR_LAB_0043220c") (+ "+") (number_literal "0x4864")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "puVar6 = *(undefined4 **)this;" (assignment_expression "puVar6 = *(undefined4 **)this" (identifier "puVar6") (= "=") (pointer_expression "*(undefined4 **)this" (* "*") (cast_expression "(undefined4 **)this" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "this")))) (; ";")) (if_statement "if ((uint)(*(int *)(this + 8) - (int)puVar6 >> 4) < param_1) {\n    puVar9 = *(undefined4 **)(this + 4);\n    iVar8 = (int)puVar9 - (int)puVar6;\n    if (param_1 == 0) {\n      puVar1 = (undefined4 *)0x0;\n      puVar7 = puVar1;\n      puVar3 = puVar6;\n    }\n    else {\n      puVar1 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(param_1 * 0x10);\n      puVar7 = puVar1;\n      puVar3 = *(undefined4 **)this;\n    }\n    for (; puVar9 != puVar6; puVar6 = puVar6 + 4) {\n      uVar5 = puVar6[1];\n      uVar4 = puVar6[2];\n      uVar2 = puVar6[3];\n      *puVar1 = *puVar6;\n      puVar1[1] = uVar5;\n      puVar1[2] = uVar4;\n      puVar1[3] = uVar2;\n      puVar1 = puVar1 + 4;\n    }\n    if (puVar3 != (undefined4 *)0x0) {\n      (*(code *)PTR_operator_delete_0043228c)();\n    }\n    *(undefined4 **)this = puVar7;\n    *(int *)(this + 4) = (int)puVar7 + iVar8;\n    *(undefined4 **)(this + 8) = puVar7 + param_1 * 4;\n    return;\n  }" (if "if") (parenthesized_expression "((uint)(*(int *)(this + 8) - (int)puVar6 >> 4) < param_1)" (( "(") (binary_expression "(uint)(*(int *)(this + 8) - (int)puVar6 >> 4) < param_1" (call_expression "(uint)(*(int *)(this + 8) - (int)puVar6 >> 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(this + 8) - (int)puVar6 >> 4)" (( "(") (binary_expression "*(int *)(this + 8) - (int)puVar6 >> 4" (binary_expression "*(int *)(this + 8) - (int)puVar6" (pointer_expression "*(int *)(this + 8)" (* "*") (cast_expression "(int *)(this + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 8)" (( "(") (binary_expression "this + 8" (identifier "this") (+ "+") (number_literal "8")) () ")")))) (- "-") (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6"))) (>> ">>") (number_literal "4")) () ")"))) (< "<") (identifier "param_1")) () ")")) (compound_statement "{\n    puVar9 = *(undefined4 **)(this + 4);\n    iVar8 = (int)puVar9 - (int)puVar6;\n    if (param_1 == 0) {\n      puVar1 = (undefined4 *)0x0;\n      puVar7 = puVar1;\n      puVar3 = puVar6;\n    }\n    else {\n      puVar1 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(param_1 * 0x10);\n      puVar7 = puVar1;\n      puVar3 = *(undefined4 **)this;\n    }\n    for (; puVar9 != puVar6; puVar6 = puVar6 + 4) {\n      uVar5 = puVar6[1];\n      uVar4 = puVar6[2];\n      uVar2 = puVar6[3];\n      *puVar1 = *puVar6;\n      puVar1[1] = uVar5;\n      puVar1[2] = uVar4;\n      puVar1[3] = uVar2;\n      puVar1 = puVar1 + 4;\n    }\n    if (puVar3 != (undefined4 *)0x0) {\n      (*(code *)PTR_operator_delete_0043228c)();\n    }\n    *(undefined4 **)this = puVar7;\n    *(int *)(this + 4) = (int)puVar7 + iVar8;\n    *(undefined4 **)(this + 8) = puVar7 + param_1 * 4;\n    return;\n  }" ({ "{") (expression_statement "puVar9 = *(undefined4 **)(this + 4);" (assignment_expression "puVar9 = *(undefined4 **)(this + 4)" (identifier "puVar9") (= "=") (pointer_expression "*(undefined4 **)(this + 4)" (* "*") (cast_expression "(undefined4 **)(this + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar8 = (int)puVar9 - (int)puVar6;" (assignment_expression "iVar8 = (int)puVar9 - (int)puVar6" (identifier "iVar8") (= "=") (binary_expression "(int)puVar9 - (int)puVar6" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (- "-") (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")))) (; ";")) (if_statement "if (param_1 == 0) {\n      puVar1 = (undefined4 *)0x0;\n      puVar7 = puVar1;\n      puVar3 = puVar6;\n    }\n    else {\n      puVar1 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(param_1 * 0x10);\n      puVar7 = puVar1;\n      puVar3 = *(undefined4 **)this;\n    }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      puVar1 = (undefined4 *)0x0;\n      puVar7 = puVar1;\n      puVar3 = puVar6;\n    }" ({ "{") (expression_statement "puVar1 = (undefined4 *)0x0;" (assignment_expression "puVar1 = (undefined4 *)0x0" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar7 = puVar1;" (assignment_expression "puVar7 = puVar1" (identifier "puVar7") (= "=") (identifier "puVar1")) (; ";")) (expression_statement "puVar3 = puVar6;" (assignment_expression "puVar3 = puVar6" (identifier "puVar3") (= "=") (identifier "puVar6")) (; ";")) (} "}")) (else_clause "else {\n      puVar1 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(param_1 * 0x10);\n      puVar7 = puVar1;\n      puVar3 = *(undefined4 **)this;\n    }" (else "else") (compound_statement "{\n      puVar1 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(param_1 * 0x10);\n      puVar7 = puVar1;\n      puVar3 = *(undefined4 **)this;\n    }" ({ "{") (expression_statement "puVar1 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(param_1 * 0x10);" (assignment_expression "puVar1 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(param_1 * 0x10)" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR_operator_new_0043233c)(param_1 * 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new_0043233c)(param_1 * 0x10)" (parenthesized_expression "(*(code *)PTR_operator_new_0043233c)" (( "(") (pointer_expression "*(code *)PTR_operator_new_0043233c" (* "*") (cast_expression "(code *)PTR_operator_new_0043233c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_0043233c"))) () ")")) (argument_list "(param_1 * 0x10)" (( "(") (binary_expression "param_1 * 0x10" (identifier "param_1") (* "*") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "puVar7 = puVar1;" (assignment_expression "puVar7 = puVar1" (identifier "puVar7") (= "=") (identifier "puVar1")) (; ";")) (expression_statement "puVar3 = *(undefined4 **)this;" (assignment_expression "puVar3 = *(undefined4 **)this" (identifier "puVar3") (= "=") (pointer_expression "*(undefined4 **)this" (* "*") (cast_expression "(undefined4 **)this" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "this")))) (; ";")) (} "}")))) (for_statement "for (; puVar9 != puVar6; puVar6 = puVar6 + 4) {\n      uVar5 = puVar6[1];\n      uVar4 = puVar6[2];\n      uVar2 = puVar6[3];\n      *puVar1 = *puVar6;\n      puVar1[1] = uVar5;\n      puVar1[2] = uVar4;\n      puVar1[3] = uVar2;\n      puVar1 = puVar1 + 4;\n    }" (for "for") (( "(") (; ";") (binary_expression "puVar9 != puVar6" (identifier "puVar9") (!= "!=") (identifier "puVar6")) (; ";") (assignment_expression "puVar6 = puVar6 + 4" (identifier "puVar6") (= "=") (binary_expression "puVar6 + 4" (identifier "puVar6") (+ "+") (number_literal "4"))) () ")") (compound_statement "{\n      uVar5 = puVar6[1];\n      uVar4 = puVar6[2];\n      uVar2 = puVar6[3];\n      *puVar1 = *puVar6;\n      puVar1[1] = uVar5;\n      puVar1[2] = uVar4;\n      puVar1[3] = uVar2;\n      puVar1 = puVar1 + 4;\n    }" ({ "{") (expression_statement "uVar5 = puVar6[1];" (assignment_expression "uVar5 = puVar6[1]" (identifier "uVar5") (= "=") (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar4 = puVar6[2];" (assignment_expression "uVar4 = puVar6[2]" (identifier "uVar4") (= "=") (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar2 = puVar6[3];" (assignment_expression "uVar2 = puVar6[3]" (identifier "uVar2") (= "=") (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar1 = *puVar6;" (assignment_expression "*puVar1 = *puVar6" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) (; ";")) (expression_statement "puVar1[1] = uVar5;" (assignment_expression "puVar1[1] = uVar5" (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "puVar1[2] = uVar4;" (assignment_expression "puVar1[2] = uVar4" (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar1[3] = uVar2;" (assignment_expression "puVar1[3] = uVar2" (subscript_expression "puVar1[3]" (identifier "puVar1") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "puVar1 = puVar1 + 4;" (assignment_expression "puVar1 = puVar1 + 4" (identifier "puVar1") (= "=") (binary_expression "puVar1 + 4" (identifier "puVar1") (+ "+") (number_literal "4"))) (; ";")) (} "}"))) (if_statement "if (puVar3 != (undefined4 *)0x0) {\n      (*(code *)PTR_operator_delete_0043228c)();\n    }" (if "if") (parenthesized_expression "(puVar3 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar3 != (undefined4 *)0x0" (identifier "puVar3") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      (*(code *)PTR_operator_delete_0043228c)();\n    }" ({ "{") (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" (( "(") (pointer_expression "*(code *)PTR_operator_delete_0043228c" (* "*") (cast_expression "(code *)PTR_operator_delete_0043228c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_delete_0043228c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 **)this = puVar7;" (assignment_expression "*(undefined4 **)this = puVar7" (pointer_expression "*(undefined4 **)this" (* "*") (cast_expression "(undefined4 **)this" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "this"))) (= "=") (identifier "puVar7")) (; ";")) (expression_statement "*(int *)(this + 4) = (int)puVar7 + iVar8;" (assignment_expression "*(int *)(this + 4) = (int)puVar7 + iVar8" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "(int)puVar7 + iVar8" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (identifier "iVar8"))) (; ";")) (expression_statement "*(undefined4 **)(this + 8) = puVar7 + param_1 * 4;" (assignment_expression "*(undefined4 **)(this + 8) = puVar7 + param_1 * 4" (pointer_expression "*(undefined4 **)(this + 8)" (* "*") (cast_expression "(undefined4 **)(this + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 8)" (( "(") (binary_expression "this + 8" (identifier "this") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "puVar7 + param_1 * 4" (identifier "puVar7") (+ "+") (binary_expression "param_1 * 4" (identifier "param_1") (* "*") (number_literal "4")))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (ERROR "}" (} "}"))

/* DWARF original prototype: void
   reserve(vector<gold::Incremental_object_entry::Input_section,_std::allocator<gold::Incremental_object_entry::Input_section>_>
   * this, size_type __n) */

void __thiscall
std::
vector<gold::Incremental_object_entry::var_3,_std::allocator<gold::Incremental_object_entry::var_3>var_4>
::reserve(vector<gold::Incremental_object_entry::var_3,_std::allocator<gold::Incremental_object_entry::var_3>var_4>
          *this,size_type var_1)

{
  off_t oVar1;
  type_1 var_8;
  type_1 var_9;
  type_2 uVar4;
  type_3 KVar5;
  type_1 var_7;
  type_1 var_11;
  int var_10;
  type_1 var_6;
  
  if (0xfffffff < var_1) {
    (*(type_4 *)PTR___throw_length_error_00432480)(var_2 + 0x4864);
    return;
  }
  var_7 = (this->
           super__Vector_base<gold::Incremental_object_entry::var_3,_std::allocator<gold::Incremental_object_entry::var_3>var_4>var_5
           )._M_impl._M_start;
  if ((uint)((int)(this->
                  super__Vector_base<gold::Incremental_object_entry::var_3,_std::allocator<gold::Incremental_object_entry::var_3>var_4>var_5
                  )._M_impl._M_end_of_storage - (int)var_7 >> 4) < var_1) {
    var_6 = (this->
             super__Vector_base<gold::Incremental_object_entry::var_3,_std::allocator<gold::Incremental_object_entry::var_3>var_4>var_5
             )._M_impl._M_finish;
    var_10 = (int)var_6 - (int)var_7;
    if (var_1 == 0) {
      var_8 = (type_1)0x0;
      var_11 = var_8;
      var_9 = var_7;
    }
    else {
      var_8 = (type_1)(*(type_4 *)PTR_operator_new_0043233c)(var_1 * 0x10);
      var_11 = var_8;
      var_9 = (this->
               super__Vector_base<gold::Incremental_object_entry::var_3,_std::allocator<gold::Incremental_object_entry::var_3>var_4>var_5
               )._M_impl._M_start;
    }
    for (; var_6 != var_7; var_7 = var_7 + 1) {
      KVar5 = var_7->name_key_;
      uVar4 = *(type_2 *)&var_7->sh_size_;
      oVar1 = var_7->sh_size_;
      var_8->shndx_ = var_7->shndx_;
      var_8->name_key_ = KVar5;
      *(type_2 *)&var_8->sh_size_ = uVar4;
      *(int *)((int)&var_8->sh_size_ + 4) = (int)oVar1;
      var_8 = var_8 + 1;
    }
    if (var_9 != (type_1)0x0) {
      (*(type_4 *)PTR_operator_delete_0043228c)();
    }
    (this->
    super__Vector_base<gold::Incremental_object_entry::var_3,_std::allocator<gold::Incremental_object_entry::var_3>var_4>var_5
    )._M_impl._M_start = var_11;
    (this->
    super__Vector_base<gold::Incremental_object_entry::var_3,_std::allocator<gold::Incremental_object_entry::var_3>var_4>var_5
    )._M_impl._M_finish = (type_1)((int)var_11 + var_10);
    (this->
    super__Vector_base<gold::Incremental_object_entry::var_3,_std::allocator<gold::Incremental_object_entry::var_3>var_4>var_5
    )._M_impl._M_end_of_storage = var_11 + var_1;
    return;
  }
  return;
}


(translation_unit (declaration type: (primitive_type) declarator: (ms_call_modifier) (ERROR (identifier) (identifier) (identifier) (identifier)) declarator: (identifier) (ERROR (identifier) (identifier) (identifier) (identifier) (identifier) (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) (ERROR (identifier) (identifier)) declarator: (identifier)) (parameter_declaration type: (type_identifier) (ERROR (identifier) (identifier) (identifier) (identifier)) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)))) (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: (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: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) (return_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: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal)))) right: (identifier))) 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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (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: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (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: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (return_statement))) (return_statement) (ERROR))

/* std::vector<gold::Incremental_object_entry::Input_section,
   std::allocator<gold::Incremental_object_entry::Input_section> >::MASKED(unsigned int) */

void __thiscall
std::
vector<gold::Incremental_object_entry::Input_section,std::allocator<gold::Incremental_object_entry::Input_section>>
::MASKED(vector<gold::Incremental_object_entry::Input_section,std::allocator<gold::Incremental_object_entry::Input_section>>
          *this,uint param_1)

{
  undefined4 *puVar1;
  undefined4 uVar2;
  undefined4 *puVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  undefined4 *puVar6;
  undefined4 *puVar7;
  int iVar8;
  undefined4 *puVar9;
  
  if (0xfffffff < param_1) {
    (*(code *)PTR___throw_length_error_00432480)(PTR_LAB_0043220c + 0x4864);
    return;
  }
  puVar6 = *(undefined4 **)this;
  if ((uint)(*(int *)(this + 8) - (int)puVar6 >> 4) < param_1) {
    puVar9 = *(undefined4 **)(this + 4);
    iVar8 = (int)puVar9 - (int)puVar6;
    if (param_1 == 0) {
      puVar1 = (undefined4 *)0x0;
      puVar7 = puVar1;
      puVar3 = puVar6;
    }
    else {
      puVar1 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(param_1 * 0x10);
      puVar7 = puVar1;
      puVar3 = *(undefined4 **)this;
    }
    for (; puVar9 != puVar6; puVar6 = puVar6 + 4) {
      uVar5 = puVar6[1];
      uVar4 = puVar6[2];
      uVar2 = puVar6[3];
      *puVar1 = *puVar6;
      puVar1[1] = uVar5;
      puVar1[2] = uVar4;
      puVar1[3] = uVar2;
      puVar1 = puVar1 + 4;
    }
    if (puVar3 != (undefined4 *)0x0) {
      (*(code *)PTR_operator_delete_0043228c)();
    }
    *(undefined4 **)this = puVar7;
    *(int *)(this + 4) = (int)puVar7 + iVar8;
    *(undefined4 **)(this + 8) = puVar7 + param_1 * 4;
    return;
  }
  return;
}

