void FUN_0044acac(byte *param_1,undefined1 *param_2,uint *param_3)
{
undefined4 uVar1;
undefined4 uVar2;
uint uVar3;
uint uVar4;
uint uVar5;
uint uVar6;
uint uVar7;
uint uVar8;
uint uVar9;
uint *puVar10;
int iVar11;
uVar5 = (uint)param_1[0xb] ^ param_3[2] ^ (uint)param_1[8] << 0x18 ^ (uint)param_1[9] << 0x10 ^
(uint)param_1[10] << 8;
uVar8 = (uint)*param_1 << 0x18 ^ (uint)param_1[3] ^ *param_3 ^ (uint)param_1[1] << 0x10 ^
(uint)param_1[2] << 8;
uVar6 = (uint)param_1[7] ^ param_3[1] ^ (uint)param_1[4] << 0x18 ^ (uint)param_1[5] << 0x10 ^
(uint)param_1[6] << 8;
uVar3 = (uint)param_1[0xf] ^ param_3[3] ^ (uint)param_1[0xc] << 0x18 ^ (uint)param_1[0xd] << 0x10
^ (uint)param_1[0xe] << 8;
puVar10 = param_3;
iVar11 = (int)param_3[0x3c] >> 1;
while( true ) {
iVar11 = iVar11 + -1;
uVar9 = *(uint *)(&DAT_00493a10 + (uVar8 >> 0x18) * 4) ^
*(uint *)(&DAT_00494610 + (uVar3 & 0xff) * 4) ^ puVar10[4] ^
*(uint *)(&DAT_00493e10 + (uVar6 >> 0xe & 0x3fc)) ^
*(uint *)(&DAT_00494210 + (uVar5 >> 6 & 0x3fc));
uVar7 = *(uint *)(&DAT_00493a10 + (uVar6 >> 0x18) * 4) ^
*(uint *)(&DAT_00494610 + (uVar8 & 0xff) * 4) ^ puVar10[5] ^
*(uint *)(&DAT_00493e10 + (uVar5 >> 0xe & 0x3fc)) ^
*(uint *)(&DAT_00494210 + (uVar3 >> 6 & 0x3fc));
uVar4 = *(uint *)(&DAT_00493a10 + (uVar5 >> 0x18) * 4) ^
*(uint *)(&DAT_00494610 + (uVar6 & 0xff) * 4) ^ puVar10[6] ^
*(uint *)(&DAT_00493e10 + (uVar3 >> 0xe & 0x3fc)) ^
*(uint *)(&DAT_00494210 + (uVar8 >> 6 & 0x3fc));
uVar3 = *(uint *)(&DAT_00493a10 + (uVar3 >> 0x18) * 4) ^
*(uint *)(&DAT_00494610 + (uVar5 & 0xff) * 4) ^ puVar10[7] ^
*(uint *)(&DAT_00493e10 + (uVar8 >> 0xe & 0x3fc)) ^
*(uint *)(&DAT_00494210 + (uVar6 >> 6 & 0x3fc));
if (iVar11 == 0) break;
uVar8 = *(uint *)(&DAT_00493a10 + (uVar9 >> 0x18) * 4) ^
*(uint *)(&DAT_00494610 + (uVar3 & 0xff) * 4) ^ puVar10[8] ^
*(uint *)(&DAT_00493e10 + (uVar7 >> 0xe & 0x3fc)) ^
*(uint *)(&DAT_00494210 + (uVar4 >> 6 & 0x3fc));
uVar6 = *(uint *)(&DAT_00493a10 + (uVar7 >> 0x18) * 4) ^
*(uint *)(&DAT_00494610 + (uVar9 & 0xff) * 4) ^ puVar10[9] ^
*(uint *)(&DAT_00493e10 + (uVar4 >> 0xe & 0x3fc)) ^
*(uint *)(&DAT_00494210 + (uVar3 >> 6 & 0x3fc));
uVar5 = *(uint *)(&DAT_00493a10 + (uVar4 >> 0x18) * 4) ^
*(uint *)(&DAT_00494610 + (uVar7 & 0xff) * 4) ^ puVar10[10] ^
*(uint *)(&DAT_00493e10 + (uVar3 >> 0xe & 0x3fc)) ^
*(uint *)(&DAT_00494210 + (uVar9 >> 6 & 0x3fc));
uVar3 = *(uint *)(&DAT_00493a10 + (uVar3 >> 0x18) * 4) ^
*(uint *)(&DAT_00494610 + (uVar4 & 0xff) * 4) ^ puVar10[0xb] ^
*(uint *)(&DAT_00493e10 + (uVar9 >> 0xe & 0x3fc)) ^
*(uint *)(&DAT_00494210 + (uVar7 >> 6 & 0x3fc));
puVar10 = puVar10 + 8;
}
param_3 = param_3 + ((int)param_3[0x3c] >> 1) * 8;
uVar2 = *(undefined4 *)(&DAT_00494a10 + (uVar7 >> 0xe & 0x3fc));
uVar8 = *param_3;
uVar1 = *(undefined4 *)(&DAT_00494a10 + (uVar4 >> 6 & 0x3fc));
uVar6 = *(uint *)(&DAT_00494a10 + (uVar9 >> 0x18) * 4) & 0xff000000 ^
(uint)(byte)(&DAT_00494a10)[(uVar3 & 0xff) * 4] ^ uVar8;
uVar5 = *(uint *)(&DAT_00494a10 + (uVar7 >> 0x18) * 4);
*param_2 = (char)(uVar6 >> 0x18);
param_2[1] = (byte)(uVar8 >> 0x10) ^ (byte)((uint)uVar2 >> 0x10);
param_2[2] = (byte)(uVar8 >> 8) ^ (byte)((uint)uVar1 >> 8);
param_2[3] = (char)uVar6;
uVar2 = *(undefined4 *)(&DAT_00494a10 + (uVar4 >> 0xe & 0x3fc));
uVar8 = param_3[1];
uVar1 = *(undefined4 *)(&DAT_00494a10 + (uVar3 >> 6 & 0x3fc));
uVar5 = uVar5 & 0xff000000 ^ (uint)(byte)(&DAT_00494a10)[(uVar9 & 0xff) * 4] ^ uVar8;
uVar6 = *(uint *)(&DAT_00494a10 + (uVar4 >> 0x18) * 4);
param_2[4] = (char)(uVar5 >> 0x18);
param_2[5] = (byte)(uVar8 >> 0x10) ^ (byte)((uint)uVar2 >> 0x10);
param_2[6] = (byte)(uVar8 >> 8) ^ (byte)((uint)uVar1 >> 8);
param_2[7] = (char)uVar5;
uVar2 = *(undefined4 *)(&DAT_00494a10 + (uVar3 >> 0xe & 0x3fc));
uVar8 = param_3[2];
uVar1 = *(undefined4 *)(&DAT_00494a10 + (uVar9 >> 6 & 0x3fc));
uVar5 = uVar6 & 0xff000000 ^ (uint)(byte)(&DAT_00494a10)[(uVar7 & 0xff) * 4] ^ uVar8;
uVar3 = *(uint *)(&DAT_00494a10 + (uVar3 >> 0x18) * 4);
param_2[8] = (char)(uVar5 >> 0x18);
param_2[9] = (byte)(uVar8 >> 0x10) ^ (byte)((uint)uVar2 >> 0x10);
param_2[10] = (byte)(uVar8 >> 8) ^ (byte)((uint)uVar1 >> 8);
param_2[0xb] = (char)uVar5;
uVar5 = param_3[3];
uVar1 = *(undefined4 *)(&DAT_00494a10 + (uVar9 >> 0xe & 0x3fc));
uVar2 = *(undefined4 *)(&DAT_00494a10 + (uVar7 >> 6 & 0x3fc));
uVar3 = uVar3 & 0xff000000 ^ (uint)(byte)(&DAT_00494a10)[(uVar4 & 0xff) * 4] ^ uVar5;
param_2[0xc] = (char)(uVar3 >> 0x18);
param_2[0xd] = (byte)(uVar5 >> 0x10) ^ (byte)((uint)uVar1 >> 0x10);
param_2[0xf] = (char)uVar3;
param_2[0xe] = (byte)(uVar5 >> 8) ^ (byte)((uint)uVar2 >> 8);
return;
}