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("kj") @Implements("PacketBuffer") public class PacketBuffer extends Buffer { @ObfuscatedName("f") static final int[] field3701; @ObfuscatedName("u") @ObfuscatedSignature( signature = "Lld;" ) @Export("isaacCipher") IsaacCipher isaacCipher; @ObfuscatedName("b") @ObfuscatedGetter( intValue = 477467837 ) @Export("bitIndex") int bitIndex; static { field3701 = new int[]{0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535, 131071, 262143, 524287, 1048575, 2097151, 4194303, 8388607, 16777215, 33554431, 67108863, 134217727, 268435455, 536870911, 1073741823, Integer.MAX_VALUE, -1}; } public PacketBuffer(int var1) { super(var1); } @ObfuscatedName("u") @ObfuscatedSignature( signature = "([II)V", garbageValue = "-1040500949" ) @Export("newIsaacCipher") public void newIsaacCipher(int[] var1) { this.isaacCipher = new IsaacCipher(var1); } @ObfuscatedName("f") @ObfuscatedSignature( signature = "(Lld;I)V", garbageValue = "-1849401074" ) @Export("setIsaacCipher") public void setIsaacCipher(IsaacCipher var1) { this.isaacCipher = var1; } @ObfuscatedName("b") @ObfuscatedSignature( signature = "(II)V", garbageValue = "230891954" ) @Export("writeByteIsaac") public void writeByteIsaac(int var1) { super.array[++super.offset - 1] = (byte)(var1 + this.isaacCipher.nextInt()); } @ObfuscatedName("g") @ObfuscatedSignature( signature = "(I)I", garbageValue = "1535940248" ) @Export("readByteIsaac") public int readByteIsaac() { return super.array[++super.offset - 1] - this.isaacCipher.nextInt() & 255; } @ObfuscatedName("z") @ObfuscatedSignature( signature = "(I)Z", garbageValue = "-1671006897" ) public boolean method5581() { int var1 = super.array[super.offset] - this.isaacCipher.method6331() & 255; return var1 >= 128; } @ObfuscatedName("p") @ObfuscatedSignature( signature = "(S)I", garbageValue = "8240" ) @Export("readSmartByteShortIsaac") public int readSmartByteShortIsaac() { int var1 = super.array[++super.offset - 1] - this.isaacCipher.nextInt() & 255; return var1 < 128 ? var1 : (var1 - 128 << 8) + (super.array[++super.offset - 1] - this.isaacCipher.nextInt() & 255); } @ObfuscatedName("h") @ObfuscatedSignature( signature = "([BIII)V", garbageValue = "-739226773" ) public void method5551(byte[] var1, int var2, int var3) { for (int var4 = 0; var4 < var3; ++var4) { var1[var4 + var2] = (byte)(super.array[++super.offset - 1] - this.isaacCipher.nextInt()); } } @ObfuscatedName("y") @ObfuscatedSignature( signature = "(I)V", garbageValue = "-1010448885" ) @Export("importIndex") public void importIndex() { this.bitIndex = super.offset * 8; } @ObfuscatedName("w") @ObfuscatedSignature( signature = "(II)I", garbageValue = "-1257473008" ) @Export("readBits") public int readBits(int var1) { int var2 = this.bitIndex >> 3; int var3 = 8 - (this.bitIndex & 7); int var4 = 0; for (this.bitIndex += var1; var1 > var3; var3 = 8) { var4 += (super.array[var2++] & field3701[var3]) << var1 - var3; var1 -= var3; } if (var3 == var1) { var4 += super.array[var2] & field3701[var3]; } else { var4 += super.array[var2] >> var3 - var1 & field3701[var1]; } return var4; } @ObfuscatedName("i") @ObfuscatedSignature( signature = "(I)V", garbageValue = "-1450699347" ) @Export("exportIndex") public void exportIndex() { super.offset = (this.bitIndex + 7) / 8; } @ObfuscatedName("k") @ObfuscatedSignature( signature = "(II)I", garbageValue = "1950209579" ) @Export("bitsRemaining") public int bitsRemaining(int var1) { return var1 * 8 - this.bitIndex; } @ObfuscatedName("ko") @ObfuscatedSignature( signature = "(Ljava/lang/String;ZI)Ljava/lang/String;", garbageValue = "-117055056" ) static String method5582(String var0, boolean var1) { String var2 = var1 ? "https://" : "http://"; if (Client.gameBuild == 1) { var0 = var0 + "-wtrc"; } else if (Client.gameBuild == 2) { var0 = var0 + "-wtqa"; } else if (Client.gameBuild == 3) { var0 = var0 + "-wtwip"; } else if (Client.gameBuild == 5) { var0 = var0 + "-wti"; } else if (Client.gameBuild == 4) { var0 = "local"; } String var3 = ""; if (WorldMapManager.field327 != null) { var3 = "/p=" + WorldMapManager.field327; } String var4 = "runescape.com"; return var2 + var0 + "." + var4 + "/l=" + VarbitDefinition.clientLanguage + "/a=" + class13.field91 + var3 + "/"; } }