
/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* std::__throw_bad_cast() */

void std::__throw_bad_cast(void)

{
  undefined8 *puVar1;
  
  puVar1 = (undefined8 *)__cxa_allocate_exception(8);
  *puVar1 = &PTR__bad_cast_003f25a8;
                    /* WARNING: Subroutine does not return */
  __cxa_throw(puVar1,&bad_cast::typeinfo,bad_cast::~bad_cast);
}



void FUN_002e1170(void)

{
  undefined8 *puVar1;
  
  puVar1 = (undefined8 *)FUN_002a2810(8);
  *puVar1 = &PTR_FUN_003f25a8;
                    /* WARNING: Subroutine does not return */
  FUN_002a1530(puVar1,&PTR_PTR_FUN_003f2580,FUN_002a2c30);
}


MOV EDI,0x8
SUB RSP,0x8
CALL 0x002a2810
LEA RDX,[0x3f2598]
LEA RSI,[0x3f2580]
MOV RDI,RAX
ADD RDX,0x10
MOV qword ptr [RAX],RDX
LEA RDX,[0x2a2c30]
CALL 0x002a1530
(translation_unit "void FUN_002e1170(void)\n\n{\n  undefined8 *puVar1;\n  \n  puVar1 = (undefined8 *)FUN_002a2810(8);\n  *puVar1 = &PTR_FUN_003f25a8;\n                    /* WARNING: Subroutine does not return */\n  FUN_002a1530(puVar1,&PTR_PTR_FUN_003f2580,FUN_002a2c30);\n}\n\n" (function_definition "void FUN_002e1170(void)\n\n{\n  undefined8 *puVar1;\n  \n  puVar1 = (undefined8 *)FUN_002a2810(8);\n  *puVar1 = &PTR_FUN_003f25a8;\n                    /* WARNING: Subroutine does not return */\n  FUN_002a1530(puVar1,&PTR_PTR_FUN_003f2580,FUN_002a2c30);\n}" primitive_type (function_declarator "FUN_002e1170(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined8 *puVar1;\n  \n  puVar1 = (undefined8 *)FUN_002a2810(8);\n  *puVar1 = &PTR_FUN_003f25a8;\n                    /* WARNING: Subroutine does not return */\n  FUN_002a1530(puVar1,&PTR_PTR_FUN_003f2580,FUN_002a2c30);\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (expression_statement "puVar1 = (undefined8 *)FUN_002a2810(8);" (assignment_expression "puVar1 = (undefined8 *)FUN_002a2810(8)" identifier = (cast_expression "(undefined8 *)FUN_002a2810(8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002a2810(8)" identifier (argument_list "(8)" ( number_literal ))))) ;) (expression_statement "*puVar1 = &PTR_FUN_003f25a8;" (assignment_expression "*puVar1 = &PTR_FUN_003f25a8" (pointer_expression "*puVar1" * identifier) = (pointer_expression "&PTR_FUN_003f25a8" & identifier)) ;) comment (expression_statement "FUN_002a1530(puVar1,&PTR_PTR_FUN_003f2580,FUN_002a2c30);" (call_expression "FUN_002a1530(puVar1,&PTR_PTR_FUN_003f2580,FUN_002a2c30)" identifier (argument_list "(puVar1,&PTR_PTR_FUN_003f2580,FUN_002a2c30)" ( identifier , (pointer_expression "&PTR_PTR_FUN_003f2580" & identifier) , identifier ))) ;) })))
(translation_unit "/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n/* std::__throw_bad_cast() */\n\nvoid std::__throw_bad_cast(void)\n\n{\n  undefined8 *puVar1;\n  \n  puVar1 = (undefined8 *)__cxa_allocate_exception(8);\n  *puVar1 = &PTR__bad_cast_003f25a8;\n                    /* WARNING: Subroutine does not return */\n  __cxa_throw(puVar1,&bad_cast::typeinfo,bad_cast::~bad_cast);\n}\n\n" comment comment (function_definition "void std::__throw_bad_cast(void)\n\n{\n  undefined8 *puVar1;\n  \n  puVar1 = (undefined8 *)__cxa_allocate_exception(8);\n  *puVar1 = &PTR__bad_cast_003f25a8;\n                    /* WARNING: Subroutine does not return */\n  __cxa_throw(puVar1,&bad_cast::typeinfo,bad_cast::~bad_cast);\n}" primitive_type (ERROR "std::" identifier : :) (function_declarator "__throw_bad_cast(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined8 *puVar1;\n  \n  puVar1 = (undefined8 *)__cxa_allocate_exception(8);\n  *puVar1 = &PTR__bad_cast_003f25a8;\n                    /* WARNING: Subroutine does not return */\n  __cxa_throw(puVar1,&bad_cast::typeinfo,bad_cast::~bad_cast);\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (expression_statement "puVar1 = (undefined8 *)__cxa_allocate_exception(8);" (assignment_expression "puVar1 = (undefined8 *)__cxa_allocate_exception(8)" identifier = (cast_expression "(undefined8 *)__cxa_allocate_exception(8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__cxa_allocate_exception(8)" identifier (argument_list "(8)" ( number_literal ))))) ;) (expression_statement "*puVar1 = &PTR__bad_cast_003f25a8;" (assignment_expression "*puVar1 = &PTR__bad_cast_003f25a8" (pointer_expression "*puVar1" * identifier) = (pointer_expression "&PTR__bad_cast_003f25a8" & identifier)) ;) comment (expression_statement "__cxa_throw(puVar1,&bad_cast::typeinfo,bad_cast::~bad_cast);" (call_expression "__cxa_throw(puVar1,&bad_cast::typeinfo,bad_cast::~bad_cast)" identifier (argument_list "(puVar1,&bad_cast::typeinfo,bad_cast::~bad_cast)" ( identifier , (pointer_expression "&bad_cast" & identifier) (ERROR "::typeinfo" : : identifier) , (ERROR "bad_cast::" identifier : :) (unary_expression "~bad_cast" ~ identifier) ))) ;) })))
(translation_unit "void FUN_002e1170(void)\n\n{\n  undefined8 *puVar1;\n  \n  puVar1 = (undefined8 *)FUN_002a2810(8);\n  *puVar1 = &PTR_FUN_003f25a8;\n                    \n  FUN_002a1530(puVar1,&PTR_PTR_FUN_003f2580,FUN_002a2c30);\n}\n\n" (function_definition "void FUN_002e1170(void)\n\n{\n  undefined8 *puVar1;\n  \n  puVar1 = (undefined8 *)FUN_002a2810(8);\n  *puVar1 = &PTR_FUN_003f25a8;\n                    \n  FUN_002a1530(puVar1,&PTR_PTR_FUN_003f2580,FUN_002a2c30);\n}" primitive_type (function_declarator "FUN_002e1170(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined8 *puVar1;\n  \n  puVar1 = (undefined8 *)FUN_002a2810(8);\n  *puVar1 = &PTR_FUN_003f25a8;\n                    \n  FUN_002a1530(puVar1,&PTR_PTR_FUN_003f2580,FUN_002a2c30);\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (expression_statement "puVar1 = (undefined8 *)FUN_002a2810(8);" (assignment_expression "puVar1 = (undefined8 *)FUN_002a2810(8)" identifier = (cast_expression "(undefined8 *)FUN_002a2810(8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002a2810(8)" identifier (argument_list "(8)" ( number_literal ))))) ;) (expression_statement "*puVar1 = &PTR_FUN_003f25a8;" (assignment_expression "*puVar1 = &PTR_FUN_003f25a8" (pointer_expression "*puVar1" * identifier) = (pointer_expression "&PTR_FUN_003f25a8" & identifier)) ;) (expression_statement "FUN_002a1530(puVar1,&PTR_PTR_FUN_003f2580,FUN_002a2c30);" (call_expression "FUN_002a1530(puVar1,&PTR_PTR_FUN_003f2580,FUN_002a2c30)" identifier (argument_list "(puVar1,&PTR_PTR_FUN_003f2580,FUN_002a2c30)" ( identifier , (pointer_expression "&PTR_PTR_FUN_003f2580" & identifier) , identifier ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT ))) ;) })))
(function_definition "void FUN_002e1170(void)\n\n{\n  undefined8 *puVar1;\n  \n  puVar1 = (undefined8 *)FUN_002a2810(8);\n  *puVar1 = &PTR_FUN_003f25a8;\n                    \n  FUN_002a1530(puVar1,&PTR_PTR_FUN_003f2580,FUN_002a2c30);\n}" (primitive_type "void") (function_declarator "FUN_002e1170(void)" (identifier "FUN_002e1170") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  undefined8 *puVar1;\n  \n  puVar1 = (undefined8 *)FUN_002a2810(8);\n  *puVar1 = &PTR_FUN_003f25a8;\n                    \n  FUN_002a1530(puVar1,&PTR_PTR_FUN_003f2580,FUN_002a2c30);\n}" ({ "{") (declaration "undefined8 *puVar1;" (type_identifier "undefined8") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (expression_statement "puVar1 = (undefined8 *)FUN_002a2810(8);" (assignment_expression "puVar1 = (undefined8 *)FUN_002a2810(8)" (identifier "puVar1") (= "=") (cast_expression "(undefined8 *)FUN_002a2810(8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_002a2810(8)" (identifier "FUN_002a2810") (argument_list "(8)" (( "(") (number_literal "8") () ")"))))) (; ";")) (expression_statement "*puVar1 = &PTR_FUN_003f25a8;" (assignment_expression "*puVar1 = &PTR_FUN_003f25a8" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (pointer_expression "&PTR_FUN_003f25a8" (& "&") (identifier "PTR_FUN_003f25a8"))) (; ";")) (expression_statement "FUN_002a1530(puVar1,&PTR_PTR_FUN_003f2580,FUN_002a2c30);" (call_expression "FUN_002a1530(puVar1,&PTR_PTR_FUN_003f2580,FUN_002a2c30)" (identifier "FUN_002a1530") (argument_list "(puVar1,&PTR_PTR_FUN_003f2580,FUN_002a2c30)" (( "(") (identifier "puVar1") (, ",") (pointer_expression "&PTR_PTR_FUN_003f2580" (& "&") (identifier "PTR_PTR_FUN_003f2580")) (, ",") (identifier "FUN_002a2c30") () ")"))) (; ";")) (} "}")))

/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* std::__throw_bad_cast() */

void std::function_1(void)

{
  type_1 *puVar1;
  
  puVar1 = (type_1 *)var_1(8);
  *puVar1 = &PTR__bad_cast_003f25a8;
                    /* WARNING: Subroutine does not return */
  var_2(puVar1,&bad_cast::typeinfo,bad_cast::~bad_cast);
}


(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))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (identifier)))))))

void MASKED(void)

{
  undefined8 *puVar1;
  
  puVar1 = (undefined8 *)FUN_002a2810(8);
  *puVar1 = &PTR_FUN_003f25a8;
                    /* WARNING: Subroutine does not return */
  FUN_002a1530(puVar1,&PTR_PTR_FUN_003f2580,FUN_002a2c30);
}

