############ FUN_ 18002f980 size=14481 ############ /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ ulonglong * FUN_18002f980(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; undefined4 uVar3; int iVar4; char cVar5; char cVar6; int iVar7; int iVar8; int iVar9; ulonglong *puVar10; int iVar11; int iVar12; int iVar13; uint uVar14; int iVar15; int iVar16; int iVar17; int iVar18; int iVar19; int iVar20; int iVar21; int iVar22; int iVar23; uint uVar24; int iVar25; uint uVar26; int iVar27; int iVar28; int iVar29; int iVar30; int iVar31; int iVar32; int iVar33; int iVar34; int iVar35; int iVar36; int iVar37; int iVar38; int iVar39; int iVar40; int iVar41; uint uVar42; int iVar43; int iVar44; int iVar45; int iVar46; int iVar47; int iVar48; int iVar49; int iVar50; int iVar51; uint uVar52; int iVar53; int iVar54; int iVar55; int iVar56; int iVar57; int iVar58; int iVar59; int iVar60; int iVar61; ulonglong uVar62; ulonglong uVar63; ulonglong *local_900; iVar2 = *(int *)(&DAT_181c5e0fc + (longlong)param_2 * 4); iVar19 = param_2 - iVar2; if (iVar19 < 0x12) { *(undefined8 *)(param_1 + 0x38) = param_6; puVar10 = (ulonglong *)FUN_18002e360(iVar19,param_3); iVar25 = 1 << ((byte)iVar19 & 0x1f); *(uint *)(param_1 + 0x1c) = iVar25 * 0x10 + 0x3fU & 0xffffffc0; } else { puVar10 = (ulonglong *)FUN_18002f980(param_1,iVar19,param_3,param_4,param_5 + 1,param_6,param_7) ; iVar25 = 1 << ((byte)iVar19 & 0x1f); } uVar24 = 0; uVar3 = *(undefined4 *)(&DAT_181c5e15c + (longlong)param_2 * 4); *(ulonglong **)(param_1 + 0x78 + (longlong)param_5 * 8) = puVar10; if (0 < iVar25) { iVar4 = iVar25 * 2; iVar33 = 1 << ((byte)uVar3 - (char)iVar2 & 0x1f); uVar42 = (int)(iVar33 + 3 + ((uint)(iVar33 + 3 >> 1) >> 0x1e)) >> 2; iVar43 = 0; iVar15 = 0; iVar11 = 0; local_900 = puVar10; do { uVar26 = 1; iVar16 = -iVar19; iVar44 = iVar19; if (-iVar2 < 0) { do { iVar12 = iVar44 + 2; cVar5 = (char)(iVar16 + -2); cVar6 = (char)param_4; if (iVar12 == param_2) { iVar44 = 1 << ((byte)iVar12 & 0x1f); iVar32 = 1 << (cVar5 + cVar6 & 0x1fU); if (0 < (int)uVar26 >> 1) { iVar56 = (int)(((uint)(iVar44 >> 1) >> 0x1e) + iVar44) >> 2; iVar31 = iVar32 * iVar56; iVar50 = iVar32 * iVar15; iVar29 = iVar32 * iVar11; iVar22 = iVar44 / 2; iVar57 = iVar32 * iVar22; iVar8 = iVar31 - iVar50; iVar13 = iVar32 + iVar50; iVar21 = iVar50 - iVar57; iVar7 = iVar32 * 4; iVar37 = (int)(((uint)(iVar44 * 3 >> 1) >> 0x1e) + iVar44 * 3) >> 2; iVar23 = iVar32 * iVar37; iVar20 = iVar50 - iVar23; iVar45 = iVar29 - iVar23; iVar34 = iVar31 - iVar29; iVar35 = iVar29 - iVar57; iVar1 = iVar29 + iVar32 * 4; iVar27 = iVar44 * iVar32 - iVar29; iVar30 = iVar44 * iVar32 - iVar50; iVar44 = iVar29 + iVar32 * 2; iVar17 = iVar50 + iVar32 * 2; iVar18 = iVar32 * 3; iVar39 = iVar18 + iVar50; iVar47 = iVar29 + iVar32 * 6; iVar28 = iVar32 * 8; uVar52 = 0; do { uVar14 = 0; if (0 < iVar33) { iVar58 = iVar32 * iVar4 * uVar52; iVar38 = iVar32 * iVar25 * uVar52; do { iVar9 = iVar25 * uVar52 + iVar15 + uVar14 * 4; if (iVar56 < iVar9) { iVar40 = iVar7 * uVar14; if (iVar22 < iVar9) { if (iVar37 < iVar9) { *local_900 = *(ulonglong *) (param_3 + (longlong)(iVar20 + iVar38 + iVar40) * 8); uVar63 = *(ulonglong *) (param_3 + (longlong)((iVar30 - iVar38) - iVar40) * 8); } else { *local_900 = *(ulonglong *) (param_3 + (longlong)-(iVar20 + iVar38 + iVar40) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)(iVar21 + iVar38 + iVar40) * 8); } } else { *local_900 = *(ulonglong *) (param_3 + (longlong)(iVar40 + (iVar38 - iVar8)) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *)(param_3 + (longlong)-(iVar21 + iVar38 + iVar40) * 8) ^ _DAT_181c5e1e0; } } else { *local_900 = *(ulonglong *) (param_3 + (longlong)(int)-((iVar38 - iVar8) + iVar7 * uVar14) * 8); uVar63 = *(ulonglong *) (param_3 + (longlong)(int)(iVar50 + iVar38 + iVar7 * uVar14) * 8) ^ _DAT_181c5e1e0; } iVar40 = iVar7 * uVar14; local_900[4] = uVar63; iVar51 = iVar9 + 1; if (iVar56 < iVar51) { if (iVar22 < iVar51) { if (iVar37 < iVar51) { local_900[1] = *(ulonglong *) (param_3 + (longlong)((iVar13 - iVar23) + iVar38 + iVar40) * 8); uVar63 = *(ulonglong *) (param_3 + (longlong)(((iVar30 - iVar32) - iVar38) - iVar40) * 8 ); } else { local_900[1] = *(ulonglong *) (param_3 + (longlong)-(iVar32 + iVar20 + iVar38 + iVar40) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)((iVar13 - iVar57) + iVar38 + iVar40) * 8); } } else { local_900[1] = *(ulonglong *) (param_3 + (longlong)((iVar13 - iVar31) + iVar38 + iVar40) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)-(iVar32 + iVar21 + iVar38 + iVar40) * 8) ^ _DAT_181c5e1e0; } } else { local_900[1] = *(ulonglong *) (param_3 + (longlong)(((iVar8 - iVar32) - iVar38) - iVar40) * 8); uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar13 + iVar38 + iVar40) * 8) ^ _DAT_181c5e1e0; } local_900[5] = uVar63; iVar51 = iVar9 + 2; if (iVar56 < iVar51) { if (iVar22 < iVar51) { if (iVar37 < iVar51) { local_900[2] = *(ulonglong *) (param_3 + (longlong)((iVar17 - iVar23) + iVar38 + iVar40) * 8); uVar63 = *(ulonglong *) (param_3 + (longlong)(((iVar30 + iVar32 * -2) - iVar38) - iVar40) * 8); } else { local_900[2] = *(ulonglong *) (param_3 + (longlong)-(iVar20 + iVar32 * 2 + iVar38 + iVar40) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)((iVar17 - iVar57) + iVar38 + iVar40) * 8); } } else { local_900[2] = *(ulonglong *) (param_3 + (longlong)((iVar17 - iVar31) + iVar38 + iVar40) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)-(iVar21 + iVar32 * 2 + iVar38 + iVar40) * 8) ^ _DAT_181c5e1e0; } } else { local_900[2] = *(ulonglong *) (param_3 + (longlong)(((iVar32 * -2 + iVar8) - iVar38) - iVar40) * 8); uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar17 + iVar38 + iVar40) * 8) ^ _DAT_181c5e1e0; } iVar9 = iVar9 + 3; local_900[6] = uVar63; if (iVar56 < iVar9) { if (iVar22 < iVar9) { if (iVar37 < iVar9) { local_900[3] = *(ulonglong *) (param_3 + (longlong)(iVar40 + iVar38 + (iVar39 - iVar23)) * 8); uVar63 = *(ulonglong *) (param_3 + (longlong)(((iVar30 + iVar32 * -3) - iVar38) - iVar40) * 8); } else { local_900[3] = *(ulonglong *) (param_3 + (longlong)-(iVar40 + iVar20 + iVar18 + iVar38) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)(iVar40 + (iVar39 - iVar57) + iVar38) * 8); } } else { local_900[3] = *(ulonglong *) (param_3 + (longlong)(iVar40 + (iVar39 - iVar31) + iVar38) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)-(iVar40 + iVar21 + iVar18 + iVar38) * 8) ^ _DAT_181c5e1e0; } } else { local_900[3] = *(ulonglong *) (param_3 + (longlong)(((iVar8 + iVar32 * -3) - iVar38) - iVar40) * 8); uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar40 + iVar39 + iVar38) * 8) ^ _DAT_181c5e1e0; } local_900[7] = uVar63; iVar9 = iVar4 * uVar52 + iVar11 + uVar14 * 8; if (iVar56 < iVar9) { iVar40 = iVar28 * uVar14; if (iVar22 < iVar9) { if (iVar37 < iVar9) { local_900[8] = *(ulonglong *) (param_3 + (longlong)(iVar45 + iVar58 + iVar40) * 8); uVar63 = *(ulonglong *) (param_3 + (longlong)((iVar27 - iVar58) - iVar40) * 8); } else { local_900[8] = *(ulonglong *) (param_3 + (longlong)-(iVar45 + iVar58 + iVar40) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)(iVar35 + iVar58 + iVar40) * 8); } } else { local_900[8] = *(ulonglong *) (param_3 + (longlong)(iVar40 + (iVar58 - iVar34)) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *)(param_3 + (longlong)-(iVar35 + iVar58 + iVar40) * 8) ^ _DAT_181c5e1e0; } } else { local_900[8] = *(ulonglong *) (param_3 + (longlong)(int)-((iVar58 - iVar34) + iVar28 * uVar14) * 8); uVar63 = *(ulonglong *) (param_3 + (longlong)(int)(iVar29 + iVar58 + iVar28 * uVar14) * 8) ^ _DAT_181c5e1e0; } iVar40 = iVar28 * uVar14; local_900[0xc] = uVar63; iVar51 = iVar9 + 2; if (iVar56 < iVar51) { if (iVar22 < iVar51) { if (iVar37 < iVar51) { local_900[9] = *(ulonglong *) (param_3 + (longlong)((iVar44 - iVar23) + iVar58 + iVar40) * 8); uVar63 = *(ulonglong *) (param_3 + (longlong)(((iVar27 + iVar32 * -2) - iVar58) - iVar40) * 8); } else { local_900[9] = *(ulonglong *) (param_3 + (longlong)-(iVar45 + iVar32 * 2 + iVar58 + iVar40) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)((iVar44 - iVar57) + iVar58 + iVar40) * 8); } } else { local_900[9] = *(ulonglong *) (param_3 + (longlong)((iVar44 - iVar31) + iVar58 + iVar40) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)-(iVar35 + iVar32 * 2 + iVar58 + iVar40) * 8) ^ _DAT_181c5e1e0; } } else { local_900[9] = *(ulonglong *) (param_3 + (longlong)(((iVar34 + iVar32 * -2) - iVar58) - iVar40) * 8); uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar40 + iVar44 + iVar58) * 8) ^ _DAT_181c5e1e0; } local_900[0xd] = uVar63; iVar51 = iVar9 + 4; if (iVar56 < iVar51) { if (iVar22 < iVar51) { if (iVar37 < iVar51) { local_900[10] = *(ulonglong *) (param_3 + (longlong)((iVar1 - iVar23) + iVar58 + iVar40) * 8); uVar63 = *(ulonglong *) (param_3 + (longlong)(((iVar27 + iVar32 * -4) - iVar58) - iVar40) * 8); } else { local_900[10] = *(ulonglong *) (param_3 + (longlong)-(iVar45 + iVar32 * 4 + iVar58 + iVar40) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)((iVar1 - iVar57) + iVar58 + iVar40) * 8); } } else { local_900[10] = *(ulonglong *) (param_3 + (longlong)((iVar1 - iVar31) + iVar58 + iVar40) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)-(iVar35 + iVar32 * 4 + iVar58 + iVar40) * 8) ^ _DAT_181c5e1e0; } } else { local_900[10] = *(ulonglong *) (param_3 + (longlong)(((iVar34 + iVar32 * -4) - iVar58) - iVar40) * 8); uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar1 + iVar58 + iVar40) * 8) ^ _DAT_181c5e1e0; } iVar9 = iVar9 + 6; local_900[0xe] = uVar63; if (iVar56 < iVar9) { if (iVar22 < iVar9) { if (iVar37 < iVar9) { local_900[0xb] = *(ulonglong *) (param_3 + (longlong)(iVar40 + iVar58 + (iVar47 - iVar23)) * 8); uVar63 = *(ulonglong *) (param_3 + (longlong)(((iVar27 + iVar32 * -6) - iVar58) - iVar40) * 8); } else { local_900[0xb] = *(ulonglong *) (param_3 + (longlong)-(iVar40 + iVar45 + iVar32 * 6 + iVar58) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)(iVar40 + (iVar47 - iVar57) + iVar58) * 8); } } else { local_900[0xb] = *(ulonglong *) (param_3 + (longlong)(iVar40 + (iVar47 - iVar31) + iVar58) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)-(iVar40 + iVar35 + iVar32 * 6 + iVar58) * 8) ^ _DAT_181c5e1e0; } } else { local_900[0xb] = *(ulonglong *) (param_3 + (longlong)(((iVar32 * -6 + iVar34) - iVar58) - iVar40) * 8); uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar40 + iVar47 + iVar58) * 8) ^ _DAT_181c5e1e0; } uVar14 = uVar14 + 1; local_900[0xf] = uVar63; local_900 = local_900 + 0x10; } while (uVar14 < uVar42); } uVar52 = uVar52 + 1; } while (uVar52 < (uint)((int)uVar26 >> 1)); } LAB_18003311c: uVar26 = uVar26 << 2; iVar16 = iVar16 + -2; } else { if ((iVar44 + 4 == param_2) || (iVar44 + 6 == param_2)) { iVar32 = 1 << ((byte)iVar12 & 0x1f); iVar44 = 1 << (cVar5 + cVar6 & 0x1fU); if (0 < (int)uVar26) { iVar56 = iVar44 * iVar15; iVar57 = iVar44 * iVar43; iVar59 = iVar44 * iVar11; iVar8 = (int)(((uint)(iVar32 >> 1) >> 0x1e) + iVar32) >> 2; iVar1 = iVar44 + iVar56; iVar51 = iVar44 * iVar8; iVar58 = iVar32 / 2; iVar50 = iVar44 * iVar58; iVar27 = iVar51 - iVar56; iVar53 = iVar57 - iVar50; iVar28 = iVar56 - iVar50; iVar9 = (int)(((uint)(iVar32 * 3 >> 1) >> 0x1e) + iVar32 * 3) >> 2; iVar45 = iVar44 * iVar9; iVar32 = iVar32 * iVar44; iVar31 = iVar57 - iVar45; iVar40 = iVar56 - iVar45; iVar38 = iVar59 - iVar45; iVar21 = iVar51 - iVar57; iVar35 = iVar51 - iVar59; iVar22 = iVar59 - iVar50; iVar18 = iVar44 * 4; iVar39 = iVar59 + iVar44 * 4; iVar54 = iVar32 - iVar59; iVar46 = iVar32 - iVar56; iVar32 = iVar32 - iVar57; iVar47 = iVar59 + iVar44 * 2; iVar7 = iVar56 + iVar44 * 2; iVar34 = iVar44 * 3; iVar60 = iVar57 + iVar34; iVar13 = iVar34 + iVar56; iVar30 = iVar57 + iVar44 * 6; iVar17 = iVar59 + iVar44 * 6; iVar29 = iVar44 * 8; iVar37 = iVar44 * 9; iVar23 = iVar37 + iVar57; iVar20 = iVar44 * 0xc; uVar52 = 0; do { uVar14 = 0; if (0 < iVar33) { iVar48 = iVar44 * iVar4 * uVar52; iVar36 = iVar44 * iVar25 * uVar52; iVar41 = iVar44 * iVar25 * 3 * uVar52; do { iVar55 = iVar25 * uVar52 + iVar15 + uVar14 * 4; if (iVar8 < iVar55) { iVar49 = iVar18 * uVar14; if (iVar58 < iVar55) { if (iVar9 < iVar55) { *local_900 = *(ulonglong *) (param_3 + (longlong)(iVar40 + iVar36 + iVar49) * 8); uVar63 = *(ulonglong *) (param_3 + (longlong)((iVar46 - iVar36) - iVar49) * 8); } else { *local_900 = *(ulonglong *) (param_3 + (longlong)-(iVar40 + iVar36 + iVar49) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)(iVar28 + iVar36 + iVar49) * 8); } } else { *local_900 = *(ulonglong *) (param_3 + (longlong)(iVar49 + (iVar36 - iVar27)) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)-(iVar28 + iVar36 + iVar49) * 8) ^ _DAT_181c5e1e0; } } else { *local_900 = *(ulonglong *) (param_3 + (longlong)(int)-((iVar36 - iVar27) + iVar18 * uVar14) * 8); uVar63 = *(ulonglong *) (param_3 + (longlong)(int)(iVar56 + iVar36 + iVar18 * uVar14) * 8) ^ _DAT_181c5e1e0; } iVar49 = iVar18 * uVar14; local_900[4] = uVar63; iVar61 = iVar55 + 1; if (iVar8 < iVar61) { if (iVar58 < iVar61) { if (iVar9 < iVar61) { local_900[1] = *(ulonglong *) (param_3 + (longlong)((iVar1 - iVar45) + iVar36 + iVar49) * 8); uVar63 = *(ulonglong *) (param_3 + (longlong)(((iVar46 - iVar44) - iVar36) - iVar49) * 8); } else { local_900[1] = *(ulonglong *) (param_3 + (longlong)-(iVar44 + iVar40 + iVar36 + iVar49) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)((iVar1 - iVar50) + iVar36 + iVar49) * 8) ; } } else { local_900[1] = *(ulonglong *) (param_3 + (longlong)((iVar1 - iVar51) + iVar36 + iVar49) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)-(iVar44 + iVar28 + iVar36 + iVar49) * 8) ^ _DAT_181c5e1e0; } } else { local_900[1] = *(ulonglong *) (param_3 + (longlong)(((iVar27 - iVar44) - iVar36) - iVar49) * 8); uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar1 + iVar36 + iVar49) * 8) ^ _DAT_181c5e1e0; } local_900[5] = uVar63; iVar61 = iVar55 + 2; if (iVar8 < iVar61) { if (iVar58 < iVar61) { if (iVar9 < iVar61) { local_900[2] = *(ulonglong *) (param_3 + (longlong)((iVar7 - iVar45) + iVar36 + iVar49) * 8); uVar63 = *(ulonglong *) (param_3 + (longlong)(((iVar46 + iVar44 * -2) - iVar36) - iVar49) * 8); } else { local_900[2] = *(ulonglong *) (param_3 + (longlong)-(iVar40 + iVar44 * 2 + iVar36 + iVar49) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)((iVar7 - iVar50) + iVar36 + iVar49) * 8) ; } } else { local_900[2] = *(ulonglong *) (param_3 + (longlong)((iVar7 - iVar51) + iVar36 + iVar49) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)-(iVar28 + iVar44 * 2 + iVar36 + iVar49) * 8) ^ _DAT_181c5e1e0; } } else { local_900[2] = *(ulonglong *) (param_3 + (longlong)(((iVar44 * -2 + iVar27) - iVar36) - iVar49) * 8); uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar7 + iVar36 + iVar49) * 8) ^ _DAT_181c5e1e0; } iVar55 = iVar55 + 3; local_900[6] = uVar63; if (iVar8 < iVar55) { if (iVar58 < iVar55) { if (iVar9 < iVar55) { local_900[3] = *(ulonglong *) (param_3 + (longlong)(iVar49 + iVar36 + (iVar13 - iVar45)) * 8); uVar63 = *(ulonglong *) (param_3 + (longlong)(((iVar46 + iVar44 * -3) - iVar36) - iVar49) * 8); } else { local_900[3] = *(ulonglong *) (param_3 + (longlong)-(iVar49 + iVar40 + iVar34 + iVar36) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)(iVar49 + (iVar13 - iVar50) + iVar36) * 8 ); } } else { local_900[3] = *(ulonglong *) (param_3 + (longlong)(iVar49 + (iVar13 - iVar51) + iVar36) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)-(iVar49 + iVar28 + iVar34 + iVar36) * 8) ^ _DAT_181c5e1e0; } } else { local_900[3] = *(ulonglong *) (param_3 + (longlong)(((iVar27 + iVar44 * -3) - iVar36) - iVar49) * 8); uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar49 + iVar13 + iVar36) * 8) ^ _DAT_181c5e1e0; } local_900[7] = uVar63; iVar55 = iVar4 * uVar52 + iVar11 + uVar14 * 8; if (iVar8 < iVar55) { iVar49 = iVar29 * uVar14; if (iVar58 < iVar55) { if (iVar9 < iVar55) { local_900[8] = *(ulonglong *) (param_3 + (longlong)(iVar38 + iVar48 + iVar49) * 8); uVar63 = *(ulonglong *) (param_3 + (longlong)((iVar54 - iVar48) - iVar49) * 8); } else { local_900[8] = *(ulonglong *) (param_3 + (longlong)-(iVar38 + iVar48 + iVar49) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)(iVar22 + iVar48 + iVar49) * 8); } } else { local_900[8] = *(ulonglong *) (param_3 + (longlong)(iVar49 + (iVar48 - iVar35)) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)-(iVar22 + iVar48 + iVar49) * 8) ^ _DAT_181c5e1e0; } } else { local_900[8] = *(ulonglong *) (param_3 + (longlong)(int)-((iVar48 - iVar35) + iVar29 * uVar14) * 8); uVar63 = *(ulonglong *) (param_3 + (longlong)(int)(iVar59 + iVar48 + iVar29 * uVar14) * 8) ^ _DAT_181c5e1e0; } iVar49 = iVar29 * uVar14; local_900[0xc] = uVar63; iVar61 = iVar55 + 2; if (iVar8 < iVar61) { if (iVar58 < iVar61) { if (iVar9 < iVar61) { local_900[9] = *(ulonglong *) (param_3 + (longlong)((iVar47 - iVar45) + iVar48 + iVar49) * 8); uVar63 = *(ulonglong *) (param_3 + (longlong)(((iVar54 + iVar44 * -2) - iVar48) - iVar49) * 8); } else { local_900[9] = *(ulonglong *) (param_3 + (longlong)-(iVar38 + iVar44 * 2 + iVar48 + iVar49) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)((iVar47 - iVar50) + iVar48 + iVar49) * 8 ); } } else { local_900[9] = *(ulonglong *) (param_3 + (longlong)((iVar47 - iVar51) + iVar48 + iVar49) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)-(iVar22 + iVar44 * 2 + iVar48 + iVar49) * 8) ^ _DAT_181c5e1e0; } } else { local_900[9] = *(ulonglong *) (param_3 + (longlong)(((iVar35 + iVar44 * -2) - iVar48) - iVar49) * 8); uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar47 + iVar48 + iVar49) * 8) ^ _DAT_181c5e1e0; } local_900[0xd] = uVar63; iVar61 = iVar55 + 4; if (iVar8 < iVar61) { if (iVar58 < iVar61) { if (iVar9 < iVar61) { local_900[10] = *(ulonglong *) (param_3 + (longlong)((iVar39 - iVar45) + iVar48 + iVar49) * 8); uVar63 = *(ulonglong *) (param_3 + (longlong)(((iVar54 + iVar44 * -4) - iVar48) - iVar49) * 8); } else { local_900[10] = *(ulonglong *) (param_3 + (longlong)-(iVar38 + iVar44 * 4 + iVar48 + iVar49) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)((iVar39 - iVar50) + iVar48 + iVar49) * 8 ); } } else { local_900[10] = *(ulonglong *) (param_3 + (longlong)((iVar39 - iVar51) + iVar48 + iVar49) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)-(iVar22 + iVar44 * 4 + iVar48 + iVar49) * 8) ^ _DAT_181c5e1e0; } } else { local_900[10] = *(ulonglong *) (param_3 + (longlong)(((iVar35 + iVar44 * -4) - iVar48) - iVar49) * 8) ; uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar39 + iVar48 + iVar49) * 8) ^ _DAT_181c5e1e0; } iVar55 = iVar55 + 6; local_900[0xe] = uVar63; if (iVar8 < iVar55) { if (iVar58 < iVar55) { if (iVar9 < iVar55) { local_900[0xb] = *(ulonglong *) (param_3 + (longlong)(iVar49 + iVar48 + (iVar17 - iVar45)) * 8); uVar63 = *(ulonglong *) (param_3 + (longlong)(((iVar54 + iVar44 * -6) - iVar48) - iVar49) * 8); } else { local_900[0xb] = *(ulonglong *) (param_3 + (longlong)-(iVar49 + iVar38 + iVar44 * 6 + iVar48) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)(iVar49 + (iVar17 - iVar50) + iVar48) * 8 ); } } else { local_900[0xb] = *(ulonglong *) (param_3 + (longlong)(iVar49 + (iVar17 - iVar51) + iVar48) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)-(iVar49 + iVar22 + iVar44 * 6 + iVar48) * 8) ^ _DAT_181c5e1e0; } } else { local_900[0xb] = *(ulonglong *) (param_3 + (longlong)(((iVar44 * -6 + iVar35) - iVar48) - iVar49) * 8) ; uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar49 + iVar17 + iVar48) * 8) ^ _DAT_181c5e1e0; } local_900[0xf] = uVar63; iVar55 = iVar25 * 3 * uVar52 + iVar43 + uVar14 * 0xc; if (iVar8 < iVar55) { iVar49 = iVar20 * uVar14; if (iVar58 < iVar55) { if (iVar9 < iVar55) { local_900[0x10] = *(ulonglong *)(param_3 + (longlong)(iVar31 + iVar41 + iVar49) * 8); uVar63 = *(ulonglong *) (param_3 + (longlong)((iVar32 - iVar41) - iVar49) * 8); } else { local_900[0x10] = *(ulonglong *)(param_3 + (longlong)-(iVar31 + iVar41 + iVar49) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)(iVar53 + iVar41 + iVar49) * 8); } } else { local_900[0x10] = *(ulonglong *)(param_3 + (longlong)(iVar49 + (iVar41 - iVar21)) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)-(iVar53 + iVar41 + iVar49) * 8) ^ _DAT_181c5e1e0; } } else { local_900[0x10] = *(ulonglong *) (param_3 + (longlong)(int)-((iVar41 - iVar21) + iVar20 * uVar14) * 8); uVar63 = *(ulonglong *) (param_3 + (longlong)(int)(iVar57 + iVar41 + iVar20 * uVar14) * 8) ^ _DAT_181c5e1e0; } iVar49 = iVar20 * uVar14; local_900[0x14] = uVar63; iVar61 = iVar55 + 3; if (iVar8 < iVar61) { if (iVar58 < iVar61) { if (iVar9 < iVar61) { local_900[0x11] = *(ulonglong *) (param_3 + (longlong)((iVar60 - iVar45) + iVar41 + iVar49) * 8); uVar63 = *(ulonglong *) (param_3 + (longlong)(((iVar32 + iVar44 * -3) - iVar41) - iVar49) * 8); } else { local_900[0x11] = *(ulonglong *) (param_3 + (longlong)-(iVar31 + iVar34 + iVar41 + iVar49) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)((iVar60 - iVar50) + iVar41 + iVar49) * 8 ); } } else { local_900[0x11] = *(ulonglong *) (param_3 + (longlong)((iVar60 - iVar51) + iVar41 + iVar49) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)-(iVar53 + iVar34 + iVar41 + iVar49) * 8) ^ _DAT_181c5e1e0; } } else { local_900[0x11] = *(ulonglong *) (param_3 + (longlong)(((iVar21 + iVar44 * -3) - iVar41) - iVar49) * 8) ; uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar60 + iVar41 + iVar49) * 8) ^ _DAT_181c5e1e0; } local_900[0x15] = uVar63; iVar61 = iVar55 + 6; if (iVar8 < iVar61) { if (iVar58 < iVar61) { if (iVar9 < iVar61) { local_900[0x12] = *(ulonglong *) (param_3 + (longlong)((iVar30 - iVar45) + iVar41 + iVar49) * 8); uVar63 = *(ulonglong *) (param_3 + (longlong)(((iVar32 + iVar44 * -6) - iVar41) - iVar49) * 8); } else { local_900[0x12] = *(ulonglong *) (param_3 + (longlong)-(iVar31 + iVar44 * 6 + iVar41 + iVar49) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)((iVar30 - iVar50) + iVar41 + iVar49) * 8 ); } } else { local_900[0x12] = *(ulonglong *) (param_3 + (longlong)((iVar30 - iVar51) + iVar41 + iVar49) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)-(iVar53 + iVar44 * 6 + iVar41 + iVar49) * 8) ^ _DAT_181c5e1e0; } } else { local_900[0x12] = *(ulonglong *) (param_3 + (longlong)(((iVar21 + iVar44 * -6) - iVar41) - iVar49) * 8) ; uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar30 + iVar41 + iVar49) * 8) ^ _DAT_181c5e1e0; } iVar55 = iVar55 + 9; local_900[0x16] = uVar63; if (iVar8 < iVar55) { if (iVar58 < iVar55) { if (iVar9 < iVar55) { local_900[0x13] = *(ulonglong *) (param_3 + (longlong)(iVar49 + iVar41 + (iVar23 - iVar45)) * 8); uVar63 = *(ulonglong *) (param_3 + (longlong)(((iVar32 + iVar44 * -9) - iVar41) - iVar49) * 8); } else { local_900[0x13] = *(ulonglong *) (param_3 + (longlong)-(iVar49 + iVar31 + iVar37 + iVar41) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)(iVar49 + (iVar23 - iVar50) + iVar41) * 8 ); } } else { local_900[0x13] = *(ulonglong *) (param_3 + (longlong)(iVar49 + (iVar23 - iVar51) + iVar41) * 8) ^ _DAT_181c5e1e0; uVar63 = *(ulonglong *) (param_3 + (longlong)-(iVar49 + iVar53 + iVar37 + iVar41) * 8) ^ _DAT_181c5e1e0; } } else { local_900[0x13] = *(ulonglong *) (param_3 + (longlong)(((iVar21 + iVar44 * -9) - iVar41) - iVar49) * 8) ; uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar49 + iVar23 + iVar41) * 8) ^ _DAT_181c5e1e0; } uVar14 = uVar14 + 1; local_900[0x17] = uVar63; local_900 = local_900 + 0x18; } while (uVar14 < uVar42); } uVar52 = uVar52 + 1; } while (uVar52 < uVar26); } goto LAB_18003311c; } iVar12 = iVar44 + 3; if (0 < (int)uVar26) { iVar44 = 1 << ((byte)iVar12 & 0x1f); iVar50 = 1 << (cVar6 + (char)(iVar16 + -3) & 0x1fU); iVar7 = iVar15 * iVar50; iVar34 = (int)(((uint)(iVar44 * 3 >> 1) >> 0x1e) + iVar44 * 3) >> 2; iVar45 = iVar44 * iVar50 - iVar7; iVar13 = iVar34 * iVar50; iVar17 = iVar44 / 2; iVar18 = iVar17 * iVar50; iVar56 = iVar13 - iVar7; iVar37 = (int)(((uint)(iVar44 >> 1) >> 0x1e) + iVar44) >> 2; iVar29 = iVar37 * iVar50; iVar57 = iVar18 - iVar7; iVar44 = iVar50 * 3 + iVar7; iVar32 = iVar7 + iVar50 * 2; iVar1 = iVar50 + iVar7; iVar30 = iVar29 - iVar7; iVar39 = 0; iVar47 = 0; uVar52 = 0; do { uVar14 = 0; iVar8 = 0; if (0 < iVar33) { iVar35 = -iVar39; do { iVar58 = -iVar8; iVar20 = iVar44 + iVar39 + iVar8; iVar21 = iVar1 + iVar39 + iVar8; iVar22 = (iVar39 - iVar56) + iVar8; iVar28 = (iVar39 - iVar57) + iVar8; iVar23 = (iVar39 - iVar30) + iVar8; iVar31 = iVar32 + iVar39 + iVar8; iVar38 = iVar7 + iVar39 + iVar8; iVar27 = iVar15 + iVar47 + uVar14 * 4; uVar63 = 0; do { iVar40 = (int)uVar63; iVar9 = iVar27 + iVar27 * iVar40; if (iVar37 < iVar9) { iVar51 = iVar38 * iVar40; if (iVar17 < iVar9) { if (iVar34 < iVar9) { local_900[uVar63 * 8] = *(ulonglong *)(param_3 + (longlong)(iVar22 + iVar51) * 8); uVar62 = *(ulonglong *) (param_3 + (longlong)((iVar45 + iVar35 + iVar58) - iVar51) * 8 ); } else { local_900[uVar63 * 8] = *(ulonglong *)(param_3 + (longlong)-(iVar22 + iVar51) * 8) ^ _DAT_181c5e1e0; uVar62 = *(ulonglong *)(param_3 + (longlong)(iVar51 + iVar28) * 8); } } else { local_900[uVar63 * 8] = *(ulonglong *)(param_3 + (longlong)(iVar23 + iVar51) * 8) ^ _DAT_181c5e1e0; uVar62 = *(ulonglong *)(param_3 + (longlong)-(iVar51 + iVar28) * 8) ^ _DAT_181c5e1e0; } } else { local_900[uVar63 * 8] = *(ulonglong *)(param_3 + (longlong)-(iVar23 + iVar38 * iVar40) * 8); uVar62 = *(ulonglong *)(param_3 + (longlong)(iVar38 * iVar40 + iVar38) * 8) ^ _DAT_181c5e1e0; } local_900[uVar63 * 8 + 4] = uVar62; iVar51 = iVar27 + 1 + iVar27 * iVar40 + iVar40; if (iVar37 < iVar51) { iVar46 = iVar21 * iVar40; if (iVar17 < iVar51) { if (iVar34 < iVar51) { local_900[uVar63 * 8 + 1] = *(ulonglong *) (param_3 + (longlong)(iVar46 + (iVar1 - iVar13) + iVar39 + iVar8) * 8); uVar62 = *(ulonglong *) (param_3 + (longlong)(((iVar45 - iVar50) + iVar35 + iVar58) - iVar46) * 8 ); } else { local_900[uVar63 * 8 + 1] = *(ulonglong *) (param_3 + (longlong)(((iVar56 - iVar50) + iVar35 + iVar58) - iVar46) * 8) ^ _DAT_181c5e1e0; uVar62 = *(ulonglong *) (param_3 + (longlong)(iVar46 + (iVar1 - iVar18) + iVar39 + iVar8) * 8); } } else { local_900[uVar63 * 8 + 1] = *(ulonglong *) (param_3 + (longlong)(iVar46 + (iVar1 - iVar29) + iVar39 + iVar8) * 8) ^ _DAT_181c5e1e0; uVar62 = *(ulonglong *) (param_3 + (longlong)(((iVar57 - iVar50) + iVar35 + iVar58) - iVar46) * 8) ^ _DAT_181c5e1e0; } } else { local_900[uVar63 * 8 + 1] = *(ulonglong *) (param_3 + (longlong)(((iVar30 - iVar50) + iVar35 + iVar58) - iVar21 * iVar40) * 8); uVar62 = *(ulonglong *)(param_3 + (longlong)(iVar21 * iVar40 + iVar21) * 8) ^ _DAT_181c5e1e0; } local_900[uVar63 * 8 + 5] = uVar62; iVar51 = iVar9 + 2 + iVar40 * 2; if (iVar37 < iVar51) { iVar46 = iVar31 * iVar40; if (iVar17 < iVar51) { if (iVar34 < iVar51) { local_900[uVar63 * 8 + 2] = *(ulonglong *) (param_3 + (longlong)(iVar46 + (iVar32 - iVar13) + iVar39 + iVar8) * 8); uVar62 = *(ulonglong *) (param_3 + (longlong)((iVar45 + iVar50 * -2 + iVar35 + iVar58) - iVar46) * 8); } else { local_900[uVar63 * 8 + 2] = *(ulonglong *) (param_3 + (longlong)((iVar56 + iVar50 * -2 + iVar35 + iVar58) - iVar46) * 8) ^ _DAT_181c5e1e0; uVar62 = *(ulonglong *) (param_3 + (longlong)(iVar46 + (iVar32 - iVar18) + iVar39 + iVar8) * 8); } } else { local_900[uVar63 * 8 + 2] = *(ulonglong *) (param_3 + (longlong)(iVar46 + (iVar32 - iVar29) + iVar39 + iVar8) * 8) ^ _DAT_181c5e1e0; uVar62 = *(ulonglong *) (param_3 + (longlong)((iVar57 + iVar50 * -2 + iVar35 + iVar58) - iVar46) * 8) ^ _DAT_181c5e1e0; } } else { local_900[uVar63 * 8 + 2] = *(ulonglong *) (param_3 + (longlong)((iVar50 * -2 + iVar30 + iVar35 + iVar58) - iVar31 * iVar40) * 8); uVar62 = *(ulonglong *)(param_3 + (longlong)(iVar31 * iVar40 + iVar31) * 8) ^ _DAT_181c5e1e0; } local_900[uVar63 * 8 + 6] = uVar62; iVar9 = iVar9 + 3 + iVar40 * 3; if (iVar37 < iVar9) { iVar51 = iVar20 * iVar40; if (iVar17 < iVar9) { if (iVar34 < iVar9) { local_900[uVar63 * 8 + 3] = *(ulonglong *) (param_3 + (longlong)(iVar51 + (iVar44 - iVar13) + iVar39 + iVar8) * 8); uVar62 = *(ulonglong *) (param_3 + (longlong)((iVar45 + iVar50 * -3 + iVar35 + iVar58) - iVar51) * 8); } else { local_900[uVar63 * 8 + 3] = *(ulonglong *) (param_3 + (longlong)((iVar56 + iVar50 * -3 + iVar35 + iVar58) - iVar51) * 8) ^ _DAT_181c5e1e0; uVar62 = *(ulonglong *) (param_3 + (longlong)(iVar51 + (iVar44 - iVar18) + iVar39 + iVar8) * 8); } } else { local_900[uVar63 * 8 + 3] = *(ulonglong *) (param_3 + (longlong)(iVar51 + (iVar44 - iVar29) + iVar39 + iVar8) * 8) ^ _DAT_181c5e1e0; uVar62 = *(ulonglong *) (param_3 + (longlong)((iVar57 + iVar50 * -3 + iVar35 + iVar58) - iVar51) * 8) ^ _DAT_181c5e1e0; } } else { local_900[uVar63 * 8 + 3] = *(ulonglong *) (param_3 + (longlong)((iVar58 + iVar35 + iVar50 * -3 + iVar30) - iVar20 * iVar40) * 8); uVar62 = *(ulonglong *)(param_3 + (longlong)(iVar20 * iVar40 + iVar20) * 8) ^ _DAT_181c5e1e0; } local_900[uVar63 * 8 + 7] = uVar62; uVar63 = (ulonglong)(iVar40 + 1U); } while (iVar40 + 1U < 7); local_900 = local_900 + 0x38; uVar14 = uVar14 + 1; iVar8 = iVar8 + iVar50 * 4; } while (uVar14 < uVar42); } uVar52 = uVar52 + 1; iVar47 = iVar47 + iVar25; iVar39 = iVar39 + iVar25 * iVar50; } while (uVar52 < uVar26); } uVar26 = uVar26 << 3; iVar16 = iVar16 + -3; } iVar44 = iVar12; } while (iVar12 < param_2); } uVar24 = uVar24 + 1; iVar43 = iVar43 + iVar33 * 3; iVar15 = iVar15 + iVar33; iVar11 = iVar11 + iVar33 * 2; } while (uVar24 < (uint)((iVar25 + -1 + iVar33) / iVar33)); } iVar19 = (1 << ((byte)uVar3 & 0x1f)) << 4; iVar2 = *(int *)(param_1 + 0x1c); if (*(int *)(param_1 + 0x1c) <= iVar19) { iVar2 = iVar19; } *(int *)(param_1 + 0x1c) = iVar2; return puVar10 + (longlong)(1 << ((char)param_2 + 0x1fU & 0x1f)) * 2; } ############ FUN_ 180015380 size=1146 ############