
void script_new_string_list_cold_466(void)

{
  undefined8 *unaff_RBX;
  long unaff_RBP;
  void *unaff_retaddr;
  
                    /* catch() { ... } // from try @ 0014447c with catch @ 00144438 */
  __cxa_end_catch();
  if ((void *)*unaff_RBX != (void *)0x0) {
    operator_delete((void *)*unaff_RBX);
  }
  operator_delete(unaff_RBX,0x18);
  if (unaff_retaddr != (void *)(unaff_RBP + 0x10)) {
    operator_delete(unaff_retaddr);
  }
                    /* WARNING: Subroutine does not return */
  _Unwind_Resume();
}



void FUN_00144437(void)

{
  long *unaff_RBX;
  long unaff_RBP;
  long unaff_retaddr;
  
                    /* catch() { ... } // from try @ 0014447c with catch @ 00144438 */
  FUN_00276600();
  if (*unaff_RBX != 0) {
    FUN_00276d20();
  }
  thunk_FUN_00276d20();
  if (unaff_retaddr != unaff_RBP + 0x10) {
    FUN_00276d20();
  }
                    /* WARNING: Subroutine does not return */
  FUN_00304990();
}


NOP
MOV R12,RAX
CALL 0x00276600
MOV RDI,qword ptr [RBX]
TEST RDI,RDI
JZ 0x0014444d
CALL 0x00276d20
MOV ESI,0x18
MOV RDI,RBX
CALL 0x00276d10
MOV RDI,qword ptr [RSP]
ADD RBP,0x10
CMP RDI,RBP
JZ 0x0014446c
CALL 0x00276d20
MOV RDI,R12
CALL 0x00304990
(translation_unit "void FUN_00144437(void)\n\n{\n  long *unaff_RBX;\n  long unaff_RBP;\n  long unaff_retaddr;\n  \n                    /* catch() { ... } // from try @ 0014447c with catch @ 00144438 */\n  FUN_00276600();\n  if (*unaff_RBX != 0) {\n    FUN_00276d20();\n  }\n  thunk_FUN_00276d20();\n  if (unaff_retaddr != unaff_RBP + 0x10) {\n    FUN_00276d20();\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00304990();\n}\n\n" (function_definition "void FUN_00144437(void)\n\n{\n  long *unaff_RBX;\n  long unaff_RBP;\n  long unaff_retaddr;\n  \n                    /* catch() { ... } // from try @ 0014447c with catch @ 00144438 */\n  FUN_00276600();\n  if (*unaff_RBX != 0) {\n    FUN_00276d20();\n  }\n  thunk_FUN_00276d20();\n  if (unaff_retaddr != unaff_RBP + 0x10) {\n    FUN_00276d20();\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00304990();\n}" primitive_type (function_declarator "FUN_00144437(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  long *unaff_RBX;\n  long unaff_RBP;\n  long unaff_retaddr;\n  \n                    /* catch() { ... } // from try @ 0014447c with catch @ 00144438 */\n  FUN_00276600();\n  if (*unaff_RBX != 0) {\n    FUN_00276d20();\n  }\n  thunk_FUN_00276d20();\n  if (unaff_retaddr != unaff_RBP + 0x10) {\n    FUN_00276d20();\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00304990();\n}" { (declaration "long *unaff_RBX;" (sized_type_specifier "long" long) (pointer_declarator "*unaff_RBX" * identifier) ;) (declaration "long unaff_RBP;" (sized_type_specifier "long" long) identifier ;) (declaration "long unaff_retaddr;" (sized_type_specifier "long" long) identifier ;) comment (expression_statement "FUN_00276600();" (call_expression "FUN_00276600()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*unaff_RBX != 0) {\n    FUN_00276d20();\n  }" if (parenthesized_expression "(*unaff_RBX != 0)" ( (binary_expression "*unaff_RBX != 0" (pointer_expression "*unaff_RBX" * identifier) != number_literal) )) (compound_statement "{\n    FUN_00276d20();\n  }" { (expression_statement "FUN_00276d20();" (call_expression "FUN_00276d20()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "thunk_FUN_00276d20();" (call_expression "thunk_FUN_00276d20()" identifier (argument_list "()" ( ))) ;) (if_statement "if (unaff_retaddr != unaff_RBP + 0x10) {\n    FUN_00276d20();\n  }" if (parenthesized_expression "(unaff_retaddr != unaff_RBP + 0x10)" ( (binary_expression "unaff_retaddr != unaff_RBP + 0x10" identifier != (binary_expression "unaff_RBP + 0x10" identifier + number_literal)) )) (compound_statement "{\n    FUN_00276d20();\n  }" { (expression_statement "FUN_00276d20();" (call_expression "FUN_00276d20()" identifier (argument_list "()" ( ))) ;) })) comment (expression_statement "FUN_00304990();" (call_expression "FUN_00304990()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void script_new_string_list_cold_466(void)\n\n{\n  undefined8 *unaff_RBX;\n  long unaff_RBP;\n  void *unaff_retaddr;\n  \n                    /* catch() { ... } // from try @ 0014447c with catch @ 00144438 */\n  __cxa_end_catch();\n  if ((void *)*unaff_RBX != (void *)0x0) {\n    operator_delete((void *)*unaff_RBX);\n  }\n  operator_delete(unaff_RBX,0x18);\n  if (unaff_retaddr != (void *)(unaff_RBP + 0x10)) {\n    operator_delete(unaff_retaddr);\n  }\n                    /* WARNING: Subroutine does not return */\n  _Unwind_Resume();\n}\n\n" (function_definition "void script_new_string_list_cold_466(void)\n\n{\n  undefined8 *unaff_RBX;\n  long unaff_RBP;\n  void *unaff_retaddr;\n  \n                    /* catch() { ... } // from try @ 0014447c with catch @ 00144438 */\n  __cxa_end_catch();\n  if ((void *)*unaff_RBX != (void *)0x0) {\n    operator_delete((void *)*unaff_RBX);\n  }\n  operator_delete(unaff_RBX,0x18);\n  if (unaff_retaddr != (void *)(unaff_RBP + 0x10)) {\n    operator_delete(unaff_retaddr);\n  }\n                    /* WARNING: Subroutine does not return */\n  _Unwind_Resume();\n}" primitive_type (function_declarator "script_new_string_list_cold_466(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined8 *unaff_RBX;\n  long unaff_RBP;\n  void *unaff_retaddr;\n  \n                    /* catch() { ... } // from try @ 0014447c with catch @ 00144438 */\n  __cxa_end_catch();\n  if ((void *)*unaff_RBX != (void *)0x0) {\n    operator_delete((void *)*unaff_RBX);\n  }\n  operator_delete(unaff_RBX,0x18);\n  if (unaff_retaddr != (void *)(unaff_RBP + 0x10)) {\n    operator_delete(unaff_retaddr);\n  }\n                    /* WARNING: Subroutine does not return */\n  _Unwind_Resume();\n}" { (declaration "undefined8 *unaff_RBX;" type_identifier (pointer_declarator "*unaff_RBX" * identifier) ;) (declaration "long unaff_RBP;" (sized_type_specifier "long" long) identifier ;) (declaration "void *unaff_retaddr;" primitive_type (pointer_declarator "*unaff_retaddr" * identifier) ;) comment (expression_statement "__cxa_end_catch();" (call_expression "__cxa_end_catch()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((void *)*unaff_RBX != (void *)0x0) {\n    operator_delete((void *)*unaff_RBX);\n  }" if (parenthesized_expression "((void *)*unaff_RBX != (void *)0x0)" ( (binary_expression "(void *)*unaff_RBX != (void *)0x0" (cast_expression "(void *)*unaff_RBX" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*unaff_RBX" * identifier)) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    operator_delete((void *)*unaff_RBX);\n  }" { (expression_statement "operator_delete((void *)*unaff_RBX);" (call_expression "operator_delete((void *)*unaff_RBX)" identifier (argument_list "((void *)*unaff_RBX)" ( (cast_expression "(void *)*unaff_RBX" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*unaff_RBX" * identifier)) ))) ;) })) (expression_statement "operator_delete(unaff_RBX,0x18);" (call_expression "operator_delete(unaff_RBX,0x18)" identifier (argument_list "(unaff_RBX,0x18)" ( identifier , number_literal ))) ;) (if_statement "if (unaff_retaddr != (void *)(unaff_RBP + 0x10)) {\n    operator_delete(unaff_retaddr);\n  }" if (parenthesized_expression "(unaff_retaddr != (void *)(unaff_RBP + 0x10))" ( (binary_expression "unaff_retaddr != (void *)(unaff_RBP + 0x10)" identifier != (cast_expression "(void *)(unaff_RBP + 0x10)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_RBP + 0x10)" ( (binary_expression "unaff_RBP + 0x10" identifier + number_literal) )))) )) (compound_statement "{\n    operator_delete(unaff_retaddr);\n  }" { (expression_statement "operator_delete(unaff_retaddr);" (call_expression "operator_delete(unaff_retaddr)" identifier (argument_list "(unaff_retaddr)" ( identifier ))) ;) })) comment (expression_statement "_Unwind_Resume();" (call_expression "_Unwind_Resume()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void FUN_00144437(void)\n\n{\n  long *unaff_RBX;\n  long unaff_RBP;\n  long unaff_retaddr;\n  \n                    \n  FUN_00276600();\n  if (*unaff_RBX != 0) {\n    FUN_00276d20();\n  }\n  thunk_FUN_00276d20();\n  if (unaff_retaddr != unaff_RBP + 0x10) {\n    FUN_00276d20();\n  }\n                    \n  FUN_00304990();\n}\n\n" (function_definition "void FUN_00144437(void)\n\n{\n  long *unaff_RBX;\n  long unaff_RBP;\n  long unaff_retaddr;\n  \n                    \n  FUN_00276600();\n  if (*unaff_RBX != 0) {\n    FUN_00276d20();\n  }\n  thunk_FUN_00276d20();\n  if (unaff_retaddr != unaff_RBP + 0x10) {\n    FUN_00276d20();\n  }\n                    \n  FUN_00304990();\n}" primitive_type (function_declarator "FUN_00144437(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  long *unaff_RBX;\n  long unaff_RBP;\n  long unaff_retaddr;\n  \n                    \n  FUN_00276600();\n  if (*unaff_RBX != 0) {\n    FUN_00276d20();\n  }\n  thunk_FUN_00276d20();\n  if (unaff_retaddr != unaff_RBP + 0x10) {\n    FUN_00276d20();\n  }\n                    \n  FUN_00304990();\n}" { (declaration "long *unaff_RBX;" (sized_type_specifier "long" long) (pointer_declarator "*unaff_RBX" * identifier) ;) (declaration "long unaff_RBP;" (sized_type_specifier "long" long) identifier ;) (declaration "long unaff_retaddr;" (sized_type_specifier "long" long) identifier ;) (expression_statement "FUN_00276600();" (call_expression "FUN_00276600()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*unaff_RBX != 0) {\n    FUN_00276d20();\n  }" if (parenthesized_expression "(*unaff_RBX != 0)" ( (binary_expression "*unaff_RBX != 0" (pointer_expression "*unaff_RBX" * identifier) != number_literal) )) (compound_statement "{\n    FUN_00276d20();\n  }" { (expression_statement "FUN_00276d20();" (call_expression "FUN_00276d20()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "thunk_FUN_00276d20();" (call_expression "thunk_FUN_00276d20()" identifier (argument_list "()" ( ))) ;) (if_statement "if (unaff_retaddr != unaff_RBP + 0x10) {\n    FUN_00276d20();\n  }" if (parenthesized_expression "(unaff_retaddr != unaff_RBP + 0x10)" ( (binary_expression "unaff_retaddr != unaff_RBP + 0x10" identifier != (binary_expression "unaff_RBP + 0x10" identifier + number_literal)) )) (compound_statement "{\n    FUN_00276d20();\n  }" { (expression_statement "FUN_00276d20();" (call_expression "FUN_00276d20()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_00304990();" (call_expression "FUN_00304990()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void FUN_00144437(void)\n\n{\n  long *unaff_RBX;\n  long unaff_RBP;\n  long unaff_retaddr;\n  \n                    \n  FUN_00276600();\n  if (*unaff_RBX != 0) {\n    FUN_00276d20();\n  }\n  thunk_FUN_00276d20();\n  if (unaff_retaddr != unaff_RBP + 0x10) {\n    FUN_00276d20();\n  }\n                    \n  FUN_00304990();\n}" (primitive_type "void") (function_declarator "FUN_00144437(void)" (identifier "FUN_00144437") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  long *unaff_RBX;\n  long unaff_RBP;\n  long unaff_retaddr;\n  \n                    \n  FUN_00276600();\n  if (*unaff_RBX != 0) {\n    FUN_00276d20();\n  }\n  thunk_FUN_00276d20();\n  if (unaff_retaddr != unaff_RBP + 0x10) {\n    FUN_00276d20();\n  }\n                    \n  FUN_00304990();\n}" ({ "{") (declaration "long *unaff_RBX;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*unaff_RBX" (* "*") (identifier "unaff_RBX")) (; ";")) (declaration "long unaff_RBP;" (sized_type_specifier "long" (long "long")) (identifier "unaff_RBP") (; ";")) (declaration "long unaff_retaddr;" (sized_type_specifier "long" (long "long")) (identifier "unaff_retaddr") (; ";")) (expression_statement "FUN_00276600();" (call_expression "FUN_00276600()" (identifier "FUN_00276600") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (*unaff_RBX != 0) {\n    FUN_00276d20();\n  }" (if "if") (parenthesized_expression "(*unaff_RBX != 0)" (( "(") (binary_expression "*unaff_RBX != 0" (pointer_expression "*unaff_RBX" (* "*") (identifier "unaff_RBX")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00276d20();\n  }" ({ "{") (expression_statement "FUN_00276d20();" (call_expression "FUN_00276d20()" (identifier "FUN_00276d20") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "thunk_FUN_00276d20();" (call_expression "thunk_FUN_00276d20()" (identifier "thunk_FUN_00276d20") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (unaff_retaddr != unaff_RBP + 0x10) {\n    FUN_00276d20();\n  }" (if "if") (parenthesized_expression "(unaff_retaddr != unaff_RBP + 0x10)" (( "(") (binary_expression "unaff_retaddr != unaff_RBP + 0x10" (identifier "unaff_retaddr") (!= "!=") (binary_expression "unaff_RBP + 0x10" (identifier "unaff_RBP") (+ "+") (number_literal "0x10"))) () ")")) (compound_statement "{\n    FUN_00276d20();\n  }" ({ "{") (expression_statement "FUN_00276d20();" (call_expression "FUN_00276d20()" (identifier "FUN_00276d20") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00304990();" (call_expression "FUN_00304990()" (identifier "FUN_00304990") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

void function_1(void)

{
  type_1 *unaff_RBX;
  long var_4;
  void *var_3;
  
                    /* catch() { ... } // from try @ 0014447c with catch @ 00144438 */
  var_1();
  if ((void *)*unaff_RBX != (void *)0x0) {
    var_2((void *)*unaff_RBX);
  }
  var_2(unaff_RBX,0x18);
  if (var_3 != (void *)(var_4 + 0x10)) {
    var_2(var_3);
  }
                    /* WARNING: Subroutine does not return */
  var_5();
}


(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: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (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: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))

void MASKED(void)

{
  long *unaff_RBX;
  long unaff_RBP;
  long unaff_retaddr;
  
                    /* catch() { ... } // from try @ 0014447c with catch @ 00144438 */
  FUN_00276600();
  if (*unaff_RBX != 0) {
    FUN_00276d20();
  }
  thunk_FUN_00276d20();
  if (unaff_retaddr != unaff_RBP + 0x10) {
    FUN_00276d20();
  }
                    /* WARNING: Subroutine does not return */
  FUN_00304990();
}

