
/* std::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> >
   >::get_year(std::istreambuf_iterator<char, std::char_traits<char> >,
   std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, std::_Ios_Iostate&, tm*)
   const */

undefined4
std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::get_year
          (undefined4 param_1,int *param_2)

{
  (**(code **)(*param_2 + 0x1c))();
  return param_1;
}



undefined4 FUN_003c9780(undefined4 param_1,int *param_2)

{
  (**(code **)(*param_2 + 0x1c))();
  return param_1;
}


addiu sp,sp,-0x38
lw v0,0x0(a1)
lw v1,0x58(sp)
sw s0,0x30(sp)
sw ra,0x34(sp)
sw v1,0x20(sp)
lw v1,0x54(sp)
sw a2,0x40(sp)
sw a3,0x44(sp)
sw v1,0x1c(sp)
lw v1,0x50(sp)
sw v1,0x18(sp)
lw v1,0x48(sp)
sw v1,0x10(sp)
lw v1,0x4c(sp)
sw v1,0x14(sp)
lw t9,0x1c(v0)
jalr t9
_or s0,a0,zero
or v0,s0,zero
lw ra,0x34(sp)
lw s0,0x30(sp)
jr ra
_addiu sp,sp,0x38
(translation_unit "undefined4 FUN_003c9780(undefined4 param_1,int *param_2)\n\n{\n  (**(code **)(*param_2 + 0x1c))();\n  return param_1;\n}\n\n" (function_definition "undefined4 FUN_003c9780(undefined4 param_1,int *param_2)\n\n{\n  (**(code **)(*param_2 + 0x1c))();\n  return param_1;\n}" type_identifier (function_declarator "FUN_003c9780(undefined4 param_1,int *param_2)" identifier (parameter_list "(undefined4 param_1,int *param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  (**(code **)(*param_2 + 0x1c))();\n  return param_1;\n}" { (expression_statement "(**(code **)(*param_2 + 0x1c))();" (call_expression "(**(code **)(*param_2 + 0x1c))()" (parenthesized_expression "(**(code **)(*param_2 + 0x1c))" ( (pointer_expression "**(code **)(*param_2 + 0x1c)" * (pointer_expression "*(code **)(*param_2 + 0x1c)" * (cast_expression "(code **)(*param_2 + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x1c)" ( (binary_expression "*param_2 + 0x1c" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return param_1;" return identifier ;) })))
(translation_unit "/* std::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> >\n   >::get_year(std::istreambuf_iterator<char, std::char_traits<char> >,\n   std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, std::_Ios_Iostate&, tm*)\n   const */\n\nundefined4\nstd::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::get_year\n          (undefined4 param_1,int *param_2)\n\n{\n  (**(code **)(*param_2 + 0x1c))();\n  return param_1;\n}\n\n" comment (declaration "undefined4\nstd::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::get_year\n          (undefined4 param_1,int *param_2)\n\n{\n  (**(code **)(*param_2 + 0x1c))();" type_identifier (ERROR "std::" identifier : :) identifier (ERROR "<char" < primitive_type) , (ERROR "std::" identifier : :) identifier (ERROR "<char" < primitive_type) , (ERROR "std::char_traits<char>>>::" identifier : : identifier < primitive_type >> > : :) (function_declarator "get_year\n          (undefined4 param_1,int *param_2)\n\n{\n  (**(code **)(*param_2 + 0x1c))()" (function_declarator "get_year\n          (undefined4 param_1,int *param_2)\n\n{\n  (**(code **)(*param_2 + 0x1c))" (function_declarator "get_year\n          (undefined4 param_1,int *param_2)" identifier (parameter_list "(undefined4 param_1,int *param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (ERROR "{" {) (parameter_list "(**(code **)(*param_2 + 0x1c))" ( (parameter_declaration "**(code **)(*param_2 + 0x1c)" type_identifier (abstract_pointer_declarator "**(code **)(*param_2 + 0x1c)" * (abstract_pointer_declarator "*(code **)(*param_2 + 0x1c)" * (abstract_function_declarator "(code **)(*param_2 + 0x1c)" (abstract_function_declarator "(code **)" (parameter_list "(code **)" ( (parameter_declaration "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ))) (parameter_list "(*param_2 + 0x1c)" ( (ERROR "*" *) (parameter_declaration "param_2" type_identifier) (ERROR "+ 0x1c" + number_literal) )))))) ))) (parameter_list "()" ( ))) ;) (return_statement "return param_1;" return identifier ;) (ERROR "}" }))
(translation_unit "undefined4 FUN_003c9780(undefined4 param_1,int *param_2)\n\n{\n  (**(code **)(*param_2 + 0x1c))();\n  return param_1;\n}\n\n" (function_definition "undefined4 FUN_003c9780(undefined4 param_1,int *param_2)\n\n{\n  (**(code **)(*param_2 + 0x1c))();\n  return param_1;\n}" type_identifier (function_declarator "FUN_003c9780(undefined4 param_1,int *param_2)" identifier (parameter_list "(undefined4 param_1,int *param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  (**(code **)(*param_2 + 0x1c))();\n  return param_1;\n}" { (expression_statement "(**(code **)(*param_2 + 0x1c))();" (call_expression "(**(code **)(*param_2 + 0x1c))()" (parenthesized_expression "(**(code **)(*param_2 + 0x1c))" ( (pointer_expression "**(code **)(*param_2 + 0x1c)" * (pointer_expression "*(code **)(*param_2 + 0x1c)" * (cast_expression "(code **)(*param_2 + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x1c)" ( (binary_expression "*param_2 + 0x1c" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return param_1;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( ))) ;) (return_statement return IDENT ;) })))
(function_definition "undefined4 FUN_003c9780(undefined4 param_1,int *param_2)\n\n{\n  (**(code **)(*param_2 + 0x1c))();\n  return param_1;\n}" (type_identifier "undefined4") (function_declarator "FUN_003c9780(undefined4 param_1,int *param_2)" (identifier "FUN_003c9780") (parameter_list "(undefined4 param_1,int *param_2)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  (**(code **)(*param_2 + 0x1c))();\n  return param_1;\n}" ({ "{") (expression_statement "(**(code **)(*param_2 + 0x1c))();" (call_expression "(**(code **)(*param_2 + 0x1c))()" (parenthesized_expression "(**(code **)(*param_2 + 0x1c))" (( "(") (pointer_expression "**(code **)(*param_2 + 0x1c)" (* "*") (pointer_expression "*(code **)(*param_2 + 0x1c)" (* "*") (cast_expression "(code **)(*param_2 + 0x1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0x1c)" (( "(") (binary_expression "*param_2 + 0x1c" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x1c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}")))

/* std::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> >
   >::get_year(std::istreambuf_iterator<char, std::char_traits<char> >,
   std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, std::_Ios_Iostate&, tm*)
   const */

type_1
std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::function_1
          (type_1 param_1,int *type_4)

{
  (type_2**(type_3 **)(*type_4 + 0x1c))();
  return param_1;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list))) (return_statement (identifier)))))

undefined4 MASKED(undefined4 param_1,int *param_2)

{
  (**(code **)(*param_2 + 0x1c))();
  return param_1;
}

