decompiled agent_release

This commit is contained in:
Benjamin Palko 2026-10-14 16:45:19 -04:00
parent baac905ef2
commit 11a3488883
6439 changed files with 229565 additions and 1 deletions

View file

@ -0,0 +1,204 @@
/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
* Ghidra 12.1.2 decompiler output for 0x1400c8900 FUN_1400c8900
* Pseudocode, not original source. */
undefined8 FUN_1400c8900(undefined1 *param_1,int param_2,int param_3,uint *param_4)
{
byte bVar1;
byte bVar2;
uint3 uVar3;
uint uVar4;
uint *puVar5;
uint *puVar6;
uint *puVar7;
int iVar8;
uint uVar9;
uint *puVar10;
if ((param_1 == (undefined1 *)0x0) || (param_4 == (uint *)0x0)) {
return 0x10;
}
if (((param_2 != 0x10) && (param_2 != 0x18)) && (param_2 != 0x20)) {
return 3;
}
if ((param_3 != 0) && (param_3 != ((int)(param_2 + (param_2 >> 0x1f & 7U)) >> 3) * 2 + 6)) {
return 4;
}
puVar5 = param_4 + 1;
param_4[0x78] = ((int)(param_2 + (param_2 >> 0x1f & 7U)) >> 3) * 2 + 6;
uVar4 = CONCAT31(CONCAT21(CONCAT11(*param_1,param_1[1]),param_1[2]),param_1[3]);
*param_4 = uVar4;
*puVar5 = CONCAT31(CONCAT21(CONCAT11(param_1[4],param_1[5]),param_1[6]),param_1[7]);
param_4[2] = CONCAT31(CONCAT21(CONCAT11(param_1[8],param_1[9]),param_1[10]),param_1[0xb]);
bVar1 = param_1[0xc];
uVar3 = CONCAT21(CONCAT11(bVar1,param_1[0xd]),param_1[0xe]);
bVar2 = param_1[0xf];
uVar9 = CONCAT31(uVar3,bVar2);
param_4[3] = uVar9;
if (param_2 == 0x10) {
uVar4 = *(uint *)(&DAT_1401141c0 + (ulonglong)bVar1 * 4) ^
*(uint *)(&DAT_140114dc0 + (ulonglong)((uVar3 & 0xff00) >> 8) * 4) ^
*(uint *)(&DAT_1401149c0 + (ulonglong)(uVar3 & 0xff) * 4) ^
*(uint *)(&DAT_1401145c0 + (ulonglong)bVar2 * 4) ^ uVar4 ^ 0x1000000;
param_4[4] = uVar4;
uVar4 = uVar4 ^ *puVar5;
param_4[5] = uVar4;
uVar4 = uVar4 ^ param_4[2];
param_4[6] = uVar4;
param_4[7] = uVar4 ^ uVar9;
puVar7 = &DAT_140116dc4;
do {
uVar4 = puVar5[6];
puVar6 = puVar7 + 1;
uVar4 = *(uint *)(&DAT_1401141c0 + (ulonglong)(uVar4 >> 0x18) * 4) ^
*(uint *)(&DAT_140114dc0 + (ulonglong)(uVar4 >> 0x10 & 0xff) * 4) ^
*(uint *)(&DAT_1401149c0 + (ulonglong)(uVar4 >> 8 & 0xff) * 4) ^
*(uint *)(&DAT_1401145c0 + (ulonglong)(uVar4 & 0xff) * 4) ^ puVar5[3] ^ *puVar7;
puVar5[7] = uVar4;
uVar4 = uVar4 ^ puVar5[4];
puVar5[8] = uVar4;
uVar4 = puVar5[5] ^ uVar4;
puVar5[9] = uVar4;
puVar5[10] = uVar4 ^ puVar5[6];
puVar7 = puVar6;
puVar5 = puVar5 + 4;
} while (puVar6 != (uint *)"sha256");
}
else if (param_2 == 0x18) {
param_4[4] = CONCAT31(CONCAT21(CONCAT11(param_1[0x10],param_1[0x11]),param_1[0x12]),
param_1[0x13]);
bVar1 = param_1[0x14];
uVar3 = CONCAT21(CONCAT11(bVar1,param_1[0x15]),param_1[0x16]);
bVar2 = param_1[0x17];
param_4[5] = CONCAT31(uVar3,bVar2);
uVar4 = *(uint *)(&DAT_1401141c0 + (ulonglong)bVar1 * 4) ^
*(uint *)(&DAT_140114dc0 + (ulonglong)((uVar3 & 0xff00) >> 8) * 4) ^
*(uint *)(&DAT_1401149c0 + (ulonglong)(uVar3 & 0xff) * 4) ^
*(uint *)(&DAT_1401145c0 + (ulonglong)bVar2 * 4) ^ uVar4 ^ 0x1000000;
param_4[6] = uVar4;
uVar4 = uVar4 ^ *puVar5;
param_4[7] = uVar4;
uVar4 = uVar4 ^ param_4[2];
param_4[8] = uVar4;
param_4[9] = uVar4 ^ param_4[3];
puVar5 = &DAT_140116dc4;
puVar7 = param_4 + 10;
do {
puVar6 = puVar5 + 1;
*puVar7 = puVar7[-6] ^ puVar7[-1];
puVar7[1] = puVar7[-5] ^ puVar7[-6] ^ puVar7[-1];
uVar4 = param_4[((-0x28 - (longlong)param_4) + (longlong)(puVar7 + 6) >> 2) + 5];
uVar4 = *(uint *)(&DAT_1401141c0 + (ulonglong)(uVar4 >> 0x18) * 4) ^
*(uint *)(&DAT_140114dc0 + (ulonglong)(uVar4 >> 0x10 & 0xff) * 4) ^
*(uint *)(&DAT_1401149c0 + (ulonglong)(uVar4 >> 8 & 0xff) * 4) ^
*(uint *)(&DAT_1401145c0 + (ulonglong)(uVar4 & 0xff) * 4) ^ puVar7[-4] ^ *puVar5;
puVar7[2] = uVar4;
uVar4 = puVar7[-3] ^ uVar4;
puVar7[3] = uVar4;
uVar4 = puVar7[-2] ^ uVar4;
puVar7[4] = uVar4;
puVar7[5] = puVar7[-1] ^ uVar4;
puVar5 = puVar6;
puVar7 = puVar7 + 6;
} while (puVar6 != (uint *)&DAT_140116de0);
}
else {
if (param_2 != 0x20) {
return 1;
}
param_4[4] = CONCAT31(CONCAT21(CONCAT11(param_1[0x10],param_1[0x11]),param_1[0x12]),
param_1[0x13]);
param_4[5] = CONCAT31(CONCAT21(CONCAT11(param_1[0x14],param_1[0x15]),param_1[0x16]),
param_1[0x17]);
param_4[6] = CONCAT31(CONCAT21(CONCAT11(param_1[0x18],param_1[0x19]),param_1[0x1a]),
param_1[0x1b]);
bVar1 = param_1[0x1c];
uVar3 = CONCAT21(CONCAT11(bVar1,param_1[0x1d]),param_1[0x1e]);
bVar2 = param_1[0x1f];
param_4[7] = CONCAT31(uVar3,bVar2);
uVar4 = *(uint *)(&DAT_1401141c0 + (ulonglong)bVar1 * 4) ^
*(uint *)(&DAT_140114dc0 + (ulonglong)((uVar3 & 0xff00) >> 8) * 4) ^
*(uint *)(&DAT_1401149c0 + (ulonglong)(uVar3 & 0xff) * 4) ^
*(uint *)(&DAT_1401145c0 + (ulonglong)bVar2 * 4) ^ uVar4 ^ 0x1000000;
param_4[8] = uVar4;
uVar4 = uVar4 ^ *puVar5;
param_4[9] = uVar4;
uVar4 = uVar4 ^ param_4[2];
param_4[10] = uVar4;
param_4[0xb] = uVar4 ^ param_4[3];
puVar5 = &DAT_140116dc4;
puVar7 = param_4 + 0xc;
do {
uVar4 = puVar7[-1];
puVar6 = puVar5 + 1;
uVar9 = *(uint *)(&DAT_1401141c0 + (ulonglong)(uVar4 & 0xff) * 4) ^
*(uint *)(&DAT_140114dc0 + (ulonglong)(uVar4 >> 0x18) * 4) ^
*(uint *)(&DAT_1401149c0 + (ulonglong)((uVar4 >> 8 & 0xff00) >> 8) * 4) ^
*(uint *)(&DAT_1401145c0 + (ulonglong)(uVar4 >> 8 & 0xff) * 4) ^ puVar7[-8];
uVar4 = puVar7[-7] ^ uVar9;
*puVar7 = uVar9;
puVar7[1] = uVar4;
uVar4 = puVar7[-6] ^ uVar4;
puVar7[2] = uVar4;
puVar7[3] = puVar7[-5] ^ uVar4;
uVar4 = param_4[((-0x30 - (longlong)param_4) + (longlong)(puVar7 + 8) >> 2) + 7];
uVar4 = *(uint *)(&DAT_1401141c0 + (ulonglong)(uVar4 >> 0x18) * 4) ^
*(uint *)(&DAT_140114dc0 + (ulonglong)(uVar4 >> 0x10 & 0xff) * 4) ^
*(uint *)(&DAT_1401149c0 + (ulonglong)(uVar4 >> 8 & 0xff) * 4) ^
*(uint *)(&DAT_1401145c0 + (ulonglong)(uVar4 & 0xff) * 4) ^ puVar7[-4] ^ *puVar5;
puVar7[4] = uVar4;
uVar4 = puVar7[-3] ^ uVar4;
puVar7[5] = uVar4;
uVar4 = puVar7[-2] ^ uVar4;
puVar7[6] = uVar4;
puVar7[7] = puVar7[-1] ^ uVar4;
puVar5 = puVar6;
puVar7 = puVar7 + 8;
} while (puVar6 != (uint *)&DAT_140116ddc);
}
iVar8 = 1;
puVar5 = param_4 + 0x3c;
puVar7 = param_4 + (longlong)(param_2 + 0x1c) + -4;
param_4[0x3c] = param_4[(longlong)(param_2 + 0x1c) + -4];
param_4[0x3d] = puVar7[1];
param_4[0x3e] = puVar7[2];
param_4[0x3f] = puVar7[3];
puVar6 = puVar7;
puVar10 = puVar5;
if (1 < (int)param_4[0x78]) {
do {
uVar4 = puVar6[-4];
puVar7 = puVar6 + -4;
puVar5 = puVar10 + 4;
iVar8 = iVar8 + 1;
*puVar5 = *(uint *)(&DAT_140115dc0 + (ulonglong)(uVar4 >> 0x18) * 4) ^
*(uint *)(&DAT_1401161c0 + (ulonglong)(uVar4 >> 0x10 & 0xff) * 4) ^
*(uint *)(&DAT_1401165c0 + (ulonglong)(uVar4 >> 8 & 0xff) * 4) ^
*(uint *)(&DAT_1401169c0 + (ulonglong)(uVar4 & 0xff) * 4);
uVar4 = puVar6[-3];
puVar10[5] = *(uint *)(&DAT_140115dc0 + (ulonglong)(uVar4 >> 0x18) * 4) ^
*(uint *)(&DAT_1401161c0 + (ulonglong)(uVar4 >> 0x10 & 0xff) * 4) ^
*(uint *)(&DAT_1401165c0 + (ulonglong)(uVar4 >> 8 & 0xff) * 4) ^
*(uint *)(&DAT_1401169c0 + (ulonglong)(uVar4 & 0xff) * 4);
uVar4 = puVar6[-2];
puVar10[6] = *(uint *)(&DAT_140115dc0 + (ulonglong)(uVar4 >> 0x18) * 4) ^
*(uint *)(&DAT_1401161c0 + (ulonglong)(uVar4 >> 0x10 & 0xff) * 4) ^
*(uint *)(&DAT_1401165c0 + (ulonglong)(uVar4 >> 8 & 0xff) * 4) ^
*(uint *)(&DAT_1401169c0 + (ulonglong)(uVar4 & 0xff) * 4);
uVar4 = puVar6[-1];
puVar10[7] = *(uint *)(&DAT_140115dc0 + (ulonglong)(uVar4 >> 0x18) * 4) ^
*(uint *)(&DAT_1401161c0 + (ulonglong)(uVar4 >> 0x10 & 0xff) * 4) ^
*(uint *)(&DAT_1401165c0 + (ulonglong)(uVar4 >> 8 & 0xff) * 4) ^
*(uint *)(&DAT_1401169c0 + (ulonglong)(uVar4 & 0xff) * 4);
puVar6 = puVar7;
puVar10 = puVar5;
} while (iVar8 < (int)param_4[0x78]);
}
puVar5[4] = puVar7[-4];
puVar5[5] = puVar7[-3];
puVar5[6] = puVar7[-2];
puVar5[7] = puVar7[-1];
return 0;
}