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,182 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400bdc10 FUN_1400bdc10
* Pseudocode, not original source. */
void FUN_1400bdc10(longlong param_1,longlong param_2,longlong param_3)
{
byte bVar1;
byte bVar2;
int iVar3;
int iVar4;
byte bVar5;
ulonglong uVar6;
longlong lVar7;
uint uVar8;
uint uVar9;
ushort uVar10;
uint uVar11;
ushort uVar12;
longlong lVar13;
uVar8 = 0;
if (*(int *)(param_1 + 0x16f4) != 0) {
lVar13 = 0;
do {
uVar6 = (ulonglong)uVar8;
lVar13 = lVar13 + 2;
uVar10 = *(ushort *)(*(longlong *)(param_1 + 0x16f8) + -2 + lVar13);
uVar8 = uVar8 + 1;
bVar1 = *(byte *)(uVar6 + *(longlong *)(param_1 + 0x16e8));
iVar3 = *(int *)(param_1 + 0x1714);
bVar5 = (byte)iVar3;
if (uVar10 == 0) {
lVar7 = (longlong)(int)(uint)bVar1;
uVar11 = (uint)*(ushort *)(param_2 + 2 + lVar7 * 4);
if ((int)(0x10 - uVar11) < iVar3) {
uVar10 = *(ushort *)(param_2 + lVar7 * 4);
*(ushort *)(param_1 + 0x1710) = *(ushort *)(param_1 + 0x1710) | uVar10 << (bVar5 & 0x1f);
*(undefined1 *)((ulonglong)*(uint *)(param_1 + 0x28) + *(longlong *)(param_1 + 0x10)) =
*(undefined1 *)(param_1 + 0x1710);
*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + 1;
*(undefined1 *)((ulonglong)*(uint *)(param_1 + 0x28) + *(longlong *)(param_1 + 0x10)) =
*(undefined1 *)(param_1 + 0x1711);
*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + 1;
iVar3 = *(int *)(param_1 + 0x1714) + -0x10 + uVar11;
*(ushort *)(param_1 + 0x1710) =
uVar10 >> (0x10U - (char)*(int *)(param_1 + 0x1714) & 0x1f);
}
else {
*(ushort *)(param_1 + 0x1710) =
*(ushort *)(param_1 + 0x1710) | *(short *)(param_2 + lVar7 * 4) << (bVar5 & 0x1f);
iVar3 = iVar3 + uVar11;
}
LAB_1400bdf97:
*(int *)(param_1 + 0x1714) = iVar3;
}
else {
bVar2 = (&DAT_1401230f0)[bVar1];
uVar11 = bVar2 + 0x101;
uVar9 = (uint)*(ushort *)(param_2 + 2 + (ulonglong)uVar11 * 4);
if ((int)(0x10 - uVar9) < iVar3) {
uVar12 = *(ushort *)(param_2 + (ulonglong)uVar11 * 4);
*(ushort *)(param_1 + 0x1710) = *(ushort *)(param_1 + 0x1710) | uVar12 << (bVar5 & 0x1f);
*(undefined1 *)((ulonglong)*(uint *)(param_1 + 0x28) + *(longlong *)(param_1 + 0x10)) =
*(undefined1 *)(param_1 + 0x1710);
*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + 1;
*(undefined1 *)((ulonglong)*(uint *)(param_1 + 0x28) + *(longlong *)(param_1 + 0x10)) =
*(undefined1 *)(param_1 + 0x1711);
*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + 1;
iVar3 = *(int *)(param_1 + 0x1714) + -0x10;
*(ushort *)(param_1 + 0x1710) =
uVar12 >> (0x10U - (char)*(int *)(param_1 + 0x1714) & 0x1f);
}
else {
*(ushort *)(param_1 + 0x1710) =
*(ushort *)(param_1 + 0x1710) |
*(short *)(param_2 + (ulonglong)uVar11 * 4) << (bVar5 & 0x1f);
}
iVar3 = iVar3 + uVar9;
*(int *)(param_1 + 0x1714) = iVar3;
iVar4 = *(int *)(&DAT_140122880 + (ulonglong)bVar2 * 4);
if (iVar4 != 0) {
uVar12 = (ushort)bVar1 - (short)*(undefined4 *)(&DAT_1401231f0 + (ulonglong)bVar2 * 4);
if (0x10 - iVar4 < iVar3) {
*(ushort *)(param_1 + 0x1710) =
*(ushort *)(param_1 + 0x1710) | uVar12 << ((byte)iVar3 & 0x1f);
*(undefined1 *)((ulonglong)*(uint *)(param_1 + 0x28) + *(longlong *)(param_1 + 0x10)) =
*(undefined1 *)(param_1 + 0x1710);
*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + 1;
*(undefined1 *)((ulonglong)*(uint *)(param_1 + 0x28) + *(longlong *)(param_1 + 0x10)) =
*(undefined1 *)(param_1 + 0x1711);
*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + 1;
iVar3 = *(int *)(param_1 + 0x1714) + -0x10;
*(ushort *)(param_1 + 0x1710) =
uVar12 >> (0x10U - (char)*(int *)(param_1 + 0x1714) & 0x1f);
}
else {
*(ushort *)(param_1 + 0x1710) =
*(ushort *)(param_1 + 0x1710) | uVar12 << ((byte)iVar3 & 0x1f);
}
*(int *)(param_1 + 0x1714) = iVar3 + iVar4;
}
uVar11 = uVar10 - 1;
if (uVar11 < 0x100) {
bVar1 = (&DAT_140122ef0)[uVar11];
}
else {
bVar1 = (&DAT_140122ef0)[(uVar11 >> 7) + 0x100];
}
uVar6 = (ulonglong)bVar1;
uVar9 = (uint)*(ushort *)(param_3 + 2 + uVar6 * 4);
iVar4 = *(int *)(param_1 + 0x1714);
if ((int)(0x10 - uVar9) < iVar4) {
uVar10 = *(ushort *)(param_3 + uVar6 * 4);
*(ushort *)(param_1 + 0x1710) =
*(ushort *)(param_1 + 0x1710) | uVar10 << ((byte)iVar4 & 0x1f);
*(undefined1 *)((ulonglong)*(uint *)(param_1 + 0x28) + *(longlong *)(param_1 + 0x10)) =
*(undefined1 *)(param_1 + 0x1710);
*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + 1;
*(undefined1 *)((ulonglong)*(uint *)(param_1 + 0x28) + *(longlong *)(param_1 + 0x10)) =
*(undefined1 *)(param_1 + 0x1711);
*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + 1;
iVar4 = *(int *)(param_1 + 0x1714) + -0x10;
*(ushort *)(param_1 + 0x1710) =
uVar10 >> (0x10U - (char)*(int *)(param_1 + 0x1714) & 0x1f);
}
else {
*(ushort *)(param_1 + 0x1710) =
*(ushort *)(param_1 + 0x1710) |
*(short *)(param_3 + uVar6 * 4) << ((byte)iVar4 & 0x1f);
}
iVar4 = iVar4 + uVar9;
*(int *)(param_1 + 0x1714) = iVar4;
iVar3 = *(int *)(&DAT_140122900 + uVar6 * 4);
if (iVar3 != 0) {
uVar10 = (short)uVar11 - (short)*(undefined4 *)(&DAT_140123270 + uVar6 * 4);
if (0x10 - iVar3 < iVar4) {
*(ushort *)(param_1 + 0x1710) =
*(ushort *)(param_1 + 0x1710) | uVar10 << ((byte)iVar4 & 0x1f);
*(undefined1 *)((ulonglong)*(uint *)(param_1 + 0x28) + *(longlong *)(param_1 + 0x10)) =
*(undefined1 *)(param_1 + 0x1710);
*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + 1;
*(undefined1 *)((ulonglong)*(uint *)(param_1 + 0x28) + *(longlong *)(param_1 + 0x10)) =
*(undefined1 *)(param_1 + 0x1711);
*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + 1;
iVar3 = *(int *)(param_1 + 0x1714) + -0x10 + iVar3;
*(ushort *)(param_1 + 0x1710) =
uVar10 >> (0x10U - (char)*(int *)(param_1 + 0x1714) & 0x1f);
}
else {
iVar3 = iVar4 + iVar3;
*(ushort *)(param_1 + 0x1710) =
*(ushort *)(param_1 + 0x1710) | uVar10 << ((byte)iVar4 & 0x1f);
}
goto LAB_1400bdf97;
}
}
} while (uVar8 < *(uint *)(param_1 + 0x16f4));
}
uVar10 = *(ushort *)(param_2 + 0x402);
iVar3 = *(int *)(param_1 + 0x1714);
if ((int)(0x10 - (uint)uVar10) < iVar3) {
uVar12 = *(ushort *)(param_2 + 0x400);
*(ushort *)(param_1 + 0x1710) = *(ushort *)(param_1 + 0x1710) | uVar12 << ((byte)iVar3 & 0x1f);
*(undefined1 *)((ulonglong)*(uint *)(param_1 + 0x28) + *(longlong *)(param_1 + 0x10)) =
*(undefined1 *)(param_1 + 0x1710);
*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + 1;
*(undefined1 *)((ulonglong)*(uint *)(param_1 + 0x28) + *(longlong *)(param_1 + 0x10)) =
*(undefined1 *)(param_1 + 0x1711);
*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + 1;
iVar3 = *(int *)(param_1 + 0x1714) + -0x10;
*(ushort *)(param_1 + 0x1710) = uVar12 >> (0x10U - (char)*(int *)(param_1 + 0x1714) & 0x1f);
}
else {
*(ushort *)(param_1 + 0x1710) =
*(ushort *)(param_1 + 0x1710) | *(short *)(param_2 + 0x400) << ((byte)iVar3 & 0x1f);
}
*(uint *)(param_1 + 0x1714) = iVar3 + (uint)uVar10;
*(uint *)(param_1 + 0x170c) = (uint)*(ushort *)(param_2 + 0x402);
return;
}