64 lines
2.1 KiB
C
64 lines
2.1 KiB
C
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
|
|
* Ghidra 12.1.2 decompiler output for 0x14009b2c0 FUN_14009b2c0
|
|
* Pseudocode, not original source. */
|
|
|
|
void FUN_14009b2c0(wchar_t *param_1,LPVOID param_2,longlong *param_3,undefined8 param_4)
|
|
|
|
{
|
|
undefined8 *puVar1;
|
|
LPVOID pvVar2;
|
|
wchar_t *pwVar3;
|
|
int iVar4;
|
|
longlong lVar5;
|
|
|
|
pwVar3 = param_1;
|
|
FUN_14003d040((int *)param_1);
|
|
if (0 < *(int *)(param_1 + 0x24)) {
|
|
pwVar3 =
|
|
L"CHeartbeatWorkThread must be cleaned up only after every work items are unregistered!";
|
|
FUN_14003e110(
|
|
L"CHeartbeatWorkThread must be cleaned up only after every work items are unregistered!"
|
|
);
|
|
}
|
|
*(undefined1 *)(param_1 + 0x40) = 0;
|
|
iVar4 = 0;
|
|
lVar5 = 0;
|
|
if (0 < *(int *)(param_1 + 0x34)) {
|
|
do {
|
|
if ((lVar5 < 0) || (*(int *)(param_1 + 0x34) <= iVar4)) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14003def0(pwVar3,param_2,param_3,param_4);
|
|
}
|
|
puVar1 = *(undefined8 **)(*(longlong *)(param_1 + 0x30) + lVar5 * 8);
|
|
pwVar3 = (wchar_t *)0x0;
|
|
if (puVar1 != (undefined8 *)0x0) {
|
|
pwVar3 = (wchar_t *)*puVar1;
|
|
}
|
|
FUN_140045bb0((undefined8 *)pwVar3);
|
|
iVar4 = iVar4 + 1;
|
|
lVar5 = lVar5 + 1;
|
|
} while (iVar4 < *(int *)(param_1 + 0x34));
|
|
}
|
|
FUN_14003d0d0((longlong)param_1);
|
|
*(undefined ***)(param_1 + 0x28) = Proud::CFastArray<Proud::RefCount<Proud::Thread>,0>::vftable;
|
|
pvVar2 = (LPVOID)(longlong)*(int *)(param_1 + 0x34);
|
|
if (0 < *(int *)(param_1 + 0x34)) {
|
|
FUN_14005cbc0(*(longlong **)(param_1 + 0x30),(longlong)pvVar2);
|
|
param_2 = pvVar2;
|
|
}
|
|
pvVar2 = *(LPVOID *)(param_1 + 0x30);
|
|
if (pvVar2 != (LPVOID)0x0) {
|
|
param_3 = *(longlong **)(param_1 + 0x2c);
|
|
if (param_3 == (longlong *)0x0) {
|
|
FUN_14003e8b0(pvVar2);
|
|
}
|
|
else {
|
|
(**(code **)(*param_3 + 0x18))(param_3);
|
|
param_2 = pvVar2;
|
|
}
|
|
}
|
|
FUN_14009af00((longlong *)(param_1 + 0x1c));
|
|
FUN_14003d110((undefined4 *)param_1,param_2,param_3,param_4);
|
|
return;
|
|
}
|
|
|