/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1401ebe30 FUN_1401ebe30 * Pseudocode, not original source. */ void FUN_1401ebe30(longlong param_1) { int *piVar1; longlong lVar2; undefined *puVar3; bool bVar4; bool bVar5; undefined *local_res10; undefined *local_res18 [2]; undefined8 uVar6; uVar6 = 0xfffffffffffffffe; bVar4 = *(int *)(param_1 + 0x100) == 5; lVar2 = *(longlong *)(*(longlong *)(param_1 + 0x108) + 0x5d8); puVar3 = (undefined *)0x0; if (lVar2 != 0) { puVar3 = *(undefined **)(lVar2 + 0x38); } FUN_14016db50(puVar3 + 0x10); bVar5 = *(longlong *)(param_1 + 0x10) == 0; FUN_14016dbe0(puVar3 + 0x10); if ((!bVar4) || (!bVar5)) { FUN_14016d8c0(); local_res18[0] = PTR_DAT_1403440a0; FUN_14004c020(local_res18,L"CNetClientManager.dtor assert fail: %d %d",bVar4,bVar5,uVar6); FUN_14016d8c0(); puVar3 = local_res18[0]; local_res10 = PTR_DAT_1403440a0; if (PTR_DAT_1403440a0 == (undefined *)0x0) { local_res10 = (undefined *)0x0; } if (local_res18[0] != PTR_DAT_1403440a0) { uVar6 = FUN_14016d8c0(); FUN_14016db50(uVar6); FUN_14004eb70(&local_res10); local_res10 = puVar3; if (((puVar3 != PTR_DAT_1403440a0) && (puVar3 != (undefined *)0x0)) && (puVar3 != (undefined *)0x8)) { *(int *)(puVar3 + -4) = *(int *)(puVar3 + -4) + 1; } FUN_14016dbe0(uVar6); } FUN_1401be230(&local_res10); if (((puVar3 != (undefined *)0x0) && (puVar3 != PTR_DAT_1403440a0)) && (puVar3 + -8 != (undefined *)0x0)) { uVar6 = FUN_14016d8c0(); FUN_14016db50(uVar6); piVar1 = (int *)(puVar3 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14016d970(puVar3 + -8); } FUN_14016dbe0(uVar6); } } if (*(longlong *)(param_1 + 0x10) != 0) { FUN_1401ea6f0(*(longlong *)(param_1 + 0x10),param_1); } return; }