
/* DWARF original prototype: void
   _M_realloc_insert<gold::Version_script_info::Language>(vector<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>
   * this, iterator __position, Language * __args#0) */

void __thiscall
std::
vector<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>::
_M_realloc_insert<gold::Version_script_info::Language>
          (vector<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>
           *this,iterator __position,Language *__args_0)

{
  uint uVar1;
  pointer pLVar2;
  uint uVar3;
  pointer pLVar4;
  int iVar5;
  pointer pLVar6;
  pointer pLVar7;
  int iVar8;
  pointer pLVar9;
  
  pLVar7 = (this->
           super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>
           )._M_impl._M_finish;
  pLVar4 = (this->
           super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>
           )._M_impl._M_start;
  iVar8 = (int)__position._M_current - (int)pLVar4;
  uVar1 = (int)pLVar7 - (int)pLVar4 >> 2;
  if (uVar1 == 0) {
    uVar3 = 1;
LAB_0022347c:
    iVar5 = uVar3 << 2;
LAB_00223350:
    pLVar2 = (pointer)(*(code *)PTR_operator_new_0043233c)(iVar5);
    pLVar6 = (pointer)((int)pLVar2 + iVar5);
  }
  else {
    uVar3 = uVar1 << 1;
    if (uVar3 < uVar1) {
      iVar5 = -4;
      goto LAB_00223350;
    }
    iVar5 = -4;
    if (0x3fffffff < uVar3) goto LAB_00223350;
    pLVar2 = (pointer)0x0;
    if (uVar3 != 0) goto LAB_0022347c;
    pLVar6 = (pointer)0x0;
  }
  iVar5 = (int)pLVar2 + iVar8 + 4;
  *(Language *)((int)pLVar2 + iVar8) = *__args_0;
  pLVar9 = (pointer)(iVar5 + ((int)pLVar7 - (int)__position._M_current));
  if (pLVar4 == __position._M_current) {
    if (pLVar7 != pLVar4) goto LAB_002233b0;
  }
  else {
    (*(code *)PTR_memmove_004366d8)(pLVar2,pLVar4,iVar8);
    if (pLVar7 == __position._M_current) goto LAB_00223404;
LAB_002233b0:
    (*(code *)PTR_memcpy_00436788)
              (iVar5,__position._M_current,(int)pLVar7 - (int)__position._M_current);
  }
  if (pLVar4 == (pointer)0x0) {
    (this->
    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>
    )._M_impl._M_start = pLVar2;
    (this->
    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>
    )._M_impl._M_finish = pLVar9;
    (this->
    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>
    )._M_impl._M_end_of_storage = pLVar6;
    return;
  }
LAB_00223404:
  (*(code *)PTR_operator_delete_0043228c)(pLVar4);
  (this->
  super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>
  )._M_impl._M_start = pLVar2;
  (this->
  super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>
  )._M_impl._M_finish = pLVar9;
  (this->
  super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>
  )._M_impl._M_end_of_storage = pLVar6;
  return;
}



/* void std::vector<gold::Version_script_info::Language,
   std::allocator<gold::Version_script_info::Language>
   >::_M_realloc_insert<gold::Version_script_info::Language>(__normal_iterator<gold::Version_script_info::Language*,
   std::vector<gold::Version_script_info::Language,
   std::allocator<gold::Version_script_info::Language> > >, gold::Version_script_info::Language&&)
    */

void __thiscall
std::vector<gold::Version_script_info::Language,std::allocator<gold::Version_script_info::Language>>
::_M_realloc_insert<gold::Version_script_info::Language>
          (vector<gold::Version_script_info::Language,std::allocator<gold::Version_script_info::Language>>
           *this,int param_2,undefined4 *param_3)

{
  uint uVar1;
  int iVar2;
  uint uVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  
  iVar7 = *(int *)(this + 4);
  iVar5 = *(int *)this;
  iVar8 = param_2 - iVar5;
  uVar1 = iVar7 - iVar5 >> 2;
  if (uVar1 == 0) {
    uVar3 = 1;
LAB_0022347c:
    iVar6 = uVar3 << 2;
LAB_00223350:
    iVar2 = (*(code *)PTR_operator_new_0043233c)(iVar6);
    iVar6 = iVar2 + iVar6;
  }
  else {
    uVar3 = uVar1 << 1;
    if (uVar3 < uVar1) {
      iVar6 = -4;
      goto LAB_00223350;
    }
    iVar6 = -4;
    if (0x3fffffff < uVar3) goto LAB_00223350;
    iVar2 = 0;
    if (uVar3 != 0) goto LAB_0022347c;
    iVar6 = 0;
  }
  iVar4 = iVar2 + iVar8 + 4;
  *(undefined4 *)(iVar2 + iVar8) = *param_3;
  iVar9 = iVar4 + (iVar7 - param_2);
  if (iVar5 == param_2) {
    if (iVar7 != iVar5) goto LAB_002233b0;
  }
  else {
    (*(code *)PTR_memmove_004366d8)(iVar2,iVar5,iVar8);
    if (iVar7 == param_2) goto LAB_00223404;
LAB_002233b0:
    (*(code *)PTR_memcpy_00436788)(iVar4,param_2,iVar7 - param_2);
  }
  if (iVar5 == 0) {
    *(int *)this = iVar2;
    *(int *)(this + 4) = iVar9;
    *(int *)(this + 8) = iVar6;
    return;
  }
LAB_00223404:
  (*(code *)PTR_operator_delete_0043228c)(iVar5);
  *(int *)this = iVar2;
  *(int *)(this + 4) = iVar9;
  *(int *)(this + 8) = iVar6;
  return;
}


