
/* gold::Versions::define_base_version(gold::Stringpool_template<char>*) [clone .cold.491] */

void gold::Versions::define_base_version(Stringpool_template *param_1)

{
  void *unaff_RBP;
  int __in_chrg;
  
                    /* catch() { ... } // from try @ 00152535 with catch @ 001524f3 */
  __cxa_end_catch();
  if (*(void **)((long)unaff_RBP + 0x18) != (void *)0x0) {
    operator_delete(*(void **)((long)unaff_RBP + 0x18));
  }
  __in_chrg = 0x38;
  operator_delete(unaff_RBP,0x38);
  std::
  vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>
  ::~vector((vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>
             *)&stack0x00000010,__in_chrg);
                    /* WARNING: Subroutine does not return */
  _Unwind_Resume();
}



void FUN_001524f2(void)

{
  long unaff_RBP;
  
                    /* catch() { ... } // from try @ 00152535 with catch @ 001524f3 */
  FUN_00338330();
  if (*(long *)(unaff_RBP + 0x18) != 0) {
    FUN_00338a50();
  }
  thunk_FUN_00338a50();
  FUN_001d9320(&stack0x00000010);
                    /* WARNING: Subroutine does not return */
  FUN_003c66c0();
}


NOP
MOV RBX,RAX
CALL 0x00338330
MOV RDI,qword ptr [RBP + 0x18]
TEST RDI,RDI
JZ 0x00152509
CALL 0x00338a50
MOV ESI,0x38
MOV RDI,RBP
CALL 0x00338a40
LEA RDI,[RSP + 0x10]
CALL 0x001d9320
MOV RDI,RBX
CALL 0x003c66c0
(translation_unit "void FUN_001524f2(void)\n\n{\n  long unaff_RBP;\n  \n                    /* catch() { ... } // from try @ 00152535 with catch @ 001524f3 */\n  FUN_00338330();\n  if (*(long *)(unaff_RBP + 0x18) != 0) {\n    FUN_00338a50();\n  }\n  thunk_FUN_00338a50();\n  FUN_001d9320(&stack0x00000010);\n                    /* WARNING: Subroutine does not return */\n  FUN_003c66c0();\n}\n\n" (function_definition "void FUN_001524f2(void)\n\n{\n  long unaff_RBP;\n  \n                    /* catch() { ... } // from try @ 00152535 with catch @ 001524f3 */\n  FUN_00338330();\n  if (*(long *)(unaff_RBP + 0x18) != 0) {\n    FUN_00338a50();\n  }\n  thunk_FUN_00338a50();\n  FUN_001d9320(&stack0x00000010);\n                    /* WARNING: Subroutine does not return */\n  FUN_003c66c0();\n}" primitive_type (function_declarator "FUN_001524f2(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  long unaff_RBP;\n  \n                    /* catch() { ... } // from try @ 00152535 with catch @ 001524f3 */\n  FUN_00338330();\n  if (*(long *)(unaff_RBP + 0x18) != 0) {\n    FUN_00338a50();\n  }\n  thunk_FUN_00338a50();\n  FUN_001d9320(&stack0x00000010);\n                    /* WARNING: Subroutine does not return */\n  FUN_003c66c0();\n}" { (declaration "long unaff_RBP;" (sized_type_specifier "long" long) identifier ;) comment (expression_statement "FUN_00338330();" (call_expression "FUN_00338330()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*(long *)(unaff_RBP + 0x18) != 0) {\n    FUN_00338a50();\n  }" if (parenthesized_expression "(*(long *)(unaff_RBP + 0x18) != 0)" ( (binary_expression "*(long *)(unaff_RBP + 0x18) != 0" (pointer_expression "*(long *)(unaff_RBP + 0x18)" * (cast_expression "(long *)(unaff_RBP + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_RBP + 0x18)" ( (binary_expression "unaff_RBP + 0x18" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_00338a50();\n  }" { (expression_statement "FUN_00338a50();" (call_expression "FUN_00338a50()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "thunk_FUN_00338a50();" (call_expression "thunk_FUN_00338a50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_001d9320(&stack0x00000010);" (call_expression "FUN_001d9320(&stack0x00000010)" identifier (argument_list "(&stack0x00000010)" ( (pointer_expression "&stack0x00000010" & identifier) ))) ;) comment (expression_statement "FUN_003c66c0();" (call_expression "FUN_003c66c0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* gold::Versions::define_base_version(gold::Stringpool_template<char>*) [clone .cold.491] */\n\nvoid gold::Versions::define_base_version(Stringpool_template *param_1)\n\n{\n  void *unaff_RBP;\n  int __in_chrg;\n  \n                    /* catch() { ... } // from try @ 00152535 with catch @ 001524f3 */\n  __cxa_end_catch();\n  if (*(void **)((long)unaff_RBP + 0x18) != (void *)0x0) {\n    operator_delete(*(void **)((long)unaff_RBP + 0x18));\n  }\n  __in_chrg = 0x38;\n  operator_delete(unaff_RBP,0x38);\n  std::\n  vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n  ::~vector((vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n             *)&stack0x00000010,__in_chrg);\n                    /* WARNING: Subroutine does not return */\n  _Unwind_Resume();\n}\n\n" comment (function_definition "void gold::Versions::define_base_version(Stringpool_template *param_1)\n\n{\n  void *unaff_RBP;\n  int __in_chrg;\n  \n                    /* catch() { ... } // from try @ 00152535 with catch @ 001524f3 */\n  __cxa_end_catch();\n  if (*(void **)((long)unaff_RBP + 0x18) != (void *)0x0) {\n    operator_delete(*(void **)((long)unaff_RBP + 0x18));\n  }\n  __in_chrg = 0x38;\n  operator_delete(unaff_RBP,0x38);\n  std::\n  vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n  ::~vector((vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n             *)&stack0x00000010,__in_chrg);\n                    /* WARNING: Subroutine does not return */\n  _Unwind_Resume();\n}" primitive_type (ERROR "gold::Versions::" identifier : : identifier : :) (function_declarator "define_base_version(Stringpool_template *param_1)" identifier (parameter_list "(Stringpool_template *param_1)" ( (parameter_declaration "Stringpool_template *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  void *unaff_RBP;\n  int __in_chrg;\n  \n                    /* catch() { ... } // from try @ 00152535 with catch @ 001524f3 */\n  __cxa_end_catch();\n  if (*(void **)((long)unaff_RBP + 0x18) != (void *)0x0) {\n    operator_delete(*(void **)((long)unaff_RBP + 0x18));\n  }\n  __in_chrg = 0x38;\n  operator_delete(unaff_RBP,0x38);\n  std::\n  vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n  ::~vector((vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n             *)&stack0x00000010,__in_chrg);\n                    /* WARNING: Subroutine does not return */\n  _Unwind_Resume();\n}" { (declaration "void *unaff_RBP;" primitive_type (pointer_declarator "*unaff_RBP" * identifier) ;) (declaration "int __in_chrg;" primitive_type identifier ;) comment (expression_statement "__cxa_end_catch();" (call_expression "__cxa_end_catch()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*(void **)((long)unaff_RBP + 0x18) != (void *)0x0) {\n    operator_delete(*(void **)((long)unaff_RBP + 0x18));\n  }" if (parenthesized_expression "(*(void **)((long)unaff_RBP + 0x18) != (void *)0x0)" ( (binary_expression "*(void **)((long)unaff_RBP + 0x18) != (void *)0x0" (pointer_expression "*(void **)((long)unaff_RBP + 0x18)" * (cast_expression "(void **)((long)unaff_RBP + 0x18)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)unaff_RBP + 0x18)" ( (binary_expression "(long)unaff_RBP + 0x18" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    operator_delete(*(void **)((long)unaff_RBP + 0x18));\n  }" { (expression_statement "operator_delete(*(void **)((long)unaff_RBP + 0x18));" (call_expression "operator_delete(*(void **)((long)unaff_RBP + 0x18))" identifier (argument_list "(*(void **)((long)unaff_RBP + 0x18))" ( (pointer_expression "*(void **)((long)unaff_RBP + 0x18)" * (cast_expression "(void **)((long)unaff_RBP + 0x18)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)unaff_RBP + 0x18)" ( (binary_expression "(long)unaff_RBP + 0x18" (cast_expression "(long)unaff_RBP" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "__in_chrg = 0x38;" (assignment_expression "__in_chrg = 0x38" identifier = number_literal) ;) (expression_statement "operator_delete(unaff_RBP,0x38);" (call_expression "operator_delete(unaff_RBP,0x38)" identifier (argument_list "(unaff_RBP,0x38)" ( identifier , number_literal ))) ;) (ERROR "std::\n  vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (comma_expression "std::\n  vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std" identifier (ERROR "::\n  vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>" : : (binary_expression "vector<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : :) (expression_statement "allocator<char>_>_>_>\n  ::~vector((vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n             *)&stack0x00000010,__in_chrg);" (binary_expression "allocator<char>_>_>_>\n  ::~vector((vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n             *)&stack0x00000010,__in_chrg)" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > (ERROR "::" : :) (unary_expression "~vector((vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n             *)&stack0x00000010,__in_chrg)" ~ (call_expression "vector((vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n             *)&stack0x00000010,__in_chrg)" identifier (argument_list "((vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n             *)&stack0x00000010,__in_chrg)" ( (binary_expression "(vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n             *)&stack0x00000010" (parenthesized_expression "(vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n             *)" ( (ERROR "vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (binary_expression "vector<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_>_>\n             *" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > (pointer_expression "*" * identifier)) )) & identifier) , identifier ))))) ;) comment (expression_statement "_Unwind_Resume();" (call_expression "_Unwind_Resume()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void FUN_001524f2(void)\n\n{\n  long unaff_RBP;\n  \n                    \n  FUN_00338330();\n  if (*(long *)(unaff_RBP + 0x18) != 0) {\n    FUN_00338a50();\n  }\n  thunk_FUN_00338a50();\n  FUN_001d9320(&stack0x00000010);\n                    \n  FUN_003c66c0();\n}\n\n" (function_definition "void FUN_001524f2(void)\n\n{\n  long unaff_RBP;\n  \n                    \n  FUN_00338330();\n  if (*(long *)(unaff_RBP + 0x18) != 0) {\n    FUN_00338a50();\n  }\n  thunk_FUN_00338a50();\n  FUN_001d9320(&stack0x00000010);\n                    \n  FUN_003c66c0();\n}" primitive_type (function_declarator "FUN_001524f2(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  long unaff_RBP;\n  \n                    \n  FUN_00338330();\n  if (*(long *)(unaff_RBP + 0x18) != 0) {\n    FUN_00338a50();\n  }\n  thunk_FUN_00338a50();\n  FUN_001d9320(&stack0x00000010);\n                    \n  FUN_003c66c0();\n}" { (declaration "long unaff_RBP;" (sized_type_specifier "long" long) identifier ;) (expression_statement "FUN_00338330();" (call_expression "FUN_00338330()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*(long *)(unaff_RBP + 0x18) != 0) {\n    FUN_00338a50();\n  }" if (parenthesized_expression "(*(long *)(unaff_RBP + 0x18) != 0)" ( (binary_expression "*(long *)(unaff_RBP + 0x18) != 0" (pointer_expression "*(long *)(unaff_RBP + 0x18)" * (cast_expression "(long *)(unaff_RBP + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_RBP + 0x18)" ( (binary_expression "unaff_RBP + 0x18" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_00338a50();\n  }" { (expression_statement "FUN_00338a50();" (call_expression "FUN_00338a50()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "thunk_FUN_00338a50();" (call_expression "thunk_FUN_00338a50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_001d9320(&stack0x00000010);" (call_expression "FUN_001d9320(&stack0x00000010)" identifier (argument_list "(&stack0x00000010)" ( (pointer_expression "&stack0x00000010" & identifier) ))) ;) (expression_statement "FUN_003c66c0();" (call_expression "FUN_003c66c0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void FUN_001524f2(void)\n\n{\n  long unaff_RBP;\n  \n                    \n  FUN_00338330();\n  if (*(long *)(unaff_RBP + 0x18) != 0) {\n    FUN_00338a50();\n  }\n  thunk_FUN_00338a50();\n  FUN_001d9320(&stack0x00000010);\n                    \n  FUN_003c66c0();\n}" (primitive_type "void") (function_declarator "FUN_001524f2(void)" (identifier "FUN_001524f2") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  long unaff_RBP;\n  \n                    \n  FUN_00338330();\n  if (*(long *)(unaff_RBP + 0x18) != 0) {\n    FUN_00338a50();\n  }\n  thunk_FUN_00338a50();\n  FUN_001d9320(&stack0x00000010);\n                    \n  FUN_003c66c0();\n}" ({ "{") (declaration "long unaff_RBP;" (sized_type_specifier "long" (long "long")) (identifier "unaff_RBP") (; ";")) (expression_statement "FUN_00338330();" (call_expression "FUN_00338330()" (identifier "FUN_00338330") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (*(long *)(unaff_RBP + 0x18) != 0) {\n    FUN_00338a50();\n  }" (if "if") (parenthesized_expression "(*(long *)(unaff_RBP + 0x18) != 0)" (( "(") (binary_expression "*(long *)(unaff_RBP + 0x18) != 0" (pointer_expression "*(long *)(unaff_RBP + 0x18)" (* "*") (cast_expression "(long *)(unaff_RBP + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_RBP + 0x18)" (( "(") (binary_expression "unaff_RBP + 0x18" (identifier "unaff_RBP") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00338a50();\n  }" ({ "{") (expression_statement "FUN_00338a50();" (call_expression "FUN_00338a50()" (identifier "FUN_00338a50") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "thunk_FUN_00338a50();" (call_expression "thunk_FUN_00338a50()" (identifier "thunk_FUN_00338a50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_001d9320(&stack0x00000010);" (call_expression "FUN_001d9320(&stack0x00000010)" (identifier "FUN_001d9320") (argument_list "(&stack0x00000010)" (( "(") (pointer_expression "&stack0x00000010" (& "&") (identifier "stack0x00000010")) () ")"))) (; ";")) (expression_statement "FUN_003c66c0();" (call_expression "FUN_003c66c0()" (identifier "FUN_003c66c0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* gold::Versions::define_base_version(gold::Stringpool_template<char>*) [clone .cold.491] */

void gold::Versions::function_1(type_1 *param_1)

{
  void *unaff_RBP;
  int __in_chrg;
  
                    /* catch() { ... } // from try @ 00152535 with catch @ 001524f3 */
  var_1();
  if (*(void **)((long)unaff_RBP + 0x18) != (void *)0x0) {
    var_2(*(void **)((long)unaff_RBP + 0x18));
  }
  __in_chrg = 0x38;
  var_2(unaff_RBP,0x38);
  std::
  var_6<std::__cxx11::basic_string<var_4,_std::char_traits<var_4>,_std::var_3<var_4>var_5>,_std::var_3<std::__cxx11::basic_string<var_4,_std::char_traits<var_4>,_std::var_3<var_4>var_5>var_5>var_5>
  ::~var_6((var_6<std::__cxx11::basic_string<var_4,_std::char_traits<var_4>,_std::var_3<var_4>var_5>,_std::var_3<std::__cxx11::basic_string<var_4,_std::char_traits<var_4>,_std::var_3<var_4>var_5>var_5>var_5>
             *)&var_7,__in_chrg);
                    /* WARNING: Subroutine does not return */
  var_8();
}


(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)) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (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))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))

void MASKED(void)

{
  long unaff_RBP;
  
                    /* catch() { ... } // from try @ 00152535 with catch @ 001524f3 */
  FUN_00338330();
  if (*(long *)(unaff_RBP + 0x18) != 0) {
    FUN_00338a50();
  }
  thunk_FUN_00338a50();
  FUN_001d9320(&stack0x00000010);
                    /* WARNING: Subroutine does not return */
  FUN_003c66c0();
}

