Files

1340 lines
69 KiB
Plaintext

############ FUN_ 1800246e0 size=14313 ############
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
undefined8 *
FUN_1800246e0(longlong param_1,int param_2,longlong param_3,undefined4 param_4,int param_5,
undefined8 param_6,undefined8 param_7)
{
int iVar1;
int iVar2;
int iVar3;
undefined4 uVar4;
int iVar5;
char cVar6;
char cVar7;
int iVar8;
uint uVar9;
uint uVar10;
int iVar11;
int iVar12;
int iVar13;
int iVar14;
int iVar15;
int iVar16;
int iVar17;
int iVar18;
int iVar19;
int iVar20;
int iVar21;
int iVar22;
int iVar23;
int iVar24;
int iVar25;
int iVar26;
int iVar27;
int iVar28;
int iVar29;
int iVar30;
int iVar31;
int iVar32;
int iVar33;
int iVar34;
uint uVar35;
int iVar36;
int iVar37;
int iVar38;
int iVar39;
int iVar40;
int iVar41;
int iVar42;
uint uVar43;
int iVar44;
int iVar45;
int iVar46;
int iVar47;
int iVar48;
int iVar49;
int iVar50;
int iVar51;
int iVar52;
uint uVar53;
int iVar54;
int iVar55;
int iVar56;
int iVar57;
int iVar58;
int iVar59;
int iVar60;
int iVar61;
int iVar62;
int iVar63;
int iVar64;
int iVar65;
int iVar66;
int iVar67;
int iVar68;
int iVar69;
uint uVar70;
int iVar71;
int iVar72;
int iVar73;
int iVar74;
int iVar75;
int iVar76;
int iVar77;
uint uVar78;
int iVar79;
int iVar80;
int iVar81;
int iVar82;
int iVar83;
undefined8 uVar84;
undefined8 *local_c68;
undefined8 *local_3e8;
byte local_1b0;
iVar3 = *(int *)(&DAT_181c5de7c + (longlong)param_2 * 4);
iVar49 = param_2 - iVar3;
if (iVar49 < 0x11) {
*(undefined8 *)(param_1 + 0x38) = param_6;
local_c68 = (undefined8 *)FUN_180023860(iVar49,param_3,param_4);
iVar44 = 1 << ((byte)iVar49 & 0x1f);
*(uint *)(param_1 + 0x1c) = iVar44 * 0x10 + 0x3fU & 0xffffffc0;
}
else {
local_c68 = (undefined8 *)
FUN_1800246e0(param_1,iVar49,param_3,param_4,param_5 + 1,param_6,param_7);
iVar44 = 1 << ((byte)iVar49 & 0x1f);
}
uVar4 = *(undefined4 *)(&DAT_181c5dedc + (longlong)param_2 * 4);
uVar43 = 0;
local_3e8 = local_c68;
*(undefined8 **)(param_1 + 0x78 + (longlong)param_5 * 8) = local_c68;
if (0 < iVar44) {
iVar5 = iVar44 * 2;
iVar8 = iVar44 * 3;
uVar53 = 1 << ((byte)uVar4 - (char)iVar3 & 0x1f);
uVar9 = (int)((uVar53 - ((int)(uVar53 + 1) >> 0x1f)) + 1) >> 1;
uVar10 = (iVar44 + uVar53) - 1;
if (((uVar10 | uVar53) & 0xffffff00) == 0) {
local_1b0 = (byte)uVar53;
uVar10 = (uint)(byte)((ushort)uVar10 / (ushort)local_1b0);
}
else {
uVar10 = (int)uVar10 / (int)uVar53;
}
iVar26 = 0;
iVar25 = 0;
iVar54 = 0;
iVar57 = 0;
iVar60 = 0;
iVar65 = 0;
iVar75 = iVar65;
do {
uVar35 = 1;
iVar45 = -iVar49;
iVar59 = iVar49;
if (-iVar3 < 0) {
do {
iVar27 = iVar59 + 2;
cVar6 = (char)(iVar45 + -2);
cVar7 = (char)param_4;
if (iVar27 == param_2) {
iVar59 = 1 << ((byte)iVar27 & 0x1f);
iVar64 = 1 << (cVar6 + cVar7 & 0x1fU);
if (0 < (int)uVar35 >> 1) {
iVar36 = iVar64 * iVar65;
iVar32 = iVar64 * iVar75;
iVar23 = (int)(((uint)(iVar59 >> 1) >> 0x1e) + iVar59) >> 2;
iVar39 = iVar64 * iVar23;
iVar28 = iVar64 + iVar36;
iVar52 = iVar59 / 2;
iVar31 = iVar64 * iVar52;
iVar24 = (int)(((uint)(iVar59 * 3 >> 1) >> 0x1e) + iVar59 * 3) >> 2;
iVar42 = iVar64 * iVar24;
iVar2 = iVar64 * 2;
iVar1 = iVar2 + iVar32;
iVar46 = iVar59 * iVar64 - iVar32;
iVar59 = iVar59 * iVar64 - iVar36;
iVar51 = iVar64 * 4;
uVar78 = 0;
do {
uVar70 = 0;
if (0 < (int)uVar53) {
iVar66 = iVar64 * iVar5 * uVar78;
iVar63 = iVar64 * iVar44 * uVar78;
iVar50 = (iVar32 - iVar31) + iVar66;
iVar55 = (iVar36 - iVar31) + iVar63;
iVar56 = (iVar36 - iVar42) + iVar63;
iVar58 = (iVar32 - iVar42) + iVar66;
iVar61 = iVar66 - (iVar39 - iVar32);
iVar62 = iVar63 - (iVar39 - iVar36);
do {
iVar67 = uVar70 * 2 + iVar44 * uVar78 + iVar65;
if (iVar23 < iVar67) {
iVar68 = iVar2 * uVar70;
if (iVar52 < iVar67) {
if (iVar24 < iVar67) {
*local_3e8 = *(undefined8 *)(param_3 + (longlong)(iVar56 + iVar68) * 8);
uVar84 = *(undefined8 *)
(param_3 + (longlong)((iVar59 - iVar63) - iVar68) * 8);
}
else {
uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar56 + iVar68) * 8);
*local_3e8 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar68 + iVar55) * 8);
}
}
else {
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar68 + iVar62) * 8);
*local_3e8 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar68 + iVar55) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
}
else {
*local_3e8 = *(undefined8 *)
(param_3 + (longlong)(int)-(iVar62 + iVar2 * uVar70) * 8);
uVar84 = *(undefined8 *)
(param_3 + (longlong)(int)(iVar36 + iVar63 + iVar2 * uVar70) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
iVar68 = iVar2 * uVar70;
iVar67 = iVar67 + 1;
local_3e8[2] = uVar84;
if (iVar23 < iVar67) {
if (iVar52 < iVar67) {
if (iVar24 < iVar67) {
local_3e8[1] = *(undefined8 *)
(param_3 +
(longlong)(iVar68 + (iVar28 - iVar42) + iVar63) * 8);
uVar84 = *(undefined8 *)
(param_3 + (longlong)(((iVar59 - iVar64) - iVar63) - iVar68) * 8
);
}
else {
uVar84 = *(undefined8 *)
(param_3 +
(longlong)-(iVar68 + iVar64 + (iVar36 - iVar42) + iVar63) * 8);
local_3e8[1] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64
,(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)
(param_3 + (longlong)(iVar68 + (iVar28 - iVar31) + iVar63) * 8);
}
}
else {
uVar84 = *(undefined8 *)
(param_3 + (longlong)(iVar68 + (iVar28 - iVar39) + iVar63) * 8);
local_3e8[1] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)
(param_3 +
(longlong)-(iVar68 + iVar64 + (iVar36 - iVar31) + iVar63) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
}
else {
local_3e8[1] = *(undefined8 *)
(param_3 +
(longlong)((((iVar39 - iVar36) - iVar64) - iVar63) - iVar68) *
8);
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar68 + iVar28 + iVar63) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
local_3e8[3] = uVar84;
iVar67 = uVar70 * 4 + iVar5 * uVar78 + iVar75;
if (iVar23 < iVar67) {
iVar68 = iVar51 * uVar70;
if (iVar52 < iVar67) {
if (iVar24 < iVar67) {
local_3e8[4] = *(undefined8 *)(param_3 + (longlong)(iVar58 + iVar68) * 8);
uVar84 = *(undefined8 *)
(param_3 + (longlong)((iVar46 - iVar66) - iVar68) * 8);
}
else {
uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar58 + iVar68) * 8);
local_3e8[4] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64
,(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar68 + iVar50) * 8);
}
}
else {
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar68 + iVar61) * 8);
local_3e8[4] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar68 + iVar50) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
}
else {
local_3e8[4] = *(undefined8 *)
(param_3 + (longlong)(int)-(iVar61 + iVar51 * uVar70) * 8);
uVar84 = *(undefined8 *)
(param_3 + (longlong)(int)(iVar32 + iVar66 + iVar51 * uVar70) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
iVar68 = iVar51 * uVar70;
iVar67 = iVar67 + 2;
local_3e8[6] = uVar84;
if (iVar23 < iVar67) {
if (iVar52 < iVar67) {
if (iVar24 < iVar67) {
local_3e8[5] = *(undefined8 *)
(param_3 +
(longlong)(iVar68 + (iVar1 - iVar42) + iVar66) * 8);
uVar84 = *(undefined8 *)
(param_3 +
(longlong)(((iVar46 + iVar64 * -2) - iVar66) - iVar68) * 8);
}
else {
uVar84 = *(undefined8 *)
(param_3 +
(longlong)-(iVar68 + (iVar32 - iVar42) + iVar2 + iVar66) * 8);
local_3e8[5] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64
,(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)
(param_3 + (longlong)(iVar68 + (iVar1 - iVar31) + iVar66) * 8);
}
}
else {
uVar84 = *(undefined8 *)
(param_3 + (longlong)(iVar68 + (iVar1 - iVar39) + iVar66) * 8);
local_3e8[5] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)
(param_3 +
(longlong)-(iVar68 + (iVar32 - iVar31) + iVar2 + iVar66) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
}
else {
local_3e8[5] = *(undefined8 *)
(param_3 +
(longlong)
((((iVar39 - iVar32) + iVar64 * -2) - iVar66) - iVar68) * 8);
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar68 + iVar1 + iVar66) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
uVar70 = uVar70 + 1;
local_3e8[7] = uVar84;
local_3e8 = local_3e8 + 8;
} while (uVar70 < uVar9);
}
uVar78 = uVar78 + 1;
} while (uVar78 < (uint)((int)uVar35 >> 1));
}
LAB_180027d9d:
uVar35 = uVar35 << 2;
iVar45 = iVar45 + -2;
}
else {
if ((iVar59 + 4 == param_2) || (iVar59 + 6 == param_2)) {
iVar59 = 1 << ((byte)iVar27 & 0x1f);
iVar64 = 1 << (cVar6 + cVar7 & 0x1fU);
if (0 < (int)uVar35) {
iVar32 = (int)(((uint)(iVar59 >> 1) >> 0x1e) + iVar59) >> 2;
iVar46 = iVar64 * iVar65;
iVar23 = iVar64 * iVar32;
iVar51 = iVar64 * iVar75;
iVar56 = iVar64 + iVar46;
iVar36 = iVar59 / 2;
iVar39 = iVar64 * iVar36;
iVar31 = (int)(((uint)(iVar59 * 3 >> 1) >> 0x1e) + iVar59 * 3) >> 2;
iVar55 = iVar64 * iVar31;
iVar59 = iVar59 * iVar64;
iVar28 = iVar64 * iVar60;
iVar24 = iVar64 * 2;
iVar1 = iVar24 + iVar51;
iVar2 = iVar64 * 4;
iVar52 = iVar64 * 3;
iVar42 = iVar64 * 6;
iVar50 = iVar52 + iVar28;
uVar78 = 0;
do {
uVar70 = 0;
if (0 < (int)uVar53) {
iVar71 = iVar64 * iVar8 * uVar78;
iVar76 = iVar64 * iVar5 * uVar78;
iVar79 = iVar64 * iVar44 * uVar78;
iVar69 = iVar71 - (iVar23 - iVar28);
iVar11 = iVar76 - (iVar23 - iVar51);
iVar58 = (iVar28 - iVar39) + iVar71;
iVar68 = iVar79 - (iVar23 - iVar46);
iVar61 = (iVar51 - iVar39) + iVar76;
iVar62 = (iVar46 - iVar39) + iVar79;
iVar63 = (iVar51 - iVar55) + iVar76;
iVar66 = (iVar28 - iVar55) + iVar71;
iVar67 = (iVar46 - iVar55) + iVar79;
do {
iVar12 = uVar70 * 2 + iVar44 * uVar78 + iVar65;
if (iVar32 < iVar12) {
iVar13 = iVar24 * uVar70;
if (iVar36 < iVar12) {
if (iVar31 < iVar12) {
*local_3e8 = *(undefined8 *)(param_3 + (longlong)(iVar67 + iVar13) * 8);
uVar84 = *(undefined8 *)
(param_3 +
(longlong)(((iVar59 - iVar46) - iVar79) - iVar13) * 8);
}
else {
uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar67 + iVar13) * 8);
*local_3e8 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64
,(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar13 + iVar62) * 8);
}
}
else {
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar13 + iVar68) * 8);
*local_3e8 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar13 + iVar62) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
}
else {
*local_3e8 = *(undefined8 *)
(param_3 + (longlong)(int)-(iVar68 + iVar24 * uVar70) * 8);
uVar84 = *(undefined8 *)
(param_3 + (longlong)(int)(iVar46 + iVar79 + iVar24 * uVar70) * 8)
;
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
iVar13 = iVar24 * uVar70;
iVar12 = iVar12 + 1;
local_3e8[2] = uVar84;
if (iVar32 < iVar12) {
if (iVar36 < iVar12) {
if (iVar31 < iVar12) {
local_3e8[1] = *(undefined8 *)
(param_3 +
(longlong)(iVar13 + (iVar56 - iVar55) + iVar79) * 8);
uVar84 = *(undefined8 *)
(param_3 +
(longlong)((((iVar59 - iVar46) - iVar64) - iVar79) - iVar13) *
8);
}
else {
uVar84 = *(undefined8 *)
(param_3 +
(longlong)-(iVar13 + iVar64 + (iVar46 - iVar55) + iVar79) * 8)
;
local_3e8[1] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^
_UNK_181c5df64,(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)
(param_3 + (longlong)(iVar13 + (iVar56 - iVar39) + iVar79) * 8
);
}
}
else {
uVar84 = *(undefined8 *)
(param_3 + (longlong)(iVar13 + (iVar56 - iVar23) + iVar79) * 8);
local_3e8[1] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64
,(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)
(param_3 +
(longlong)-(iVar13 + iVar64 + (iVar46 - iVar39) + iVar79) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
}
else {
local_3e8[1] = *(undefined8 *)
(param_3 +
(longlong)((((iVar23 - iVar46) - iVar64) - iVar79) - iVar13)
* 8);
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar13 + iVar56 + iVar79) * 8)
;
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
local_3e8[3] = uVar84;
iVar12 = uVar70 * 4 + iVar5 * uVar78 + iVar75;
if (iVar32 < iVar12) {
iVar13 = iVar2 * uVar70;
if (iVar36 < iVar12) {
if (iVar31 < iVar12) {
local_3e8[4] = *(undefined8 *)
(param_3 + (longlong)(iVar63 + iVar13) * 8);
uVar84 = *(undefined8 *)
(param_3 +
(longlong)(((iVar59 - iVar51) - iVar76) - iVar13) * 8);
}
else {
uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar63 + iVar13) * 8);
local_3e8[4] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^
_UNK_181c5df64,(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar13 + iVar61) * 8);
}
}
else {
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar13 + iVar11) * 8);
local_3e8[4] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64
,(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar13 + iVar61) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
}
else {
local_3e8[4] = *(undefined8 *)
(param_3 + (longlong)(int)-(iVar11 + iVar2 * uVar70) * 8);
uVar84 = *(undefined8 *)
(param_3 + (longlong)(int)(iVar51 + iVar76 + iVar2 * uVar70) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
iVar13 = iVar2 * uVar70;
iVar12 = iVar12 + 2;
local_3e8[6] = uVar84;
if (iVar32 < iVar12) {
if (iVar36 < iVar12) {
if (iVar31 < iVar12) {
local_3e8[5] = *(undefined8 *)
(param_3 +
(longlong)(iVar13 + (iVar1 - iVar55) + iVar76) * 8);
uVar84 = *(undefined8 *)
(param_3 +
(longlong)
((((iVar59 - iVar51) + iVar64 * -2) - iVar76) - iVar13) * 8);
}
else {
uVar84 = *(undefined8 *)
(param_3 +
(longlong)-(iVar13 + (iVar51 - iVar55) + iVar24 + iVar76) * 8)
;
local_3e8[5] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^
_UNK_181c5df64,(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)
(param_3 + (longlong)(iVar13 + (iVar1 - iVar39) + iVar76) * 8)
;
}
}
else {
uVar84 = *(undefined8 *)
(param_3 + (longlong)(iVar13 + (iVar1 - iVar23) + iVar76) * 8);
local_3e8[5] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64
,(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)
(param_3 +
(longlong)-(iVar13 + (iVar51 - iVar39) + iVar24 + iVar76) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
}
else {
local_3e8[5] = *(undefined8 *)
(param_3 +
(longlong)
((((iVar23 - iVar51) + iVar64 * -2) - iVar76) - iVar13) * 8)
;
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar13 + iVar1 + iVar76) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
local_3e8[7] = uVar84;
iVar12 = uVar70 * 6 + iVar8 * uVar78 + iVar60;
if (iVar32 < iVar12) {
iVar13 = iVar42 * uVar70;
if (iVar36 < iVar12) {
if (iVar31 < iVar12) {
local_3e8[8] = *(undefined8 *)
(param_3 + (longlong)(iVar66 + iVar13) * 8);
uVar84 = *(undefined8 *)
(param_3 +
(longlong)(((iVar59 - iVar28) - iVar71) - iVar13) * 8);
}
else {
uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar66 + iVar13) * 8);
local_3e8[8] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^
_UNK_181c5df64,(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar13 + iVar58) * 8);
}
}
else {
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar13 + iVar69) * 8);
local_3e8[8] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64
,(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar13 + iVar58) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
}
else {
local_3e8[8] = *(undefined8 *)
(param_3 + (longlong)(int)-(iVar69 + iVar42 * uVar70) * 8);
uVar84 = *(undefined8 *)
(param_3 + (longlong)(int)(iVar28 + iVar71 + iVar42 * uVar70) * 8)
;
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
iVar13 = iVar42 * uVar70;
iVar12 = iVar12 + 3;
local_3e8[10] = uVar84;
if (iVar32 < iVar12) {
if (iVar36 < iVar12) {
if (iVar31 < iVar12) {
local_3e8[9] = *(undefined8 *)
(param_3 +
(longlong)(iVar13 + iVar71 + (iVar50 - iVar55)) * 8);
uVar84 = *(undefined8 *)
(param_3 +
(longlong)
((((iVar59 - iVar28) + iVar64 * -3) - iVar71) - iVar13) * 8);
}
else {
uVar84 = *(undefined8 *)
(param_3 +
(longlong)-(iVar13 + (iVar28 - iVar55) + iVar52 + iVar71) * 8)
;
local_3e8[9] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^
_UNK_181c5df64,(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)
(param_3 + (longlong)(iVar13 + (iVar50 - iVar39) + iVar71) * 8
);
}
}
else {
uVar84 = *(undefined8 *)
(param_3 + (longlong)(iVar13 + (iVar50 - iVar23) + iVar71) * 8);
local_3e8[9] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64
,(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)
(param_3 +
(longlong)-(iVar13 + (iVar28 - iVar39) + iVar52 + iVar71) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
}
else {
local_3e8[9] = *(undefined8 *)
(param_3 +
(longlong)
((((iVar23 - iVar28) + iVar64 * -3) - iVar71) - iVar13) * 8)
;
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar13 + iVar50 + iVar71) * 8)
;
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
uVar70 = uVar70 + 1;
local_3e8[0xb] = uVar84;
local_3e8 = local_3e8 + 0xc;
} while (uVar70 < uVar9);
}
uVar78 = uVar78 + 1;
} while (uVar78 < uVar35);
}
goto LAB_180027d9d;
}
iVar27 = iVar59 + 3;
if (0 < (int)uVar35) {
iVar50 = 1 << ((byte)iVar27 & 0x1f);
iVar71 = 1 << (cVar7 + (char)(iVar45 + -3) & 0x1fU);
iVar66 = (int)(((uint)(iVar50 * 3 >> 1) >> 0x1e) + iVar50 * 3) >> 2;
iVar2 = iVar71 * 4;
iVar42 = iVar71 * 10;
iVar58 = iVar50 / 2;
iVar52 = iVar71 * 2;
iVar46 = iVar26 * iVar71;
iVar51 = iVar60 * iVar71;
iVar61 = (int)(((uint)(iVar50 >> 1) >> 0x1e) + iVar50) >> 2;
iVar36 = iVar71 * 0xc;
iVar67 = iVar71 * iVar61;
iVar32 = iVar25 * iVar71;
iVar23 = iVar71 * 0xe;
iVar39 = iVar54 * iVar71;
iVar31 = iVar71 * 6;
iVar69 = iVar71 * 3 + iVar51;
iVar59 = iVar2 + iVar46;
iVar62 = iVar71 * 5 + iVar32;
iVar76 = iVar57 * iVar71;
iVar28 = iVar71 * 8;
iVar64 = iVar31 + iVar39;
iVar55 = iVar75 * iVar71;
iVar79 = iVar71 * 7 + iVar76;
iVar68 = iVar71 * iVar58;
iVar50 = iVar50 * iVar71;
iVar1 = iVar52 + iVar55;
iVar63 = iVar71 * iVar66;
iVar56 = iVar65 * iVar71;
iVar24 = iVar71 + iVar56;
uVar78 = 0;
do {
uVar70 = 0;
if (0 < (int)uVar53) {
iVar72 = iVar44 * 7 * iVar71 * uVar78;
iVar40 = iVar44 * 5 * iVar71 * uVar78;
iVar47 = iVar44 * 6 * iVar71 * uVar78;
iVar29 = iVar8 * iVar71 * uVar78;
iVar37 = iVar44 * 4 * iVar71 * uVar78;
iVar33 = iVar5 * iVar71 * uVar78;
iVar11 = iVar72 - (iVar67 - iVar76);
iVar12 = iVar47 - (iVar67 - iVar39);
iVar13 = iVar40 - (iVar67 - iVar32);
iVar14 = iVar37 - (iVar67 - iVar46);
iVar80 = iVar33 - (iVar67 - iVar55);
iVar15 = iVar29 - (iVar67 - iVar51);
iVar16 = iVar33 - (iVar68 - iVar55);
iVar17 = iVar29 - (iVar68 - iVar51);
iVar18 = iVar37 - (iVar68 - iVar46);
iVar19 = iVar40 - (iVar68 - iVar32);
iVar20 = iVar47 - (iVar68 - iVar39);
iVar21 = iVar72 - (iVar68 - iVar76);
iVar22 = iVar44 * iVar71 * uVar78;
iVar34 = iVar33 - (iVar63 - iVar55);
iVar30 = iVar29 - (iVar63 - iVar51);
iVar38 = iVar37 - (iVar63 - iVar46);
iVar41 = iVar40 - (iVar63 - iVar32);
iVar48 = iVar47 - (iVar63 - iVar39);
iVar81 = iVar22 - (iVar63 - iVar56);
iVar82 = iVar22 - (iVar68 - iVar56);
iVar73 = iVar72 - (iVar63 - iVar76);
iVar83 = iVar22 - (iVar67 - iVar56);
do {
iVar77 = uVar70 * 2 + iVar44 * uVar78 + iVar65;
if (iVar61 < iVar77) {
iVar74 = iVar52 * uVar70;
if (iVar58 < iVar77) {
if (iVar66 < iVar77) {
*local_3e8 = *(undefined8 *)(param_3 + (longlong)(iVar81 + iVar74) * 8);
uVar84 = *(undefined8 *)
(param_3 + (longlong)(((iVar50 - iVar56) - iVar22) - iVar74) * 8
);
}
else {
uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar81 + iVar74) * 8);
*local_3e8 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar82) * 8);
}
}
else {
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar83) * 8);
*local_3e8 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar74 + iVar82) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
}
else {
*local_3e8 = *(undefined8 *)
(param_3 + (longlong)(int)-(iVar83 + iVar52 * uVar70) * 8);
uVar84 = *(undefined8 *)
(param_3 + (longlong)(int)(iVar22 + iVar56 + iVar52 * uVar70) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
iVar74 = iVar52 * uVar70;
iVar77 = iVar77 + 1;
local_3e8[2] = uVar84;
if (iVar61 < iVar77) {
if (iVar58 < iVar77) {
if (iVar66 < iVar77) {
local_3e8[1] = *(undefined8 *)
(param_3 +
(longlong)(iVar74 + (iVar24 - iVar63) + iVar22) * 8);
uVar84 = *(undefined8 *)
(param_3 +
(longlong)((((iVar50 - iVar56) - iVar71) - iVar22) - iVar74) * 8
);
}
else {
uVar84 = *(undefined8 *)
(param_3 +
(longlong)((((iVar63 - iVar56) - iVar71) - iVar22) - iVar74) * 8
);
local_3e8[1] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64
,(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)
(param_3 + (longlong)(iVar74 + (iVar24 - iVar68) + iVar22) * 8);
}
}
else {
uVar84 = *(undefined8 *)
(param_3 + (longlong)(iVar74 + (iVar24 - iVar67) + iVar22) * 8);
local_3e8[1] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)
(param_3 +
(longlong)((((iVar68 - iVar56) - iVar71) - iVar22) - iVar74) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
}
else {
local_3e8[1] = *(undefined8 *)
(param_3 +
(longlong)((((iVar67 - iVar56) - iVar71) - iVar22) - iVar74) *
8);
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar24 + iVar22) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
local_3e8[3] = uVar84;
iVar77 = uVar70 * 4 + iVar5 * uVar78 + iVar75;
if (iVar61 < iVar77) {
iVar74 = iVar2 * uVar70;
if (iVar58 < iVar77) {
if (iVar66 < iVar77) {
local_3e8[4] = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar34) * 8);
uVar84 = *(undefined8 *)
(param_3 + (longlong)(((iVar50 - iVar55) - iVar33) - iVar74) * 8
);
}
else {
uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar74 + iVar34) * 8);
local_3e8[4] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64
,(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar16) * 8);
}
}
else {
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar80) * 8);
local_3e8[4] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar74 + iVar16) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
}
else {
local_3e8[4] = *(undefined8 *)
(param_3 + (longlong)(int)-(iVar80 + iVar2 * uVar70) * 8);
uVar84 = *(undefined8 *)
(param_3 + (longlong)(int)(iVar55 + iVar33 + iVar2 * uVar70) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
iVar74 = iVar2 * uVar70;
iVar77 = iVar77 + 2;
local_3e8[6] = uVar84;
if (iVar61 < iVar77) {
if (iVar58 < iVar77) {
if (iVar66 < iVar77) {
local_3e8[5] = *(undefined8 *)
(param_3 +
(longlong)(iVar74 + (iVar1 - iVar63) + iVar33) * 8);
uVar84 = *(undefined8 *)
(param_3 +
(longlong)
((((iVar50 - iVar55) + iVar71 * -2) - iVar33) - iVar74) * 8);
}
else {
uVar84 = *(undefined8 *)
(param_3 +
(longlong)
((((iVar63 - iVar55) + iVar71 * -2) - iVar33) - iVar74) * 8);
local_3e8[5] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64
,(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)
(param_3 + (longlong)(iVar74 + (iVar1 - iVar68) + iVar33) * 8);
}
}
else {
uVar84 = *(undefined8 *)
(param_3 + (longlong)(iVar74 + (iVar1 - iVar67) + iVar33) * 8);
local_3e8[5] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)
(param_3 +
(longlong)((((iVar68 - iVar55) + iVar71 * -2) - iVar33) - iVar74)
* 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
}
else {
local_3e8[5] = *(undefined8 *)
(param_3 +
(longlong)
((((iVar67 - iVar55) + iVar71 * -2) - iVar33) - iVar74) * 8);
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar1 + iVar33) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
local_3e8[7] = uVar84;
iVar77 = uVar70 * 6 + iVar8 * uVar78 + iVar60;
if (iVar61 < iVar77) {
iVar74 = iVar31 * uVar70;
if (iVar58 < iVar77) {
if (iVar66 < iVar77) {
local_3e8[8] = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar30) * 8);
uVar84 = *(undefined8 *)
(param_3 + (longlong)(((iVar50 - iVar51) - iVar29) - iVar74) * 8
);
}
else {
uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar74 + iVar30) * 8);
local_3e8[8] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64
,(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar17) * 8);
}
}
else {
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar15) * 8);
local_3e8[8] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar74 + iVar17) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
}
else {
local_3e8[8] = *(undefined8 *)
(param_3 + (longlong)(int)-(iVar15 + iVar31 * uVar70) * 8);
uVar84 = *(undefined8 *)
(param_3 + (longlong)(int)(iVar51 + iVar29 + iVar31 * uVar70) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
iVar74 = iVar31 * uVar70;
iVar77 = iVar77 + 3;
local_3e8[10] = uVar84;
if (iVar61 < iVar77) {
if (iVar58 < iVar77) {
if (iVar66 < iVar77) {
local_3e8[9] = *(undefined8 *)
(param_3 +
(longlong)(iVar74 + (iVar69 - iVar63) + iVar29) * 8);
uVar84 = *(undefined8 *)
(param_3 +
(longlong)
((((iVar50 - iVar51) + iVar71 * -3) - iVar29) - iVar74) * 8);
}
else {
uVar84 = *(undefined8 *)
(param_3 +
(longlong)
(((iVar71 * -3 + (iVar63 - iVar51)) - iVar29) - iVar74) * 8);
local_3e8[9] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64
,(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)
(param_3 + (longlong)(iVar74 + (iVar69 - iVar68) + iVar29) * 8);
}
}
else {
uVar84 = *(undefined8 *)
(param_3 + (longlong)(iVar74 + (iVar69 - iVar67) + iVar29) * 8);
local_3e8[9] = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)
(param_3 +
(longlong)((((iVar68 - iVar51) + iVar71 * -3) - iVar29) - iVar74)
* 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
}
else {
local_3e8[9] = *(undefined8 *)
(param_3 +
(longlong)
((((iVar67 - iVar51) + iVar71 * -3) - iVar29) - iVar74) * 8);
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar69 + iVar29) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
local_3e8[0xb] = uVar84;
iVar77 = uVar70 * 8 + iVar44 * 4 * uVar78 + iVar26;
if (iVar61 < iVar77) {
iVar74 = iVar28 * uVar70;
if (iVar58 < iVar77) {
if (iVar66 < iVar77) {
local_3e8[0xc] =
*(undefined8 *)(param_3 + (longlong)(iVar74 + iVar38) * 8);
uVar84 = *(undefined8 *)
(param_3 + (longlong)(((iVar50 - iVar46) - iVar37) - iVar74) * 8
);
}
else {
uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar74 + iVar38) * 8);
local_3e8[0xc] =
CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar18) * 8);
}
}
else {
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar14) * 8);
local_3e8[0xc] =
CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar74 + iVar18) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
}
else {
local_3e8[0xc] =
*(undefined8 *)(param_3 + (longlong)(int)-(iVar14 + iVar28 * uVar70) * 8)
;
uVar84 = *(undefined8 *)
(param_3 + (longlong)(int)(iVar46 + iVar37 + iVar28 * uVar70) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
iVar74 = iVar28 * uVar70;
iVar77 = iVar77 + 4;
local_3e8[0xe] = uVar84;
if (iVar61 < iVar77) {
if (iVar58 < iVar77) {
if (iVar66 < iVar77) {
local_3e8[0xd] =
*(undefined8 *)
(param_3 + (longlong)(iVar74 + (iVar59 - iVar63) + iVar37) * 8);
uVar84 = *(undefined8 *)
(param_3 +
(longlong)
((((iVar50 - iVar46) + iVar71 * -4) - iVar37) - iVar74) * 8);
}
else {
uVar84 = *(undefined8 *)
(param_3 +
(longlong)
((((iVar63 - iVar46) + iVar71 * -4) - iVar37) - iVar74) * 8);
local_3e8[0xd] =
CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)
(param_3 + (longlong)(iVar74 + (iVar59 - iVar68) + iVar37) * 8);
}
}
else {
uVar84 = *(undefined8 *)
(param_3 + (longlong)(iVar74 + (iVar59 - iVar67) + iVar37) * 8);
local_3e8[0xd] =
CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)
(param_3 +
(longlong)((((iVar68 - iVar46) + iVar71 * -4) - iVar37) - iVar74)
* 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
}
else {
local_3e8[0xd] =
*(undefined8 *)
(param_3 +
(longlong)((((iVar67 - iVar46) + iVar71 * -4) - iVar37) - iVar74) * 8);
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar59 + iVar37) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
local_3e8[0xf] = uVar84;
iVar77 = uVar70 * 10 + iVar44 * 5 * uVar78 + iVar25;
if (iVar61 < iVar77) {
iVar74 = iVar42 * uVar70;
if (iVar58 < iVar77) {
if (iVar66 < iVar77) {
local_3e8[0x10] =
*(undefined8 *)(param_3 + (longlong)(iVar74 + iVar41) * 8);
uVar84 = *(undefined8 *)
(param_3 + (longlong)(((iVar50 - iVar32) - iVar40) - iVar74) * 8
);
}
else {
uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar74 + iVar41) * 8);
local_3e8[0x10] =
CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar19) * 8);
}
}
else {
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar13) * 8);
local_3e8[0x10] =
CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar74 + iVar19) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
}
else {
local_3e8[0x10] =
*(undefined8 *)(param_3 + (longlong)(int)-(iVar13 + iVar42 * uVar70) * 8)
;
uVar84 = *(undefined8 *)
(param_3 + (longlong)(int)(iVar32 + iVar40 + iVar42 * uVar70) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
iVar74 = iVar42 * uVar70;
iVar77 = iVar77 + 5;
local_3e8[0x12] = uVar84;
if (iVar61 < iVar77) {
if (iVar58 < iVar77) {
if (iVar66 < iVar77) {
local_3e8[0x11] =
*(undefined8 *)
(param_3 + (longlong)(iVar74 + (iVar62 - iVar63) + iVar40) * 8);
uVar84 = *(undefined8 *)
(param_3 +
(longlong)
((((iVar50 - iVar32) + iVar71 * -5) - iVar40) - iVar74) * 8);
}
else {
uVar84 = *(undefined8 *)
(param_3 +
(longlong)
(((iVar71 * -5 + (iVar63 - iVar32)) - iVar40) - iVar74) * 8);
local_3e8[0x11] =
CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)
(param_3 + (longlong)(iVar74 + (iVar62 - iVar68) + iVar40) * 8);
}
}
else {
uVar84 = *(undefined8 *)
(param_3 + (longlong)(iVar74 + (iVar62 - iVar67) + iVar40) * 8);
local_3e8[0x11] =
CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)
(param_3 +
(longlong)((((iVar68 - iVar32) + iVar71 * -5) - iVar40) - iVar74)
* 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
}
else {
local_3e8[0x11] =
*(undefined8 *)
(param_3 +
(longlong)((((iVar67 - iVar32) + iVar71 * -5) - iVar40) - iVar74) * 8);
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar62 + iVar40) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
local_3e8[0x13] = uVar84;
iVar77 = uVar70 * 0xc + iVar44 * 6 * uVar78 + iVar54;
if (iVar61 < iVar77) {
iVar74 = iVar36 * uVar70;
if (iVar58 < iVar77) {
if (iVar66 < iVar77) {
local_3e8[0x14] =
*(undefined8 *)(param_3 + (longlong)(iVar74 + iVar48) * 8);
uVar84 = *(undefined8 *)
(param_3 + (longlong)(((iVar50 - iVar39) - iVar47) - iVar74) * 8
);
}
else {
uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar74 + iVar48) * 8);
local_3e8[0x14] =
CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar20) * 8);
}
}
else {
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar12) * 8);
local_3e8[0x14] =
CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar74 + iVar20) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
}
else {
local_3e8[0x14] =
*(undefined8 *)(param_3 + (longlong)(int)-(iVar12 + iVar36 * uVar70) * 8)
;
uVar84 = *(undefined8 *)
(param_3 + (longlong)(int)(iVar39 + iVar47 + iVar36 * uVar70) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
iVar74 = iVar36 * uVar70;
iVar77 = iVar77 + 6;
local_3e8[0x16] = uVar84;
if (iVar61 < iVar77) {
if (iVar58 < iVar77) {
if (iVar66 < iVar77) {
local_3e8[0x15] =
*(undefined8 *)
(param_3 + (longlong)(iVar74 + (iVar64 - iVar63) + iVar47) * 8);
uVar84 = *(undefined8 *)
(param_3 +
(longlong)
((((iVar50 - iVar39) + iVar71 * -6) - iVar47) - iVar74) * 8);
}
else {
uVar84 = *(undefined8 *)
(param_3 +
(longlong)
((((iVar63 - iVar39) + iVar71 * -6) - iVar47) - iVar74) * 8);
local_3e8[0x15] =
CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)
(param_3 + (longlong)(iVar74 + (iVar64 - iVar68) + iVar47) * 8);
}
}
else {
uVar84 = *(undefined8 *)
(param_3 + (longlong)(iVar74 + (iVar64 - iVar67) + iVar47) * 8);
local_3e8[0x15] =
CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)
(param_3 +
(longlong)((((iVar68 - iVar39) + iVar71 * -6) - iVar47) - iVar74)
* 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
}
else {
local_3e8[0x15] =
*(undefined8 *)
(param_3 +
(longlong)((((iVar67 - iVar39) + iVar71 * -6) - iVar47) - iVar74) * 8);
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar64 + iVar47) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
iVar77 = uVar70 * 0xe + iVar44 * 7 * uVar78 + iVar57;
local_3e8[0x17] = uVar84;
if (iVar61 < iVar77) {
iVar74 = iVar23 * uVar70;
if (iVar58 < iVar77) {
if (iVar66 < iVar77) {
local_3e8[0x18] =
*(undefined8 *)(param_3 + (longlong)(iVar74 + iVar73) * 8);
uVar84 = *(undefined8 *)
(param_3 + (longlong)(((iVar50 - iVar76) - iVar72) - iVar74) * 8
);
}
else {
uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar74 + iVar73) * 8);
local_3e8[0x18] =
CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar21) * 8);
}
}
else {
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar11) * 8);
local_3e8[0x18] =
CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)(param_3 + (longlong)-(iVar74 + iVar21) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
}
else {
local_3e8[0x18] =
*(undefined8 *)(param_3 + (longlong)(int)-(iVar11 + iVar23 * uVar70) * 8)
;
uVar84 = *(undefined8 *)
(param_3 + (longlong)(int)(iVar76 + iVar72 + iVar23 * uVar70) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
iVar74 = iVar23 * uVar70;
iVar77 = iVar77 + 7;
local_3e8[0x1a] = uVar84;
if (iVar61 < iVar77) {
if (iVar58 < iVar77) {
if (iVar66 < iVar77) {
local_3e8[0x19] =
*(undefined8 *)
(param_3 + (longlong)(iVar74 + (iVar79 - iVar63) + iVar72) * 8);
uVar84 = *(undefined8 *)
(param_3 +
(longlong)
((((iVar50 - iVar76) + iVar71 * -7) - iVar72) - iVar74) * 8);
}
else {
uVar84 = *(undefined8 *)
(param_3 +
(longlong)
(((iVar71 * -7 + (iVar63 - iVar76)) - iVar72) - iVar74) * 8);
local_3e8[0x19] =
CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)
(param_3 + (longlong)(iVar74 + (iVar79 - iVar68) + iVar72) * 8);
}
}
else {
uVar84 = *(undefined8 *)
(param_3 + (longlong)(iVar74 + (iVar79 - iVar67) + iVar72) * 8);
local_3e8[0x19] =
CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
uVar84 = *(undefined8 *)
(param_3 +
(longlong)((((iVar68 - iVar76) + iVar71 * -7) - iVar72) - iVar74)
* 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
}
else {
local_3e8[0x19] =
*(undefined8 *)
(param_3 +
(longlong)((((iVar67 - iVar76) + iVar71 * -7) - iVar72) - iVar74) * 8);
uVar84 = *(undefined8 *)(param_3 + (longlong)(iVar74 + iVar79 + iVar72) * 8);
uVar84 = CONCAT44((uint)((ulonglong)uVar84 >> 0x20) ^ _UNK_181c5df64,
(uint)uVar84 ^ _DAT_181c5df60);
}
uVar70 = uVar70 + 1;
local_3e8[0x1b] = uVar84;
local_3e8 = local_3e8 + 0x1c;
} while (uVar70 < uVar9);
}
uVar78 = uVar78 + 1;
} while (uVar78 < uVar35);
}
uVar35 = uVar35 << 3;
iVar45 = iVar45 + -3;
}
iVar59 = iVar27;
} while (iVar27 < param_2);
}
uVar43 = uVar43 + 1;
iVar60 = iVar60 + uVar53 * 3;
iVar26 = iVar26 + uVar53 * 4;
iVar75 = iVar75 + uVar53 * 2;
iVar25 = iVar25 + uVar53 * 5;
iVar54 = iVar54 + uVar53 * 6;
iVar57 = iVar57 + uVar53 * 7;
iVar65 = iVar65 + uVar53;
} while (uVar43 < uVar10);
}
iVar49 = (1 << ((byte)uVar4 & 0x1f)) * 0x10;
iVar3 = *(int *)(param_1 + 0x1c);
if (*(int *)(param_1 + 0x1c) <= iVar49) {
iVar3 = iVar49;
}
*(int *)(param_1 + 0x1c) = iVar3;
return local_c68 + (longlong)(1 << ((char)param_2 + 0x1fU & 0x1f)) * 2;
}