rendered paste bodypublic class cypher {
private int cvar1;
private int cvar2;
private int cvar3;
private int offset;
private int[] variants = new int[256];
private int[] cyphers = new int[256];
public cypher(int[] is) {
for (int i = 0; is.length > i; i++)
variants[i] = is[i];
init();
}
private void init() {
anInt651++;
int byte2;
int byte3;
int byte4;
int byte5;
int byte6;
int byte7;
int byte8;
int byte1 = byte2 = byte3 = byte4 = byte5 = byte6 = byte7 = byte8 = -1640531527;
for (int i = 0; i < 4; i++) {
byte1 ^= byte2 << 11;
byte4 += byte1;
byte2 += byte3;
byte2 ^= byte3 >>> 2;
byte5 += byte2;
byte3 += byte4;
byte3 ^= byte4 << 8;
byte6 += byte3;
byte4 += byte5;
byte4 ^= byte5 >>> 16;
byte5 += byte6;
byte7 += byte4;
byte5 ^= byte6 << 10;
byte8 += byte5;
byte6 += byte7;
byte6 ^= byte7 >>> 4;
byte1 += byte6;
byte7 += byte8;
byte7 ^= byte8 << 8;
byte8 += byte1;
byte2 += byte7;
byte8 ^= byte1 >>> 9;
byte3 += byte8;
byte1 += byte2;
}
for (int i = 0; i < 256; i += 8) {
byte1 += variants[i];
byte2 += variants[i + 1];
byte3 += variants[i + 2];
byte4 += variants[i + 3];
byte5 += variants[i + 4];
byte6 += variants[i + 5];
byte7 += variants[i + 6];
byte8 += variants[i + 7];
byte1 ^= byte2 << 11;
byte2 += byte3;
byte4 += byte1;
byte2 ^= byte3 >>> 2;
byte3 += byte4;
byte3 ^= byte4 << 8;
byte6 += byte3;
byte5 += byte2;
byte4 += byte5;
byte4 ^= byte5 >>> 16;
byte7 += byte4;
byte5 += byte6;
byte5 ^= byte6 << 10;
byte8 += byte5;
byte6 += byte7;
byte6 ^= byte7 >>> 4;
byte7 += byte8;
byte7 ^= byte8 << 8;
byte1 += byte6;
byte2 += byte7;
byte8 += byte1;
byte8 ^= byte1 >>> 9;
byte3 += byte8;
byte1 += byte2;
cyphers[i] = byte1;
cyphers[i + 1] = byte2;
cyphers[i + 2] = byte3;
cyphers[i + 3] = byte4;
cyphers[i + 4] = byte5;
cyphers[i + 5] = byte6;
cyphers[i + 6] = byte7;
cyphers[i + 7] = byte8;
}
for (int i = 0; i < 256; i += 8) {
byte1 += cyphers[i];
byte2 += cyphers[i + 1];
byte3 += cyphers[i + 2];
byte4 += cyphers[i + 3];
byte5 += cyphers[i + 4];
byte6 += cyphers[i + 5];
byte7 += cyphers[i + 6];
byte8 += cyphers[i + 7];
byte1 ^= byte2 << 11;
byte2 += byte3;
byte4 += byte1;
byte2 ^= byte3 >>> 2;
byte3 += byte4;
byte3 ^= byte4 << 8;
byte5 += byte2;
byte4 += byte5;
byte4 ^= byte5 >>> 16;
byte7 += byte4;
byte6 += byte3;
byte5 += byte6;
byte5 ^= byte6 << 10;
byte8 += byte5;
byte6 += byte7;
byte6 ^= byte7 >>> 4;
byte7 += byte8;
byte7 ^= byte8 << 8;
byte1 += byte6;
byte2 += byte7;
byte8 += byte1;
byte8 ^= byte1 >>> 9;
byte1 += byte2;
byte3 += byte8;
cyphers[i] = byte1;
cyphers[i + 1] = byte2;
cyphers[i + 2] = byte3;
cyphers[i + 3] = byte4;
cyphers[i + 4] = byte5;
cyphers[i + 5] = byte6;
cyphers[i + 6] = byte7;
cyphers[i + 7] = byte8;
}
next();
offset = 256;
}
public int getkey() {
anInt661++;
if (offset-- == 0) {
next();
offset = 255;
}
return variants[offset];
}
private void next() {
anInt647++;
cvar2 += ++cvar3;
for (int i = 0; i < 256; i++) {
int variant = cyphers[i];
if ((i & 0x2) == 0) {
if ((i & 0x1) == 0)
cvar1 ^= cvar1 << 13;
else
cvar1 ^= cvar1 >>> 6;
} else {
if ((i & 0x1) == 0)
cvar1 ^= cvar1 << 2;
else
cvar1 ^= cvar1 >>> 16;
}
cvar1 += cyphers[0xff & i + 128];
int cypher;
cyphers[i] = cypher = cvar1 + cyphers[(variant >> 2) & 0xff] + cvar2;
variants[i] = cvar2 = cyphers[(cypher >> 8 >> 2) & 0xff] + variant;
}
}
}