/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x1400c2a10 FUN_1400c2a10 * Pseudocode, not original source. */ void FUN_1400c2a10(longlong param_1,undefined8 param_2,SIZE_T *param_3,TypeDescriptor *param_4) { int *piVar1; char cVar2; short *psVar3; HANDLE hThread; __time64_t _Var4; int *piVar5; longlong lVar6; wchar_t *pwVar7; undefined8 uVar8; short *psVar9; double dVar10; char local_res8 [8]; short *local_res10; hThread = GetCurrentThread(); pwVar7 = (wchar_t *)0x0; SetThreadPriorityBoost(hThread,0); FUN_1400f8570(local_res8); cVar2 = *(char *)(param_1 + 0x140); while (cVar2 == '\0') { pwVar7 = (wchar_t *)0x64; FUN_140076c10((undefined8 *)(param_1 + 0x150),100); dVar10 = FUN_140076fb0((char *)(*(longlong *)(param_1 + 0x148) + 0x760)); *(double *)(*(longlong *)(param_1 + 0x148) + 0x1c0) = dVar10; dVar10 = FUN_140076f50((char *)(*(longlong *)(param_1 + 0x148) + 0x760)); *(double *)(*(longlong *)(param_1 + 0x148) + 0x200) = dVar10; _Var4 = _time64((__time64_t *)0x0); *(__time64_t *)(*(longlong *)(param_1 + 0x148) + 0x208) = _Var4; FUN_1400c18f0(param_1,pwVar7,param_3,param_4); cVar2 = *(char *)(param_1 + 0x140); } lVar6 = *(longlong *)(param_1 + 0x148); FUN_140088ec0(lVar6,pwVar7,param_3,param_4); if (*(longlong *)(*(longlong *)(param_1 + 0x148) + 0x17f0) != 0) { FUN_14006cb70(lVar6,pwVar7,param_3,param_4); local_res10 = (short *)PTR_DAT_1401ac010; FUN_140053d20((longlong *)&local_res10,L"%s thread 종료", L"Proud::CNetThreads_S::Heartbeat_Main",param_4); psVar3 = local_res10; psVar9 = local_res10; if (local_res10 == (short *)0x0) { psVar9 = (short *)PTR_DAT_1401ac010; } uVar8 = 0; lVar6 = *(longlong *)(*(longlong *)(param_1 + 0x148) + 0x17f0); FUN_1400cb700(lVar6,0,psVar9,param_4); if (((psVar3 != (short *)0x0) && (psVar3 != (short *)PTR_DAT_1401ac010)) && (psVar3 + -4 != (short *)0x0)) { piVar5 = (int *)FUN_14006cb70(lVar6,uVar8,psVar9,param_4); FUN_14006b350(piVar5); piVar1 = (int *)(psVar3 + -2); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14006cc60(psVar3 + -4); } FUN_14006b3e0((longlong)piVar5); } } FUN_1400f85a0(local_res8); return; }