decompiled agent_release
This commit is contained in:
parent
baac905ef2
commit
11a3488883
6439 changed files with 229565 additions and 1 deletions
204
decomp/Agent_Release_x64/full/functions/0x1400c8900.c
Normal file
204
decomp/Agent_Release_x64/full/functions/0x1400c8900.c
Normal 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;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue