server-re/decomp/AgentManager_Release_x64/full/functions/0x1400c0900.c
2026-10-15 09:58:24 -04:00

77 lines
2.5 KiB
C

/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400c0900 FUN_1400c0900
* Pseudocode, not original source. */
void FUN_1400c0900(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_14003d040((int *)(puVar4 + 0x10));
lVar1 = param_1[2];
puVar4 = puVar4 + 0x10;
FUN_14003d0d0((longlong)puVar4);
uVar8 = (ulonglong)(lVar1 == 0);
if ((!bVar9) || (lVar1 != 0)) {
FUN_14003e7c0(puVar4,param_2,param_3,param_4);
local_res18[0] = PTR_DAT_14016f010;
pwVar6 = L"CNetClientManager.dtor assert fail: %d %d";
ppuVar5 = local_res18;
FUN_140029b80((longlong *)ppuVar5,L"CNetClientManager.dtor assert fail: %d %d",uVar7,uVar8);
FUN_14003e7c0(ppuVar5,pwVar6,uVar7,uVar8);
puVar4 = local_res18[0];
local_res10 = PTR_DAT_14016f010;
if (PTR_DAT_14016f010 == (undefined *)0x0) {
local_res10 = (undefined *)0x0;
}
param_3 = uVar7;
param_4 = uVar8;
if (local_res18[0] != PTR_DAT_14016f010) {
piVar2 = (int *)FUN_14003e7c0(ppuVar5,pwVar6,uVar7,uVar8);
FUN_14003d040(piVar2);
FUN_140002190((longlong *)&local_res10,pwVar6,uVar7,uVar8);
local_res10 = puVar4;
if (((puVar4 != PTR_DAT_14016f010) && (puVar4 != (undefined *)0x0)) &&
(puVar4 != (undefined *)0x8)) {
*(int *)(puVar4 + -4) = *(int *)(puVar4 + -4) + 1;
}
FUN_14003d0d0((longlong)piVar2);
param_3 = uVar7;
param_4 = uVar8;
}
ppuVar5 = &local_res10;
FUN_1400416f0((longlong *)ppuVar5,pwVar6,param_3,param_4);
if (((puVar4 != (undefined *)0x0) && (puVar4 != PTR_DAT_14016f010)) &&
(puVar4 + -8 != (undefined *)0x0)) {
piVar3 = (int *)FUN_14003e7c0(ppuVar5,pwVar6,param_3,param_4);
FUN_14003d040(piVar3);
piVar2 = (int *)(puVar4 + -4);
*piVar2 = *piVar2 + -1;
if (*piVar2 == 0) {
FUN_14003e8b0(puVar4 + -8);
}
FUN_14003d0d0((longlong)piVar3);
}
}
if ((longlong *)param_1[2] != (longlong *)0x0) {
FUN_1400bf1e0((longlong *)param_1[2],param_1,param_3,param_4);
}
return;
}