/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x1400ef610 FUN_1400ef610 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ void FUN_1400ef610(longlong param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4) { char cVar1; int iVar2; uint uVar3; ulonglong uVar4; longlong *plVar5; longlong lVar6; longlong *plVar7; double dVar8; undefined8 uVar9; undefined1 auStack_6a8 [32]; undefined8 local_688; void *local_678; undefined8 local_670; ulonglong local_668; undefined8 local_660; ulonglong local_18; local_688 = 0xfffffffffffffffe; local_18 = DAT_1401ac5a0 ^ (ulonglong)auStack_6a8; plVar7 = (longlong *)0x0; plVar5 = plVar7; if (*(longlong **)(param_1 + 0x128) != (longlong *)0x0) { plVar5 = (longlong *)**(longlong **)(param_1 + 0x128); } cVar1 = FUN_140072260((longlong)plVar5); if ((cVar1 == '\0') && (*(char *)(param_1 + 0x80) == '\0')) { dVar8 = (double)(**(code **)(**(longlong **)(param_1 + 0x120) + 0x30))(); uVar4 = FUN_1400ef400(param_1,dVar8); iVar2 = (int)uVar4; if (0 < iVar2) { *(undefined1 *)(param_1 + 0x80) = 1; local_678 = (void *)0x0; local_660 = 0; local_670 = 0; local_668 = 100; uVar4 = uVar4 & 0xffffffff; FUN_1400db230(param_1 + 0x170,(longlong *)&local_678,iVar2); plVar5 = plVar7; if (*(longlong **)(param_1 + 0x128) != (longlong *)0x0) { plVar5 = (longlong *)**(longlong **)(param_1 + 0x128); } uVar3 = FUN_140073300((longlong)plVar5,(longlong *)&local_678,uVar4,param_4); FUN_1400f94b0(param_1 + 0x1b8,iVar2); lVar6 = **(longlong **)(param_1 + 0x120); uVar9 = (**(code **)(lVar6 + 0x30))(); *(double *)(param_1 + 0x1d8) = (double)iVar2 + *(double *)(param_1 + 0x1d8); *(undefined8 *)(param_1 + 0x1e8) = uVar9; if (uVar3 == 0) { *(undefined8 *)(param_1 + 0x1f8) = 0; } else { *(undefined1 *)(param_1 + 0x80) = 0; if (*(undefined8 **)(param_1 + 0x128) != (undefined8 *)0x0) { plVar7 = (longlong *)**(undefined8 **)(param_1 + 0x128); } FUN_140071fc0(plVar7,lVar6,uVar4,param_4); } if (100 < local_668) { operator_delete__(local_678); } } } return; }