
void pass(ulong64 *a,ulong64 *b,ulong64 *c,ulong64 *x,int mul)

{
  tiger_round(a,b,c,*x,mul);
  tiger_round(b,c,a,x[1],mul);
  tiger_round(c,a,b,x[2],mul);
  tiger_round(a,b,c,x[3],mul);
  tiger_round(b,c,a,x[4],mul);
  tiger_round(c,a,b,x[5],mul);
  tiger_round(a,b,c,x[6],mul);
  tiger_round(b,c,a,x[7],mul);
  return;
}



void FUN_0015cfb0(undefined8 param_1,undefined8 param_2,undefined8 param_3,long param_4)

{
  FUN_0015cee0();
  FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 8));
  FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x10));
  FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x18));
  FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x20));
  FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x28));
  FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x30));
  FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x38));
  return;
}


PUSH R14
MOV R14,RCX
PUSH R13
PUSH R12
MOV R12,RDI
PUSH RBP
MOV RBP,RDX
PUSH RBX
MOV RCX,qword ptr [RCX]
MOV RBX,RSI
CALL 0x0015cee0
MOV RCX,qword ptr [R14 + 0x8]
MOV RDX,R12
MOV RSI,RBP
MOV RDI,RBX
CALL 0x0015cee0
MOV RCX,qword ptr [R14 + 0x10]
MOV RDX,RBX
MOV RSI,R12
MOV RDI,RBP
CALL 0x0015cee0
MOV RCX,qword ptr [R14 + 0x18]
MOV RDX,RBP
MOV RSI,RBX
MOV RDI,R12
CALL 0x0015cee0
MOV RCX,qword ptr [R14 + 0x20]
MOV RDX,R12
MOV RSI,RBP
MOV RDI,RBX
CALL 0x0015cee0
MOV RCX,qword ptr [R14 + 0x28]
MOV RDX,RBX
MOV RSI,R12
MOV RDI,RBP
CALL 0x0015cee0
MOV RCX,qword ptr [R14 + 0x30]
MOV RDX,RBP
MOV RSI,RBX
MOV RDI,R12
CALL 0x0015cee0
MOV RCX,qword ptr [R14 + 0x38]
MOV RDX,R12
MOV RSI,RBP
MOV RDI,RBX
POP RBX
POP RBP
POP R12
POP R13
POP R14
JMP 0x0015cee0
(translation_unit "void FUN_0015cfb0(undefined8 param_1,undefined8 param_2,undefined8 param_3,long param_4)\n\n{\n  FUN_0015cee0();\n  FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 8));\n  FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x10));\n  FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x18));\n  FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x20));\n  FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x28));\n  FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x30));\n  FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x38));\n  return;\n}\n\n" (function_definition "void FUN_0015cfb0(undefined8 param_1,undefined8 param_2,undefined8 param_3,long param_4)\n\n{\n  FUN_0015cee0();\n  FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 8));\n  FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x10));\n  FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x18));\n  FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x20));\n  FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x28));\n  FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x30));\n  FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x38));\n  return;\n}" primitive_type (function_declarator "FUN_0015cfb0(undefined8 param_1,undefined8 param_2,undefined8 param_3,long param_4)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2,undefined8 param_3,long param_4)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  FUN_0015cee0();\n  FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 8));\n  FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x10));\n  FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x18));\n  FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x20));\n  FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x28));\n  FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x30));\n  FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x38));\n  return;\n}" { (expression_statement "FUN_0015cee0();" (call_expression "FUN_0015cee0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 8));" (call_expression "FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 8))" identifier (argument_list "(param_2,param_3,param_1,*(undefined8 *)(param_4 + 8))" ( identifier , identifier , identifier , (pointer_expression "*(undefined8 *)(param_4 + 8)" * (cast_expression "(undefined8 *)(param_4 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 8)" ( (binary_expression "param_4 + 8" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x10));" (call_expression "FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x10))" identifier (argument_list "(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x10))" ( identifier , identifier , identifier , (pointer_expression "*(undefined8 *)(param_4 + 0x10)" * (cast_expression "(undefined8 *)(param_4 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x10)" ( (binary_expression "param_4 + 0x10" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x18));" (call_expression "FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x18))" identifier (argument_list "(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x18))" ( identifier , identifier , identifier , (pointer_expression "*(undefined8 *)(param_4 + 0x18)" * (cast_expression "(undefined8 *)(param_4 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x20));" (call_expression "FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x20))" identifier (argument_list "(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x20))" ( identifier , identifier , identifier , (pointer_expression "*(undefined8 *)(param_4 + 0x20)" * (cast_expression "(undefined8 *)(param_4 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x20)" ( (binary_expression "param_4 + 0x20" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x28));" (call_expression "FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x28))" identifier (argument_list "(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x28))" ( identifier , identifier , identifier , (pointer_expression "*(undefined8 *)(param_4 + 0x28)" * (cast_expression "(undefined8 *)(param_4 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x28)" ( (binary_expression "param_4 + 0x28" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x30));" (call_expression "FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x30))" identifier (argument_list "(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x30))" ( identifier , identifier , identifier , (pointer_expression "*(undefined8 *)(param_4 + 0x30)" * (cast_expression "(undefined8 *)(param_4 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x30)" ( (binary_expression "param_4 + 0x30" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x38));" (call_expression "FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x38))" identifier (argument_list "(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x38))" ( identifier , identifier , identifier , (pointer_expression "*(undefined8 *)(param_4 + 0x38)" * (cast_expression "(undefined8 *)(param_4 + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x38)" ( (binary_expression "param_4 + 0x38" identifier + number_literal) )))) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void pass(ulong64 *a,ulong64 *b,ulong64 *c,ulong64 *x,int mul)\n\n{\n  tiger_round(a,b,c,*x,mul);\n  tiger_round(b,c,a,x[1],mul);\n  tiger_round(c,a,b,x[2],mul);\n  tiger_round(a,b,c,x[3],mul);\n  tiger_round(b,c,a,x[4],mul);\n  tiger_round(c,a,b,x[5],mul);\n  tiger_round(a,b,c,x[6],mul);\n  tiger_round(b,c,a,x[7],mul);\n  return;\n}\n\n" (function_definition "void pass(ulong64 *a,ulong64 *b,ulong64 *c,ulong64 *x,int mul)\n\n{\n  tiger_round(a,b,c,*x,mul);\n  tiger_round(b,c,a,x[1],mul);\n  tiger_round(c,a,b,x[2],mul);\n  tiger_round(a,b,c,x[3],mul);\n  tiger_round(b,c,a,x[4],mul);\n  tiger_round(c,a,b,x[5],mul);\n  tiger_round(a,b,c,x[6],mul);\n  tiger_round(b,c,a,x[7],mul);\n  return;\n}" primitive_type (function_declarator "pass(ulong64 *a,ulong64 *b,ulong64 *c,ulong64 *x,int mul)" identifier (parameter_list "(ulong64 *a,ulong64 *b,ulong64 *c,ulong64 *x,int mul)" ( (parameter_declaration "ulong64 *a" type_identifier (pointer_declarator "*a" * identifier)) , (parameter_declaration "ulong64 *b" type_identifier (pointer_declarator "*b" * identifier)) , (parameter_declaration "ulong64 *c" type_identifier (pointer_declarator "*c" * identifier)) , (parameter_declaration "ulong64 *x" type_identifier (pointer_declarator "*x" * identifier)) , (parameter_declaration "int mul" primitive_type identifier) ))) (compound_statement "{\n  tiger_round(a,b,c,*x,mul);\n  tiger_round(b,c,a,x[1],mul);\n  tiger_round(c,a,b,x[2],mul);\n  tiger_round(a,b,c,x[3],mul);\n  tiger_round(b,c,a,x[4],mul);\n  tiger_round(c,a,b,x[5],mul);\n  tiger_round(a,b,c,x[6],mul);\n  tiger_round(b,c,a,x[7],mul);\n  return;\n}" { (expression_statement "tiger_round(a,b,c,*x,mul);" (call_expression "tiger_round(a,b,c,*x,mul)" identifier (argument_list "(a,b,c,*x,mul)" ( identifier , identifier , identifier , (pointer_expression "*x" * identifier) , identifier ))) ;) (expression_statement "tiger_round(b,c,a,x[1],mul);" (call_expression "tiger_round(b,c,a,x[1],mul)" identifier (argument_list "(b,c,a,x[1],mul)" ( identifier , identifier , identifier , (subscript_expression "x[1]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "tiger_round(c,a,b,x[2],mul);" (call_expression "tiger_round(c,a,b,x[2],mul)" identifier (argument_list "(c,a,b,x[2],mul)" ( identifier , identifier , identifier , (subscript_expression "x[2]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "tiger_round(a,b,c,x[3],mul);" (call_expression "tiger_round(a,b,c,x[3],mul)" identifier (argument_list "(a,b,c,x[3],mul)" ( identifier , identifier , identifier , (subscript_expression "x[3]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "tiger_round(b,c,a,x[4],mul);" (call_expression "tiger_round(b,c,a,x[4],mul)" identifier (argument_list "(b,c,a,x[4],mul)" ( identifier , identifier , identifier , (subscript_expression "x[4]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "tiger_round(c,a,b,x[5],mul);" (call_expression "tiger_round(c,a,b,x[5],mul)" identifier (argument_list "(c,a,b,x[5],mul)" ( identifier , identifier , identifier , (subscript_expression "x[5]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "tiger_round(a,b,c,x[6],mul);" (call_expression "tiger_round(a,b,c,x[6],mul)" identifier (argument_list "(a,b,c,x[6],mul)" ( identifier , identifier , identifier , (subscript_expression "x[6]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "tiger_round(b,c,a,x[7],mul);" (call_expression "tiger_round(b,c,a,x[7],mul)" identifier (argument_list "(b,c,a,x[7],mul)" ( identifier , identifier , identifier , (subscript_expression "x[7]" identifier [ number_literal ]) , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0015cfb0(undefined8 param_1,undefined8 param_2,undefined8 param_3,long param_4)\n\n{\n  FUN_0015cee0();\n  FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 8));\n  FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x10));\n  FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x18));\n  FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x20));\n  FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x28));\n  FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x30));\n  FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x38));\n  return;\n}\n\n" (function_definition "void FUN_0015cfb0(undefined8 param_1,undefined8 param_2,undefined8 param_3,long param_4)\n\n{\n  FUN_0015cee0();\n  FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 8));\n  FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x10));\n  FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x18));\n  FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x20));\n  FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x28));\n  FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x30));\n  FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x38));\n  return;\n}" primitive_type (function_declarator "FUN_0015cfb0(undefined8 param_1,undefined8 param_2,undefined8 param_3,long param_4)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2,undefined8 param_3,long param_4)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  FUN_0015cee0();\n  FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 8));\n  FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x10));\n  FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x18));\n  FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x20));\n  FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x28));\n  FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x30));\n  FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x38));\n  return;\n}" { (expression_statement "FUN_0015cee0();" (call_expression "FUN_0015cee0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 8));" (call_expression "FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 8))" identifier (argument_list "(param_2,param_3,param_1,*(undefined8 *)(param_4 + 8))" ( identifier , identifier , identifier , (pointer_expression "*(undefined8 *)(param_4 + 8)" * (cast_expression "(undefined8 *)(param_4 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 8)" ( (binary_expression "param_4 + 8" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x10));" (call_expression "FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x10))" identifier (argument_list "(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x10))" ( identifier , identifier , identifier , (pointer_expression "*(undefined8 *)(param_4 + 0x10)" * (cast_expression "(undefined8 *)(param_4 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x10)" ( (binary_expression "param_4 + 0x10" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x18));" (call_expression "FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x18))" identifier (argument_list "(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x18))" ( identifier , identifier , identifier , (pointer_expression "*(undefined8 *)(param_4 + 0x18)" * (cast_expression "(undefined8 *)(param_4 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x20));" (call_expression "FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x20))" identifier (argument_list "(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x20))" ( identifier , identifier , identifier , (pointer_expression "*(undefined8 *)(param_4 + 0x20)" * (cast_expression "(undefined8 *)(param_4 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x20)" ( (binary_expression "param_4 + 0x20" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x28));" (call_expression "FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x28))" identifier (argument_list "(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x28))" ( identifier , identifier , identifier , (pointer_expression "*(undefined8 *)(param_4 + 0x28)" * (cast_expression "(undefined8 *)(param_4 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x28)" ( (binary_expression "param_4 + 0x28" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x30));" (call_expression "FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x30))" identifier (argument_list "(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x30))" ( identifier , identifier , identifier , (pointer_expression "*(undefined8 *)(param_4 + 0x30)" * (cast_expression "(undefined8 *)(param_4 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x30)" ( (binary_expression "param_4 + 0x30" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x38));" (call_expression "FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x38))" identifier (argument_list "(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x38))" ( identifier , identifier , identifier , (pointer_expression "*(undefined8 *)(param_4 + 0x38)" * (cast_expression "(undefined8 *)(param_4 + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x38)" ( (binary_expression "param_4 + 0x38" identifier + number_literal) )))) ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (return_statement return ;) })))
(function_definition "void FUN_0015cfb0(undefined8 param_1,undefined8 param_2,undefined8 param_3,long param_4)\n\n{\n  FUN_0015cee0();\n  FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 8));\n  FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x10));\n  FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x18));\n  FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x20));\n  FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x28));\n  FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x30));\n  FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x38));\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0015cfb0(undefined8 param_1,undefined8 param_2,undefined8 param_3,long param_4)" (identifier "FUN_0015cfb0") (parameter_list "(undefined8 param_1,undefined8 param_2,undefined8 param_3,long param_4)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) (, ",") (parameter_declaration "long param_4" (sized_type_specifier "long" (long "long")) (identifier "param_4")) () ")"))) (compound_statement "{\n  FUN_0015cee0();\n  FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 8));\n  FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x10));\n  FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x18));\n  FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x20));\n  FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x28));\n  FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x30));\n  FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x38));\n  return;\n}" ({ "{") (expression_statement "FUN_0015cee0();" (call_expression "FUN_0015cee0()" (identifier "FUN_0015cee0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 8));" (call_expression "FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 8))" (identifier "FUN_0015cee0") (argument_list "(param_2,param_3,param_1,*(undefined8 *)(param_4 + 8))" (( "(") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_1") (, ",") (pointer_expression "*(undefined8 *)(param_4 + 8)" (* "*") (cast_expression "(undefined8 *)(param_4 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 8)" (( "(") (binary_expression "param_4 + 8" (identifier "param_4") (+ "+") (number_literal "8")) () ")")))) () ")"))) (; ";")) (expression_statement "FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x10));" (call_expression "FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x10))" (identifier "FUN_0015cee0") (argument_list "(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x10))" (( "(") (identifier "param_3") (, ",") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (pointer_expression "*(undefined8 *)(param_4 + 0x10)" (* "*") (cast_expression "(undefined8 *)(param_4 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x10)" (( "(") (binary_expression "param_4 + 0x10" (identifier "param_4") (+ "+") (number_literal "0x10")) () ")")))) () ")"))) (; ";")) (expression_statement "FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x18));" (call_expression "FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x18))" (identifier "FUN_0015cee0") (argument_list "(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x18))" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (pointer_expression "*(undefined8 *)(param_4 + 0x18)" (* "*") (cast_expression "(undefined8 *)(param_4 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x18)" (( "(") (binary_expression "param_4 + 0x18" (identifier "param_4") (+ "+") (number_literal "0x18")) () ")")))) () ")"))) (; ";")) (expression_statement "FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x20));" (call_expression "FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x20))" (identifier "FUN_0015cee0") (argument_list "(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x20))" (( "(") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_1") (, ",") (pointer_expression "*(undefined8 *)(param_4 + 0x20)" (* "*") (cast_expression "(undefined8 *)(param_4 + 0x20)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x20)" (( "(") (binary_expression "param_4 + 0x20" (identifier "param_4") (+ "+") (number_literal "0x20")) () ")")))) () ")"))) (; ";")) (expression_statement "FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x28));" (call_expression "FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x28))" (identifier "FUN_0015cee0") (argument_list "(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x28))" (( "(") (identifier "param_3") (, ",") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (pointer_expression "*(undefined8 *)(param_4 + 0x28)" (* "*") (cast_expression "(undefined8 *)(param_4 + 0x28)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x28)" (( "(") (binary_expression "param_4 + 0x28" (identifier "param_4") (+ "+") (number_literal "0x28")) () ")")))) () ")"))) (; ";")) (expression_statement "FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x30));" (call_expression "FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x30))" (identifier "FUN_0015cee0") (argument_list "(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x30))" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (pointer_expression "*(undefined8 *)(param_4 + 0x30)" (* "*") (cast_expression "(undefined8 *)(param_4 + 0x30)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x30)" (( "(") (binary_expression "param_4 + 0x30" (identifier "param_4") (+ "+") (number_literal "0x30")) () ")")))) () ")"))) (; ";")) (expression_statement "FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x38));" (call_expression "FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x38))" (identifier "FUN_0015cee0") (argument_list "(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x38))" (( "(") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_1") (, ",") (pointer_expression "*(undefined8 *)(param_4 + 0x38)" (* "*") (cast_expression "(undefined8 *)(param_4 + 0x38)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x38)" (( "(") (binary_expression "param_4 + 0x38" (identifier "param_4") (+ "+") (number_literal "0x38")) () ")")))) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *a,type_1 *b,type_1 *c,type_1 *x,int mul)

{
  var_1(a,b,c,*x,mul);
  var_1(b,c,a,x[1],mul);
  var_1(c,a,b,x[2],mul);
  var_1(a,b,c,x[3],mul);
  var_1(b,c,a,x[4],mul);
  var_1(c,a,b,x[5],mul);
  var_1(a,b,c,x[6],mul);
  var_1(b,c,a,x[7],mul);
  return;
}


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

void MASKED(undefined8 param_1,undefined8 param_2,undefined8 param_3,long param_4)

{
  FUN_0015cee0();
  FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 8));
  FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x10));
  FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x18));
  FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x20));
  FUN_0015cee0(param_3,param_1,param_2,*(undefined8 *)(param_4 + 0x28));
  FUN_0015cee0(param_1,param_2,param_3,*(undefined8 *)(param_4 + 0x30));
  FUN_0015cee0(param_2,param_3,param_1,*(undefined8 *)(param_4 + 0x38));
  return;
}

