
/* gold::Cref_inputs::print_cref(gold::Symbol_table const*, _IO_FILE*) const [clone .cold.121] */

void gold::Cref_inputs::print_cref(Symbol_table *param_1,_IO_FILE *param_2)

{
  int unaff_EBP;
  
  if (*(void **)(unaff_EBP + -0x30) != *(void **)(unaff_EBP + -0x5c)) {
    operator_delete(*(void **)(unaff_EBP + -0x30));
  }
  std::
  _Rb_tree<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>,_std::_Select1st<std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>,_gold::Cref_inputs::Cref_table_compare,_std::allocator<std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>_>
  ::_M_erase(*(_Rb_tree<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>,_std::_Select1st<std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>,_gold::Cref_inputs::Cref_table_compare,_std::allocator<std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>_>
               **)(unaff_EBP + -0x68),*(_Link_type *)(unaff_EBP + -0x40));
                    /* WARNING: Subroutine does not return */
  _Unwind_Resume();
}



void FUN_0004bdf2(void)

{
  undefined4 in_ECX;
  undefined4 extraout_ECX;
  int unaff_EBP;
  
  if (*(int *)(unaff_EBP + -0x30) != *(int *)(unaff_EBP + -0x5c)) {
    FUN_003ae080(*(int *)(unaff_EBP + -0x30));
    in_ECX = extraout_ECX;
  }
  FUN_00370860(*(undefined4 *)(unaff_EBP + -0x68),*(undefined4 *)(unaff_EBP + -0x40),in_ECX,in_ECX);
                    /* WARNING: Subroutine does not return */
  FUN_004451f0();
}


