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:
wes
2026-08-25 13:11:31 -04:00
commit c30e839b64
31 changed files with 90600 additions and 0 deletions
+206
View File
@@ -0,0 +1,206 @@
/*
* Decompiled with CFR 0.152.
*/
public final class m {
private int a;
private int[] b;
private int[] c;
private int d;
private int e;
private int f;
public m(int[] nArray) {
block2: {
boolean bl = q.d;
this.c = new int[256];
this.b = new int[256];
for (int i2 = 0; i2 < nArray.length; ++i2) {
this.b[i2] = nArray[i2];
if (!bl) {
if (!bl) continue;
}
break block2;
}
this.c();
}
}
public final int a() {
int n2 = this.a;
int n3 = n2;
this.a = n2 - 1;
if (!q.d) {
if (n3 == 0) {
this.b();
this.a = 255;
}
n3 = this.b[this.a];
}
return n3;
}
private final void b() {
boolean bl = q.d;
boolean bl2 = false;
this.e += ++this.f;
for (int i2 = 0; i2 < 256; ++i2) {
int n2;
int n3 = this.c[i2];
if (!bl) {
switch (i2 & 3) {
case 0: {
this.d ^= this.d << 13;
if (!bl) break;
}
case 1: {
this.d ^= this.d >>> 6;
if (!bl) break;
}
case 2: {
this.d ^= this.d << 2;
if (!bl) break;
}
case 3: {
this.d ^= this.d >>> 16;
}
}
this.d += this.c[i2 + 128 & 0xFF];
}
this.c[i2] = n2 = this.c[(n3 & 0x3FC) >> 2] + this.d + this.e;
this.b[i2] = this.e = this.c[(n2 >> 8 & 0x3FC) >> 2] + n3;
if (!bl) continue;
}
}
private final void c() {
block8: {
int n2;
int n3;
int n4;
int n5;
int n6;
int n7;
int n8;
int n9;
int n10;
boolean bl;
block7: {
block6: {
bl = q.d;
boolean bl2 = false;
n10 = -1640531527;
n9 = -1640531527;
n8 = -1640531527;
n7 = -1640531527;
n6 = -1640531527;
n5 = -1640531527;
n4 = -1640531527;
n3 = -1640531527;
for (n2 = 0; n2 < 4; ++n2) {
n6 += (n3 ^= n4 << 11);
n4 += n5;
n7 += (n4 ^= n5 >>> 2);
n5 += n6;
n8 += (n5 ^= n6 << 8);
n6 += n7;
n9 += (n6 ^= n7 >>> 16);
n7 += n8;
n10 += (n7 ^= n8 << 10);
n8 += n9;
n3 += (n8 ^= n9 >>> 4);
n9 += n10;
n4 += (n9 ^= n10 << 8);
n10 += n3;
n5 += (n10 ^= n3 >>> 9);
n3 += n4;
if (!bl) {
if (!bl) continue;
}
break block6;
}
n2 = 0;
}
while (n2 < 256) {
n3 += this.b[n2];
n4 += this.b[n2 + 1];
n5 += this.b[n2 + 2];
n6 += this.b[n2 + 3];
n7 += this.b[n2 + 4];
n8 += this.b[n2 + 5];
n9 += this.b[n2 + 6];
n10 += this.b[n2 + 7];
n6 += (n3 ^= n4 << 11);
n4 += n5;
n7 += (n4 ^= n5 >>> 2);
n5 += n6;
n8 += (n5 ^= n6 << 8);
n6 += n7;
n9 += (n6 ^= n7 >>> 16);
n7 += n8;
n10 += (n7 ^= n8 << 10);
n8 += n9;
n3 += (n8 ^= n9 >>> 4);
n9 += n10;
n4 += (n9 ^= n10 << 8);
n10 += n3;
n5 += (n10 ^= n3 >>> 9);
this.c[n2] = n3 += n4;
this.c[n2 + 1] = n4;
this.c[n2 + 2] = n5;
this.c[n2 + 3] = n6;
this.c[n2 + 4] = n7;
this.c[n2 + 5] = n8;
this.c[n2 + 6] = n9;
this.c[n2 + 7] = n10;
n2 += 8;
if (!bl) {
if (!bl) continue;
}
break block7;
}
n2 = 0;
}
while (n2 < 256) {
n3 += this.c[n2];
n4 += this.c[n2 + 1];
n5 += this.c[n2 + 2];
n6 += this.c[n2 + 3];
n7 += this.c[n2 + 4];
n8 += this.c[n2 + 5];
n9 += this.c[n2 + 6];
n10 += this.c[n2 + 7];
n6 += (n3 ^= n4 << 11);
n4 += n5;
n7 += (n4 ^= n5 >>> 2);
n5 += n6;
n8 += (n5 ^= n6 << 8);
n6 += n7;
n9 += (n6 ^= n7 >>> 16);
n7 += n8;
n10 += (n7 ^= n8 << 10);
n8 += n9;
n3 += (n8 ^= n9 >>> 4);
n9 += n10;
n4 += (n9 ^= n10 << 8);
n10 += n3;
n5 += (n10 ^= n3 >>> 9);
this.c[n2] = n3 += n4;
this.c[n2 + 1] = n4;
this.c[n2 + 2] = n5;
this.c[n2 + 3] = n6;
this.c[n2 + 4] = n7;
this.c[n2 + 5] = n8;
this.c[n2 + 6] = n9;
this.c[n2 + 7] = n10;
n2 += 8;
if (!bl) {
if (!bl) continue;
}
break block8;
}
this.b();
this.a = 256;
}
}
}