
/* WARNING: Unknown calling convention */

long get_run_time(void)

{
  rusage rusage;
  
  getrusage(RUSAGE_SELF,(rusage *)&rusage);
  return rusage.ru_utime.tv_sec * 1000000 + rusage.ru_utime.tv_usec +
         rusage.ru_stime.tv_sec * 1000000 + rusage.ru_stime.tv_usec;
}



long FUN_0015ff90(void)

{
  rusage local_98;
  
  getrusage(RUSAGE_SELF,&local_98);
  return local_98.ru_utime.tv_sec * 1000000 + local_98.ru_utime.tv_usec +
         local_98.ru_stime.tv_sec * 1000000 + local_98.ru_stime.tv_usec;
}


SUB RSP,0x98
XOR EDI,EDI
MOV RSI,RSP
CALL 0x0010db40
IMUL RAX,qword ptr [RSP],0xf4240
ADD RAX,qword ptr [RSP + 0x8]
IMUL RDX,qword ptr [RSP + 0x10],0xf4240
ADD RAX,RDX
ADD RAX,qword ptr [RSP + 0x18]
ADD RSP,0x98
RET
(translation_unit "long FUN_0015ff90(void)\n\n{\n  rusage local_98;\n  \n  getrusage(RUSAGE_SELF,&local_98);\n  return local_98.ru_utime.tv_sec * 1000000 + local_98.ru_utime.tv_usec +\n         local_98.ru_stime.tv_sec * 1000000 + local_98.ru_stime.tv_usec;\n}\n\n" (function_definition "long FUN_0015ff90(void)\n\n{\n  rusage local_98;\n  \n  getrusage(RUSAGE_SELF,&local_98);\n  return local_98.ru_utime.tv_sec * 1000000 + local_98.ru_utime.tv_usec +\n         local_98.ru_stime.tv_sec * 1000000 + local_98.ru_stime.tv_usec;\n}" (sized_type_specifier "long" long) (function_declarator "FUN_0015ff90(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  rusage local_98;\n  \n  getrusage(RUSAGE_SELF,&local_98);\n  return local_98.ru_utime.tv_sec * 1000000 + local_98.ru_utime.tv_usec +\n         local_98.ru_stime.tv_sec * 1000000 + local_98.ru_stime.tv_usec;\n}" { (declaration "rusage local_98;" type_identifier identifier ;) (expression_statement "getrusage(RUSAGE_SELF,&local_98);" (call_expression "getrusage(RUSAGE_SELF,&local_98)" identifier (argument_list "(RUSAGE_SELF,&local_98)" ( identifier , (pointer_expression "&local_98" & identifier) ))) ;) (return_statement "return local_98.ru_utime.tv_sec * 1000000 + local_98.ru_utime.tv_usec +\n         local_98.ru_stime.tv_sec * 1000000 + local_98.ru_stime.tv_usec;" return (binary_expression "local_98.ru_utime.tv_sec * 1000000 + local_98.ru_utime.tv_usec +\n         local_98.ru_stime.tv_sec * 1000000 + local_98.ru_stime.tv_usec" (binary_expression "local_98.ru_utime.tv_sec * 1000000 + local_98.ru_utime.tv_usec +\n         local_98.ru_stime.tv_sec * 1000000" (binary_expression "local_98.ru_utime.tv_sec * 1000000 + local_98.ru_utime.tv_usec" (binary_expression "local_98.ru_utime.tv_sec * 1000000" (field_expression "local_98.ru_utime.tv_sec" (field_expression "local_98.ru_utime" identifier . field_identifier) . field_identifier) * number_literal) + (field_expression "local_98.ru_utime.tv_usec" (field_expression "local_98.ru_utime" identifier . field_identifier) . field_identifier)) + (binary_expression "local_98.ru_stime.tv_sec * 1000000" (field_expression "local_98.ru_stime.tv_sec" (field_expression "local_98.ru_stime" identifier . field_identifier) . field_identifier) * number_literal)) + (field_expression "local_98.ru_stime.tv_usec" (field_expression "local_98.ru_stime" identifier . field_identifier) . field_identifier)) ;) })))
(translation_unit "/* WARNING: Unknown calling convention */\n\nlong get_run_time(void)\n\n{\n  rusage rusage;\n  \n  getrusage(RUSAGE_SELF,(rusage *)&rusage);\n  return rusage.ru_utime.tv_sec * 1000000 + rusage.ru_utime.tv_usec +\n         rusage.ru_stime.tv_sec * 1000000 + rusage.ru_stime.tv_usec;\n}\n\n" comment (function_definition "long get_run_time(void)\n\n{\n  rusage rusage;\n  \n  getrusage(RUSAGE_SELF,(rusage *)&rusage);\n  return rusage.ru_utime.tv_sec * 1000000 + rusage.ru_utime.tv_usec +\n         rusage.ru_stime.tv_sec * 1000000 + rusage.ru_stime.tv_usec;\n}" (sized_type_specifier "long" long) (function_declarator "get_run_time(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  rusage rusage;\n  \n  getrusage(RUSAGE_SELF,(rusage *)&rusage);\n  return rusage.ru_utime.tv_sec * 1000000 + rusage.ru_utime.tv_usec +\n         rusage.ru_stime.tv_sec * 1000000 + rusage.ru_stime.tv_usec;\n}" { (declaration "rusage rusage;" type_identifier identifier ;) (expression_statement "getrusage(RUSAGE_SELF,(rusage *)&rusage);" (call_expression "getrusage(RUSAGE_SELF,(rusage *)&rusage)" identifier (argument_list "(RUSAGE_SELF,(rusage *)&rusage)" ( identifier , (cast_expression "(rusage *)&rusage" ( (type_descriptor "rusage *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&rusage" & identifier)) ))) ;) (return_statement "return rusage.ru_utime.tv_sec * 1000000 + rusage.ru_utime.tv_usec +\n         rusage.ru_stime.tv_sec * 1000000 + rusage.ru_stime.tv_usec;" return (binary_expression "rusage.ru_utime.tv_sec * 1000000 + rusage.ru_utime.tv_usec +\n         rusage.ru_stime.tv_sec * 1000000 + rusage.ru_stime.tv_usec" (binary_expression "rusage.ru_utime.tv_sec * 1000000 + rusage.ru_utime.tv_usec +\n         rusage.ru_stime.tv_sec * 1000000" (binary_expression "rusage.ru_utime.tv_sec * 1000000 + rusage.ru_utime.tv_usec" (binary_expression "rusage.ru_utime.tv_sec * 1000000" (field_expression "rusage.ru_utime.tv_sec" (field_expression "rusage.ru_utime" identifier . field_identifier) . field_identifier) * number_literal) + (field_expression "rusage.ru_utime.tv_usec" (field_expression "rusage.ru_utime" identifier . field_identifier) . field_identifier)) + (binary_expression "rusage.ru_stime.tv_sec * 1000000" (field_expression "rusage.ru_stime.tv_sec" (field_expression "rusage.ru_stime" identifier . field_identifier) . field_identifier) * number_literal)) + (field_expression "rusage.ru_stime.tv_usec" (field_expression "rusage.ru_stime" identifier . field_identifier) . field_identifier)) ;) })))
(translation_unit "long FUN_0015ff90(void)\n\n{\n  rusage local_98;\n  \n  getrusage(RUSAGE_SELF,&local_98);\n  return local_98.ru_utime.tv_sec * 1000000 + local_98.ru_utime.tv_usec +\n         local_98.ru_stime.tv_sec * 1000000 + local_98.ru_stime.tv_usec;\n}\n\n" (function_definition "long FUN_0015ff90(void)\n\n{\n  rusage local_98;\n  \n  getrusage(RUSAGE_SELF,&local_98);\n  return local_98.ru_utime.tv_sec * 1000000 + local_98.ru_utime.tv_usec +\n         local_98.ru_stime.tv_sec * 1000000 + local_98.ru_stime.tv_usec;\n}" (sized_type_specifier "long" long) (function_declarator "FUN_0015ff90(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  rusage local_98;\n  \n  getrusage(RUSAGE_SELF,&local_98);\n  return local_98.ru_utime.tv_sec * 1000000 + local_98.ru_utime.tv_usec +\n         local_98.ru_stime.tv_sec * 1000000 + local_98.ru_stime.tv_usec;\n}" { (declaration "rusage local_98;" type_identifier identifier ;) (expression_statement "getrusage(RUSAGE_SELF,&local_98);" (call_expression "getrusage(RUSAGE_SELF,&local_98)" identifier (argument_list "(RUSAGE_SELF,&local_98)" ( identifier , (pointer_expression "&local_98" & identifier) ))) ;) (return_statement "return local_98.ru_utime.tv_sec * 1000000 + local_98.ru_utime.tv_usec +\n         local_98.ru_stime.tv_sec * 1000000 + local_98.ru_stime.tv_usec;" return (binary_expression "local_98.ru_utime.tv_sec * 1000000 + local_98.ru_utime.tv_usec +\n         local_98.ru_stime.tv_sec * 1000000 + local_98.ru_stime.tv_usec" (binary_expression "local_98.ru_utime.tv_sec * 1000000 + local_98.ru_utime.tv_usec +\n         local_98.ru_stime.tv_sec * 1000000" (binary_expression "local_98.ru_utime.tv_sec * 1000000 + local_98.ru_utime.tv_usec" (binary_expression "local_98.ru_utime.tv_sec * 1000000" (field_expression "local_98.ru_utime.tv_sec" (field_expression "local_98.ru_utime" identifier . field_identifier) . field_identifier) * number_literal) + (field_expression "local_98.ru_utime.tv_usec" (field_expression "local_98.ru_utime" identifier . field_identifier) . field_identifier)) + (binary_expression "local_98.ru_stime.tv_sec * 1000000" (field_expression "local_98.ru_stime.tv_sec" (field_expression "local_98.ru_stime" identifier . field_identifier) . field_identifier) * number_literal)) + (field_expression "local_98.ru_stime.tv_usec" (field_expression "local_98.ru_stime" identifier . field_identifier) . field_identifier)) ;) })))
(translation_unit (function_definition (sized_type_specifier long) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (return_statement return (binary_expression (binary_expression (binary_expression (binary_expression (field_expression (field_expression IDENT . field_identifier) . field_identifier) * LIT) + (field_expression (field_expression IDENT . field_identifier) . field_identifier)) + (binary_expression (field_expression (field_expression IDENT . field_identifier) . field_identifier) * LIT)) + (field_expression (field_expression IDENT . field_identifier) . field_identifier)) ;) })))
(function_definition "long FUN_0015ff90(void)\n\n{\n  rusage local_98;\n  \n  getrusage(RUSAGE_SELF,&local_98);\n  return local_98.ru_utime.tv_sec * 1000000 + local_98.ru_utime.tv_usec +\n         local_98.ru_stime.tv_sec * 1000000 + local_98.ru_stime.tv_usec;\n}" (sized_type_specifier "long" (long "long")) (function_declarator "FUN_0015ff90(void)" (identifier "FUN_0015ff90") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  rusage local_98;\n  \n  getrusage(RUSAGE_SELF,&local_98);\n  return local_98.ru_utime.tv_sec * 1000000 + local_98.ru_utime.tv_usec +\n         local_98.ru_stime.tv_sec * 1000000 + local_98.ru_stime.tv_usec;\n}" ({ "{") (declaration "rusage local_98;" (type_identifier "rusage") (identifier "local_98") (; ";")) (expression_statement "getrusage(RUSAGE_SELF,&local_98);" (call_expression "getrusage(RUSAGE_SELF,&local_98)" (identifier "getrusage") (argument_list "(RUSAGE_SELF,&local_98)" (( "(") (identifier "RUSAGE_SELF") (, ",") (pointer_expression "&local_98" (& "&") (identifier "local_98")) () ")"))) (; ";")) (return_statement "return local_98.ru_utime.tv_sec * 1000000 + local_98.ru_utime.tv_usec +\n         local_98.ru_stime.tv_sec * 1000000 + local_98.ru_stime.tv_usec;" (return "return") (binary_expression "local_98.ru_utime.tv_sec * 1000000 + local_98.ru_utime.tv_usec +\n         local_98.ru_stime.tv_sec * 1000000 + local_98.ru_stime.tv_usec" (binary_expression "local_98.ru_utime.tv_sec * 1000000 + local_98.ru_utime.tv_usec +\n         local_98.ru_stime.tv_sec * 1000000" (binary_expression "local_98.ru_utime.tv_sec * 1000000 + local_98.ru_utime.tv_usec" (binary_expression "local_98.ru_utime.tv_sec * 1000000" (field_expression "local_98.ru_utime.tv_sec" (field_expression "local_98.ru_utime" (identifier "local_98") (. ".") (field_identifier "ru_utime")) (. ".") (field_identifier "tv_sec")) (* "*") (number_literal "1000000")) (+ "+") (field_expression "local_98.ru_utime.tv_usec" (field_expression "local_98.ru_utime" (identifier "local_98") (. ".") (field_identifier "ru_utime")) (. ".") (field_identifier "tv_usec"))) (+ "+") (binary_expression "local_98.ru_stime.tv_sec * 1000000" (field_expression "local_98.ru_stime.tv_sec" (field_expression "local_98.ru_stime" (identifier "local_98") (. ".") (field_identifier "ru_stime")) (. ".") (field_identifier "tv_sec")) (* "*") (number_literal "1000000"))) (+ "+") (field_expression "local_98.ru_stime.tv_usec" (field_expression "local_98.ru_stime" (identifier "local_98") (. ".") (field_identifier "ru_stime")) (. ".") (field_identifier "tv_usec"))) (; ";")) (} "}")))

/* WARNING: Unknown calling convention */

long function_1(void)

{
  type_1 type_1;
  
  var_1(RUSAGE_SELF,(type_1 *)&type_1);
  return type_1.ru_utime.tv_sec * 1000000 + type_1.ru_utime.tv_usec +
         type_1.ru_stime.tv_sec * 1000000 + type_1.ru_stime.tv_usec;
}


(translation_unit (function_definition type: (sized_type_specifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) (return_statement (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)) right: (number_literal)) right: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier))) right: (binary_expression left: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)) right: (number_literal))) right: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)))))))

long MASKED(void)

{
  rusage local_98;
  
  getrusage(RUSAGE_SELF,&local_98);
  return local_98.ru_utime.tv_sec * 1000000 + local_98.ru_utime.tv_usec +
         local_98.ru_stime.tv_sec * 1000000 + local_98.ru_stime.tv_usec;
}

