
/* gold::preprocess_for_unique_sections(std::vector<std::pair<gold::Relobj*, unsigned int>,
   std::allocator<std::pair<gold::Relobj*, unsigned int> > > const&, std::vector<bool,
   std::allocator<bool> >*, std::vector<std::string, std::allocator<std::string > >*) [clone
   .cold.293] */

void gold::preprocess_for_unique_sections(vector *param_1,vector *param_2,vector *param_3)

{
  int __in_chrg;
  long unaff_R15;
  _Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>
  *in_stack_00000010;
  
  __in_chrg = (int)param_2;
  if (*(long *)(unaff_R15 + 0x28) != 0) {
    __in_chrg = -1;
    File_read::unlock((File_read *)(*(long *)(unaff_R15 + 0x28) + 0x28),(Task *)0xffffffffffffffff);
  }
  std::
  _Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>
  ::~_Hashtable(in_stack_00000010,__in_chrg);
                    /* WARNING: Subroutine does not return */
  _Unwind_Resume();
}



void FUN_00148310(void)

{
  long unaff_R15;
  undefined8 in_stack_00000010;
  
  if (*(long *)(unaff_R15 + 0x28) != 0) {
    FUN_0017a690(*(long *)(unaff_R15 + 0x28) + 0x28,0xffffffffffffffff);
  }
  FUN_00181fb0(in_stack_00000010);
                    /* WARNING: Subroutine does not return */
  FUN_003688e0();
}


