255 lines
5.3 KiB
Java
255 lines
5.3 KiB
Java
import net.runelite.mapping.Export;
|
|
import net.runelite.mapping.Implements;
|
|
import net.runelite.mapping.ObfuscatedGetter;
|
|
import net.runelite.mapping.ObfuscatedName;
|
|
import net.runelite.mapping.ObfuscatedSignature;
|
|
|
|
@ObfuscatedName("lv")
|
|
@Implements("IsaacCipher")
|
|
public final class IsaacCipher {
|
|
@ObfuscatedName("p")
|
|
@ObfuscatedGetter(
|
|
intValue = -568134249
|
|
)
|
|
@Export("valuesRemaining")
|
|
int valuesRemaining;
|
|
@ObfuscatedName("k")
|
|
@Export("results")
|
|
int[] results;
|
|
@ObfuscatedName("l")
|
|
@Export("mm")
|
|
int[] mm;
|
|
@ObfuscatedName("b")
|
|
@ObfuscatedGetter(
|
|
intValue = 1494247529
|
|
)
|
|
@Export("aa")
|
|
int aa;
|
|
@ObfuscatedName("i")
|
|
@ObfuscatedGetter(
|
|
intValue = 2002844889
|
|
)
|
|
@Export("bb")
|
|
int bb;
|
|
@ObfuscatedName("c")
|
|
@ObfuscatedGetter(
|
|
intValue = -917806503
|
|
)
|
|
@Export("cc")
|
|
int cc;
|
|
|
|
public IsaacCipher(int[] var1) {
|
|
this.mm = new int[256];
|
|
this.results = new int[256];
|
|
|
|
for (int var2 = 0; var2 < var1.length; ++var2) {
|
|
this.results[var2] = var1[var2];
|
|
}
|
|
|
|
this.method6247();
|
|
}
|
|
|
|
@ObfuscatedName("q")
|
|
@ObfuscatedSignature(
|
|
signature = "(B)I",
|
|
garbageValue = "15"
|
|
)
|
|
@Export("nextInt")
|
|
public final int nextInt() {
|
|
if (this.valuesRemaining == 0) {
|
|
this.generateMoreResults();
|
|
this.valuesRemaining = 256;
|
|
}
|
|
|
|
return this.results[--this.valuesRemaining];
|
|
}
|
|
|
|
@ObfuscatedName("w")
|
|
@ObfuscatedSignature(
|
|
signature = "(B)I",
|
|
garbageValue = "7"
|
|
)
|
|
public final int method6254() {
|
|
if (this.valuesRemaining == 0) {
|
|
this.generateMoreResults();
|
|
this.valuesRemaining = 256;
|
|
}
|
|
|
|
return this.results[this.valuesRemaining - 1];
|
|
}
|
|
|
|
@ObfuscatedName("e")
|
|
@ObfuscatedSignature(
|
|
signature = "(I)V",
|
|
garbageValue = "-1888611260"
|
|
)
|
|
@Export("generateMoreResults")
|
|
final void generateMoreResults() {
|
|
this.bb += ++this.cc;
|
|
|
|
for (int var1 = 0; var1 < 256; ++var1) {
|
|
int var2 = this.mm[var1];
|
|
if ((var1 & 2) == 0) {
|
|
if ((var1 & 1) == 0) {
|
|
this.aa ^= this.aa << 13;
|
|
} else {
|
|
this.aa ^= this.aa >>> 6;
|
|
}
|
|
} else if ((var1 & 1) == 0) {
|
|
this.aa ^= this.aa << 2;
|
|
} else {
|
|
this.aa ^= this.aa >>> 16;
|
|
}
|
|
|
|
this.aa += this.mm[128 + var1 & 255];
|
|
int var3;
|
|
this.mm[var1] = var3 = this.mm[(var2 & 1020) >> 2] + this.aa + this.bb;
|
|
this.results[var1] = this.bb = this.mm[(var3 >> 8 & 1020) >> 2] + var2;
|
|
}
|
|
|
|
}
|
|
|
|
@ObfuscatedName("p")
|
|
@ObfuscatedSignature(
|
|
signature = "(B)V",
|
|
garbageValue = "2"
|
|
)
|
|
final void method6247() {
|
|
int var9 = -1640531527;
|
|
int var8 = -1640531527;
|
|
int var7 = -1640531527;
|
|
int var6 = -1640531527;
|
|
int var5 = -1640531527;
|
|
int var4 = -1640531527;
|
|
int var3 = -1640531527;
|
|
int var2 = -1640531527;
|
|
|
|
int var1;
|
|
for (var1 = 0; var1 < 4; ++var1) {
|
|
var2 ^= var3 << 11;
|
|
var5 += var2;
|
|
var3 += var4;
|
|
var3 ^= var4 >>> 2;
|
|
var6 += var3;
|
|
var4 += var5;
|
|
var4 ^= var5 << 8;
|
|
var7 += var4;
|
|
var5 += var6;
|
|
var5 ^= var6 >>> 16;
|
|
var8 += var5;
|
|
var6 += var7;
|
|
var6 ^= var7 << 10;
|
|
var9 += var6;
|
|
var7 += var8;
|
|
var7 ^= var8 >>> 4;
|
|
var2 += var7;
|
|
var8 += var9;
|
|
var8 ^= var9 << 8;
|
|
var3 += var8;
|
|
var9 += var2;
|
|
var9 ^= var2 >>> 9;
|
|
var4 += var9;
|
|
var2 += var3;
|
|
}
|
|
|
|
for (var1 = 0; var1 < 256; var1 += 8) {
|
|
var2 += this.results[var1];
|
|
var3 += this.results[var1 + 1];
|
|
var4 += this.results[var1 + 2];
|
|
var5 += this.results[var1 + 3];
|
|
var6 += this.results[var1 + 4];
|
|
var7 += this.results[var1 + 5];
|
|
var8 += this.results[var1 + 6];
|
|
var9 += this.results[var1 + 7];
|
|
var2 ^= var3 << 11;
|
|
var5 += var2;
|
|
var3 += var4;
|
|
var3 ^= var4 >>> 2;
|
|
var6 += var3;
|
|
var4 += var5;
|
|
var4 ^= var5 << 8;
|
|
var7 += var4;
|
|
var5 += var6;
|
|
var5 ^= var6 >>> 16;
|
|
var8 += var5;
|
|
var6 += var7;
|
|
var6 ^= var7 << 10;
|
|
var9 += var6;
|
|
var7 += var8;
|
|
var7 ^= var8 >>> 4;
|
|
var2 += var7;
|
|
var8 += var9;
|
|
var8 ^= var9 << 8;
|
|
var3 += var8;
|
|
var9 += var2;
|
|
var9 ^= var2 >>> 9;
|
|
var4 += var9;
|
|
var2 += var3;
|
|
this.mm[var1] = var2;
|
|
this.mm[var1 + 1] = var3;
|
|
this.mm[var1 + 2] = var4;
|
|
this.mm[var1 + 3] = var5;
|
|
this.mm[var1 + 4] = var6;
|
|
this.mm[var1 + 5] = var7;
|
|
this.mm[var1 + 6] = var8;
|
|
this.mm[var1 + 7] = var9;
|
|
}
|
|
|
|
for (var1 = 0; var1 < 256; var1 += 8) {
|
|
var2 += this.mm[var1];
|
|
var3 += this.mm[var1 + 1];
|
|
var4 += this.mm[var1 + 2];
|
|
var5 += this.mm[var1 + 3];
|
|
var6 += this.mm[var1 + 4];
|
|
var7 += this.mm[var1 + 5];
|
|
var8 += this.mm[var1 + 6];
|
|
var9 += this.mm[var1 + 7];
|
|
var2 ^= var3 << 11;
|
|
var5 += var2;
|
|
var3 += var4;
|
|
var3 ^= var4 >>> 2;
|
|
var6 += var3;
|
|
var4 += var5;
|
|
var4 ^= var5 << 8;
|
|
var7 += var4;
|
|
var5 += var6;
|
|
var5 ^= var6 >>> 16;
|
|
var8 += var5;
|
|
var6 += var7;
|
|
var6 ^= var7 << 10;
|
|
var9 += var6;
|
|
var7 += var8;
|
|
var7 ^= var8 >>> 4;
|
|
var2 += var7;
|
|
var8 += var9;
|
|
var8 ^= var9 << 8;
|
|
var3 += var8;
|
|
var9 += var2;
|
|
var9 ^= var2 >>> 9;
|
|
var4 += var9;
|
|
var2 += var3;
|
|
this.mm[var1] = var2;
|
|
this.mm[var1 + 1] = var3;
|
|
this.mm[var1 + 2] = var4;
|
|
this.mm[var1 + 3] = var5;
|
|
this.mm[var1 + 4] = var6;
|
|
this.mm[var1 + 5] = var7;
|
|
this.mm[var1 + 6] = var8;
|
|
this.mm[var1 + 7] = var9;
|
|
}
|
|
|
|
this.generateMoreResults();
|
|
this.valuesRemaining = 256;
|
|
}
|
|
|
|
@ObfuscatedName("q")
|
|
@ObfuscatedSignature(
|
|
signature = "(I)[Lht;",
|
|
garbageValue = "547339899"
|
|
)
|
|
@Export("values")
|
|
static ServerBuild[] values() {
|
|
return new ServerBuild[]{ServerBuild.RC, ServerBuild.LIVE, ServerBuild.WIP, ServerBuild.BUILDLIVE};
|
|
}
|
|
}
|