77 lines
2.5 KiB
C
77 lines
2.5 KiB
C
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
|
|
* Ghidra 12.1.2 decompiler output for 0x1400e14e0 FUN_1400e14e0
|
|
* Pseudocode, not original source. */
|
|
|
|
void FUN_1400e14e0(longlong *param_1,undefined8 param_2,ulonglong param_3,ulonglong param_4)
|
|
|
|
{
|
|
longlong lVar1;
|
|
int *piVar2;
|
|
int *piVar3;
|
|
undefined *puVar4;
|
|
undefined **ppuVar5;
|
|
wchar_t *pwVar6;
|
|
ulonglong uVar7;
|
|
ulonglong uVar8;
|
|
bool bVar9;
|
|
undefined *local_res10;
|
|
undefined *local_res18 [2];
|
|
|
|
bVar9 = (int)param_1[0x20] == 5;
|
|
uVar7 = (ulonglong)bVar9;
|
|
puVar4 = (undefined *)0x0;
|
|
if (*(longlong *)(param_1[0x21] + 0x5d8) != 0) {
|
|
puVar4 = *(undefined **)(*(longlong *)(param_1[0x21] + 0x5d8) + 0x38);
|
|
}
|
|
FUN_14006b350((int *)(puVar4 + 0x10));
|
|
lVar1 = param_1[2];
|
|
puVar4 = puVar4 + 0x10;
|
|
FUN_14006b3e0((longlong)puVar4);
|
|
uVar8 = (ulonglong)(lVar1 == 0);
|
|
if ((!bVar9) || (lVar1 != 0)) {
|
|
FUN_14006cb70(puVar4,param_2,param_3,param_4);
|
|
local_res18[0] = PTR_DAT_1401ac010;
|
|
pwVar6 = L"CNetClientManager.dtor assert fail: %d %d";
|
|
ppuVar5 = local_res18;
|
|
FUN_140053d20((longlong *)ppuVar5,L"CNetClientManager.dtor assert fail: %d %d",uVar7,uVar8);
|
|
FUN_14006cb70(ppuVar5,pwVar6,uVar7,uVar8);
|
|
puVar4 = local_res18[0];
|
|
local_res10 = PTR_DAT_1401ac010;
|
|
if (PTR_DAT_1401ac010 == (undefined *)0x0) {
|
|
local_res10 = (undefined *)0x0;
|
|
}
|
|
param_3 = uVar7;
|
|
param_4 = uVar8;
|
|
if (local_res18[0] != PTR_DAT_1401ac010) {
|
|
piVar2 = (int *)FUN_14006cb70(ppuVar5,pwVar6,uVar7,uVar8);
|
|
FUN_14006b350(piVar2);
|
|
FUN_1400031e0((longlong *)&local_res10,pwVar6,uVar7,uVar8);
|
|
local_res10 = puVar4;
|
|
if (((puVar4 != PTR_DAT_1401ac010) && (puVar4 != (undefined *)0x0)) &&
|
|
(puVar4 != (undefined *)0x8)) {
|
|
*(int *)(puVar4 + -4) = *(int *)(puVar4 + -4) + 1;
|
|
}
|
|
FUN_14006b3e0((longlong)piVar2);
|
|
param_3 = uVar7;
|
|
param_4 = uVar8;
|
|
}
|
|
ppuVar5 = &local_res10;
|
|
FUN_14006fa80((longlong *)ppuVar5,pwVar6,param_3,param_4);
|
|
if (((puVar4 != (undefined *)0x0) && (puVar4 != PTR_DAT_1401ac010)) &&
|
|
(puVar4 + -8 != (undefined *)0x0)) {
|
|
piVar3 = (int *)FUN_14006cb70(ppuVar5,pwVar6,param_3,param_4);
|
|
FUN_14006b350(piVar3);
|
|
piVar2 = (int *)(puVar4 + -4);
|
|
*piVar2 = *piVar2 + -1;
|
|
if (*piVar2 == 0) {
|
|
FUN_14006cc60(puVar4 + -8);
|
|
}
|
|
FUN_14006b3e0((longlong)piVar3);
|
|
}
|
|
}
|
|
if ((longlong *)param_1[2] != (longlong *)0x0) {
|
|
FUN_1400dfdc0((longlong *)param_1[2],param_1,param_3,param_4);
|
|
}
|
|
return;
|
|
}
|
|
|