MOV RAX,qword ptr [R15 + 0x28]
TEST RAX,RAX
JZ 0x00148326
LEA RDI,[RAX + 0x28]
OR RSI,-0x1
CALL 0x0017a690
MOV RDI,qword ptr [RSP + 0x10]
CALL 0x00181fb0
MOV RDI,RBX
CALL 0x003688e0
(translation_unit "void FUN_00148310(void)\n\n{\n  long unaff_R15;\n  undefined8 in_stack_00000010;\n  \n  if (*(long *)(unaff_R15 + 0x28) != 0) {\n    FUN_0017a690(*(long *)(unaff_R15 + 0x28) + 0x28,0xffffffffffffffff);\n  }\n  FUN_00181fb0(in_stack_00000010);\n                    /* WARNING: Subroutine does not return */\n  FUN_003688e0();\n}\n\n" (function_definition "void FUN_00148310(void)\n\n{\n  long unaff_R15;\n  undefined8 in_stack_00000010;\n  \n  if (*(long *)(unaff_R15 + 0x28) != 0) {\n    FUN_0017a690(*(long *)(unaff_R15 + 0x28) + 0x28,0xffffffffffffffff);\n  }\n  FUN_00181fb0(in_stack_00000010);\n                    /* WARNING: Subroutine does not return */\n  FUN_003688e0();\n}" primitive_type (function_declarator "FUN_00148310(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  long unaff_R15;\n  undefined8 in_stack_00000010;\n  \n  if (*(long *)(unaff_R15 + 0x28) != 0) {\n    FUN_0017a690(*(long *)(unaff_R15 + 0x28) + 0x28,0xffffffffffffffff);\n  }\n  FUN_00181fb0(in_stack_00000010);\n                    /* WARNING: Subroutine does not return */\n  FUN_003688e0();\n}" { (declaration "long unaff_R15;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 in_stack_00000010;" type_identifier identifier ;) (if_statement "if (*(long *)(unaff_R15 + 0x28) != 0) {\n    FUN_0017a690(*(long *)(unaff_R15 + 0x28) + 0x28,0xffffffffffffffff);\n  }" if (parenthesized_expression "(*(long *)(unaff_R15 + 0x28) != 0)" ( (binary_expression "*(long *)(unaff_R15 + 0x28) != 0" (pointer_expression "*(long *)(unaff_R15 + 0x28)" * (cast_expression "(long *)(unaff_R15 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_R15 + 0x28)" ( (binary_expression "unaff_R15 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_0017a690(*(long *)(unaff_R15 + 0x28) + 0x28,0xffffffffffffffff);\n  }" { (expression_statement "FUN_0017a690(*(long *)(unaff_R15 + 0x28) + 0x28,0xffffffffffffffff);" (call_expression "FUN_0017a690(*(long *)(unaff_R15 + 0x28) + 0x28,0xffffffffffffffff)" identifier (argument_list "(*(long *)(unaff_R15 + 0x28) + 0x28,0xffffffffffffffff)" ( (binary_expression "*(long *)(unaff_R15 + 0x28) + 0x28" (pointer_expression "*(long *)(unaff_R15 + 0x28)" * (cast_expression "(long *)(unaff_R15 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_R15 + 0x28)" ( (binary_expression "unaff_R15 + 0x28" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) })) (expression_statement "FUN_00181fb0(in_stack_00000010);" (call_expression "FUN_00181fb0(in_stack_00000010)" identifier (argument_list "(in_stack_00000010)" ( identifier ))) ;) comment (expression_statement "FUN_003688e0();" (call_expression "FUN_003688e0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* gold::preprocess_for_unique_sections(std::vector<std::pair<gold::Relobj*, unsigned int>,\n   std::allocator<std::pair<gold::Relobj*, unsigned int> > > const&, std::vector<bool,\n   std::allocator<bool> >*, std::vector<std::string, std::allocator<std::string > >*) [clone\n   .cold.293] */\n\nvoid gold::preprocess_for_unique_sections(vector *param_1,vector *param_2,vector *param_3)\n\n{\n  int __in_chrg;\n  long unaff_R15;\n  _Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n  *in_stack_00000010;\n  \n  __in_chrg = (int)param_2;\n  if (*(long *)(unaff_R15 + 0x28) != 0) {\n    __in_chrg = -1;\n    File_read::unlock((File_read *)(*(long *)(unaff_R15 + 0x28) + 0x28),(Task *)0xffffffffffffffff);\n  }\n  std::\n  _Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n  ::~_Hashtable(in_stack_00000010,__in_chrg);\n                    /* WARNING: Subroutine does not return */\n  _Unwind_Resume();\n}\n\n" comment (function_definition "void gold::preprocess_for_unique_sections(vector *param_1,vector *param_2,vector *param_3)\n\n{\n  int __in_chrg;\n  long unaff_R15;\n  _Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n  *in_stack_00000010;\n  \n  __in_chrg = (int)param_2;\n  if (*(long *)(unaff_R15 + 0x28) != 0) {\n    __in_chrg = -1;\n    File_read::unlock((File_read *)(*(long *)(unaff_R15 + 0x28) + 0x28),(Task *)0xffffffffffffffff);\n  }\n  std::\n  _Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n  ::~_Hashtable(in_stack_00000010,__in_chrg);\n                    /* WARNING: Subroutine does not return */\n  _Unwind_Resume();\n}" primitive_type (ERROR "gold::" identifier : :) (function_declarator "preprocess_for_unique_sections(vector *param_1,vector *param_2,vector *param_3)" identifier (parameter_list "(vector *param_1,vector *param_2,vector *param_3)" ( (parameter_declaration "vector *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "vector *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "vector *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  int __in_chrg;\n  long unaff_R15;\n  _Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n  *in_stack_00000010;\n  \n  __in_chrg = (int)param_2;\n  if (*(long *)(unaff_R15 + 0x28) != 0) {\n    __in_chrg = -1;\n    File_read::unlock((File_read *)(*(long *)(unaff_R15 + 0x28) + 0x28),(Task *)0xffffffffffffffff);\n  }\n  std::\n  _Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n  ::~_Hashtable(in_stack_00000010,__in_chrg);\n                    /* WARNING: Subroutine does not return */\n  _Unwind_Resume();\n}" { (declaration "int __in_chrg;" primitive_type identifier ;) (declaration "long unaff_R15;" (sized_type_specifier "long" long) identifier ;) (ERROR "_Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::" (comma_expression "_Hashtable<unsigned_int,_std" (binary_expression "_Hashtable<unsigned_int" identifier < identifier) , identifier) : : (comma_expression "pair<unsigned_int_const,_unsigned_int>,_std" (binary_expression "pair<unsigned_int_const" identifier < identifier) , (binary_expression "_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<unsigned_int_const,_unsigned_int>_>,_std" (binary_expression "pair<unsigned_int_const" identifier < identifier) , (binary_expression "_unsigned_int>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier)) : : (comma_expression "__detail::_Select1st,_std::equal_to<unsigned_int>,_std" identifier (ERROR "::_Select1st,_std::equal_to<unsigned_int>" : : (comma_expression "_Select1st,_std" identifier , identifier) : : (binary_expression "equal_to<unsigned_int" identifier < identifier) >) , identifier) : : (binary_expression "hash<unsigned_int>,_std" (binary_expression "hash<unsigned_int" identifier < identifier) > (ERROR "," ,) identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n  *in_stack_00000010;" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n  *in_stack_00000010;" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n  *in_stack_00000010;" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<false,_false,_true>_>\n  *in_stack_00000010;" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<false,_false,_true>_>\n  *in_stack_00000010;" (comma_expression "_Hashtable_traits<false,_false,_true>_>\n  *in_stack_00000010" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "_false,_true>_>\n  *in_stack_00000010" identifier , (binary_expression "_true>_>\n  *in_stack_00000010" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*in_stack_00000010" * identifier)))) ;))))) (expression_statement "__in_chrg = (int)param_2;" (assignment_expression "__in_chrg = (int)param_2" identifier = (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (*(long *)(unaff_R15 + 0x28) != 0) {\n    __in_chrg = -1;\n    File_read::unlock((File_read *)(*(long *)(unaff_R15 + 0x28) + 0x28),(Task *)0xffffffffffffffff);\n  }" if (parenthesized_expression "(*(long *)(unaff_R15 + 0x28) != 0)" ( (binary_expression "*(long *)(unaff_R15 + 0x28) != 0" (pointer_expression "*(long *)(unaff_R15 + 0x28)" * (cast_expression "(long *)(unaff_R15 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_R15 + 0x28)" ( (binary_expression "unaff_R15 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    __in_chrg = -1;\n    File_read::unlock((File_read *)(*(long *)(unaff_R15 + 0x28) + 0x28),(Task *)0xffffffffffffffff);\n  }" { (expression_statement "__in_chrg = -1;" (assignment_expression "__in_chrg = -1" identifier = number_literal) ;) (labeled_statement "File_read::unlock((File_read *)(*(long *)(unaff_R15 + 0x28) + 0x28),(Task *)0xffffffffffffffff);" statement_identifier : (ERROR ":" :) (expression_statement "unlock((File_read *)(*(long *)(unaff_R15 + 0x28) + 0x28),(Task *)0xffffffffffffffff);" (call_expression "unlock((File_read *)(*(long *)(unaff_R15 + 0x28) + 0x28),(Task *)0xffffffffffffffff)" identifier (argument_list "((File_read *)(*(long *)(unaff_R15 + 0x28) + 0x28),(Task *)0xffffffffffffffff)" ( (cast_expression "(File_read *)(*(long *)(unaff_R15 + 0x28) + 0x28)" ( (type_descriptor "File_read *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(unaff_R15 + 0x28) + 0x28)" ( (binary_expression "*(long *)(unaff_R15 + 0x28) + 0x28" (pointer_expression "*(long *)(unaff_R15 + 0x28)" * (cast_expression "(long *)(unaff_R15 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_R15 + 0x28)" ( (binary_expression "unaff_R15 + 0x28" identifier + number_literal) )))) + number_literal) ))) , (cast_expression "(Task *)0xffffffffffffffff" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;)) })) (ERROR "std::\n  _Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "std::\n  _Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std" identifier (ERROR "::\n  _Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>" : : (comma_expression "_Hashtable<unsigned_int,_std" (binary_expression "_Hashtable<unsigned_int" identifier < identifier) , identifier) : : (comma_expression "pair<unsigned_int_const,_unsigned_int>,_std" (binary_expression "pair<unsigned_int_const" identifier < identifier) , (binary_expression "_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<unsigned_int_const,_unsigned_int>_>,_std" (binary_expression "pair<unsigned_int_const" identifier < identifier) , (binary_expression "_unsigned_int>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier)) : : (comma_expression "__detail::_Select1st,_std::equal_to<unsigned_int>,_std" identifier (ERROR "::_Select1st,_std::equal_to<unsigned_int>" : : (comma_expression "_Select1st,_std" identifier , identifier) : : (binary_expression "equal_to<unsigned_int" identifier < identifier) >) , identifier) : : (binary_expression "hash<unsigned_int" identifier < identifier) >) , identifier) : : identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier : :) (expression_statement "_Hashtable_traits<false,_false,_true>_>\n  ::~_Hashtable(in_stack_00000010,__in_chrg);" (comma_expression "_Hashtable_traits<false,_false,_true>_>\n  ::~_Hashtable(in_stack_00000010,__in_chrg)" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "_false,_true>_>\n  ::~_Hashtable(in_stack_00000010,__in_chrg)" identifier , (binary_expression "_true>_>\n  ::~_Hashtable(in_stack_00000010,__in_chrg)" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) (unary_expression "~_Hashtable(in_stack_00000010,__in_chrg)" ~ (call_expression "_Hashtable(in_stack_00000010,__in_chrg)" identifier (argument_list "(in_stack_00000010,__in_chrg)" ( identifier , identifier ))))))) ;) comment (expression_statement "_Unwind_Resume();" (call_expression "_Unwind_Resume()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void FUN_00148310(void)\n\n{\n  long unaff_R15;\n  undefined8 in_stack_00000010;\n  \n  if (*(long *)(unaff_R15 + 0x28) != 0) {\n    FUN_0017a690(*(long *)(unaff_R15 + 0x28) + 0x28,0xffffffffffffffff);\n  }\n  FUN_00181fb0(in_stack_00000010);\n                    \n  FUN_003688e0();\n}\n\n" (function_definition "void FUN_00148310(void)\n\n{\n  long unaff_R15;\n  undefined8 in_stack_00000010;\n  \n  if (*(long *)(unaff_R15 + 0x28) != 0) {\n    FUN_0017a690(*(long *)(unaff_R15 + 0x28) + 0x28,0xffffffffffffffff);\n  }\n  FUN_00181fb0(in_stack_00000010);\n                    \n  FUN_003688e0();\n}" primitive_type (function_declarator "FUN_00148310(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  long unaff_R15;\n  undefined8 in_stack_00000010;\n  \n  if (*(long *)(unaff_R15 + 0x28) != 0) {\n    FUN_0017a690(*(long *)(unaff_R15 + 0x28) + 0x28,0xffffffffffffffff);\n  }\n  FUN_00181fb0(in_stack_00000010);\n                    \n  FUN_003688e0();\n}" { (declaration "long unaff_R15;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 in_stack_00000010;" type_identifier identifier ;) (if_statement "if (*(long *)(unaff_R15 + 0x28) != 0) {\n    FUN_0017a690(*(long *)(unaff_R15 + 0x28) + 0x28,0xffffffffffffffff);\n  }" if (parenthesized_expression "(*(long *)(unaff_R15 + 0x28) != 0)" ( (binary_expression "*(long *)(unaff_R15 + 0x28) != 0" (pointer_expression "*(long *)(unaff_R15 + 0x28)" * (cast_expression "(long *)(unaff_R15 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_R15 + 0x28)" ( (binary_expression "unaff_R15 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_0017a690(*(long *)(unaff_R15 + 0x28) + 0x28,0xffffffffffffffff);\n  }" { (expression_statement "FUN_0017a690(*(long *)(unaff_R15 + 0x28) + 0x28,0xffffffffffffffff);" (call_expression "FUN_0017a690(*(long *)(unaff_R15 + 0x28) + 0x28,0xffffffffffffffff)" identifier (argument_list "(*(long *)(unaff_R15 + 0x28) + 0x28,0xffffffffffffffff)" ( (binary_expression "*(long *)(unaff_R15 + 0x28) + 0x28" (pointer_expression "*(long *)(unaff_R15 + 0x28)" * (cast_expression "(long *)(unaff_R15 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_R15 + 0x28)" ( (binary_expression "unaff_R15 + 0x28" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) })) (expression_statement "FUN_00181fb0(in_stack_00000010);" (call_expression "FUN_00181fb0(in_stack_00000010)" identifier (argument_list "(in_stack_00000010)" ( identifier ))) ;) (expression_statement "FUN_003688e0();" (call_expression "FUN_003688e0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void FUN_00148310(void)\n\n{\n  long unaff_R15;\n  undefined8 in_stack_00000010;\n  \n  if (*(long *)(unaff_R15 + 0x28) != 0) {\n    FUN_0017a690(*(long *)(unaff_R15 + 0x28) + 0x28,0xffffffffffffffff);\n  }\n  FUN_00181fb0(in_stack_00000010);\n                    \n  FUN_003688e0();\n}" (primitive_type "void") (function_declarator "FUN_00148310(void)" (identifier "FUN_00148310") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  long unaff_R15;\n  undefined8 in_stack_00000010;\n  \n  if (*(long *)(unaff_R15 + 0x28) != 0) {\n    FUN_0017a690(*(long *)(unaff_R15 + 0x28) + 0x28,0xffffffffffffffff);\n  }\n  FUN_00181fb0(in_stack_00000010);\n                    \n  FUN_003688e0();\n}" ({ "{") (declaration "long unaff_R15;" (sized_type_specifier "long" (long "long")) (identifier "unaff_R15") (; ";")) (declaration "undefined8 in_stack_00000010;" (type_identifier "undefined8") (identifier "in_stack_00000010") (; ";")) (if_statement "if (*(long *)(unaff_R15 + 0x28) != 0) {\n    FUN_0017a690(*(long *)(unaff_R15 + 0x28) + 0x28,0xffffffffffffffff);\n  }" (if "if") (parenthesized_expression "(*(long *)(unaff_R15 + 0x28) != 0)" (( "(") (binary_expression "*(long *)(unaff_R15 + 0x28) != 0" (pointer_expression "*(long *)(unaff_R15 + 0x28)" (* "*") (cast_expression "(long *)(unaff_R15 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_R15 + 0x28)" (( "(") (binary_expression "unaff_R15 + 0x28" (identifier "unaff_R15") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0017a690(*(long *)(unaff_R15 + 0x28) + 0x28,0xffffffffffffffff);\n  }" ({ "{") (expression_statement "FUN_0017a690(*(long *)(unaff_R15 + 0x28) + 0x28,0xffffffffffffffff);" (call_expression "FUN_0017a690(*(long *)(unaff_R15 + 0x28) + 0x28,0xffffffffffffffff)" (identifier "FUN_0017a690") (argument_list "(*(long *)(unaff_R15 + 0x28) + 0x28,0xffffffffffffffff)" (( "(") (binary_expression "*(long *)(unaff_R15 + 0x28) + 0x28" (pointer_expression "*(long *)(unaff_R15 + 0x28)" (* "*") (cast_expression "(long *)(unaff_R15 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_R15 + 0x28)" (( "(") (binary_expression "unaff_R15 + 0x28" (identifier "unaff_R15") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (number_literal "0x28")) (, ",") (number_literal "0xffffffffffffffff") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00181fb0(in_stack_00000010);" (call_expression "FUN_00181fb0(in_stack_00000010)" (identifier "FUN_00181fb0") (argument_list "(in_stack_00000010)" (( "(") (identifier "in_stack_00000010") () ")"))) (; ";")) (expression_statement "FUN_003688e0();" (call_expression "FUN_003688e0()" (identifier "FUN_003688e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* gold::preprocess_for_unique_sections(std::vector<std::pair<gold::Relobj*, unsigned int>,
   std::allocator<std::pair<gold::Relobj*, unsigned int> > > const&, std::vector<bool,
   std::allocator<bool> >*, std::vector<std::string, std::allocator<std::string > >*) [clone
   .cold.293] */

void gold::function_1(type_1 *param_1,type_1 *param_2,type_1 *param_3)

{
  int __in_chrg;
  long var_4;
  var_6<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>var_3>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_1<false,_false,var_2>var_3>
  *in_stack_00000010;
  
  __in_chrg = (int)param_2;
  if (*(long *)(var_4 + 0x28) != 0) {
    __in_chrg = -1;
    File_read::var_5((type_2 *)(*(long *)(var_4 + 0x28) + 0x28),(type_3 *)0xffffffffffffffff);
  }
  std::
  var_6<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>var_3>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_1<false,_false,var_2>var_3>
  ::~var_6(in_stack_00000010,__in_chrg);
                    /* WARNING: Subroutine does not return */
  var_7();
}


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

void MASKED(void)

{
  long unaff_R15;
  undefined8 in_stack_00000010;
  
  if (*(long *)(unaff_R15 + 0x28) != 0) {
    FUN_0017a690(*(long *)(unaff_R15 + 0x28) + 0x28,0xffffffffffffffff);
  }
  FUN_00181fb0(in_stack_00000010);
                    /* WARNING: Subroutine does not return */
  FUN_003688e0();
}