lui gp,0x21
addiu gp,gp,0x6ef4
addu gp,gp,t9
addiu sp,sp,-0x48
sw s6,0x38(sp)
sw s1,0x24(sp)
lw s6,0x4(a0)
lw s1,0x0(a0)
sw gp,0x10(sp)
sw s8,0x40(sp)
or s8,a2,zero
subu v0,s6,s1
sw s7,0x3c(sp)
sw s3,0x2c(sp)
subu s7,a1,s1
sra v0,v0,0x2
sw s2,0x28(sp)
sw ra,0x44(sp)
or s2,a0,zero
sw s5,0x34(sp)
or s3,a1,zero
sw s4,0x30(sp)
beq v0,zero,0x00223478
_sw s0,0x20(sp)
sll a0,v0,0x1
sltu v0,a0,v0
beq v0,zero,0x0022344c
_lui v0,0x4000
li s5,-0x4
lw t9,-0x7e94(gp)
jalr t9
_or a0,s5,zero
lw gp,0x10(sp)
addu s5,v0,s5
or s4,v0,zero
addiu s0,s7,0x4
lw a0,0x0(s8)
addu v0,s4,s7
addu s0,s4,s0
subu v1,s6,s3
sw a0,0x0(v0)
beq s1,s3,0x00223468
_addu s8,s0,v1
lw t9,-0x3af8(gp)
or a2,s7,zero
sw v1,0x18(sp)
or a1,s1,zero
jalr t9
_or a0,s4,zero
lw gp,0x10(sp)
beq s6,s3,0x00223404
_lw v1,0x18(sp)
lw t9,-0x3a48(gp)
or a2,v1,zero
or a1,s3,zero
jalr t9
_or a0,s0,zero
lw gp,0x10(sp)
bne s1,zero,0x00223404
_lw ra,0x44(sp)
lw s7,0x3c(sp)
lw s6,0x38(sp)
lw s3,0x2c(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
sw s4,0x0(s2)
sw s8,0x4(s2)
sw s5,0x8(s2)
lw s8,0x40(sp)
lw s5,0x34(sp)
lw s4,0x30(sp)
lw s2,0x28(sp)
jr ra
_addiu sp,sp,0x48
lw t9,-0x7f44(gp)
jalr t9
_or a0,s1,zero
lw ra,0x44(sp)
lw s7,0x3c(sp)
lw s6,0x38(sp)
lw s3,0x2c(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
sw s4,0x0(s2)
sw s8,0x4(s2)
sw s5,0x8(s2)
lw s8,0x40(sp)
lw s5,0x34(sp)
lw s4,0x30(sp)
lw s2,0x28(sp)
jr ra
_addiu sp,sp,0x48
sltu v0,a0,v0
beq v0,zero,0x00223350
_li s5,-0x4
bne a0,zero,0x0022347c
_or s4,zero,zero
b 0x00223368
_or s5,zero,zero
bne s6,s1,0x002233b0
_lw t9,-0x3a48(gp)
b 0x002233c4
_nop
li a0,0x1
b 0x00223350
_sll s5,a0,0x2
(translation_unit "/* void std::vector<gold::Version_script_info::Language,\n   std::allocator<gold::Version_script_info::Language>\n   >::_M_realloc_insert<gold::Version_script_info::Language>(__normal_iterator<gold::Version_script_info::Language*,\n   std::vector<gold::Version_script_info::Language,\n   std::allocator<gold::Version_script_info::Language> > >, gold::Version_script_info::Language&&)\n    */\n\nvoid __thiscall\nstd::vector<gold::Version_script_info::Language,std::allocator<gold::Version_script_info::Language>>\n::_M_realloc_insert<gold::Version_script_info::Language>\n          (vector<gold::Version_script_info::Language,std::allocator<gold::Version_script_info::Language>>\n           *this,int param_2,undefined4 *param_3)\n\n{\n  uint uVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  \n  iVar7 = *(int *)(this + 4);\n  iVar5 = *(int *)this;\n  iVar8 = param_2 - iVar5;\n  uVar1 = iVar7 - iVar5 >> 2;\n  if (uVar1 == 0) {\n    uVar3 = 1;\nLAB_0022347c:\n    iVar6 = uVar3 << 2;\nLAB_00223350:\n    iVar2 = (*(code *)PTR_operator_new_0043233c)(iVar6);\n    iVar6 = iVar2 + iVar6;\n  }\n  else {\n    uVar3 = uVar1 << 1;\n    if (uVar3 < uVar1) {\n      iVar6 = -4;\n      goto LAB_00223350;\n    }\n    iVar6 = -4;\n    if (0x3fffffff < uVar3) goto LAB_00223350;\n    iVar2 = 0;\n    if (uVar3 != 0) goto LAB_0022347c;\n    iVar6 = 0;\n  }\n  iVar4 = iVar2 + iVar8 + 4;\n  *(undefined4 *)(iVar2 + iVar8) = *param_3;\n  iVar9 = iVar4 + (iVar7 - param_2);\n  if (iVar5 == param_2) {\n    if (iVar7 != iVar5) goto LAB_002233b0;\n  }\n  else {\n    (*(code *)PTR_memmove_004366d8)(iVar2,iVar5,iVar8);\n    if (iVar7 == param_2) goto LAB_00223404;\nLAB_002233b0:\n    (*(code *)PTR_memcpy_00436788)(iVar4,param_2,iVar7 - param_2);\n  }\n  if (iVar5 == 0) {\n    *(int *)this = iVar2;\n    *(int *)(this + 4) = iVar9;\n    *(int *)(this + 8) = iVar6;\n    return;\n  }\nLAB_00223404:\n  (*(code *)PTR_operator_delete_0043228c)(iVar5);\n  *(int *)this = iVar2;\n  *(int *)(this + 4) = iVar9;\n  *(int *)(this + 8) = iVar6;\n  return;\n}\n\n" comment (declaration "void __thiscall\nstd::vector<gold::Version_script_info::Language,std::allocator<gold::Version_script_info::Language>>\n::_M_realloc_insert<gold::Version_script_info::Language>\n          (vector<gold::Version_script_info::Language,std::allocator<gold::Version_script_info::Language>>\n           *this,int param_2,undefined4 *param_3)\n\n{\n  uint uVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::vector<gold::Version_script_info::" identifier : : identifier < identifier : : identifier : :) identifier , (ERROR "std::allocator<gold::Version_script_info::Language>>\n::_M_realloc_insert<gold::Version_script_info::Language>\n          (vector<gold::Version_script_info::Language,std::allocator<gold::Version_script_info::Language>>\n           *this,int param_2,undefined4 *param_3)\n\n{\n  uint" identifier : : identifier < identifier : : identifier : : identifier >> : : identifier < identifier : : identifier : : (function_declarator "Language>\n          (vector<gold::Version_script_info::Language,std::allocator<gold::Version_script_info::Language>>\n           *this,int param_2,undefined4 *param_3)" identifier (ERROR ">" >) (parameter_list "(vector<gold::Version_script_info::Language,std::allocator<gold::Version_script_info::Language>>\n           *this,int param_2,undefined4 *param_3)" ( (parameter_declaration "vector<gold::Version_script_info::Language" type_identifier (ERROR "<gold::Version_script_info::" < identifier : : identifier : :) identifier) , (parameter_declaration "std::allocator<gold::Version_script_info::Language>>\n           *this" type_identifier (ERROR "::allocator<gold::Version_script_info::Language>>" : : 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)) ))) { identifier) identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (expression_statement "iVar7 = *(int *)(this + 4);" (assignment_expression "iVar7 = *(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 "iVar5 = *(int *)this;" (assignment_expression "iVar5 = *(int *)this" identifier = (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar8 = param_2 - iVar5;" (assignment_expression "iVar8 = param_2 - iVar5" identifier = (binary_expression "param_2 - iVar5" identifier - identifier)) ;) (expression_statement "uVar1 = iVar7 - iVar5 >> 2;" (assignment_expression "uVar1 = iVar7 - iVar5 >> 2" identifier = (binary_expression "iVar7 - iVar5 >> 2" (binary_expression "iVar7 - iVar5" identifier - identifier) >> number_literal)) ;) (if_statement "if (uVar1 == 0) {\n    uVar3 = 1;\nLAB_0022347c:\n    iVar6 = uVar3 << 2;\nLAB_00223350:\n    iVar2 = (*(code *)PTR_operator_new_0043233c)(iVar6);\n    iVar6 = iVar2 + iVar6;\n  }\n  else {\n    uVar3 = uVar1 << 1;\n    if (uVar3 < uVar1) {\n      iVar6 = -4;\n      goto LAB_00223350;\n    }\n    iVar6 = -4;\n    if (0x3fffffff < uVar3) goto LAB_00223350;\n    iVar2 = 0;\n    if (uVar3 != 0) goto LAB_0022347c;\n    iVar6 = 0;\n  }" if (parenthesized_expression "(uVar1 == 0)" ( (binary_expression "uVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar3 = 1;\nLAB_0022347c:\n    iVar6 = uVar3 << 2;\nLAB_00223350:\n    iVar2 = (*(code *)PTR_operator_new_0043233c)(iVar6);\n    iVar6 = iVar2 + iVar6;\n  }" { (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0022347c:\n    iVar6 = uVar3 << 2;" statement_identifier : (expression_statement "iVar6 = uVar3 << 2;" (assignment_expression "iVar6 = uVar3 << 2" identifier = (binary_expression "uVar3 << 2" identifier << number_literal)) ;)) (labeled_statement "LAB_00223350:\n    iVar2 = (*(code *)PTR_operator_new_0043233c)(iVar6);" statement_identifier : (expression_statement "iVar2 = (*(code *)PTR_operator_new_0043233c)(iVar6);" (assignment_expression "iVar2 = (*(code *)PTR_operator_new_0043233c)(iVar6)" identifier = (call_expression "(*(code *)PTR_operator_new_0043233c)(iVar6)" (parenthesized_expression "(*(code *)PTR_operator_new_0043233c)" ( (pointer_expression "*(code *)PTR_operator_new_0043233c" * (cast_expression "(code *)PTR_operator_new_0043233c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar6)" ( identifier )))) ;)) (expression_statement "iVar6 = iVar2 + iVar6;" (assignment_expression "iVar6 = iVar2 + iVar6" identifier = (binary_expression "iVar2 + iVar6" identifier + identifier)) ;) }) (else_clause "else {\n    uVar3 = uVar1 << 1;\n    if (uVar3 < uVar1) {\n      iVar6 = -4;\n      goto LAB_00223350;\n    }\n    iVar6 = -4;\n    if (0x3fffffff < uVar3) goto LAB_00223350;\n    iVar2 = 0;\n    if (uVar3 != 0) goto LAB_0022347c;\n    iVar6 = 0;\n  }" else (compound_statement "{\n    uVar3 = uVar1 << 1;\n    if (uVar3 < uVar1) {\n      iVar6 = -4;\n      goto LAB_00223350;\n    }\n    iVar6 = -4;\n    if (0x3fffffff < uVar3) goto LAB_00223350;\n    iVar2 = 0;\n    if (uVar3 != 0) goto LAB_0022347c;\n    iVar6 = 0;\n  }" { (expression_statement "uVar3 = uVar1 << 1;" (assignment_expression "uVar3 = uVar1 << 1" identifier = (binary_expression "uVar1 << 1" identifier << number_literal)) ;) (if_statement "if (uVar3 < uVar1) {\n      iVar6 = -4;\n      goto LAB_00223350;\n    }" if (parenthesized_expression "(uVar3 < uVar1)" ( (binary_expression "uVar3 < uVar1" identifier < identifier) )) (compound_statement "{\n      iVar6 = -4;\n      goto LAB_00223350;\n    }" { (expression_statement "iVar6 = -4;" (assignment_expression "iVar6 = -4" identifier = number_literal) ;) (goto_statement "goto LAB_00223350;" goto statement_identifier ;) })) (expression_statement "iVar6 = -4;" (assignment_expression "iVar6 = -4" identifier = number_literal) ;) (if_statement "if (0x3fffffff < uVar3) goto LAB_00223350;" if (parenthesized_expression "(0x3fffffff < uVar3)" ( (binary_expression "0x3fffffff < uVar3" number_literal < identifier) )) (goto_statement "goto LAB_00223350;" goto statement_identifier ;)) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (if_statement "if (uVar3 != 0) goto LAB_0022347c;" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0022347c;" goto statement_identifier ;)) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }))) (expression_statement "iVar4 = iVar2 + iVar8 + 4;" (assignment_expression "iVar4 = iVar2 + iVar8 + 4" identifier = (binary_expression "iVar2 + iVar8 + 4" (binary_expression "iVar2 + iVar8" identifier + identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar2 + iVar8) = *param_3;" (assignment_expression "*(undefined4 *)(iVar2 + iVar8) = *param_3" (pointer_expression "*(undefined4 *)(iVar2 + iVar8)" * (cast_expression "(undefined4 *)(iVar2 + iVar8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + iVar8)" ( (binary_expression "iVar2 + iVar8" identifier + identifier) )))) = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "iVar9 = iVar4 + (iVar7 - param_2);" (assignment_expression "iVar9 = iVar4 + (iVar7 - param_2)" identifier = (binary_expression "iVar4 + (iVar7 - param_2)" identifier + (parenthesized_expression "(iVar7 - param_2)" ( (binary_expression "iVar7 - param_2" identifier - identifier) )))) ;) (if_statement "if (iVar5 == param_2) {\n    if (iVar7 != iVar5) goto LAB_002233b0;\n  }\n  else {\n    (*(code *)PTR_memmove_004366d8)(iVar2,iVar5,iVar8);\n    if (iVar7 == param_2) goto LAB_00223404;\nLAB_002233b0:\n    (*(code *)PTR_memcpy_00436788)(iVar4,param_2,iVar7 - param_2);\n  }" if (parenthesized_expression "(iVar5 == param_2)" ( (binary_expression "iVar5 == param_2" identifier == identifier) )) (compound_statement "{\n    if (iVar7 != iVar5) goto LAB_002233b0;\n  }" { (if_statement "if (iVar7 != iVar5) goto LAB_002233b0;" if (parenthesized_expression "(iVar7 != iVar5)" ( (binary_expression "iVar7 != iVar5" identifier != identifier) )) (goto_statement "goto LAB_002233b0;" goto statement_identifier ;)) }) (else_clause "else {\n    (*(code *)PTR_memmove_004366d8)(iVar2,iVar5,iVar8);\n    if (iVar7 == param_2) goto LAB_00223404;\nLAB_002233b0:\n    (*(code *)PTR_memcpy_00436788)(iVar4,param_2,iVar7 - param_2);\n  }" else (compound_statement "{\n    (*(code *)PTR_memmove_004366d8)(iVar2,iVar5,iVar8);\n    if (iVar7 == param_2) goto LAB_00223404;\nLAB_002233b0:\n    (*(code *)PTR_memcpy_00436788)(iVar4,param_2,iVar7 - param_2);\n  }" { (expression_statement "(*(code *)PTR_memmove_004366d8)(iVar2,iVar5,iVar8);" (call_expression "(*(code *)PTR_memmove_004366d8)(iVar2,iVar5,iVar8)" (parenthesized_expression "(*(code *)PTR_memmove_004366d8)" ( (pointer_expression "*(code *)PTR_memmove_004366d8" * (cast_expression "(code *)PTR_memmove_004366d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar2,iVar5,iVar8)" ( identifier , identifier , identifier ))) ;) (if_statement "if (iVar7 == param_2) goto LAB_00223404;" if (parenthesized_expression "(iVar7 == param_2)" ( (binary_expression "iVar7 == param_2" identifier == identifier) )) (goto_statement "goto LAB_00223404;" goto statement_identifier ;)) (labeled_statement "LAB_002233b0:\n    (*(code *)PTR_memcpy_00436788)(iVar4,param_2,iVar7 - param_2);" statement_identifier : (expression_statement "(*(code *)PTR_memcpy_00436788)(iVar4,param_2,iVar7 - param_2);" (call_expression "(*(code *)PTR_memcpy_00436788)(iVar4,param_2,iVar7 - param_2)" (parenthesized_expression "(*(code *)PTR_memcpy_00436788)" ( (pointer_expression "*(code *)PTR_memcpy_00436788" * (cast_expression "(code *)PTR_memcpy_00436788" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4,param_2,iVar7 - param_2)" ( identifier , identifier , (binary_expression "iVar7 - param_2" identifier - identifier) ))) ;)) }))) (if_statement "if (iVar5 == 0) {\n    *(int *)this = iVar2;\n    *(int *)(this + 4) = iVar9;\n    *(int *)(this + 8) = iVar6;\n    return;\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    *(int *)this = iVar2;\n    *(int *)(this + 4) = iVar9;\n    *(int *)(this + 8) = iVar6;\n    return;\n  }" { (expression_statement "*(int *)this = iVar2;" (assignment_expression "*(int *)this = iVar2" (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(int *)(this + 4) = iVar9;" (assignment_expression "*(int *)(this + 4) = iVar9" (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) = iVar6;" (assignment_expression "*(int *)(this + 8) = iVar6" (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_00223404:\n  (*(code *)PTR_operator_delete_0043228c)(iVar5);" statement_identifier : (expression_statement "(*(code *)PTR_operator_delete_0043228c)(iVar5);" (call_expression "(*(code *)PTR_operator_delete_0043228c)(iVar5)" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5)" ( identifier ))) ;)) (expression_statement "*(int *)this = iVar2;" (assignment_expression "*(int *)this = iVar2" (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(int *)(this + 4) = iVar9;" (assignment_expression "*(int *)(this + 4) = iVar9" (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) = iVar6;" (assignment_expression "*(int *)(this + 8) = iVar6" (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 prototype: void\n   _M_realloc_insert<gold::Version_script_info::Language>(vector<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n   * this, iterator __position, Language * __args#0) */\n\nvoid __thiscall\nstd::\nvector<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>::\n_M_realloc_insert<gold::Version_script_info::Language>\n          (vector<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n           *this,iterator __position,Language *__args_0)\n\n{\n  uint uVar1;\n  pointer pLVar2;\n  uint uVar3;\n  pointer pLVar4;\n  int iVar5;\n  pointer pLVar6;\n  pointer pLVar7;\n  int iVar8;\n  pointer pLVar9;\n  \n  pLVar7 = (this->\n           super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n           )._M_impl._M_finish;\n  pLVar4 = (this->\n           super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n           )._M_impl._M_start;\n  iVar8 = (int)__position._M_current - (int)pLVar4;\n  uVar1 = (int)pLVar7 - (int)pLVar4 >> 2;\n  if (uVar1 == 0) {\n    uVar3 = 1;\nLAB_0022347c:\n    iVar5 = uVar3 << 2;\nLAB_00223350:\n    pLVar2 = (pointer)(*(code *)PTR_operator_new_0043233c)(iVar5);\n    pLVar6 = (pointer)((int)pLVar2 + iVar5);\n  }\n  else {\n    uVar3 = uVar1 << 1;\n    if (uVar3 < uVar1) {\n      iVar5 = -4;\n      goto LAB_00223350;\n    }\n    iVar5 = -4;\n    if (0x3fffffff < uVar3) goto LAB_00223350;\n    pLVar2 = (pointer)0x0;\n    if (uVar3 != 0) goto LAB_0022347c;\n    pLVar6 = (pointer)0x0;\n  }\n  iVar5 = (int)pLVar2 + iVar8 + 4;\n  *(Language *)((int)pLVar2 + iVar8) = *__args_0;\n  pLVar9 = (pointer)(iVar5 + ((int)pLVar7 - (int)__position._M_current));\n  if (pLVar4 == __position._M_current) {\n    if (pLVar7 != pLVar4) goto LAB_002233b0;\n  }\n  else {\n    (*(code *)PTR_memmove_004366d8)(pLVar2,pLVar4,iVar8);\n    if (pLVar7 == __position._M_current) goto LAB_00223404;\nLAB_002233b0:\n    (*(code *)PTR_memcpy_00436788)\n              (iVar5,__position._M_current,(int)pLVar7 - (int)__position._M_current);\n  }\n  if (pLVar4 == (pointer)0x0) {\n    (this->\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    )._M_impl._M_start = pLVar2;\n    (this->\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    )._M_impl._M_finish = pLVar9;\n    (this->\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    )._M_impl._M_end_of_storage = pLVar6;\n    return;\n  }\nLAB_00223404:\n  (*(code *)PTR_operator_delete_0043228c)(pLVar4);\n  (this->\n  super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n  )._M_impl._M_start = pLVar2;\n  (this->\n  super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n  )._M_impl._M_finish = pLVar9;\n  (this->\n  super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n  )._M_impl._M_end_of_storage = pLVar6;\n  return;\n}\n\n" comment (declaration "void __thiscall\nstd::\nvector<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>::\n_M_realloc_insert<gold::Version_script_info::Language>\n          (vector<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n           *this,iterator __position,Language *__args_0)\n\n{\n  uint uVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::\nvector<gold::Version_script_info::" identifier : : identifier < identifier : : identifier : :) identifier , (ERROR "_std::allocator<gold::Version_script_info::Language>_>::\n_M_realloc_insert<gold::Version_script_info::Language>\n          (vector<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n           *this,iterator __position,Language *__args_0)\n\n{\n  uint" identifier : : identifier < identifier : : identifier : : identifier > identifier > : : identifier < identifier : : identifier : : (function_declarator "Language>\n          (vector<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n           *this,iterator __position,Language *__args_0)" identifier (ERROR ">" >) (parameter_list "(vector<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n           *this,iterator __position,Language *__args_0)" ( (parameter_declaration "vector<gold::Version_script_info::Language" type_identifier (ERROR "<gold::Version_script_info::" < identifier : : identifier : :) identifier) , (parameter_declaration "_std::allocator<gold::Version_script_info::Language>_>\n           *this" type_identifier (ERROR "::allocator<gold::Version_script_info::Language>_>" : : identifier < identifier : : identifier : : identifier > identifier >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "iterator __position" type_identifier identifier) , (parameter_declaration "Language *__args_0" type_identifier (pointer_declarator "*__args_0" * identifier)) ))) { identifier) identifier ;) (declaration "pointer pLVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "pointer pLVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "pointer pLVar6;" type_identifier identifier ;) (declaration "pointer pLVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "pointer pLVar9;" type_identifier identifier ;) (expression_statement "pLVar7 = (this->\n           super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n           )._M_impl._M_finish;" (assignment_expression "pLVar7 = (this->\n           super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n           )._M_impl._M_finish" identifier = (field_expression "(this->\n           super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n           )._M_impl._M_finish" (field_expression "(this->\n           super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n           )._M_impl" (parenthesized_expression "(this->\n           super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n           )" ( (ERROR "this->\n           super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::" (comma_expression "this->\n           super__Vector_base<gold::Version_script_info::Language,_std" (binary_expression "this->\n           super__Vector_base<gold" (field_expression "this->\n           super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Version_script_info::Language" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Language>_>" (binary_expression "Language>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "pLVar4 = (this->\n           super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n           )._M_impl._M_start;" (assignment_expression "pLVar4 = (this->\n           super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n           )._M_impl._M_start" identifier = (field_expression "(this->\n           super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n           )._M_impl._M_start" (field_expression "(this->\n           super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n           )._M_impl" (parenthesized_expression "(this->\n           super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n           )" ( (ERROR "this->\n           super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::" (comma_expression "this->\n           super__Vector_base<gold::Version_script_info::Language,_std" (binary_expression "this->\n           super__Vector_base<gold" (field_expression "this->\n           super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Version_script_info::Language" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Language>_>" (binary_expression "Language>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "iVar8 = (int)__position._M_current - (int)pLVar4;" (assignment_expression "iVar8 = (int)__position._M_current - (int)pLVar4" identifier = (binary_expression "(int)__position._M_current - (int)pLVar4" (cast_expression "(int)__position._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__position._M_current" identifier . field_identifier)) - (cast_expression "(int)pLVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar1 = (int)pLVar7 - (int)pLVar4 >> 2;" (assignment_expression "uVar1 = (int)pLVar7 - (int)pLVar4 >> 2" identifier = (binary_expression "(int)pLVar7 - (int)pLVar4 >> 2" (binary_expression "(int)pLVar7 - (int)pLVar4" (cast_expression "(int)pLVar7" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pLVar4" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (if_statement "if (uVar1 == 0) {\n    uVar3 = 1;\nLAB_0022347c:\n    iVar5 = uVar3 << 2;\nLAB_00223350:\n    pLVar2 = (pointer)(*(code *)PTR_operator_new_0043233c)(iVar5);\n    pLVar6 = (pointer)((int)pLVar2 + iVar5);\n  }\n  else {\n    uVar3 = uVar1 << 1;\n    if (uVar3 < uVar1) {\n      iVar5 = -4;\n      goto LAB_00223350;\n    }\n    iVar5 = -4;\n    if (0x3fffffff < uVar3) goto LAB_00223350;\n    pLVar2 = (pointer)0x0;\n    if (uVar3 != 0) goto LAB_0022347c;\n    pLVar6 = (pointer)0x0;\n  }" if (parenthesized_expression "(uVar1 == 0)" ( (binary_expression "uVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar3 = 1;\nLAB_0022347c:\n    iVar5 = uVar3 << 2;\nLAB_00223350:\n    pLVar2 = (pointer)(*(code *)PTR_operator_new_0043233c)(iVar5);\n    pLVar6 = (pointer)((int)pLVar2 + iVar5);\n  }" { (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0022347c:\n    iVar5 = uVar3 << 2;" statement_identifier : (expression_statement "iVar5 = uVar3 << 2;" (assignment_expression "iVar5 = uVar3 << 2" identifier = (binary_expression "uVar3 << 2" identifier << number_literal)) ;)) (labeled_statement "LAB_00223350:\n    pLVar2 = (pointer)(*(code *)PTR_operator_new_0043233c)(iVar5);" statement_identifier : (expression_statement "pLVar2 = (pointer)(*(code *)PTR_operator_new_0043233c)(iVar5);" (assignment_expression "pLVar2 = (pointer)(*(code *)PTR_operator_new_0043233c)(iVar5)" identifier = (call_expression "(pointer)(*(code *)PTR_operator_new_0043233c)(iVar5)" (call_expression "(pointer)(*(code *)PTR_operator_new_0043233c)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "(*(code *)PTR_operator_new_0043233c)" ( (pointer_expression "*(code *)PTR_operator_new_0043233c" * (cast_expression "(code *)PTR_operator_new_0043233c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) (argument_list "(iVar5)" ( identifier )))) ;)) (expression_statement "pLVar6 = (pointer)((int)pLVar2 + iVar5);" (assignment_expression "pLVar6 = (pointer)((int)pLVar2 + iVar5)" identifier = (call_expression "(pointer)((int)pLVar2 + iVar5)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((int)pLVar2 + iVar5)" ( (binary_expression "(int)pLVar2 + iVar5" (cast_expression "(int)pLVar2" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n    uVar3 = uVar1 << 1;\n    if (uVar3 < uVar1) {\n      iVar5 = -4;\n      goto LAB_00223350;\n    }\n    iVar5 = -4;\n    if (0x3fffffff < uVar3) goto LAB_00223350;\n    pLVar2 = (pointer)0x0;\n    if (uVar3 != 0) goto LAB_0022347c;\n    pLVar6 = (pointer)0x0;\n  }" else (compound_statement "{\n    uVar3 = uVar1 << 1;\n    if (uVar3 < uVar1) {\n      iVar5 = -4;\n      goto LAB_00223350;\n    }\n    iVar5 = -4;\n    if (0x3fffffff < uVar3) goto LAB_00223350;\n    pLVar2 = (pointer)0x0;\n    if (uVar3 != 0) goto LAB_0022347c;\n    pLVar6 = (pointer)0x0;\n  }" { (expression_statement "uVar3 = uVar1 << 1;" (assignment_expression "uVar3 = uVar1 << 1" identifier = (binary_expression "uVar1 << 1" identifier << number_literal)) ;) (if_statement "if (uVar3 < uVar1) {\n      iVar5 = -4;\n      goto LAB_00223350;\n    }" if (parenthesized_expression "(uVar3 < uVar1)" ( (binary_expression "uVar3 < uVar1" identifier < identifier) )) (compound_statement "{\n      iVar5 = -4;\n      goto LAB_00223350;\n    }" { (expression_statement "iVar5 = -4;" (assignment_expression "iVar5 = -4" identifier = number_literal) ;) (goto_statement "goto LAB_00223350;" goto statement_identifier ;) })) (expression_statement "iVar5 = -4;" (assignment_expression "iVar5 = -4" identifier = number_literal) ;) (if_statement "if (0x3fffffff < uVar3) goto LAB_00223350;" if (parenthesized_expression "(0x3fffffff < uVar3)" ( (binary_expression "0x3fffffff < uVar3" number_literal < identifier) )) (goto_statement "goto LAB_00223350;" goto statement_identifier ;)) (expression_statement "pLVar2 = (pointer)0x0;" (assignment_expression "pLVar2 = (pointer)0x0" identifier = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (if_statement "if (uVar3 != 0) goto LAB_0022347c;" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0022347c;" goto statement_identifier ;)) (expression_statement "pLVar6 = (pointer)0x0;" (assignment_expression "pLVar6 = (pointer)0x0" identifier = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) }))) (expression_statement "iVar5 = (int)pLVar2 + iVar8 + 4;" (assignment_expression "iVar5 = (int)pLVar2 + iVar8 + 4" identifier = (binary_expression "(int)pLVar2 + iVar8 + 4" (binary_expression "(int)pLVar2 + iVar8" (cast_expression "(int)pLVar2" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal)) ;) (expression_statement "*(Language *)((int)pLVar2 + iVar8) = *__args_0;" (assignment_expression "*(Language *)((int)pLVar2 + iVar8) = *__args_0" (pointer_expression "*(Language *)((int)pLVar2 + iVar8)" * (cast_expression "(Language *)((int)pLVar2 + iVar8)" ( (type_descriptor "Language *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pLVar2 + iVar8)" ( (binary_expression "(int)pLVar2 + iVar8" (cast_expression "(int)pLVar2" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = (pointer_expression "*__args_0" * identifier)) ;) (expression_statement "pLVar9 = (pointer)(iVar5 + ((int)pLVar7 - (int)__position._M_current));" (assignment_expression "pLVar9 = (pointer)(iVar5 + ((int)pLVar7 - (int)__position._M_current))" identifier = (call_expression "(pointer)(iVar5 + ((int)pLVar7 - (int)__position._M_current))" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "(iVar5 + ((int)pLVar7 - (int)__position._M_current))" ( (binary_expression "iVar5 + ((int)pLVar7 - (int)__position._M_current)" identifier + (parenthesized_expression "((int)pLVar7 - (int)__position._M_current)" ( (binary_expression "(int)pLVar7 - (int)__position._M_current" (cast_expression "(int)pLVar7" ( (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 (pLVar4 == __position._M_current) {\n    if (pLVar7 != pLVar4) goto LAB_002233b0;\n  }\n  else {\n    (*(code *)PTR_memmove_004366d8)(pLVar2,pLVar4,iVar8);\n    if (pLVar7 == __position._M_current) goto LAB_00223404;\nLAB_002233b0:\n    (*(code *)PTR_memcpy_00436788)\n              (iVar5,__position._M_current,(int)pLVar7 - (int)__position._M_current);\n  }" if (parenthesized_expression "(pLVar4 == __position._M_current)" ( (binary_expression "pLVar4 == __position._M_current" identifier == (field_expression "__position._M_current" identifier . field_identifier)) )) (compound_statement "{\n    if (pLVar7 != pLVar4) goto LAB_002233b0;\n  }" { (if_statement "if (pLVar7 != pLVar4) goto LAB_002233b0;" if (parenthesized_expression "(pLVar7 != pLVar4)" ( (binary_expression "pLVar7 != pLVar4" identifier != identifier) )) (goto_statement "goto LAB_002233b0;" goto statement_identifier ;)) }) (else_clause "else {\n    (*(code *)PTR_memmove_004366d8)(pLVar2,pLVar4,iVar8);\n    if (pLVar7 == __position._M_current) goto LAB_00223404;\nLAB_002233b0:\n    (*(code *)PTR_memcpy_00436788)\n              (iVar5,__position._M_current,(int)pLVar7 - (int)__position._M_current);\n  }" else (compound_statement "{\n    (*(code *)PTR_memmove_004366d8)(pLVar2,pLVar4,iVar8);\n    if (pLVar7 == __position._M_current) goto LAB_00223404;\nLAB_002233b0:\n    (*(code *)PTR_memcpy_00436788)\n              (iVar5,__position._M_current,(int)pLVar7 - (int)__position._M_current);\n  }" { (expression_statement "(*(code *)PTR_memmove_004366d8)(pLVar2,pLVar4,iVar8);" (call_expression "(*(code *)PTR_memmove_004366d8)(pLVar2,pLVar4,iVar8)" (parenthesized_expression "(*(code *)PTR_memmove_004366d8)" ( (pointer_expression "*(code *)PTR_memmove_004366d8" * (cast_expression "(code *)PTR_memmove_004366d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pLVar2,pLVar4,iVar8)" ( identifier , identifier , identifier ))) ;) (if_statement "if (pLVar7 == __position._M_current) goto LAB_00223404;" if (parenthesized_expression "(pLVar7 == __position._M_current)" ( (binary_expression "pLVar7 == __position._M_current" identifier == (field_expression "__position._M_current" identifier . field_identifier)) )) (goto_statement "goto LAB_00223404;" goto statement_identifier ;)) (labeled_statement "LAB_002233b0:\n    (*(code *)PTR_memcpy_00436788)\n              (iVar5,__position._M_current,(int)pLVar7 - (int)__position._M_current);" statement_identifier : (expression_statement "(*(code *)PTR_memcpy_00436788)\n              (iVar5,__position._M_current,(int)pLVar7 - (int)__position._M_current);" (call_expression "(*(code *)PTR_memcpy_00436788)\n              (iVar5,__position._M_current,(int)pLVar7 - (int)__position._M_current)" (parenthesized_expression "(*(code *)PTR_memcpy_00436788)" ( (pointer_expression "*(code *)PTR_memcpy_00436788" * (cast_expression "(code *)PTR_memcpy_00436788" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5,__position._M_current,(int)pLVar7 - (int)__position._M_current)" ( identifier , (field_expression "__position._M_current" identifier . field_identifier) , (binary_expression "(int)pLVar7 - (int)__position._M_current" (cast_expression "(int)pLVar7" ( (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 (pLVar4 == (pointer)0x0) {\n    (this->\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    )._M_impl._M_start = pLVar2;\n    (this->\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    )._M_impl._M_finish = pLVar9;\n    (this->\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    )._M_impl._M_end_of_storage = pLVar6;\n    return;\n  }" if (parenthesized_expression "(pLVar4 == (pointer)0x0)" ( (binary_expression "pLVar4 == (pointer)0x0" identifier == (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n    (this->\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    )._M_impl._M_start = pLVar2;\n    (this->\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    )._M_impl._M_finish = pLVar9;\n    (this->\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    )._M_impl._M_end_of_storage = pLVar6;\n    return;\n  }" { (expression_statement "(this->\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    )._M_impl._M_start = pLVar2;" (assignment_expression "(this->\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    )._M_impl._M_start = pLVar2" (field_expression "(this->\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    )._M_impl._M_start" (field_expression "(this->\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    )._M_impl" (parenthesized_expression "(this->\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    )" ( (ERROR "this->\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::" (comma_expression "this->\n    super__Vector_base<gold::Version_script_info::Language,_std" (binary_expression "this->\n    super__Vector_base<gold" (field_expression "this->\n    super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Version_script_info::Language" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Language>_>" (binary_expression "Language>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(this->\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    )._M_impl._M_finish = pLVar9;" (assignment_expression "(this->\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    )._M_impl._M_finish = pLVar9" (field_expression "(this->\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    )._M_impl._M_finish" (field_expression "(this->\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    )._M_impl" (parenthesized_expression "(this->\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    )" ( (ERROR "this->\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::" (comma_expression "this->\n    super__Vector_base<gold::Version_script_info::Language,_std" (binary_expression "this->\n    super__Vector_base<gold" (field_expression "this->\n    super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Version_script_info::Language" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Language>_>" (binary_expression "Language>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(this->\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    )._M_impl._M_end_of_storage = pLVar6;" (assignment_expression "(this->\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    )._M_impl._M_end_of_storage = pLVar6" (field_expression "(this->\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    )._M_impl._M_end_of_storage" (field_expression "(this->\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    )._M_impl" (parenthesized_expression "(this->\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n    )" ( (ERROR "this->\n    super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::" (comma_expression "this->\n    super__Vector_base<gold::Version_script_info::Language,_std" (binary_expression "this->\n    super__Vector_base<gold" (field_expression "this->\n    super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Version_script_info::Language" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Language>_>" (binary_expression "Language>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) = identifier) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_00223404:\n  (*(code *)PTR_operator_delete_0043228c)(pLVar4);" statement_identifier : (expression_statement "(*(code *)PTR_operator_delete_0043228c)(pLVar4);" (call_expression "(*(code *)PTR_operator_delete_0043228c)(pLVar4)" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pLVar4)" ( identifier ))) ;)) (expression_statement "(this->\n  super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n  )._M_impl._M_start = pLVar2;" (assignment_expression "(this->\n  super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n  )._M_impl._M_start = pLVar2" (field_expression "(this->\n  super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n  )._M_impl._M_start" (field_expression "(this->\n  super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n  )._M_impl" (parenthesized_expression "(this->\n  super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n  )" ( (ERROR "this->\n  super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::" (comma_expression "this->\n  super__Vector_base<gold::Version_script_info::Language,_std" (binary_expression "this->\n  super__Vector_base<gold" (field_expression "this->\n  super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Version_script_info::Language" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Language>_>" (binary_expression "Language>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(this->\n  super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n  )._M_impl._M_finish = pLVar9;" (assignment_expression "(this->\n  super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n  )._M_impl._M_finish = pLVar9" (field_expression "(this->\n  super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n  )._M_impl._M_finish" (field_expression "(this->\n  super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n  )._M_impl" (parenthesized_expression "(this->\n  super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n  )" ( (ERROR "this->\n  super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::" (comma_expression "this->\n  super__Vector_base<gold::Version_script_info::Language,_std" (binary_expression "this->\n  super__Vector_base<gold" (field_expression "this->\n  super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Version_script_info::Language" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Language>_>" (binary_expression "Language>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(this->\n  super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n  )._M_impl._M_end_of_storage = pLVar6;" (assignment_expression "(this->\n  super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n  )._M_impl._M_end_of_storage = pLVar6" (field_expression "(this->\n  super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n  )._M_impl._M_end_of_storage" (field_expression "(this->\n  super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n  )._M_impl" (parenthesized_expression "(this->\n  super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>\n  )" ( (ERROR "this->\n  super__Vector_base<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::" (comma_expression "this->\n  super__Vector_base<gold::Version_script_info::Language,_std" (binary_expression "this->\n  super__Vector_base<gold" (field_expression "this->\n  super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Version_script_info::Language" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Language>_>" (binary_expression "Language>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) = identifier) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void __thiscall\nstd::vector<gold::Version_script_info::Language,std::allocator<gold::Version_script_info::Language>>\n::_M_realloc_insert<gold::Version_script_info::Language>\n          (vector<gold::Version_script_info::Language,std::allocator<gold::Version_script_info::Language>>\n           *this,int param_2,undefined4 *param_3)\n\n{\n  uint uVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  \n  iVar7 = *(int *)(this + 4);\n  iVar5 = *(int *)this;\n  iVar8 = param_2 - iVar5;\n  uVar1 = iVar7 - iVar5 >> 2;\n  if (uVar1 == 0) {\n    uVar3 = 1;\nLAB_0022347c:\n    iVar6 = uVar3 << 2;\nLAB_00223350:\n    iVar2 = (*(code *)PTR_operator_new_0043233c)(iVar6);\n    iVar6 = iVar2 + iVar6;\n  }\n  else {\n    uVar3 = uVar1 << 1;\n    if (uVar3 < uVar1) {\n      iVar6 = -4;\n      goto LAB_00223350;\n    }\n    iVar6 = -4;\n    if (0x3fffffff < uVar3) goto LAB_00223350;\n    iVar2 = 0;\n    if (uVar3 != 0) goto LAB_0022347c;\n    iVar6 = 0;\n  }\n  iVar4 = iVar2 + iVar8 + 4;\n  *(undefined4 *)(iVar2 + iVar8) = *param_3;\n  iVar9 = iVar4 + (iVar7 - param_2);\n  if (iVar5 == param_2) {\n    if (iVar7 != iVar5) goto LAB_002233b0;\n  }\n  else {\n    (*(code *)PTR_memmove_004366d8)(iVar2,iVar5,iVar8);\n    if (iVar7 == param_2) goto LAB_00223404;\nLAB_002233b0:\n    (*(code *)PTR_memcpy_00436788)(iVar4,param_2,iVar7 - param_2);\n  }\n  if (iVar5 == 0) {\n    *(int *)this = iVar2;\n    *(int *)(this + 4) = iVar9;\n    *(int *)(this + 8) = iVar6;\n    return;\n  }\nLAB_00223404:\n  (*(code *)PTR_operator_delete_0043228c)(iVar5);\n  *(int *)this = iVar2;\n  *(int *)(this + 4) = iVar9;\n  *(int *)(this + 8) = iVar6;\n  return;\n}\n\n" (declaration "void __thiscall\nstd::vector<gold::Version_script_info::Language,std::allocator<gold::Version_script_info::Language>>\n::_M_realloc_insert<gold::Version_script_info::Language>\n          (vector<gold::Version_script_info::Language,std::allocator<gold::Version_script_info::Language>>\n           *this,int param_2,undefined4 *param_3)\n\n{\n  uint uVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::vector<gold::Version_script_info::" identifier : : identifier < identifier : : identifier : :) identifier , (ERROR "std::allocator<gold::Version_script_info::Language>>\n::_M_realloc_insert<gold::Version_script_info::Language>\n          (vector<gold::Version_script_info::Language,std::allocator<gold::Version_script_info::Language>>\n           *this,int param_2,undefined4 *param_3)\n\n{\n  uint" identifier : : identifier < identifier : : identifier : : identifier >> : : identifier < identifier : : identifier : : (function_declarator "Language>\n          (vector<gold::Version_script_info::Language,std::allocator<gold::Version_script_info::Language>>\n           *this,int param_2,undefined4 *param_3)" identifier (ERROR ">" >) (parameter_list "(vector<gold::Version_script_info::Language,std::allocator<gold::Version_script_info::Language>>\n           *this,int param_2,undefined4 *param_3)" ( (parameter_declaration "vector<gold::Version_script_info::Language" type_identifier (ERROR "<gold::Version_script_info::" < identifier : : identifier : :) identifier) , (parameter_declaration "std::allocator<gold::Version_script_info::Language>>\n           *this" type_identifier (ERROR "::allocator<gold::Version_script_info::Language>>" : : 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)) ))) { identifier) identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (expression_statement "iVar7 = *(int *)(this + 4);" (assignment_expression "iVar7 = *(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 "iVar5 = *(int *)this;" (assignment_expression "iVar5 = *(int *)this" identifier = (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar8 = param_2 - iVar5;" (assignment_expression "iVar8 = param_2 - iVar5" identifier = (binary_expression "param_2 - iVar5" identifier - identifier)) ;) (expression_statement "uVar1 = iVar7 - iVar5 >> 2;" (assignment_expression "uVar1 = iVar7 - iVar5 >> 2" identifier = (binary_expression "iVar7 - iVar5 >> 2" (binary_expression "iVar7 - iVar5" identifier - identifier) >> number_literal)) ;) (if_statement "if (uVar1 == 0) {\n    uVar3 = 1;\nLAB_0022347c:\n    iVar6 = uVar3 << 2;\nLAB_00223350:\n    iVar2 = (*(code *)PTR_operator_new_0043233c)(iVar6);\n    iVar6 = iVar2 + iVar6;\n  }\n  else {\n    uVar3 = uVar1 << 1;\n    if (uVar3 < uVar1) {\n      iVar6 = -4;\n      goto LAB_00223350;\n    }\n    iVar6 = -4;\n    if (0x3fffffff < uVar3) goto LAB_00223350;\n    iVar2 = 0;\n    if (uVar3 != 0) goto LAB_0022347c;\n    iVar6 = 0;\n  }" if (parenthesized_expression "(uVar1 == 0)" ( (binary_expression "uVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar3 = 1;\nLAB_0022347c:\n    iVar6 = uVar3 << 2;\nLAB_00223350:\n    iVar2 = (*(code *)PTR_operator_new_0043233c)(iVar6);\n    iVar6 = iVar2 + iVar6;\n  }" { (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0022347c:\n    iVar6 = uVar3 << 2;" statement_identifier : (expression_statement "iVar6 = uVar3 << 2;" (assignment_expression "iVar6 = uVar3 << 2" identifier = (binary_expression "uVar3 << 2" identifier << number_literal)) ;)) (labeled_statement "LAB_00223350:\n    iVar2 = (*(code *)PTR_operator_new_0043233c)(iVar6);" statement_identifier : (expression_statement "iVar2 = (*(code *)PTR_operator_new_0043233c)(iVar6);" (assignment_expression "iVar2 = (*(code *)PTR_operator_new_0043233c)(iVar6)" identifier = (call_expression "(*(code *)PTR_operator_new_0043233c)(iVar6)" (parenthesized_expression "(*(code *)PTR_operator_new_0043233c)" ( (pointer_expression "*(code *)PTR_operator_new_0043233c" * (cast_expression "(code *)PTR_operator_new_0043233c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar6)" ( identifier )))) ;)) (expression_statement "iVar6 = iVar2 + iVar6;" (assignment_expression "iVar6 = iVar2 + iVar6" identifier = (binary_expression "iVar2 + iVar6" identifier + identifier)) ;) }) (else_clause "else {\n    uVar3 = uVar1 << 1;\n    if (uVar3 < uVar1) {\n      iVar6 = -4;\n      goto LAB_00223350;\n    }\n    iVar6 = -4;\n    if (0x3fffffff < uVar3) goto LAB_00223350;\n    iVar2 = 0;\n    if (uVar3 != 0) goto LAB_0022347c;\n    iVar6 = 0;\n  }" else (compound_statement "{\n    uVar3 = uVar1 << 1;\n    if (uVar3 < uVar1) {\n      iVar6 = -4;\n      goto LAB_00223350;\n    }\n    iVar6 = -4;\n    if (0x3fffffff < uVar3) goto LAB_00223350;\n    iVar2 = 0;\n    if (uVar3 != 0) goto LAB_0022347c;\n    iVar6 = 0;\n  }" { (expression_statement "uVar3 = uVar1 << 1;" (assignment_expression "uVar3 = uVar1 << 1" identifier = (binary_expression "uVar1 << 1" identifier << number_literal)) ;) (if_statement "if (uVar3 < uVar1) {\n      iVar6 = -4;\n      goto LAB_00223350;\n    }" if (parenthesized_expression "(uVar3 < uVar1)" ( (binary_expression "uVar3 < uVar1" identifier < identifier) )) (compound_statement "{\n      iVar6 = -4;\n      goto LAB_00223350;\n    }" { (expression_statement "iVar6 = -4;" (assignment_expression "iVar6 = -4" identifier = number_literal) ;) (goto_statement "goto LAB_00223350;" goto statement_identifier ;) })) (expression_statement "iVar6 = -4;" (assignment_expression "iVar6 = -4" identifier = number_literal) ;) (if_statement "if (0x3fffffff < uVar3) goto LAB_00223350;" if (parenthesized_expression "(0x3fffffff < uVar3)" ( (binary_expression "0x3fffffff < uVar3" number_literal < identifier) )) (goto_statement "goto LAB_00223350;" goto statement_identifier ;)) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (if_statement "if (uVar3 != 0) goto LAB_0022347c;" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0022347c;" goto statement_identifier ;)) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }))) (expression_statement "iVar4 = iVar2 + iVar8 + 4;" (assignment_expression "iVar4 = iVar2 + iVar8 + 4" identifier = (binary_expression "iVar2 + iVar8 + 4" (binary_expression "iVar2 + iVar8" identifier + identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar2 + iVar8) = *param_3;" (assignment_expression "*(undefined4 *)(iVar2 + iVar8) = *param_3" (pointer_expression "*(undefined4 *)(iVar2 + iVar8)" * (cast_expression "(undefined4 *)(iVar2 + iVar8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + iVar8)" ( (binary_expression "iVar2 + iVar8" identifier + identifier) )))) = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "iVar9 = iVar4 + (iVar7 - param_2);" (assignment_expression "iVar9 = iVar4 + (iVar7 - param_2)" identifier = (binary_expression "iVar4 + (iVar7 - param_2)" identifier + (parenthesized_expression "(iVar7 - param_2)" ( (binary_expression "iVar7 - param_2" identifier - identifier) )))) ;) (if_statement "if (iVar5 == param_2) {\n    if (iVar7 != iVar5) goto LAB_002233b0;\n  }\n  else {\n    (*(code *)PTR_memmove_004366d8)(iVar2,iVar5,iVar8);\n    if (iVar7 == param_2) goto LAB_00223404;\nLAB_002233b0:\n    (*(code *)PTR_memcpy_00436788)(iVar4,param_2,iVar7 - param_2);\n  }" if (parenthesized_expression "(iVar5 == param_2)" ( (binary_expression "iVar5 == param_2" identifier == identifier) )) (compound_statement "{\n    if (iVar7 != iVar5) goto LAB_002233b0;\n  }" { (if_statement "if (iVar7 != iVar5) goto LAB_002233b0;" if (parenthesized_expression "(iVar7 != iVar5)" ( (binary_expression "iVar7 != iVar5" identifier != identifier) )) (goto_statement "goto LAB_002233b0;" goto statement_identifier ;)) }) (else_clause "else {\n    (*(code *)PTR_memmove_004366d8)(iVar2,iVar5,iVar8);\n    if (iVar7 == param_2) goto LAB_00223404;\nLAB_002233b0:\n    (*(code *)PTR_memcpy_00436788)(iVar4,param_2,iVar7 - param_2);\n  }" else (compound_statement "{\n    (*(code *)PTR_memmove_004366d8)(iVar2,iVar5,iVar8);\n    if (iVar7 == param_2) goto LAB_00223404;\nLAB_002233b0:\n    (*(code *)PTR_memcpy_00436788)(iVar4,param_2,iVar7 - param_2);\n  }" { (expression_statement "(*(code *)PTR_memmove_004366d8)(iVar2,iVar5,iVar8);" (call_expression "(*(code *)PTR_memmove_004366d8)(iVar2,iVar5,iVar8)" (parenthesized_expression "(*(code *)PTR_memmove_004366d8)" ( (pointer_expression "*(code *)PTR_memmove_004366d8" * (cast_expression "(code *)PTR_memmove_004366d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar2,iVar5,iVar8)" ( identifier , identifier , identifier ))) ;) (if_statement "if (iVar7 == param_2) goto LAB_00223404;" if (parenthesized_expression "(iVar7 == param_2)" ( (binary_expression "iVar7 == param_2" identifier == identifier) )) (goto_statement "goto LAB_00223404;" goto statement_identifier ;)) (labeled_statement "LAB_002233b0:\n    (*(code *)PTR_memcpy_00436788)(iVar4,param_2,iVar7 - param_2);" statement_identifier : (expression_statement "(*(code *)PTR_memcpy_00436788)(iVar4,param_2,iVar7 - param_2);" (call_expression "(*(code *)PTR_memcpy_00436788)(iVar4,param_2,iVar7 - param_2)" (parenthesized_expression "(*(code *)PTR_memcpy_00436788)" ( (pointer_expression "*(code *)PTR_memcpy_00436788" * (cast_expression "(code *)PTR_memcpy_00436788" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4,param_2,iVar7 - param_2)" ( identifier , identifier , (binary_expression "iVar7 - param_2" identifier - identifier) ))) ;)) }))) (if_statement "if (iVar5 == 0) {\n    *(int *)this = iVar2;\n    *(int *)(this + 4) = iVar9;\n    *(int *)(this + 8) = iVar6;\n    return;\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    *(int *)this = iVar2;\n    *(int *)(this + 4) = iVar9;\n    *(int *)(this + 8) = iVar6;\n    return;\n  }" { (expression_statement "*(int *)this = iVar2;" (assignment_expression "*(int *)this = iVar2" (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(int *)(this + 4) = iVar9;" (assignment_expression "*(int *)(this + 4) = iVar9" (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) = iVar6;" (assignment_expression "*(int *)(this + 8) = iVar6" (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_00223404:\n  (*(code *)PTR_operator_delete_0043228c)(iVar5);" statement_identifier : (expression_statement "(*(code *)PTR_operator_delete_0043228c)(iVar5);" (call_expression "(*(code *)PTR_operator_delete_0043228c)(iVar5)" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5)" ( identifier ))) ;)) (expression_statement "*(int *)this = iVar2;" (assignment_expression "*(int *)this = iVar2" (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(int *)(this + 4) = iVar9;" (assignment_expression "*(int *)(this + 4) = iVar9" (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) = iVar6;" (assignment_expression "*(int *)(this + 8) = iVar6" (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)) ))) { IDENT) 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 IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - IDENT) >> LIT)) ;) (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 = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - 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::Version_script_info::Language,std::allocator<gold::Version_script_info::Language>>\n::_M_realloc_insert<gold::Version_script_info::Language>\n          (vector<gold::Version_script_info::Language,std::allocator<gold::Version_script_info::Language>>\n           *this,int param_2,undefined4 *param_3)\n\n{\n  uint uVar1;" (primitive_type "void") (ms_call_modifier "__thiscall" (__thiscall "__thiscall")) (ERROR "std::vector<gold::Version_script_info::" (identifier "std") (: ":") (: ":") (identifier "vector") (< "<") (identifier "gold") (: ":") (: ":") (identifier "Version_script_info") (: ":") (: ":")) (identifier "Language") (, ",") (ERROR "std::allocator<gold::Version_script_info::Language>>\n::_M_realloc_insert<gold::Version_script_info::Language>\n          (vector<gold::Version_script_info::Language,std::allocator<gold::Version_script_info::Language>>\n           *this,int param_2,undefined4 *param_3)\n\n{\n  uint" (identifier "std") (: ":") (: ":") (identifier "allocator") (< "<") (identifier "gold") (: ":") (: ":") (identifier "Version_script_info") (: ":") (: ":") (identifier "Language") (>> ">>") (: ":") (: ":") (identifier "_M_realloc_insert") (< "<") (identifier "gold") (: ":") (: ":") (identifier "Version_script_info") (: ":") (: ":") (function_declarator "Language>\n          (vector<gold::Version_script_info::Language,std::allocator<gold::Version_script_info::Language>>\n           *this,int param_2,undefined4 *param_3)" (identifier "Language") (ERROR ">" (> ">")) (parameter_list "(vector<gold::Version_script_info::Language,std::allocator<gold::Version_script_info::Language>>\n           *this,int param_2,undefined4 *param_3)" (( "(") (parameter_declaration "vector<gold::Version_script_info::Language" (type_identifier "vector") (ERROR "<gold::Version_script_info::" (< "<") (identifier "gold") (: ":") (: ":") (identifier "Version_script_info") (: ":") (: ":")) (identifier "Language")) (, ",") (parameter_declaration "std::allocator<gold::Version_script_info::Language>>\n           *this" (type_identifier "std") (ERROR "::allocator<gold::Version_script_info::Language>>" (: ":") (: ":") (identifier "allocator") (< "<") (identifier "gold") (: ":") (: ":") (identifier "Version_script_info") (: ":") (: ":") (identifier "Language") (>> ">>")) (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"))) () ")"))) ({ "{") (identifier "uint")) (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (expression_statement "iVar7 = *(int *)(this + 4);" (assignment_expression "iVar7 = *(int *)(this + 4)" (identifier "iVar7") (= "=") (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 "iVar5 = *(int *)this;" (assignment_expression "iVar5 = *(int *)this" (identifier "iVar5") (= "=") (pointer_expression "*(int *)this" (* "*") (cast_expression "(int *)this" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this")))) (; ";")) (expression_statement "iVar8 = param_2 - iVar5;" (assignment_expression "iVar8 = param_2 - iVar5" (identifier "iVar8") (= "=") (binary_expression "param_2 - iVar5" (identifier "param_2") (- "-") (identifier "iVar5"))) (; ";")) (expression_statement "uVar1 = iVar7 - iVar5 >> 2;" (assignment_expression "uVar1 = iVar7 - iVar5 >> 2" (identifier "uVar1") (= "=") (binary_expression "iVar7 - iVar5 >> 2" (binary_expression "iVar7 - iVar5" (identifier "iVar7") (- "-") (identifier "iVar5")) (>> ">>") (number_literal "2"))) (; ";")) (if_statement "if (uVar1 == 0) {\n    uVar3 = 1;\nLAB_0022347c:\n    iVar6 = uVar3 << 2;\nLAB_00223350:\n    iVar2 = (*(code *)PTR_operator_new_0043233c)(iVar6);\n    iVar6 = iVar2 + iVar6;\n  }\n  else {\n    uVar3 = uVar1 << 1;\n    if (uVar3 < uVar1) {\n      iVar6 = -4;\n      goto LAB_00223350;\n    }\n    iVar6 = -4;\n    if (0x3fffffff < uVar3) goto LAB_00223350;\n    iVar2 = 0;\n    if (uVar3 != 0) goto LAB_0022347c;\n    iVar6 = 0;\n  }" (if "if") (parenthesized_expression "(uVar1 == 0)" (( "(") (binary_expression "uVar1 == 0" (identifier "uVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar3 = 1;\nLAB_0022347c:\n    iVar6 = uVar3 << 2;\nLAB_00223350:\n    iVar2 = (*(code *)PTR_operator_new_0043233c)(iVar6);\n    iVar6 = iVar2 + iVar6;\n  }" ({ "{") (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" (identifier "uVar3") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_0022347c:\n    iVar6 = uVar3 << 2;" (statement_identifier "LAB_0022347c") (: ":") (expression_statement "iVar6 = uVar3 << 2;" (assignment_expression "iVar6 = uVar3 << 2" (identifier "iVar6") (= "=") (binary_expression "uVar3 << 2" (identifier "uVar3") (<< "<<") (number_literal "2"))) (; ";"))) (labeled_statement "LAB_00223350:\n    iVar2 = (*(code *)PTR_operator_new_0043233c)(iVar6);" (statement_identifier "LAB_00223350") (: ":") (expression_statement "iVar2 = (*(code *)PTR_operator_new_0043233c)(iVar6);" (assignment_expression "iVar2 = (*(code *)PTR_operator_new_0043233c)(iVar6)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_operator_new_0043233c)(iVar6)" (parenthesized_expression "(*(code *)PTR_operator_new_0043233c)" (( "(") (pointer_expression "*(code *)PTR_operator_new_0043233c" (* "*") (cast_expression "(code *)PTR_operator_new_0043233c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_0043233c"))) () ")")) (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";"))) (expression_statement "iVar6 = iVar2 + iVar6;" (assignment_expression "iVar6 = iVar2 + iVar6" (identifier "iVar6") (= "=") (binary_expression "iVar2 + iVar6" (identifier "iVar2") (+ "+") (identifier "iVar6"))) (; ";")) (} "}")) (else_clause "else {\n    uVar3 = uVar1 << 1;\n    if (uVar3 < uVar1) {\n      iVar6 = -4;\n      goto LAB_00223350;\n    }\n    iVar6 = -4;\n    if (0x3fffffff < uVar3) goto LAB_00223350;\n    iVar2 = 0;\n    if (uVar3 != 0) goto LAB_0022347c;\n    iVar6 = 0;\n  }" (else "else") (compound_statement "{\n    uVar3 = uVar1 << 1;\n    if (uVar3 < uVar1) {\n      iVar6 = -4;\n      goto LAB_00223350;\n    }\n    iVar6 = -4;\n    if (0x3fffffff < uVar3) goto LAB_00223350;\n    iVar2 = 0;\n    if (uVar3 != 0) goto LAB_0022347c;\n    iVar6 = 0;\n  }" ({ "{") (expression_statement "uVar3 = uVar1 << 1;" (assignment_expression "uVar3 = uVar1 << 1" (identifier "uVar3") (= "=") (binary_expression "uVar1 << 1" (identifier "uVar1") (<< "<<") (number_literal "1"))) (; ";")) (if_statement "if (uVar3 < uVar1) {\n      iVar6 = -4;\n      goto LAB_00223350;\n    }" (if "if") (parenthesized_expression "(uVar3 < uVar1)" (( "(") (binary_expression "uVar3 < uVar1" (identifier "uVar3") (< "<") (identifier "uVar1")) () ")")) (compound_statement "{\n      iVar6 = -4;\n      goto LAB_00223350;\n    }" ({ "{") (expression_statement "iVar6 = -4;" (assignment_expression "iVar6 = -4" (identifier "iVar6") (= "=") (number_literal "-4")) (; ";")) (goto_statement "goto LAB_00223350;" (goto "goto") (statement_identifier "LAB_00223350") (; ";")) (} "}"))) (expression_statement "iVar6 = -4;" (assignment_expression "iVar6 = -4" (identifier "iVar6") (= "=") (number_literal "-4")) (; ";")) (if_statement "if (0x3fffffff < uVar3) goto LAB_00223350;" (if "if") (parenthesized_expression "(0x3fffffff < uVar3)" (( "(") (binary_expression "0x3fffffff < uVar3" (number_literal "0x3fffffff") (< "<") (identifier "uVar3")) () ")")) (goto_statement "goto LAB_00223350;" (goto "goto") (statement_identifier "LAB_00223350") (; ";"))) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar3 != 0) goto LAB_0022347c;" (if "if") (parenthesized_expression "(uVar3 != 0)" (( "(") (binary_expression "uVar3 != 0" (identifier "uVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0022347c;" (goto "goto") (statement_identifier "LAB_0022347c") (; ";"))) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "iVar4 = iVar2 + iVar8 + 4;" (assignment_expression "iVar4 = iVar2 + iVar8 + 4" (identifier "iVar4") (= "=") (binary_expression "iVar2 + iVar8 + 4" (binary_expression "iVar2 + iVar8" (identifier "iVar2") (+ "+") (identifier "iVar8")) (+ "+") (number_literal "4"))) (; ";")) (expression_statement "*(undefined4 *)(iVar2 + iVar8) = *param_3;" (assignment_expression "*(undefined4 *)(iVar2 + iVar8) = *param_3" (pointer_expression "*(undefined4 *)(iVar2 + iVar8)" (* "*") (cast_expression "(undefined4 *)(iVar2 + iVar8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + iVar8)" (( "(") (binary_expression "iVar2 + iVar8" (identifier "iVar2") (+ "+") (identifier "iVar8")) () ")")))) (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "iVar9 = iVar4 + (iVar7 - param_2);" (assignment_expression "iVar9 = iVar4 + (iVar7 - param_2)" (identifier "iVar9") (= "=") (binary_expression "iVar4 + (iVar7 - param_2)" (identifier "iVar4") (+ "+") (parenthesized_expression "(iVar7 - param_2)" (( "(") (binary_expression "iVar7 - param_2" (identifier "iVar7") (- "-") (identifier "param_2")) () ")")))) (; ";")) (if_statement "if (iVar5 == param_2) {\n    if (iVar7 != iVar5) goto LAB_002233b0;\n  }\n  else {\n    (*(code *)PTR_memmove_004366d8)(iVar2,iVar5,iVar8);\n    if (iVar7 == param_2) goto LAB_00223404;\nLAB_002233b0:\n    (*(code *)PTR_memcpy_00436788)(iVar4,param_2,iVar7 - param_2);\n  }" (if "if") (parenthesized_expression "(iVar5 == param_2)" (( "(") (binary_expression "iVar5 == param_2" (identifier "iVar5") (== "==") (identifier "param_2")) () ")")) (compound_statement "{\n    if (iVar7 != iVar5) goto LAB_002233b0;\n  }" ({ "{") (if_statement "if (iVar7 != iVar5) goto LAB_002233b0;" (if "if") (parenthesized_expression "(iVar7 != iVar5)" (( "(") (binary_expression "iVar7 != iVar5" (identifier "iVar7") (!= "!=") (identifier "iVar5")) () ")")) (goto_statement "goto LAB_002233b0;" (goto "goto") (statement_identifier "LAB_002233b0") (; ";"))) (} "}")) (else_clause "else {\n    (*(code *)PTR_memmove_004366d8)(iVar2,iVar5,iVar8);\n    if (iVar7 == param_2) goto LAB_00223404;\nLAB_002233b0:\n    (*(code *)PTR_memcpy_00436788)(iVar4,param_2,iVar7 - param_2);\n  }" (else "else") (compound_statement "{\n    (*(code *)PTR_memmove_004366d8)(iVar2,iVar5,iVar8);\n    if (iVar7 == param_2) goto LAB_00223404;\nLAB_002233b0:\n    (*(code *)PTR_memcpy_00436788)(iVar4,param_2,iVar7 - param_2);\n  }" ({ "{") (expression_statement "(*(code *)PTR_memmove_004366d8)(iVar2,iVar5,iVar8);" (call_expression "(*(code *)PTR_memmove_004366d8)(iVar2,iVar5,iVar8)" (parenthesized_expression "(*(code *)PTR_memmove_004366d8)" (( "(") (pointer_expression "*(code *)PTR_memmove_004366d8" (* "*") (cast_expression "(code *)PTR_memmove_004366d8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memmove_004366d8"))) () ")")) (argument_list "(iVar2,iVar5,iVar8)" (( "(") (identifier "iVar2") (, ",") (identifier "iVar5") (, ",") (identifier "iVar8") () ")"))) (; ";")) (if_statement "if (iVar7 == param_2) goto LAB_00223404;" (if "if") (parenthesized_expression "(iVar7 == param_2)" (( "(") (binary_expression "iVar7 == param_2" (identifier "iVar7") (== "==") (identifier "param_2")) () ")")) (goto_statement "goto LAB_00223404;" (goto "goto") (statement_identifier "LAB_00223404") (; ";"))) (labeled_statement "LAB_002233b0:\n    (*(code *)PTR_memcpy_00436788)(iVar4,param_2,iVar7 - param_2);" (statement_identifier "LAB_002233b0") (: ":") (expression_statement "(*(code *)PTR_memcpy_00436788)(iVar4,param_2,iVar7 - param_2);" (call_expression "(*(code *)PTR_memcpy_00436788)(iVar4,param_2,iVar7 - param_2)" (parenthesized_expression "(*(code *)PTR_memcpy_00436788)" (( "(") (pointer_expression "*(code *)PTR_memcpy_00436788" (* "*") (cast_expression "(code *)PTR_memcpy_00436788" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memcpy_00436788"))) () ")")) (argument_list "(iVar4,param_2,iVar7 - param_2)" (( "(") (identifier "iVar4") (, ",") (identifier "param_2") (, ",") (binary_expression "iVar7 - param_2" (identifier "iVar7") (- "-") (identifier "param_2")) () ")"))) (; ";"))) (} "}")))) (if_statement "if (iVar5 == 0) {\n    *(int *)this = iVar2;\n    *(int *)(this + 4) = iVar9;\n    *(int *)(this + 8) = iVar6;\n    return;\n  }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *(int *)this = iVar2;\n    *(int *)(this + 4) = iVar9;\n    *(int *)(this + 8) = iVar6;\n    return;\n  }" ({ "{") (expression_statement "*(int *)this = iVar2;" (assignment_expression "*(int *)this = iVar2" (pointer_expression "*(int *)this" (* "*") (cast_expression "(int *)this" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this"))) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "*(int *)(this + 4) = iVar9;" (assignment_expression "*(int *)(this + 4) = iVar9" (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 "iVar9")) (; ";")) (expression_statement "*(int *)(this + 8) = iVar6;" (assignment_expression "*(int *)(this + 8) = iVar6" (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 "iVar6")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (labeled_statement "LAB_00223404:\n  (*(code *)PTR_operator_delete_0043228c)(iVar5);" (statement_identifier "LAB_00223404") (: ":") (expression_statement "(*(code *)PTR_operator_delete_0043228c)(iVar5);" (call_expression "(*(code *)PTR_operator_delete_0043228c)(iVar5)" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" (( "(") (pointer_expression "*(code *)PTR_operator_delete_0043228c" (* "*") (cast_expression "(code *)PTR_operator_delete_0043228c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_delete_0043228c"))) () ")")) (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")"))) (; ";"))) (expression_statement "*(int *)this = iVar2;" (assignment_expression "*(int *)this = iVar2" (pointer_expression "*(int *)this" (* "*") (cast_expression "(int *)this" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this"))) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "*(int *)(this + 4) = iVar9;" (assignment_expression "*(int *)(this + 4) = iVar9" (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 "iVar9")) (; ";")) (expression_statement "*(int *)(this + 8) = iVar6;" (assignment_expression "*(int *)(this + 8) = iVar6" (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 "iVar6")) (; ";")) (return_statement "return;" (return "return") (; ";")) (ERROR "}" (} "}"))

/* DWARF original prototype: void
   _M_realloc_insert<gold::Version_script_info::Language>(vector<gold::Version_script_info::Language,_std::allocator<gold::Version_script_info::Language>_>
   * this, iterator __position, Language * __args#0) */

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

{
  type_2 var_4;
  type_1 pLVar2;
  type_2 var_5;
  type_1 var_8;
  int var_6;
  type_1 pLVar6;
  type_1 var_9;
  int var_7;
  type_1 pLVar9;
  
  var_9 = (this->
           super__Vector_base<gold::Version_script_info::var_1,_std::allocator<gold::Version_script_info::var_1>var_2>var_3
           )._M_impl._M_finish;
  var_8 = (this->
           super__Vector_base<gold::Version_script_info::var_1,_std::allocator<gold::Version_script_info::var_1>var_2>var_3
           )._M_impl._M_start;
  var_7 = (int)__position._M_current - (int)var_8;
  var_4 = (int)var_9 - (int)var_8 >> 2;
  if (var_4 == 0) {
    var_5 = 1;
LAB_0022347c:
    var_6 = var_5 << 2;
LAB_00223350:
    pLVar2 = (type_1)(*(type_3 *)PTR_operator_new_0043233c)(var_6);
    pLVar6 = (type_1)((int)pLVar2 + var_6);
  }
  else {
    var_5 = var_4 << 1;
    if (var_5 < var_4) {
      var_6 = -4;
      goto LAB_00223350;
    }
    var_6 = -4;
    if (0x3fffffff < var_5) goto LAB_00223350;
    pLVar2 = (type_1)0x0;
    if (var_5 != 0) goto LAB_0022347c;
    pLVar6 = (type_1)0x0;
  }
  var_6 = (int)pLVar2 + var_7 + 4;
  *(var_1 *)((int)pLVar2 + var_7) = *__args_0;
  pLVar9 = (type_1)(var_6 + ((int)var_9 - (int)__position._M_current));
  if (var_8 == __position._M_current) {
    if (var_9 != var_8) goto LAB_002233b0;
  }
  else {
    (*(type_3 *)PTR_memmove_004366d8)(pLVar2,var_8,var_7);
    if (var_9 == __position._M_current) goto LAB_00223404;
LAB_002233b0:
    (*(type_3 *)PTR_memcpy_00436788)
              (var_6,__position._M_current,(int)var_9 - (int)__position._M_current);
  }
  if (var_8 == (type_1)0x0) {
    (this->
    super__Vector_base<gold::Version_script_info::var_1,_std::allocator<gold::Version_script_info::var_1>var_2>var_3
    )._M_impl._M_start = pLVar2;
    (this->
    super__Vector_base<gold::Version_script_info::var_1,_std::allocator<gold::Version_script_info::var_1>var_2>var_3
    )._M_impl._M_finish = pLVar9;
    (this->
    super__Vector_base<gold::Version_script_info::var_1,_std::allocator<gold::Version_script_info::var_1>var_2>var_3
    )._M_impl._M_end_of_storage = pLVar6;
    return;
  }
LAB_00223404:
  (*(type_3 *)PTR_operator_delete_0043228c)(var_8);
  (this->
  super__Vector_base<gold::Version_script_info::var_1,_std::allocator<gold::Version_script_info::var_1>var_2>var_3
  )._M_impl._M_start = pLVar2;
  (this->
  super__Vector_base<gold::Version_script_info::var_1,_std::allocator<gold::Version_script_info::var_1>var_2>var_3
  )._M_impl._M_finish = pLVar9;
  (this->
  super__Vector_base<gold::Version_script_info::var_1,_std::allocator<gold::Version_script_info::var_1>var_2>var_3
  )._M_impl._M_end_of_storage = pLVar6;
  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))))) (identifier)) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (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: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) 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::Version_script_info::Language,
   std::allocator<gold::Version_script_info::Language>
   >::MASKED(__normal_iterator<gold::Version_script_info::Language*,
   std::vector<gold::Version_script_info::Language,
   std::allocator<gold::Version_script_info::Language> > >, gold::Version_script_info::Language&&)
    */

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

{
  uint uVar1;
  int iVar2;
  uint uVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  
  iVar7 = *(int *)(this + 4);
  iVar5 = *(int *)this;
  iVar8 = param_2 - iVar5;
  uVar1 = iVar7 - iVar5 >> 2;
  if (uVar1 == 0) {
    uVar3 = 1;
LAB_0022347c:
    iVar6 = uVar3 << 2;
LAB_00223350:
    iVar2 = (*(code *)PTR_operator_new_0043233c)(iVar6);
    iVar6 = iVar2 + iVar6;
  }
  else {
    uVar3 = uVar1 << 1;
    if (uVar3 < uVar1) {
      iVar6 = -4;
      goto LAB_00223350;
    }
    iVar6 = -4;
    if (0x3fffffff < uVar3) goto LAB_00223350;
    iVar2 = 0;
    if (uVar3 != 0) goto LAB_0022347c;
    iVar6 = 0;
  }
  iVar4 = iVar2 + iVar8 + 4;
  *(undefined4 *)(iVar2 + iVar8) = *param_3;
  iVar9 = iVar4 + (iVar7 - param_2);
  if (iVar5 == param_2) {
    if (iVar7 != iVar5) goto LAB_002233b0;
  }
  else {
    (*(code *)PTR_memmove_004366d8)(iVar2,iVar5,iVar8);
    if (iVar7 == param_2) goto LAB_00223404;
LAB_002233b0:
    (*(code *)PTR_memcpy_00436788)(iVar4,param_2,iVar7 - param_2);
  }
  if (iVar5 == 0) {
    *(int *)this = iVar2;
    *(int *)(this + 4) = iVar9;
    *(int *)(this + 8) = iVar6;
    return;
  }
LAB_00223404:
  (*(code *)PTR_operator_delete_0043228c)(iVar5);
  *(int *)this = iVar2;
  *(int *)(this + 4) = iVar9;
  *(int *)(this + 8) = iVar6;
  return;
}

