// 
// Decompiled by Procyon v0.6.0
// 

package org.bouncycastle.crypto.engines;

import org.bouncycastle.util.Pack;

public final class SerpentEngine extends SerpentEngineBase
{
    @Override
    protected int[] makeWorkingKey(final byte[] array) throws IllegalArgumentException {
        final int[] array2 = new int[16];
        int n = 0;
        int n2;
        for (n2 = 0; n2 + 4 < array.length; n2 += 4) {
            array2[n++] = Pack.littleEndianToInt(array, n2);
        }
        if (n2 % 4 == 0) {
            array2[n++] = Pack.littleEndianToInt(array, n2);
            if (n < 8) {
                array2[n] = 1;
            }
            final int n3 = 132;
            final int[] array3 = new int[n3];
            for (int i = 8; i < 16; ++i) {
                array2[i] = SerpentEngineBase.rotateLeft(array2[i - 8] ^ array2[i - 5] ^ array2[i - 3] ^ array2[i - 1] ^ 0x9E3779B9 ^ i - 8, 11);
            }
            System.arraycopy(array2, 8, array3, 0, 8);
            for (int j = 8; j < n3; ++j) {
                array3[j] = SerpentEngineBase.rotateLeft(array3[j - 8] ^ array3[j - 5] ^ array3[j - 3] ^ array3[j - 1] ^ 0x9E3779B9 ^ j, 11);
            }
            final int[] array4 = new int[4];
            this.sb3(array4, array3[0], array3[1], array3[2], array3[3]);
            array3[0] = array4[0];
            array3[1] = array4[1];
            array3[2] = array4[2];
            array3[3] = array4[3];
            this.sb2(array4, array3[4], array3[5], array3[6], array3[7]);
            array3[4] = array4[0];
            array3[5] = array4[1];
            array3[6] = array4[2];
            array3[7] = array4[3];
            this.sb1(array4, array3[8], array3[9], array3[10], array3[11]);
            array3[8] = array4[0];
            array3[9] = array4[1];
            array3[10] = array4[2];
            array3[11] = array4[3];
            this.sb0(array4, array3[12], array3[13], array3[14], array3[15]);
            array3[12] = array4[0];
            array3[13] = array4[1];
            array3[14] = array4[2];
            array3[15] = array4[3];
            this.sb7(array4, array3[16], array3[17], array3[18], array3[19]);
            array3[16] = array4[0];
            array3[17] = array4[1];
            array3[18] = array4[2];
            array3[19] = array4[3];
            this.sb6(array4, array3[20], array3[21], array3[22], array3[23]);
            array3[20] = array4[0];
            array3[21] = array4[1];
            array3[22] = array4[2];
            array3[23] = array4[3];
            this.sb5(array4, array3[24], array3[25], array3[26], array3[27]);
            array3[24] = array4[0];
            array3[25] = array4[1];
            array3[26] = array4[2];
            array3[27] = array4[3];
            this.sb4(array4, array3[28], array3[29], array3[30], array3[31]);
            array3[28] = array4[0];
            array3[29] = array4[1];
            array3[30] = array4[2];
            array3[31] = array4[3];
            this.sb3(array4, array3[32], array3[33], array3[34], array3[35]);
            array3[32] = array4[0];
            array3[33] = array4[1];
            array3[34] = array4[2];
            array3[35] = array4[3];
            this.sb2(array4, array3[36], array3[37], array3[38], array3[39]);
            array3[36] = array4[0];
            array3[37] = array4[1];
            array3[38] = array4[2];
            array3[39] = array4[3];
            this.sb1(array4, array3[40], array3[41], array3[42], array3[43]);
            array3[40] = array4[0];
            array3[41] = array4[1];
            array3[42] = array4[2];
            array3[43] = array4[3];
            this.sb0(array4, array3[44], array3[45], array3[46], array3[47]);
            array3[44] = array4[0];
            array3[45] = array4[1];
            array3[46] = array4[2];
            array3[47] = array4[3];
            this.sb7(array4, array3[48], array3[49], array3[50], array3[51]);
            array3[48] = array4[0];
            array3[49] = array4[1];
            array3[50] = array4[2];
            array3[51] = array4[3];
            this.sb6(array4, array3[52], array3[53], array3[54], array3[55]);
            array3[52] = array4[0];
            array3[53] = array4[1];
            array3[54] = array4[2];
            array3[55] = array4[3];
            this.sb5(array4, array3[56], array3[57], array3[58], array3[59]);
            array3[56] = array4[0];
            array3[57] = array4[1];
            array3[58] = array4[2];
            array3[59] = array4[3];
            this.sb4(array4, array3[60], array3[61], array3[62], array3[63]);
            array3[60] = array4[0];
            array3[61] = array4[1];
            array3[62] = array4[2];
            array3[63] = array4[3];
            this.sb3(array4, array3[64], array3[65], array3[66], array3[67]);
            array3[64] = array4[0];
            array3[65] = array4[1];
            array3[66] = array4[2];
            array3[67] = array4[3];
            this.sb2(array4, array3[68], array3[69], array3[70], array3[71]);
            array3[68] = array4[0];
            array3[69] = array4[1];
            array3[70] = array4[2];
            array3[71] = array4[3];
            this.sb1(array4, array3[72], array3[73], array3[74], array3[75]);
            array3[72] = array4[0];
            array3[73] = array4[1];
            array3[74] = array4[2];
            array3[75] = array4[3];
            this.sb0(array4, array3[76], array3[77], array3[78], array3[79]);
            array3[76] = array4[0];
            array3[77] = array4[1];
            array3[78] = array4[2];
            array3[79] = array4[3];
            this.sb7(array4, array3[80], array3[81], array3[82], array3[83]);
            array3[80] = array4[0];
            array3[81] = array4[1];
            array3[82] = array4[2];
            array3[83] = array4[3];
            this.sb6(array4, array3[84], array3[85], array3[86], array3[87]);
            array3[84] = array4[0];
            array3[85] = array4[1];
            array3[86] = array4[2];
            array3[87] = array4[3];
            this.sb5(array4, array3[88], array3[89], array3[90], array3[91]);
            array3[88] = array4[0];
            array3[89] = array4[1];
            array3[90] = array4[2];
            array3[91] = array4[3];
            this.sb4(array4, array3[92], array3[93], array3[94], array3[95]);
            array3[92] = array4[0];
            array3[93] = array4[1];
            array3[94] = array4[2];
            array3[95] = array4[3];
            this.sb3(array4, array3[96], array3[97], array3[98], array3[99]);
            array3[96] = array4[0];
            array3[97] = array4[1];
            array3[98] = array4[2];
            array3[99] = array4[3];
            this.sb2(array4, array3[100], array3[101], array3[102], array3[103]);
            array3[100] = array4[0];
            array3[101] = array4[1];
            array3[102] = array4[2];
            array3[103] = array4[3];
            this.sb1(array4, array3[104], array3[105], array3[106], array3[107]);
            array3[104] = array4[0];
            array3[105] = array4[1];
            array3[106] = array4[2];
            array3[107] = array4[3];
            this.sb0(array4, array3[108], array3[109], array3[110], array3[111]);
            array3[108] = array4[0];
            array3[109] = array4[1];
            array3[110] = array4[2];
            array3[111] = array4[3];
            this.sb7(array4, array3[112], array3[113], array3[114], array3[115]);
            array3[112] = array4[0];
            array3[113] = array4[1];
            array3[114] = array4[2];
            array3[115] = array4[3];
            this.sb6(array4, array3[116], array3[117], array3[118], array3[119]);
            array3[116] = array4[0];
            array3[117] = array4[1];
            array3[118] = array4[2];
            array3[119] = array4[3];
            this.sb5(array4, array3[120], array3[121], array3[122], array3[123]);
            array3[120] = array4[0];
            array3[121] = array4[1];
            array3[122] = array4[2];
            array3[123] = array4[3];
            this.sb4(array4, array3[124], array3[125], array3[126], array3[127]);
            array3[124] = array4[0];
            array3[125] = array4[1];
            array3[126] = array4[2];
            array3[127] = array4[3];
            this.sb3(array4, array3[128], array3[129], array3[130], array3[131]);
            array3[128] = array4[0];
            array3[129] = array4[1];
            array3[130] = array4[2];
            array3[131] = array4[3];
            return array3;
        }
        throw new IllegalArgumentException("key must be a multiple of 4 bytes");
    }
    
