
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void ~Output_compressed_section(Output_compressed_section * this, int
   __in_chrg) */

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

{
  pointer pcVar1;
  int in_stack_ffffffe8;
  
  (this->super_Output_section).super_Output_data._vptr_Output_data =
       (_func_int_varargs **)&PTR__Output_compressed_section_0038b930;
  pcVar1 = (this->new_section_name_)._M_dataplus._M_p;
  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
       *)pcVar1 != &(this->new_section_name_).field_2) {
    operator_delete(pcVar1);
  }
  Output_section::~Output_section(&this->super_Output_section,in_stack_ffffffe8);
  operator_delete(this,0x108);
  return;
}



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

void FUN_0019eff0(undefined4 *param_1)

{
  *param_1 = &PTR_FUN_0038b930;
  if ((undefined4 *)param_1[0x3c] != param_1 + 0x3e) {
    FUN_001e6db0((undefined4 *)param_1[0x3c]);
  }
  FUN_000ed1f0(param_1);
  FUN_001e6d90(param_1,0x108);
  return;
}


PUSH ESI
PUSH EBX
CALL 0x00035840
ADD EBX,0x1f0009
SUB ESP,0x4
MOV ESI,dword ptr [ESP + 0x10]
LEA EDX,[ESI + 0xf8]
LEA EAX,[EBX + 0xffffc930]
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [ESI + 0xf0]
CMP EAX,EDX
JZ 0x0019f028
SUB ESP,0xc
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
SUB ESP,0xc
PUSH ESI
CALL 0x000ed1f0
POP EAX
POP EDX
PUSH 0x108
PUSH ESI
CALL 0x001e6d90
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_0019eff0(undefined4 *param_1)\n\n{\n  *param_1 = &PTR_FUN_0038b930;\n  if ((undefined4 *)param_1[0x3c] != param_1 + 0x3e) {\n    FUN_001e6db0((undefined4 *)param_1[0x3c]);\n  }\n  FUN_000ed1f0(param_1);\n  FUN_001e6d90(param_1,0x108);\n  return;\n}\n\n" comment (function_definition "void FUN_0019eff0(undefined4 *param_1)\n\n{\n  *param_1 = &PTR_FUN_0038b930;\n  if ((undefined4 *)param_1[0x3c] != param_1 + 0x3e) {\n    FUN_001e6db0((undefined4 *)param_1[0x3c]);\n  }\n  FUN_000ed1f0(param_1);\n  FUN_001e6d90(param_1,0x108);\n  return;\n}" primitive_type (function_declarator "FUN_0019eff0(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_0038b930;\n  if ((undefined4 *)param_1[0x3c] != param_1 + 0x3e) {\n    FUN_001e6db0((undefined4 *)param_1[0x3c]);\n  }\n  FUN_000ed1f0(param_1);\n  FUN_001e6d90(param_1,0x108);\n  return;\n}" { (expression_statement "*param_1 = &PTR_FUN_0038b930;" (assignment_expression "*param_1 = &PTR_FUN_0038b930" (pointer_expression "*param_1" * identifier) = (pointer_expression "&PTR_FUN_0038b930" & identifier)) ;) (if_statement "if ((undefined4 *)param_1[0x3c] != param_1 + 0x3e) {\n    FUN_001e6db0((undefined4 *)param_1[0x3c]);\n  }" if (parenthesized_expression "((undefined4 *)param_1[0x3c] != param_1 + 0x3e)" ( (binary_expression "(undefined4 *)param_1[0x3c] != param_1 + 0x3e" (cast_expression "(undefined4 *)param_1[0x3c]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x3c]" identifier [ number_literal ])) != (binary_expression "param_1 + 0x3e" identifier + number_literal)) )) (compound_statement "{\n    FUN_001e6db0((undefined4 *)param_1[0x3c]);\n  }" { (expression_statement "FUN_001e6db0((undefined4 *)param_1[0x3c]);" (call_expression "FUN_001e6db0((undefined4 *)param_1[0x3c])" identifier (argument_list "((undefined4 *)param_1[0x3c])" ( (cast_expression "(undefined4 *)param_1[0x3c]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x3c]" identifier [ number_literal ])) ))) ;) })) (expression_statement "FUN_000ed1f0(param_1);" (call_expression "FUN_000ed1f0(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "FUN_001e6d90(param_1,0x108);" (call_expression "FUN_001e6d90(param_1,0x108)" identifier (argument_list "(param_1,0x108)" ( identifier , number_literal ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: void ~Output_compressed_section(Output_compressed_section * this, int\n   __in_chrg) */\n\nvoid __thiscall\ngold::Output_compressed_section::~Output_compressed_section\n          (Output_compressed_section *this,int __in_chrg)\n\n{\n  pointer pcVar1;\n  int in_stack_ffffffe8;\n  \n  (this->super_Output_section).super_Output_data._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_compressed_section_0038b930;\n  pcVar1 = (this->new_section_name_)._M_dataplus._M_p;\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)pcVar1 != &(this->new_section_name_).field_2) {\n    operator_delete(pcVar1);\n  }\n  Output_section::~Output_section(&this->super_Output_section,in_stack_ffffffe8);\n  operator_delete(this,0x108);\n  return;\n}\n\n" comment comment comment (function_definition "void __thiscall\ngold::Output_compressed_section::~Output_compressed_section\n          (Output_compressed_section *this,int __in_chrg)\n\n{\n  pointer pcVar1;\n  int in_stack_ffffffe8;\n  \n  (this->super_Output_section).super_Output_data._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_compressed_section_0038b930;\n  pcVar1 = (this->new_section_name_)._M_dataplus._M_p;\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)pcVar1 != &(this->new_section_name_).field_2) {\n    operator_delete(pcVar1);\n  }\n  Output_section::~Output_section(&this->super_Output_section,in_stack_ffffffe8);\n  operator_delete(this,0x108);\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Output_compressed_section::~" identifier : : identifier : : ~) (function_declarator "Output_compressed_section\n          (Output_compressed_section *this,int __in_chrg)" identifier (parameter_list "(Output_compressed_section *this,int __in_chrg)" ( (parameter_declaration "Output_compressed_section *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "int __in_chrg" primitive_type identifier) ))) (compound_statement "{\n  pointer pcVar1;\n  int in_stack_ffffffe8;\n  \n  (this->super_Output_section).super_Output_data._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_compressed_section_0038b930;\n  pcVar1 = (this->new_section_name_)._M_dataplus._M_p;\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)pcVar1 != &(this->new_section_name_).field_2) {\n    operator_delete(pcVar1);\n  }\n  Output_section::~Output_section(&this->super_Output_section,in_stack_ffffffe8);\n  operator_delete(this,0x108);\n  return;\n}" { (declaration "pointer pcVar1;" 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_compressed_section_0038b930;" (assignment_expression "(this->super_Output_section).super_Output_data._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_compressed_section_0038b930" (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_compressed_section_0038b930" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Output_compressed_section_0038b930" & identifier))) ;) (expression_statement "pcVar1 = (this->new_section_name_)._M_dataplus._M_p;" (assignment_expression "pcVar1 = (this->new_section_name_)._M_dataplus._M_p" identifier = (field_expression "(this->new_section_name_)._M_dataplus._M_p" (field_expression "(this->new_section_name_)._M_dataplus" (parenthesized_expression "(this->new_section_name_)" ( (field_expression "this->new_section_name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)pcVar1 != &(this->new_section_name_).field_2) {\n    operator_delete(pcVar1);\n  }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)pcVar1 != &(this->new_section_name_).field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)pcVar1 != &(this->new_section_name_).field_2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n       *)pcVar1 != &(this->new_section_name_).field_2" (binary_expression "allocator<char>_>_9\n       *)pcVar1" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n       *)pcVar1" identifier * (ERROR ")" )) identifier)) != (pointer_expression "&(this->new_section_name_).field_2" & (field_expression "(this->new_section_name_).field_2" (parenthesized_expression "(this->new_section_name_)" ( (field_expression "this->new_section_name_" identifier -> field_identifier) )) . field_identifier))) )) )) (compound_statement "{\n    operator_delete(pcVar1);\n  }" { (expression_statement "operator_delete(pcVar1);" (call_expression "operator_delete(pcVar1)" identifier (argument_list "(pcVar1)" ( 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,0x108);" (call_expression "operator_delete(this,0x108)" identifier (argument_list "(this,0x108)" ( identifier , number_literal ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0019eff0(undefined4 *param_1)\n\n{\n  *param_1 = &PTR_FUN_0038b930;\n  if ((undefined4 *)param_1[0x3c] != param_1 + 0x3e) {\n    FUN_001e6db0((undefined4 *)param_1[0x3c]);\n  }\n  FUN_000ed1f0(param_1);\n  FUN_001e6d90(param_1,0x108);\n  return;\n}\n\n" (function_definition "void FUN_0019eff0(undefined4 *param_1)\n\n{\n  *param_1 = &PTR_FUN_0038b930;\n  if ((undefined4 *)param_1[0x3c] != param_1 + 0x3e) {\n    FUN_001e6db0((undefined4 *)param_1[0x3c]);\n  }\n  FUN_000ed1f0(param_1);\n  FUN_001e6d90(param_1,0x108);\n  return;\n}" primitive_type (function_declarator "FUN_0019eff0(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_0038b930;\n  if ((undefined4 *)param_1[0x3c] != param_1 + 0x3e) {\n    FUN_001e6db0((undefined4 *)param_1[0x3c]);\n  }\n  FUN_000ed1f0(param_1);\n  FUN_001e6d90(param_1,0x108);\n  return;\n}" { (expression_statement "*param_1 = &PTR_FUN_0038b930;" (assignment_expression "*param_1 = &PTR_FUN_0038b930" (pointer_expression "*param_1" * identifier) = (pointer_expression "&PTR_FUN_0038b930" & identifier)) ;) (if_statement "if ((undefined4 *)param_1[0x3c] != param_1 + 0x3e) {\n    FUN_001e6db0((undefined4 *)param_1[0x3c]);\n  }" if (parenthesized_expression "((undefined4 *)param_1[0x3c] != param_1 + 0x3e)" ( (binary_expression "(undefined4 *)param_1[0x3c] != param_1 + 0x3e" (cast_expression "(undefined4 *)param_1[0x3c]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x3c]" identifier [ number_literal ])) != (binary_expression "param_1 + 0x3e" identifier + number_literal)) )) (compound_statement "{\n    FUN_001e6db0((undefined4 *)param_1[0x3c]);\n  }" { (expression_statement "FUN_001e6db0((undefined4 *)param_1[0x3c]);" (call_expression "FUN_001e6db0((undefined4 *)param_1[0x3c])" identifier (argument_list "((undefined4 *)param_1[0x3c])" ( (cast_expression "(undefined4 *)param_1[0x3c]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x3c]" identifier [ number_literal ])) ))) ;) })) (expression_statement "FUN_000ed1f0(param_1);" (call_expression "FUN_000ed1f0(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "FUN_001e6d90(param_1,0x108);" (call_expression "FUN_001e6d90(param_1,0x108)" identifier (argument_list "(param_1,0x108)" ( 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 (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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_0019eff0(undefined4 *param_1)\n\n{\n  *param_1 = &PTR_FUN_0038b930;\n  if ((undefined4 *)param_1[0x3c] != param_1 + 0x3e) {\n    FUN_001e6db0((undefined4 *)param_1[0x3c]);\n  }\n  FUN_000ed1f0(param_1);\n  FUN_001e6d90(param_1,0x108);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0019eff0(undefined4 *param_1)" (identifier "FUN_0019eff0") (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_0038b930;\n  if ((undefined4 *)param_1[0x3c] != param_1 + 0x3e) {\n    FUN_001e6db0((undefined4 *)param_1[0x3c]);\n  }\n  FUN_000ed1f0(param_1);\n  FUN_001e6d90(param_1,0x108);\n  return;\n}" ({ "{") (expression_statement "*param_1 = &PTR_FUN_0038b930;" (assignment_expression "*param_1 = &PTR_FUN_0038b930" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (pointer_expression "&PTR_FUN_0038b930" (& "&") (identifier "PTR_FUN_0038b930"))) (; ";")) (if_statement "if ((undefined4 *)param_1[0x3c] != param_1 + 0x3e) {\n    FUN_001e6db0((undefined4 *)param_1[0x3c]);\n  }" (if "if") (parenthesized_expression "((undefined4 *)param_1[0x3c] != param_1 + 0x3e)" (( "(") (binary_expression "(undefined4 *)param_1[0x3c] != param_1 + 0x3e" (cast_expression "(undefined4 *)param_1[0x3c]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x3c]" (identifier "param_1") ([ "[") (number_literal "0x3c") (] "]"))) (!= "!=") (binary_expression "param_1 + 0x3e" (identifier "param_1") (+ "+") (number_literal "0x3e"))) () ")")) (compound_statement "{\n    FUN_001e6db0((undefined4 *)param_1[0x3c]);\n  }" ({ "{") (expression_statement "FUN_001e6db0((undefined4 *)param_1[0x3c]);" (call_expression "FUN_001e6db0((undefined4 *)param_1[0x3c])" (identifier "FUN_001e6db0") (argument_list "((undefined4 *)param_1[0x3c])" (( "(") (cast_expression "(undefined4 *)param_1[0x3c]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x3c]" (identifier "param_1") ([ "[") (number_literal "0x3c") (] "]"))) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_000ed1f0(param_1);" (call_expression "FUN_000ed1f0(param_1)" (identifier "FUN_000ed1f0") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "FUN_001e6d90(param_1,0x108);" (call_expression "FUN_001e6d90(param_1,0x108)" (identifier "FUN_001e6d90") (argument_list "(param_1,0x108)" (( "(") (identifier "param_1") (, ",") (number_literal "0x108") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void ~Output_compressed_section(Output_compressed_section * this, int
   __in_chrg) */

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

{
  type_1 var_5;
  int in_stack_ffffffe8;
  
  (this->super_Output_section).super_Output_data._vptr_Output_data =
       (type_2 **)&PTR__Output_compressed_section_0038b930;
  var_5 = (this->new_section_name_)._M_dataplus._M_p;
  if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
       *)var_5 != &(this->new_section_name_).field_2) {
    var_6(var_5);
  }
  Output_section::~var_7(&this->super_Output_section,in_stack_ffffffe8);
  var_6(this,0x108);
  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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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_0038b930;
  if ((undefined4 *)param_1[0x3c] != param_1 + 0x3e) {
    FUN_001e6db0((undefined4 *)param_1[0x3c]);
  }
  FUN_000ed1f0(param_1);
  FUN_001e6d90(param_1,0x108);
  return;
}

