
void * sha384_buffer(char *buffer,size_t len,void *resblock)

{
  long lVar1;
  void *pvVar2;
  long in_FS_OFFSET;
  sha512_ctx ctx;
  
  lVar1 = *(long *)(in_FS_OFFSET + 0x28);
  sha384_init_ctx(&ctx);
  sha512_process_bytes(buffer,len,&ctx);
  pvVar2 = sha384_finish_ctx(&ctx,resblock);
  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {
    return pvVar2;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}



void FUN_001081cf(undefined8 param_1,undefined8 param_2,undefined8 param_3)

{
  long in_FS_OFFSET;
  undefined1 auStack_188 [344];
  long local_30;
  
  local_30 = *(long *)(in_FS_OFFSET + 0x28);
  FUN_001040ab(auStack_188);
  FUN_00107f22(param_1,param_2,auStack_188);
  FUN_00107eff(auStack_188,param_3);
  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,0x160
MOV R13,RDI
MOV R14,RSI
MOV R12,RDX
MOV EBP,0x28
MOV RAX,qword ptr FS:[RBP]
MOV qword ptr [RSP + 0x158],RAX
XOR EAX,EAX
MOV RBX,RSP
MOV RDI,RBX
CALL 0x001040ab
MOV RDX,RBX
MOV RSI,R14
MOV RDI,R13
CALL 0x00107f22
MOV RSI,R12
MOV RDI,RBX
CALL 0x00107eff
MOV RCX,qword ptr [RSP + 0x158]
XOR RCX,qword ptr FS:[RBP]
JNZ 0x0010823e
ADD RSP,0x160
POP RBX
POP RBP
POP R12
POP R13
POP R14
RET
CALL 0x00102100
(translation_unit "void FUN_001081cf(undefined8 param_1,undefined8 param_2,undefined8 param_3)\n\n{\n  long in_FS_OFFSET;\n  undefined1 auStack_188 [344];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_001040ab(auStack_188);\n  FUN_00107f22(param_1,param_2,auStack_188);\n  FUN_00107eff(auStack_188,param_3);\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_001081cf(undefined8 param_1,undefined8 param_2,undefined8 param_3)\n\n{\n  long in_FS_OFFSET;\n  undefined1 auStack_188 [344];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_001040ab(auStack_188);\n  FUN_00107f22(param_1,param_2,auStack_188);\n  FUN_00107eff(auStack_188,param_3);\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_001081cf(undefined8 param_1,undefined8 param_2,undefined8 param_3)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2,undefined8 param_3)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) ))) (compound_statement "{\n  long in_FS_OFFSET;\n  undefined1 auStack_188 [344];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_001040ab(auStack_188);\n  FUN_00107f22(param_1,param_2,auStack_188);\n  FUN_00107eff(auStack_188,param_3);\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_188 [344];" type_identifier (array_declarator "auStack_188 [344]" 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_001040ab(auStack_188);" (call_expression "FUN_001040ab(auStack_188)" identifier (argument_list "(auStack_188)" ( identifier ))) ;) (expression_statement "FUN_00107f22(param_1,param_2,auStack_188);" (call_expression "FUN_00107f22(param_1,param_2,auStack_188)" identifier (argument_list "(param_1,param_2,auStack_188)" ( identifier , identifier , identifier ))) ;) (expression_statement "FUN_00107eff(auStack_188,param_3);" (call_expression "FUN_00107eff(auStack_188,param_3)" identifier (argument_list "(auStack_188,param_3)" ( identifier , identifier ))) ;) (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 * sha384_buffer(char *buffer,size_t len,void *resblock)\n\n{\n  long lVar1;\n  void *pvVar2;\n  long in_FS_OFFSET;\n  sha512_ctx ctx;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  sha384_init_ctx(&ctx);\n  sha512_process_bytes(buffer,len,&ctx);\n  pvVar2 = sha384_finish_ctx(&ctx,resblock);\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return pvVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" (function_definition "void * sha384_buffer(char *buffer,size_t len,void *resblock)\n\n{\n  long lVar1;\n  void *pvVar2;\n  long in_FS_OFFSET;\n  sha512_ctx ctx;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  sha384_init_ctx(&ctx);\n  sha512_process_bytes(buffer,len,&ctx);\n  pvVar2 = sha384_finish_ctx(&ctx,resblock);\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return pvVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (pointer_declarator "* sha384_buffer(char *buffer,size_t len,void *resblock)" * (function_declarator "sha384_buffer(char *buffer,size_t len,void *resblock)" identifier (parameter_list "(char *buffer,size_t len,void *resblock)" ( (parameter_declaration "char *buffer" primitive_type (pointer_declarator "*buffer" * identifier)) , (parameter_declaration "size_t len" primitive_type identifier) , (parameter_declaration "void *resblock" primitive_type (pointer_declarator "*resblock" * identifier)) )))) (compound_statement "{\n  long lVar1;\n  void *pvVar2;\n  long in_FS_OFFSET;\n  sha512_ctx ctx;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  sha384_init_ctx(&ctx);\n  sha512_process_bytes(buffer,len,&ctx);\n  pvVar2 = sha384_finish_ctx(&ctx,resblock);\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return pvVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "void *pvVar2;" primitive_type (pointer_declarator "*pvVar2" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "sha512_ctx ctx;" 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 "sha384_init_ctx(&ctx);" (call_expression "sha384_init_ctx(&ctx)" identifier (argument_list "(&ctx)" ( (pointer_expression "&ctx" & identifier) ))) ;) (expression_statement "sha512_process_bytes(buffer,len,&ctx);" (call_expression "sha512_process_bytes(buffer,len,&ctx)" identifier (argument_list "(buffer,len,&ctx)" ( identifier , identifier , (pointer_expression "&ctx" & identifier) ))) ;) (expression_statement "pvVar2 = sha384_finish_ctx(&ctx,resblock);" (assignment_expression "pvVar2 = sha384_finish_ctx(&ctx,resblock)" identifier = (call_expression "sha384_finish_ctx(&ctx,resblock)" identifier (argument_list "(&ctx,resblock)" ( (pointer_expression "&ctx" & identifier) , identifier )))) ;) (if_statement "if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return pvVar2;\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 pvVar2;\n  }" { (return_statement "return pvVar2;" return identifier ;) })) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void FUN_001081cf(undefined8 param_1,undefined8 param_2,undefined8 param_3)\n\n{\n  long in_FS_OFFSET;\n  undefined1 auStack_188 [344];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_001040ab(auStack_188);\n  FUN_00107f22(param_1,param_2,auStack_188);\n  FUN_00107eff(auStack_188,param_3);\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  __stack_chk_fail();\n}\n\n" (function_definition "void FUN_001081cf(undefined8 param_1,undefined8 param_2,undefined8 param_3)\n\n{\n  long in_FS_OFFSET;\n  undefined1 auStack_188 [344];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_001040ab(auStack_188);\n  FUN_00107f22(param_1,param_2,auStack_188);\n  FUN_00107eff(auStack_188,param_3);\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  __stack_chk_fail();\n}" primitive_type (function_declarator "FUN_001081cf(undefined8 param_1,undefined8 param_2,undefined8 param_3)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2,undefined8 param_3)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) ))) (compound_statement "{\n  long in_FS_OFFSET;\n  undefined1 auStack_188 [344];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_001040ab(auStack_188);\n  FUN_00107f22(param_1,param_2,auStack_188);\n  FUN_00107eff(auStack_188,param_3);\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_188 [344];" type_identifier (array_declarator "auStack_188 [344]" 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_001040ab(auStack_188);" (call_expression "FUN_001040ab(auStack_188)" identifier (argument_list "(auStack_188)" ( identifier ))) ;) (expression_statement "FUN_00107f22(param_1,param_2,auStack_188);" (call_expression "FUN_00107f22(param_1,param_2,auStack_188)" identifier (argument_list "(param_1,param_2,auStack_188)" ( identifier , identifier , identifier ))) ;) (expression_statement "FUN_00107eff(auStack_188,param_3);" (call_expression "FUN_00107eff(auStack_188,param_3)" identifier (argument_list "(auStack_188,param_3)" ( identifier , identifier ))) ;) (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 ))) ;) (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_001081cf(undefined8 param_1,undefined8 param_2,undefined8 param_3)\n\n{\n  long in_FS_OFFSET;\n  undefined1 auStack_188 [344];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_001040ab(auStack_188);\n  FUN_00107f22(param_1,param_2,auStack_188);\n  FUN_00107eff(auStack_188,param_3);\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  __stack_chk_fail();\n}" (primitive_type "void") (function_declarator "FUN_001081cf(undefined8 param_1,undefined8 param_2,undefined8 param_3)" (identifier "FUN_001081cf") (parameter_list "(undefined8 param_1,undefined8 param_2,undefined8 param_3)" (( "(") (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")) () ")"))) (compound_statement "{\n  long in_FS_OFFSET;\n  undefined1 auStack_188 [344];\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_001040ab(auStack_188);\n  FUN_00107f22(param_1,param_2,auStack_188);\n  FUN_00107eff(auStack_188,param_3);\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_188 [344];" (type_identifier "undefined1") (array_declarator "auStack_188 [344]" (identifier "auStack_188") ([ "[") (number_literal "344") (] "]")) (; ";")) (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_001040ab(auStack_188);" (call_expression "FUN_001040ab(auStack_188)" (identifier "FUN_001040ab") (argument_list "(auStack_188)" (( "(") (identifier "auStack_188") () ")"))) (; ";")) (expression_statement "FUN_00107f22(param_1,param_2,auStack_188);" (call_expression "FUN_00107f22(param_1,param_2,auStack_188)" (identifier "FUN_00107f22") (argument_list "(param_1,param_2,auStack_188)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "auStack_188") () ")"))) (; ";")) (expression_statement "FUN_00107eff(auStack_188,param_3);" (call_expression "FUN_00107eff(auStack_188,param_3)" (identifier "FUN_00107eff") (argument_list "(auStack_188,param_3)" (( "(") (identifier "auStack_188") (, ",") (identifier "param_3") () ")"))) (; ";")) (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(char *buffer,size_t len,void *resblock)

{
  long var_5;
  void *pvVar2;
  long var_1;
  type_1 ctx;
  
  var_5 = *(long *)(var_1 + 0x28);
  var_2(&ctx);
  var_3(buffer,len,&ctx);
  pvVar2 = var_4(&ctx,resblock);
  if (var_5 == *(long *)(var_1 + 0x28)) {
    return pvVar2;
  }
                    /* WARNING: Subroutine does not return */
  var_6();
}


(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)))) (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,undefined8 param_2,undefined8 param_3)

{
  long in_FS_OFFSET;
  undefined1 auStack_188 [344];
  long local_30;
  
  local_30 = *(long *)(in_FS_OFFSET + 0x28);
  FUN_001040ab(auStack_188);
  FUN_00107f22(param_1,param_2,auStack_188);
  FUN_00107eff(auStack_188,param_3);
  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}

