/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x1400e98cc FUN_1400e98cc * Pseudocode, not original source. */ undefined8 FUN_1400e98cc(longlong param_1,uint param_2,int param_3,int param_4,int param_5,uint param_6, char *param_7,int param_8) { uint uVar1; int iVar2; undefined8 uVar3; code *pcVar4; longlong *plVar5; longlong lVar6; int iVar7; undefined4 uVar8; uVar8 = 1; if (((param_7 == (char *)0x0) || (*param_7 != '1')) || (param_8 != 0x58)) { uVar3 = 0xfffffffa; } else { if (param_1 != 0) { *(undefined8 *)(param_1 + 0x20) = 0; if (*(longlong *)(param_1 + 0x30) == 0) { *(undefined8 *)(param_1 + 0x40) = 0; *(code **)(param_1 + 0x30) = FUN_1400e9ba8; } pcVar4 = *(code **)(param_1 + 0x38); if (pcVar4 == (code *)0x0) { pcVar4 = FUN_1400e9bc8; } *(code **)(param_1 + 0x38) = pcVar4; if (param_2 == 0xffffffff) { param_2 = 6; } if (param_4 < 0) { param_4 = -param_4; uVar8 = 0; } else if (0xf < param_4) { uVar8 = 2; param_4 = param_4 + -0x10; } if (((param_5 - 1U < 9) && (param_3 == 8)) && ((param_4 - 8U < 8 && ((param_2 < 10 && (param_6 < 5)))))) { if (param_4 == 8) { param_4 = 9; } plVar5 = (longlong *)(**(code **)(param_1 + 0x30))(*(undefined8 *)(param_1 + 0x40),1,0x1718) ; if (plVar5 != (longlong *)0x0) { *(longlong **)(param_1 + 0x28) = plVar5; *(undefined4 *)((longlong)plVar5 + 0x2c) = uVar8; *(int *)(plVar5 + 9) = param_4; *plVar5 = param_1; plVar5[6] = 0; iVar7 = 1 << ((byte)param_4 & 0x1f); *(int *)((longlong)plVar5 + 0x44) = iVar7; *(int *)(plVar5 + 0xf) = param_5 + 7; *(int *)((longlong)plVar5 + 0x4c) = iVar7 + -1; iVar2 = 1 << ((byte)(param_5 + 7) & 0x1f); *(int *)((longlong)plVar5 + 0x74) = iVar2; *(int *)((longlong)plVar5 + 0x7c) = iVar2 + -1; *(uint *)(plVar5 + 0x10) = (param_5 + 9U) / 3; lVar6 = (**(code **)(param_1 + 0x30))(*(undefined8 *)(param_1 + 0x40),iVar7,2); plVar5[10] = lVar6; lVar6 = (**(code **)(param_1 + 0x30)) (*(undefined8 *)(param_1 + 0x40), *(undefined4 *)((longlong)plVar5 + 0x44),2); plVar5[0xc] = lVar6; lVar6 = (**(code **)(param_1 + 0x30)) (*(undefined8 *)(param_1 + 0x40), *(undefined4 *)((longlong)plVar5 + 0x74),2); iVar2 = 1 << ((char)param_5 + 6U & 0x1f); plVar5[0xd] = lVar6; *(int *)(plVar5 + 0x2de) = iVar2; lVar6 = (**(code **)(param_1 + 0x30))(*(undefined8 *)(param_1 + 0x40),iVar2,4); plVar5[2] = lVar6; uVar1 = *(uint *)(plVar5 + 0x2de); *(uint *)(plVar5 + 3) = uVar1 << 2; if ((((plVar5[10] != 0) && (plVar5[0xc] != 0)) && (plVar5[0xd] != 0)) && (lVar6 != 0)) { *(uint *)((longlong)plVar5 + 0xac) = param_2; *(uint *)(plVar5 + 0x16) = param_6; *(undefined1 *)((longlong)plVar5 + 0x3c) = 8; plVar5[0x2df] = lVar6 + (ulonglong)(uVar1 >> 1) * 2; plVar5[0x2dd] = lVar6 + (ulonglong)uVar1 * 3; uVar3 = FUN_1400e970c(param_1); return uVar3; } *(undefined4 *)(plVar5 + 1) = 0x29a; *(char **)(param_1 + 0x20) = "insufficient memory"; FUN_1400e843c(param_1); } return 0xfffffffc; } } uVar3 = 0xfffffffe; } return uVar3; }