    @Override
    protected void encryptBlock(final byte[] array, final int n, final byte[] array2, final int n2) {
        final int[] array3 = { Pack.littleEndianToInt(array, n), Pack.littleEndianToInt(array, n + 4), Pack.littleEndianToInt(array, n + 8), Pack.littleEndianToInt(array, n + 12) };
        this.sb0(array3, this.wKey[0] ^ array3[0], this.wKey[1] ^ array3[1], this.wKey[2] ^ array3[2], this.wKey[3] ^ array3[3]);
        this.LT(array3);
        this.sb1(array3, this.wKey[4] ^ array3[0], this.wKey[5] ^ array3[1], this.wKey[6] ^ array3[2], this.wKey[7] ^ array3[3]);
        this.LT(array3);
        this.sb2(array3, this.wKey[8] ^ array3[0], this.wKey[9] ^ array3[1], this.wKey[10] ^ array3[2], this.wKey[11] ^ array3[3]);
        this.LT(array3);
        this.sb3(array3, this.wKey[12] ^ array3[0], this.wKey[13] ^ array3[1], this.wKey[14] ^ array3[2], this.wKey[15] ^ array3[3]);
        this.LT(array3);
        this.sb4(array3, this.wKey[16] ^ array3[0], this.wKey[17] ^ array3[1], this.wKey[18] ^ array3[2], this.wKey[19] ^ array3[3]);
        this.LT(array3);
        this.sb5(array3, this.wKey[20] ^ array3[0], this.wKey[21] ^ array3[1], this.wKey[22] ^ array3[2], this.wKey[23] ^ array3[3]);
        this.LT(array3);
        this.sb6(array3, this.wKey[24] ^ array3[0], this.wKey[25] ^ array3[1], this.wKey[26] ^ array3[2], this.wKey[27] ^ array3[3]);
        this.LT(array3);
        this.sb7(array3, this.wKey[28] ^ array3[0], this.wKey[29] ^ array3[1], this.wKey[30] ^ array3[2], this.wKey[31] ^ array3[3]);
        this.LT(array3);
        this.sb0(array3, this.wKey[32] ^ array3[0], this.wKey[33] ^ array3[1], this.wKey[34] ^ array3[2], this.wKey[35] ^ array3[3]);
        this.LT(array3);
        this.sb1(array3, this.wKey[36] ^ array3[0], this.wKey[37] ^ array3[1], this.wKey[38] ^ array3[2], this.wKey[39] ^ array3[3]);
        this.LT(array3);
        this.sb2(array3, this.wKey[40] ^ array3[0], this.wKey[41] ^ array3[1], this.wKey[42] ^ array3[2], this.wKey[43] ^ array3[3]);
        this.LT(array3);
        this.sb3(array3, this.wKey[44] ^ array3[0], this.wKey[45] ^ array3[1], this.wKey[46] ^ array3[2], this.wKey[47] ^ array3[3]);
        this.LT(array3);
        this.sb4(array3, this.wKey[48] ^ array3[0], this.wKey[49] ^ array3[1], this.wKey[50] ^ array3[2], this.wKey[51] ^ array3[3]);
        this.LT(array3);
        this.sb5(array3, this.wKey[52] ^ array3[0], this.wKey[53] ^ array3[1], this.wKey[54] ^ array3[2], this.wKey[55] ^ array3[3]);
        this.LT(array3);
        this.sb6(array3, this.wKey[56] ^ array3[0], this.wKey[57] ^ array3[1], this.wKey[58] ^ array3[2], this.wKey[59] ^ array3[3]);
        this.LT(array3);
        this.sb7(array3, this.wKey[60] ^ array3[0], this.wKey[61] ^ array3[1], this.wKey[62] ^ array3[2], this.wKey[63] ^ array3[3]);
        this.LT(array3);
        this.sb0(array3, this.wKey[64] ^ array3[0], this.wKey[65] ^ array3[1], this.wKey[66] ^ array3[2], this.wKey[67] ^ array3[3]);
        this.LT(array3);
        this.sb1(array3, this.wKey[68] ^ array3[0], this.wKey[69] ^ array3[1], this.wKey[70] ^ array3[2], this.wKey[71] ^ array3[3]);
        this.LT(array3);
        this.sb2(array3, this.wKey[72] ^ array3[0], this.wKey[73] ^ array3[1], this.wKey[74] ^ array3[2], this.wKey[75] ^ array3[3]);
        this.LT(array3);
        this.sb3(array3, this.wKey[76] ^ array3[0], this.wKey[77] ^ array3[1], this.wKey[78] ^ array3[2], this.wKey[79] ^ array3[3]);
        this.LT(array3);
        this.sb4(array3, this.wKey[80] ^ array3[0], this.wKey[81] ^ array3[1], this.wKey[82] ^ array3[2], this.wKey[83] ^ array3[3]);
        this.LT(array3);
        this.sb5(array3, this.wKey[84] ^ array3[0], this.wKey[85] ^ array3[1], this.wKey[86] ^ array3[2], this.wKey[87] ^ array3[3]);
        this.LT(array3);
        this.sb6(array3, this.wKey[88] ^ array3[0], this.wKey[89] ^ array3[1], this.wKey[90] ^ array3[2], this.wKey[91] ^ array3[3]);
        this.LT(array3);
        this.sb7(array3, this.wKey[92] ^ array3[0], this.wKey[93] ^ array3[1], this.wKey[94] ^ array3[2], this.wKey[95] ^ array3[3]);
        this.LT(array3);
        this.sb0(array3, this.wKey[96] ^ array3[0], this.wKey[97] ^ array3[1], this.wKey[98] ^ array3[2], this.wKey[99] ^ array3[3]);
        this.LT(array3);
        this.sb1(array3, this.wKey[100] ^ array3[0], this.wKey[101] ^ array3[1], this.wKey[102] ^ array3[2], this.wKey[103] ^ array3[3]);
        this.LT(array3);
        this.sb2(array3, this.wKey[104] ^ array3[0], this.wKey[105] ^ array3[1], this.wKey[106] ^ array3[2], this.wKey[107] ^ array3[3]);
        this.LT(array3);
        this.sb3(array3, this.wKey[108] ^ array3[0], this.wKey[109] ^ array3[1], this.wKey[110] ^ array3[2], this.wKey[111] ^ array3[3]);
        this.LT(array3);
        this.sb4(array3, this.wKey[112] ^ array3[0], this.wKey[113] ^ array3[1], this.wKey[114] ^ array3[2], this.wKey[115] ^ array3[3]);
        this.LT(array3);
        this.sb5(array3, this.wKey[116] ^ array3[0], this.wKey[117] ^ array3[1], this.wKey[118] ^ array3[2], this.wKey[119] ^ array3[3]);
        this.LT(array3);
        this.sb6(array3, this.wKey[120] ^ array3[0], this.wKey[121] ^ array3[1], this.wKey[122] ^ array3[2], this.wKey[123] ^ array3[3]);
        this.LT(array3);
        this.sb7(array3, this.wKey[124] ^ array3[0], this.wKey[125] ^ array3[1], this.wKey[126] ^ array3[2], this.wKey[127] ^ array3[3]);
        Pack.intToLittleEndian(this.wKey[128] ^ array3[0], array2, n2);
        Pack.intToLittleEndian(this.wKey[129] ^ array3[1], array2, n2 + 4);
        Pack.intToLittleEndian(this.wKey[130] ^ array3[2], array2, n2 + 8);
        Pack.intToLittleEndian(this.wKey[131] ^ array3[3], array2, n2 + 12);
    }
    
