
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

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

{
  int iVar1;
  int in_GS_OFFSET;
  SHA512_State s;
  uchar biggerDigest [64];
  
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  s.h[0].hi = iv_4089;
  s.h[0].lo = DAT_0009e9a4;
  s.h[1].hi = DAT_0009e9a8;
  s.h[1].lo = DAT_0009e9ac;
  s.h[2].hi = DAT_0009e9b0;
  s.h[2].lo = DAT_0009e9b4;
  s.h[3].hi = DAT_0009e9b8;
  s.h[3].lo = DAT_0009e9bc;
  s.h[4].hi = DAT_0009e9c0;
  s.h[4].lo = DAT_0009e9c4;
  s.h[5].hi = DAT_0009e9c8;
  s.h[5].lo = DAT_0009e9cc;
  s.h[6].hi = DAT_0009e9d0;
  s.h[6].lo = DAT_0009e9d4;
  s.blkused = 0;
  s.h[7].hi = DAT_0009e9d8;
  s.len[0] = 0;
  s.h[7].lo = DAT_0009e9dc;
  s.len[1] = 0;
  s.len[2] = 0;
  s.len[3] = 0;
  SHA512_Bytes(&s,p,len);
  SHA512_Final(&s,biggerDigest);
  *(undefined4 *)output = biggerDigest._0_4_;
  *(undefined4 *)(output + 4) = biggerDigest._4_4_;
  *(undefined4 *)(output + 8) = biggerDigest._8_4_;
  *(undefined4 *)(output + 0xc) = biggerDigest._12_4_;
  *(undefined4 *)(output + 0x10) = biggerDigest._16_4_;
  *(undefined4 *)(output + 0x14) = biggerDigest._20_4_;
  *(undefined4 *)(output + 0x18) = biggerDigest._24_4_;
  *(undefined4 *)(output + 0x1c) = biggerDigest._28_4_;
  *(undefined4 *)(output + 0x20) = biggerDigest._32_4_;
  *(undefined4 *)(output + 0x24) = biggerDigest._36_4_;
  *(undefined4 *)(output + 0x28) = biggerDigest._40_4_;
  *(undefined4 *)(output + 0x2c) = biggerDigest._44_4_;
  smemclr(&s,0xd4);
  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void FUN_000751c0(undefined4 param_1,undefined4 param_2,undefined4 *param_3)

{
  int in_GS_OFFSET;
  undefined4 local_124;
  undefined4 local_120;
  undefined4 local_11c;
  undefined4 local_118;
  undefined4 local_114;
  undefined4 local_110;
  undefined4 local_10c;
  undefined4 local_108;
  undefined4 local_104;
  undefined4 local_100;
  undefined4 local_fc;
  undefined4 local_f8;
  undefined4 local_f4;
  undefined4 local_f0;
  undefined4 local_ec;
  undefined4 local_e8;
  undefined4 local_64;
  undefined4 local_60;
  undefined4 local_5c;
  undefined4 local_58;
  undefined4 local_54;
  undefined4 local_50;
  undefined4 local_4c;
  undefined4 local_48;
  undefined4 local_44;
  undefined4 local_40;
  undefined4 local_3c;
  undefined4 local_38;
  undefined4 local_34;
  undefined4 local_30;
  undefined4 local_2c;
  undefined4 local_28;
  undefined4 local_24;
  int local_10;
  
  local_10 = *(int *)(in_GS_OFFSET + 0x14);
  local_124 = DAT_0009e9a0;
  local_120 = DAT_0009e9a4;
  local_11c = DAT_0009e9a8;
  local_118 = DAT_0009e9ac;
  local_114 = DAT_0009e9b0;
  local_110 = DAT_0009e9b4;
  local_10c = DAT_0009e9b8;
  local_108 = DAT_0009e9bc;
  local_104 = DAT_0009e9c0;
  local_100 = DAT_0009e9c4;
  local_fc = DAT_0009e9c8;
  local_f8 = DAT_0009e9cc;
  local_f4 = DAT_0009e9d0;
  local_f0 = DAT_0009e9d4;
  local_64 = 0;
  local_ec = DAT_0009e9d8;
  local_60 = 0;
  local_e8 = DAT_0009e9dc;
  local_5c = 0;
  local_58 = 0;
  local_54 = 0;
  FUN_000735d0(&local_124,param_1,param_2);
  FUN_00074d20(&local_124,&local_50);
  *param_3 = local_50;
  param_3[1] = local_4c;
  param_3[2] = local_48;
  param_3[3] = local_44;
  param_3[4] = local_40;
  param_3[5] = local_3c;
  param_3[6] = local_38;
  param_3[7] = local_34;
  param_3[8] = local_30;
  param_3[9] = local_2c;
  param_3[10] = local_28;
  param_3[0xb] = local_24;
  FUN_0001de10(&local_124,0xd4);
  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0008eb20();
}


PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000149a0
ADD EBX,0x5abc8
SUB ESP,0x124
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x120],EAX
XOR EAX,EAX
MOV ESI,dword ptr [ESP + 0x13c]
MOV EAX,dword ptr [EBX + 0xfffcec10]
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [EBX + 0xfffcec14]
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [EBX + 0xfffcec18]
MOV dword ptr [ESP + 0x14],EAX
MOV EAX,dword ptr [EBX + 0xfffcec1c]
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [EBX + 0xfffcec20]
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [EBX + 0xfffcec24]
MOV dword ptr [ESP + 0x20],EAX
MOV EAX,dword ptr [EBX + 0xfffcec28]
MOV dword ptr [ESP + 0x24],EAX
MOV EAX,dword ptr [EBX + 0xfffcec2c]
MOV dword ptr [ESP + 0x28],EAX
MOV EAX,dword ptr [EBX + 0xfffcec30]
MOV dword ptr [ESP + 0x2c],EAX
MOV EAX,dword ptr [EBX + 0xfffcec34]
MOV dword ptr [ESP + 0x30],EAX
MOV EAX,dword ptr [EBX + 0xfffcec38]
MOV dword ptr [ESP + 0x34],EAX
MOV EAX,dword ptr [EBX + 0xfffcec3c]
MOV dword ptr [ESP + 0x38],EAX
MOV EAX,dword ptr [EBX + 0xfffcec40]
MOV dword ptr [ESP + 0x3c],EAX
MOV EAX,dword ptr [EBX + 0xfffcec44]
MOV dword ptr [ESP + 0xcc],0x0
MOV dword ptr [ESP + 0x40],EAX
MOV EAX,dword ptr [EBX + 0xfffcec48]
MOV dword ptr [ESP + 0xd0],0x0
MOV dword ptr [ESP + 0x44],EAX
MOV EAX,dword ptr [EBX + 0xfffcec4c]
MOV dword ptr [ESP + 0xd4],0x0
MOV dword ptr [ESP + 0x48],EAX
MOV dword ptr [ESP + 0xd8],0x0
MOV dword ptr [ESP + 0xdc],0x0
PUSH dword ptr [ESP + 0x138]
PUSH dword ptr [ESP + 0x138]
LEA EDI,[ESP + 0x14]
PUSH EDI
CALL 0x000735d0
POP EAX
POP EDX
LEA EAX,[ESP + 0xe4]
PUSH EAX
PUSH EDI
CALL 0x00074d20
MOV EAX,dword ptr [ESP + 0xec]
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [ESP + 0xf0]
MOV dword ptr [ESI + 0x4],EAX
MOV EAX,dword ptr [ESP + 0xf4]
MOV dword ptr [ESI + 0x8],EAX
MOV EAX,dword ptr [ESP + 0xf8]
MOV dword ptr [ESI + 0xc],EAX
MOV EAX,dword ptr [ESP + 0xfc]
MOV dword ptr [ESI + 0x10],EAX
MOV EAX,dword ptr [ESP + 0x100]
MOV dword ptr [ESI + 0x14],EAX
MOV EAX,dword ptr [ESP + 0x104]
MOV dword ptr [ESI + 0x18],EAX
MOV EAX,dword ptr [ESP + 0x108]
MOV dword ptr [ESI + 0x1c],EAX
MOV EAX,dword ptr [ESP + 0x10c]
MOV dword ptr [ESI + 0x20],EAX
MOV EAX,dword ptr [ESP + 0x110]
MOV dword ptr [ESI + 0x24],EAX
MOV EAX,dword ptr [ESP + 0x114]
MOV dword ptr [ESI + 0x28],EAX
MOV EAX,dword ptr [ESP + 0x118]
MOV dword ptr [ESI + 0x2c],EAX
POP ECX
POP ESI
PUSH 0xd4
PUSH EDI
CALL 0x0001de10
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x11c]
XOR EAX,dword ptr GS:[0x14]
JNZ 0x0007538a
ADD ESP,0x120
POP EBX
POP ESI
POP EDI
RET
CALL 0x0008eb20
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_000751c0(undefined4 param_1,undefined4 param_2,undefined4 *param_3)\n\n{\n  int in_GS_OFFSET;\n  undefined4 local_124;\n  undefined4 local_120;\n  undefined4 local_11c;\n  undefined4 local_118;\n  undefined4 local_114;\n  undefined4 local_110;\n  undefined4 local_10c;\n  undefined4 local_108;\n  undefined4 local_104;\n  undefined4 local_100;\n  undefined4 local_fc;\n  undefined4 local_f8;\n  undefined4 local_f4;\n  undefined4 local_f0;\n  undefined4 local_ec;\n  undefined4 local_e8;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_10;\n  \n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  local_124 = DAT_0009e9a0;\n  local_120 = DAT_0009e9a4;\n  local_11c = DAT_0009e9a8;\n  local_118 = DAT_0009e9ac;\n  local_114 = DAT_0009e9b0;\n  local_110 = DAT_0009e9b4;\n  local_10c = DAT_0009e9b8;\n  local_108 = DAT_0009e9bc;\n  local_104 = DAT_0009e9c0;\n  local_100 = DAT_0009e9c4;\n  local_fc = DAT_0009e9c8;\n  local_f8 = DAT_0009e9cc;\n  local_f4 = DAT_0009e9d0;\n  local_f0 = DAT_0009e9d4;\n  local_64 = 0;\n  local_ec = DAT_0009e9d8;\n  local_60 = 0;\n  local_e8 = DAT_0009e9dc;\n  local_5c = 0;\n  local_58 = 0;\n  local_54 = 0;\n  FUN_000735d0(&local_124,param_1,param_2);\n  FUN_00074d20(&local_124,&local_50);\n  *param_3 = local_50;\n  param_3[1] = local_4c;\n  param_3[2] = local_48;\n  param_3[3] = local_44;\n  param_3[4] = local_40;\n  param_3[5] = local_3c;\n  param_3[6] = local_38;\n  param_3[7] = local_34;\n  param_3[8] = local_30;\n  param_3[9] = local_2c;\n  param_3[10] = local_28;\n  param_3[0xb] = local_24;\n  FUN_0001de10(&local_124,0xd4);\n  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0008eb20();\n}\n\n" comment (function_definition "void FUN_000751c0(undefined4 param_1,undefined4 param_2,undefined4 *param_3)\n\n{\n  int in_GS_OFFSET;\n  undefined4 local_124;\n  undefined4 local_120;\n  undefined4 local_11c;\n  undefined4 local_118;\n  undefined4 local_114;\n  undefined4 local_110;\n  undefined4 local_10c;\n  undefined4 local_108;\n  undefined4 local_104;\n  undefined4 local_100;\n  undefined4 local_fc;\n  undefined4 local_f8;\n  undefined4 local_f4;\n  undefined4 local_f0;\n  undefined4 local_ec;\n  undefined4 local_e8;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_10;\n  \n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  local_124 = DAT_0009e9a0;\n  local_120 = DAT_0009e9a4;\n  local_11c = DAT_0009e9a8;\n  local_118 = DAT_0009e9ac;\n  local_114 = DAT_0009e9b0;\n  local_110 = DAT_0009e9b4;\n  local_10c = DAT_0009e9b8;\n  local_108 = DAT_0009e9bc;\n  local_104 = DAT_0009e9c0;\n  local_100 = DAT_0009e9c4;\n  local_fc = DAT_0009e9c8;\n  local_f8 = DAT_0009e9cc;\n  local_f4 = DAT_0009e9d0;\n  local_f0 = DAT_0009e9d4;\n  local_64 = 0;\n  local_ec = DAT_0009e9d8;\n  local_60 = 0;\n  local_e8 = DAT_0009e9dc;\n  local_5c = 0;\n  local_58 = 0;\n  local_54 = 0;\n  FUN_000735d0(&local_124,param_1,param_2);\n  FUN_00074d20(&local_124,&local_50);\n  *param_3 = local_50;\n  param_3[1] = local_4c;\n  param_3[2] = local_48;\n  param_3[3] = local_44;\n  param_3[4] = local_40;\n  param_3[5] = local_3c;\n  param_3[6] = local_38;\n  param_3[7] = local_34;\n  param_3[8] = local_30;\n  param_3[9] = local_2c;\n  param_3[10] = local_28;\n  param_3[0xb] = local_24;\n  FUN_0001de10(&local_124,0xd4);\n  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0008eb20();\n}" primitive_type (function_declarator "FUN_000751c0(undefined4 param_1,undefined4 param_2,undefined4 *param_3)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 *param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  int in_GS_OFFSET;\n  undefined4 local_124;\n  undefined4 local_120;\n  undefined4 local_11c;\n  undefined4 local_118;\n  undefined4 local_114;\n  undefined4 local_110;\n  undefined4 local_10c;\n  undefined4 local_108;\n  undefined4 local_104;\n  undefined4 local_100;\n  undefined4 local_fc;\n  undefined4 local_f8;\n  undefined4 local_f4;\n  undefined4 local_f0;\n  undefined4 local_ec;\n  undefined4 local_e8;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_10;\n  \n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  local_124 = DAT_0009e9a0;\n  local_120 = DAT_0009e9a4;\n  local_11c = DAT_0009e9a8;\n  local_118 = DAT_0009e9ac;\n  local_114 = DAT_0009e9b0;\n  local_110 = DAT_0009e9b4;\n  local_10c = DAT_0009e9b8;\n  local_108 = DAT_0009e9bc;\n  local_104 = DAT_0009e9c0;\n  local_100 = DAT_0009e9c4;\n  local_fc = DAT_0009e9c8;\n  local_f8 = DAT_0009e9cc;\n  local_f4 = DAT_0009e9d0;\n  local_f0 = DAT_0009e9d4;\n  local_64 = 0;\n  local_ec = DAT_0009e9d8;\n  local_60 = 0;\n  local_e8 = DAT_0009e9dc;\n  local_5c = 0;\n  local_58 = 0;\n  local_54 = 0;\n  FUN_000735d0(&local_124,param_1,param_2);\n  FUN_00074d20(&local_124,&local_50);\n  *param_3 = local_50;\n  param_3[1] = local_4c;\n  param_3[2] = local_48;\n  param_3[3] = local_44;\n  param_3[4] = local_40;\n  param_3[5] = local_3c;\n  param_3[6] = local_38;\n  param_3[7] = local_34;\n  param_3[8] = local_30;\n  param_3[9] = local_2c;\n  param_3[10] = local_28;\n  param_3[0xb] = local_24;\n  FUN_0001de10(&local_124,0xd4);\n  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0008eb20();\n}" { (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined4 local_124;" type_identifier identifier ;) (declaration "undefined4 local_120;" type_identifier identifier ;) (declaration "undefined4 local_11c;" type_identifier identifier ;) (declaration "undefined4 local_118;" type_identifier identifier ;) (declaration "undefined4 local_114;" type_identifier identifier ;) (declaration "undefined4 local_110;" type_identifier identifier ;) (declaration "undefined4 local_10c;" type_identifier identifier ;) (declaration "undefined4 local_108;" type_identifier identifier ;) (declaration "undefined4 local_104;" type_identifier identifier ;) (declaration "undefined4 local_100;" type_identifier identifier ;) (declaration "undefined4 local_fc;" type_identifier identifier ;) (declaration "undefined4 local_f8;" type_identifier identifier ;) (declaration "undefined4 local_f4;" type_identifier identifier ;) (declaration "undefined4 local_f0;" type_identifier identifier ;) (declaration "undefined4 local_ec;" type_identifier identifier ;) (declaration "undefined4 local_e8;" type_identifier identifier ;) (declaration "undefined4 local_64;" type_identifier identifier ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "int local_10;" primitive_type identifier ;) (expression_statement "local_10 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_10 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_124 = DAT_0009e9a0;" (assignment_expression "local_124 = DAT_0009e9a0" identifier = identifier) ;) (expression_statement "local_120 = DAT_0009e9a4;" (assignment_expression "local_120 = DAT_0009e9a4" identifier = identifier) ;) (expression_statement "local_11c = DAT_0009e9a8;" (assignment_expression "local_11c = DAT_0009e9a8" identifier = identifier) ;) (expression_statement "local_118 = DAT_0009e9ac;" (assignment_expression "local_118 = DAT_0009e9ac" identifier = identifier) ;) (expression_statement "local_114 = DAT_0009e9b0;" (assignment_expression "local_114 = DAT_0009e9b0" identifier = identifier) ;) (expression_statement "local_110 = DAT_0009e9b4;" (assignment_expression "local_110 = DAT_0009e9b4" identifier = identifier) ;) (expression_statement "local_10c = DAT_0009e9b8;" (assignment_expression "local_10c = DAT_0009e9b8" identifier = identifier) ;) (expression_statement "local_108 = DAT_0009e9bc;" (assignment_expression "local_108 = DAT_0009e9bc" identifier = identifier) ;) (expression_statement "local_104 = DAT_0009e9c0;" (assignment_expression "local_104 = DAT_0009e9c0" identifier = identifier) ;) (expression_statement "local_100 = DAT_0009e9c4;" (assignment_expression "local_100 = DAT_0009e9c4" identifier = identifier) ;) (expression_statement "local_fc = DAT_0009e9c8;" (assignment_expression "local_fc = DAT_0009e9c8" identifier = identifier) ;) (expression_statement "local_f8 = DAT_0009e9cc;" (assignment_expression "local_f8 = DAT_0009e9cc" identifier = identifier) ;) (expression_statement "local_f4 = DAT_0009e9d0;" (assignment_expression "local_f4 = DAT_0009e9d0" identifier = identifier) ;) (expression_statement "local_f0 = DAT_0009e9d4;" (assignment_expression "local_f0 = DAT_0009e9d4" identifier = identifier) ;) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "local_ec = DAT_0009e9d8;" (assignment_expression "local_ec = DAT_0009e9d8" identifier = identifier) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_e8 = DAT_0009e9dc;" (assignment_expression "local_e8 = DAT_0009e9dc" identifier = identifier) ;) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "FUN_000735d0(&local_124,param_1,param_2);" (call_expression "FUN_000735d0(&local_124,param_1,param_2)" identifier (argument_list "(&local_124,param_1,param_2)" ( (pointer_expression "&local_124" & identifier) , identifier , identifier ))) ;) (expression_statement "FUN_00074d20(&local_124,&local_50);" (call_expression "FUN_00074d20(&local_124,&local_50)" identifier (argument_list "(&local_124,&local_50)" ( (pointer_expression "&local_124" & identifier) , (pointer_expression "&local_50" & identifier) ))) ;) (expression_statement "*param_3 = local_50;" (assignment_expression "*param_3 = local_50" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "param_3[1] = local_4c;" (assignment_expression "param_3[1] = local_4c" (subscript_expression "param_3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[2] = local_48;" (assignment_expression "param_3[2] = local_48" (subscript_expression "param_3[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[3] = local_44;" (assignment_expression "param_3[3] = local_44" (subscript_expression "param_3[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[4] = local_40;" (assignment_expression "param_3[4] = local_40" (subscript_expression "param_3[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[5] = local_3c;" (assignment_expression "param_3[5] = local_3c" (subscript_expression "param_3[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[6] = local_38;" (assignment_expression "param_3[6] = local_38" (subscript_expression "param_3[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[7] = local_34;" (assignment_expression "param_3[7] = local_34" (subscript_expression "param_3[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[8] = local_30;" (assignment_expression "param_3[8] = local_30" (subscript_expression "param_3[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[9] = local_2c;" (assignment_expression "param_3[9] = local_2c" (subscript_expression "param_3[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[10] = local_28;" (assignment_expression "param_3[10] = local_28" (subscript_expression "param_3[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[0xb] = local_24;" (assignment_expression "param_3[0xb] = local_24" (subscript_expression "param_3[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_0001de10(&local_124,0xd4);" (call_expression "FUN_0001de10(&local_124,0xd4)" identifier (argument_list "(&local_124,0xd4)" ( (pointer_expression "&local_124" & identifier) , number_literal ))) ;) (if_statement "if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(local_10 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_10 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) comment (expression_statement "FUN_0008eb20();" (call_expression "FUN_0008eb20()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nvoid SHA384_Simple(void *p,int len,uchar *output)\n\n{\n  int iVar1;\n  int in_GS_OFFSET;\n  SHA512_State s;\n  uchar biggerDigest [64];\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  s.h[0].hi = iv_4089;\n  s.h[0].lo = DAT_0009e9a4;\n  s.h[1].hi = DAT_0009e9a8;\n  s.h[1].lo = DAT_0009e9ac;\n  s.h[2].hi = DAT_0009e9b0;\n  s.h[2].lo = DAT_0009e9b4;\n  s.h[3].hi = DAT_0009e9b8;\n  s.h[3].lo = DAT_0009e9bc;\n  s.h[4].hi = DAT_0009e9c0;\n  s.h[4].lo = DAT_0009e9c4;\n  s.h[5].hi = DAT_0009e9c8;\n  s.h[5].lo = DAT_0009e9cc;\n  s.h[6].hi = DAT_0009e9d0;\n  s.h[6].lo = DAT_0009e9d4;\n  s.blkused = 0;\n  s.h[7].hi = DAT_0009e9d8;\n  s.len[0] = 0;\n  s.h[7].lo = DAT_0009e9dc;\n  s.len[1] = 0;\n  s.len[2] = 0;\n  s.len[3] = 0;\n  SHA512_Bytes(&s,p,len);\n  SHA512_Final(&s,biggerDigest);\n  *(undefined4 *)output = biggerDigest._0_4_;\n  *(undefined4 *)(output + 4) = biggerDigest._4_4_;\n  *(undefined4 *)(output + 8) = biggerDigest._8_4_;\n  *(undefined4 *)(output + 0xc) = biggerDigest._12_4_;\n  *(undefined4 *)(output + 0x10) = biggerDigest._16_4_;\n  *(undefined4 *)(output + 0x14) = biggerDigest._20_4_;\n  *(undefined4 *)(output + 0x18) = biggerDigest._24_4_;\n  *(undefined4 *)(output + 0x1c) = biggerDigest._28_4_;\n  *(undefined4 *)(output + 0x20) = biggerDigest._32_4_;\n  *(undefined4 *)(output + 0x24) = biggerDigest._36_4_;\n  *(undefined4 *)(output + 0x28) = biggerDigest._40_4_;\n  *(undefined4 *)(output + 0x2c) = biggerDigest._44_4_;\n  smemclr(&s,0xd4);\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}\n\n" comment comment (function_definition "void SHA384_Simple(void *p,int len,uchar *output)\n\n{\n  int iVar1;\n  int in_GS_OFFSET;\n  SHA512_State s;\n  uchar biggerDigest [64];\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  s.h[0].hi = iv_4089;\n  s.h[0].lo = DAT_0009e9a4;\n  s.h[1].hi = DAT_0009e9a8;\n  s.h[1].lo = DAT_0009e9ac;\n  s.h[2].hi = DAT_0009e9b0;\n  s.h[2].lo = DAT_0009e9b4;\n  s.h[3].hi = DAT_0009e9b8;\n  s.h[3].lo = DAT_0009e9bc;\n  s.h[4].hi = DAT_0009e9c0;\n  s.h[4].lo = DAT_0009e9c4;\n  s.h[5].hi = DAT_0009e9c8;\n  s.h[5].lo = DAT_0009e9cc;\n  s.h[6].hi = DAT_0009e9d0;\n  s.h[6].lo = DAT_0009e9d4;\n  s.blkused = 0;\n  s.h[7].hi = DAT_0009e9d8;\n  s.len[0] = 0;\n  s.h[7].lo = DAT_0009e9dc;\n  s.len[1] = 0;\n  s.len[2] = 0;\n  s.len[3] = 0;\n  SHA512_Bytes(&s,p,len);\n  SHA512_Final(&s,biggerDigest);\n  *(undefined4 *)output = biggerDigest._0_4_;\n  *(undefined4 *)(output + 4) = biggerDigest._4_4_;\n  *(undefined4 *)(output + 8) = biggerDigest._8_4_;\n  *(undefined4 *)(output + 0xc) = biggerDigest._12_4_;\n  *(undefined4 *)(output + 0x10) = biggerDigest._16_4_;\n  *(undefined4 *)(output + 0x14) = biggerDigest._20_4_;\n  *(undefined4 *)(output + 0x18) = biggerDigest._24_4_;\n  *(undefined4 *)(output + 0x1c) = biggerDigest._28_4_;\n  *(undefined4 *)(output + 0x20) = biggerDigest._32_4_;\n  *(undefined4 *)(output + 0x24) = biggerDigest._36_4_;\n  *(undefined4 *)(output + 0x28) = biggerDigest._40_4_;\n  *(undefined4 *)(output + 0x2c) = biggerDigest._44_4_;\n  smemclr(&s,0xd4);\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" primitive_type (function_declarator "SHA384_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  int iVar1;\n  int in_GS_OFFSET;\n  SHA512_State s;\n  uchar biggerDigest [64];\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  s.h[0].hi = iv_4089;\n  s.h[0].lo = DAT_0009e9a4;\n  s.h[1].hi = DAT_0009e9a8;\n  s.h[1].lo = DAT_0009e9ac;\n  s.h[2].hi = DAT_0009e9b0;\n  s.h[2].lo = DAT_0009e9b4;\n  s.h[3].hi = DAT_0009e9b8;\n  s.h[3].lo = DAT_0009e9bc;\n  s.h[4].hi = DAT_0009e9c0;\n  s.h[4].lo = DAT_0009e9c4;\n  s.h[5].hi = DAT_0009e9c8;\n  s.h[5].lo = DAT_0009e9cc;\n  s.h[6].hi = DAT_0009e9d0;\n  s.h[6].lo = DAT_0009e9d4;\n  s.blkused = 0;\n  s.h[7].hi = DAT_0009e9d8;\n  s.len[0] = 0;\n  s.h[7].lo = DAT_0009e9dc;\n  s.len[1] = 0;\n  s.len[2] = 0;\n  s.len[3] = 0;\n  SHA512_Bytes(&s,p,len);\n  SHA512_Final(&s,biggerDigest);\n  *(undefined4 *)output = biggerDigest._0_4_;\n  *(undefined4 *)(output + 4) = biggerDigest._4_4_;\n  *(undefined4 *)(output + 8) = biggerDigest._8_4_;\n  *(undefined4 *)(output + 0xc) = biggerDigest._12_4_;\n  *(undefined4 *)(output + 0x10) = biggerDigest._16_4_;\n  *(undefined4 *)(output + 0x14) = biggerDigest._20_4_;\n  *(undefined4 *)(output + 0x18) = biggerDigest._24_4_;\n  *(undefined4 *)(output + 0x1c) = biggerDigest._28_4_;\n  *(undefined4 *)(output + 0x20) = biggerDigest._32_4_;\n  *(undefined4 *)(output + 0x24) = biggerDigest._36_4_;\n  *(undefined4 *)(output + 0x28) = biggerDigest._40_4_;\n  *(undefined4 *)(output + 0x2c) = biggerDigest._44_4_;\n  smemclr(&s,0xd4);\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "SHA512_State s;" type_identifier identifier ;) (declaration "uchar biggerDigest [64];" type_identifier (array_declarator "biggerDigest [64]" identifier [ number_literal ]) ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "s.h[0].hi = iv_4089;" (assignment_expression "s.h[0].hi = iv_4089" (field_expression "s.h[0].hi" (subscript_expression "s.h[0]" (field_expression "s.h" identifier . field_identifier) [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "s.h[0].lo = DAT_0009e9a4;" (assignment_expression "s.h[0].lo = DAT_0009e9a4" (field_expression "s.h[0].lo" (subscript_expression "s.h[0]" (field_expression "s.h" identifier . field_identifier) [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "s.h[1].hi = DAT_0009e9a8;" (assignment_expression "s.h[1].hi = DAT_0009e9a8" (field_expression "s.h[1].hi" (subscript_expression "s.h[1]" (field_expression "s.h" identifier . field_identifier) [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "s.h[1].lo = DAT_0009e9ac;" (assignment_expression "s.h[1].lo = DAT_0009e9ac" (field_expression "s.h[1].lo" (subscript_expression "s.h[1]" (field_expression "s.h" identifier . field_identifier) [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "s.h[2].hi = DAT_0009e9b0;" (assignment_expression "s.h[2].hi = DAT_0009e9b0" (field_expression "s.h[2].hi" (subscript_expression "s.h[2]" (field_expression "s.h" identifier . field_identifier) [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "s.h[2].lo = DAT_0009e9b4;" (assignment_expression "s.h[2].lo = DAT_0009e9b4" (field_expression "s.h[2].lo" (subscript_expression "s.h[2]" (field_expression "s.h" identifier . field_identifier) [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "s.h[3].hi = DAT_0009e9b8;" (assignment_expression "s.h[3].hi = DAT_0009e9b8" (field_expression "s.h[3].hi" (subscript_expression "s.h[3]" (field_expression "s.h" identifier . field_identifier) [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "s.h[3].lo = DAT_0009e9bc;" (assignment_expression "s.h[3].lo = DAT_0009e9bc" (field_expression "s.h[3].lo" (subscript_expression "s.h[3]" (field_expression "s.h" identifier . field_identifier) [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "s.h[4].hi = DAT_0009e9c0;" (assignment_expression "s.h[4].hi = DAT_0009e9c0" (field_expression "s.h[4].hi" (subscript_expression "s.h[4]" (field_expression "s.h" identifier . field_identifier) [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "s.h[4].lo = DAT_0009e9c4;" (assignment_expression "s.h[4].lo = DAT_0009e9c4" (field_expression "s.h[4].lo" (subscript_expression "s.h[4]" (field_expression "s.h" identifier . field_identifier) [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "s.h[5].hi = DAT_0009e9c8;" (assignment_expression "s.h[5].hi = DAT_0009e9c8" (field_expression "s.h[5].hi" (subscript_expression "s.h[5]" (field_expression "s.h" identifier . field_identifier) [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "s.h[5].lo = DAT_0009e9cc;" (assignment_expression "s.h[5].lo = DAT_0009e9cc" (field_expression "s.h[5].lo" (subscript_expression "s.h[5]" (field_expression "s.h" identifier . field_identifier) [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "s.h[6].hi = DAT_0009e9d0;" (assignment_expression "s.h[6].hi = DAT_0009e9d0" (field_expression "s.h[6].hi" (subscript_expression "s.h[6]" (field_expression "s.h" identifier . field_identifier) [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "s.h[6].lo = DAT_0009e9d4;" (assignment_expression "s.h[6].lo = DAT_0009e9d4" (field_expression "s.h[6].lo" (subscript_expression "s.h[6]" (field_expression "s.h" identifier . field_identifier) [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "s.blkused = 0;" (assignment_expression "s.blkused = 0" (field_expression "s.blkused" identifier . field_identifier) = number_literal) ;) (expression_statement "s.h[7].hi = DAT_0009e9d8;" (assignment_expression "s.h[7].hi = DAT_0009e9d8" (field_expression "s.h[7].hi" (subscript_expression "s.h[7]" (field_expression "s.h" identifier . field_identifier) [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "s.len[0] = 0;" (assignment_expression "s.len[0] = 0" (subscript_expression "s.len[0]" (field_expression "s.len" identifier . field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "s.h[7].lo = DAT_0009e9dc;" (assignment_expression "s.h[7].lo = DAT_0009e9dc" (field_expression "s.h[7].lo" (subscript_expression "s.h[7]" (field_expression "s.h" identifier . field_identifier) [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "s.len[1] = 0;" (assignment_expression "s.len[1] = 0" (subscript_expression "s.len[1]" (field_expression "s.len" identifier . field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "s.len[2] = 0;" (assignment_expression "s.len[2] = 0" (subscript_expression "s.len[2]" (field_expression "s.len" identifier . field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "s.len[3] = 0;" (assignment_expression "s.len[3] = 0" (subscript_expression "s.len[3]" (field_expression "s.len" identifier . field_identifier) [ number_literal ]) = number_literal) ;) (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,biggerDigest);" (call_expression "SHA512_Final(&s,biggerDigest)" identifier (argument_list "(&s,biggerDigest)" ( (pointer_expression "&s" & identifier) , identifier ))) ;) (expression_statement "*(undefined4 *)output = biggerDigest._0_4_;" (assignment_expression "*(undefined4 *)output = biggerDigest._0_4_" (pointer_expression "*(undefined4 *)output" * (cast_expression "(undefined4 *)output" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (field_expression "biggerDigest._0_4_" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)(output + 4) = biggerDigest._4_4_;" (assignment_expression "*(undefined4 *)(output + 4) = biggerDigest._4_4_" (pointer_expression "*(undefined4 *)(output + 4)" * (cast_expression "(undefined4 *)(output + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(output + 4)" ( (binary_expression "output + 4" identifier + number_literal) )))) = (field_expression "biggerDigest._4_4_" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)(output + 8) = biggerDigest._8_4_;" (assignment_expression "*(undefined4 *)(output + 8) = biggerDigest._8_4_" (pointer_expression "*(undefined4 *)(output + 8)" * (cast_expression "(undefined4 *)(output + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(output + 8)" ( (binary_expression "output + 8" identifier + number_literal) )))) = (field_expression "biggerDigest._8_4_" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)(output + 0xc) = biggerDigest._12_4_;" (assignment_expression "*(undefined4 *)(output + 0xc) = biggerDigest._12_4_" (pointer_expression "*(undefined4 *)(output + 0xc)" * (cast_expression "(undefined4 *)(output + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(output + 0xc)" ( (binary_expression "output + 0xc" identifier + number_literal) )))) = (field_expression "biggerDigest._12_4_" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)(output + 0x10) = biggerDigest._16_4_;" (assignment_expression "*(undefined4 *)(output + 0x10) = biggerDigest._16_4_" (pointer_expression "*(undefined4 *)(output + 0x10)" * (cast_expression "(undefined4 *)(output + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(output + 0x10)" ( (binary_expression "output + 0x10" identifier + number_literal) )))) = (field_expression "biggerDigest._16_4_" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)(output + 0x14) = biggerDigest._20_4_;" (assignment_expression "*(undefined4 *)(output + 0x14) = biggerDigest._20_4_" (pointer_expression "*(undefined4 *)(output + 0x14)" * (cast_expression "(undefined4 *)(output + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(output + 0x14)" ( (binary_expression "output + 0x14" identifier + number_literal) )))) = (field_expression "biggerDigest._20_4_" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)(output + 0x18) = biggerDigest._24_4_;" (assignment_expression "*(undefined4 *)(output + 0x18) = biggerDigest._24_4_" (pointer_expression "*(undefined4 *)(output + 0x18)" * (cast_expression "(undefined4 *)(output + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(output + 0x18)" ( (binary_expression "output + 0x18" identifier + number_literal) )))) = (field_expression "biggerDigest._24_4_" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)(output + 0x1c) = biggerDigest._28_4_;" (assignment_expression "*(undefined4 *)(output + 0x1c) = biggerDigest._28_4_" (pointer_expression "*(undefined4 *)(output + 0x1c)" * (cast_expression "(undefined4 *)(output + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(output + 0x1c)" ( (binary_expression "output + 0x1c" identifier + number_literal) )))) = (field_expression "biggerDigest._28_4_" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)(output + 0x20) = biggerDigest._32_4_;" (assignment_expression "*(undefined4 *)(output + 0x20) = biggerDigest._32_4_" (pointer_expression "*(undefined4 *)(output + 0x20)" * (cast_expression "(undefined4 *)(output + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(output + 0x20)" ( (binary_expression "output + 0x20" identifier + number_literal) )))) = (field_expression "biggerDigest._32_4_" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)(output + 0x24) = biggerDigest._36_4_;" (assignment_expression "*(undefined4 *)(output + 0x24) = biggerDigest._36_4_" (pointer_expression "*(undefined4 *)(output + 0x24)" * (cast_expression "(undefined4 *)(output + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(output + 0x24)" ( (binary_expression "output + 0x24" identifier + number_literal) )))) = (field_expression "biggerDigest._36_4_" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)(output + 0x28) = biggerDigest._40_4_;" (assignment_expression "*(undefined4 *)(output + 0x28) = biggerDigest._40_4_" (pointer_expression "*(undefined4 *)(output + 0x28)" * (cast_expression "(undefined4 *)(output + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(output + 0x28)" ( (binary_expression "output + 0x28" identifier + number_literal) )))) = (field_expression "biggerDigest._40_4_" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)(output + 0x2c) = biggerDigest._44_4_;" (assignment_expression "*(undefined4 *)(output + 0x2c) = biggerDigest._44_4_" (pointer_expression "*(undefined4 *)(output + 0x2c)" * (cast_expression "(undefined4 *)(output + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(output + 0x2c)" ( (binary_expression "output + 0x2c" identifier + number_literal) )))) = (field_expression "biggerDigest._44_4_" identifier . field_identifier)) ;) (expression_statement "smemclr(&s,0xd4);" (call_expression "smemclr(&s,0xd4)" identifier (argument_list "(&s,0xd4)" ( (pointer_expression "&s" & identifier) , number_literal ))) ;) (if_statement "if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(iVar1 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar1 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void FUN_000751c0(undefined4 param_1,undefined4 param_2,undefined4 *param_3)\n\n{\n  int in_GS_OFFSET;\n  undefined4 local_124;\n  undefined4 local_120;\n  undefined4 local_11c;\n  undefined4 local_118;\n  undefined4 local_114;\n  undefined4 local_110;\n  undefined4 local_10c;\n  undefined4 local_108;\n  undefined4 local_104;\n  undefined4 local_100;\n  undefined4 local_fc;\n  undefined4 local_f8;\n  undefined4 local_f4;\n  undefined4 local_f0;\n  undefined4 local_ec;\n  undefined4 local_e8;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_10;\n  \n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  local_124 = DAT_0009e9a0;\n  local_120 = DAT_0009e9a4;\n  local_11c = DAT_0009e9a8;\n  local_118 = DAT_0009e9ac;\n  local_114 = DAT_0009e9b0;\n  local_110 = DAT_0009e9b4;\n  local_10c = DAT_0009e9b8;\n  local_108 = DAT_0009e9bc;\n  local_104 = DAT_0009e9c0;\n  local_100 = DAT_0009e9c4;\n  local_fc = DAT_0009e9c8;\n  local_f8 = DAT_0009e9cc;\n  local_f4 = DAT_0009e9d0;\n  local_f0 = DAT_0009e9d4;\n  local_64 = 0;\n  local_ec = DAT_0009e9d8;\n  local_60 = 0;\n  local_e8 = DAT_0009e9dc;\n  local_5c = 0;\n  local_58 = 0;\n  local_54 = 0;\n  FUN_000735d0(&local_124,param_1,param_2);\n  FUN_00074d20(&local_124,&local_50);\n  *param_3 = local_50;\n  param_3[1] = local_4c;\n  param_3[2] = local_48;\n  param_3[3] = local_44;\n  param_3[4] = local_40;\n  param_3[5] = local_3c;\n  param_3[6] = local_38;\n  param_3[7] = local_34;\n  param_3[8] = local_30;\n  param_3[9] = local_2c;\n  param_3[10] = local_28;\n  param_3[0xb] = local_24;\n  FUN_0001de10(&local_124,0xd4);\n  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_0008eb20();\n}\n\n" (function_definition "void FUN_000751c0(undefined4 param_1,undefined4 param_2,undefined4 *param_3)\n\n{\n  int in_GS_OFFSET;\n  undefined4 local_124;\n  undefined4 local_120;\n  undefined4 local_11c;\n  undefined4 local_118;\n  undefined4 local_114;\n  undefined4 local_110;\n  undefined4 local_10c;\n  undefined4 local_108;\n  undefined4 local_104;\n  undefined4 local_100;\n  undefined4 local_fc;\n  undefined4 local_f8;\n  undefined4 local_f4;\n  undefined4 local_f0;\n  undefined4 local_ec;\n  undefined4 local_e8;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_10;\n  \n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  local_124 = DAT_0009e9a0;\n  local_120 = DAT_0009e9a4;\n  local_11c = DAT_0009e9a8;\n  local_118 = DAT_0009e9ac;\n  local_114 = DAT_0009e9b0;\n  local_110 = DAT_0009e9b4;\n  local_10c = DAT_0009e9b8;\n  local_108 = DAT_0009e9bc;\n  local_104 = DAT_0009e9c0;\n  local_100 = DAT_0009e9c4;\n  local_fc = DAT_0009e9c8;\n  local_f8 = DAT_0009e9cc;\n  local_f4 = DAT_0009e9d0;\n  local_f0 = DAT_0009e9d4;\n  local_64 = 0;\n  local_ec = DAT_0009e9d8;\n  local_60 = 0;\n  local_e8 = DAT_0009e9dc;\n  local_5c = 0;\n  local_58 = 0;\n  local_54 = 0;\n  FUN_000735d0(&local_124,param_1,param_2);\n  FUN_00074d20(&local_124,&local_50);\n  *param_3 = local_50;\n  param_3[1] = local_4c;\n  param_3[2] = local_48;\n  param_3[3] = local_44;\n  param_3[4] = local_40;\n  param_3[5] = local_3c;\n  param_3[6] = local_38;\n  param_3[7] = local_34;\n  param_3[8] = local_30;\n  param_3[9] = local_2c;\n  param_3[10] = local_28;\n  param_3[0xb] = local_24;\n  FUN_0001de10(&local_124,0xd4);\n  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_0008eb20();\n}" primitive_type (function_declarator "FUN_000751c0(undefined4 param_1,undefined4 param_2,undefined4 *param_3)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 *param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  int in_GS_OFFSET;\n  undefined4 local_124;\n  undefined4 local_120;\n  undefined4 local_11c;\n  undefined4 local_118;\n  undefined4 local_114;\n  undefined4 local_110;\n  undefined4 local_10c;\n  undefined4 local_108;\n  undefined4 local_104;\n  undefined4 local_100;\n  undefined4 local_fc;\n  undefined4 local_f8;\n  undefined4 local_f4;\n  undefined4 local_f0;\n  undefined4 local_ec;\n  undefined4 local_e8;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_10;\n  \n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  local_124 = DAT_0009e9a0;\n  local_120 = DAT_0009e9a4;\n  local_11c = DAT_0009e9a8;\n  local_118 = DAT_0009e9ac;\n  local_114 = DAT_0009e9b0;\n  local_110 = DAT_0009e9b4;\n  local_10c = DAT_0009e9b8;\n  local_108 = DAT_0009e9bc;\n  local_104 = DAT_0009e9c0;\n  local_100 = DAT_0009e9c4;\n  local_fc = DAT_0009e9c8;\n  local_f8 = DAT_0009e9cc;\n  local_f4 = DAT_0009e9d0;\n  local_f0 = DAT_0009e9d4;\n  local_64 = 0;\n  local_ec = DAT_0009e9d8;\n  local_60 = 0;\n  local_e8 = DAT_0009e9dc;\n  local_5c = 0;\n  local_58 = 0;\n  local_54 = 0;\n  FUN_000735d0(&local_124,param_1,param_2);\n  FUN_00074d20(&local_124,&local_50);\n  *param_3 = local_50;\n  param_3[1] = local_4c;\n  param_3[2] = local_48;\n  param_3[3] = local_44;\n  param_3[4] = local_40;\n  param_3[5] = local_3c;\n  param_3[6] = local_38;\n  param_3[7] = local_34;\n  param_3[8] = local_30;\n  param_3[9] = local_2c;\n  param_3[10] = local_28;\n  param_3[0xb] = local_24;\n  FUN_0001de10(&local_124,0xd4);\n  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_0008eb20();\n}" { (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined4 local_124;" type_identifier identifier ;) (declaration "undefined4 local_120;" type_identifier identifier ;) (declaration "undefined4 local_11c;" type_identifier identifier ;) (declaration "undefined4 local_118;" type_identifier identifier ;) (declaration "undefined4 local_114;" type_identifier identifier ;) (declaration "undefined4 local_110;" type_identifier identifier ;) (declaration "undefined4 local_10c;" type_identifier identifier ;) (declaration "undefined4 local_108;" type_identifier identifier ;) (declaration "undefined4 local_104;" type_identifier identifier ;) (declaration "undefined4 local_100;" type_identifier identifier ;) (declaration "undefined4 local_fc;" type_identifier identifier ;) (declaration "undefined4 local_f8;" type_identifier identifier ;) (declaration "undefined4 local_f4;" type_identifier identifier ;) (declaration "undefined4 local_f0;" type_identifier identifier ;) (declaration "undefined4 local_ec;" type_identifier identifier ;) (declaration "undefined4 local_e8;" type_identifier identifier ;) (declaration "undefined4 local_64;" type_identifier identifier ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "int local_10;" primitive_type identifier ;) (expression_statement "local_10 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_10 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_124 = DAT_0009e9a0;" (assignment_expression "local_124 = DAT_0009e9a0" identifier = identifier) ;) (expression_statement "local_120 = DAT_0009e9a4;" (assignment_expression "local_120 = DAT_0009e9a4" identifier = identifier) ;) (expression_statement "local_11c = DAT_0009e9a8;" (assignment_expression "local_11c = DAT_0009e9a8" identifier = identifier) ;) (expression_statement "local_118 = DAT_0009e9ac;" (assignment_expression "local_118 = DAT_0009e9ac" identifier = identifier) ;) (expression_statement "local_114 = DAT_0009e9b0;" (assignment_expression "local_114 = DAT_0009e9b0" identifier = identifier) ;) (expression_statement "local_110 = DAT_0009e9b4;" (assignment_expression "local_110 = DAT_0009e9b4" identifier = identifier) ;) (expression_statement "local_10c = DAT_0009e9b8;" (assignment_expression "local_10c = DAT_0009e9b8" identifier = identifier) ;) (expression_statement "local_108 = DAT_0009e9bc;" (assignment_expression "local_108 = DAT_0009e9bc" identifier = identifier) ;) (expression_statement "local_104 = DAT_0009e9c0;" (assignment_expression "local_104 = DAT_0009e9c0" identifier = identifier) ;) (expression_statement "local_100 = DAT_0009e9c4;" (assignment_expression "local_100 = DAT_0009e9c4" identifier = identifier) ;) (expression_statement "local_fc = DAT_0009e9c8;" (assignment_expression "local_fc = DAT_0009e9c8" identifier = identifier) ;) (expression_statement "local_f8 = DAT_0009e9cc;" (assignment_expression "local_f8 = DAT_0009e9cc" identifier = identifier) ;) (expression_statement "local_f4 = DAT_0009e9d0;" (assignment_expression "local_f4 = DAT_0009e9d0" identifier = identifier) ;) (expression_statement "local_f0 = DAT_0009e9d4;" (assignment_expression "local_f0 = DAT_0009e9d4" identifier = identifier) ;) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "local_ec = DAT_0009e9d8;" (assignment_expression "local_ec = DAT_0009e9d8" identifier = identifier) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_e8 = DAT_0009e9dc;" (assignment_expression "local_e8 = DAT_0009e9dc" identifier = identifier) ;) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "FUN_000735d0(&local_124,param_1,param_2);" (call_expression "FUN_000735d0(&local_124,param_1,param_2)" identifier (argument_list "(&local_124,param_1,param_2)" ( (pointer_expression "&local_124" & identifier) , identifier , identifier ))) ;) (expression_statement "FUN_00074d20(&local_124,&local_50);" (call_expression "FUN_00074d20(&local_124,&local_50)" identifier (argument_list "(&local_124,&local_50)" ( (pointer_expression "&local_124" & identifier) , (pointer_expression "&local_50" & identifier) ))) ;) (expression_statement "*param_3 = local_50;" (assignment_expression "*param_3 = local_50" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "param_3[1] = local_4c;" (assignment_expression "param_3[1] = local_4c" (subscript_expression "param_3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[2] = local_48;" (assignment_expression "param_3[2] = local_48" (subscript_expression "param_3[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[3] = local_44;" (assignment_expression "param_3[3] = local_44" (subscript_expression "param_3[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[4] = local_40;" (assignment_expression "param_3[4] = local_40" (subscript_expression "param_3[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[5] = local_3c;" (assignment_expression "param_3[5] = local_3c" (subscript_expression "param_3[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[6] = local_38;" (assignment_expression "param_3[6] = local_38" (subscript_expression "param_3[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[7] = local_34;" (assignment_expression "param_3[7] = local_34" (subscript_expression "param_3[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[8] = local_30;" (assignment_expression "param_3[8] = local_30" (subscript_expression "param_3[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[9] = local_2c;" (assignment_expression "param_3[9] = local_2c" (subscript_expression "param_3[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[10] = local_28;" (assignment_expression "param_3[10] = local_28" (subscript_expression "param_3[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[0xb] = local_24;" (assignment_expression "param_3[0xb] = local_24" (subscript_expression "param_3[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_0001de10(&local_124,0xd4);" (call_expression "FUN_0001de10(&local_124,0xd4)" identifier (argument_list "(&local_124,0xd4)" ( (pointer_expression "&local_124" & identifier) , number_literal ))) ;) (if_statement "if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(local_10 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_10 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_0008eb20();" (call_expression "FUN_0008eb20()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (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_000751c0(undefined4 param_1,undefined4 param_2,undefined4 *param_3)\n\n{\n  int in_GS_OFFSET;\n  undefined4 local_124;\n  undefined4 local_120;\n  undefined4 local_11c;\n  undefined4 local_118;\n  undefined4 local_114;\n  undefined4 local_110;\n  undefined4 local_10c;\n  undefined4 local_108;\n  undefined4 local_104;\n  undefined4 local_100;\n  undefined4 local_fc;\n  undefined4 local_f8;\n  undefined4 local_f4;\n  undefined4 local_f0;\n  undefined4 local_ec;\n  undefined4 local_e8;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_10;\n  \n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  local_124 = DAT_0009e9a0;\n  local_120 = DAT_0009e9a4;\n  local_11c = DAT_0009e9a8;\n  local_118 = DAT_0009e9ac;\n  local_114 = DAT_0009e9b0;\n  local_110 = DAT_0009e9b4;\n  local_10c = DAT_0009e9b8;\n  local_108 = DAT_0009e9bc;\n  local_104 = DAT_0009e9c0;\n  local_100 = DAT_0009e9c4;\n  local_fc = DAT_0009e9c8;\n  local_f8 = DAT_0009e9cc;\n  local_f4 = DAT_0009e9d0;\n  local_f0 = DAT_0009e9d4;\n  local_64 = 0;\n  local_ec = DAT_0009e9d8;\n  local_60 = 0;\n  local_e8 = DAT_0009e9dc;\n  local_5c = 0;\n  local_58 = 0;\n  local_54 = 0;\n  FUN_000735d0(&local_124,param_1,param_2);\n  FUN_00074d20(&local_124,&local_50);\n  *param_3 = local_50;\n  param_3[1] = local_4c;\n  param_3[2] = local_48;\n  param_3[3] = local_44;\n  param_3[4] = local_40;\n  param_3[5] = local_3c;\n  param_3[6] = local_38;\n  param_3[7] = local_34;\n  param_3[8] = local_30;\n  param_3[9] = local_2c;\n  param_3[10] = local_28;\n  param_3[0xb] = local_24;\n  FUN_0001de10(&local_124,0xd4);\n  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_0008eb20();\n}" (primitive_type "void") (function_declarator "FUN_000751c0(undefined4 param_1,undefined4 param_2,undefined4 *param_3)" (identifier "FUN_000751c0") (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 *param_3)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 *param_3" (type_identifier "undefined4") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  int in_GS_OFFSET;\n  undefined4 local_124;\n  undefined4 local_120;\n  undefined4 local_11c;\n  undefined4 local_118;\n  undefined4 local_114;\n  undefined4 local_110;\n  undefined4 local_10c;\n  undefined4 local_108;\n  undefined4 local_104;\n  undefined4 local_100;\n  undefined4 local_fc;\n  undefined4 local_f8;\n  undefined4 local_f4;\n  undefined4 local_f0;\n  undefined4 local_ec;\n  undefined4 local_e8;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_10;\n  \n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  local_124 = DAT_0009e9a0;\n  local_120 = DAT_0009e9a4;\n  local_11c = DAT_0009e9a8;\n  local_118 = DAT_0009e9ac;\n  local_114 = DAT_0009e9b0;\n  local_110 = DAT_0009e9b4;\n  local_10c = DAT_0009e9b8;\n  local_108 = DAT_0009e9bc;\n  local_104 = DAT_0009e9c0;\n  local_100 = DAT_0009e9c4;\n  local_fc = DAT_0009e9c8;\n  local_f8 = DAT_0009e9cc;\n  local_f4 = DAT_0009e9d0;\n  local_f0 = DAT_0009e9d4;\n  local_64 = 0;\n  local_ec = DAT_0009e9d8;\n  local_60 = 0;\n  local_e8 = DAT_0009e9dc;\n  local_5c = 0;\n  local_58 = 0;\n  local_54 = 0;\n  FUN_000735d0(&local_124,param_1,param_2);\n  FUN_00074d20(&local_124,&local_50);\n  *param_3 = local_50;\n  param_3[1] = local_4c;\n  param_3[2] = local_48;\n  param_3[3] = local_44;\n  param_3[4] = local_40;\n  param_3[5] = local_3c;\n  param_3[6] = local_38;\n  param_3[7] = local_34;\n  param_3[8] = local_30;\n  param_3[9] = local_2c;\n  param_3[10] = local_28;\n  param_3[0xb] = local_24;\n  FUN_0001de10(&local_124,0xd4);\n  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_0008eb20();\n}" ({ "{") (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "undefined4 local_124;" (type_identifier "undefined4") (identifier "local_124") (; ";")) (declaration "undefined4 local_120;" (type_identifier "undefined4") (identifier "local_120") (; ";")) (declaration "undefined4 local_11c;" (type_identifier "undefined4") (identifier "local_11c") (; ";")) (declaration "undefined4 local_118;" (type_identifier "undefined4") (identifier "local_118") (; ";")) (declaration "undefined4 local_114;" (type_identifier "undefined4") (identifier "local_114") (; ";")) (declaration "undefined4 local_110;" (type_identifier "undefined4") (identifier "local_110") (; ";")) (declaration "undefined4 local_10c;" (type_identifier "undefined4") (identifier "local_10c") (; ";")) (declaration "undefined4 local_108;" (type_identifier "undefined4") (identifier "local_108") (; ";")) (declaration "undefined4 local_104;" (type_identifier "undefined4") (identifier "local_104") (; ";")) (declaration "undefined4 local_100;" (type_identifier "undefined4") (identifier "local_100") (; ";")) (declaration "undefined4 local_fc;" (type_identifier "undefined4") (identifier "local_fc") (; ";")) (declaration "undefined4 local_f8;" (type_identifier "undefined4") (identifier "local_f8") (; ";")) (declaration "undefined4 local_f4;" (type_identifier "undefined4") (identifier "local_f4") (; ";")) (declaration "undefined4 local_f0;" (type_identifier "undefined4") (identifier "local_f0") (; ";")) (declaration "undefined4 local_ec;" (type_identifier "undefined4") (identifier "local_ec") (; ";")) (declaration "undefined4 local_e8;" (type_identifier "undefined4") (identifier "local_e8") (; ";")) (declaration "undefined4 local_64;" (type_identifier "undefined4") (identifier "local_64") (; ";")) (declaration "undefined4 local_60;" (type_identifier "undefined4") (identifier "local_60") (; ";")) (declaration "undefined4 local_5c;" (type_identifier "undefined4") (identifier "local_5c") (; ";")) (declaration "undefined4 local_58;" (type_identifier "undefined4") (identifier "local_58") (; ";")) (declaration "undefined4 local_54;" (type_identifier "undefined4") (identifier "local_54") (; ";")) (declaration "undefined4 local_50;" (type_identifier "undefined4") (identifier "local_50") (; ";")) (declaration "undefined4 local_4c;" (type_identifier "undefined4") (identifier "local_4c") (; ";")) (declaration "undefined4 local_48;" (type_identifier "undefined4") (identifier "local_48") (; ";")) (declaration "undefined4 local_44;" (type_identifier "undefined4") (identifier "local_44") (; ";")) (declaration "undefined4 local_40;" (type_identifier "undefined4") (identifier "local_40") (; ";")) (declaration "undefined4 local_3c;" (type_identifier "undefined4") (identifier "local_3c") (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "undefined4 local_2c;" (type_identifier "undefined4") (identifier "local_2c") (; ";")) (declaration "undefined4 local_28;" (type_identifier "undefined4") (identifier "local_28") (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "int local_10;" (primitive_type "int") (identifier "local_10") (; ";")) (expression_statement "local_10 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_10 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_10") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "local_124 = DAT_0009e9a0;" (assignment_expression "local_124 = DAT_0009e9a0" (identifier "local_124") (= "=") (identifier "DAT_0009e9a0")) (; ";")) (expression_statement "local_120 = DAT_0009e9a4;" (assignment_expression "local_120 = DAT_0009e9a4" (identifier "local_120") (= "=") (identifier "DAT_0009e9a4")) (; ";")) (expression_statement "local_11c = DAT_0009e9a8;" (assignment_expression "local_11c = DAT_0009e9a8" (identifier "local_11c") (= "=") (identifier "DAT_0009e9a8")) (; ";")) (expression_statement "local_118 = DAT_0009e9ac;" (assignment_expression "local_118 = DAT_0009e9ac" (identifier "local_118") (= "=") (identifier "DAT_0009e9ac")) (; ";")) (expression_statement "local_114 = DAT_0009e9b0;" (assignment_expression "local_114 = DAT_0009e9b0" (identifier "local_114") (= "=") (identifier "DAT_0009e9b0")) (; ";")) (expression_statement "local_110 = DAT_0009e9b4;" (assignment_expression "local_110 = DAT_0009e9b4" (identifier "local_110") (= "=") (identifier "DAT_0009e9b4")) (; ";")) (expression_statement "local_10c = DAT_0009e9b8;" (assignment_expression "local_10c = DAT_0009e9b8" (identifier "local_10c") (= "=") (identifier "DAT_0009e9b8")) (; ";")) (expression_statement "local_108 = DAT_0009e9bc;" (assignment_expression "local_108 = DAT_0009e9bc" (identifier "local_108") (= "=") (identifier "DAT_0009e9bc")) (; ";")) (expression_statement "local_104 = DAT_0009e9c0;" (assignment_expression "local_104 = DAT_0009e9c0" (identifier "local_104") (= "=") (identifier "DAT_0009e9c0")) (; ";")) (expression_statement "local_100 = DAT_0009e9c4;" (assignment_expression "local_100 = DAT_0009e9c4" (identifier "local_100") (= "=") (identifier "DAT_0009e9c4")) (; ";")) (expression_statement "local_fc = DAT_0009e9c8;" (assignment_expression "local_fc = DAT_0009e9c8" (identifier "local_fc") (= "=") (identifier "DAT_0009e9c8")) (; ";")) (expression_statement "local_f8 = DAT_0009e9cc;" (assignment_expression "local_f8 = DAT_0009e9cc" (identifier "local_f8") (= "=") (identifier "DAT_0009e9cc")) (; ";")) (expression_statement "local_f4 = DAT_0009e9d0;" (assignment_expression "local_f4 = DAT_0009e9d0" (identifier "local_f4") (= "=") (identifier "DAT_0009e9d0")) (; ";")) (expression_statement "local_f0 = DAT_0009e9d4;" (assignment_expression "local_f0 = DAT_0009e9d4" (identifier "local_f0") (= "=") (identifier "DAT_0009e9d4")) (; ";")) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" (identifier "local_64") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_ec = DAT_0009e9d8;" (assignment_expression "local_ec = DAT_0009e9d8" (identifier "local_ec") (= "=") (identifier "DAT_0009e9d8")) (; ";")) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" (identifier "local_60") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_e8 = DAT_0009e9dc;" (assignment_expression "local_e8 = DAT_0009e9dc" (identifier "local_e8") (= "=") (identifier "DAT_0009e9dc")) (; ";")) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" (identifier "local_5c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" (identifier "local_54") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_000735d0(&local_124,param_1,param_2);" (call_expression "FUN_000735d0(&local_124,param_1,param_2)" (identifier "FUN_000735d0") (argument_list "(&local_124,param_1,param_2)" (( "(") (pointer_expression "&local_124" (& "&") (identifier "local_124")) (, ",") (identifier "param_1") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "FUN_00074d20(&local_124,&local_50);" (call_expression "FUN_00074d20(&local_124,&local_50)" (identifier "FUN_00074d20") (argument_list "(&local_124,&local_50)" (( "(") (pointer_expression "&local_124" (& "&") (identifier "local_124")) (, ",") (pointer_expression "&local_50" (& "&") (identifier "local_50")) () ")"))) (; ";")) (expression_statement "*param_3 = local_50;" (assignment_expression "*param_3 = local_50" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "local_50")) (; ";")) (expression_statement "param_3[1] = local_4c;" (assignment_expression "param_3[1] = local_4c" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_4c")) (; ";")) (expression_statement "param_3[2] = local_48;" (assignment_expression "param_3[2] = local_48" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_48")) (; ";")) (expression_statement "param_3[3] = local_44;" (assignment_expression "param_3[3] = local_44" (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_44")) (; ";")) (expression_statement "param_3[4] = local_40;" (assignment_expression "param_3[4] = local_40" (subscript_expression "param_3[4]" (identifier "param_3") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "local_40")) (; ";")) (expression_statement "param_3[5] = local_3c;" (assignment_expression "param_3[5] = local_3c" (subscript_expression "param_3[5]" (identifier "param_3") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "local_3c")) (; ";")) (expression_statement "param_3[6] = local_38;" (assignment_expression "param_3[6] = local_38" (subscript_expression "param_3[6]" (identifier "param_3") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "local_38")) (; ";")) (expression_statement "param_3[7] = local_34;" (assignment_expression "param_3[7] = local_34" (subscript_expression "param_3[7]" (identifier "param_3") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "local_34")) (; ";")) (expression_statement "param_3[8] = local_30;" (assignment_expression "param_3[8] = local_30" (subscript_expression "param_3[8]" (identifier "param_3") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "local_30")) (; ";")) (expression_statement "param_3[9] = local_2c;" (assignment_expression "param_3[9] = local_2c" (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "local_2c")) (; ";")) (expression_statement "param_3[10] = local_28;" (assignment_expression "param_3[10] = local_28" (subscript_expression "param_3[10]" (identifier "param_3") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "local_28")) (; ";")) (expression_statement "param_3[0xb] = local_24;" (assignment_expression "param_3[0xb] = local_24" (subscript_expression "param_3[0xb]" (identifier "param_3") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "local_24")) (; ";")) (expression_statement "FUN_0001de10(&local_124,0xd4);" (call_expression "FUN_0001de10(&local_124,0xd4)" (identifier "FUN_0001de10") (argument_list "(&local_124,0xd4)" (( "(") (pointer_expression "&local_124" (& "&") (identifier "local_124")) (, ",") (number_literal "0xd4") () ")"))) (; ";")) (if_statement "if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_10 == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_10 == *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_10") (== "==") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_0008eb20();" (call_expression "FUN_0008eb20()" (identifier "FUN_0008eb20") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

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

{
  int var_6;
  int var_1;
  type_2 s;
  type_1 biggerDigest [64];
  
  var_6 = *(int *)(var_1 + 0x14);
  s.h[0].hi = iv_4089;
  s.h[0].lo = DAT_0009e9a4;
  s.h[1].hi = DAT_0009e9a8;
  s.h[1].lo = DAT_0009e9ac;
  s.h[2].hi = DAT_0009e9b0;
  s.h[2].lo = DAT_0009e9b4;
  s.h[3].hi = DAT_0009e9b8;
  s.h[3].lo = DAT_0009e9bc;
  s.h[4].hi = DAT_0009e9c0;
  s.h[4].lo = DAT_0009e9c4;
  s.h[5].hi = DAT_0009e9c8;
  s.h[5].lo = DAT_0009e9cc;
  s.h[6].hi = DAT_0009e9d0;
  s.h[6].lo = DAT_0009e9d4;
  s.blkused = 0;
  s.h[7].hi = DAT_0009e9d8;
  s.len[0] = 0;
  s.h[7].lo = DAT_0009e9dc;
  s.len[1] = 0;
  s.len[2] = 0;
  s.len[3] = 0;
  var_2(&s,p,len);
  var_3(&s,biggerDigest);
  *(type_3 *)var_4 = biggerDigest._0_4_;
  *(type_3 *)(var_4 + 4) = biggerDigest._4_4_;
  *(type_3 *)(var_4 + 8) = biggerDigest._8_4_;
  *(type_3 *)(var_4 + 0xc) = biggerDigest._12_4_;
  *(type_3 *)(var_4 + 0x10) = biggerDigest._16_4_;
  *(type_3 *)(var_4 + 0x14) = biggerDigest._20_4_;
  *(type_3 *)(var_4 + 0x18) = biggerDigest._24_4_;
  *(type_3 *)(var_4 + 0x1c) = biggerDigest._28_4_;
  *(type_3 *)(var_4 + 0x20) = biggerDigest._32_4_;
  *(type_3 *)(var_4 + 0x24) = biggerDigest._36_4_;
  *(type_3 *)(var_4 + 0x28) = biggerDigest._40_4_;
  *(type_3 *)(var_4 + 0x2c) = biggerDigest._44_4_;
  var_5(&s,0xd4);
  if (var_6 == *(int *)(var_1 + 0x14)) {
    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: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) 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))))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

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

{
  int in_GS_OFFSET;
  undefined4 local_124;
  undefined4 local_120;
  undefined4 local_11c;
  undefined4 local_118;
  undefined4 local_114;
  undefined4 local_110;
  undefined4 local_10c;
  undefined4 local_108;
  undefined4 local_104;
  undefined4 local_100;
  undefined4 local_fc;
  undefined4 local_f8;
  undefined4 local_f4;
  undefined4 local_f0;
  undefined4 local_ec;
  undefined4 local_e8;
  undefined4 local_64;
  undefined4 local_60;
  undefined4 local_5c;
  undefined4 local_58;
  undefined4 local_54;
  undefined4 local_50;
  undefined4 local_4c;
  undefined4 local_48;
  undefined4 local_44;
  undefined4 local_40;
  undefined4 local_3c;
  undefined4 local_38;
  undefined4 local_34;
  undefined4 local_30;
  undefined4 local_2c;
  undefined4 local_28;
  undefined4 local_24;
  int local_10;
  
  local_10 = *(int *)(in_GS_OFFSET + 0x14);
  local_124 = DAT_0009e9a0;
  local_120 = DAT_0009e9a4;
  local_11c = DAT_0009e9a8;
  local_118 = DAT_0009e9ac;
  local_114 = DAT_0009e9b0;
  local_110 = DAT_0009e9b4;
  local_10c = DAT_0009e9b8;
  local_108 = DAT_0009e9bc;
  local_104 = DAT_0009e9c0;
  local_100 = DAT_0009e9c4;
  local_fc = DAT_0009e9c8;
  local_f8 = DAT_0009e9cc;
  local_f4 = DAT_0009e9d0;
  local_f0 = DAT_0009e9d4;
  local_64 = 0;
  local_ec = DAT_0009e9d8;
  local_60 = 0;
  local_e8 = DAT_0009e9dc;
  local_5c = 0;
  local_58 = 0;
  local_54 = 0;
  FUN_000735d0(&local_124,param_1,param_2);
  FUN_00074d20(&local_124,&local_50);
  *param_3 = local_50;
  param_3[1] = local_4c;
  param_3[2] = local_48;
  param_3[3] = local_44;
  param_3[4] = local_40;
  param_3[5] = local_3c;
  param_3[6] = local_38;
  param_3[7] = local_34;
  param_3[8] = local_30;
  param_3[9] = local_2c;
  param_3[10] = local_28;
  param_3[0xb] = local_24;
  FUN_0001de10(&local_124,0xd4);
  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0008eb20();
}

