Files
wes 2625b73800 SBoT 1.0 decompiled with jad 1.5.8e
Same SBoT.jar, decompiled with jad instead of CFR for comparison -- jad
is the same decompiler the community used on RSC client dumps back in
2004 (see DeobedMC201.rar). A few methods didn't fully resolve (jad is
much less capable than CFR on complex control flow); those are marked
inline where jad gave up.
2026-08-25 13:11:37 -04:00

1412 lines
30 KiB
Java

// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/kpdus/jad.html
// Decompiler options: packimports(3)
// Source File Name: y.java
public class y
{
public y()
{
}
public static int a(String s1)
{
boolean flag = q.d;
s1.equalsIgnoreCase(Ob[0]);
if(flag) goto _L2; else goto _L1
_L1:
JVM INSTR ifeq 22;
goto _L3 _L4
_L3:
break MISSING_BLOCK_LABEL_20;
_L4:
break MISSING_BLOCK_LABEL_22;
return 0;
false;
_L2:
int i1;
i1;
_L12:
if(i1 >= Q)
break; /* Loop/switch isn't completed */
xb[i1].equalsIgnoreCase(s1);
if(flag) goto _L6; else goto _L5
_L5:
if(flag) goto _L8; else goto _L7
_L7:
JVM INSTR ifeq 53;
goto _L9 _L10
_L9:
i1;
_L8:
return;
_L10:
i1++;
if(!flag) goto _L12; else goto _L11
_L11:
xb[Q++] = s1;
Q - 1;
_L6:
return;
}
public static int a()
{
int i1 = Kb[Mb] & 0xff;
Mb++;
return i1;
}
public static int b()
{
int i1 = q.a(Kb, Mb);
Mb += 2;
return i1;
}
public static int c()
{
int i1;
i1 = q.b(Kb, Mb);
Mb += 4;
i1;
if(q.d) goto _L2; else goto _L1
_L1:
0x5f5e0ff;
JVM INSTR icmple 35;
goto _L3 _L4
_L3:
break MISSING_BLOCK_LABEL_30;
_L4:
break MISSING_BLOCK_LABEL_35;
i1 = 0x5f5e0ff - i1;
i1;
_L2:
return;
}
public static String d()
{
String s1;
label0:
{
boolean flag = q.d;
s1 = "";
do
{
if(Jb[Lb] == 0)
break;
s1 = s1 + (char)Jb[Lb++];
if(flag)
break label0;
} while(!flag);
Lb++;
}
return s1;
}
public static void a(byte abyte0[], boolean flag)
{
int i1;
boolean flag2;
label0:
{
flag2 = q.d;
boolean flag1 = false;
Jb = q.a(Ob[3], 0, abyte0);
Lb = 0;
Kb = q.a(Ob[2], 0, abyte0);
Mb = 0;
O = b();
mb = new String[O];
nb = new String[O];
ob = new String[O];
f = new int[O];
g = new int[O];
h = new int[O];
i = new int[O];
j = new int[O];
k = new int[O];
l = new int[O];
m = new int[O];
i1 = 0;
do
{
if(i1 >= O)
break;
mb[i1] = d();
i1++;
if(flag2)
break label0;
} while(!flag2);
i1 = 0;
}
label1:
{
do
{
if(i1 >= O)
break;
nb[i1] = d();
i1++;
if(flag2)
break label1;
} while(!flag2);
i1 = 0;
}
label2:
{
do
{
if(i1 >= O)
break;
ob[i1] = d();
i1++;
if(flag2)
break label2;
} while(!flag2);
i1 = 0;
}
_L6:
if(i1 >= O)
break; /* Loop/switch isn't completed */
f[i1] = b();
if(flag2)
continue; /* Loop/switch isn't completed */
f[i1] + 1;
P;
if(flag2) goto _L2; else goto _L1
_L1:
JVM INSTR icmple 278;
goto _L3 _L4
_L3:
break MISSING_BLOCK_LABEL_268;
_L4:
break MISSING_BLOCK_LABEL_278;
P = f[i1] + 1;
i1++;
if(!flag2) goto _L6; else goto _L5
_L5:
i1 = 0;
_L10:
i1;
O;
_L2:
JVM INSTR icmpge 316;
goto _L7 _L8
_L7:
break MISSING_BLOCK_LABEL_295;
_L8:
break; /* Loop/switch isn't completed */
g[i1] = c();
i1++;
if(flag2)
break MISSING_BLOCK_LABEL_318;
if(!flag2) goto _L10; else goto _L9
_L9:
i1 = 0;
label3:
{
do
{
if(i1 >= O)
break;
h[i1] = a();
i1++;
if(flag2)
break label3;
} while(!flag2);
i1 = 0;
}
label4:
{
do
{
if(i1 >= O)
break;
i[i1] = a();
i1++;
if(flag2)
break label4;
} while(!flag2);
i1 = 0;
}
label5:
{
do
{
if(i1 >= O)
break;
j[i1] = b();
i1++;
if(flag2)
break label5;
} while(!flag2);
i1 = 0;
}
label6:
{
do
{
if(i1 >= O)
break;
k[i1] = c();
i1++;
if(flag2)
break label6;
} while(!flag2);
i1 = 0;
}
label7:
{
do
{
if(i1 >= O)
break;
l[i1] = a();
i1++;
if(flag2)
break label7;
} while(!flag2);
i1 = 0;
}
label8:
{
do
{
if(i1 >= O)
break;
m[i1] = a();
i1++;
if(flag2)
break label8;
} while(!flag2);
i1 = 0;
}
_L21:
if(i1 >= O)
break; /* Loop/switch isn't completed */
flag;
if(flag2) goto _L12; else goto _L11
_L11:
if(flag2) goto _L14; else goto _L13
_L13:
JVM INSTR ifne 584;
goto _L15 _L16
_L15:
m;
i1;
if(flag2) goto _L18; else goto _L17
_L17:
JVM INSTR iaload ;
_L14:
1;
JVM INSTR icmpne 584;
goto _L19 _L16
_L19:
mb[i1] = Ob[1];
nb[i1] = Ob[4];
g[i1] = 0;
ob[i1] = "";
i[0] = 0;
j[i1] = 0;
l;
i1;
_L18:
1;
JVM INSTR iastore ;
_L16:
i1++;
if(!flag2) goto _L21; else goto _L20
_L20:
L = b();
S = new String[L];
T = new String[L];
U = new String[L];
a = new int[L];
b = new int[L];
c = new int[L];
d = new int[L];
e = new int[L];
s = new int[L][12];
E = new int[L];
F = new int[L];
G = new int[L];
H = new int[L];
x = new int[L];
y = new int[L];
u = new int[L];
v = new int[L];
w = new int[L];
false;
_L12:
i1;
label9:
{
do
{
if(i1 >= L)
break;
S[i1] = d();
i1++;
if(flag2)
break label9;
} while(!flag2);
i1 = 0;
}
label10:
{
do
{
if(i1 >= L)
break;
T[i1] = d();
i1++;
if(flag2)
break label10;
} while(!flag2);
i1 = 0;
}
label11:
{
do
{
if(i1 >= L)
break;
a[i1] = a();
i1++;
if(flag2)
break label11;
} while(!flag2);
i1 = 0;
}
label12:
{
do
{
if(i1 >= L)
break;
b[i1] = a();
i1++;
if(flag2)
break label12;
} while(!flag2);
i1 = 0;
}
label13:
{
do
{
if(i1 >= L)
break;
c[i1] = a();
i1++;
if(flag2)
break label13;
} while(!flag2);
i1 = 0;
}
label14:
{
do
{
if(i1 >= L)
break;
d[i1] = a();
i1++;
if(flag2)
break label14;
} while(!flag2);
i1 = 0;
}
label15:
{
do
{
if(i1 >= L)
break;
e[i1] = a();
i1++;
if(flag2)
break label15;
} while(!flag2);
i1 = 0;
}
_L33:
i1;
L;
_L27:
JVM INSTR icmpge 1043;
goto _L22 _L23
_L22:
break MISSING_BLOCK_LABEL_968;
_L23:
break; /* Loop/switch isn't completed */
false;
if(flag2) goto _L25; else goto _L24
_L24:
int j1;
j1;
_L31:
if(j1 >= 12)
break; /* Loop/switch isn't completed */
s[i1][j1] = a();
if(flag2)
continue; /* Loop/switch isn't completed */
s[i1][j1];
255;
if(flag2) goto _L27; else goto _L26
_L26:
JVM INSTR icmpne 1027;
goto _L28 _L29
_L28:
break MISSING_BLOCK_LABEL_1018;
_L29:
break MISSING_BLOCK_LABEL_1027;
s[i1][j1] = -1;
j1++;
if(!flag2) goto _L31; else goto _L30
_L30:
i1++;
if(!flag2) goto _L33; else goto _L32
_L32:
false;
_L25:
i1;
label16:
{
do
{
if(i1 >= L)
break;
E[i1] = c();
i1++;
if(flag2)
break label16;
} while(!flag2);
i1 = 0;
}
label17:
{
do
{
if(i1 >= L)
break;
F[i1] = c();
i1++;
if(flag2)
break label17;
} while(!flag2);
i1 = 0;
}
label18:
{
do
{
if(i1 >= L)
break;
G[i1] = c();
i1++;
if(flag2)
break label18;
} while(!flag2);
i1 = 0;
}
label19:
{
do
{
if(i1 >= L)
break;
H[i1] = c();
i1++;
if(flag2)
break label19;
} while(!flag2);
i1 = 0;
}
label20:
{
do
{
if(i1 >= L)
break;
x[i1] = b();
i1++;
if(flag2)
break label20;
} while(!flag2);
i1 = 0;
}
label21:
{
do
{
if(i1 >= L)
break;
y[i1] = b();
i1++;
if(flag2)
break label21;
} while(!flag2);
i1 = 0;
}
label22:
{
do
{
if(i1 >= L)
break;
u[i1] = a();
i1++;
if(flag2)
break label22;
} while(!flag2);
i1 = 0;
}
label23:
{
do
{
if(i1 >= L)
break;
v[i1] = a();
i1++;
if(flag2)
break label23;
} while(!flag2);
i1 = 0;
}
label24:
{
do
{
if(i1 >= L)
break;
w[i1] = a();
i1++;
if(flag2)
break label24;
} while(!flag2);
i1 = 0;
}
label25:
{
do
{
if(i1 >= L)
break;
U[i1] = d();
i1++;
if(flag2)
break label25;
} while(!flag2);
R = b();
C = new String[R];
D = new String[R];
}
label26:
{
i1 = 0;
do
{
if(i1 >= R)
break;
C[i1] = d();
i1++;
if(flag2)
break label26;
} while(!flag2);
i1 = 0;
}
label27:
{
do
{
if(i1 >= R)
break;
D[i1] = d();
i1++;
if(flag2)
break label27;
} while(!flag2);
hb = b();
lb = new String[hb];
zb = new int[hb];
Ab = new int[hb];
Bb = new int[hb];
Cb = new int[hb];
Db = new int[hb];
}
label28:
{
i1 = 0;
do
{
if(i1 >= hb)
break;
lb[i1] = d();
i1++;
if(flag2)
break label28;
} while(!flag2);
i1 = 0;
}
label29:
{
do
{
if(i1 >= hb)
break;
zb[i1] = c();
i1++;
if(flag2)
break label29;
} while(!flag2);
i1 = 0;
}
label30:
{
do
{
if(i1 >= hb)
break;
Ab[i1] = a();
i1++;
if(flag2)
break label30;
} while(!flag2);
i1 = 0;
}
label31:
{
do
{
if(i1 >= hb)
break;
Bb[i1] = a();
i1++;
if(flag2)
break label31;
} while(!flag2);
i1 = 0;
}
label32:
{
do
{
if(i1 >= hb)
break;
Cb[i1] = a();
i1++;
if(flag2)
break label32;
} while(!flag2);
i1 = 0;
}
label33:
{
do
{
if(i1 >= hb)
break;
Db[i1] = a();
i1++;
if(flag2)
break label33;
} while(!flag2);
ib = b();
rb = new String[ib];
sb = new String[ib];
tb = new String[ib];
ub = new String[ib];
V = new int[ib];
W = new int[ib];
X = new int[ib];
Y = new int[ib];
Z = new int[ib];
}
label34:
{
i1 = 0;
do
{
if(i1 >= ib)
break;
rb[i1] = d();
i1++;
if(flag2)
break label34;
} while(!flag2);
i1 = 0;
}
label35:
{
do
{
if(i1 >= ib)
break;
sb[i1] = d();
i1++;
if(flag2)
break label35;
} while(!flag2);
i1 = 0;
}
label36:
{
do
{
if(i1 >= ib)
break;
tb[i1] = d();
i1++;
if(flag2)
break label36;
} while(!flag2);
i1 = 0;
}
label37:
{
do
{
if(i1 >= ib)
break;
ub[i1] = d();
i1++;
if(flag2)
break label37;
} while(!flag2);
i1 = 0;
}
label38:
{
do
{
if(i1 >= ib)
break;
V[i1] = a(d());
i1++;
if(flag2)
break label38;
} while(!flag2);
i1 = 0;
}
label39:
{
do
{
if(i1 >= ib)
break;
W[i1] = a();
i1++;
if(flag2)
break label39;
} while(!flag2);
i1 = 0;
}
label40:
{
do
{
if(i1 >= ib)
break;
X[i1] = a();
i1++;
if(flag2)
break label40;
} while(!flag2);
i1 = 0;
}
label41:
{
do
{
if(i1 >= ib)
break;
Y[i1] = a();
i1++;
if(flag2)
break label41;
} while(!flag2);
i1 = 0;
}
label42:
{
do
{
if(i1 >= ib)
break;
Z[i1] = a();
i1++;
if(flag2)
break label42;
} while(!flag2);
M = b();
o = new String[M];
p = new String[M];
q = new String[M];
r = new String[M];
Eb = new int[M];
Fb = new int[M];
Gb = new int[M];
Hb = new int[M];
Ib = new int[M];
}
label43:
{
i1 = 0;
do
{
if(i1 >= M)
break;
o[i1] = d();
i1++;
if(flag2)
break label43;
} while(!flag2);
i1 = 0;
}
label44:
{
do
{
if(i1 >= M)
break;
p[i1] = d();
i1++;
if(flag2)
break label44;
} while(!flag2);
i1 = 0;
}
label45:
{
do
{
if(i1 >= M)
break;
q[i1] = d();
i1++;
if(flag2)
break label45;
} while(!flag2);
i1 = 0;
}
label46:
{
do
{
if(i1 >= M)
break;
r[i1] = d();
i1++;
if(flag2)
break label46;
} while(!flag2);
i1 = 0;
}
label47:
{
do
{
if(i1 >= M)
break;
Eb[i1] = b();
i1++;
if(flag2)
break label47;
} while(!flag2);
i1 = 0;
}
label48:
{
do
{
if(i1 >= M)
break;
Fb[i1] = c();
i1++;
if(flag2)
break label48;
} while(!flag2);
i1 = 0;
}
label49:
{
do
{
if(i1 >= M)
break;
Gb[i1] = c();
i1++;
if(flag2)
break label49;
} while(!flag2);
i1 = 0;
}
label50:
{
do
{
if(i1 >= M)
break;
Hb[i1] = a();
i1++;
if(flag2)
break label50;
} while(!flag2);
i1 = 0;
}
label51:
{
do
{
if(i1 >= M)
break;
Ib[i1] = a();
i1++;
if(flag2)
break label51;
} while(!flag2);
K = b();
pb = new int[K];
qb = new int[K];
}
label52:
{
i1 = 0;
do
{
if(i1 >= K)
break;
pb[i1] = a();
i1++;
if(flag2)
break label52;
} while(!flag2);
i1 = 0;
}
label53:
{
do
{
if(i1 >= K)
break;
qb[i1] = a();
i1++;
if(flag2)
break label53;
} while(!flag2);
I = b();
z = new int[I];
A = new int[I];
B = new int[I];
}
label54:
{
i1 = 0;
do
{
if(i1 >= I)
break;
z[i1] = c();
i1++;
if(flag2)
break label54;
} while(!flag2);
i1 = 0;
}
label55:
{
do
{
if(i1 >= I)
break;
A[i1] = a();
i1++;
if(flag2)
break label55;
} while(!flag2);
i1 = 0;
}
label56:
{
do
{
if(i1 >= I)
break;
B[i1] = a();
i1++;
if(flag2)
break label56;
} while(!flag2);
yb = b();
n = b();
vb = new String[n];
wb = new String[n];
ab = new int[n];
bb = new int[n];
cb = new int[n];
db = new int[n][];
eb = new int[n][];
}
label57:
{
i1 = 0;
do
{
if(i1 >= n)
break;
vb[i1] = d();
i1++;
if(flag2)
break label57;
} while(!flag2);
i1 = 0;
}
label58:
{
do
{
if(i1 >= n)
break;
wb[i1] = d();
i1++;
if(flag2)
break label58;
} while(!flag2);
i1 = 0;
}
label59:
{
do
{
if(i1 >= n)
break;
ab[i1] = a();
i1++;
if(flag2)
break label59;
} while(!flag2);
i1 = 0;
}
label60:
{
do
{
if(i1 >= n)
break;
bb[i1] = a();
i1++;
if(flag2)
break label60;
} while(!flag2);
i1 = 0;
}
label61:
{
do
{
if(i1 >= n)
break;
cb[i1] = a();
i1++;
if(flag2)
break label61;
} while(!flag2);
i1 = 0;
}
_L37:
if(i1 >= n)
break; /* Loop/switch isn't completed */
j1 = a();
db[i1] = new int[j1];
false;
if(flag2) goto _L35; else goto _L34
_L34:
int k1;
k1;
do
{
if(k1 >= j1)
break;
db[i1][k1] = b();
k1++;
if(flag2)
continue; /* Loop/switch isn't completed */
} while(!flag2);
i1++;
if(!flag2) goto _L37; else goto _L36
_L36:
false;
_L35:
i1;
_L41:
if(i1 >= n)
break; /* Loop/switch isn't completed */
j1 = a();
eb[i1] = new int[j1];
false;
if(flag2) goto _L39; else goto _L38
_L38:
k1;
do
{
if(k1 >= j1)
break;
eb[i1][k1] = a();
k1++;
if(flag2)
continue; /* Loop/switch isn't completed */
} while(!flag2);
i1++;
if(!flag2) goto _L41; else goto _L40
_L40:
t = b();
fb = new String[t];
gb = new String[t];
jb = new int[t];
kb = new int[t];
false;
_L39:
i1;
label62:
{
do
{
if(i1 >= t)
break;
fb[i1] = d();
i1++;
if(flag2)
break label62;
} while(!flag2);
i1 = 0;
}
label63:
{
do
{
if(i1 >= t)
break;
gb[i1] = d();
i1++;
if(flag2)
break label63;
} while(!flag2);
i1 = 0;
}
label64:
{
do
{
if(i1 >= t)
break;
jb[i1] = a();
i1++;
if(flag2)
break label64;
} while(!flag2);
i1 = 0;
}
label65:
{
do
{
if(i1 >= t)
break;
kb[i1] = a();
i1++;
if(flag2)
break label65;
} while(!flag2);
Jb = null;
Kb = null;
}
if(a.R)
q.d = !flag2;
return;
}
public static int a[];
public static int b[];
public static int c[];
public static int d[];
public static int e[];
public static int f[];
public static int g[];
public static int h[];
public static int i[];
public static int j[];
public static int k[];
public static int l[];
public static int m[];
public static int n;
public static String o[];
public static String p[];
public static String q[];
public static String r[];
public static int s[][];
public static int t;
public static int u[];
public static int v[];
public static int w[];
public static int x[];
public static int y[];
public static int z[];
public static int A[];
public static int B[];
public static String C[];
public static String D[];
public static int E[];
public static int F[];
public static int G[];
public static int H[];
public static int I;
public static String J[];
public static int K;
public static int L;
public static int M;
public static String N[];
public static int O;
public static int P;
public static int Q;
public static int R;
public static String S[];
public static String T[];
public static String U[];
public static int V[];
public static int W[];
public static int X[];
public static int Y[];
public static int Z[];
public static int ab[];
public static int bb[];
public static int cb[];
public static int db[][];
public static int eb[][];
public static String fb[];
public static String gb[];
public static int hb;
public static int ib;
public static int jb[];
public static int kb[];
public static String lb[];
public static String mb[];
public static String nb[];
public static String ob[];
public static int pb[];
public static int qb[];
public static String rb[];
public static String sb[];
public static String tb[];
public static String ub[];
public static String vb[];
public static String wb[];
public static String xb[];
public static int yb;
public static int zb[];
public static int Ab[];
public static int Bb[];
public static int Cb[];
public static int Db[];
public static int Eb[];
public static int Fb[];
public static int Gb[];
public static int Hb[];
public static int Ib[];
static byte Jb[];
static byte Kb[];
static int Lb;
static int Mb;
public static int Nb;
private static String Ob[];
static
{
String as[];
as = new String[5];
as[0] = "e{";
as[1] = "F\177Cjjyi\016gma\177M|";
as[2] = "btZmhnh\000ln\177";
as[3] = "xn\\aal4Ji{";
as[4] = "Ru[(an\177J({d:Lm/j:Cmbi\177\\({d:[{j+nFa|+uLbjhn";
Ob = as;
break MISSING_BLOCK_LABEL_163;
local;
toCharArray();
JVM INSTR dup ;
JVM INSTR arraylength .length;
JVM INSTR swap ;
int i1 = 0;
JVM INSTR swap ;
JVM INSTR dup_x1 ;
1;
JVM INSTR icmpgt 142;
goto _L1 _L2
_L1:
JVM INSTR dup ;
i1;
_L4:
JVM INSTR dup2 ;
JVM INSTR caload ;
byte byte0;
switch(i1 % 5)
{
case 0: // '\0'
byte0 = 0xb;
break;
case 1: // '\001'
byte0 = 26;
break;
case 2: // '\002'
byte0 = 46;
break;
case 3: // '\003'
byte0 = 8;
break;
default:
byte0 = 15;
break;
}
byte0;
JVM INSTR ixor ;
(char);
JVM INSTR castore ;
i1++;
JVM INSTR swap ;
JVM INSTR dup_x1 ;
JVM INSTR ifne 142;
goto _L3 _L2
_L3:
JVM INSTR dup2 ;
JVM INSTR swap ;
goto _L4
_L2:
JVM INSTR swap ;
JVM INSTR dup_x1 ;
i1;
JVM INSTR icmpgt 65;
goto _L5 _L1
_L5:
JVM INSTR new #24 <Class String>;
JVM INSTR dup_x1 ;
JVM INSTR swap ;
String();
intern();
JVM INSTR swap ;
JVM INSTR pop ;
JVM INSTR ret 0;
J = new String[5000];
N = new String[5000];
xb = new String[5000];
}
}