/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x1400cf8f0 FUN_1400cf8f0 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void FUN_1400cf8f0(longlong param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4) { undefined *puVar1; int *piVar2; int *piVar3; undefined **ppuVar4; int *piVar5; undefined8 *puVar6; undefined *puVar7; double dVar8; undefined1 auStack_b8 [32]; int *local_98; undefined1 local_90; int *local_88; undefined1 local_80; undefined8 local_78; undefined *local_68; undefined2 local_60; undefined4 local_5c; undefined4 local_58; undefined4 local_54; undefined4 local_50; undefined8 local_48 [6]; ulonglong local_18; local_78 = 0xfffffffffffffffe; local_18 = DAT_1401ac5a0 ^ (ulonglong)auStack_b8; dVar8 = (double)(**(code **)(**(longlong **)(param_1 + 0x40) + 8))(); if (*(double *)(param_1 + 0x90) <= dVar8 && dVar8 != *(double *)(param_1 + 0x90)) { ppuVar4 = &local_68; FUN_1400780f0(ppuVar4,param_2,param_3,param_4); if (local_68 == (undefined *)0x0) { local_68 = PTR_DAT_1401ac010; } if (*(undefined **)(param_1 + 0x50) != local_68) { piVar2 = (int *)FUN_14006cb70(ppuVar4,param_2,param_3,param_4); piVar5 = piVar2; local_88 = piVar2; FUN_14006b350(piVar2); puVar1 = local_68; local_80 = 1; if (((local_68 != (undefined *)0x0) && (local_68 != PTR_DAT_1401ac010)) && (puVar7 = local_68 + -8, puVar7 != (undefined *)0x0)) { piVar3 = (int *)FUN_14006cb70(piVar5,param_2,param_3,param_4); local_98 = piVar3; FUN_14006b350(piVar3); local_90 = 1; piVar5 = (int *)(puVar1 + -4); *piVar5 = *piVar5 + -1; if (*piVar5 == 0) { FUN_14006cc60(puVar7); } FUN_14006b3e0((longlong)piVar3); } local_68 = *(undefined **)(param_1 + 0x50); if (((local_68 != PTR_DAT_1401ac010) && (local_68 != (undefined *)0x0)) && (local_68 != (undefined *)0x8)) { *(int *)(local_68 + -4) = *(int *)(local_68 + -4) + 1; } FUN_14006b3e0((longlong)piVar2); } local_60 = *(undefined2 *)(param_1 + 0x58); local_5c = DAT_1401ada98; local_58 = DAT_1401ada9c; local_54 = DAT_1401adaa0; local_50 = DAT_1401adaa4; ppuVar4 = &local_68; (**(code **)(*(longlong *)(*(longlong *)(param_1 + 0x48) + 0x70) + 0x78))(); dVar8 = (double)(**(code **)(**(longlong **)(param_1 + 0x40) + 8))(); *(double *)(param_1 + 0x90) = dVar8 + _DAT_1401b4318; *(undefined4 *)(param_1 + 0x88) = 1; puVar6 = local_48; FUN_140078360(puVar6); puVar1 = local_68; if (((local_68 != (undefined *)0x0) && (local_68 != PTR_DAT_1401ac010)) && (puVar7 = local_68 + -8, puVar7 != (undefined *)0x0)) { piVar2 = (int *)FUN_14006cb70(puVar6,ppuVar4,param_3,param_4); local_98 = piVar2; FUN_14006b350(piVar2); local_90 = 1; piVar5 = (int *)(puVar1 + -4); *piVar5 = *piVar5 + -1; if (*piVar5 == 0) { FUN_14006cc60(puVar7); } FUN_14006b3e0((longlong)piVar2); } } return; }