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("oy") @Implements("IsaacCipher") public final class IsaacCipher { @ObfuscatedName("g") @ObfuscatedGetter( intValue = 1255372445 ) @Export("valuesRemaining") int valuesRemaining; @ObfuscatedName("l") @Export("results") int[] results; @ObfuscatedName("z") @Export("mm") int[] mm; @ObfuscatedName("t") @ObfuscatedGetter( intValue = -1713890931 ) @Export("aa") int aa; @ObfuscatedName("v") @ObfuscatedGetter( intValue = -113768935 ) @Export("bb") int bb; @ObfuscatedName("b") @ObfuscatedGetter( intValue = -1917238977 ) @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) { // L: 17 this.results[var2] = var1[var2]; // L: 18 } this.method7017(); // L: 20 } @ObfuscatedName("h") @ObfuscatedSignature( descriptor = "(S)I", garbageValue = "-4327" ) @Export("nextInt") public final int nextInt() { if (this.valuesRemaining == 0) { // L: 24 this.generateMoreResults(); this.valuesRemaining = 256; // L: 26 } return this.results[--this.valuesRemaining]; // L: 28 } @ObfuscatedName("c") @ObfuscatedSignature( descriptor = "(I)I", garbageValue = "-1246307592" ) public final int method7019() { if (this.valuesRemaining == 0) { // L: 32 this.generateMoreResults(); // L: 33 this.valuesRemaining = 256; // L: 34 } return this.results[this.valuesRemaining - 1]; // L: 36 } @ObfuscatedName("o") @ObfuscatedSignature( descriptor = "(I)V", garbageValue = "-477539920" ) @Export("generateMoreResults") final void generateMoreResults() { this.bb += ++this.cc; // L: 43 for (int var1 = 0; var1 < 256; ++var1) { // L: 44 int var2 = this.mm[var1]; // L: 45 if ((var1 & 2) == 0) { // L: 46 if ((var1 & 1) == 0) { // L: 47 this.aa ^= this.aa << 13; } else { this.aa ^= this.aa >>> 6; // L: 48 } } else if ((var1 & 1) == 0) { // L: 51 this.aa ^= this.aa << 2; } else { this.aa ^= this.aa >>> 16; // L: 52 } this.aa += this.mm[128 + var1 & 255]; // L: 54 int var3; this.mm[var1] = var3 = this.mm[(var2 & 1020) >> 2] + this.aa + this.bb; // L: 55 this.results[var1] = this.bb = this.mm[(var3 >> 8 & 1020) >> 2] + var2; // L: 56 } } // L: 58 @ObfuscatedName("g") @ObfuscatedSignature( descriptor = "(B)V", garbageValue = "0" ) final void method7017() { int var9 = -1640531527; // L: 70 int var8 = -1640531527; // L: 71 int var7 = -1640531527; // L: 72 int var6 = -1640531527; // L: 73 int var5 = -1640531527; // L: 74 int var4 = -1640531527; // L: 75 int var3 = -1640531527; // L: 76 int var2 = -1640531527; // L: 77 int var1; for (var1 = 0; var1 < 4; ++var1) { // L: 78 var2 ^= var3 << 11; // L: 79 var5 += var2; // L: 80 var3 += var4; // L: 81 var3 ^= var4 >>> 2; // L: 82 var6 += var3; // L: 83 var4 += var5; // L: 84 var4 ^= var5 << 8; // L: 85 var7 += var4; // L: 86 var5 += var6; // L: 87 var5 ^= var6 >>> 16; // L: 88 var8 += var5; // L: 89 var6 += var7; // L: 90 var6 ^= var7 << 10; // L: 91 var9 += var6; // L: 92 var7 += var8; // L: 93 var7 ^= var8 >>> 4; // L: 94 var2 += var7; // L: 95 var8 += var9; // L: 96 var8 ^= var9 << 8; // L: 97 var3 += var8; // L: 98 var9 += var2; // L: 99 var9 ^= var2 >>> 9; // L: 100 var4 += var9; // L: 101 var2 += var3; // L: 102 } for (var1 = 0; var1 < 256; var1 += 8) { // L: 104 var2 += this.results[var1]; // L: 105 var3 += this.results[var1 + 1]; // L: 106 var4 += this.results[var1 + 2]; // L: 107 var5 += this.results[var1 + 3]; // L: 108 var6 += this.results[var1 + 4]; // L: 109 var7 += this.results[var1 + 5]; // L: 110 var8 += this.results[var1 + 6]; // L: 111 var9 += this.results[var1 + 7]; // L: 112 var2 ^= var3 << 11; // L: 113 var5 += var2; // L: 114 var3 += var4; // L: 115 var3 ^= var4 >>> 2; // L: 116 var6 += var3; // L: 117 var4 += var5; // L: 118 var4 ^= var5 << 8; // L: 119 var7 += var4; // L: 120 var5 += var6; // L: 121 var5 ^= var6 >>> 16; // L: 122 var8 += var5; // L: 123 var6 += var7; // L: 124 var6 ^= var7 << 10; // L: 125 var9 += var6; // L: 126 var7 += var8; // L: 127 var7 ^= var8 >>> 4; // L: 128 var2 += var7; // L: 129 var8 += var9; // L: 130 var8 ^= var9 << 8; // L: 131 var3 += var8; // L: 132 var9 += var2; // L: 133 var9 ^= var2 >>> 9; // L: 134 var4 += var9; // L: 135 var2 += var3; // L: 136 this.mm[var1] = var2; // L: 137 this.mm[var1 + 1] = var3; // L: 138 this.mm[var1 + 2] = var4; // L: 139 this.mm[var1 + 3] = var5; // L: 140 this.mm[var1 + 4] = var6; // L: 141 this.mm[var1 + 5] = var7; // L: 142 this.mm[var1 + 6] = var8; // L: 143 this.mm[var1 + 7] = var9; // L: 144 } for (var1 = 0; var1 < 256; var1 += 8) { // L: 146 var2 += this.mm[var1]; // L: 147 var3 += this.mm[var1 + 1]; // L: 148 var4 += this.mm[var1 + 2]; // L: 149 var5 += this.mm[var1 + 3]; // L: 150 var6 += this.mm[var1 + 4]; // L: 151 var7 += this.mm[var1 + 5]; // L: 152 var8 += this.mm[var1 + 6]; // L: 153 var9 += this.mm[var1 + 7]; // L: 154 var2 ^= var3 << 11; // L: 155 var5 += var2; // L: 156 var3 += var4; // L: 157 var3 ^= var4 >>> 2; // L: 158 var6 += var3; // L: 159 var4 += var5; // L: 160 var4 ^= var5 << 8; // L: 161 var7 += var4; // L: 162 var5 += var6; // L: 163 var5 ^= var6 >>> 16; // L: 164 var8 += var5; // L: 165 var6 += var7; // L: 166 var6 ^= var7 << 10; // L: 167 var9 += var6; // L: 168 var7 += var8; // L: 169 var7 ^= var8 >>> 4; // L: 170 var2 += var7; // L: 171 var8 += var9; // L: 172 var8 ^= var9 << 8; // L: 173 var3 += var8; // L: 174 var9 += var2; // L: 175 var9 ^= var2 >>> 9; // L: 176 var4 += var9; // L: 177 var2 += var3; // L: 178 this.mm[var1] = var2; // L: 179 this.mm[var1 + 1] = var3; // L: 180 this.mm[var1 + 2] = var4; // L: 181 this.mm[var1 + 3] = var5; // L: 182 this.mm[var1 + 4] = var6; // L: 183 this.mm[var1 + 5] = var7; // L: 184 this.mm[var1 + 6] = var8; // L: 185 this.mm[var1 + 7] = var9; // L: 186 } this.generateMoreResults(); // L: 188 this.valuesRemaining = 256; // L: 189 } // L: 190 @ObfuscatedName("h") @ObfuscatedSignature( descriptor = "(Ljp;Ljp;IZB)Lgi;", garbageValue = "5" ) @Export("loadFrames") public static Frames loadFrames(AbstractArchive var0, AbstractArchive var1, int var2, boolean var3) { boolean var4 = true; // L: 11 int[] var5 = var0.getGroupFileIds(var2); // L: 12 for (int var6 = 0; var6 < var5.length; ++var6) { // L: 13 byte[] var7 = var0.getFile(var2, var5[var6]); // L: 14 if (var7 == null) { // L: 15 var4 = false; // L: 16 } else { int var8 = (var7[0] & 255) << 8 | var7[1] & 255; // L: 19 byte[] var9; if (var3) { // L: 21 var9 = var1.getFile(0, var8); } else { var9 = var1.getFile(var8, 0); // L: 22 } if (var9 == null) { // L: 23 var4 = false; } } } if (!var4) { // L: 25 return null; } else { try { return new Frames(var0, var1, var2, var3); // L: 27 } catch (Exception var11) { // L: 29 return null; // L: 30 } } } }