
/* DWARF original name: _M_realloc_insert<const gold::Dwarf_die::Attribute_value&>
   DWARF original prototype: void
   _M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>(vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
   * this, iterator __position, Attribute_value * __args#0) */

void __thiscall
std::vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>::
_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>
          (vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
           *this,iterator __position,Attribute_value *__args_0)

{
  int iVar1;
  uint uVar2;
  pointer pAVar3;
  uint *puVar4;
  uint uVar5;
  anon_union_4_3_97895b06_for_aux aVar6;
  char *pcVar7;
  uint uVar8;
  pointer pAVar9;
  pointer pAVar10;
  pointer pAVar11;
  pointer pAVar12;
  int iVar13;
  
  pAVar12 = (this->
            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
            )._M_impl._M_finish;
  pAVar10 = (this->
            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
            )._M_impl._M_start;
  iVar1 = (int)pAVar12 - (int)pAVar10 >> 3;
  uVar2 = iVar1 * -0x55555555;
  iVar13 = (int)__position._M_current - (int)pAVar10;
  if (uVar2 == 0) {
    uVar5 = 1;
LAB_002e7c24:
    iVar1 = uVar5 * 0x18;
LAB_002e7acc:
    pAVar3 = (pointer)(*(code *)PTR_operator_new_004c13a8)(iVar1);
    pAVar11 = (pointer)((int)&pAVar3->attr + iVar1);
  }
  else {
    uVar5 = iVar1 * 0x55555556;
    if (uVar5 < uVar2) {
      iVar1 = -0x10;
      goto LAB_002e7acc;
    }
    iVar1 = -0x10;
    if (0xaaaaaaa < uVar5) goto LAB_002e7acc;
    pAVar3 = (pointer)0x0;
    if (uVar5 != 0) goto LAB_002e7c24;
    pAVar11 = (pointer)0x0;
  }
  puVar4 = (uint *)((int)pAVar3 + iVar13);
  uVar8 = __args_0->form;
  pcVar7 = (__args_0->val).stringval;
  iVar1 = (int)pAVar3 + iVar13 + 0x18;
  uVar5 = *(uint *)((int)&__args_0->val + 4);
  aVar6 = __args_0->aux;
  uVar2 = *(uint *)&__args_0->field_0x14;
  pAVar9 = (pointer)(iVar1 + ((int)pAVar12 - (int)__position._M_current));
  *puVar4 = __args_0->attr;
  puVar4[1] = uVar8;
  puVar4[2] = (uint)pcVar7;
  puVar4[3] = uVar5;
  *(anon_union_4_3_97895b06_for_aux *)(puVar4 + 4) = aVar6;
  puVar4[5] = uVar2;
  if (pAVar10 == __position._M_current) {
    if (pAVar12 != pAVar10) goto LAB_002e7b54;
  }
  else {
    (*(code *)PTR_memmove_004c5af8)(pAVar3,pAVar10,iVar13);
    if (pAVar12 == __position._M_current) goto LAB_002e7ba8;
LAB_002e7b54:
    (*(code *)PTR_memcpy_004c5ba8)
              (iVar1,__position._M_current,(int)pAVar12 - (int)__position._M_current);
  }
  if (pAVar10 == (pointer)0x0) {
    (this->
    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
    )._M_impl._M_start = pAVar3;
    (this->
    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
    )._M_impl._M_finish = pAVar9;
    (this->
    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
    )._M_impl._M_end_of_storage = pAVar11;
    return;
  }
LAB_002e7ba8:
  (*(code *)PTR_operator_delete_004c12fc)(pAVar10);
  (this->
  super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
  )._M_impl._M_start = pAVar3;
  (this->
  super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
  )._M_impl._M_finish = pAVar9;
  (this->
  super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
  )._M_impl._M_end_of_storage = pAVar11;
  return;
}



/* void std::vector<gold::Dwarf_die::Attribute_value,
   std::allocator<gold::Dwarf_die::Attribute_value>
   >::_M_realloc_insert<gold::Dwarf_die::Attribute_value
   const&>(__normal_iterator<gold::Dwarf_die::Attribute_value*,
   std::vector<gold::Dwarf_die::Attribute_value, std::allocator<gold::Dwarf_die::Attribute_value> >
   >, gold::Dwarf_die::Attribute_value const&) */

void __thiscall
std::vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>::
_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>
          (vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>
           *this,int param_2,undefined4 *param_3)

{
  int iVar1;
  uint uVar2;
  int iVar3;
  undefined4 *puVar4;
  uint uVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  int iVar11;
  int iVar12;
  int iVar13;
  int iVar14;
  int iVar15;
  
  iVar14 = *(int *)(this + 4);
  iVar13 = *(int *)this;
  iVar1 = iVar14 - iVar13 >> 3;
  uVar2 = iVar1 * -0x55555555;
  iVar15 = param_2 - iVar13;
  if (uVar2 == 0) {
    uVar5 = 1;
LAB_002e7c24:
    iVar1 = uVar5 * 0x18;
LAB_002e7acc:
    iVar3 = (*(code *)PTR_operator_new_004c13a8)(iVar1);
    iVar1 = iVar3 + iVar1;
  }
  else {
    uVar5 = iVar1 * 0x55555556;
    if (uVar5 < uVar2) {
      iVar1 = -0x10;
      goto LAB_002e7acc;
    }
    iVar1 = -0x10;
    if (0xaaaaaaa < uVar5) goto LAB_002e7acc;
    iVar3 = 0;
    if (uVar5 != 0) goto LAB_002e7c24;
    iVar1 = 0;
  }
  puVar4 = (undefined4 *)(iVar3 + iVar15);
  uVar10 = param_3[1];
  uVar9 = param_3[2];
  iVar12 = iVar3 + iVar15 + 0x18;
  uVar8 = param_3[3];
  uVar7 = param_3[4];
  uVar6 = param_3[5];
  iVar11 = iVar12 + (iVar14 - param_2);
  *puVar4 = *param_3;
  puVar4[1] = uVar10;
  puVar4[2] = uVar9;
  puVar4[3] = uVar8;
  puVar4[4] = uVar7;
  puVar4[5] = uVar6;
  if (iVar13 == param_2) {
    if (iVar14 != iVar13) goto LAB_002e7b54;
  }
  else {
    (*(code *)PTR_memmove_004c5af8)(iVar3,iVar13,iVar15);
    if (iVar14 == param_2) goto LAB_002e7ba8;
LAB_002e7b54:
    (*(code *)PTR_memcpy_004c5ba8)(iVar12,param_2,iVar14 - param_2);
  }
  if (iVar13 == 0) {
    *(int *)this = iVar3;
    *(int *)(this + 4) = iVar11;
    *(int *)(this + 8) = iVar1;
    return;
  }
LAB_002e7ba8:
  (*(code *)PTR_operator_delete_004c12fc)(iVar13);
  *(int *)this = iVar3;
  *(int *)(this + 4) = iVar11;
  *(int *)(this + 8) = iVar1;
  return;
}


