99 lines
3.3 KiB
C
99 lines
3.3 KiB
C
/* 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;
|
|
}
|
|
|