114 lines
3.6 KiB
C
114 lines
3.6 KiB
C
/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
|
|
* Ghidra 12.1.2 decompiler output for 0x1400056f0 FUN_1400056f0
|
|
* Pseudocode, not original source. */
|
|
|
|
void FUN_1400056f0(longlong param_1,undefined8 *param_2,undefined8 param_3,undefined8 param_4)
|
|
|
|
{
|
|
int *piVar1;
|
|
int *piVar2;
|
|
undefined4 uVar3;
|
|
longlong *plVar4;
|
|
int *piVar5;
|
|
longlong lVar6;
|
|
wchar_t *pwVar7;
|
|
ulonglong uVar8;
|
|
longlong lVar9;
|
|
longlong lVar10;
|
|
undefined *puVar11;
|
|
longlong local_res8;
|
|
undefined8 *local_res10;
|
|
int *local_c8;
|
|
undefined1 local_c0;
|
|
undefined8 local_b8;
|
|
undefined8 local_b0;
|
|
undefined8 local_a8;
|
|
undefined8 local_a0;
|
|
int *local_98;
|
|
undefined1 local_90;
|
|
undefined8 local_88;
|
|
undefined8 local_80 [9];
|
|
|
|
local_88 = 0xfffffffffffffffe;
|
|
piVar1 = (int *)(param_1 + 0x70);
|
|
local_res8 = param_1;
|
|
local_98 = piVar1;
|
|
FUN_14002e6e0(piVar1);
|
|
local_90 = 1;
|
|
plVar4 = (longlong *)(**(code **)*param_2)(param_2,&local_res10);
|
|
puVar11 = (undefined *)*plVar4;
|
|
if ((undefined *)*plVar4 == (undefined *)0x0) {
|
|
puVar11 = PTR_DAT_140155010;
|
|
}
|
|
uVar8 = (ulonglong)*(uint *)(param_2 + 6);
|
|
pwVar7 = L"DELETE SERVER : HostID:[%d][%s] \n";
|
|
wprintf(L"DELETE SERVER : HostID:[%d][%s] \n");
|
|
if (((local_res10 != (undefined8 *)0x0) && (local_res10 != (undefined8 *)PTR_DAT_140155010)) &&
|
|
(param_1 = local_res8, local_res10 + -1 != (undefined8 *)0x0)) {
|
|
piVar5 = (int *)FUN_140030200(pwVar7,uVar8,puVar11,param_4);
|
|
local_c8 = piVar5;
|
|
FUN_14002e6e0(piVar5);
|
|
local_c0 = 1;
|
|
piVar2 = (int *)((longlong)local_res10 + -4);
|
|
*piVar2 = *piVar2 + -1;
|
|
if (*piVar2 == 0) {
|
|
FUN_1400302f0(local_res10 + -1);
|
|
}
|
|
FUN_14002e770((longlong)piVar5);
|
|
param_1 = local_res8;
|
|
}
|
|
local_res10 = (undefined8 *)PTR_DAT_140155010;
|
|
lVar6 = FUN_14002c920(DAT_140162d60,*(int *)(param_2 + 6));
|
|
if (lVar6 != 0) {
|
|
lVar10 = 0;
|
|
*(undefined4 *)(lVar6 + 0xa0) = 0;
|
|
*(undefined4 *)(lVar6 + 0xc4) = 0;
|
|
local_res10 = local_80;
|
|
piVar5 = (int *)FUN_140006c30(lVar6,local_80);
|
|
local_b8 = *(undefined8 *)(lVar6 + 0xb8);
|
|
local_b0 = *(undefined8 *)(lVar6 + 0xc0);
|
|
local_a8 = *(undefined8 *)(lVar6 + 200);
|
|
local_a0 = *(undefined8 *)(lVar6 + 0xd0);
|
|
uVar3 = *(undefined4 *)(lVar6 + 4);
|
|
lVar9 = *(longlong *)(param_1 + 0x48);
|
|
piVar2 = (int *)(lVar9 + 0x28);
|
|
local_c8 = piVar5;
|
|
FUN_14002e6e0(piVar2);
|
|
plVar4 = *(longlong **)(lVar9 + 8);
|
|
if (*plVar4 == 0) {
|
|
FUN_14002e770((longlong)piVar2);
|
|
lVar9 = lVar10;
|
|
}
|
|
else {
|
|
lVar9 = *plVar4;
|
|
FUN_14002e770((longlong)piVar2);
|
|
}
|
|
local_res10 = (undefined8 *)CONCAT44(local_res10._4_4_,uVar3);
|
|
(**(code **)(*(longlong *)(lVar9 + 0x68) + 0x40))
|
|
((longlong *)(lVar9 + 0x68),1,&DAT_1401555d0,&local_res10,&local_b8,piVar5);
|
|
if (*(void **)piVar5 != (void *)0x0) {
|
|
operator_delete(*(void **)piVar5);
|
|
}
|
|
piVar5[0] = 0;
|
|
piVar5[1] = 0;
|
|
piVar5[2] = 0;
|
|
piVar5[3] = 0;
|
|
piVar5[4] = 0;
|
|
piVar5[5] = 0;
|
|
uVar3 = *(undefined4 *)(lVar6 + 4);
|
|
lVar6 = *(longlong *)(local_res8 + 0x48);
|
|
FUN_14002e6e0((int *)(lVar6 + 0x28));
|
|
if (**(longlong **)(lVar6 + 8) != 0) {
|
|
lVar10 = **(longlong **)(lVar6 + 8);
|
|
}
|
|
FUN_14002e770(lVar6 + 0x28);
|
|
local_c8 = (int *)CONCAT44(local_c8._4_4_,1);
|
|
local_res10 = (undefined8 *)CONCAT44(local_res10._4_4_,uVar3);
|
|
local_res8 = CONCAT71(local_res8._1_7_,1);
|
|
(**(code **)(*(longlong *)(lVar10 + 0x68) + 0x50))
|
|
((longlong *)(lVar10 + 0x68),1,&DAT_1401555d0,&local_res8,&local_c8,&local_res10);
|
|
}
|
|
FUN_14002e770((longlong)piVar1);
|
|
return;
|
|
}
|
|
|