
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: void
   ~Output_reduced_debug_info_section(Output_reduced_debug_info_section * this, int __in_chrg) */

void __thiscall
gold::Output_reduced_debug_info_section::~Output_reduced_debug_info_section
          (Output_reduced_debug_info_section *this,int __in_chrg)

{
  pointer puVar1;
  int in_stack_ffffffe8;
  
  (this->super_Output_section).super_Output_data._vptr_Output_data =
       (_func_int_varargs **)&PTR__Output_reduced_debug_info_section_0033b4f0;
  puVar1 = (this->data_).super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl.
           _M_start;
  if (puVar1 != (pointer)0x0) {
    operator_delete(puVar1);
  }
  Output_section::~Output_section(&this->super_Output_section,in_stack_ffffffe8);
  operator_delete(this,0xfc);
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void FUN_00125710(undefined4 *param_1)

{
  *param_1 = &PTR_FUN_0033b4f0;
  if (param_1[0x3a] != 0) {
    FUN_001ac470(param_1[0x3a]);
  }
  FUN_000e7900(param_1);
  FUN_001ac450(param_1,0xfc);
  return;
}


PUSH ESI
PUSH EBX
CALL 0x00035680
ADD EBX,0x2198e9
SUB ESP,0x4
MOV ESI,dword ptr [ESP + 0x10]
LEA EAX,[EBX + 0xffffc4f0]
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [ESI + 0xe8]
TEST EAX,EAX
JZ 0x00125742
SUB ESP,0xc
PUSH EAX
CALL 0x001ac470
ADD ESP,0x10
SUB ESP,0xc
PUSH ESI
CALL 0x000e7900
POP EAX
POP EDX
PUSH 0xfc
PUSH ESI
CALL 0x001ac450
ADD ESP,0x14
POP EBX
POP ESI
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_00125710(undefined4 *param_1)\n\n{\n  *param_1 = &PTR_FUN_0033b4f0;\n  if (param_1[0x3a] != 0) {\n    FUN_001ac470(param_1[0x3a]);\n  }\n  FUN_000e7900(param_1);\n  FUN_001ac450(param_1,0xfc);\n  return;\n}\n\n" comment (function_definition "void FUN_00125710(undefined4 *param_1)\n\n{\n  *param_1 = &PTR_FUN_0033b4f0;\n  if (param_1[0x3a] != 0) {\n    FUN_001ac470(param_1[0x3a]);\n  }\n  FUN_000e7900(param_1);\n  FUN_001ac450(param_1,0xfc);\n  return;\n}" primitive_type (function_declarator "FUN_00125710(undefined4 *param_1)" identifier (parameter_list "(undefined4 *param_1)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  *param_1 = &PTR_FUN_0033b4f0;\n  if (param_1[0x3a] != 0) {\n    FUN_001ac470(param_1[0x3a]);\n  }\n  FUN_000e7900(param_1);\n  FUN_001ac450(param_1,0xfc);\n  return;\n}" { (expression_statement "*param_1 = &PTR_FUN_0033b4f0;" (assignment_expression "*param_1 = &PTR_FUN_0033b4f0" (pointer_expression "*param_1" * identifier) = (pointer_expression "&PTR_FUN_0033b4f0" & identifier)) ;) (if_statement "if (param_1[0x3a] != 0) {\n    FUN_001ac470(param_1[0x3a]);\n  }" if (parenthesized_expression "(param_1[0x3a] != 0)" ( (binary_expression "param_1[0x3a] != 0" (subscript_expression "param_1[0x3a]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_001ac470(param_1[0x3a]);\n  }" { (expression_statement "FUN_001ac470(param_1[0x3a]);" (call_expression "FUN_001ac470(param_1[0x3a])" identifier (argument_list "(param_1[0x3a])" ( (subscript_expression "param_1[0x3a]" identifier [ number_literal ]) ))) ;) })) (expression_statement "FUN_000e7900(param_1);" (call_expression "FUN_000e7900(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "FUN_001ac450(param_1,0xfc);" (call_expression "FUN_001ac450(param_1,0xfc)" identifier (argument_list "(param_1,0xfc)" ( identifier , number_literal ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* DWARF original prototype: void\n   ~Output_reduced_debug_info_section(Output_reduced_debug_info_section * this, int __in_chrg) */\n\nvoid __thiscall\ngold::Output_reduced_debug_info_section::~Output_reduced_debug_info_section\n          (Output_reduced_debug_info_section *this,int __in_chrg)\n\n{\n  pointer puVar1;\n  int in_stack_ffffffe8;\n  \n  (this->super_Output_section).super_Output_data._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_reduced_debug_info_section_0033b4f0;\n  puVar1 = (this->data_).super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl.\n           _M_start;\n  if (puVar1 != (pointer)0x0) {\n    operator_delete(puVar1);\n  }\n  Output_section::~Output_section(&this->super_Output_section,in_stack_ffffffe8);\n  operator_delete(this,0xfc);\n  return;\n}\n\n" comment comment (function_definition "void __thiscall\ngold::Output_reduced_debug_info_section::~Output_reduced_debug_info_section\n          (Output_reduced_debug_info_section *this,int __in_chrg)\n\n{\n  pointer puVar1;\n  int in_stack_ffffffe8;\n  \n  (this->super_Output_section).super_Output_data._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_reduced_debug_info_section_0033b4f0;\n  puVar1 = (this->data_).super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl.\n           _M_start;\n  if (puVar1 != (pointer)0x0) {\n    operator_delete(puVar1);\n  }\n  Output_section::~Output_section(&this->super_Output_section,in_stack_ffffffe8);\n  operator_delete(this,0xfc);\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Output_reduced_debug_info_section::~" identifier : : identifier : : ~) (function_declarator "Output_reduced_debug_info_section\n          (Output_reduced_debug_info_section *this,int __in_chrg)" identifier (parameter_list "(Output_reduced_debug_info_section *this,int __in_chrg)" ( (parameter_declaration "Output_reduced_debug_info_section *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "int __in_chrg" primitive_type identifier) ))) (compound_statement "{\n  pointer puVar1;\n  int in_stack_ffffffe8;\n  \n  (this->super_Output_section).super_Output_data._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_reduced_debug_info_section_0033b4f0;\n  puVar1 = (this->data_).super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl.\n           _M_start;\n  if (puVar1 != (pointer)0x0) {\n    operator_delete(puVar1);\n  }\n  Output_section::~Output_section(&this->super_Output_section,in_stack_ffffffe8);\n  operator_delete(this,0xfc);\n  return;\n}" { (declaration "pointer puVar1;" type_identifier identifier ;) (declaration "int in_stack_ffffffe8;" primitive_type identifier ;) (expression_statement "(this->super_Output_section).super_Output_data._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_reduced_debug_info_section_0033b4f0;" (assignment_expression "(this->super_Output_section).super_Output_data._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_reduced_debug_info_section_0033b4f0" (field_expression "(this->super_Output_section).super_Output_data._vptr_Output_data" (field_expression "(this->super_Output_section).super_Output_data" (parenthesized_expression "(this->super_Output_section)" ( (field_expression "this->super_Output_section" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Output_reduced_debug_info_section_0033b4f0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Output_reduced_debug_info_section_0033b4f0" & identifier))) ;) (ERROR "puVar1 = (this->data_).super__Vector_base<unsigned_char,_std::" (comma_expression "puVar1 = (this->data_).super__Vector_base<unsigned_char,_std" (assignment_expression "puVar1 = (this->data_).super__Vector_base<unsigned_char" identifier = (binary_expression "(this->data_).super__Vector_base<unsigned_char" (field_expression "(this->data_).super__Vector_base" (parenthesized_expression "(this->data_)" ( (field_expression "this->data_" identifier -> field_identifier) )) . field_identifier) < identifier)) , identifier) : :) (expression_statement "allocator<unsigned_char>_>._M_impl.\n           _M_start;" (field_expression "allocator<unsigned_char>_>._M_impl.\n           _M_start" (field_expression "allocator<unsigned_char>_>._M_impl" (binary_expression "allocator<unsigned_char>_" (binary_expression "allocator<unsigned_char" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (puVar1 != (pointer)0x0) {\n    operator_delete(puVar1);\n  }" if (parenthesized_expression "(puVar1 != (pointer)0x0)" ( (binary_expression "puVar1 != (pointer)0x0" identifier != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n    operator_delete(puVar1);\n  }" { (expression_statement "operator_delete(puVar1);" (call_expression "operator_delete(puVar1)" identifier (argument_list "(puVar1)" ( identifier ))) ;) })) (labeled_statement "Output_section::~Output_section(&this->super_Output_section,in_stack_ffffffe8);" statement_identifier : (ERROR ":" :) (expression_statement "~Output_section(&this->super_Output_section,in_stack_ffffffe8);" (unary_expression "~Output_section(&this->super_Output_section,in_stack_ffffffe8)" ~ (call_expression "Output_section(&this->super_Output_section,in_stack_ffffffe8)" identifier (argument_list "(&this->super_Output_section,in_stack_ffffffe8)" ( (pointer_expression "&this->super_Output_section" & (field_expression "this->super_Output_section" identifier -> field_identifier)) , identifier )))) ;)) (expression_statement "operator_delete(this,0xfc);" (call_expression "operator_delete(this,0xfc)" identifier (argument_list "(this,0xfc)" ( identifier , number_literal ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00125710(undefined4 *param_1)\n\n{\n  *param_1 = &PTR_FUN_0033b4f0;\n  if (param_1[0x3a] != 0) {\n    FUN_001ac470(param_1[0x3a]);\n  }\n  FUN_000e7900(param_1);\n  FUN_001ac450(param_1,0xfc);\n  return;\n}\n\n" (function_definition "void FUN_00125710(undefined4 *param_1)\n\n{\n  *param_1 = &PTR_FUN_0033b4f0;\n  if (param_1[0x3a] != 0) {\n    FUN_001ac470(param_1[0x3a]);\n  }\n  FUN_000e7900(param_1);\n  FUN_001ac450(param_1,0xfc);\n  return;\n}" primitive_type (function_declarator "FUN_00125710(undefined4 *param_1)" identifier (parameter_list "(undefined4 *param_1)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  *param_1 = &PTR_FUN_0033b4f0;\n  if (param_1[0x3a] != 0) {\n    FUN_001ac470(param_1[0x3a]);\n  }\n  FUN_000e7900(param_1);\n  FUN_001ac450(param_1,0xfc);\n  return;\n}" { (expression_statement "*param_1 = &PTR_FUN_0033b4f0;" (assignment_expression "*param_1 = &PTR_FUN_0033b4f0" (pointer_expression "*param_1" * identifier) = (pointer_expression "&PTR_FUN_0033b4f0" & identifier)) ;) (if_statement "if (param_1[0x3a] != 0) {\n    FUN_001ac470(param_1[0x3a]);\n  }" if (parenthesized_expression "(param_1[0x3a] != 0)" ( (binary_expression "param_1[0x3a] != 0" (subscript_expression "param_1[0x3a]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_001ac470(param_1[0x3a]);\n  }" { (expression_statement "FUN_001ac470(param_1[0x3a]);" (call_expression "FUN_001ac470(param_1[0x3a])" identifier (argument_list "(param_1[0x3a])" ( (subscript_expression "param_1[0x3a]" identifier [ number_literal ]) ))) ;) })) (expression_statement "FUN_000e7900(param_1);" (call_expression "FUN_000e7900(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "FUN_001ac450(param_1,0xfc);" (call_expression "FUN_001ac450(param_1,0xfc)" identifier (argument_list "(param_1,0xfc)" ( identifier , number_literal ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_00125710(undefined4 *param_1)\n\n{\n  *param_1 = &PTR_FUN_0033b4f0;\n  if (param_1[0x3a] != 0) {\n    FUN_001ac470(param_1[0x3a]);\n  }\n  FUN_000e7900(param_1);\n  FUN_001ac450(param_1,0xfc);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00125710(undefined4 *param_1)" (identifier "FUN_00125710") (parameter_list "(undefined4 *param_1)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  *param_1 = &PTR_FUN_0033b4f0;\n  if (param_1[0x3a] != 0) {\n    FUN_001ac470(param_1[0x3a]);\n  }\n  FUN_000e7900(param_1);\n  FUN_001ac450(param_1,0xfc);\n  return;\n}" ({ "{") (expression_statement "*param_1 = &PTR_FUN_0033b4f0;" (assignment_expression "*param_1 = &PTR_FUN_0033b4f0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (pointer_expression "&PTR_FUN_0033b4f0" (& "&") (identifier "PTR_FUN_0033b4f0"))) (; ";")) (if_statement "if (param_1[0x3a] != 0) {\n    FUN_001ac470(param_1[0x3a]);\n  }" (if "if") (parenthesized_expression "(param_1[0x3a] != 0)" (( "(") (binary_expression "param_1[0x3a] != 0" (subscript_expression "param_1[0x3a]" (identifier "param_1") ([ "[") (number_literal "0x3a") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_001ac470(param_1[0x3a]);\n  }" ({ "{") (expression_statement "FUN_001ac470(param_1[0x3a]);" (call_expression "FUN_001ac470(param_1[0x3a])" (identifier "FUN_001ac470") (argument_list "(param_1[0x3a])" (( "(") (subscript_expression "param_1[0x3a]" (identifier "param_1") ([ "[") (number_literal "0x3a") (] "]")) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_000e7900(param_1);" (call_expression "FUN_000e7900(param_1)" (identifier "FUN_000e7900") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "FUN_001ac450(param_1,0xfc);" (call_expression "FUN_001ac450(param_1,0xfc)" (identifier "FUN_001ac450") (argument_list "(param_1,0xfc)" (( "(") (identifier "param_1") (, ",") (number_literal "0xfc") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: void
   ~Output_reduced_debug_info_section(Output_reduced_debug_info_section * this, int __in_chrg) */

void __thiscall
gold::function_1::~function_1
          (function_1 *this,int __in_chrg)

{
  type_1 var_4;
  int in_stack_ffffffe8;
  
  (this->super_Output_section).super_Output_data._vptr_Output_data =
       (type_2 **)&PTR__Output_reduced_debug_info_section_0033b4f0;
  var_4 = (this->data_).super__Vector_base<var_2,_std::var_1<var_2>var_3>._M_impl.
           _M_start;
  if (var_4 != (type_1)0x0) {
    var_5(var_4);
  }
  Output_section::~var_6(&this->super_Output_section,in_stack_ffffffe8);
  var_5(this,0xfc);
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (return_statement))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void MASKED(undefined4 *param_1)

{
  *param_1 = &PTR_FUN_0033b4f0;
  if (param_1[0x3a] != 0) {
    FUN_001ac470(param_1[0x3a]);
  }
  FUN_000e7900(param_1);
  FUN_001ac450(param_1,0xfc);
  return;
}