    @Override
    protected void decryptBlock(final byte[] array, final int n, final byte[] array2, final int n2) {
        final int[] array3 = { this.wKey[128] ^ Pack.littleEndianToInt(array, n), this.wKey[129] ^ Pack.littleEndianToInt(array, n + 4), this.wKey[130] ^ Pack.littleEndianToInt(array, n + 8), this.wKey[131] ^ Pack.littleEndianToInt(array, n + 12) };
        this.ib7(array3, array3[0], array3[1], array3[2], array3[3]);
        final int[] array4 = array3;
        final int n3 = 0;
        array4[n3] ^= this.wKey[124];
        final int[] array5 = array3;
        final int n4 = 1;
        array5[n4] ^= this.wKey[125];
        final int[] array6 = array3;
        final int n5 = 2;
        array6[n5] ^= this.wKey[126];
        final int[] array7 = array3;
        final int n6 = 3;
        array7[n6] ^= this.wKey[127];
        this.inverseLT(array3);
        this.ib6(array3, array3[0], array3[1], array3[2], array3[3]);
        final int[] array8 = array3;
        final int n7 = 0;
        array8[n7] ^= this.wKey[120];
        final int[] array9 = array3;
        final int n8 = 1;
        array9[n8] ^= this.wKey[121];
        final int[] array10 = array3;
        final int n9 = 2;
        array10[n9] ^= this.wKey[122];
        final int[] array11 = array3;
        final int n10 = 3;
        array11[n10] ^= this.wKey[123];
        this.inverseLT(array3);
        this.ib5(array3, array3[0], array3[1], array3[2], array3[3]);
        final int[] array12 = array3;
        final int n11 = 0;
        array12[n11] ^= this.wKey[116];
        final int[] array13 = array3;
        final int n12 = 1;
        array13[n12] ^= this.wKey[117];
        final int[] array14 = array3;
        final int n13 = 2;
        array14[n13] ^= this.wKey[118];
        final int[] array15 = array3;
        final int n14 = 3;
        array15[n14] ^= this.wKey[119];
        this.inverseLT(array3);
        this.ib4(array3, array3[0], array3[1], array3[2], array3[3]);
        final int[] array16 = array3;
        final int n15 = 0;
        array16[n15] ^= this.wKey[112];
        final int[] array17 = array3;
        final int n16 = 1;
        array17[n16] ^= this.wKey[113];
        final int[] array18 = array3;
        final int n17 = 2;
        array18[n17] ^= this.wKey[114];
        final int[] array19 = array3;
        final int n18 = 3;
        array19[n18] ^= this.wKey[115];
        this.inverseLT(array3);
        this.ib3(array3, array3[0], array3[1], array3[2], array3[3]);
        final int[] array20 = array3;
        final int n19 = 0;
        array20[n19] ^= this.wKey[108];
        final int[] array21 = array3;
        final int n20 = 1;
        array21[n20] ^= this.wKey[109];
        final int[] array22 = array3;
        final int n21 = 2;
        array22[n21] ^= this.wKey[110];
        final int[] array23 = array3;
        final int n22 = 3;
        array23[n22] ^= this.wKey[111];
        this.inverseLT(array3);
        this.ib2(array3, array3[0], array3[1], array3[2], array3[3]);
        final int[] array24 = array3;
        final int n23 = 0;
        array24[n23] ^= this.wKey[104];
        final int[] array25 = array3;
        final int n24 = 1;
        array25[n24] ^= this.wKey[105];
        final int[] array26 = array3;
        final int n25 = 2;
        array26[n25] ^= this.wKey[106];
        final int[] array27 = array3;
        final int n26 = 3;
        array27[n26] ^= this.wKey[107];
        this.inverseLT(array3);
        this.ib1(array3, array3[0], array3[1], array3[2], array3[3]);
        final int[] array28 = array3;
        final int n27 = 0;
        array28[n27] ^= this.wKey[100];
        final int[] array29 = array3;
        final int n28 = 1;
        array29[n28] ^= this.wKey[101];
        final int[] array30 = array3;
        final int n29 = 2;
        array30[n29] ^= this.wKey[102];
        final int[] array31 = array3;
        final int n30 = 3;
        array31[n30] ^= this.wKey[103];
        this.inverseLT(array3);
        this.ib0(array3, array3[0], array3[1], array3[2], array3[3]);
        final int[] array32 = array3;
        final int n31 = 0;
        array32[n31] ^= this.wKey[96];
        final int[] array33 = array3;
        final int n32 = 1;
        array33[n32] ^= this.wKey[97];
        final int[] array34 = array3;
        final int n33 = 2;
        array34[n33] ^= this.wKey[98];
        final int[] array35 = array3;
        final int n34 = 3;
        array35[n34] ^= this.wKey[99];
        this.inverseLT(array3);
        this.ib7(array3, array3[0], array3[1], array3[2], array3[3]);
        final int[] array36 = array3;
        final int n35 = 0;
        array36[n35] ^= this.wKey[92];
        final int[] array37 = array3;
        final int n36 = 1;
        array37[n36] ^= this.wKey[93];
        final int[] array38 = array3;
        final int n37 = 2;
        array38[n37] ^= this.wKey[94];
        final int[] array39 = array3;
        final int n38 = 3;
        array39[n38] ^= this.wKey[95];
        this.inverseLT(array3);
        this.ib6(array3, array3[0], array3[1], array3[2], array3[3]);
        final int[] array40 = array3;
        final int n39 = 0;
        array40[n39] ^= this.wKey[88];
        final int[] array41 = array3;
        final int n40 = 1;
        array41[n40] ^= this.wKey[89];
        final int[] array42 = array3;
        final int n41 = 2;
        array42[n41] ^= this.wKey[90];
        final int[] array43 = array3;
        final int n42 = 3;
        array43[n42] ^= this.wKey[91];
        this.inverseLT(array3);
        this.ib5(array3, array3[0], array3[1], array3[2], array3[3]);
        final int[] array44 = array3;
        final int n43 = 0;
        array44[n43] ^= this.wKey[84];
        final int[] array45 = array3;
        final int n44 = 1;
        array45[n44] ^= this.wKey[85];
        final int[] array46 = array3;
        final int n45 = 2;
        array46[n45] ^= this.wKey[86];
        final int[] array47 = array3;
        final int n46 = 3;
        array47[n46] ^= this.wKey[87];
        this.inverseLT(array3);
        this.ib4(array3, array3[0], array3[1], array3[2], array3[3]);
        final int[] array48 = array3;
        final int n47 = 0;
        array48[n47] ^= this.wKey[80];
        final int[] array49 = array3;
        final int n48 = 1;
        array49[n48] ^= this.wKey[81];
        final int[] array50 = array3;
        final int n49 = 2;
        array50[n49] ^= this.wKey[82];
        final int[] array51 = array3;
        final int n50 = 3;
        array51[n50] ^= this.wKey[83];
        this.inverseLT(array3);
        this.ib3(array3, array3[0], array3[1], array3[2], array3[3]);
        final int[] array52 = array3;
        final int n51 = 0;
        array52[n51] ^= this.wKey[76];
        final int[] array53 = array3;
        final int n52 = 1;
        array53[n52] ^= this.wKey[77];
        final int[] array54 = array3;
        final int n53 = 2;
        array54[n53] ^= this.wKey[78];
        final int[] array55 = array3;
        final int n54 = 3;
        array55[n54] ^= this.wKey[79];
        this.inverseLT(array3);
        this.ib2(array3, array3[0], array3[1], array3[2], array3[3]);
        final int[] array56 = array3;
        final int n55 = 0;
        array56[n55] ^= this.wKey[72];
        final int[] array57 = array3;
        final int n56 = 1;
        array57[n56] ^= this.wKey[73];
        final int[] array58 = array3;
        final int n57 = 2;
        array58[n57] ^= this.wKey[74];
        final int[] array59 = array3;
        final int n58 = 3;
        array59[n58] ^= this.wKey[75];
        this.inverseLT(array3);
        this.ib1(array3, array3[0], array3[1], array3[2], array3[3]);
        final int[] array60 = array3;
        final int n59 = 0;
        array60[n59] ^= this.wKey[68];
        final int[] array61 = array3;
        final int n60 = 1;
        array61[n60] ^= this.wKey[69];
        final int[] array62 = array3;
        final int n61 = 2;
        array62[n61] ^= this.wKey[70];
        final int[] array63 = array3;
        final int n62 = 3;
        array63[n62] ^= this.wKey[71];
        this.inverseLT(array3);
        this.ib0(array3, array3[0], array3[1], array3[2], array3[3]);
        final int[] array64 = array3;
        final int n63 = 0;
        array64[n63] ^= this.wKey[64];
        final int[] array65 = array3;
        final int n64 = 1;
        array65[n64] ^= this.wKey[65];
        final int[] array66 = array3;
        final int n65 = 2;
        array66[n65] ^= this.wKey[66];
        final int[] array67 = array3;
        final int n66 = 3;
        array67[n66] ^= this.wKey[67];
        this.inverseLT(array3);
        this.ib7(array3, array3[0], array3[1], array3[2], array3[3]);
        final int[] array68 = array3;
        final int n67 = 0;
        array68[n67] ^= this.wKey[60];
        final int[] array69 = array3;
        final int n68 = 1;
        array69[n68] ^= this.wKey[61];
        final int[] array70 = array3;
        final int n69 = 2;
        array70[n69] ^= this.wKey[62];
        final int[] array71 = array3;
        final int n70 = 3;
        array71[n70] ^= this.wKey[63];
        this.inverseLT(array3);
        this.ib6(array3, array3[0], array3[1], array3[2], array3[3]);
        final int[] array72 = array3;
        final int n71 = 0;
        array72[n71] ^= this.wKey[56];
        final int[] array73 = array3;
        final int n72 = 1;
        array73[n72] ^= this.wKey[57];
        final int[] array74 = array3;
        final int n73 = 2;
        array74[n73] ^= this.wKey[58];
        final int[] array75 = array3;
        final int n74 = 3;
        array75[n74] ^= this.wKey[59];
        this.inverseLT(array3);
        this.ib5(array3, array3[0], array3[1], array3[2], array3[3]);
        final int[] array76 = array3;
        final int n75 = 0;
        array76[n75] ^= this.wKey[52];
        final int[] array77 = array3;
        final int n76 = 1;
        array77[n76] ^= this.wKey[53];
        final int[] array78 = array3;
        final int n77 = 2;
        array78[n77] ^= this.wKey[54];
        final int[] array79 = array3;
        final int n78 = 3;
        array79[n78] ^= this.wKey[55];
        this.inverseLT(array3);
        this.ib4(array3, array3[0], array3[1], array3[2], array3[3]);
        final int[] array80 = array3;
        final int n79 = 0;
        array80[n79] ^= this.wKey[48];
        final int[] array81 = array3;
        final int n80 = 1;
        array81[n80] ^= this.wKey[49];
        final int[] array82 = array3;
        final int n81 = 2;
        array82[n81] ^= this.wKey[50];
        final int[] array83 = array3;
        final int n82 = 3;
        array83[n82] ^= this.wKey[51];
        this.inverseLT(array3);
        this.ib3(array3, array3[0], array3[1], array3[2], array3[3]);
        final int[] array84 = array3;
        final int n83 = 0;
        array84[n83] ^= this.wKey[44];
        final int[] array85 = array3;
        final int n84 = 1;
        array85[n84] ^= this.wKey[45];
        final int[] array86 = array3;
        final int n85 = 2;
        array86[n85] ^= this.wKey[46];
        final int[] array87 = array3;
        final int n86 = 3;
        array87[n86] ^= this.wKey[47];
        this.inverseLT(array3);
        this.ib2(array3, array3[0], array3[1], array3[2], array3[3]);
        final int[] array88 = array3;
        final int n87 = 0;
        array88[n87] ^= this.wKey[40];
        final int[] array89 = array3;
        final int n88 = 1;
        array89[n88] ^= this.wKey[41];
        final int[] array90 = array3;
        final int n89 = 2;
        array90[n89] ^= this.wKey[42];
        final int[] array91 = array3;
        final int n90 = 3;
        array91[n90] ^= this.wKey[43];
        this.inverseLT(array3);
        this.ib1(array3, array3[0], array3[1], array3[2], array3[3]);
        final int[] array92 = array3;
        final int n91 = 0;
        array92[n91] ^= this.wKey[36];
        final int[] array93 = array3;
        final int n92 = 1;
        array93[n92] ^= this.wKey[37];
        final int[] array94 = array3;
        final int n93 = 2;
        array94[n93] ^= this.wKey[38];
        final int[] array95 = array3;
        final int n94 = 3;
        array95[n94] ^= this.wKey[39];
        this.inverseLT(array3);
        this.ib0(array3, array3[0], array3[1], array3[2], array3[3]);
        final int[] array96 = array3;
        final int n95 = 0;
        array96[n95] ^= this.wKey[32];
        final int[] array97 = array3;
        final int n96 = 1;
        array97[n96] ^= this.wKey[33];
        final int[] array98 = array3;
        final int n97 = 2;
        array98[n97] ^= this.wKey[34];
        final int[] array99 = array3;
        final int n98 = 3;
        array99[n98] ^= this.wKey[35];
        this.inverseLT(array3);
        this.ib7(array3, array3[0], array3[1], array3[2], array3[3]);
        final int[] array100 = array3;
        final int n99 = 0;
        array100[n99] ^= this.wKey[28];
        final int[] array101 = array3;
        final int n100 = 1;
        array101[n100] ^= this.wKey[29];
        final int[] array102 = array3;
        final int n101 = 2;
        array102[n101] ^= this.wKey[30];
        final int[] array103 = array3;
        final int n102 = 3;
        array103[n102] ^= this.wKey[31];
        this.inverseLT(array3);
        this.ib6(array3, array3[0], array3[1], array3[2], array3[3]);
        final int[] array104 = array3;
        final int n103 = 0;
        array104[n103] ^= this.wKey[24];
        final int[] array105 = array3;
        final int n104 = 1;
        array105[n104] ^= this.wKey[25];
        final int[] array106 = array3;
        final int n105 = 2;
        array106[n105] ^= this.wKey[26];
        final int[] array107 = array3;
        final int n106 = 3;
        array107[n106] ^= this.wKey[27];
        this.inverseLT(array3);
        this.ib5(array3, array3[0], array3[1], array3[2], array3[3]);
        final int[] array108 = array3;
        final int n107 = 0;
        array108[n107] ^= this.wKey[20];
        final int[] array109 = array3;
        final int n108 = 1;
        array109[n108] ^= this.wKey[21];
        final int[] array110 = array3;
        final int n109 = 2;
        array110[n109] ^= this.wKey[22];
        final int[] array111 = array3;
        final int n110 = 3;
        array111[n110] ^= this.wKey[23];
        this.inverseLT(array3);
        this.ib4(array3, array3[0], array3[1], array3[2], array3[3]);
        final int[] array112 = array3;
        final int n111 = 0;
        array112[n111] ^= this.wKey[16];
        final int[] array113 = array3;
        final int n112 = 1;
        array113[n112] ^= this.wKey[17];
        final int[] array114 = array3;
        final int n113 = 2;
        array114[n113] ^= this.wKey[18];
        final int[] array115 = array3;
        final int n114 = 3;
        array115[n114] ^= this.wKey[19];
        this.inverseLT(array3);
        this.ib3(array3, array3[0], array3[1], array3[2], array3[3]);
        final int[] array116 = array3;
        final int n115 = 0;
        array116[n115] ^= this.wKey[12];
        final int[] array117 = array3;
        final int n116 = 1;
        array117[n116] ^= this.wKey[13];
        final int[] array118 = array3;
        final int n117 = 2;
        array118[n117] ^= this.wKey[14];
        final int[] array119 = array3;
        final int n118 = 3;
        array119[n118] ^= this.wKey[15];
        this.inverseLT(array3);
        this.ib2(array3, array3[0], array3[1], array3[2], array3[3]);
        final int[] array120 = array3;
        final int n119 = 0;
        array120[n119] ^= this.wKey[8];
        final int[] array121 = array3;
        final int n120 = 1;
        array121[n120] ^= this.wKey[9];
        final int[] array122 = array3;
        final int n121 = 2;
        array122[n121] ^= this.wKey[10];
        final int[] array123 = array3;
        final int n122 = 3;
        array123[n122] ^= this.wKey[11];
        this.inverseLT(array3);
        this.ib1(array3, array3[0], array3[1], array3[2], array3[3]);
        final int[] array124 = array3;
        final int n123 = 0;
        array124[n123] ^= this.wKey[4];
        final int[] array125 = array3;
        final int n124 = 1;
        array125[n124] ^= this.wKey[5];
        final int[] array126 = array3;
        final int n125 = 2;
        array126[n125] ^= this.wKey[6];
        final int[] array127 = array3;
        final int n126 = 3;
        array127[n126] ^= this.wKey[7];
        this.inverseLT(array3);
        this.ib0(array3, array3[0], array3[1], array3[2], array3[3]);
        Pack.intToLittleEndian(array3[0] ^ this.wKey[0], array2, n2);
        Pack.intToLittleEndian(array3[1] ^ this.wKey[1], array2, n2 + 4);
        Pack.intToLittleEndian(array3[2] ^ this.wKey[2], array2, n2 + 8);
        Pack.intToLittleEndian(array3[3] ^ this.wKey[3], array2, n2 + 12);
    }
}
