Skip to content

Instantly share code, notes, and snippets.

@t81lal
Last active August 29, 2015 14:26
Show Gist options
  • Save t81lal/ded2e44ce1541d834202 to your computer and use it in GitHub Desktop.
Save t81lal/ded2e44ce1541d834202 to your computer and use it in GitHub Desktop.
Buffer.java
import java.math.BigInteger;
public class Buffer extends Node {
public static di la;
public byte[] payload;
public int caret;
public static fe x;
public static int[] a = new int[256];
public Buffer(byte[] var1) {
this.payload = var1;
this.caret = 0;
}
public void write8(int var1) {
this.payload[++this.caret - 1] = (byte)var1;
}
public void write16(int var1) {
this.payload[++this.caret - 1] = (byte)(var1 >> 8);
this.payload[++this.caret - 1] = (byte)var1;
}
public void write24(int var1) {
this.payload[++this.caret - 1] = (byte)(var1 >> 16);
this.payload[++this.caret - 1] = (byte)(var1 >> 8);
this.payload[++this.caret - 1] = (byte)var1;
}
public void write32(int var1) {
this.payload[++this.caret - 1] = (byte)(var1 >> 24);
this.payload[++this.caret - 1] = (byte)(var1 >> 16);
this.payload[++this.caret - 1] = (byte)(var1 >> 8);
this.payload[++this.caret - 1] = (byte)var1;
}
public void write40(long var1) {
this.payload[++this.caret - 1] = (byte)((int)(var1 >> 40));
this.payload[++this.caret - 1] = (byte)((int)(var1 >> 32));
this.payload[++this.caret - 1] = (byte)((int)(var1 >> 24));
this.payload[++this.caret - 1] = (byte)((int)(var1 >> 16));
this.payload[++this.caret - 1] = (byte)((int)(var1 >> 8));
this.payload[++this.caret - 1] = (byte)((int)var1);
}
public void write64(long var1) {
this.payload[++this.caret - 1] = (byte)((int)(var1 >> 56));
this.payload[++this.caret - 1] = (byte)((int)(var1 >> 48));
this.payload[++this.caret - 1] = (byte)((int)(var1 >> 40));
this.payload[++this.caret - 1] = (byte)((int)(var1 >> 32));
this.payload[++this.caret - 1] = (byte)((int)(var1 >> 24));
this.payload[++this.caret - 1] = (byte)((int)(var1 >> 16));
this.payload[++this.caret - 1] = (byte)((int)(var1 >> 8));
this.payload[++this.caret - 1] = (byte)((int)var1);
}
public void writeString(String var1) {
int var3 = var1.indexOf(0);
if(var3 >= 0) {
throw new IllegalArgumentException("");
} else {
int var10001 = this.caret;
int var10004 = var1.length();
int var10006 = this.caret * 1736753585;
int var10007 = 452054574;
this.caret = var10001 + em.a(var1, 0, var10004, this.payload, var10006);
this.payload[++this.caret - 1] = 0;
}
}
public void writeJagexString(String var1) {
int var3 = var1.indexOf(0);
if(var3 >= 0) {
throw new IllegalArgumentException("");
} else {
this.payload[++this.caret - 1] = 0;
int var10001 = this.caret;
int var10004 = var1.length();
int var10006 = this.caret * 1736753585;
int var10007 = -99292191;
this.caret = var10001 + em.a(var1, 0, var10004, this.payload, var10006);
this.payload[++this.caret - 1] = 0;
}
}
public void write32Weird(int var1) {
this.payload[this.caret - var1 - 4] = (byte)(var1 >> 24);
this.payload[this.caret - var1 - 3] = (byte)(var1 >> 16);
this.payload[this.caret - var1 - 2] = (byte)(var1 >> 8);
this.payload[this.caret - var1 - 1] = (byte)var1;
}
public void writeLE32(int var1) {
this.payload[++this.caret - 1] = (byte)var1;
this.payload[++this.caret - 1] = (byte)(var1 >> 8);
this.payload[++this.caret - 1] = (byte)(var1 >> 16);
this.payload[++this.caret - 1] = (byte)(var1 >> 24);
}
public void write8Weird(int var1) {
this.payload[this.caret - var1 - 1] = (byte)var1;
}
public void writeVarByte(int var1) {
int var10002;
if(var1 >= 0 && var1 < 128) {
var10002 = 66506222;
this.write8(var1);
} else if(var1 >= 0 && var1 < '\u8000') {
int var10001 = '\u8000' + var1;
var10002 = -994056750;
this.write16(var10001);
} else {
throw new IllegalArgumentException();
}
}
public int t() {
return this.payload[++this.caret - 1] & 255;
}
public byte s() {
return this.payload[++this.caret - 1];
}
public int p() {
this.caret += -2;
return (this.payload[this.caret - 1303963473] & 255) + ((this.payload[this.caret + 1687040350] & 255) << 8);
}
public int d() {
this.caret += -2;
int var2 = ((this.payload[this.caret + 1687040350] & 255) << 8) + (this.payload[this.caret - 1303963473] & 255);
if(var2 > 32767) {
var2 -= 65536;
}
return var2;
}
public int j() {
this.caret += -3;
return ((this.payload[this.caret + 383076877] & 255) << 16) + ((this.payload[this.caret + 1687040350] & 255) << 8) + (this.payload[this.caret - 1303963473] & 255);
}
public int k() {
this.caret += 4;
return ((this.payload[this.caret - 920886596] & 255) << 24) + ((this.payload[this.caret + 383076877] & 255) << 16) + ((this.payload[this.caret + 1687040350] & 255) << 8) + (this.payload[this.caret - 1303963473] & 255);
}
public long y() {
int var10001 = 1663370335;
long var2 = (long)this.k() & 4294967295L;
var10001 = 1033680270;
long var4 = (long)this.k() & 4294967295L;
return (var2 << 32) + var4;
}
public String c() {
if(0 != this.payload[this.caret]) {
int var10001 = 2146162697;
return this.g();
} else {
++this.caret;
return null;
}
}
public String g() {
int var2 = this.caret;
while(this.payload[++this.caret - 1] != 0) {
;
}
int var3 = this.caret - var2 - 1;
if(0 == var3) {
return "";
} else {
int var10003 = 1956190973;
return dr.w(this.payload, var2, var3);
}
}
public String av() {
byte var2 = this.payload[++this.caret - 1];
if(var2 != 0) {
throw new IllegalStateException("");
} else {
int var3 = this.caret;
while(this.payload[++this.caret - 1] != 0) {
;
}
int var4 = this.caret - var3 - 1;
if(0 == var4) {
return "";
} else {
int var10003 = 1579949569;
return dr.w(this.payload, var3, var4);
}
}
}
public void write16A(int var1) {
this.payload[++this.caret - 1] = (byte)(var1 >> 8);
this.payload[++this.caret - 1] = (byte)(var1 + 128);
}
public void aq(byte[] var1, int var2, int var3) {
for(int var5 = var2; var5 < var3 + var2; ++var5) {
var1[var5] = this.payload[++this.caret - 1];
}
}
public int an() {
int var2 = this.payload[this.caret] & 255;
int var10001;
if(var2 < 128) {
var10001 = -1080107775;
return this.t() - 64;
} else {
var10001 = -1883819555;
return this.p() - '\uc000';
}
}
public int ao() {
int var2 = this.payload[this.caret] & 255;
int var10001;
if(var2 < 128) {
var10001 = -1463464441;
return this.t();
} else {
var10001 = -1852904107;
return this.p() - '\u8000';
}
}
public int aj() {
int var10001;
if(this.payload[this.caret] < 0) {
var10001 = 1467270336;
return this.k() & Integer.MAX_VALUE;
} else {
var10001 = -2042181842;
return this.p();
}
}
public void ac(int[] var1) {
int var3 = this.caret / 8;
this.caret = 0;
for(int var4 = 0; var4 < var3; ++var4) {
int var10001 = 1858262864;
int var5 = this.k();
var10001 = 1098853352;
int var6 = this.k();
int var7 = 0;
int var8 = -1640531527;
for(int var9 = 32; var9-- > 0; var6 += var5 + (var5 << 4 ^ var5 >>> 5) ^ var7 + var1[var7 >>> 11 & 3]) {
var5 += var6 + (var6 << 4 ^ var6 >>> 5) ^ var7 + var1[var7 & 3];
var7 += var8;
}
this.caret -= 8;
int var10002 = -1830812006;
this.write32(var5);
var10002 = -1654836250;
this.write32(var6);
}
}
public void au(int[] var1, int var2, int var3) {
int var5 = this.caret;
this.caret = var2;
int var6 = (var3 - var2) / 8;
for(int var7 = 0; var7 < var6; ++var7) {
int var10001 = -807925816;
int var8 = this.k();
var10001 = 1796607336;
int var9 = this.k();
int var10 = 0;
int var11 = -1640531527;
for(int var12 = 32; var12-- > 0; var9 += (var8 << 4 ^ var8 >>> 5) + var8 ^ var1[var10 >>> 11 & 3] + var10) {
var8 += var9 + (var9 << 4 ^ var9 >>> 5) ^ var10 + var1[var10 & 3];
var10 += var11;
}
this.caret -= 8;
int var10002 = 156988870;
this.write32(var8);
var10002 = 971124061;
this.write32(var9);
}
this.caret = var5;
}
public void ap(int[] var1, int var2, int var3) {
int var5 = this.caret;
this.caret = var2;
int var6 = (var3 - var2) / 8;
for(int var7 = 0; var7 < var6; ++var7) {
int var10001 = 1394256432;
int var8 = this.k();
var10001 = -889085586;
int var9 = this.k();
int var10 = -957401312;
int var11 = -1640531527;
for(int var12 = 32; var12-- > 0; var8 -= var9 + (var9 << 4 ^ var9 >>> 5) ^ var10 + var1[var10 & 3]) {
var9 -= var8 + (var8 << 4 ^ var8 >>> 5) ^ var1[var10 >>> 11 & 3] + var10;
var10 -= var11;
}
this.caret -= 8;
int var10002 = -405038002;
this.write32(var8);
var10002 = -848342490;
this.write32(var9);
}
this.caret = var5;
}
public int ah(int var1) {
int var10003 = 59142782;
int var3 = an.n(this.payload, var1, this.caret);
int var10002 = 725035445;
this.write32(var3);
return var3;
}
public int bj() {
this.caret += -2;
return (this.payload[this.caret + 1687040350] & 255) + ((this.payload[this.caret - 1303963473] & 255) << 8);
}
public int as() {
return this.payload[++this.caret - 1] - 128 & 255;
}
public int af() {
return 0 - this.payload[++this.caret - 1] & 255;
}
public int aa() {
return 128 - this.payload[++this.caret - 1] & 255;
}
public byte ad() {
return (byte)(this.payload[++this.caret - 1] - 128);
}
public byte aw() {
return (byte)(128 - this.payload[++this.caret - 1]);
}
public void writeLE16(int var1) {
this.payload[++this.caret - 1] = (byte)var1;
this.payload[++this.caret - 1] = (byte)(var1 >> 8);
}
public int bf() {
this.caret += -2;
return ((this.payload[this.caret + 1687040350] & 255) << 8) + (this.payload[this.caret - 1303963473] - 128 & 255);
}
public int bv() {
this.caret += -2;
int var2 = ((this.payload[this.caret + 1687040350] & 255) << 8) + (this.payload[this.caret - 1303963473] - 128 & 255);
if(var2 > 32767) {
var2 -= 65536;
}
return var2;
}
public int bl() {
this.caret += -2;
int var2 = ((this.payload[this.caret - 1303963473] & 255) << 8) + (this.payload[this.caret + 1687040350] - 128 & 255);
if(var2 > 32767) {
var2 -= 65536;
}
return var2;
}
public int bm() {
this.caret += -3;
return ((this.payload[this.caret + 383076877] & 255) << 16) + ((this.payload[this.caret - 1303963473] & 255) << 8) + (this.payload[this.caret + 1687040350] & 255);
}
public void writeInverted32(int var1) {
this.payload[++this.caret - 1] = (byte)(var1 >> 16);
this.payload[++this.caret - 1] = (byte)(var1 >> 24);
this.payload[++this.caret - 1] = (byte)var1;
this.payload[++this.caret - 1] = (byte)(var1 >> 8);
}
public int bp() {
this.caret += 4;
return ((this.payload[this.caret - 1303963473] & 255) << 16) + ((this.payload[this.caret + 1687040350] & 255) << 24) + ((this.payload[this.caret - 920886596] & 255) << 8) + (this.payload[this.caret + 383076877] & 255);
}
public int bs() {
this.caret += 4;
return (this.payload[this.caret + 1687040350] & 255) + ((this.payload[this.caret - 920886596] & 255) << 16) + ((this.payload[this.caret + 383076877] & 255) << 24) + ((this.payload[this.caret - 1303963473] & 255) << 8);
}
public void bg(byte[] var1, int var2, int var3) {
for(int var5 = var2; var5 < var2 + var3; ++var5) {
var1[var5] = (byte)(this.payload[++this.caret - 1] - 128);
}
}
static {
for(int var1 = 0; var1 < 256; ++var1) {
int var0 = var1;
for(int var2 = 0; var2 < 8; ++var2) {
if((var0 & 1) == 1) {
var0 = var0 >>> 1 ^ -306674912;
} else {
var0 >>>= 1;
}
}
a[var1] = var0;
}
}
public void writeBytes(byte[] var1, int var2, int var3) {
for(int var5 = var2; var5 < var2 + var3; ++var5) {
this.payload[++this.caret - 1] = var1[var5];
}
}
public void write8Offset128(int var1) {
this.payload[++this.caret - 1] = (byte)(128 + var1);
}
public void write16B(int var1) {
this.payload[++this.caret - 1] = (byte)(var1 + 128);
this.payload[++this.caret - 1] = (byte)(var1 >> 8);
}
public void bu(int var1) {
this.payload[++this.caret - 1] = (byte)(var1 >> 8);
this.payload[++this.caret - 1] = (byte)(var1 >> 16);
this.payload[++this.caret - 1] = (byte)var1;
}
public void enableEncryption(BigInteger var1, BigInteger var2) {
int var4 = this.caret;
this.caret = 0;
byte[] var5 = new byte[var4];
int var10004 = 1599434219;
this.aq(var5, 0, var4);
BigInteger var6 = new BigInteger(var5);
BigInteger var7 = var6.modPow(var1, var2);
byte[] var8 = var7.toByteArray();
this.caret = 0;
int var10001 = var8.length;
int var10002 = -1893448776;
this.write16(var10001);
int var10003 = var8.length;
var10004 = 1302342931;
this.writeBytes(var8, 0, var10003);
}
public void writeCharSequence(CharSequence var1) {
int var4 = var1.length();
int var5 = 0;
int var6;
for(var6 = 0; var6 < var4; ++var6) {
char var7 = var1.charAt(var6);
if(var7 <= 127) {
++var5;
} else if(var7 <= 2047) {
var5 += 2;
} else {
var5 += 3;
}
}
this.payload[++this.caret - 1] = 0;
int var10002 = 387267305;
this.u(var5);
var5 = this.caret;
byte[] var13 = this.payload;
int var8 = this.caret;
int var9 = var1.length();
int var10 = var8;
for(int var11 = 0; var11 < var9; ++var11) {
char var12 = var1.charAt(var11);
if(var12 <= 127) {
var13[var10++] = (byte)var12;
} else if(var12 <= 2047) {
var13[var10++] = (byte)(192 | var12 >> 6);
var13[var10++] = (byte)(128 | var12 & 63);
} else {
var13[var10++] = (byte)(224 | var12 >> 12);
var13[var10++] = (byte)(128 | var12 >> 6 & 63);
var13[var10++] = (byte)(128 | var12 & 63);
}
}
var6 = var10 - var8;
this.caret = var5 + var6;
}
public int bt() {
this.caret += 4;
return ((this.payload[this.caret - 1303963473] & 255) << 24) + ((this.payload[this.caret + 1687040350] & 255) << 16) + ((this.payload[this.caret + 383076877] & 255) << 8) + (this.payload[this.caret - 920886596] & 255);
}
public int bb() {
this.caret += -2;
return (this.payload[this.caret + 1687040350] - 128 & 255) + ((this.payload[this.caret - 1303963473] & 255) << 8);
}
public void write8Neg0(int var1) {
this.payload[++this.caret - 1] = (byte)(0 - var1);
}
public void u(int var1) {
int var10001;
int var10002;
if(0 != (var1 & -128)) {
if((var1 & -16384) != 0) {
if((var1 & -2097152) != 0) {
if((var1 & -268435456) != 0) {
var10001 = var1 >>> 28 | 128;
var10002 = -2123820930;
this.write8(var10001);
}
var10001 = var1 >>> 21 | 128;
var10002 = -1079375288;
this.write8(var10001);
}
var10001 = var1 >>> 14 | 128;
var10002 = 7960413;
this.write8(var10001);
}
var10001 = var1 >>> 7 | 128;
var10002 = -1932107447;
this.write8(var10001);
}
var10001 = var1 & 127;
var10002 = -1724050897;
this.write8(var10001);
}
public String ag() {
byte var2 = this.payload[++this.caret - 1];
if(var2 != 0) {
throw new IllegalStateException("");
} else {
int var10001 = -2040339769;
int var3 = this.ax();
if(var3 + this.caret > this.payload.length) {
throw new IllegalStateException("");
} else {
int var10003 = 1179430365;
String var4 = fs.n(this.payload, this.caret, var3);
this.caret += var3;
return var4;
}
}
}
static final void cg(Player var0, int var1, int var2, int var3) {
if(Player.hv != var0) {
if(Client.menuSize < 400) {
String var5;
int var8;
if(var0.h == 0) {
String var6 = var0.name;
var8 = var0.playerLevel;
int var9 = Player.hv.playerLevel;
int var10 = var9 - var8;
String var7;
boolean var10001;
if(var10 < -9) {
var10001 = true;
var7 = ce.o(16711680);
} else if(var10 < -6) {
var10001 = true;
var7 = ce.o(16723968);
} else if(var10 < -3) {
var10001 = true;
var7 = ce.o(16740352);
} else if(var10 < 0) {
var10001 = true;
var7 = ce.o(16756736);
} else if(var10 > 9) {
var10001 = true;
var7 = ce.o('\uff00');
} else if(var10 > 6) {
var10001 = true;
var7 = ce.o(4259584);
} else if(var10 > 3) {
var10001 = true;
var7 = ce.o(8453888);
} else if(var10 > 0) {
var10001 = true;
var7 = ce.o(12648192);
} else {
var10001 = true;
var7 = ce.o(16776960);
}
var5 = var6 + var7 + " " + o.w + ew.fd + var0.playerLevel + o.m;
} else {
var5 = var0.name + " " + o.w + ew.fk + var0.h + o.m;
}
int var11;
StringBuilder var15;
String var10000;
String var16;
boolean var10003;
int var10006;
if(1 == Client.selectionState) {
var10000 = ew.ez;
var15 = (new StringBuilder()).append(Client.it).append(" ").append(o.h).append(" ");
var10003 = true;
var16 = var15.append(ce.o(16777215)).append(var5).toString();
var10006 = 1990968336;
ac.bn(var10000, var16, 14, var1, var2, var3);
} else if(Client.spellSelected) {
if((v.iz & 8) == 8) {
var10000 = Client.jq;
var15 = (new StringBuilder()).append(Client.jp).append(" ").append(o.h).append(" ");
var10003 = true;
var16 = var15.append(ce.o(16777215)).append(var5).toString();
var10006 = 1796290099;
ac.bn(var10000, var16, 15, var1, var2, var3);
}
} else {
for(var11 = 7; var11 >= 0; --var11) {
if(null != Client.hx[var11]) {
short var13 = 0;
if(Client.hx[var11].equalsIgnoreCase(ew.ev)) {
if(Client.ab == s.o || Client.ab == s.n && var0.playerLevel > Player.hv.playerLevel) {
var13 = 2000;
}
if(0 != Player.hv.s && 0 != var0.s) {
if(Player.hv.s == var0.s) {
var13 = 2000;
} else {
var13 = 0;
}
}
} else if(Client.hz[var11]) {
var13 = 2000;
}
boolean var12 = false;
var8 = Client.ho[var11] + var13;
var10000 = Client.hx[var11];
var15 = new StringBuilder();
var10003 = true;
var16 = var15.append(ce.o(16777215)).append(var5).toString();
var10006 = 1645329871;
ac.bn(var10000, var16, var8, var1, var2, var3);
}
}
}
for(var11 = 0; var11 < Client.menuSize; ++var11) {
if(23 == Client.il[var11]) {
String[] var14 = Client.menuOptions;
StringBuilder var10002 = new StringBuilder();
boolean var10004 = true;
var14[var11] = var10002.append(ce.o(16777215)).append(var5).toString();
break;
}
}
}
}
}
public byte ai() {
return (byte)(0 - this.payload[++this.caret - 1]);
}
public void writeInvertedLE32(int var1) {
this.payload[++this.caret - 1] = (byte)(var1 >> 8);
this.payload[++this.caret - 1] = (byte)var1;
this.payload[++this.caret - 1] = (byte)(var1 >> 24);
this.payload[++this.caret - 1] = (byte)(var1 >> 16);
}
public Buffer(int var1) {
int var10002 = -670647699;
this.payload = dg.n(var1);
this.caret = 0;
}
public void al(int[] var1) {
int var3 = this.caret / 8;
this.caret = 0;
for(int var4 = 0; var4 < var3; ++var4) {
int var10001 = 876173981;
int var5 = this.k();
var10001 = 400340038;
int var6 = this.k();
int var7 = -957401312;
int var8 = -1640531527;
for(int var9 = 32; var9-- > 0; var5 -= (var6 << 4 ^ var6 >>> 5) + var6 ^ var7 + var1[var7 & 3]) {
var6 -= (var5 << 4 ^ var5 >>> 5) + var5 ^ var7 + var1[var7 >>> 11 & 3];
var7 -= var8;
}
this.caret -= 8;
int var10002 = 696866695;
this.write32(var5);
var10002 = -2040999607;
this.write32(var6);
}
}
public void writeLE16A(int var1) {
this.payload[this.caret - var1 - 2] = (byte)(var1 >> 8);
this.payload[this.caret - var1 - 1] = (byte)var1;
}
public void write8Neg128(int var1) {
this.payload[++this.caret - 1] = (byte)(128 - var1);
}
public int ax() {
byte var2 = this.payload[++this.caret - 1];
int var3;
for(var3 = 0; var2 < 0; var2 = this.payload[++this.caret - 1]) {
var3 = (var3 | var2 & 127) << 7;
}
return var3 | var2;
}
public boolean ae() {
this.caret -= 4;
int var10003 = 59142782;
int var2 = an.n(this.payload, 0, this.caret);
int var10001 = -987813524;
int var3 = this.k();
return var3 == var2;
}
public static void n(fd var0, fd var1, boolean var2, he var3) {
ItemDefinition.w = var0;
eh.m = var1;
hp.h = var2;
int var10002 = -1683874105;
ItemDefinition.i = ItemDefinition.w.v(10);
fy.e = var3;
}
public static int a(int var0, int var1, int var2, int var3, int var4, int var5) {
if((var5 & 1) == 1) {
int var7 = var3;
var3 = var4;
var4 = var7;
}
var2 &= 3;
return 0 == var2?var0:(var2 == 1?var1:(var2 == 2?7 - var0 - (var3 - 1):7 - var1 - (var4 - 1)));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment