/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x14003fac0 FUN_14003fac0 * Pseudocode, not original source. */ void FUN_14003fac0(longlong param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4) { longlong *plVar1; longlong lVar2; undefined8 uVar3; uint local_30 [2]; undefined **local_28; undefined4 local_20; undefined2 local_1c; undefined4 local_18; FUN_14003d040((int *)(param_1 + 0x30)); *(undefined1 *)(param_1 + 0x80) = 1; FUN_140045bb0((undefined8 *)(param_1 + 0x88)); if ((*(undefined8 **)(param_1 + 0x10) != (undefined8 *)0x0) && (plVar1 = (longlong *)**(undefined8 **)(param_1 + 0x10), plVar1 != (longlong *)0x0)) { FUN_140043a50(plVar1,param_2,param_3,param_4); while( true ) { local_28 = Proud::AddrPort::vftable; local_18 = 0; local_30[0] = 0; local_30[1] = 0; local_20 = DAT_14016f3d0; local_1c = DAT_14016f3d4; lVar2 = 0; if (*(longlong **)(param_1 + 0x10) != (longlong *)0x0) { lVar2 = **(longlong **)(param_1 + 0x10); } if (*(char *)(lVar2 + 0x280) == '\0') break; lVar2 = 0; if (*(longlong **)(param_1 + 0x10) != (longlong *)0x0) { lVar2 = **(longlong **)(param_1 + 0x10); } uVar3 = FUN_140043980(lVar2,0,local_30); if (((char)uVar3 != '\0') || (DAT_140176450 != '\0')) break; Sleep(10); } } FUN_14003d0d0(param_1 + 0x30); return; }