/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x140002180 FUN_140002180 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void FUN_140002180(longlong param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4) { char cVar1; undefined *puVar2; int *piVar3; int *piVar4; undefined **ppuVar5; int *piVar6; undefined8 *puVar7; undefined *puVar8; undefined1 auStack_b8 [32]; int *local_98; undefined1 local_90; int *local_88; undefined1 local_80; undefined8 local_78; undefined *local_68; undefined2 local_60; undefined4 local_5c; undefined4 local_58; undefined4 local_54; undefined4 local_50; undefined8 local_48 [6]; ulonglong local_18; local_78 = 0xfffffffffffffffe; local_18 = DAT_1401555a0 ^ (ulonglong)auStack_b8; puVar2 = *(undefined **)(param_1 + 0x30); if ((((puVar2 != (undefined *)0x0) && (puVar2 != PTR_DAT_140155010)) && (0 < *(int *)(puVar2 + -8))) && (((*(char *)(param_1 + 0x18) != '\0' && (*(char *)(param_1 + 0x19) == '\0')) && ((*(char *)(param_1 + 0x1a) == '\0' && (*(longlong *)(param_1 + 0x10) != 0)))))) { *(undefined2 *)(param_1 + 0x19) = 1; ppuVar5 = &local_68; FUN_14003b600(ppuVar5,param_2,param_3,param_4); local_5c = DAT_140162d38; local_58 = _DAT_140162d3c; local_54 = _DAT_140162d40; local_50 = _DAT_140162d44; if (local_68 == (undefined *)0x0) { local_68 = PTR_DAT_140155010; } if (*(undefined **)(param_1 + 0x30) != local_68) { piVar3 = (int *)FUN_140030200(ppuVar5,param_2,param_3,param_4); piVar6 = piVar3; local_88 = piVar3; FUN_14002e6e0(piVar3); puVar2 = local_68; local_80 = 1; if (((local_68 != (undefined *)0x0) && (local_68 != PTR_DAT_140155010)) && (puVar8 = local_68 + -8, puVar8 != (undefined *)0x0)) { piVar4 = (int *)FUN_140030200(piVar6,param_2,param_3,param_4); local_98 = piVar4; FUN_14002e6e0(piVar4); local_90 = 1; piVar6 = (int *)(puVar2 + -4); *piVar6 = *piVar6 + -1; if (*piVar6 == 0) { FUN_1400302f0(puVar8); } FUN_14002e770((longlong)piVar4); } local_68 = *(undefined **)(param_1 + 0x30); if (((local_68 != PTR_DAT_140155010) && (local_68 != (undefined *)0x0)) && (local_68 != (undefined *)0x8)) { *(int *)(local_68 + -4) = *(int *)(local_68 + -4) + 1; } FUN_14002e770((longlong)piVar3); } local_60 = *(undefined2 *)(param_1 + 0x38); (**(code **)(**(longlong **)(param_1 + 0x10) + 0x88))(); ppuVar5 = &local_68; (**(code **)(**(longlong **)(param_1 + 0x10) + 0x78))(); cVar1 = *(char *)(param_1 + 0x19); while (cVar1 != '\0') { Sleep(10); ppuVar5 = (undefined **)0x0; (**(code **)(**(longlong **)(param_1 + 0x10) + 0x98))(); cVar1 = *(char *)(param_1 + 0x19); } puVar7 = local_48; FUN_14003b870(puVar7); puVar2 = local_68; if (((local_68 != (undefined *)0x0) && (local_68 != PTR_DAT_140155010)) && (puVar8 = local_68 + -8, puVar8 != (undefined *)0x0)) { piVar3 = (int *)FUN_140030200(puVar7,ppuVar5,param_3,param_4); local_98 = piVar3; FUN_14002e6e0(piVar3); local_90 = 1; piVar6 = (int *)(puVar2 + -4); *piVar6 = *piVar6 + -1; if (*piVar6 == 0) { FUN_1400302f0(puVar8); } FUN_14002e770((longlong)piVar3); } } return; }