MOV EAX,dword ptr [EBP + -0x30]
CMP EAX,dword ptr [EBP + -0x5c]
JZ 0x0004be09
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x4c]
PUSH EAX
CALL 0x003ae080
ADD ESP,0x10
PUSH ECX
PUSH ECX
PUSH dword ptr [EBP + -0x40]
PUSH dword ptr [EBP + -0x68]
CALL 0x00370860
MOV EBX,dword ptr [EBP + -0x4c]
MOV dword ptr [ESP],ESI
CALL 0x004451f0
(translation_unit "void FUN_0004bdf2(void)\n\n{\n  undefined4 in_ECX;\n  undefined4 extraout_ECX;\n  int unaff_EBP;\n  \n  if (*(int *)(unaff_EBP + -0x30) != *(int *)(unaff_EBP + -0x5c)) {\n    FUN_003ae080(*(int *)(unaff_EBP + -0x30));\n    in_ECX = extraout_ECX;\n  }\n  FUN_00370860(*(undefined4 *)(unaff_EBP + -0x68),*(undefined4 *)(unaff_EBP + -0x40),in_ECX,in_ECX);\n                    /* WARNING: Subroutine does not return */\n  FUN_004451f0();\n}\n\n" (function_definition "void FUN_0004bdf2(void)\n\n{\n  undefined4 in_ECX;\n  undefined4 extraout_ECX;\n  int unaff_EBP;\n  \n  if (*(int *)(unaff_EBP + -0x30) != *(int *)(unaff_EBP + -0x5c)) {\n    FUN_003ae080(*(int *)(unaff_EBP + -0x30));\n    in_ECX = extraout_ECX;\n  }\n  FUN_00370860(*(undefined4 *)(unaff_EBP + -0x68),*(undefined4 *)(unaff_EBP + -0x40),in_ECX,in_ECX);\n                    /* WARNING: Subroutine does not return */\n  FUN_004451f0();\n}" primitive_type (function_declarator "FUN_0004bdf2(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined4 in_ECX;\n  undefined4 extraout_ECX;\n  int unaff_EBP;\n  \n  if (*(int *)(unaff_EBP + -0x30) != *(int *)(unaff_EBP + -0x5c)) {\n    FUN_003ae080(*(int *)(unaff_EBP + -0x30));\n    in_ECX = extraout_ECX;\n  }\n  FUN_00370860(*(undefined4 *)(unaff_EBP + -0x68),*(undefined4 *)(unaff_EBP + -0x40),in_ECX,in_ECX);\n                    /* WARNING: Subroutine does not return */\n  FUN_004451f0();\n}" { (declaration "undefined4 in_ECX;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (if_statement "if (*(int *)(unaff_EBP + -0x30) != *(int *)(unaff_EBP + -0x5c)) {\n    FUN_003ae080(*(int *)(unaff_EBP + -0x30));\n    in_ECX = extraout_ECX;\n  }" if (parenthesized_expression "(*(int *)(unaff_EBP + -0x30) != *(int *)(unaff_EBP + -0x5c))" ( (binary_expression "*(int *)(unaff_EBP + -0x30) != *(int *)(unaff_EBP + -0x5c)" (pointer_expression "*(int *)(unaff_EBP + -0x30)" * (cast_expression "(int *)(unaff_EBP + -0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x30)" ( (binary_expression "unaff_EBP + -0x30" identifier + number_literal) )))) != (pointer_expression "*(int *)(unaff_EBP + -0x5c)" * (cast_expression "(int *)(unaff_EBP + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x5c)" ( (binary_expression "unaff_EBP + -0x5c" identifier + number_literal) ))))) )) (compound_statement "{\n    FUN_003ae080(*(int *)(unaff_EBP + -0x30));\n    in_ECX = extraout_ECX;\n  }" { (expression_statement "FUN_003ae080(*(int *)(unaff_EBP + -0x30));" (call_expression "FUN_003ae080(*(int *)(unaff_EBP + -0x30))" identifier (argument_list "(*(int *)(unaff_EBP + -0x30))" ( (pointer_expression "*(int *)(unaff_EBP + -0x30)" * (cast_expression "(int *)(unaff_EBP + -0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x30)" ( (binary_expression "unaff_EBP + -0x30" identifier + number_literal) )))) ))) ;) (expression_statement "in_ECX = extraout_ECX;" (assignment_expression "in_ECX = extraout_ECX" identifier = identifier) ;) })) (expression_statement "FUN_00370860(*(undefined4 *)(unaff_EBP + -0x68),*(undefined4 *)(unaff_EBP + -0x40),in_ECX,in_ECX);" (call_expression "FUN_00370860(*(undefined4 *)(unaff_EBP + -0x68),*(undefined4 *)(unaff_EBP + -0x40),in_ECX,in_ECX)" identifier (argument_list "(*(undefined4 *)(unaff_EBP + -0x68),*(undefined4 *)(unaff_EBP + -0x40),in_ECX,in_ECX)" ( (pointer_expression "*(undefined4 *)(unaff_EBP + -0x68)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x68)" ( (binary_expression "unaff_EBP + -0x68" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(unaff_EBP + -0x40)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x40)" ( (binary_expression "unaff_EBP + -0x40" identifier + number_literal) )))) , identifier , identifier ))) ;) comment (expression_statement "FUN_004451f0();" (call_expression "FUN_004451f0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* gold::Cref_inputs::print_cref(gold::Symbol_table const*, _IO_FILE*) const [clone .cold.121] */\n\nvoid gold::Cref_inputs::print_cref(Symbol_table *param_1,_IO_FILE *param_2)\n\n{\n  int unaff_EBP;\n  \n  if (*(void **)(unaff_EBP + -0x30) != *(void **)(unaff_EBP + -0x5c)) {\n    operator_delete(*(void **)(unaff_EBP + -0x30));\n  }\n  std::\n  _Rb_tree<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>,_std::_Select1st<std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>,_gold::Cref_inputs::Cref_table_compare,_std::allocator<std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>_>\n  ::_M_erase(*(_Rb_tree<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>,_std::_Select1st<std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>,_gold::Cref_inputs::Cref_table_compare,_std::allocator<std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>_>\n               **)(unaff_EBP + -0x68),*(_Link_type *)(unaff_EBP + -0x40));\n                    /* WARNING: Subroutine does not return */\n  _Unwind_Resume();\n}\n\n" comment (function_definition "void gold::Cref_inputs::print_cref(Symbol_table *param_1,_IO_FILE *param_2)\n\n{\n  int unaff_EBP;\n  \n  if (*(void **)(unaff_EBP + -0x30) != *(void **)(unaff_EBP + -0x5c)) {\n    operator_delete(*(void **)(unaff_EBP + -0x30));\n  }\n  std::\n  _Rb_tree<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>,_std::_Select1st<std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>,_gold::Cref_inputs::Cref_table_compare,_std::allocator<std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>_>\n  ::_M_erase(*(_Rb_tree<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>,_std::_Select1st<std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>,_gold::Cref_inputs::Cref_table_compare,_std::allocator<std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>_>\n               **)(unaff_EBP + -0x68),*(_Link_type *)(unaff_EBP + -0x40));\n                    /* WARNING: Subroutine does not return */\n  _Unwind_Resume();\n}" primitive_type (ERROR "gold::Cref_inputs::" identifier : : identifier : :) (function_declarator "print_cref(Symbol_table *param_1,_IO_FILE *param_2)" identifier (parameter_list "(Symbol_table *param_1,_IO_FILE *param_2)" ( (parameter_declaration "Symbol_table *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "_IO_FILE *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int unaff_EBP;\n  \n  if (*(void **)(unaff_EBP + -0x30) != *(void **)(unaff_EBP + -0x5c)) {\n    operator_delete(*(void **)(unaff_EBP + -0x30));\n  }\n  std::\n  _Rb_tree<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>,_std::_Select1st<std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>,_gold::Cref_inputs::Cref_table_compare,_std::allocator<std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>_>\n  ::_M_erase(*(_Rb_tree<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>,_std::_Select1st<std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>,_gold::Cref_inputs::Cref_table_compare,_std::allocator<std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>_>\n               **)(unaff_EBP + -0x68),*(_Link_type *)(unaff_EBP + -0x40));\n                    /* WARNING: Subroutine does not return */\n  _Unwind_Resume();\n}" { (declaration "int unaff_EBP;" primitive_type identifier ;) (if_statement "if (*(void **)(unaff_EBP + -0x30) != *(void **)(unaff_EBP + -0x5c)) {\n    operator_delete(*(void **)(unaff_EBP + -0x30));\n  }" if (parenthesized_expression "(*(void **)(unaff_EBP + -0x30) != *(void **)(unaff_EBP + -0x5c))" ( (binary_expression "*(void **)(unaff_EBP + -0x30) != *(void **)(unaff_EBP + -0x5c)" (pointer_expression "*(void **)(unaff_EBP + -0x30)" * (cast_expression "(void **)(unaff_EBP + -0x30)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0x30)" ( (binary_expression "unaff_EBP + -0x30" identifier + number_literal) )))) != (pointer_expression "*(void **)(unaff_EBP + -0x5c)" * (cast_expression "(void **)(unaff_EBP + -0x5c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0x5c)" ( (binary_expression "unaff_EBP + -0x5c" identifier + number_literal) ))))) )) (compound_statement "{\n    operator_delete(*(void **)(unaff_EBP + -0x30));\n  }" { (expression_statement "operator_delete(*(void **)(unaff_EBP + -0x30));" (call_expression "operator_delete(*(void **)(unaff_EBP + -0x30))" identifier (argument_list "(*(void **)(unaff_EBP + -0x30))" ( (pointer_expression "*(void **)(unaff_EBP + -0x30)" * (cast_expression "(void **)(unaff_EBP + -0x30)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0x30)" ( (binary_expression "unaff_EBP + -0x30" identifier + number_literal) )))) ))) ;) })) (ERROR "std::\n  _Rb_tree<const_gold::Symbol*,_std::pair<const_gold::" (comma_expression "std::\n  _Rb_tree<const_gold::Symbol*,_std" identifier (ERROR "::\n  _Rb_tree<const_gold::Symbol*" : : (binary_expression "_Rb_tree<const_gold" identifier < identifier) : : identifier *) , identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : :) (declaration "Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>,_std::_Select1st<std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>,_gold::Cref_inputs::Cref_table_compare,_std::allocator<std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>_>\n  ::_M_erase(*(_Rb_tree<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>,_std::_Select1st<std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>,_gold::Cref_inputs::Cref_table_compare,_std::allocator<std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>_>\n               **)(unaff_EBP + -0x68),*(_Link_type *)(unaff_EBP + -0x40));" type_identifier (pointer_declarator "*_const" * identifier) , (ERROR "_std::vector<gold::" identifier : : identifier < identifier : :) identifier (ERROR "*,_std::allocator<gold::Object*>_>*>" * , (ERROR "_std::allocator<gold::Object*>_>" identifier : : identifier < identifier : : identifier * > identifier >) * >) , (ERROR "_std::_Select1st<std::pair<const_gold::Symbol" identifier : : identifier < identifier : : identifier < identifier : : identifier) (pointer_declarator "*_const" * identifier) , (ERROR "_std::vector<gold::" identifier : : identifier < identifier : :) identifier (ERROR "*" *) , (ERROR "_std::allocator<gold::Object*>_>" identifier : : identifier < identifier : : identifier * > identifier >) (pointer_declarator "*>_" * (ERROR ">" >) identifier) (ERROR ">" >) , (ERROR "_gold::Cref_inputs::" identifier : : identifier : :) identifier , (ERROR "_std::allocator<std::pair<const_gold::Symbol" identifier : : identifier < identifier : : identifier < identifier : : identifier) (pointer_declarator "*_const" * identifier) , (ERROR "_std::vector<gold::" identifier : : identifier < identifier : :) identifier (ERROR "*" *) , (ERROR "_std::allocator<gold::Object*>_>" identifier : : identifier < identifier : : identifier * > identifier >) (pointer_declarator "*>_>_>\n  ::_M_erase(*(_Rb_tree<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>,_std::_Select1st<std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>,_gold::Cref_inputs::Cref_table_compare,_std::allocator<std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>_>\n               **)(unaff_EBP + -0x68)" * (ERROR ">_>_>\n  ::_M_erase(" > identifier > identifier > : : identifier () (pointer_declarator "*(_Rb_tree<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>,_std::_Select1st<std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>,_gold::Cref_inputs::Cref_table_compare,_std::allocator<std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>_>\n               **)(unaff_EBP + -0x68)" * (function_declarator "(_Rb_tree<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>,_std::_Select1st<std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>,_gold::Cref_inputs::Cref_table_compare,_std::allocator<std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>_>\n               **)(unaff_EBP + -0x68)" (parenthesized_declarator "(_Rb_tree<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>,_std::_Select1st<std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>,_gold::Cref_inputs::Cref_table_compare,_std::allocator<std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>_>\n               **)" ( (ERROR "_Rb_tree<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>,_std::_Select1st<std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>,_gold::Cref_inputs::Cref_table_compare,_std::allocator<std::pair<const_gold::Symbol*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>" identifier < identifier : : identifier * , identifier : : identifier < identifier : : identifier (pointer_declarator "*_const" * identifier) , identifier : : identifier < identifier : : identifier * , identifier : : identifier < identifier : : identifier * > identifier > (pointer_declarator "*>,_std::_Select1st<std::pair<const_gold::Symbol*_const" * (ERROR ">,_std::_Select1st<std::pair<const_gold::Symbol" > , identifier : : identifier < identifier : : identifier < identifier : : identifier) (pointer_declarator "*_const" * identifier)) , identifier : : identifier < identifier : : identifier * , identifier : : identifier < identifier : : identifier * > identifier > (pointer_declarator "*>_>,_gold::Cref_inputs::Cref_table_compare" * (ERROR ">_>,_gold::Cref_inputs::" > identifier > , identifier : : identifier : :) identifier) , identifier : : identifier < identifier : : identifier < identifier : : identifier (pointer_declarator "*_const" * identifier) , identifier : : identifier < identifier : : identifier * , identifier : : identifier < identifier : : identifier * > identifier >) (pointer_declarator "*>_>_>\n               **" * (ERROR ">_>_>" > identifier > identifier >) (pointer_declarator "**" * (pointer_declarator "*" * identifier))) )) (parameter_list "(unaff_EBP + -0x68)" ( (parameter_declaration "unaff_EBP" type_identifier) (ERROR "+ -0x68" + number_literal) ))))) , (pointer_declarator "*(_Link_type *)(unaff_EBP + -0x40)" * (function_declarator "(_Link_type *)(unaff_EBP + -0x40)" (parenthesized_declarator "(_Link_type *)" ( identifier (ERROR "*" *) )) (parameter_list "(unaff_EBP + -0x40)" ( (parameter_declaration "unaff_EBP" type_identifier) (ERROR "+ -0x40" + number_literal) )))) (ERROR ")" )) ;) comment (expression_statement "_Unwind_Resume();" (call_expression "_Unwind_Resume()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void FUN_0004bdf2(void)\n\n{\n  undefined4 in_ECX;\n  undefined4 extraout_ECX;\n  int unaff_EBP;\n  \n  if (*(int *)(unaff_EBP + -0x30) != *(int *)(unaff_EBP + -0x5c)) {\n    FUN_003ae080(*(int *)(unaff_EBP + -0x30));\n    in_ECX = extraout_ECX;\n  }\n  FUN_00370860(*(undefined4 *)(unaff_EBP + -0x68),*(undefined4 *)(unaff_EBP + -0x40),in_ECX,in_ECX);\n                    \n  FUN_004451f0();\n}\n\n" (function_definition "void FUN_0004bdf2(void)\n\n{\n  undefined4 in_ECX;\n  undefined4 extraout_ECX;\n  int unaff_EBP;\n  \n  if (*(int *)(unaff_EBP + -0x30) != *(int *)(unaff_EBP + -0x5c)) {\n    FUN_003ae080(*(int *)(unaff_EBP + -0x30));\n    in_ECX = extraout_ECX;\n  }\n  FUN_00370860(*(undefined4 *)(unaff_EBP + -0x68),*(undefined4 *)(unaff_EBP + -0x40),in_ECX,in_ECX);\n                    \n  FUN_004451f0();\n}" primitive_type (function_declarator "FUN_0004bdf2(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined4 in_ECX;\n  undefined4 extraout_ECX;\n  int unaff_EBP;\n  \n  if (*(int *)(unaff_EBP + -0x30) != *(int *)(unaff_EBP + -0x5c)) {\n    FUN_003ae080(*(int *)(unaff_EBP + -0x30));\n    in_ECX = extraout_ECX;\n  }\n  FUN_00370860(*(undefined4 *)(unaff_EBP + -0x68),*(undefined4 *)(unaff_EBP + -0x40),in_ECX,in_ECX);\n                    \n  FUN_004451f0();\n}" { (declaration "undefined4 in_ECX;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (if_statement "if (*(int *)(unaff_EBP + -0x30) != *(int *)(unaff_EBP + -0x5c)) {\n    FUN_003ae080(*(int *)(unaff_EBP + -0x30));\n    in_ECX = extraout_ECX;\n  }" if (parenthesized_expression "(*(int *)(unaff_EBP + -0x30) != *(int *)(unaff_EBP + -0x5c))" ( (binary_expression "*(int *)(unaff_EBP + -0x30) != *(int *)(unaff_EBP + -0x5c)" (pointer_expression "*(int *)(unaff_EBP + -0x30)" * (cast_expression "(int *)(unaff_EBP + -0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x30)" ( (binary_expression "unaff_EBP + -0x30" identifier + number_literal) )))) != (pointer_expression "*(int *)(unaff_EBP + -0x5c)" * (cast_expression "(int *)(unaff_EBP + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x5c)" ( (binary_expression "unaff_EBP + -0x5c" identifier + number_literal) ))))) )) (compound_statement "{\n    FUN_003ae080(*(int *)(unaff_EBP + -0x30));\n    in_ECX = extraout_ECX;\n  }" { (expression_statement "FUN_003ae080(*(int *)(unaff_EBP + -0x30));" (call_expression "FUN_003ae080(*(int *)(unaff_EBP + -0x30))" identifier (argument_list "(*(int *)(unaff_EBP + -0x30))" ( (pointer_expression "*(int *)(unaff_EBP + -0x30)" * (cast_expression "(int *)(unaff_EBP + -0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x30)" ( (binary_expression "unaff_EBP + -0x30" identifier + number_literal) )))) ))) ;) (expression_statement "in_ECX = extraout_ECX;" (assignment_expression "in_ECX = extraout_ECX" identifier = identifier) ;) })) (expression_statement "FUN_00370860(*(undefined4 *)(unaff_EBP + -0x68),*(undefined4 *)(unaff_EBP + -0x40),in_ECX,in_ECX);" (call_expression "FUN_00370860(*(undefined4 *)(unaff_EBP + -0x68),*(undefined4 *)(unaff_EBP + -0x40),in_ECX,in_ECX)" identifier (argument_list "(*(undefined4 *)(unaff_EBP + -0x68),*(undefined4 *)(unaff_EBP + -0x40),in_ECX,in_ECX)" ( (pointer_expression "*(undefined4 *)(unaff_EBP + -0x68)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x68)" ( (binary_expression "unaff_EBP + -0x68" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(unaff_EBP + -0x40)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x40)" ( (binary_expression "unaff_EBP + -0x40" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "FUN_004451f0();" (call_expression "FUN_004451f0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void FUN_0004bdf2(void)\n\n{\n  undefined4 in_ECX;\n  undefined4 extraout_ECX;\n  int unaff_EBP;\n  \n  if (*(int *)(unaff_EBP + -0x30) != *(int *)(unaff_EBP + -0x5c)) {\n    FUN_003ae080(*(int *)(unaff_EBP + -0x30));\n    in_ECX = extraout_ECX;\n  }\n  FUN_00370860(*(undefined4 *)(unaff_EBP + -0x68),*(undefined4 *)(unaff_EBP + -0x40),in_ECX,in_ECX);\n                    \n  FUN_004451f0();\n}" (primitive_type "void") (function_declarator "FUN_0004bdf2(void)" (identifier "FUN_0004bdf2") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  undefined4 in_ECX;\n  undefined4 extraout_ECX;\n  int unaff_EBP;\n  \n  if (*(int *)(unaff_EBP + -0x30) != *(int *)(unaff_EBP + -0x5c)) {\n    FUN_003ae080(*(int *)(unaff_EBP + -0x30));\n    in_ECX = extraout_ECX;\n  }\n  FUN_00370860(*(undefined4 *)(unaff_EBP + -0x68),*(undefined4 *)(unaff_EBP + -0x40),in_ECX,in_ECX);\n                    \n  FUN_004451f0();\n}" ({ "{") (declaration "undefined4 in_ECX;" (type_identifier "undefined4") (identifier "in_ECX") (; ";")) (declaration "undefined4 extraout_ECX;" (type_identifier "undefined4") (identifier "extraout_ECX") (; ";")) (declaration "int unaff_EBP;" (primitive_type "int") (identifier "unaff_EBP") (; ";")) (if_statement "if (*(int *)(unaff_EBP + -0x30) != *(int *)(unaff_EBP + -0x5c)) {\n    FUN_003ae080(*(int *)(unaff_EBP + -0x30));\n    in_ECX = extraout_ECX;\n  }" (if "if") (parenthesized_expression "(*(int *)(unaff_EBP + -0x30) != *(int *)(unaff_EBP + -0x5c))" (( "(") (binary_expression "*(int *)(unaff_EBP + -0x30) != *(int *)(unaff_EBP + -0x5c)" (pointer_expression "*(int *)(unaff_EBP + -0x30)" (* "*") (cast_expression "(int *)(unaff_EBP + -0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x30)" (( "(") (binary_expression "unaff_EBP + -0x30" (identifier "unaff_EBP") (+ "+") (number_literal "-0x30")) () ")")))) (!= "!=") (pointer_expression "*(int *)(unaff_EBP + -0x5c)" (* "*") (cast_expression "(int *)(unaff_EBP + -0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x5c)" (( "(") (binary_expression "unaff_EBP + -0x5c" (identifier "unaff_EBP") (+ "+") (number_literal "-0x5c")) () ")"))))) () ")")) (compound_statement "{\n    FUN_003ae080(*(int *)(unaff_EBP + -0x30));\n    in_ECX = extraout_ECX;\n  }" ({ "{") (expression_statement "FUN_003ae080(*(int *)(unaff_EBP + -0x30));" (call_expression "FUN_003ae080(*(int *)(unaff_EBP + -0x30))" (identifier "FUN_003ae080") (argument_list "(*(int *)(unaff_EBP + -0x30))" (( "(") (pointer_expression "*(int *)(unaff_EBP + -0x30)" (* "*") (cast_expression "(int *)(unaff_EBP + -0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x30)" (( "(") (binary_expression "unaff_EBP + -0x30" (identifier "unaff_EBP") (+ "+") (number_literal "-0x30")) () ")")))) () ")"))) (; ";")) (expression_statement "in_ECX = extraout_ECX;" (assignment_expression "in_ECX = extraout_ECX" (identifier "in_ECX") (= "=") (identifier "extraout_ECX")) (; ";")) (} "}"))) (expression_statement "FUN_00370860(*(undefined4 *)(unaff_EBP + -0x68),*(undefined4 *)(unaff_EBP + -0x40),in_ECX,in_ECX);" (call_expression "FUN_00370860(*(undefined4 *)(unaff_EBP + -0x68),*(undefined4 *)(unaff_EBP + -0x40),in_ECX,in_ECX)" (identifier "FUN_00370860") (argument_list "(*(undefined4 *)(unaff_EBP + -0x68),*(undefined4 *)(unaff_EBP + -0x40),in_ECX,in_ECX)" (( "(") (pointer_expression "*(undefined4 *)(unaff_EBP + -0x68)" (* "*") (cast_expression "(undefined4 *)(unaff_EBP + -0x68)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x68)" (( "(") (binary_expression "unaff_EBP + -0x68" (identifier "unaff_EBP") (+ "+") (number_literal "-0x68")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(unaff_EBP + -0x40)" (* "*") (cast_expression "(undefined4 *)(unaff_EBP + -0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x40)" (( "(") (binary_expression "unaff_EBP + -0x40" (identifier "unaff_EBP") (+ "+") (number_literal "-0x40")) () ")")))) (, ",") (identifier "in_ECX") (, ",") (identifier "in_ECX") () ")"))) (; ";")) (expression_statement "FUN_004451f0();" (call_expression "FUN_004451f0()" (identifier "FUN_004451f0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* gold::Cref_inputs::print_cref(gold::Symbol_table const*, _IO_FILE*) const [clone .cold.121] */

void gold::Cref_inputs::function_1(type_1 *param_1,type_2 *param_2)

{
  int var_1;
  
  if (*(void **)(var_1 + -0x30) != *(void **)(var_1 + -0x5c)) {
    var_2(*(void **)(var_1 + -0x30));
  }
  std::
  _Rb_tree<const_gold::type_3*,_std::pair<const_gold::type_3*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>,_std::_Select1st<std::pair<const_gold::type_3*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>,_gold::Cref_inputs::Cref_table_compare,_std::allocator<std::pair<const_gold::type_3*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>_>
  ::_M_erase(*(_Rb_tree<const_gold::type_3*,_std::pair<const_gold::type_3*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>,_std::_Select1st<std::pair<const_gold::type_3*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>,_gold::Cref_inputs::Cref_table_compare,_std::allocator<std::pair<const_gold::type_3*_const,_std::vector<gold::Object*,_std::allocator<gold::Object*>_>*>_>_>
               **)(var_1 + -0x68),*(function_2 *)(var_1 + -0x40));
                    /* WARNING: Subroutine does not return */
  var_3();
}


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

void MASKED(void)

{
  undefined4 in_ECX;
  undefined4 extraout_ECX;
  int unaff_EBP;
  
  if (*(int *)(unaff_EBP + -0x30) != *(int *)(unaff_EBP + -0x5c)) {
    FUN_003ae080(*(int *)(unaff_EBP + -0x30));
    in_ECX = extraout_ECX;
  }
  FUN_00370860(*(undefined4 *)(unaff_EBP + -0x68),*(undefined4 *)(unaff_EBP + -0x40),in_ECX,in_ECX);
                    /* WARNING: Subroutine does not return */
  FUN_004451f0();
}

