
void FUN_0014c8e9(undefined8 param_1,int param_2)

{
  undefined8 *unaff_RBX;
  Stringpool_template<unsigned_int> *in_stack_00000018;
  
  if ((void *)unaff_RBX[0x24] != (void *)0x0) {
    operator_delete((void *)unaff_RBX[0x24]);
  }
  gold::Stringpool_template<unsigned_int>::~Stringpool_template(in_stack_00000018,param_2);
  *unaff_RBX = &DAT_00438138;
  std::
  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
  ::~_Hashtable((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                 *)(unaff_RBX + 0xb),param_2);
  operator_delete(unaff_RBX,0x148);
                    /* WARNING: Subroutine does not return */
  _Unwind_Resume();
}



void FUN_0014c8e9(void)

{
  undefined8 *unaff_RBX;
  undefined8 in_stack_00000018;
  
  if (unaff_RBX[0x24] != 0) {
    FUN_002dac70();
  }
  FUN_0026cba0(in_stack_00000018);
  *unaff_RBX = &DAT_00438138;
  FUN_00209dc0(unaff_RBX + 0xb);
  thunk_FUN_002dac70();
                    /* WARNING: Subroutine does not return */
  FUN_003688e0();
}


MOV RDI,qword ptr [RBX + 0x120]
TEST RDI,RDI
JZ 0x0014c8fa
CALL 0x002dac70
MOV RDI,qword ptr [RSP + 0x18]
CALL 0x0026cba0
JMP 0x0014c91c
(translation_unit "void FUN_0014c8e9(void)\n\n{\n  undefined8 *unaff_RBX;\n  undefined8 in_stack_00000018;\n  \n  if (unaff_RBX[0x24] != 0) {\n    FUN_002dac70();\n  }\n  FUN_0026cba0(in_stack_00000018);\n  *unaff_RBX = &DAT_00438138;\n  FUN_00209dc0(unaff_RBX + 0xb);\n  thunk_FUN_002dac70();\n                    /* WARNING: Subroutine does not return */\n  FUN_003688e0();\n}\n\n" (function_definition "void FUN_0014c8e9(void)\n\n{\n  undefined8 *unaff_RBX;\n  undefined8 in_stack_00000018;\n  \n  if (unaff_RBX[0x24] != 0) {\n    FUN_002dac70();\n  }\n  FUN_0026cba0(in_stack_00000018);\n  *unaff_RBX = &DAT_00438138;\n  FUN_00209dc0(unaff_RBX + 0xb);\n  thunk_FUN_002dac70();\n                    /* WARNING: Subroutine does not return */\n  FUN_003688e0();\n}" primitive_type (function_declarator "FUN_0014c8e9(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined8 *unaff_RBX;\n  undefined8 in_stack_00000018;\n  \n  if (unaff_RBX[0x24] != 0) {\n    FUN_002dac70();\n  }\n  FUN_0026cba0(in_stack_00000018);\n  *unaff_RBX = &DAT_00438138;\n  FUN_00209dc0(unaff_RBX + 0xb);\n  thunk_FUN_002dac70();\n                    /* WARNING: Subroutine does not return */\n  FUN_003688e0();\n}" { (declaration "undefined8 *unaff_RBX;" type_identifier (pointer_declarator "*unaff_RBX" * identifier) ;) (declaration "undefined8 in_stack_00000018;" type_identifier identifier ;) (if_statement "if (unaff_RBX[0x24] != 0) {\n    FUN_002dac70();\n  }" if (parenthesized_expression "(unaff_RBX[0x24] != 0)" ( (binary_expression "unaff_RBX[0x24] != 0" (subscript_expression "unaff_RBX[0x24]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_002dac70();\n  }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_0026cba0(in_stack_00000018);" (call_expression "FUN_0026cba0(in_stack_00000018)" identifier (argument_list "(in_stack_00000018)" ( identifier ))) ;) (expression_statement "*unaff_RBX = &DAT_00438138;" (assignment_expression "*unaff_RBX = &DAT_00438138" (pointer_expression "*unaff_RBX" * identifier) = (pointer_expression "&DAT_00438138" & identifier)) ;) (expression_statement "FUN_00209dc0(unaff_RBX + 0xb);" (call_expression "FUN_00209dc0(unaff_RBX + 0xb)" identifier (argument_list "(unaff_RBX + 0xb)" ( (binary_expression "unaff_RBX + 0xb" identifier + number_literal) ))) ;) (expression_statement "thunk_FUN_002dac70();" (call_expression "thunk_FUN_002dac70()" identifier (argument_list "()" ( ))) ;) comment (expression_statement "FUN_003688e0();" (call_expression "FUN_003688e0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void FUN_0014c8e9(undefined8 param_1,int param_2)\n\n{\n  undefined8 *unaff_RBX;\n  Stringpool_template<unsigned_int> *in_stack_00000018;\n  \n  if ((void *)unaff_RBX[0x24] != (void *)0x0) {\n    operator_delete((void *)unaff_RBX[0x24]);\n  }\n  gold::Stringpool_template<unsigned_int>::~Stringpool_template(in_stack_00000018,param_2);\n  *unaff_RBX = &DAT_00438138;\n  std::\n  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  ::~_Hashtable((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 *)(unaff_RBX + 0xb),param_2);\n  operator_delete(unaff_RBX,0x148);\n                    /* WARNING: Subroutine does not return */\n  _Unwind_Resume();\n}\n\n" (function_definition "void FUN_0014c8e9(undefined8 param_1,int param_2)\n\n{\n  undefined8 *unaff_RBX;\n  Stringpool_template<unsigned_int> *in_stack_00000018;\n  \n  if ((void *)unaff_RBX[0x24] != (void *)0x0) {\n    operator_delete((void *)unaff_RBX[0x24]);\n  }\n  gold::Stringpool_template<unsigned_int>::~Stringpool_template(in_stack_00000018,param_2);\n  *unaff_RBX = &DAT_00438138;\n  std::\n  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  ::~_Hashtable((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 *)(unaff_RBX + 0xb),param_2);\n  operator_delete(unaff_RBX,0x148);\n                    /* WARNING: Subroutine does not return */\n  _Unwind_Resume();\n}" primitive_type (function_declarator "FUN_0014c8e9(undefined8 param_1,int param_2)" identifier (parameter_list "(undefined8 param_1,int param_2)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  undefined8 *unaff_RBX;\n  Stringpool_template<unsigned_int> *in_stack_00000018;\n  \n  if ((void *)unaff_RBX[0x24] != (void *)0x0) {\n    operator_delete((void *)unaff_RBX[0x24]);\n  }\n  gold::Stringpool_template<unsigned_int>::~Stringpool_template(in_stack_00000018,param_2);\n  *unaff_RBX = &DAT_00438138;\n  std::\n  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  ::~_Hashtable((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 *)(unaff_RBX + 0xb),param_2);\n  operator_delete(unaff_RBX,0x148);\n                    /* WARNING: Subroutine does not return */\n  _Unwind_Resume();\n}" { (declaration "undefined8 *unaff_RBX;" type_identifier (pointer_declarator "*unaff_RBX" * identifier) ;) (expression_statement "Stringpool_template<unsigned_int> *in_stack_00000018;" (binary_expression "Stringpool_template<unsigned_int> *in_stack_00000018" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (pointer_expression "*in_stack_00000018" * identifier)) ;) (if_statement "if ((void *)unaff_RBX[0x24] != (void *)0x0) {\n    operator_delete((void *)unaff_RBX[0x24]);\n  }" if (parenthesized_expression "((void *)unaff_RBX[0x24] != (void *)0x0)" ( (binary_expression "(void *)unaff_RBX[0x24] != (void *)0x0" (cast_expression "(void *)unaff_RBX[0x24]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "unaff_RBX[0x24]" identifier [ number_literal ])) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    operator_delete((void *)unaff_RBX[0x24]);\n  }" { (expression_statement "operator_delete((void *)unaff_RBX[0x24]);" (call_expression "operator_delete((void *)unaff_RBX[0x24])" identifier (argument_list "((void *)unaff_RBX[0x24])" ( (cast_expression "(void *)unaff_RBX[0x24]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "unaff_RBX[0x24]" identifier [ number_literal ])) ))) ;) })) (labeled_statement "gold::Stringpool_template<unsigned_int>::~Stringpool_template(in_stack_00000018,param_2);" statement_identifier (ERROR "::Stringpool_template<unsigned_int>:" : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > :) : (expression_statement "~Stringpool_template(in_stack_00000018,param_2);" (unary_expression "~Stringpool_template(in_stack_00000018,param_2)" ~ (call_expression "Stringpool_template(in_stack_00000018,param_2)" identifier (argument_list "(in_stack_00000018,param_2)" ( identifier , identifier )))) ;)) (expression_statement "*unaff_RBX = &DAT_00438138;" (assignment_expression "*unaff_RBX = &DAT_00438138" (pointer_expression "*unaff_RBX" * identifier) = (pointer_expression "&DAT_00438138" & identifier)) ;) (ERROR "std::\n  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::" (comma_expression "std::\n  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::\n  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "_Hashtable<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold" identifier (ERROR "::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>" : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , (binary_expression "_unsigned_int>_" identifier > identifier) >) , identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  ::~_Hashtable((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 *)(unaff_RBX + 0xb),param_2);" 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<true,_true,_true>_>\n  ::~_Hashtable((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 *)(unaff_RBX + 0xb),param_2);" 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<true,_true,_true>_>\n  ::~_Hashtable((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 *)(unaff_RBX + 0xb),param_2);" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,_true,_true>_>\n  ::~_Hashtable((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 *)(unaff_RBX + 0xb),param_2);" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<true,_true,_true>_>\n  ::~_Hashtable((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 *)(unaff_RBX + 0xb),param_2);" (comma_expression "_Hashtable_traits<true,_true,_true>_>\n  ::~_Hashtable((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 *)(unaff_RBX + 0xb),param_2)" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n  ::~_Hashtable((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 *)(unaff_RBX + 0xb),param_2)" identifier , (binary_expression "_true>_>\n  ::~_Hashtable((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 *)(unaff_RBX + 0xb),param_2)" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) (unary_expression "~_Hashtable((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 *)(unaff_RBX + 0xb),param_2)" ~ (call_expression "_Hashtable((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 *)(unaff_RBX + 0xb),param_2)" identifier (argument_list "((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 *)(unaff_RBX + 0xb),param_2)" ( (call_expression "(_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 *)(unaff_RBX + 0xb)" (parenthesized_expression "(_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 *)" ( (ERROR "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Hashtable<std::pair<gold" (binary_expression "_Hashtable<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) (ERROR "::__detail::_Identity" : : identifier : : identifier) , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>,_gold" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_true,_true>_>\n                 *" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                 *" identifier , (binary_expression "_true>_>\n                 *" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*" * identifier)))) )) (argument_list "(unaff_RBX + 0xb)" ( (binary_expression "unaff_RBX + 0xb" identifier + number_literal) ))) , identifier ))))))) ;))))) (expression_statement "operator_delete(unaff_RBX,0x148);" (call_expression "operator_delete(unaff_RBX,0x148)" identifier (argument_list "(unaff_RBX,0x148)" ( identifier , number_literal ))) ;) comment (expression_statement "_Unwind_Resume();" (call_expression "_Unwind_Resume()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void FUN_0014c8e9(void)\n\n{\n  undefined8 *unaff_RBX;\n  undefined8 in_stack_00000018;\n  \n  if (unaff_RBX[0x24] != 0) {\n    FUN_002dac70();\n  }\n  FUN_0026cba0(in_stack_00000018);\n  *unaff_RBX = &DAT_00438138;\n  FUN_00209dc0(unaff_RBX + 0xb);\n  thunk_FUN_002dac70();\n                    \n  FUN_003688e0();\n}\n\n" (function_definition "void FUN_0014c8e9(void)\n\n{\n  undefined8 *unaff_RBX;\n  undefined8 in_stack_00000018;\n  \n  if (unaff_RBX[0x24] != 0) {\n    FUN_002dac70();\n  }\n  FUN_0026cba0(in_stack_00000018);\n  *unaff_RBX = &DAT_00438138;\n  FUN_00209dc0(unaff_RBX + 0xb);\n  thunk_FUN_002dac70();\n                    \n  FUN_003688e0();\n}" primitive_type (function_declarator "FUN_0014c8e9(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined8 *unaff_RBX;\n  undefined8 in_stack_00000018;\n  \n  if (unaff_RBX[0x24] != 0) {\n    FUN_002dac70();\n  }\n  FUN_0026cba0(in_stack_00000018);\n  *unaff_RBX = &DAT_00438138;\n  FUN_00209dc0(unaff_RBX + 0xb);\n  thunk_FUN_002dac70();\n                    \n  FUN_003688e0();\n}" { (declaration "undefined8 *unaff_RBX;" type_identifier (pointer_declarator "*unaff_RBX" * identifier) ;) (declaration "undefined8 in_stack_00000018;" type_identifier identifier ;) (if_statement "if (unaff_RBX[0x24] != 0) {\n    FUN_002dac70();\n  }" if (parenthesized_expression "(unaff_RBX[0x24] != 0)" ( (binary_expression "unaff_RBX[0x24] != 0" (subscript_expression "unaff_RBX[0x24]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_002dac70();\n  }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_0026cba0(in_stack_00000018);" (call_expression "FUN_0026cba0(in_stack_00000018)" identifier (argument_list "(in_stack_00000018)" ( identifier ))) ;) (expression_statement "*unaff_RBX = &DAT_00438138;" (assignment_expression "*unaff_RBX = &DAT_00438138" (pointer_expression "*unaff_RBX" * identifier) = (pointer_expression "&DAT_00438138" & identifier)) ;) (expression_statement "FUN_00209dc0(unaff_RBX + 0xb);" (call_expression "FUN_00209dc0(unaff_RBX + 0xb)" identifier (argument_list "(unaff_RBX + 0xb)" ( (binary_expression "unaff_RBX + 0xb" identifier + number_literal) ))) ;) (expression_statement "thunk_FUN_002dac70();" (call_expression "thunk_FUN_002dac70()" identifier (argument_list "()" ( ))) ;) (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 TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void FUN_0014c8e9(void)\n\n{\n  undefined8 *unaff_RBX;\n  undefined8 in_stack_00000018;\n  \n  if (unaff_RBX[0x24] != 0) {\n    FUN_002dac70();\n  }\n  FUN_0026cba0(in_stack_00000018);\n  *unaff_RBX = &DAT_00438138;\n  FUN_00209dc0(unaff_RBX + 0xb);\n  thunk_FUN_002dac70();\n                    \n  FUN_003688e0();\n}" (primitive_type "void") (function_declarator "FUN_0014c8e9(void)" (identifier "FUN_0014c8e9") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  undefined8 *unaff_RBX;\n  undefined8 in_stack_00000018;\n  \n  if (unaff_RBX[0x24] != 0) {\n    FUN_002dac70();\n  }\n  FUN_0026cba0(in_stack_00000018);\n  *unaff_RBX = &DAT_00438138;\n  FUN_00209dc0(unaff_RBX + 0xb);\n  thunk_FUN_002dac70();\n                    \n  FUN_003688e0();\n}" ({ "{") (declaration "undefined8 *unaff_RBX;" (type_identifier "undefined8") (pointer_declarator "*unaff_RBX" (* "*") (identifier "unaff_RBX")) (; ";")) (declaration "undefined8 in_stack_00000018;" (type_identifier "undefined8") (identifier "in_stack_00000018") (; ";")) (if_statement "if (unaff_RBX[0x24] != 0) {\n    FUN_002dac70();\n  }" (if "if") (parenthesized_expression "(unaff_RBX[0x24] != 0)" (( "(") (binary_expression "unaff_RBX[0x24] != 0" (subscript_expression "unaff_RBX[0x24]" (identifier "unaff_RBX") ([ "[") (number_literal "0x24") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_002dac70();\n  }" ({ "{") (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" (identifier "FUN_002dac70") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0026cba0(in_stack_00000018);" (call_expression "FUN_0026cba0(in_stack_00000018)" (identifier "FUN_0026cba0") (argument_list "(in_stack_00000018)" (( "(") (identifier "in_stack_00000018") () ")"))) (; ";")) (expression_statement "*unaff_RBX = &DAT_00438138;" (assignment_expression "*unaff_RBX = &DAT_00438138" (pointer_expression "*unaff_RBX" (* "*") (identifier "unaff_RBX")) (= "=") (pointer_expression "&DAT_00438138" (& "&") (identifier "DAT_00438138"))) (; ";")) (expression_statement "FUN_00209dc0(unaff_RBX + 0xb);" (call_expression "FUN_00209dc0(unaff_RBX + 0xb)" (identifier "FUN_00209dc0") (argument_list "(unaff_RBX + 0xb)" (( "(") (binary_expression "unaff_RBX + 0xb" (identifier "unaff_RBX") (+ "+") (number_literal "0xb")) () ")"))) (; ";")) (expression_statement "thunk_FUN_002dac70();" (call_expression "thunk_FUN_002dac70()" (identifier "thunk_FUN_002dac70") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_003688e0();" (call_expression "FUN_003688e0()" (identifier "FUN_003688e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

void function_1(type_1 param_1,int param_2)

{
  type_1 *var_8;
  var_1<var_2> *in_stack_00000018;
  
  if ((void *)var_8[0x24] != (void *)0x0) {
    var_3((void *)var_8[0x24]);
  }
  gold::var_1<var_2>::~var_1(in_stack_00000018,param_2);
  *var_8 = &DAT_00438138;
  std::
  var_7<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>var_6>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>var_6>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_4<true,var_5,var_5>var_6>
  ::~var_7((var_7<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>var_6>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>var_6>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_4<true,var_5,var_5>var_6>
                 *)(var_8 + 0xb),param_2);
  var_3(var_8,0x148);
                    /* WARNING: Subroutine does not return */
  var_9();
}


(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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (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))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))

void MASKED(void)

{
  undefined8 *unaff_RBX;
  undefined8 in_stack_00000018;
  
  if (unaff_RBX[0x24] != 0) {
    FUN_002dac70();
  }
  FUN_0026cba0(in_stack_00000018);
  *unaff_RBX = &DAT_00438138;
  FUN_00209dc0(unaff_RBX + 0xb);
  thunk_FUN_002dac70();
                    /* WARNING: Subroutine does not return */
  FUN_003688e0();
}

