80 lines
2.6 KiB
C
80 lines
2.6 KiB
C
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
|
|
* Ghidra 12.1.2 decompiler output for 0x140005b90 FUN_140005b90
|
|
* Pseudocode, not original source. */
|
|
|
|
void FUN_140005b90(longlong param_1,undefined8 *param_2,undefined8 param_3,undefined8 param_4)
|
|
|
|
{
|
|
int *piVar1;
|
|
longlong *plVar2;
|
|
longlong *plVar3;
|
|
undefined8 *puVar4;
|
|
longlong *plVar5;
|
|
longlong lVar6;
|
|
longlong lVar7;
|
|
wchar_t *pwVar8;
|
|
ulonglong uVar9;
|
|
undefined8 uVar10;
|
|
undefined *local_res10;
|
|
longlong *local_90;
|
|
longlong *local_88;
|
|
undefined8 local_80;
|
|
undefined8 local_70;
|
|
undefined8 local_68;
|
|
undefined8 local_60;
|
|
undefined8 local_58;
|
|
void *local_50 [5];
|
|
|
|
puVar4 = (undefined8 *)
|
|
(**(code **)*param_2)(param_2,&local_res10,param_3,param_4,0xfffffffffffffffe);
|
|
uVar10 = *puVar4;
|
|
uVar9 = (ulonglong)*(uint *)(param_2 + 6);
|
|
pwVar8 = L"AGENT DISCONNECT : HostID:[%d][%s]";
|
|
lVar7 = DAT_14017c8a8;
|
|
FUN_1400ef250(DAT_14017c8a8,L"AGENT DISCONNECT : HostID:[%d][%s]",uVar9,uVar10);
|
|
if (((local_res10 != (undefined *)0x0) && (local_res10 != PTR_DAT_14016f010)) &&
|
|
(local_res10 + -8 != (undefined *)0x0)) {
|
|
plVar5 = (longlong *)FUN_14003e7c0(lVar7,pwVar8,uVar9,uVar10);
|
|
local_90 = plVar5;
|
|
FUN_14003d040((int *)plVar5);
|
|
local_88 = (longlong *)CONCAT71(local_88._1_7_,1);
|
|
piVar1 = (int *)(local_res10 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_14003e8b0(local_res10 + -8);
|
|
}
|
|
FUN_14003d0d0((longlong)plVar5);
|
|
}
|
|
local_res10 = PTR_DAT_14016f010;
|
|
lVar7 = DAT_14017cf20;
|
|
lVar6 = FUN_1400395f0(DAT_14017cf20,*(int *)(param_2 + 6));
|
|
if (lVar6 != 0) {
|
|
*(undefined4 *)(lVar6 + 0xa0) = 0;
|
|
local_90 = (longlong *)0x0;
|
|
local_88 = (longlong *)0x0;
|
|
local_80 = 0;
|
|
FUN_1400397d0(lVar7,(ulonglong *)&local_90);
|
|
plVar3 = local_88;
|
|
plVar2 = local_90;
|
|
for (plVar5 = local_90; plVar5 != plVar3; plVar5 = plVar5 + 1) {
|
|
lVar7 = *plVar5;
|
|
if (*(int *)(lVar7 + 8) == *(int *)(lVar6 + 4)) {
|
|
*(undefined4 *)(lVar7 + 0xc4) = 0;
|
|
puVar4 = FUN_140005da0(lVar7,local_50);
|
|
local_70 = *(undefined8 *)(lVar7 + 0xb8);
|
|
local_68 = *(undefined8 *)(lVar7 + 0xc0);
|
|
local_60 = *(undefined8 *)(lVar7 + 200);
|
|
local_58 = *(undefined8 *)(lVar7 + 0xd0);
|
|
FUN_140012020(*(longlong *)(param_1 + 0x78),*(undefined4 *)(lVar7 + 4),&local_70,puVar4);
|
|
if (local_50[0] != (void *)0x0) {
|
|
operator_delete(local_50[0]);
|
|
}
|
|
}
|
|
}
|
|
if (plVar2 != (longlong *)0x0) {
|
|
operator_delete(plVar2);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|