/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x1400cffa0 FUN_1400cffa0 * Pseudocode, not original source. */ void FUN_1400cffa0(longlong *param_1,longlong param_2,SIZE_T param_3,undefined8 param_4) { longlong lVar1; longlong *plVar2; undefined1 uVar3; ushort uVar4; longlong lVar5; undefined8 uVar6; double dVar7; undefined **local_70; undefined4 local_68; undefined2 local_64; undefined4 local_60 [2]; undefined8 local_58; undefined1 local_50; undefined4 local_4c; undefined1 local_48; undefined1 local_47; int local_40 [2]; longlong local_38; longlong local_30; int local_24; if (((longlong *)param_1[1] != (longlong *)0x0) && (*(longlong *)param_1[1] != 0)) { lVar5 = param_2; FUN_140074fb0(local_40); FUN_140074a40((longlong)local_40,lVar5,param_3,param_4); FUN_140075110(local_40,0x800,param_3,param_4); uVar6 = 0; FUN_140075110(local_40,0,param_3,param_4); FUN_140029d80((longlong)local_40,CONCAT71((int7)((ulonglong)uVar6 >> 8),0x27),param_3,param_4); local_60[0] = 1; lVar5 = 0; local_58 = 0; local_50 = 1; local_4c = 0xffffffff; local_48 = 1; local_47 = DAT_14016f1cc; local_70 = Proud::AddrPort::vftable; local_68 = *(undefined4 *)(param_2 + 8); local_64 = *(undefined2 *)(param_2 + 0xc); if (((longlong *)param_1[1] != (longlong *)0x0) && (lVar1 = *(longlong *)param_1[1], lVar1 != 0) ) { lVar5 = lVar1 + -0x40; } plVar2 = (longlong *)param_1[0xcc]; dVar7 = (double)(**(code **)(*param_1 + 8))(param_1); uVar3 = (**(code **)(*plVar2 + 0x30))(plVar2); uVar4 = FUN_14008be40(uVar3,(char)*(undefined4 *)((longlong)param_1 + 0x55c)); FUN_1400d31e0(lVar5,*(uint *)((longlong)param_1 + 0x55c),(ulonglong)uVar4,(longlong)&local_70, (longlong)local_40,dVar7,(undefined8 *)local_60); FUN_14008a320(&local_38); if ((local_30 != 0) && (local_24 < 0)) { /* WARNING: Subroutine does not return */ FUN_14003dec0(); } } return; }