SBoT 1.0 decompiled with CFR 0.152
Full source recovered from SBoT.jar (July 2004) plus the three bundled example scripts (BoneBury, GuildFish, GuildFisher). Class names are the original RSC-era single-letter obfuscation (a.java-z.java); mudclient.java and Script.java kept their real names since those weren't obfuscated.
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
/*
|
||||
* Decompiled with CFR 0.152.
|
||||
*/
|
||||
import java.math.BigInteger;
|
||||
import java.util.zip.CRC32;
|
||||
|
||||
public class n {
|
||||
public byte[] a;
|
||||
public int b;
|
||||
static CRC32 c = new CRC32();
|
||||
private static final int[] d = new int[]{0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, Short.MAX_VALUE, 65535, 131071, 262143, 524287, 1048575, 0x1FFFFF, 0x3FFFFF, 0x7FFFFF, 0xFFFFFF, 0x1FFFFFF, 0x3FFFFFF, 0x7FFFFFF, 0xFFFFFFF, 0x1FFFFFFF, 0x3FFFFFFF, Integer.MAX_VALUE, -1};
|
||||
|
||||
private n() {
|
||||
}
|
||||
|
||||
public n(byte[] byArray) {
|
||||
this.a = byArray;
|
||||
this.b = 0;
|
||||
}
|
||||
|
||||
public void a(int n2) {
|
||||
this.a[this.b++] = (byte)n2;
|
||||
}
|
||||
|
||||
public void b(int n2) {
|
||||
this.a[this.b++] = (byte)(n2 >> 24);
|
||||
this.a[this.b++] = (byte)(n2 >> 16);
|
||||
this.a[this.b++] = (byte)(n2 >> 8);
|
||||
this.a[this.b++] = (byte)n2;
|
||||
}
|
||||
|
||||
public void a(String string) {
|
||||
string.getBytes(0, string.length(), this.a, this.b);
|
||||
this.b += string.length();
|
||||
this.a[this.b++] = 10;
|
||||
}
|
||||
|
||||
public void a(byte[] byArray, int n2, int n3) {
|
||||
for (int i2 = n2; i2 < n2 + n3; ++i2) {
|
||||
this.a[this.b++] = byArray[i2];
|
||||
if (!q.d) continue;
|
||||
}
|
||||
}
|
||||
|
||||
public int a() {
|
||||
return this.a[this.b++] & 0xFF;
|
||||
}
|
||||
|
||||
public int b() {
|
||||
this.b += 2;
|
||||
return ((this.a[this.b - 2] & 0xFF) << 8) + (this.a[this.b - 1] & 0xFF);
|
||||
}
|
||||
|
||||
public int c() {
|
||||
this.b += 4;
|
||||
return ((this.a[this.b - 4] & 0xFF) << 24) + ((this.a[this.b - 3] & 0xFF) << 16) + ((this.a[this.b - 2] & 0xFF) << 8) + (this.a[this.b - 1] & 0xFF);
|
||||
}
|
||||
|
||||
public void b(byte[] byArray, int n2, int n3) {
|
||||
for (int i2 = n2; i2 < n2 + n3; ++i2) {
|
||||
byArray[i2] = this.a[this.b++];
|
||||
if (!q.d) continue;
|
||||
}
|
||||
}
|
||||
|
||||
public void a(BigInteger bigInteger, BigInteger bigInteger2) {
|
||||
int n2 = this.b;
|
||||
this.b = 0;
|
||||
byte[] byArray = new byte[n2];
|
||||
this.b(byArray, 0, n2);
|
||||
BigInteger bigInteger3 = new BigInteger(byArray);
|
||||
BigInteger bigInteger4 = bigInteger3.modPow(bigInteger, bigInteger2);
|
||||
byte[] byArray2 = bigInteger4.toByteArray();
|
||||
this.b = 0;
|
||||
this.a(byArray2.length);
|
||||
this.a(byArray2, 0, byArray2.length);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user