/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x1400ba160 FUN_1400ba160 * Pseudocode, not original source. */ ulonglong FUN_1400ba160(undefined8 param_1,uint param_2,void *param_3,uint *param_4,byte *param_5, undefined4 param_6,uint param_7,int param_8,undefined4 *param_9, longlong param_10) { uint uVar1; uint uVar2; ulonglong uVar3; char *_Memory; undefined8 uVar4; uint local_res18 [2]; undefined8 in_stack_ffffffffffffff98; undefined4 uVar5; uVar5 = (undefined4)((ulonglong)in_stack_ffffffffffffff98 >> 0x20); if ((param_3 == (void *)0x0) || (param_4 == (uint *)0x0)) { return 0x10; } if (param_10 == 0) { return 0x10; } if (param_9 != (undefined4 *)0x0) { *param_9 = 0; if (param_8 != 1) { if (param_8 != 2) { return 0x18; } uVar3 = FUN_1400db770(param_7); if ((int)uVar3 != 0) { return uVar3; } } uVar1 = (*DAT_14017d4e8)(*(undefined8 *)(param_10 + 0x18)); uVar2 = (*DAT_14017d510)(*(undefined8 *)(param_10 + 0x18)); if (uVar2 == param_2) { _Memory = malloc((ulonglong)param_2); if (_Memory == (char *)0x0) { uVar3 = 0xd; } else { local_res18[0] = param_2; uVar2 = (*DAT_14017d600)(param_1,param_2,_Memory,local_res18,CONCAT44(uVar5,1),param_10); uVar3 = (ulonglong)uVar2; if (uVar2 == 0) { if (param_8 == 2) { uVar3 = FUN_1400db900(_Memory,local_res18[0],param_5,param_6,uVar1,param_7,param_3, param_4,param_9); uVar1 = (uint)uVar3; } else { uVar4 = FUN_1400db7d0(_Memory,local_res18[0],2,(ulonglong)uVar1,param_3,param_4,param_9) ; uVar1 = (uint)uVar4; } uVar3 = (ulonglong)uVar1; free(_Memory); } else { free(_Memory); } } } else { uVar3 = 7; } return uVar3; } return 0x10; }