/* 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; }