lui gp,0x1e
addiu gp,gp,0x17f4
addu gp,gp,t9
addiu sp,sp,-0x48
lui v1,0xaaaa
sw s7,0x3c(sp)
ori v1,v1,0xaaab
sw s2,0x28(sp)
lw s7,0x4(a0)
lw s2,0x0(a0)
sw gp,0x10(sp)
sw s8,0x40(sp)
subu v0,s7,s2
sw s4,0x30(sp)
sw s3,0x2c(sp)
or s4,a1,zero
sra v0,v0,0x3
sw s0,0x20(sp)
sw ra,0x44(sp)
or s3,a0,zero
mul v0,v0,v1
sw s6,0x38(sp)
sw s5,0x34(sp)
or s0,a2,zero
sw s1,0x24(sp)
beq v0,zero,0x002e7c20
_subu s8,a1,s2
sll v1,v0,0x1
sltu v0,v1,v0
beq v0,zero,0x002e7bf0
_lui v0,0xaaa
li s5,-0x10
lw t9,-0x7e98(gp)
jalr t9
_or a0,s5,zero
lw gp,0x10(sp)
addu s5,v0,s5
or s6,v0,zero
addiu s1,s8,0x18
lw t1,0x0(s0)
addu v0,s6,s8
lw t0,0x4(s0)
lw a3,0x8(s0)
addu s1,s6,s1
lw a2,0xc(s0)
subu v1,s7,s4
lw a1,0x10(s0)
lw a0,0x14(s0)
addu s0,s1,v1
sw t1,0x0(v0)
sw t0,0x4(v0)
sw a3,0x8(v0)
sw a2,0xc(v0)
sw a1,0x10(v0)
beq s2,s4,0x002e7c10
_sw a0,0x14(v0)
lw t9,-0x3748(gp)
or a2,s8,zero
sw v1,0x18(sp)
or a1,s2,zero
jalr t9
_or a0,s6,zero
lw gp,0x10(sp)
beq s7,s4,0x002e7ba8
_lw v1,0x18(sp)
lw t9,-0x3698(gp)
or a2,v1,zero
or a1,s4,zero
jalr t9
_or a0,s1,zero
lw gp,0x10(sp)
bne s2,zero,0x002e7ba8
_lw ra,0x44(sp)
lw s8,0x40(sp)
lw s7,0x3c(sp)
lw s4,0x30(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
sw s6,0x0(s3)
sw s0,0x4(s3)
sw s5,0x8(s3)
lw s6,0x38(sp)
lw s5,0x34(sp)
lw s3,0x2c(sp)
lw s0,0x20(sp)
jr ra
_addiu sp,sp,0x48
lw t9,-0x7f44(gp)
jalr t9
_or a0,s2,zero
lw ra,0x44(sp)
lw s8,0x40(sp)
lw s7,0x3c(sp)
lw s4,0x30(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
sw s6,0x0(s3)
sw s0,0x4(s3)
sw s5,0x8(s3)
lw s6,0x38(sp)
lw s5,0x34(sp)
lw s3,0x2c(sp)
lw s0,0x20(sp)
jr ra
_addiu sp,sp,0x48
ori v0,v0,0xaaab
sltu v0,v1,v0
beq v0,zero,0x002e7acc
_li s5,-0x10
bne v1,zero,0x002e7c24
_or s6,zero,zero
b 0x002e7ae4
_or s5,zero,zero
bne s7,s2,0x002e7b54
_lw t9,-0x3698(gp)
b 0x002e7b68
_nop
li v1,0x1
sll s5,v1,0x1
addu s5,s5,v1
b 0x002e7acc
_sll s5,s5,0x3
(translation_unit "/* void std::vector<gold::Dwarf_die::Attribute_value,\n   std::allocator<gold::Dwarf_die::Attribute_value>\n   >::_M_realloc_insert<gold::Dwarf_die::Attribute_value\n   const&>(__normal_iterator<gold::Dwarf_die::Attribute_value*,\n   std::vector<gold::Dwarf_die::Attribute_value, std::allocator<gold::Dwarf_die::Attribute_value> >\n   >, gold::Dwarf_die::Attribute_value const&) */\n\nvoid __thiscall\nstd::vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>::\n_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>\n          (vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n           *this,int param_2,undefined4 *param_3)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  \n  iVar14 = *(int *)(this + 4);\n  iVar13 = *(int *)this;\n  iVar1 = iVar14 - iVar13 >> 3;\n  uVar2 = iVar1 * -0x55555555;\n  iVar15 = param_2 - iVar13;\n  if (uVar2 == 0) {\n    uVar5 = 1;\nLAB_002e7c24:\n    iVar1 = uVar5 * 0x18;\nLAB_002e7acc:\n    iVar3 = (*(code *)PTR_operator_new_004c13a8)(iVar1);\n    iVar1 = iVar3 + iVar1;\n  }\n  else {\n    uVar5 = iVar1 * 0x55555556;\n    if (uVar5 < uVar2) {\n      iVar1 = -0x10;\n      goto LAB_002e7acc;\n    }\n    iVar1 = -0x10;\n    if (0xaaaaaaa < uVar5) goto LAB_002e7acc;\n    iVar3 = 0;\n    if (uVar5 != 0) goto LAB_002e7c24;\n    iVar1 = 0;\n  }\n  puVar4 = (undefined4 *)(iVar3 + iVar15);\n  uVar10 = param_3[1];\n  uVar9 = param_3[2];\n  iVar12 = iVar3 + iVar15 + 0x18;\n  uVar8 = param_3[3];\n  uVar7 = param_3[4];\n  uVar6 = param_3[5];\n  iVar11 = iVar12 + (iVar14 - param_2);\n  *puVar4 = *param_3;\n  puVar4[1] = uVar10;\n  puVar4[2] = uVar9;\n  puVar4[3] = uVar8;\n  puVar4[4] = uVar7;\n  puVar4[5] = uVar6;\n  if (iVar13 == param_2) {\n    if (iVar14 != iVar13) goto LAB_002e7b54;\n  }\n  else {\n    (*(code *)PTR_memmove_004c5af8)(iVar3,iVar13,iVar15);\n    if (iVar14 == param_2) goto LAB_002e7ba8;\nLAB_002e7b54:\n    (*(code *)PTR_memcpy_004c5ba8)(iVar12,param_2,iVar14 - param_2);\n  }\n  if (iVar13 == 0) {\n    *(int *)this = iVar3;\n    *(int *)(this + 4) = iVar11;\n    *(int *)(this + 8) = iVar1;\n    return;\n  }\nLAB_002e7ba8:\n  (*(code *)PTR_operator_delete_004c12fc)(iVar13);\n  *(int *)this = iVar3;\n  *(int *)(this + 4) = iVar11;\n  *(int *)(this + 8) = iVar1;\n  return;\n}\n\n" comment (declaration "void __thiscall\nstd::vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>::\n_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>\n          (vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n           *this,int param_2,undefined4 *param_3)\n\n{\n  int iVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::vector<gold::Dwarf_die::" identifier : : identifier < identifier : : identifier : :) identifier , (ERROR "std::allocator<gold::Dwarf_die::Attribute_value>>::\n_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>\n          (vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n           *this,int param_2,undefined4 *param_3)\n\n{\n  int" identifier : : identifier < identifier : : identifier : : identifier >> : : identifier < identifier : : identifier : : (function_declarator "Attribute_value_const&>\n          (vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n           *this,int param_2,undefined4 *param_3)" identifier (ERROR "&>" & >) (parameter_list "(vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n           *this,int param_2,undefined4 *param_3)" ( (parameter_declaration "vector<gold::Dwarf_die::Attribute_value" type_identifier (ERROR "<gold::Dwarf_die::" < identifier : : identifier : :) identifier) , (parameter_declaration "std::allocator<gold::Dwarf_die::Attribute_value>>\n           *this" type_identifier (ERROR "::allocator<gold::Dwarf_die::Attribute_value>>" : : identifier < identifier : : identifier : : identifier >>) (pointer_declarator "*this" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) { primitive_type) identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (expression_statement "iVar14 = *(int *)(this + 4);" (assignment_expression "iVar14 = *(int *)(this + 4)" identifier = (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) ))))) ;) (expression_statement "iVar13 = *(int *)this;" (assignment_expression "iVar13 = *(int *)this" identifier = (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar1 = iVar14 - iVar13 >> 3;" (assignment_expression "iVar1 = iVar14 - iVar13 >> 3" identifier = (binary_expression "iVar14 - iVar13 >> 3" (binary_expression "iVar14 - iVar13" identifier - identifier) >> number_literal)) ;) (expression_statement "uVar2 = iVar1 * -0x55555555;" (assignment_expression "uVar2 = iVar1 * -0x55555555" identifier = (binary_expression "iVar1 * -0x55555555" identifier * number_literal)) ;) (expression_statement "iVar15 = param_2 - iVar13;" (assignment_expression "iVar15 = param_2 - iVar13" identifier = (binary_expression "param_2 - iVar13" identifier - identifier)) ;) (if_statement "if (uVar2 == 0) {\n    uVar5 = 1;\nLAB_002e7c24:\n    iVar1 = uVar5 * 0x18;\nLAB_002e7acc:\n    iVar3 = (*(code *)PTR_operator_new_004c13a8)(iVar1);\n    iVar1 = iVar3 + iVar1;\n  }\n  else {\n    uVar5 = iVar1 * 0x55555556;\n    if (uVar5 < uVar2) {\n      iVar1 = -0x10;\n      goto LAB_002e7acc;\n    }\n    iVar1 = -0x10;\n    if (0xaaaaaaa < uVar5) goto LAB_002e7acc;\n    iVar3 = 0;\n    if (uVar5 != 0) goto LAB_002e7c24;\n    iVar1 = 0;\n  }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar5 = 1;\nLAB_002e7c24:\n    iVar1 = uVar5 * 0x18;\nLAB_002e7acc:\n    iVar3 = (*(code *)PTR_operator_new_004c13a8)(iVar1);\n    iVar1 = iVar3 + iVar1;\n  }" { (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (labeled_statement "LAB_002e7c24:\n    iVar1 = uVar5 * 0x18;" statement_identifier : (expression_statement "iVar1 = uVar5 * 0x18;" (assignment_expression "iVar1 = uVar5 * 0x18" identifier = (binary_expression "uVar5 * 0x18" identifier * number_literal)) ;)) (labeled_statement "LAB_002e7acc:\n    iVar3 = (*(code *)PTR_operator_new_004c13a8)(iVar1);" statement_identifier : (expression_statement "iVar3 = (*(code *)PTR_operator_new_004c13a8)(iVar1);" (assignment_expression "iVar3 = (*(code *)PTR_operator_new_004c13a8)(iVar1)" identifier = (call_expression "(*(code *)PTR_operator_new_004c13a8)(iVar1)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar1)" ( identifier )))) ;)) (expression_statement "iVar1 = iVar3 + iVar1;" (assignment_expression "iVar1 = iVar3 + iVar1" identifier = (binary_expression "iVar3 + iVar1" identifier + identifier)) ;) }) (else_clause "else {\n    uVar5 = iVar1 * 0x55555556;\n    if (uVar5 < uVar2) {\n      iVar1 = -0x10;\n      goto LAB_002e7acc;\n    }\n    iVar1 = -0x10;\n    if (0xaaaaaaa < uVar5) goto LAB_002e7acc;\n    iVar3 = 0;\n    if (uVar5 != 0) goto LAB_002e7c24;\n    iVar1 = 0;\n  }" else (compound_statement "{\n    uVar5 = iVar1 * 0x55555556;\n    if (uVar5 < uVar2) {\n      iVar1 = -0x10;\n      goto LAB_002e7acc;\n    }\n    iVar1 = -0x10;\n    if (0xaaaaaaa < uVar5) goto LAB_002e7acc;\n    iVar3 = 0;\n    if (uVar5 != 0) goto LAB_002e7c24;\n    iVar1 = 0;\n  }" { (expression_statement "uVar5 = iVar1 * 0x55555556;" (assignment_expression "uVar5 = iVar1 * 0x55555556" identifier = (binary_expression "iVar1 * 0x55555556" identifier * number_literal)) ;) (if_statement "if (uVar5 < uVar2) {\n      iVar1 = -0x10;\n      goto LAB_002e7acc;\n    }" if (parenthesized_expression "(uVar5 < uVar2)" ( (binary_expression "uVar5 < uVar2" identifier < identifier) )) (compound_statement "{\n      iVar1 = -0x10;\n      goto LAB_002e7acc;\n    }" { (expression_statement "iVar1 = -0x10;" (assignment_expression "iVar1 = -0x10" identifier = number_literal) ;) (goto_statement "goto LAB_002e7acc;" goto statement_identifier ;) })) (expression_statement "iVar1 = -0x10;" (assignment_expression "iVar1 = -0x10" identifier = number_literal) ;) (if_statement "if (0xaaaaaaa < uVar5) goto LAB_002e7acc;" if (parenthesized_expression "(0xaaaaaaa < uVar5)" ( (binary_expression "0xaaaaaaa < uVar5" number_literal < identifier) )) (goto_statement "goto LAB_002e7acc;" goto statement_identifier ;)) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (if_statement "if (uVar5 != 0) goto LAB_002e7c24;" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_002e7c24;" goto statement_identifier ;)) (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) }))) (expression_statement "puVar4 = (undefined4 *)(iVar3 + iVar15);" (assignment_expression "puVar4 = (undefined4 *)(iVar3 + iVar15)" identifier = (cast_expression "(undefined4 *)(iVar3 + iVar15)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + iVar15)" ( (binary_expression "iVar3 + iVar15" identifier + identifier) )))) ;) (expression_statement "uVar10 = param_3[1];" (assignment_expression "uVar10 = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = param_3[2];" (assignment_expression "uVar9 = param_3[2]" identifier = (subscript_expression "param_3[2]" identifier [ number_literal ])) ;) (expression_statement "iVar12 = iVar3 + iVar15 + 0x18;" (assignment_expression "iVar12 = iVar3 + iVar15 + 0x18" identifier = (binary_expression "iVar3 + iVar15 + 0x18" (binary_expression "iVar3 + iVar15" identifier + identifier) + number_literal)) ;) (expression_statement "uVar8 = param_3[3];" (assignment_expression "uVar8 = param_3[3]" identifier = (subscript_expression "param_3[3]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = param_3[4];" (assignment_expression "uVar7 = param_3[4]" identifier = (subscript_expression "param_3[4]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = param_3[5];" (assignment_expression "uVar6 = param_3[5]" identifier = (subscript_expression "param_3[5]" identifier [ number_literal ])) ;) (expression_statement "iVar11 = iVar12 + (iVar14 - param_2);" (assignment_expression "iVar11 = iVar12 + (iVar14 - param_2)" identifier = (binary_expression "iVar12 + (iVar14 - param_2)" identifier + (parenthesized_expression "(iVar14 - param_2)" ( (binary_expression "iVar14 - param_2" identifier - identifier) )))) ;) (expression_statement "*puVar4 = *param_3;" (assignment_expression "*puVar4 = *param_3" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "puVar4[1] = uVar10;" (assignment_expression "puVar4[1] = uVar10" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = uVar9;" (assignment_expression "puVar4[2] = uVar9" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = uVar8;" (assignment_expression "puVar4[3] = uVar8" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[4] = uVar7;" (assignment_expression "puVar4[4] = uVar7" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[5] = uVar6;" (assignment_expression "puVar4[5] = uVar6" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar13 == param_2) {\n    if (iVar14 != iVar13) goto LAB_002e7b54;\n  }\n  else {\n    (*(code *)PTR_memmove_004c5af8)(iVar3,iVar13,iVar15);\n    if (iVar14 == param_2) goto LAB_002e7ba8;\nLAB_002e7b54:\n    (*(code *)PTR_memcpy_004c5ba8)(iVar12,param_2,iVar14 - param_2);\n  }" if (parenthesized_expression "(iVar13 == param_2)" ( (binary_expression "iVar13 == param_2" identifier == identifier) )) (compound_statement "{\n    if (iVar14 != iVar13) goto LAB_002e7b54;\n  }" { (if_statement "if (iVar14 != iVar13) goto LAB_002e7b54;" if (parenthesized_expression "(iVar14 != iVar13)" ( (binary_expression "iVar14 != iVar13" identifier != identifier) )) (goto_statement "goto LAB_002e7b54;" goto statement_identifier ;)) }) (else_clause "else {\n    (*(code *)PTR_memmove_004c5af8)(iVar3,iVar13,iVar15);\n    if (iVar14 == param_2) goto LAB_002e7ba8;\nLAB_002e7b54:\n    (*(code *)PTR_memcpy_004c5ba8)(iVar12,param_2,iVar14 - param_2);\n  }" else (compound_statement "{\n    (*(code *)PTR_memmove_004c5af8)(iVar3,iVar13,iVar15);\n    if (iVar14 == param_2) goto LAB_002e7ba8;\nLAB_002e7b54:\n    (*(code *)PTR_memcpy_004c5ba8)(iVar12,param_2,iVar14 - param_2);\n  }" { (expression_statement "(*(code *)PTR_memmove_004c5af8)(iVar3,iVar13,iVar15);" (call_expression "(*(code *)PTR_memmove_004c5af8)(iVar3,iVar13,iVar15)" (parenthesized_expression "(*(code *)PTR_memmove_004c5af8)" ( (pointer_expression "*(code *)PTR_memmove_004c5af8" * (cast_expression "(code *)PTR_memmove_004c5af8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3,iVar13,iVar15)" ( identifier , identifier , identifier ))) ;) (if_statement "if (iVar14 == param_2) goto LAB_002e7ba8;" if (parenthesized_expression "(iVar14 == param_2)" ( (binary_expression "iVar14 == param_2" identifier == identifier) )) (goto_statement "goto LAB_002e7ba8;" goto statement_identifier ;)) (labeled_statement "LAB_002e7b54:\n    (*(code *)PTR_memcpy_004c5ba8)(iVar12,param_2,iVar14 - param_2);" statement_identifier : (expression_statement "(*(code *)PTR_memcpy_004c5ba8)(iVar12,param_2,iVar14 - param_2);" (call_expression "(*(code *)PTR_memcpy_004c5ba8)(iVar12,param_2,iVar14 - param_2)" (parenthesized_expression "(*(code *)PTR_memcpy_004c5ba8)" ( (pointer_expression "*(code *)PTR_memcpy_004c5ba8" * (cast_expression "(code *)PTR_memcpy_004c5ba8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar12,param_2,iVar14 - param_2)" ( identifier , identifier , (binary_expression "iVar14 - param_2" identifier - identifier) ))) ;)) }))) (if_statement "if (iVar13 == 0) {\n    *(int *)this = iVar3;\n    *(int *)(this + 4) = iVar11;\n    *(int *)(this + 8) = iVar1;\n    return;\n  }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n    *(int *)this = iVar3;\n    *(int *)(this + 4) = iVar11;\n    *(int *)(this + 8) = iVar1;\n    return;\n  }" { (expression_statement "*(int *)this = iVar3;" (assignment_expression "*(int *)this = iVar3" (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(int *)(this + 4) = iVar11;" (assignment_expression "*(int *)(this + 4) = iVar11" (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) )))) = identifier) ;) (expression_statement "*(int *)(this + 8) = iVar1;" (assignment_expression "*(int *)(this + 8) = iVar1" (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) )))) = identifier) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_002e7ba8:\n  (*(code *)PTR_operator_delete_004c12fc)(iVar13);" statement_identifier : (expression_statement "(*(code *)PTR_operator_delete_004c12fc)(iVar13);" (call_expression "(*(code *)PTR_operator_delete_004c12fc)(iVar13)" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar13)" ( identifier ))) ;)) (expression_statement "*(int *)this = iVar3;" (assignment_expression "*(int *)this = iVar3" (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(int *)(this + 4) = iVar11;" (assignment_expression "*(int *)(this + 4) = iVar11" (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) )))) = identifier) ;) (expression_statement "*(int *)(this + 8) = iVar1;" (assignment_expression "*(int *)(this + 8) = iVar1" (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) )))) = identifier) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "/* DWARF original name: _M_realloc_insert<const gold::Dwarf_die::Attribute_value&>\n   DWARF original prototype: void\n   _M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>(vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n   * this, iterator __position, Attribute_value * __args#0) */\n\nvoid __thiscall\nstd::vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>::\n_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n          (vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n           *this,iterator __position,Attribute_value *__args_0)\n\n{\n  int iVar1;\n  uint uVar2;\n  pointer pAVar3;\n  uint *puVar4;\n  uint uVar5;\n  anon_union_4_3_97895b06_for_aux aVar6;\n  char *pcVar7;\n  uint uVar8;\n  pointer pAVar9;\n  pointer pAVar10;\n  pointer pAVar11;\n  pointer pAVar12;\n  int iVar13;\n  \n  pAVar12 = (this->\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            )._M_impl._M_finish;\n  pAVar10 = (this->\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            )._M_impl._M_start;\n  iVar1 = (int)pAVar12 - (int)pAVar10 >> 3;\n  uVar2 = iVar1 * -0x55555555;\n  iVar13 = (int)__position._M_current - (int)pAVar10;\n  if (uVar2 == 0) {\n    uVar5 = 1;\nLAB_002e7c24:\n    iVar1 = uVar5 * 0x18;\nLAB_002e7acc:\n    pAVar3 = (pointer)(*(code *)PTR_operator_new_004c13a8)(iVar1);\n    pAVar11 = (pointer)((int)&pAVar3->attr + iVar1);\n  }\n  else {\n    uVar5 = iVar1 * 0x55555556;\n    if (uVar5 < uVar2) {\n      iVar1 = -0x10;\n      goto LAB_002e7acc;\n    }\n    iVar1 = -0x10;\n    if (0xaaaaaaa < uVar5) goto LAB_002e7acc;\n    pAVar3 = (pointer)0x0;\n    if (uVar5 != 0) goto LAB_002e7c24;\n    pAVar11 = (pointer)0x0;\n  }\n  puVar4 = (uint *)((int)pAVar3 + iVar13);\n  uVar8 = __args_0->form;\n  pcVar7 = (__args_0->val).stringval;\n  iVar1 = (int)pAVar3 + iVar13 + 0x18;\n  uVar5 = *(uint *)((int)&__args_0->val + 4);\n  aVar6 = __args_0->aux;\n  uVar2 = *(uint *)&__args_0->field_0x14;\n  pAVar9 = (pointer)(iVar1 + ((int)pAVar12 - (int)__position._M_current));\n  *puVar4 = __args_0->attr;\n  puVar4[1] = uVar8;\n  puVar4[2] = (uint)pcVar7;\n  puVar4[3] = uVar5;\n  *(anon_union_4_3_97895b06_for_aux *)(puVar4 + 4) = aVar6;\n  puVar4[5] = uVar2;\n  if (pAVar10 == __position._M_current) {\n    if (pAVar12 != pAVar10) goto LAB_002e7b54;\n  }\n  else {\n    (*(code *)PTR_memmove_004c5af8)(pAVar3,pAVar10,iVar13);\n    if (pAVar12 == __position._M_current) goto LAB_002e7ba8;\nLAB_002e7b54:\n    (*(code *)PTR_memcpy_004c5ba8)\n              (iVar1,__position._M_current,(int)pAVar12 - (int)__position._M_current);\n  }\n  if (pAVar10 == (pointer)0x0) {\n    (this->\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    )._M_impl._M_start = pAVar3;\n    (this->\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    )._M_impl._M_finish = pAVar9;\n    (this->\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    )._M_impl._M_end_of_storage = pAVar11;\n    return;\n  }\nLAB_002e7ba8:\n  (*(code *)PTR_operator_delete_004c12fc)(pAVar10);\n  (this->\n  super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n  )._M_impl._M_start = pAVar3;\n  (this->\n  super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n  )._M_impl._M_finish = pAVar9;\n  (this->\n  super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n  )._M_impl._M_end_of_storage = pAVar11;\n  return;\n}\n\n" comment (declaration "void __thiscall\nstd::vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>::\n_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n          (vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n           *this,iterator __position,Attribute_value *__args_0)\n\n{\n  int iVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::vector<gold::Dwarf_die::" identifier : : identifier < identifier : : identifier : :) identifier , (ERROR "_std::allocator<gold::Dwarf_die::Attribute_value>_>::\n_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n          (vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n           *this,iterator __position,Attribute_value *__args_0)\n\n{\n  int" identifier : : identifier < identifier : : identifier : : identifier > identifier > : : identifier < identifier : : identifier : : (function_declarator "Attribute_value&>\n          (vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n           *this,iterator __position,Attribute_value *__args_0)" identifier (ERROR "&>" & >) (parameter_list "(vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n           *this,iterator __position,Attribute_value *__args_0)" ( (parameter_declaration "vector<gold::Dwarf_die::Attribute_value" type_identifier (ERROR "<gold::Dwarf_die::" < identifier : : identifier : :) identifier) , (parameter_declaration "_std::allocator<gold::Dwarf_die::Attribute_value>_>\n           *this" type_identifier (ERROR "::allocator<gold::Dwarf_die::Attribute_value>_>" : : identifier < identifier : : identifier : : identifier > identifier >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "iterator __position" type_identifier identifier) , (parameter_declaration "Attribute_value *__args_0" type_identifier (pointer_declarator "*__args_0" * identifier)) ))) { primitive_type) identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "pointer pAVar3;" type_identifier identifier ;) (declaration "uint *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "anon_union_4_3_97895b06_for_aux aVar6;" type_identifier identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "pointer pAVar9;" type_identifier identifier ;) (declaration "pointer pAVar10;" type_identifier identifier ;) (declaration "pointer pAVar11;" type_identifier identifier ;) (declaration "pointer pAVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (expression_statement "pAVar12 = (this->\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            )._M_impl._M_finish;" (assignment_expression "pAVar12 = (this->\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            )._M_impl._M_finish" identifier = (field_expression "(this->\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            )._M_impl._M_finish" (field_expression "(this->\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            )._M_impl" (parenthesized_expression "(this->\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            )" ( (ERROR "this->\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::" (comma_expression "this->\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std" (binary_expression "this->\n            super__Vector_base<gold" (field_expression "this->\n            super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Dwarf_die::Attribute_value" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Attribute_value>_>" (binary_expression "Attribute_value>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "pAVar10 = (this->\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            )._M_impl._M_start;" (assignment_expression "pAVar10 = (this->\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            )._M_impl._M_start" identifier = (field_expression "(this->\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            )._M_impl._M_start" (field_expression "(this->\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            )._M_impl" (parenthesized_expression "(this->\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            )" ( (ERROR "this->\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::" (comma_expression "this->\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std" (binary_expression "this->\n            super__Vector_base<gold" (field_expression "this->\n            super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Dwarf_die::Attribute_value" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Attribute_value>_>" (binary_expression "Attribute_value>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "iVar1 = (int)pAVar12 - (int)pAVar10 >> 3;" (assignment_expression "iVar1 = (int)pAVar12 - (int)pAVar10 >> 3" identifier = (binary_expression "(int)pAVar12 - (int)pAVar10 >> 3" (binary_expression "(int)pAVar12 - (int)pAVar10" (cast_expression "(int)pAVar12" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pAVar10" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (expression_statement "uVar2 = iVar1 * -0x55555555;" (assignment_expression "uVar2 = iVar1 * -0x55555555" identifier = (binary_expression "iVar1 * -0x55555555" identifier * number_literal)) ;) (expression_statement "iVar13 = (int)__position._M_current - (int)pAVar10;" (assignment_expression "iVar13 = (int)__position._M_current - (int)pAVar10" identifier = (binary_expression "(int)__position._M_current - (int)pAVar10" (cast_expression "(int)__position._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__position._M_current" identifier . field_identifier)) - (cast_expression "(int)pAVar10" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (uVar2 == 0) {\n    uVar5 = 1;\nLAB_002e7c24:\n    iVar1 = uVar5 * 0x18;\nLAB_002e7acc:\n    pAVar3 = (pointer)(*(code *)PTR_operator_new_004c13a8)(iVar1);\n    pAVar11 = (pointer)((int)&pAVar3->attr + iVar1);\n  }\n  else {\n    uVar5 = iVar1 * 0x55555556;\n    if (uVar5 < uVar2) {\n      iVar1 = -0x10;\n      goto LAB_002e7acc;\n    }\n    iVar1 = -0x10;\n    if (0xaaaaaaa < uVar5) goto LAB_002e7acc;\n    pAVar3 = (pointer)0x0;\n    if (uVar5 != 0) goto LAB_002e7c24;\n    pAVar11 = (pointer)0x0;\n  }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar5 = 1;\nLAB_002e7c24:\n    iVar1 = uVar5 * 0x18;\nLAB_002e7acc:\n    pAVar3 = (pointer)(*(code *)PTR_operator_new_004c13a8)(iVar1);\n    pAVar11 = (pointer)((int)&pAVar3->attr + iVar1);\n  }" { (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (labeled_statement "LAB_002e7c24:\n    iVar1 = uVar5 * 0x18;" statement_identifier : (expression_statement "iVar1 = uVar5 * 0x18;" (assignment_expression "iVar1 = uVar5 * 0x18" identifier = (binary_expression "uVar5 * 0x18" identifier * number_literal)) ;)) (labeled_statement "LAB_002e7acc:\n    pAVar3 = (pointer)(*(code *)PTR_operator_new_004c13a8)(iVar1);" statement_identifier : (expression_statement "pAVar3 = (pointer)(*(code *)PTR_operator_new_004c13a8)(iVar1);" (assignment_expression "pAVar3 = (pointer)(*(code *)PTR_operator_new_004c13a8)(iVar1)" identifier = (call_expression "(pointer)(*(code *)PTR_operator_new_004c13a8)(iVar1)" (call_expression "(pointer)(*(code *)PTR_operator_new_004c13a8)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) (argument_list "(iVar1)" ( identifier )))) ;)) (expression_statement "pAVar11 = (pointer)((int)&pAVar3->attr + iVar1);" (assignment_expression "pAVar11 = (pointer)((int)&pAVar3->attr + iVar1)" identifier = (call_expression "(pointer)((int)&pAVar3->attr + iVar1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((int)&pAVar3->attr + iVar1)" ( (binary_expression "(int)&pAVar3->attr + iVar1" (cast_expression "(int)&pAVar3->attr" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pAVar3->attr" & (field_expression "pAVar3->attr" identifier -> field_identifier))) + identifier) )))) ;) }) (else_clause "else {\n    uVar5 = iVar1 * 0x55555556;\n    if (uVar5 < uVar2) {\n      iVar1 = -0x10;\n      goto LAB_002e7acc;\n    }\n    iVar1 = -0x10;\n    if (0xaaaaaaa < uVar5) goto LAB_002e7acc;\n    pAVar3 = (pointer)0x0;\n    if (uVar5 != 0) goto LAB_002e7c24;\n    pAVar11 = (pointer)0x0;\n  }" else (compound_statement "{\n    uVar5 = iVar1 * 0x55555556;\n    if (uVar5 < uVar2) {\n      iVar1 = -0x10;\n      goto LAB_002e7acc;\n    }\n    iVar1 = -0x10;\n    if (0xaaaaaaa < uVar5) goto LAB_002e7acc;\n    pAVar3 = (pointer)0x0;\n    if (uVar5 != 0) goto LAB_002e7c24;\n    pAVar11 = (pointer)0x0;\n  }" { (expression_statement "uVar5 = iVar1 * 0x55555556;" (assignment_expression "uVar5 = iVar1 * 0x55555556" identifier = (binary_expression "iVar1 * 0x55555556" identifier * number_literal)) ;) (if_statement "if (uVar5 < uVar2) {\n      iVar1 = -0x10;\n      goto LAB_002e7acc;\n    }" if (parenthesized_expression "(uVar5 < uVar2)" ( (binary_expression "uVar5 < uVar2" identifier < identifier) )) (compound_statement "{\n      iVar1 = -0x10;\n      goto LAB_002e7acc;\n    }" { (expression_statement "iVar1 = -0x10;" (assignment_expression "iVar1 = -0x10" identifier = number_literal) ;) (goto_statement "goto LAB_002e7acc;" goto statement_identifier ;) })) (expression_statement "iVar1 = -0x10;" (assignment_expression "iVar1 = -0x10" identifier = number_literal) ;) (if_statement "if (0xaaaaaaa < uVar5) goto LAB_002e7acc;" if (parenthesized_expression "(0xaaaaaaa < uVar5)" ( (binary_expression "0xaaaaaaa < uVar5" number_literal < identifier) )) (goto_statement "goto LAB_002e7acc;" goto statement_identifier ;)) (expression_statement "pAVar3 = (pointer)0x0;" (assignment_expression "pAVar3 = (pointer)0x0" identifier = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (if_statement "if (uVar5 != 0) goto LAB_002e7c24;" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_002e7c24;" goto statement_identifier ;)) (expression_statement "pAVar11 = (pointer)0x0;" (assignment_expression "pAVar11 = (pointer)0x0" identifier = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) }))) (expression_statement "puVar4 = (uint *)((int)pAVar3 + iVar13);" (assignment_expression "puVar4 = (uint *)((int)pAVar3 + iVar13)" identifier = (cast_expression "(uint *)((int)pAVar3 + iVar13)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pAVar3 + iVar13)" ( (binary_expression "(int)pAVar3 + iVar13" (cast_expression "(int)pAVar3" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "uVar8 = __args_0->form;" (assignment_expression "uVar8 = __args_0->form" identifier = (field_expression "__args_0->form" identifier -> field_identifier)) ;) (expression_statement "pcVar7 = (__args_0->val).stringval;" (assignment_expression "pcVar7 = (__args_0->val).stringval" identifier = (field_expression "(__args_0->val).stringval" (parenthesized_expression "(__args_0->val)" ( (field_expression "__args_0->val" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar1 = (int)pAVar3 + iVar13 + 0x18;" (assignment_expression "iVar1 = (int)pAVar3 + iVar13 + 0x18" identifier = (binary_expression "(int)pAVar3 + iVar13 + 0x18" (binary_expression "(int)pAVar3 + iVar13" (cast_expression "(int)pAVar3" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal)) ;) (expression_statement "uVar5 = *(uint *)((int)&__args_0->val + 4);" (assignment_expression "uVar5 = *(uint *)((int)&__args_0->val + 4)" identifier = (pointer_expression "*(uint *)((int)&__args_0->val + 4)" * (cast_expression "(uint *)((int)&__args_0->val + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__args_0->val + 4)" ( (binary_expression "(int)&__args_0->val + 4" (cast_expression "(int)&__args_0->val" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__args_0->val" & (field_expression "__args_0->val" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "aVar6 = __args_0->aux;" (assignment_expression "aVar6 = __args_0->aux" identifier = (field_expression "__args_0->aux" identifier -> field_identifier)) ;) (expression_statement "uVar2 = *(uint *)&__args_0->field_0x14;" (assignment_expression "uVar2 = *(uint *)&__args_0->field_0x14" identifier = (pointer_expression "*(uint *)&__args_0->field_0x14" * (cast_expression "(uint *)&__args_0->field_0x14" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&__args_0->field_0x14" & (field_expression "__args_0->field_0x14" identifier -> field_identifier))))) ;) (expression_statement "pAVar9 = (pointer)(iVar1 + ((int)pAVar12 - (int)__position._M_current));" (assignment_expression "pAVar9 = (pointer)(iVar1 + ((int)pAVar12 - (int)__position._M_current))" identifier = (call_expression "(pointer)(iVar1 + ((int)pAVar12 - (int)__position._M_current))" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "(iVar1 + ((int)pAVar12 - (int)__position._M_current))" ( (binary_expression "iVar1 + ((int)pAVar12 - (int)__position._M_current)" identifier + (parenthesized_expression "((int)pAVar12 - (int)__position._M_current)" ( (binary_expression "(int)pAVar12 - (int)__position._M_current" (cast_expression "(int)pAVar12" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)__position._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__position._M_current" identifier . field_identifier))) ))) )))) ;) (expression_statement "*puVar4 = __args_0->attr;" (assignment_expression "*puVar4 = __args_0->attr" (pointer_expression "*puVar4" * identifier) = (field_expression "__args_0->attr" identifier -> field_identifier)) ;) (expression_statement "puVar4[1] = uVar8;" (assignment_expression "puVar4[1] = uVar8" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = (uint)pcVar7;" (assignment_expression "puVar4[2] = (uint)pcVar7" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = (cast_expression "(uint)pcVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar4[3] = uVar5;" (assignment_expression "puVar4[3] = uVar5" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(anon_union_4_3_97895b06_for_aux *)(puVar4 + 4) = aVar6;" (assignment_expression "*(anon_union_4_3_97895b06_for_aux *)(puVar4 + 4) = aVar6" (pointer_expression "*(anon_union_4_3_97895b06_for_aux *)(puVar4 + 4)" * (cast_expression "(anon_union_4_3_97895b06_for_aux *)(puVar4 + 4)" ( (type_descriptor "anon_union_4_3_97895b06_for_aux *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 4)" ( (binary_expression "puVar4 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar4[5] = uVar2;" (assignment_expression "puVar4[5] = uVar2" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (pAVar10 == __position._M_current) {\n    if (pAVar12 != pAVar10) goto LAB_002e7b54;\n  }\n  else {\n    (*(code *)PTR_memmove_004c5af8)(pAVar3,pAVar10,iVar13);\n    if (pAVar12 == __position._M_current) goto LAB_002e7ba8;\nLAB_002e7b54:\n    (*(code *)PTR_memcpy_004c5ba8)\n              (iVar1,__position._M_current,(int)pAVar12 - (int)__position._M_current);\n  }" if (parenthesized_expression "(pAVar10 == __position._M_current)" ( (binary_expression "pAVar10 == __position._M_current" identifier == (field_expression "__position._M_current" identifier . field_identifier)) )) (compound_statement "{\n    if (pAVar12 != pAVar10) goto LAB_002e7b54;\n  }" { (if_statement "if (pAVar12 != pAVar10) goto LAB_002e7b54;" if (parenthesized_expression "(pAVar12 != pAVar10)" ( (binary_expression "pAVar12 != pAVar10" identifier != identifier) )) (goto_statement "goto LAB_002e7b54;" goto statement_identifier ;)) }) (else_clause "else {\n    (*(code *)PTR_memmove_004c5af8)(pAVar3,pAVar10,iVar13);\n    if (pAVar12 == __position._M_current) goto LAB_002e7ba8;\nLAB_002e7b54:\n    (*(code *)PTR_memcpy_004c5ba8)\n              (iVar1,__position._M_current,(int)pAVar12 - (int)__position._M_current);\n  }" else (compound_statement "{\n    (*(code *)PTR_memmove_004c5af8)(pAVar3,pAVar10,iVar13);\n    if (pAVar12 == __position._M_current) goto LAB_002e7ba8;\nLAB_002e7b54:\n    (*(code *)PTR_memcpy_004c5ba8)\n              (iVar1,__position._M_current,(int)pAVar12 - (int)__position._M_current);\n  }" { (expression_statement "(*(code *)PTR_memmove_004c5af8)(pAVar3,pAVar10,iVar13);" (call_expression "(*(code *)PTR_memmove_004c5af8)(pAVar3,pAVar10,iVar13)" (parenthesized_expression "(*(code *)PTR_memmove_004c5af8)" ( (pointer_expression "*(code *)PTR_memmove_004c5af8" * (cast_expression "(code *)PTR_memmove_004c5af8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pAVar3,pAVar10,iVar13)" ( identifier , identifier , identifier ))) ;) (if_statement "if (pAVar12 == __position._M_current) goto LAB_002e7ba8;" if (parenthesized_expression "(pAVar12 == __position._M_current)" ( (binary_expression "pAVar12 == __position._M_current" identifier == (field_expression "__position._M_current" identifier . field_identifier)) )) (goto_statement "goto LAB_002e7ba8;" goto statement_identifier ;)) (labeled_statement "LAB_002e7b54:\n    (*(code *)PTR_memcpy_004c5ba8)\n              (iVar1,__position._M_current,(int)pAVar12 - (int)__position._M_current);" statement_identifier : (expression_statement "(*(code *)PTR_memcpy_004c5ba8)\n              (iVar1,__position._M_current,(int)pAVar12 - (int)__position._M_current);" (call_expression "(*(code *)PTR_memcpy_004c5ba8)\n              (iVar1,__position._M_current,(int)pAVar12 - (int)__position._M_current)" (parenthesized_expression "(*(code *)PTR_memcpy_004c5ba8)" ( (pointer_expression "*(code *)PTR_memcpy_004c5ba8" * (cast_expression "(code *)PTR_memcpy_004c5ba8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar1,__position._M_current,(int)pAVar12 - (int)__position._M_current)" ( identifier , (field_expression "__position._M_current" identifier . field_identifier) , (binary_expression "(int)pAVar12 - (int)__position._M_current" (cast_expression "(int)pAVar12" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)__position._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__position._M_current" identifier . field_identifier))) ))) ;)) }))) (if_statement "if (pAVar10 == (pointer)0x0) {\n    (this->\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    )._M_impl._M_start = pAVar3;\n    (this->\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    )._M_impl._M_finish = pAVar9;\n    (this->\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    )._M_impl._M_end_of_storage = pAVar11;\n    return;\n  }" if (parenthesized_expression "(pAVar10 == (pointer)0x0)" ( (binary_expression "pAVar10 == (pointer)0x0" identifier == (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n    (this->\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    )._M_impl._M_start = pAVar3;\n    (this->\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    )._M_impl._M_finish = pAVar9;\n    (this->\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    )._M_impl._M_end_of_storage = pAVar11;\n    return;\n  }" { (expression_statement "(this->\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    )._M_impl._M_start = pAVar3;" (assignment_expression "(this->\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    )._M_impl._M_start = pAVar3" (field_expression "(this->\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    )._M_impl._M_start" (field_expression "(this->\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    )._M_impl" (parenthesized_expression "(this->\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    )" ( (ERROR "this->\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::" (comma_expression "this->\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std" (binary_expression "this->\n    super__Vector_base<gold" (field_expression "this->\n    super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Dwarf_die::Attribute_value" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Attribute_value>_>" (binary_expression "Attribute_value>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(this->\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    )._M_impl._M_finish = pAVar9;" (assignment_expression "(this->\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    )._M_impl._M_finish = pAVar9" (field_expression "(this->\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    )._M_impl._M_finish" (field_expression "(this->\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    )._M_impl" (parenthesized_expression "(this->\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    )" ( (ERROR "this->\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::" (comma_expression "this->\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std" (binary_expression "this->\n    super__Vector_base<gold" (field_expression "this->\n    super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Dwarf_die::Attribute_value" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Attribute_value>_>" (binary_expression "Attribute_value>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(this->\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    )._M_impl._M_end_of_storage = pAVar11;" (assignment_expression "(this->\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    )._M_impl._M_end_of_storage = pAVar11" (field_expression "(this->\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    )._M_impl._M_end_of_storage" (field_expression "(this->\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    )._M_impl" (parenthesized_expression "(this->\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    )" ( (ERROR "this->\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::" (comma_expression "this->\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std" (binary_expression "this->\n    super__Vector_base<gold" (field_expression "this->\n    super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Dwarf_die::Attribute_value" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Attribute_value>_>" (binary_expression "Attribute_value>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) = identifier) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_002e7ba8:\n  (*(code *)PTR_operator_delete_004c12fc)(pAVar10);" statement_identifier : (expression_statement "(*(code *)PTR_operator_delete_004c12fc)(pAVar10);" (call_expression "(*(code *)PTR_operator_delete_004c12fc)(pAVar10)" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pAVar10)" ( identifier ))) ;)) (expression_statement "(this->\n  super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n  )._M_impl._M_start = pAVar3;" (assignment_expression "(this->\n  super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n  )._M_impl._M_start = pAVar3" (field_expression "(this->\n  super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n  )._M_impl._M_start" (field_expression "(this->\n  super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n  )._M_impl" (parenthesized_expression "(this->\n  super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n  )" ( (ERROR "this->\n  super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::" (comma_expression "this->\n  super__Vector_base<gold::Dwarf_die::Attribute_value,_std" (binary_expression "this->\n  super__Vector_base<gold" (field_expression "this->\n  super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Dwarf_die::Attribute_value" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Attribute_value>_>" (binary_expression "Attribute_value>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(this->\n  super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n  )._M_impl._M_finish = pAVar9;" (assignment_expression "(this->\n  super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n  )._M_impl._M_finish = pAVar9" (field_expression "(this->\n  super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n  )._M_impl._M_finish" (field_expression "(this->\n  super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n  )._M_impl" (parenthesized_expression "(this->\n  super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n  )" ( (ERROR "this->\n  super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::" (comma_expression "this->\n  super__Vector_base<gold::Dwarf_die::Attribute_value,_std" (binary_expression "this->\n  super__Vector_base<gold" (field_expression "this->\n  super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Dwarf_die::Attribute_value" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Attribute_value>_>" (binary_expression "Attribute_value>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(this->\n  super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n  )._M_impl._M_end_of_storage = pAVar11;" (assignment_expression "(this->\n  super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n  )._M_impl._M_end_of_storage = pAVar11" (field_expression "(this->\n  super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n  )._M_impl._M_end_of_storage" (field_expression "(this->\n  super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n  )._M_impl" (parenthesized_expression "(this->\n  super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n  )" ( (ERROR "this->\n  super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::" (comma_expression "this->\n  super__Vector_base<gold::Dwarf_die::Attribute_value,_std" (binary_expression "this->\n  super__Vector_base<gold" (field_expression "this->\n  super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Dwarf_die::Attribute_value" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Attribute_value>_>" (binary_expression "Attribute_value>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) = identifier) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void __thiscall\nstd::vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>::\n_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>\n          (vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n           *this,int param_2,undefined4 *param_3)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  \n  iVar14 = *(int *)(this + 4);\n  iVar13 = *(int *)this;\n  iVar1 = iVar14 - iVar13 >> 3;\n  uVar2 = iVar1 * -0x55555555;\n  iVar15 = param_2 - iVar13;\n  if (uVar2 == 0) {\n    uVar5 = 1;\nLAB_002e7c24:\n    iVar1 = uVar5 * 0x18;\nLAB_002e7acc:\n    iVar3 = (*(code *)PTR_operator_new_004c13a8)(iVar1);\n    iVar1 = iVar3 + iVar1;\n  }\n  else {\n    uVar5 = iVar1 * 0x55555556;\n    if (uVar5 < uVar2) {\n      iVar1 = -0x10;\n      goto LAB_002e7acc;\n    }\n    iVar1 = -0x10;\n    if (0xaaaaaaa < uVar5) goto LAB_002e7acc;\n    iVar3 = 0;\n    if (uVar5 != 0) goto LAB_002e7c24;\n    iVar1 = 0;\n  }\n  puVar4 = (undefined4 *)(iVar3 + iVar15);\n  uVar10 = param_3[1];\n  uVar9 = param_3[2];\n  iVar12 = iVar3 + iVar15 + 0x18;\n  uVar8 = param_3[3];\n  uVar7 = param_3[4];\n  uVar6 = param_3[5];\n  iVar11 = iVar12 + (iVar14 - param_2);\n  *puVar4 = *param_3;\n  puVar4[1] = uVar10;\n  puVar4[2] = uVar9;\n  puVar4[3] = uVar8;\n  puVar4[4] = uVar7;\n  puVar4[5] = uVar6;\n  if (iVar13 == param_2) {\n    if (iVar14 != iVar13) goto LAB_002e7b54;\n  }\n  else {\n    (*(code *)PTR_memmove_004c5af8)(iVar3,iVar13,iVar15);\n    if (iVar14 == param_2) goto LAB_002e7ba8;\nLAB_002e7b54:\n    (*(code *)PTR_memcpy_004c5ba8)(iVar12,param_2,iVar14 - param_2);\n  }\n  if (iVar13 == 0) {\n    *(int *)this = iVar3;\n    *(int *)(this + 4) = iVar11;\n    *(int *)(this + 8) = iVar1;\n    return;\n  }\nLAB_002e7ba8:\n  (*(code *)PTR_operator_delete_004c12fc)(iVar13);\n  *(int *)this = iVar3;\n  *(int *)(this + 4) = iVar11;\n  *(int *)(this + 8) = iVar1;\n  return;\n}\n\n" (declaration "void __thiscall\nstd::vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>::\n_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>\n          (vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n           *this,int param_2,undefined4 *param_3)\n\n{\n  int iVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::vector<gold::Dwarf_die::" identifier : : identifier < identifier : : identifier : :) identifier , (ERROR "std::allocator<gold::Dwarf_die::Attribute_value>>::\n_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>\n          (vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n           *this,int param_2,undefined4 *param_3)\n\n{\n  int" identifier : : identifier < identifier : : identifier : : identifier >> : : identifier < identifier : : identifier : : (function_declarator "Attribute_value_const&>\n          (vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n           *this,int param_2,undefined4 *param_3)" identifier (ERROR "&>" & >) (parameter_list "(vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n           *this,int param_2,undefined4 *param_3)" ( (parameter_declaration "vector<gold::Dwarf_die::Attribute_value" type_identifier (ERROR "<gold::Dwarf_die::" < identifier : : identifier : :) identifier) , (parameter_declaration "std::allocator<gold::Dwarf_die::Attribute_value>>\n           *this" type_identifier (ERROR "::allocator<gold::Dwarf_die::Attribute_value>>" : : identifier < identifier : : identifier : : identifier >>) (pointer_declarator "*this" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) { primitive_type) identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (expression_statement "iVar14 = *(int *)(this + 4);" (assignment_expression "iVar14 = *(int *)(this + 4)" identifier = (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) ))))) ;) (expression_statement "iVar13 = *(int *)this;" (assignment_expression "iVar13 = *(int *)this" identifier = (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar1 = iVar14 - iVar13 >> 3;" (assignment_expression "iVar1 = iVar14 - iVar13 >> 3" identifier = (binary_expression "iVar14 - iVar13 >> 3" (binary_expression "iVar14 - iVar13" identifier - identifier) >> number_literal)) ;) (expression_statement "uVar2 = iVar1 * -0x55555555;" (assignment_expression "uVar2 = iVar1 * -0x55555555" identifier = (binary_expression "iVar1 * -0x55555555" identifier * number_literal)) ;) (expression_statement "iVar15 = param_2 - iVar13;" (assignment_expression "iVar15 = param_2 - iVar13" identifier = (binary_expression "param_2 - iVar13" identifier - identifier)) ;) (if_statement "if (uVar2 == 0) {\n    uVar5 = 1;\nLAB_002e7c24:\n    iVar1 = uVar5 * 0x18;\nLAB_002e7acc:\n    iVar3 = (*(code *)PTR_operator_new_004c13a8)(iVar1);\n    iVar1 = iVar3 + iVar1;\n  }\n  else {\n    uVar5 = iVar1 * 0x55555556;\n    if (uVar5 < uVar2) {\n      iVar1 = -0x10;\n      goto LAB_002e7acc;\n    }\n    iVar1 = -0x10;\n    if (0xaaaaaaa < uVar5) goto LAB_002e7acc;\n    iVar3 = 0;\n    if (uVar5 != 0) goto LAB_002e7c24;\n    iVar1 = 0;\n  }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar5 = 1;\nLAB_002e7c24:\n    iVar1 = uVar5 * 0x18;\nLAB_002e7acc:\n    iVar3 = (*(code *)PTR_operator_new_004c13a8)(iVar1);\n    iVar1 = iVar3 + iVar1;\n  }" { (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (labeled_statement "LAB_002e7c24:\n    iVar1 = uVar5 * 0x18;" statement_identifier : (expression_statement "iVar1 = uVar5 * 0x18;" (assignment_expression "iVar1 = uVar5 * 0x18" identifier = (binary_expression "uVar5 * 0x18" identifier * number_literal)) ;)) (labeled_statement "LAB_002e7acc:\n    iVar3 = (*(code *)PTR_operator_new_004c13a8)(iVar1);" statement_identifier : (expression_statement "iVar3 = (*(code *)PTR_operator_new_004c13a8)(iVar1);" (assignment_expression "iVar3 = (*(code *)PTR_operator_new_004c13a8)(iVar1)" identifier = (call_expression "(*(code *)PTR_operator_new_004c13a8)(iVar1)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar1)" ( identifier )))) ;)) (expression_statement "iVar1 = iVar3 + iVar1;" (assignment_expression "iVar1 = iVar3 + iVar1" identifier = (binary_expression "iVar3 + iVar1" identifier + identifier)) ;) }) (else_clause "else {\n    uVar5 = iVar1 * 0x55555556;\n    if (uVar5 < uVar2) {\n      iVar1 = -0x10;\n      goto LAB_002e7acc;\n    }\n    iVar1 = -0x10;\n    if (0xaaaaaaa < uVar5) goto LAB_002e7acc;\n    iVar3 = 0;\n    if (uVar5 != 0) goto LAB_002e7c24;\n    iVar1 = 0;\n  }" else (compound_statement "{\n    uVar5 = iVar1 * 0x55555556;\n    if (uVar5 < uVar2) {\n      iVar1 = -0x10;\n      goto LAB_002e7acc;\n    }\n    iVar1 = -0x10;\n    if (0xaaaaaaa < uVar5) goto LAB_002e7acc;\n    iVar3 = 0;\n    if (uVar5 != 0) goto LAB_002e7c24;\n    iVar1 = 0;\n  }" { (expression_statement "uVar5 = iVar1 * 0x55555556;" (assignment_expression "uVar5 = iVar1 * 0x55555556" identifier = (binary_expression "iVar1 * 0x55555556" identifier * number_literal)) ;) (if_statement "if (uVar5 < uVar2) {\n      iVar1 = -0x10;\n      goto LAB_002e7acc;\n    }" if (parenthesized_expression "(uVar5 < uVar2)" ( (binary_expression "uVar5 < uVar2" identifier < identifier) )) (compound_statement "{\n      iVar1 = -0x10;\n      goto LAB_002e7acc;\n    }" { (expression_statement "iVar1 = -0x10;" (assignment_expression "iVar1 = -0x10" identifier = number_literal) ;) (goto_statement "goto LAB_002e7acc;" goto statement_identifier ;) })) (expression_statement "iVar1 = -0x10;" (assignment_expression "iVar1 = -0x10" identifier = number_literal) ;) (if_statement "if (0xaaaaaaa < uVar5) goto LAB_002e7acc;" if (parenthesized_expression "(0xaaaaaaa < uVar5)" ( (binary_expression "0xaaaaaaa < uVar5" number_literal < identifier) )) (goto_statement "goto LAB_002e7acc;" goto statement_identifier ;)) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (if_statement "if (uVar5 != 0) goto LAB_002e7c24;" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_002e7c24;" goto statement_identifier ;)) (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) }))) (expression_statement "puVar4 = (undefined4 *)(iVar3 + iVar15);" (assignment_expression "puVar4 = (undefined4 *)(iVar3 + iVar15)" identifier = (cast_expression "(undefined4 *)(iVar3 + iVar15)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + iVar15)" ( (binary_expression "iVar3 + iVar15" identifier + identifier) )))) ;) (expression_statement "uVar10 = param_3[1];" (assignment_expression "uVar10 = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = param_3[2];" (assignment_expression "uVar9 = param_3[2]" identifier = (subscript_expression "param_3[2]" identifier [ number_literal ])) ;) (expression_statement "iVar12 = iVar3 + iVar15 + 0x18;" (assignment_expression "iVar12 = iVar3 + iVar15 + 0x18" identifier = (binary_expression "iVar3 + iVar15 + 0x18" (binary_expression "iVar3 + iVar15" identifier + identifier) + number_literal)) ;) (expression_statement "uVar8 = param_3[3];" (assignment_expression "uVar8 = param_3[3]" identifier = (subscript_expression "param_3[3]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = param_3[4];" (assignment_expression "uVar7 = param_3[4]" identifier = (subscript_expression "param_3[4]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = param_3[5];" (assignment_expression "uVar6 = param_3[5]" identifier = (subscript_expression "param_3[5]" identifier [ number_literal ])) ;) (expression_statement "iVar11 = iVar12 + (iVar14 - param_2);" (assignment_expression "iVar11 = iVar12 + (iVar14 - param_2)" identifier = (binary_expression "iVar12 + (iVar14 - param_2)" identifier + (parenthesized_expression "(iVar14 - param_2)" ( (binary_expression "iVar14 - param_2" identifier - identifier) )))) ;) (expression_statement "*puVar4 = *param_3;" (assignment_expression "*puVar4 = *param_3" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "puVar4[1] = uVar10;" (assignment_expression "puVar4[1] = uVar10" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = uVar9;" (assignment_expression "puVar4[2] = uVar9" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = uVar8;" (assignment_expression "puVar4[3] = uVar8" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[4] = uVar7;" (assignment_expression "puVar4[4] = uVar7" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[5] = uVar6;" (assignment_expression "puVar4[5] = uVar6" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar13 == param_2) {\n    if (iVar14 != iVar13) goto LAB_002e7b54;\n  }\n  else {\n    (*(code *)PTR_memmove_004c5af8)(iVar3,iVar13,iVar15);\n    if (iVar14 == param_2) goto LAB_002e7ba8;\nLAB_002e7b54:\n    (*(code *)PTR_memcpy_004c5ba8)(iVar12,param_2,iVar14 - param_2);\n  }" if (parenthesized_expression "(iVar13 == param_2)" ( (binary_expression "iVar13 == param_2" identifier == identifier) )) (compound_statement "{\n    if (iVar14 != iVar13) goto LAB_002e7b54;\n  }" { (if_statement "if (iVar14 != iVar13) goto LAB_002e7b54;" if (parenthesized_expression "(iVar14 != iVar13)" ( (binary_expression "iVar14 != iVar13" identifier != identifier) )) (goto_statement "goto LAB_002e7b54;" goto statement_identifier ;)) }) (else_clause "else {\n    (*(code *)PTR_memmove_004c5af8)(iVar3,iVar13,iVar15);\n    if (iVar14 == param_2) goto LAB_002e7ba8;\nLAB_002e7b54:\n    (*(code *)PTR_memcpy_004c5ba8)(iVar12,param_2,iVar14 - param_2);\n  }" else (compound_statement "{\n    (*(code *)PTR_memmove_004c5af8)(iVar3,iVar13,iVar15);\n    if (iVar14 == param_2) goto LAB_002e7ba8;\nLAB_002e7b54:\n    (*(code *)PTR_memcpy_004c5ba8)(iVar12,param_2,iVar14 - param_2);\n  }" { (expression_statement "(*(code *)PTR_memmove_004c5af8)(iVar3,iVar13,iVar15);" (call_expression "(*(code *)PTR_memmove_004c5af8)(iVar3,iVar13,iVar15)" (parenthesized_expression "(*(code *)PTR_memmove_004c5af8)" ( (pointer_expression "*(code *)PTR_memmove_004c5af8" * (cast_expression "(code *)PTR_memmove_004c5af8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3,iVar13,iVar15)" ( identifier , identifier , identifier ))) ;) (if_statement "if (iVar14 == param_2) goto LAB_002e7ba8;" if (parenthesized_expression "(iVar14 == param_2)" ( (binary_expression "iVar14 == param_2" identifier == identifier) )) (goto_statement "goto LAB_002e7ba8;" goto statement_identifier ;)) (labeled_statement "LAB_002e7b54:\n    (*(code *)PTR_memcpy_004c5ba8)(iVar12,param_2,iVar14 - param_2);" statement_identifier : (expression_statement "(*(code *)PTR_memcpy_004c5ba8)(iVar12,param_2,iVar14 - param_2);" (call_expression "(*(code *)PTR_memcpy_004c5ba8)(iVar12,param_2,iVar14 - param_2)" (parenthesized_expression "(*(code *)PTR_memcpy_004c5ba8)" ( (pointer_expression "*(code *)PTR_memcpy_004c5ba8" * (cast_expression "(code *)PTR_memcpy_004c5ba8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar12,param_2,iVar14 - param_2)" ( identifier , identifier , (binary_expression "iVar14 - param_2" identifier - identifier) ))) ;)) }))) (if_statement "if (iVar13 == 0) {\n    *(int *)this = iVar3;\n    *(int *)(this + 4) = iVar11;\n    *(int *)(this + 8) = iVar1;\n    return;\n  }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n    *(int *)this = iVar3;\n    *(int *)(this + 4) = iVar11;\n    *(int *)(this + 8) = iVar1;\n    return;\n  }" { (expression_statement "*(int *)this = iVar3;" (assignment_expression "*(int *)this = iVar3" (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(int *)(this + 4) = iVar11;" (assignment_expression "*(int *)(this + 4) = iVar11" (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) )))) = identifier) ;) (expression_statement "*(int *)(this + 8) = iVar1;" (assignment_expression "*(int *)(this + 8) = iVar1" (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) )))) = identifier) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_002e7ba8:\n  (*(code *)PTR_operator_delete_004c12fc)(iVar13);" statement_identifier : (expression_statement "(*(code *)PTR_operator_delete_004c12fc)(iVar13);" (call_expression "(*(code *)PTR_operator_delete_004c12fc)(iVar13)" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar13)" ( identifier ))) ;)) (expression_statement "*(int *)this = iVar3;" (assignment_expression "*(int *)this = iVar3" (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(int *)(this + 4) = iVar11;" (assignment_expression "*(int *)(this + 4) = iVar11" (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) )))) = identifier) ;) (expression_statement "*(int *)(this + 8) = iVar1;" (assignment_expression "*(int *)(this + 8) = iVar1" (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) )))) = identifier) ;) (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 >> : : IDENT < IDENT : : IDENT : : (function_declarator IDENT (ERROR & >) (parameter_list ( (parameter_declaration TYPE (ERROR < IDENT : : IDENT : :) IDENT) , (parameter_declaration TYPE (ERROR : : IDENT < IDENT : : IDENT : : IDENT >>) (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) { TYPE) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (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 IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) ;) (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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , (binary_expression IDENT - IDENT) ))) ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (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) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return ;) (ERROR }))
(declaration "void __thiscall\nstd::vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>::\n_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>\n          (vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n           *this,int param_2,undefined4 *param_3)\n\n{\n  int iVar1;" (primitive_type "void") (ms_call_modifier "__thiscall" (__thiscall "__thiscall")) (ERROR "std::vector<gold::Dwarf_die::" (identifier "std") (: ":") (: ":") (identifier "vector") (< "<") (identifier "gold") (: ":") (: ":") (identifier "Dwarf_die") (: ":") (: ":")) (identifier "Attribute_value") (, ",") (ERROR "std::allocator<gold::Dwarf_die::Attribute_value>>::\n_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>\n          (vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n           *this,int param_2,undefined4 *param_3)\n\n{\n  int" (identifier "std") (: ":") (: ":") (identifier "allocator") (< "<") (identifier "gold") (: ":") (: ":") (identifier "Dwarf_die") (: ":") (: ":") (identifier "Attribute_value") (>> ">>") (: ":") (: ":") (identifier "_M_realloc_insert") (< "<") (identifier "gold") (: ":") (: ":") (identifier "Dwarf_die") (: ":") (: ":") (function_declarator "Attribute_value_const&>\n          (vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n           *this,int param_2,undefined4 *param_3)" (identifier "Attribute_value_const") (ERROR "&>" (& "&") (> ">")) (parameter_list "(vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n           *this,int param_2,undefined4 *param_3)" (( "(") (parameter_declaration "vector<gold::Dwarf_die::Attribute_value" (type_identifier "vector") (ERROR "<gold::Dwarf_die::" (< "<") (identifier "gold") (: ":") (: ":") (identifier "Dwarf_die") (: ":") (: ":")) (identifier "Attribute_value")) (, ",") (parameter_declaration "std::allocator<gold::Dwarf_die::Attribute_value>>\n           *this" (type_identifier "std") (ERROR "::allocator<gold::Dwarf_die::Attribute_value>>" (: ":") (: ":") (identifier "allocator") (< "<") (identifier "gold") (: ":") (: ":") (identifier "Dwarf_die") (: ":") (: ":") (identifier "Attribute_value") (>> ">>")) (pointer_declarator "*this" (* "*") (identifier "this"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 *param_3" (type_identifier "undefined4") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) ({ "{") (primitive_type "int")) (identifier "iVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (expression_statement "iVar14 = *(int *)(this + 4);" (assignment_expression "iVar14 = *(int *)(this + 4)" (identifier "iVar14") (= "=") (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")) () ")"))))) (; ";")) (expression_statement "iVar13 = *(int *)this;" (assignment_expression "iVar13 = *(int *)this" (identifier "iVar13") (= "=") (pointer_expression "*(int *)this" (* "*") (cast_expression "(int *)this" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this")))) (; ";")) (expression_statement "iVar1 = iVar14 - iVar13 >> 3;" (assignment_expression "iVar1 = iVar14 - iVar13 >> 3" (identifier "iVar1") (= "=") (binary_expression "iVar14 - iVar13 >> 3" (binary_expression "iVar14 - iVar13" (identifier "iVar14") (- "-") (identifier "iVar13")) (>> ">>") (number_literal "3"))) (; ";")) (expression_statement "uVar2 = iVar1 * -0x55555555;" (assignment_expression "uVar2 = iVar1 * -0x55555555" (identifier "uVar2") (= "=") (binary_expression "iVar1 * -0x55555555" (identifier "iVar1") (* "*") (number_literal "-0x55555555"))) (; ";")) (expression_statement "iVar15 = param_2 - iVar13;" (assignment_expression "iVar15 = param_2 - iVar13" (identifier "iVar15") (= "=") (binary_expression "param_2 - iVar13" (identifier "param_2") (- "-") (identifier "iVar13"))) (; ";")) (if_statement "if (uVar2 == 0) {\n    uVar5 = 1;\nLAB_002e7c24:\n    iVar1 = uVar5 * 0x18;\nLAB_002e7acc:\n    iVar3 = (*(code *)PTR_operator_new_004c13a8)(iVar1);\n    iVar1 = iVar3 + iVar1;\n  }\n  else {\n    uVar5 = iVar1 * 0x55555556;\n    if (uVar5 < uVar2) {\n      iVar1 = -0x10;\n      goto LAB_002e7acc;\n    }\n    iVar1 = -0x10;\n    if (0xaaaaaaa < uVar5) goto LAB_002e7acc;\n    iVar3 = 0;\n    if (uVar5 != 0) goto LAB_002e7c24;\n    iVar1 = 0;\n  }" (if "if") (parenthesized_expression "(uVar2 == 0)" (( "(") (binary_expression "uVar2 == 0" (identifier "uVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar5 = 1;\nLAB_002e7c24:\n    iVar1 = uVar5 * 0x18;\nLAB_002e7acc:\n    iVar3 = (*(code *)PTR_operator_new_004c13a8)(iVar1);\n    iVar1 = iVar3 + iVar1;\n  }" ({ "{") (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_002e7c24:\n    iVar1 = uVar5 * 0x18;" (statement_identifier "LAB_002e7c24") (: ":") (expression_statement "iVar1 = uVar5 * 0x18;" (assignment_expression "iVar1 = uVar5 * 0x18" (identifier "iVar1") (= "=") (binary_expression "uVar5 * 0x18" (identifier "uVar5") (* "*") (number_literal "0x18"))) (; ";"))) (labeled_statement "LAB_002e7acc:\n    iVar3 = (*(code *)PTR_operator_new_004c13a8)(iVar1);" (statement_identifier "LAB_002e7acc") (: ":") (expression_statement "iVar3 = (*(code *)PTR_operator_new_004c13a8)(iVar1);" (assignment_expression "iVar3 = (*(code *)PTR_operator_new_004c13a8)(iVar1)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_operator_new_004c13a8)(iVar1)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" (( "(") (pointer_expression "*(code *)PTR_operator_new_004c13a8" (* "*") (cast_expression "(code *)PTR_operator_new_004c13a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_004c13a8"))) () ")")) (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")")))) (; ";"))) (expression_statement "iVar1 = iVar3 + iVar1;" (assignment_expression "iVar1 = iVar3 + iVar1" (identifier "iVar1") (= "=") (binary_expression "iVar3 + iVar1" (identifier "iVar3") (+ "+") (identifier "iVar1"))) (; ";")) (} "}")) (else_clause "else {\n    uVar5 = iVar1 * 0x55555556;\n    if (uVar5 < uVar2) {\n      iVar1 = -0x10;\n      goto LAB_002e7acc;\n    }\n    iVar1 = -0x10;\n    if (0xaaaaaaa < uVar5) goto LAB_002e7acc;\n    iVar3 = 0;\n    if (uVar5 != 0) goto LAB_002e7c24;\n    iVar1 = 0;\n  }" (else "else") (compound_statement "{\n    uVar5 = iVar1 * 0x55555556;\n    if (uVar5 < uVar2) {\n      iVar1 = -0x10;\n      goto LAB_002e7acc;\n    }\n    iVar1 = -0x10;\n    if (0xaaaaaaa < uVar5) goto LAB_002e7acc;\n    iVar3 = 0;\n    if (uVar5 != 0) goto LAB_002e7c24;\n    iVar1 = 0;\n  }" ({ "{") (expression_statement "uVar5 = iVar1 * 0x55555556;" (assignment_expression "uVar5 = iVar1 * 0x55555556" (identifier "uVar5") (= "=") (binary_expression "iVar1 * 0x55555556" (identifier "iVar1") (* "*") (number_literal "0x55555556"))) (; ";")) (if_statement "if (uVar5 < uVar2) {\n      iVar1 = -0x10;\n      goto LAB_002e7acc;\n    }" (if "if") (parenthesized_expression "(uVar5 < uVar2)" (( "(") (binary_expression "uVar5 < uVar2" (identifier "uVar5") (< "<") (identifier "uVar2")) () ")")) (compound_statement "{\n      iVar1 = -0x10;\n      goto LAB_002e7acc;\n    }" ({ "{") (expression_statement "iVar1 = -0x10;" (assignment_expression "iVar1 = -0x10" (identifier "iVar1") (= "=") (number_literal "-0x10")) (; ";")) (goto_statement "goto LAB_002e7acc;" (goto "goto") (statement_identifier "LAB_002e7acc") (; ";")) (} "}"))) (expression_statement "iVar1 = -0x10;" (assignment_expression "iVar1 = -0x10" (identifier "iVar1") (= "=") (number_literal "-0x10")) (; ";")) (if_statement "if (0xaaaaaaa < uVar5) goto LAB_002e7acc;" (if "if") (parenthesized_expression "(0xaaaaaaa < uVar5)" (( "(") (binary_expression "0xaaaaaaa < uVar5" (number_literal "0xaaaaaaa") (< "<") (identifier "uVar5")) () ")")) (goto_statement "goto LAB_002e7acc;" (goto "goto") (statement_identifier "LAB_002e7acc") (; ";"))) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar5 != 0) goto LAB_002e7c24;" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_002e7c24;" (goto "goto") (statement_identifier "LAB_002e7c24") (; ";"))) (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" (identifier "iVar1") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "puVar4 = (undefined4 *)(iVar3 + iVar15);" (assignment_expression "puVar4 = (undefined4 *)(iVar3 + iVar15)" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)(iVar3 + iVar15)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + iVar15)" (( "(") (binary_expression "iVar3 + iVar15" (identifier "iVar3") (+ "+") (identifier "iVar15")) () ")")))) (; ";")) (expression_statement "uVar10 = param_3[1];" (assignment_expression "uVar10 = param_3[1]" (identifier "uVar10") (= "=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar9 = param_3[2];" (assignment_expression "uVar9 = param_3[2]" (identifier "uVar9") (= "=") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar12 = iVar3 + iVar15 + 0x18;" (assignment_expression "iVar12 = iVar3 + iVar15 + 0x18" (identifier "iVar12") (= "=") (binary_expression "iVar3 + iVar15 + 0x18" (binary_expression "iVar3 + iVar15" (identifier "iVar3") (+ "+") (identifier "iVar15")) (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "uVar8 = param_3[3];" (assignment_expression "uVar8 = param_3[3]" (identifier "uVar8") (= "=") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "uVar7 = param_3[4];" (assignment_expression "uVar7 = param_3[4]" (identifier "uVar7") (= "=") (subscript_expression "param_3[4]" (identifier "param_3") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "uVar6 = param_3[5];" (assignment_expression "uVar6 = param_3[5]" (identifier "uVar6") (= "=") (subscript_expression "param_3[5]" (identifier "param_3") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "iVar11 = iVar12 + (iVar14 - param_2);" (assignment_expression "iVar11 = iVar12 + (iVar14 - param_2)" (identifier "iVar11") (= "=") (binary_expression "iVar12 + (iVar14 - param_2)" (identifier "iVar12") (+ "+") (parenthesized_expression "(iVar14 - param_2)" (( "(") (binary_expression "iVar14 - param_2" (identifier "iVar14") (- "-") (identifier "param_2")) () ")")))) (; ";")) (expression_statement "*puVar4 = *param_3;" (assignment_expression "*puVar4 = *param_3" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "puVar4[1] = uVar10;" (assignment_expression "puVar4[1] = uVar10" (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar4[2] = uVar9;" (assignment_expression "puVar4[2] = uVar9" (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "puVar4[3] = uVar8;" (assignment_expression "puVar4[3] = uVar8" (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "puVar4[4] = uVar7;" (assignment_expression "puVar4[4] = uVar7" (subscript_expression "puVar4[4]" (identifier "puVar4") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "puVar4[5] = uVar6;" (assignment_expression "puVar4[5] = uVar6" (subscript_expression "puVar4[5]" (identifier "puVar4") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (if_statement "if (iVar13 == param_2) {\n    if (iVar14 != iVar13) goto LAB_002e7b54;\n  }\n  else {\n    (*(code *)PTR_memmove_004c5af8)(iVar3,iVar13,iVar15);\n    if (iVar14 == param_2) goto LAB_002e7ba8;\nLAB_002e7b54:\n    (*(code *)PTR_memcpy_004c5ba8)(iVar12,param_2,iVar14 - param_2);\n  }" (if "if") (parenthesized_expression "(iVar13 == param_2)" (( "(") (binary_expression "iVar13 == param_2" (identifier "iVar13") (== "==") (identifier "param_2")) () ")")) (compound_statement "{\n    if (iVar14 != iVar13) goto LAB_002e7b54;\n  }" ({ "{") (if_statement "if (iVar14 != iVar13) goto LAB_002e7b54;" (if "if") (parenthesized_expression "(iVar14 != iVar13)" (( "(") (binary_expression "iVar14 != iVar13" (identifier "iVar14") (!= "!=") (identifier "iVar13")) () ")")) (goto_statement "goto LAB_002e7b54;" (goto "goto") (statement_identifier "LAB_002e7b54") (; ";"))) (} "}")) (else_clause "else {\n    (*(code *)PTR_memmove_004c5af8)(iVar3,iVar13,iVar15);\n    if (iVar14 == param_2) goto LAB_002e7ba8;\nLAB_002e7b54:\n    (*(code *)PTR_memcpy_004c5ba8)(iVar12,param_2,iVar14 - param_2);\n  }" (else "else") (compound_statement "{\n    (*(code *)PTR_memmove_004c5af8)(iVar3,iVar13,iVar15);\n    if (iVar14 == param_2) goto LAB_002e7ba8;\nLAB_002e7b54:\n    (*(code *)PTR_memcpy_004c5ba8)(iVar12,param_2,iVar14 - param_2);\n  }" ({ "{") (expression_statement "(*(code *)PTR_memmove_004c5af8)(iVar3,iVar13,iVar15);" (call_expression "(*(code *)PTR_memmove_004c5af8)(iVar3,iVar13,iVar15)" (parenthesized_expression "(*(code *)PTR_memmove_004c5af8)" (( "(") (pointer_expression "*(code *)PTR_memmove_004c5af8" (* "*") (cast_expression "(code *)PTR_memmove_004c5af8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memmove_004c5af8"))) () ")")) (argument_list "(iVar3,iVar13,iVar15)" (( "(") (identifier "iVar3") (, ",") (identifier "iVar13") (, ",") (identifier "iVar15") () ")"))) (; ";")) (if_statement "if (iVar14 == param_2) goto LAB_002e7ba8;" (if "if") (parenthesized_expression "(iVar14 == param_2)" (( "(") (binary_expression "iVar14 == param_2" (identifier "iVar14") (== "==") (identifier "param_2")) () ")")) (goto_statement "goto LAB_002e7ba8;" (goto "goto") (statement_identifier "LAB_002e7ba8") (; ";"))) (labeled_statement "LAB_002e7b54:\n    (*(code *)PTR_memcpy_004c5ba8)(iVar12,param_2,iVar14 - param_2);" (statement_identifier "LAB_002e7b54") (: ":") (expression_statement "(*(code *)PTR_memcpy_004c5ba8)(iVar12,param_2,iVar14 - param_2);" (call_expression "(*(code *)PTR_memcpy_004c5ba8)(iVar12,param_2,iVar14 - param_2)" (parenthesized_expression "(*(code *)PTR_memcpy_004c5ba8)" (( "(") (pointer_expression "*(code *)PTR_memcpy_004c5ba8" (* "*") (cast_expression "(code *)PTR_memcpy_004c5ba8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memcpy_004c5ba8"))) () ")")) (argument_list "(iVar12,param_2,iVar14 - param_2)" (( "(") (identifier "iVar12") (, ",") (identifier "param_2") (, ",") (binary_expression "iVar14 - param_2" (identifier "iVar14") (- "-") (identifier "param_2")) () ")"))) (; ";"))) (} "}")))) (if_statement "if (iVar13 == 0) {\n    *(int *)this = iVar3;\n    *(int *)(this + 4) = iVar11;\n    *(int *)(this + 8) = iVar1;\n    return;\n  }" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *(int *)this = iVar3;\n    *(int *)(this + 4) = iVar11;\n    *(int *)(this + 8) = iVar1;\n    return;\n  }" ({ "{") (expression_statement "*(int *)this = iVar3;" (assignment_expression "*(int *)this = iVar3" (pointer_expression "*(int *)this" (* "*") (cast_expression "(int *)this" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this"))) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "*(int *)(this + 4) = iVar11;" (assignment_expression "*(int *)(this + 4) = iVar11" (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")) () ")")))) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "*(int *)(this + 8) = iVar1;" (assignment_expression "*(int *)(this + 8) = iVar1" (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")) () ")")))) (= "=") (identifier "iVar1")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (labeled_statement "LAB_002e7ba8:\n  (*(code *)PTR_operator_delete_004c12fc)(iVar13);" (statement_identifier "LAB_002e7ba8") (: ":") (expression_statement "(*(code *)PTR_operator_delete_004c12fc)(iVar13);" (call_expression "(*(code *)PTR_operator_delete_004c12fc)(iVar13)" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" (( "(") (pointer_expression "*(code *)PTR_operator_delete_004c12fc" (* "*") (cast_expression "(code *)PTR_operator_delete_004c12fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_delete_004c12fc"))) () ")")) (argument_list "(iVar13)" (( "(") (identifier "iVar13") () ")"))) (; ";"))) (expression_statement "*(int *)this = iVar3;" (assignment_expression "*(int *)this = iVar3" (pointer_expression "*(int *)this" (* "*") (cast_expression "(int *)this" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this"))) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "*(int *)(this + 4) = iVar11;" (assignment_expression "*(int *)(this + 4) = iVar11" (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")) () ")")))) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "*(int *)(this + 8) = iVar1;" (assignment_expression "*(int *)(this + 8) = iVar1" (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")) () ")")))) (= "=") (identifier "iVar1")) (; ";")) (return_statement "return;" (return "return") (; ";")) (ERROR "}" (} "}"))

/* DWARF original name: _M_realloc_insert<const gold::Dwarf_die::Attribute_value&>
   DWARF original prototype: void
   _M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>(vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
   * this, iterator __position, Attribute_value * __args#0) */

void __thiscall
std::vector<gold::Dwarf_die::var_1,_std::allocator<gold::Dwarf_die::var_1>var_2>::
_M_realloc_insert<const_gold::Dwarf_die::var_1&>
          (vector<gold::Dwarf_die::var_1,_std::allocator<gold::Dwarf_die::var_1>var_2>
           *this,iterator __position,var_1 *__args_0)

{
  int var_4;
  type_1 var_5;
  type_2 pAVar3;
  type_1 *var_8;
  type_1 var_6;
  type_3 aVar6;
  char *pcVar7;
  type_1 uVar8;
  type_2 pAVar9;
  type_2 var_9;
  type_2 pAVar11;
  type_2 var_10;
  int var_7;
  
  var_10 = (this->
            super__Vector_base<gold::Dwarf_die::var_1,_std::allocator<gold::Dwarf_die::var_1>var_2>var_3
            )._M_impl._M_finish;
  var_9 = (this->
            super__Vector_base<gold::Dwarf_die::var_1,_std::allocator<gold::Dwarf_die::var_1>var_2>var_3
            )._M_impl._M_start;
  var_4 = (int)var_10 - (int)var_9 >> 3;
  var_5 = var_4 * -0x55555555;
  var_7 = (int)__position._M_current - (int)var_9;
  if (var_5 == 0) {
    var_6 = 1;
LAB_002e7c24:
    var_4 = var_6 * 0x18;
LAB_002e7acc:
    pAVar3 = (type_2)(*(type_4 *)PTR_operator_new_004c13a8)(var_4);
    pAVar11 = (type_2)((int)&pAVar3->attr + var_4);
  }
  else {
    var_6 = var_4 * 0x55555556;
    if (var_6 < var_5) {
      var_4 = -0x10;
      goto LAB_002e7acc;
    }
    var_4 = -0x10;
    if (0xaaaaaaa < var_6) goto LAB_002e7acc;
    pAVar3 = (type_2)0x0;
    if (var_6 != 0) goto LAB_002e7c24;
    pAVar11 = (type_2)0x0;
  }
  var_8 = (type_1 *)((int)pAVar3 + var_7);
  uVar8 = __args_0->form;
  pcVar7 = (__args_0->val).stringval;
  var_4 = (int)pAVar3 + var_7 + 0x18;
  var_6 = *(type_1 *)((int)&__args_0->val + 4);
  aVar6 = __args_0->aux;
  var_5 = *(type_1 *)&__args_0->field_0x14;
  pAVar9 = (type_2)(var_4 + ((int)var_10 - (int)__position._M_current));
  *var_8 = __args_0->attr;
  var_8[1] = uVar8;
  var_8[2] = (type_1)pcVar7;
  var_8[3] = var_6;
  *(type_3 *)(var_8 + 4) = aVar6;
  var_8[5] = var_5;
  if (var_9 == __position._M_current) {
    if (var_10 != var_9) goto LAB_002e7b54;
  }
  else {
    (*(type_4 *)PTR_memmove_004c5af8)(pAVar3,var_9,var_7);
    if (var_10 == __position._M_current) goto LAB_002e7ba8;
LAB_002e7b54:
    (*(type_4 *)PTR_memcpy_004c5ba8)
              (var_4,__position._M_current,(int)var_10 - (int)__position._M_current);
  }
  if (var_9 == (type_2)0x0) {
    (this->
    super__Vector_base<gold::Dwarf_die::var_1,_std::allocator<gold::Dwarf_die::var_1>var_2>var_3
    )._M_impl._M_start = pAVar3;
    (this->
    super__Vector_base<gold::Dwarf_die::var_1,_std::allocator<gold::Dwarf_die::var_1>var_2>var_3
    )._M_impl._M_finish = pAVar9;
    (this->
    super__Vector_base<gold::Dwarf_die::var_1,_std::allocator<gold::Dwarf_die::var_1>var_2>var_3
    )._M_impl._M_end_of_storage = pAVar11;
    return;
  }
LAB_002e7ba8:
  (*(type_4 *)PTR_operator_delete_004c12fc)(var_9);
  (this->
  super__Vector_base<gold::Dwarf_die::var_1,_std::allocator<gold::Dwarf_die::var_1>var_2>var_3
  )._M_impl._M_start = pAVar3;
  (this->
  super__Vector_base<gold::Dwarf_die::var_1,_std::allocator<gold::Dwarf_die::var_1>var_2>var_3
  )._M_impl._M_finish = pAVar9;
  (this->
  super__Vector_base<gold::Dwarf_die::var_1,_std::allocator<gold::Dwarf_die::var_1>var_2>var_3
  )._M_impl._M_end_of_storage = pAVar11;
  return;
}


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

/* void std::vector<gold::Dwarf_die::Attribute_value,
   std::allocator<gold::Dwarf_die::Attribute_value>
   >::_M_realloc_insert<gold::Dwarf_die::Attribute_value
   const&>(__normal_iterator<gold::Dwarf_die::Attribute_value*,
   std::vector<gold::Dwarf_die::Attribute_value, std::allocator<gold::Dwarf_die::Attribute_value> >
   >, gold::Dwarf_die::Attribute_value const&) */

void __thiscall
std::vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>::
MASKED
          (vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>
           *this,int param_2,undefined4 *param_3)

{
  int iVar1;
  uint uVar2;
  int iVar3;
  undefined4 *puVar4;
  uint uVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  int iVar11;
  int iVar12;
  int iVar13;
  int iVar14;
  int iVar15;
  
  iVar14 = *(int *)(this + 4);
  iVar13 = *(int *)this;
  iVar1 = iVar14 - iVar13 >> 3;
  uVar2 = iVar1 * -0x55555555;
  iVar15 = param_2 - iVar13;
  if (uVar2 == 0) {
    uVar5 = 1;
LAB_002e7c24:
    iVar1 = uVar5 * 0x18;
LAB_002e7acc:
    iVar3 = (*(code *)PTR_operator_new_004c13a8)(iVar1);
    iVar1 = iVar3 + iVar1;
  }
  else {
    uVar5 = iVar1 * 0x55555556;
    if (uVar5 < uVar2) {
      iVar1 = -0x10;
      goto LAB_002e7acc;
    }
    iVar1 = -0x10;
    if (0xaaaaaaa < uVar5) goto LAB_002e7acc;
    iVar3 = 0;
    if (uVar5 != 0) goto LAB_002e7c24;
    iVar1 = 0;
  }
  puVar4 = (undefined4 *)(iVar3 + iVar15);
  uVar10 = param_3[1];
  uVar9 = param_3[2];
  iVar12 = iVar3 + iVar15 + 0x18;
  uVar8 = param_3[3];
  uVar7 = param_3[4];
  uVar6 = param_3[5];
  iVar11 = iVar12 + (iVar14 - param_2);
  *puVar4 = *param_3;
  puVar4[1] = uVar10;
  puVar4[2] = uVar9;
  puVar4[3] = uVar8;
  puVar4[4] = uVar7;
  puVar4[5] = uVar6;
  if (iVar13 == param_2) {
    if (iVar14 != iVar13) goto LAB_002e7b54;
  }
  else {
    (*(code *)PTR_memmove_004c5af8)(iVar3,iVar13,iVar15);
    if (iVar14 == param_2) goto LAB_002e7ba8;
LAB_002e7b54:
    (*(code *)PTR_memcpy_004c5ba8)(iVar12,param_2,iVar14 - param_2);
  }
  if (iVar13 == 0) {
    *(int *)this = iVar3;
    *(int *)(this + 4) = iVar11;
    *(int *)(this + 8) = iVar1;
    return;
  }
LAB_002e7ba8:
  (*(code *)PTR_operator_delete_004c12fc)(iVar13);
  *(int *)this = iVar3;
  *(int *)(this + 4) = iVar11;
  *(int *)(this + 8) = iVar1;
  return;
}

