add agent manager release decomp

This commit is contained in:
Benjamin Palko 2026-10-15 09:58:24 -04:00
parent 31ff800b2a
commit fac6117145
7019 changed files with 254032 additions and 5 deletions

View file

@ -0,0 +1,101 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400baa30 FUN_1400baa30
* Pseudocode, not original source. */
void FUN_1400baa30(longlong *param_1)
{
ushort *puVar1;
uint uVar2;
short sVar3;
short *psVar4;
ulonglong _Size;
uint uVar5;
uint uVar6;
ulonglong uVar7;
uVar2 = *(uint *)((longlong)param_1 + 0x44);
_Size = (ulonglong)uVar2;
while( true ) {
uVar5 = ((int)param_1[0xb] - *(int *)((longlong)param_1 + 0x9c)) -
*(uint *)((longlong)param_1 + 0x94);
if ((uVar2 - 0x106) + *(int *)((longlong)param_1 + 0x44) <= *(uint *)((longlong)param_1 + 0x94))
{
memcpy((void *)param_1[10],(void *)(param_1[10] + _Size),_Size);
uVar7 = (ulonglong)*(uint *)((longlong)param_1 + 0x74);
*(uint *)(param_1 + 0x13) = (int)param_1[0x13] - uVar2;
*(int *)((longlong)param_1 + 0x94) = *(int *)((longlong)param_1 + 0x94) - uVar2;
*(int *)((longlong)param_1 + 0x84) = *(int *)((longlong)param_1 + 0x84) - uVar2;
psVar4 = (short *)(param_1[0xd] + uVar7 * 2);
do {
puVar1 = (ushort *)(psVar4 + -1);
psVar4 = psVar4 + -1;
if (*puVar1 < uVar2) {
sVar3 = 0;
}
else {
sVar3 = *puVar1 - (short)uVar2;
}
uVar6 = (int)uVar7 - 1;
uVar7 = (ulonglong)uVar6;
*psVar4 = sVar3;
} while (uVar6 != 0);
psVar4 = (short *)(param_1[0xc] + _Size * 2);
uVar6 = uVar2;
do {
puVar1 = (ushort *)(psVar4 + -1);
psVar4 = psVar4 + -1;
if (*puVar1 < uVar2) {
sVar3 = 0;
}
else {
sVar3 = *puVar1 - (short)uVar2;
}
uVar6 = uVar6 - 1;
*psVar4 = sVar3;
} while (uVar6 != 0);
uVar5 = uVar5 + uVar2;
}
if ((int)((longlong *)*param_1)[1] == 0) break;
uVar5 = FUN_1400ba7e0((longlong *)*param_1,
(void *)((ulonglong)*(uint *)((longlong)param_1 + 0x9c) +
(ulonglong)*(uint *)((longlong)param_1 + 0x94) + param_1[10]),
uVar5);
*(int *)((longlong)param_1 + 0x9c) = *(int *)((longlong)param_1 + 0x9c) + uVar5;
uVar5 = *(uint *)((longlong)param_1 + 0x9c);
if (2 < uVar5) {
uVar6 = (uint)*(byte *)((ulonglong)*(uint *)((longlong)param_1 + 0x94) + param_1[10]);
*(uint *)(param_1 + 0xe) = uVar6;
*(uint *)(param_1 + 0xe) =
(uVar6 << ((byte)(int)param_1[0x10] & 0x1f) ^
(uint)*(byte *)((ulonglong)(*(uint *)((longlong)param_1 + 0x94) + 1) + param_1[10])) &
*(uint *)((longlong)param_1 + 0x7c);
}
if ((0x105 < uVar5) || (*(int *)(*param_1 + 8) == 0)) {
uVar2 = *(uint *)(param_1 + 0x2e3);
uVar6 = *(uint *)(param_1 + 0xb);
if (uVar2 < uVar6) {
uVar5 = uVar5 + *(int *)((longlong)param_1 + 0x94);
if (uVar2 < uVar5) {
uVar2 = uVar6 - uVar5;
if (0x102 < uVar6 - uVar5) {
uVar2 = 0x102;
}
memset((void *)((ulonglong)uVar5 + param_1[10]),0,(ulonglong)uVar2);
*(uint *)(param_1 + 0x2e3) = uVar2 + uVar5;
}
else if (uVar2 < uVar5 + 0x102) {
uVar5 = (uVar5 - uVar2) + 0x102;
if (uVar6 - uVar2 < uVar5) {
uVar5 = uVar6 - uVar2;
}
memset((void *)((ulonglong)uVar2 + param_1[10]),0,(ulonglong)uVar5);
*(uint *)(param_1 + 0x2e3) = (int)param_1[0x2e3] + uVar5;
}
}
return;
}
}
return;
}