/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x1400ca250 FUN_1400ca250 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ void FUN_1400ca250(longlong *param_1,undefined8 *param_2,IMAGE_DOS_HEADER *param_3, undefined8 param_4) { int iVar1; IMAGE_DOS_HEADER *pIVar2; undefined1 auStack_188 [32]; IMAGE_DOS_HEADER *local_168; longlong *local_160; undefined8 local_150; ulonglong local_28; local_150 = 0xfffffffffffffffe; local_28 = DAT_1401ac5a0 ^ (ulonglong)auStack_188; local_168 = (IMAGE_DOS_HEADER *)0x0; pIVar2 = param_3; local_160 = param_1; local_168 = (IMAGE_DOS_HEADER *)FUN_1400dec50((longlong *)*param_2); if (local_168 != (IMAGE_DOS_HEADER *)0x0) { iVar1 = *(int *)(param_2 + 2); if (iVar1 == 2) { FUN_1400c9d20(param_1,(longlong)param_2,local_168,param_3); } else if (iVar1 == 1) { FUN_1400c2ba0((longlong)param_1,(longlong)param_2,(uint *)local_168,param_4); } else if (((iVar1 == 0) && (*(int *)(param_2 + 3) == -1)) && (*(longlong *)(param_1[0x29] + 0x788) != 0)) { FUN_1400c60b0((longlong)param_1,(longlong)local_168,(longlong *)pIVar2,param_4); } } return; }