
void SHA512_Simple(void *p,int len,uchar *output)

{
  long lVar1;
  long in_FS_OFFSET;
  SHA512_State s;
  
  lVar1 = *(long *)(in_FS_OFFSET + 0x28);
  SHA512_Init((SHA512_CTX *)&s);
  SHA512_Bytes(&s,p,len);
  SHA512_Final(&s,output);
  smemclr(&s,0x118);
  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}



void FUN_0015fa6d(undefined8 param_1,undefined4 param_2,undefined8 param_3)

{
  long in_FS_OFFSET;
  undefined1 auStack_148 [280];
  long local_30;
  
  local_30 = *(long *)(in_FS_OFFSET + 0x28);
  FUN_0015e266(auStack_148);
  FUN_0015e34e(auStack_148,param_1,param_2);
  FUN_0015f872(auStack_148,param_3);
  FUN_00127355(auStack_148,0x118);
  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}


PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x120
MOV R13,RDI
MOV R14D,ESI
MOV R12,RDX
MOV EBP,0x28
MOV RAX,qword ptr FS:[RBP]
MOV qword ptr [RSP + 0x118],RAX
XOR EAX,EAX
MOV RBX,RSP
MOV RDI,RBX
CALL 0x0015e266
MOV EDX,R14D
MOV RSI,R13
MOV RDI,RBX
CALL 0x0015e34e
MOV RSI,R12
MOV RDI,RBX
CALL 0x0015f872
MOV ESI,0x118
MOV RDI,RBX
CALL 0x00127355
MOV RAX,qword ptr [RSP + 0x118]
XOR RAX,qword ptr FS:[RBP]
JNZ 0x0015fae9
ADD RSP,0x120
POP RBX
POP RBP
POP R12
POP R13
POP R14
RET
CALL 0x00115250
(translation_unit "void FUN_0015fa6d(undefined8 param_1,undefined4 param_2,undefined8 param_3)\n\n{\n  long in_FS_OFFSET;\n  undefined1 auStack_148 [280];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_0015e266(auStack_148);\n  FUN_0015e34e(auStack_148,param_1,param_2);\n  FUN_0015f872(auStack_148,param_3);\n  FUN_00127355(auStack_148,0x118);\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" (function_definition "void FUN_0015fa6d(undefined8 param_1,undefined4 param_2,undefined8 param_3)\n\n{\n  long in_FS_OFFSET;\n  undefined1 auStack_148 [280];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_0015e266(auStack_148);\n  FUN_0015e34e(auStack_148,param_1,param_2);\n  FUN_0015f872(auStack_148,param_3);\n  FUN_00127355(auStack_148,0x118);\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (function_declarator "FUN_0015fa6d(undefined8 param_1,undefined4 param_2,undefined8 param_3)" identifier (parameter_list "(undefined8 param_1,undefined4 param_2,undefined8 param_3)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) ))) (compound_statement "{\n  long in_FS_OFFSET;\n  undefined1 auStack_148 [280];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_0015e266(auStack_148);\n  FUN_0015e34e(auStack_148,param_1,param_2);\n  FUN_0015f872(auStack_148,param_3);\n  FUN_00127355(auStack_148,0x118);\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 auStack_148 [280];" type_identifier (array_declarator "auStack_148 [280]" identifier [ number_literal ]) ;) (declaration "long local_30;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_30 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_30 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "FUN_0015e266(auStack_148);" (call_expression "FUN_0015e266(auStack_148)" identifier (argument_list "(auStack_148)" ( identifier ))) ;) (expression_statement "FUN_0015e34e(auStack_148,param_1,param_2);" (call_expression "FUN_0015e34e(auStack_148,param_1,param_2)" identifier (argument_list "(auStack_148,param_1,param_2)" ( identifier , identifier , identifier ))) ;) (expression_statement "FUN_0015f872(auStack_148,param_3);" (call_expression "FUN_0015f872(auStack_148,param_3)" identifier (argument_list "(auStack_148,param_3)" ( identifier , identifier ))) ;) (expression_statement "FUN_00127355(auStack_148,0x118);" (call_expression "FUN_00127355(auStack_148,0x118)" identifier (argument_list "(auStack_148,0x118)" ( identifier , number_literal ))) ;) (if_statement "if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" if (parenthesized_expression "(local_30 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_30 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void SHA512_Simple(void *p,int len,uchar *output)\n\n{\n  long lVar1;\n  long in_FS_OFFSET;\n  SHA512_State s;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  SHA512_Init((SHA512_CTX *)&s);\n  SHA512_Bytes(&s,p,len);\n  SHA512_Final(&s,output);\n  smemclr(&s,0x118);\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" (function_definition "void SHA512_Simple(void *p,int len,uchar *output)\n\n{\n  long lVar1;\n  long in_FS_OFFSET;\n  SHA512_State s;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  SHA512_Init((SHA512_CTX *)&s);\n  SHA512_Bytes(&s,p,len);\n  SHA512_Final(&s,output);\n  smemclr(&s,0x118);\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (function_declarator "SHA512_Simple(void *p,int len,uchar *output)" identifier (parameter_list "(void *p,int len,uchar *output)" ( (parameter_declaration "void *p" primitive_type (pointer_declarator "*p" * identifier)) , (parameter_declaration "int len" primitive_type identifier) , (parameter_declaration "uchar *output" type_identifier (pointer_declarator "*output" * identifier)) ))) (compound_statement "{\n  long lVar1;\n  long in_FS_OFFSET;\n  SHA512_State s;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  SHA512_Init((SHA512_CTX *)&s);\n  SHA512_Bytes(&s,p,len);\n  SHA512_Final(&s,output);\n  smemclr(&s,0x118);\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "SHA512_State s;" type_identifier identifier ;) (expression_statement "lVar1 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar1 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "SHA512_Init((SHA512_CTX *)&s);" (call_expression "SHA512_Init((SHA512_CTX *)&s)" identifier (argument_list "((SHA512_CTX *)&s)" ( (cast_expression "(SHA512_CTX *)&s" ( (type_descriptor "SHA512_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&s" & identifier)) ))) ;) (expression_statement "SHA512_Bytes(&s,p,len);" (call_expression "SHA512_Bytes(&s,p,len)" identifier (argument_list "(&s,p,len)" ( (pointer_expression "&s" & identifier) , identifier , identifier ))) ;) (expression_statement "SHA512_Final(&s,output);" (call_expression "SHA512_Final(&s,output)" identifier (argument_list "(&s,output)" ( (pointer_expression "&s" & identifier) , identifier ))) ;) (expression_statement "smemclr(&s,0x118);" (call_expression "smemclr(&s,0x118)" identifier (argument_list "(&s,0x118)" ( (pointer_expression "&s" & identifier) , number_literal ))) ;) (if_statement "if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" if (parenthesized_expression "(lVar1 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lVar1 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void FUN_0015fa6d(undefined8 param_1,undefined4 param_2,undefined8 param_3)\n\n{\n  long in_FS_OFFSET;\n  undefined1 auStack_148 [280];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_0015e266(auStack_148);\n  FUN_0015e34e(auStack_148,param_1,param_2);\n  FUN_0015f872(auStack_148,param_3);\n  FUN_00127355(auStack_148,0x118);\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  __stack_chk_fail();\n}\n\n" (function_definition "void FUN_0015fa6d(undefined8 param_1,undefined4 param_2,undefined8 param_3)\n\n{\n  long in_FS_OFFSET;\n  undefined1 auStack_148 [280];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_0015e266(auStack_148);\n  FUN_0015e34e(auStack_148,param_1,param_2);\n  FUN_0015f872(auStack_148,param_3);\n  FUN_00127355(auStack_148,0x118);\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  __stack_chk_fail();\n}" primitive_type (function_declarator "FUN_0015fa6d(undefined8 param_1,undefined4 param_2,undefined8 param_3)" identifier (parameter_list "(undefined8 param_1,undefined4 param_2,undefined8 param_3)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) ))) (compound_statement "{\n  long in_FS_OFFSET;\n  undefined1 auStack_148 [280];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_0015e266(auStack_148);\n  FUN_0015e34e(auStack_148,param_1,param_2);\n  FUN_0015f872(auStack_148,param_3);\n  FUN_00127355(auStack_148,0x118);\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  __stack_chk_fail();\n}" { (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 auStack_148 [280];" type_identifier (array_declarator "auStack_148 [280]" identifier [ number_literal ]) ;) (declaration "long local_30;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_30 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_30 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "FUN_0015e266(auStack_148);" (call_expression "FUN_0015e266(auStack_148)" identifier (argument_list "(auStack_148)" ( identifier ))) ;) (expression_statement "FUN_0015e34e(auStack_148,param_1,param_2);" (call_expression "FUN_0015e34e(auStack_148,param_1,param_2)" identifier (argument_list "(auStack_148,param_1,param_2)" ( identifier , identifier , identifier ))) ;) (expression_statement "FUN_0015f872(auStack_148,param_3);" (call_expression "FUN_0015f872(auStack_148,param_3)" identifier (argument_list "(auStack_148,param_3)" ( identifier , identifier ))) ;) (expression_statement "FUN_00127355(auStack_148,0x118);" (call_expression "FUN_00127355(auStack_148,0x118)" identifier (argument_list "(auStack_148,0x118)" ( identifier , number_literal ))) ;) (if_statement "if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" if (parenthesized_expression "(local_30 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_30 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void FUN_0015fa6d(undefined8 param_1,undefined4 param_2,undefined8 param_3)\n\n{\n  long in_FS_OFFSET;\n  undefined1 auStack_148 [280];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_0015e266(auStack_148);\n  FUN_0015e34e(auStack_148,param_1,param_2);\n  FUN_0015f872(auStack_148,param_3);\n  FUN_00127355(auStack_148,0x118);\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  __stack_chk_fail();\n}" (primitive_type "void") (function_declarator "FUN_0015fa6d(undefined8 param_1,undefined4 param_2,undefined8 param_3)" (identifier "FUN_0015fa6d") (parameter_list "(undefined8 param_1,undefined4 param_2,undefined8 param_3)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) () ")"))) (compound_statement "{\n  long in_FS_OFFSET;\n  undefined1 auStack_148 [280];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_0015e266(auStack_148);\n  FUN_0015e34e(auStack_148,param_1,param_2);\n  FUN_0015f872(auStack_148,param_3);\n  FUN_00127355(auStack_148,0x118);\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  __stack_chk_fail();\n}" ({ "{") (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "undefined1 auStack_148 [280];" (type_identifier "undefined1") (array_declarator "auStack_148 [280]" (identifier "auStack_148") ([ "[") (number_literal "280") (] "]")) (; ";")) (declaration "long local_30;" (sized_type_specifier "long" (long "long")) (identifier "local_30") (; ";")) (expression_statement "local_30 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_30 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_30") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "FUN_0015e266(auStack_148);" (call_expression "FUN_0015e266(auStack_148)" (identifier "FUN_0015e266") (argument_list "(auStack_148)" (( "(") (identifier "auStack_148") () ")"))) (; ";")) (expression_statement "FUN_0015e34e(auStack_148,param_1,param_2);" (call_expression "FUN_0015e34e(auStack_148,param_1,param_2)" (identifier "FUN_0015e34e") (argument_list "(auStack_148,param_1,param_2)" (( "(") (identifier "auStack_148") (, ",") (identifier "param_1") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "FUN_0015f872(auStack_148,param_3);" (call_expression "FUN_0015f872(auStack_148,param_3)" (identifier "FUN_0015f872") (argument_list "(auStack_148,param_3)" (( "(") (identifier "auStack_148") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "FUN_00127355(auStack_148,0x118);" (call_expression "FUN_00127355(auStack_148,0x118)" (identifier "FUN_00127355") (argument_list "(auStack_148,0x118)" (( "(") (identifier "auStack_148") (, ",") (number_literal "0x118") () ")"))) (; ";")) (if_statement "if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_30 == *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_30 == *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_30") (== "==") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

void function_1(void *p,int len,type_1 *output)

{
  long var_6;
  long var_1;
  type_2 s;
  
  var_6 = *(long *)(var_1 + 0x28);
  var_2((type_3 *)&s);
  var_3(&s,p,len);
  var_4(&s,output);
  var_5(&s,0x118);
  if (var_6 == *(long *)(var_1 + 0x28)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  var_7();
}


(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)))) body: (compound_statement (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))

void MASKED(undefined8 param_1,undefined4 param_2,undefined8 param_3)

{
  long in_FS_OFFSET;
  undefined1 auStack_148 [280];
  long local_30;
  
  local_30 = *(long *)(in_FS_OFFSET + 0x28);
  FUN_0015e266(auStack_148);
  FUN_0015e34e(auStack_148,param_1,param_2);
  FUN_0015f872(auStack_148,param_3);
  FUN_00127355(auStack_148,0x118);
  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}

