/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x14007b540 FUN_14007b540 * Pseudocode, not original source. */ void FUN_14007b540(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_1400721c0(local_res8); cVar2 = *(char *)(param_1 + 0x140); while (cVar2 == '\0') { pwVar7 = (wchar_t *)0x64; FUN_140048620((undefined8 *)(param_1 + 0x150),100); dVar10 = FUN_1400489c0((char *)(*(longlong *)(param_1 + 0x148) + 0x760)); *(double *)(*(longlong *)(param_1 + 0x148) + 0x1c0) = dVar10; dVar10 = FUN_140048960((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_140079fe0(param_1,pwVar7,param_3,param_4); cVar2 = *(char *)(param_1 + 0x140); } lVar6 = *(longlong *)(param_1 + 0x148); FUN_14005a330(lVar6,pwVar7,param_3,param_4); if (*(longlong *)(*(longlong *)(param_1 + 0x148) + 0x17f0) != 0) { FUN_14003e7c0(lVar6,pwVar7,param_3,param_4); local_res10 = (short *)PTR_DAT_14016f010; FUN_140029b80((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_14016f010; } uVar8 = 0; lVar6 = *(longlong *)(*(longlong *)(param_1 + 0x148) + 0x17f0); FUN_1400843d0(lVar6,0,psVar9,param_4); if (((psVar3 != (short *)0x0) && (psVar3 != (short *)PTR_DAT_14016f010)) && (psVar3 + -4 != (short *)0x0)) { piVar5 = (int *)FUN_14003e7c0(lVar6,uVar8,psVar9,param_4); FUN_14003d040(piVar5); piVar1 = (int *)(psVar3 + -2); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14003e8b0(psVar3 + -4); } FUN_14003d0d0((longlong)piVar5); } } FUN_1400721f0(local_res8); return; }