/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x14004dd60 FUN_14004dd60 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ uint * FUN_14004dd60(uint *param_1,ulonglong *param_2,undefined8 param_3,undefined8 param_4) { undefined8 *puVar1; undefined8 *puVar2; uint *puVar3; longlong lVar4; ulonglong uVar5; undefined8 uVar6; undefined1 auStack_68 [32]; uint local_48 [2]; undefined4 local_40; undefined4 local_3c; undefined4 local_38; undefined4 local_34; undefined8 local_30; undefined4 local_28; undefined2 local_24; undefined1 local_22; ulonglong local_20; local_20 = DAT_1401ac5a0 ^ (ulonglong)auStack_68; puVar3 = local_48; uVar6 = 4; FUN_1400bc930(param_1,(undefined8 *)puVar3,4); uVar5 = (ulonglong)local_48[0]; if (((int)local_48[0] < 0) || (DAT_1401ac140 <= (int)local_48[0])) { FUN_1400d9ab0(local_48[0],puVar3,uVar6,param_4); } FUN_1400514b0((longlong *)param_2,(longlong)(int)local_48[0]); puVar2 = (undefined8 *)param_2[1]; puVar1 = (undefined8 *)*param_2; lVar4 = SUB168(SEXT816(-0x7bdef7bdef7bdef7) * SEXT816((longlong)puVar2 - (longlong)puVar1),8) + ((longlong)puVar2 - (longlong)puVar1); if ((lVar4 >> 4 != lVar4 >> 0x3f) && (puVar1 != puVar2)) { puVar2 = FUN_140052dd0((longlong)puVar2,(longlong)puVar2,puVar1); param_2[1] = (ulonglong)puVar2; } if (0 < (int)local_48[0]) { do { local_40 = 0; local_30 = 0; local_3c = 0; local_28 = 0; local_38 = 0; local_24 = 0; local_34 = 0; local_22 = 0; FUN_14005bfc0(param_1,(undefined8 *)&local_40); FUN_1400515f0(param_2,(undefined8 *)&local_40); uVar5 = uVar5 - 1; } while (uVar5 != 0); } return param_1; }