/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x14015be70 FUN_14015be70 * 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_14015be70(longlong param_1) { int *piVar1; char cVar2; undefined *puVar3; undefined8 uVar4; undefined8 uVar5; undefined *puVar6; undefined1 auStack_b8 [32]; undefined8 local_98; undefined1 local_90; undefined8 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; undefined1 local_48 [48]; ulonglong local_18; local_78 = 0xfffffffffffffffe; local_18 = DAT_1403463c0 ^ (ulonglong)auStack_b8; puVar3 = *(undefined **)(param_1 + 0x30); if ((((puVar3 != (undefined *)0x0) && (puVar3 != PTR_DAT_1403440a0)) && (0 < *(int *)(puVar3 + -8))) && (((*(char *)(param_1 + 0x18) != '\0' && (*(char *)(param_1 + 0x19) == '\0')) && ((*(char *)(param_1 + 0x1a) == '\0' && (*(longlong *)(param_1 + 0x10) != 0)))))) { *(undefined2 *)(param_1 + 0x19) = 1; FUN_1401bbb30(&local_68); local_5c = DAT_1403530c0; local_58 = _DAT_1403530c4; local_54 = _DAT_1403530c8; local_50 = _DAT_1403530cc; if (local_68 == (undefined *)0x0) { local_68 = PTR_DAT_1403440a0; } if (*(undefined **)(param_1 + 0x30) != local_68) { uVar4 = FUN_14016d8c0(); local_88 = uVar4; FUN_14016db50(uVar4); puVar3 = local_68; local_80 = 1; if (((local_68 != (undefined *)0x0) && (local_68 != PTR_DAT_1403440a0)) && (puVar6 = local_68 + -8, puVar6 != (undefined *)0x0)) { uVar5 = FUN_14016d8c0(); local_98 = uVar5; FUN_14016db50(uVar5); local_90 = 1; piVar1 = (int *)(puVar3 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14016d970(puVar6); } FUN_14016dbe0(uVar5); } local_68 = *(undefined **)(param_1 + 0x30); if (((local_68 != PTR_DAT_1403440a0) && (local_68 != (undefined *)0x0)) && (local_68 != (undefined *)0x8)) { *(int *)(local_68 + -4) = *(int *)(local_68 + -4) + 1; } FUN_14016dbe0(uVar4); } local_60 = *(undefined2 *)(param_1 + 0x38); (**(code **)(**(longlong **)(param_1 + 0x10) + 0x88))(); (**(code **)(**(longlong **)(param_1 + 0x10) + 0x78))(*(longlong **)(param_1 + 0x10),&local_68); cVar2 = *(char *)(param_1 + 0x19); while (cVar2 != '\0') { Sleep(10); (**(code **)(**(longlong **)(param_1 + 0x10) + 0x98))(*(longlong **)(param_1 + 0x10),0); cVar2 = *(char *)(param_1 + 0x19); } FUN_14019a9e0(local_48); puVar3 = local_68; if (((local_68 != (undefined *)0x0) && (local_68 != PTR_DAT_1403440a0)) && (puVar6 = local_68 + -8, puVar6 != (undefined *)0x0)) { uVar4 = FUN_14016d8c0(); local_98 = uVar4; FUN_14016db50(uVar4); local_90 = 1; piVar1 = (int *)(puVar3 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14016d970(puVar6); } FUN_14016dbe0(uVar4); } } return; }