/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1401a4c40 FUN_1401a4c40 * Pseudocode, not original source. */ void FUN_1401a4c40(longlong param_1) { int *piVar1; char cVar2; undefined *puVar3; HANDLE hThread; __time64_t _Var4; undefined *puVar5; undefined8 uVar6; undefined1 local_res8 [8]; undefined *local_res10; hThread = GetCurrentThread(); SetThreadPriorityBoost(hThread,0); FUN_1401c5a10(local_res8); cVar2 = *(char *)(param_1 + 0x140); while (cVar2 == '\0') { FUN_1401c37f0(param_1 + 0x150,100); uVar6 = FUN_1401a1f10(*(longlong *)(param_1 + 0x148) + 0x760); *(undefined8 *)(*(longlong *)(param_1 + 0x148) + 0x1c0) = uVar6; uVar6 = FUN_1401a1eb0(*(longlong *)(param_1 + 0x148) + 0x760); *(undefined8 *)(*(longlong *)(param_1 + 0x148) + 0x200) = uVar6; _Var4 = _time64((__time64_t *)0x0); *(__time64_t *)(*(longlong *)(param_1 + 0x148) + 0x208) = _Var4; FUN_1401a37e0(param_1); cVar2 = *(char *)(param_1 + 0x140); } FUN_140181560(*(undefined8 *)(param_1 + 0x148)); if (*(longlong *)(*(longlong *)(param_1 + 0x148) + 0x17f0) != 0) { FUN_14016d8c0(); local_res10 = PTR_DAT_1403440a0; FUN_14004c020(&local_res10,&DAT_140281b78,L"Proud::CNetThreads_S::Heartbeat_Main"); puVar3 = local_res10; puVar5 = local_res10; if (local_res10 == (undefined *)0x0) { puVar5 = PTR_DAT_1403440a0; } FUN_1401adb30(*(undefined8 *)(*(longlong *)(param_1 + 0x148) + 0x17f0),0,puVar5); 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); } } FUN_1401c5a40(local_res8); return; }