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.
This commit is contained in:
@@ -0,0 +1,540 @@
|
||||
// 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: w.java
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class w
|
||||
{
|
||||
|
||||
public void a(int ai[])
|
||||
{
|
||||
u = new m(ai);
|
||||
v = new m(ai);
|
||||
}
|
||||
|
||||
public void a()
|
||||
{
|
||||
}
|
||||
|
||||
public int b()
|
||||
throws IOException
|
||||
{
|
||||
return h();
|
||||
}
|
||||
|
||||
public long c()
|
||||
throws IOException
|
||||
{
|
||||
long l1 = g();
|
||||
long l2 = g();
|
||||
long l3 = g();
|
||||
long l4 = g();
|
||||
return (l1 << 48) + (l2 << 32) + (l3 << 16) + l4;
|
||||
}
|
||||
|
||||
public void a(int i1, int j1, byte abyte0[])
|
||||
throws IOException
|
||||
{
|
||||
}
|
||||
|
||||
public int d()
|
||||
throws IOException
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int a(byte abyte0[])
|
||||
{
|
||||
boolean flag = q.d;
|
||||
b++;
|
||||
c;
|
||||
if(flag) goto _L2; else goto _L1
|
||||
_L1:
|
||||
if(c <= 0) goto _L4; else goto _L3
|
||||
_L3:
|
||||
b;
|
||||
if(flag) goto _L2; else goto _L5
|
||||
_L5:
|
||||
c;
|
||||
JVM INSTR icmple 67;
|
||||
goto _L6 _L4
|
||||
_L6:
|
||||
y = true;
|
||||
C = E;
|
||||
c += c;
|
||||
return 0;
|
||||
_L4:
|
||||
a;
|
||||
_L2:
|
||||
if(flag) goto _L8; else goto _L7
|
||||
_L7:
|
||||
JVM INSTR ifne 133;
|
||||
goto _L9 _L10
|
||||
_L9:
|
||||
d();
|
||||
if(flag) goto _L8; else goto _L11
|
||||
_L11:
|
||||
2;
|
||||
JVM INSTR icmplt 133;
|
||||
goto _L12 _L10
|
||||
_L12:
|
||||
a = h();
|
||||
a;
|
||||
if(flag) goto _L8; else goto _L13
|
||||
_L13:
|
||||
160;
|
||||
JVM INSTR icmplt 133;
|
||||
goto _L14 _L10
|
||||
_L14:
|
||||
a = (a - 160) * 256 + h();
|
||||
_L10:
|
||||
a;
|
||||
_L8:
|
||||
if(flag) goto _L16; else goto _L15
|
||||
_L15:
|
||||
JVM INSTR ifle 239;
|
||||
goto _L17 _L18
|
||||
_L18:
|
||||
break MISSING_BLOCK_LABEL_256;
|
||||
_L17:
|
||||
d();
|
||||
_L16:
|
||||
a;
|
||||
if(flag) goto _L20; else goto _L19
|
||||
_L19:
|
||||
JVM INSTR icmplt 239;
|
||||
goto _L21 _L22
|
||||
_L22:
|
||||
break MISSING_BLOCK_LABEL_256;
|
||||
_L21:
|
||||
a;
|
||||
'\240';
|
||||
_L20:
|
||||
if(flag) goto _L24; else goto _L23
|
||||
_L23:
|
||||
JVM INSTR icmplt 186;
|
||||
goto _L25 _L26
|
||||
_L25:
|
||||
a(a, abyte0);
|
||||
if(!flag) goto _L27; else goto _L26
|
||||
_L26:
|
||||
abyte0[a - 1] = (byte)h();
|
||||
a;
|
||||
if(flag) goto _L29; else goto _L28
|
||||
_L28:
|
||||
true;
|
||||
_L24:
|
||||
JVM INSTR icmple 222;
|
||||
goto _L30 _L27
|
||||
_L30:
|
||||
a(a - 1, abyte0);
|
||||
_L27:
|
||||
a;
|
||||
_L29:
|
||||
int i1;
|
||||
i1;
|
||||
a = 0;
|
||||
b = 0;
|
||||
return i1;
|
||||
IOException ioexception;
|
||||
ioexception;
|
||||
y = true;
|
||||
C = ioexception.getMessage();
|
||||
return 0;
|
||||
}
|
||||
|
||||
public void a(int i1)
|
||||
{
|
||||
g[e++] = (byte)(i1 >> 8);
|
||||
g[e++] = (byte)i1;
|
||||
}
|
||||
|
||||
public void b(int i1)
|
||||
{
|
||||
g[e++] = (byte)i1;
|
||||
}
|
||||
|
||||
public void c(int i1)
|
||||
{
|
||||
g[e++] = (byte)(i1 >> 24);
|
||||
g[e++] = (byte)(i1 >> 16);
|
||||
g[e++] = (byte)(i1 >> 8);
|
||||
g[e++] = (byte)i1;
|
||||
}
|
||||
|
||||
public void a(byte abyte0[], int i1, int j1)
|
||||
{
|
||||
int k1 = 0;
|
||||
do
|
||||
{
|
||||
if(k1 >= j1)
|
||||
break;
|
||||
g[e++] = abyte0[i1 + k1];
|
||||
k1++;
|
||||
} while(!q.d);
|
||||
}
|
||||
|
||||
public int d(int i1)
|
||||
{
|
||||
return i1 - u.a() & 0xff;
|
||||
}
|
||||
|
||||
public boolean e()
|
||||
{
|
||||
d;
|
||||
if(q.d) goto _L2; else goto _L1
|
||||
_L1:
|
||||
d > 0;
|
||||
_L2:
|
||||
return;
|
||||
}
|
||||
|
||||
public void f()
|
||||
{
|
||||
boolean flag = q.d;
|
||||
this;
|
||||
if(flag) goto _L2; else goto _L1
|
||||
_L1:
|
||||
v;
|
||||
JVM INSTR ifnull 52;
|
||||
goto _L3 _L4
|
||||
_L3:
|
||||
break MISSING_BLOCK_LABEL_15;
|
||||
_L4:
|
||||
break MISSING_BLOCK_LABEL_52;
|
||||
int i1 = g[d + 2] & 0xff;
|
||||
g[d + 2] = (byte)(i1 + v.a());
|
||||
this;
|
||||
_L2:
|
||||
f;
|
||||
8;
|
||||
if(flag) goto _L6; else goto _L5
|
||||
_L5:
|
||||
JVM INSTR icmpeq 75;
|
||||
goto _L7 _L8
|
||||
_L7:
|
||||
break MISSING_BLOCK_LABEL_65;
|
||||
_L8:
|
||||
break MISSING_BLOCK_LABEL_75;
|
||||
e++;
|
||||
e - d;
|
||||
2;
|
||||
_L6:
|
||||
JVM INSTR isub ;
|
||||
int j1;
|
||||
j1;
|
||||
label0:
|
||||
{
|
||||
if(!flag)
|
||||
{
|
||||
if(j1 >= 160)
|
||||
{
|
||||
g[d] = (byte)(160 + j1 / 256);
|
||||
g[d + 1] = (byte)(j1 & 0xff);
|
||||
if(!flag)
|
||||
break label0;
|
||||
}
|
||||
g[d] = (byte)j1;
|
||||
e--;
|
||||
}
|
||||
g[d + 1] = g[e];
|
||||
}
|
||||
this;
|
||||
if(flag) goto _L10; else goto _L9
|
||||
_L9:
|
||||
A;
|
||||
10000;
|
||||
JVM INSTR icmpgt 235;
|
||||
goto _L11 _L12
|
||||
_L11:
|
||||
break MISSING_BLOCK_LABEL_193;
|
||||
_L12:
|
||||
break MISSING_BLOCK_LABEL_235;
|
||||
int k1 = g[d + 2] & 0xff;
|
||||
x[k1]++;
|
||||
z[k1] += e - d;
|
||||
this;
|
||||
_L10:
|
||||
e;
|
||||
d;
|
||||
}
|
||||
|
||||
public void a(long l1)
|
||||
{
|
||||
c((int)(l1 >> 32));
|
||||
c((int)(l1 & -1L));
|
||||
}
|
||||
|
||||
public int g()
|
||||
throws IOException
|
||||
{
|
||||
int i1 = b();
|
||||
int j1 = b();
|
||||
return i1 * 256 + j1;
|
||||
}
|
||||
|
||||
public void a(int i1, byte abyte0[])
|
||||
throws IOException
|
||||
{
|
||||
a(i1, 0, abyte0);
|
||||
}
|
||||
|
||||
public void e(int i1)
|
||||
{
|
||||
boolean flag = q.d;
|
||||
this;
|
||||
if(flag) goto _L2; else goto _L1
|
||||
_L1:
|
||||
d;
|
||||
(A * 4) / 5;
|
||||
JVM INSTR icmple 45;
|
||||
goto _L3 _L4
|
||||
_L3:
|
||||
break MISSING_BLOCK_LABEL_23;
|
||||
_L4:
|
||||
break MISSING_BLOCK_LABEL_45;
|
||||
try
|
||||
{
|
||||
f(0);
|
||||
}
|
||||
catch(IOException ioexception)
|
||||
{
|
||||
y = true;
|
||||
C = ioexception.getMessage();
|
||||
}
|
||||
this;
|
||||
_L2:
|
||||
g;
|
||||
if(flag) goto _L6; else goto _L5
|
||||
_L5:
|
||||
JVM INSTR ifnonnull 66;
|
||||
goto _L7 _L8
|
||||
_L7:
|
||||
break MISSING_BLOCK_LABEL_56;
|
||||
_L8:
|
||||
break MISSING_BLOCK_LABEL_66;
|
||||
g = new byte[A];
|
||||
g[d + 2] = (byte)i1;
|
||||
g;
|
||||
_L6:
|
||||
d + 3;
|
||||
0;
|
||||
JVM INSTR bastore ;
|
||||
e = d + 3;
|
||||
f = 8;
|
||||
return;
|
||||
}
|
||||
|
||||
public void a(String s1)
|
||||
{
|
||||
s1.getBytes(0, s1.length(), g, e);
|
||||
e += s1.length();
|
||||
}
|
||||
|
||||
public void f(int i1)
|
||||
throws IOException
|
||||
{
|
||||
boolean flag = q.d;
|
||||
y;
|
||||
if(flag) goto _L2; else goto _L1
|
||||
_L1:
|
||||
if(y)
|
||||
{
|
||||
d = 0;
|
||||
e = 3;
|
||||
y = false;
|
||||
throw new IOException(C);
|
||||
}
|
||||
B++;
|
||||
B;
|
||||
_L2:
|
||||
if(flag) goto _L4; else goto _L3
|
||||
_L3:
|
||||
i1;
|
||||
JVM INSTR icmpge 65;
|
||||
goto _L5 _L6
|
||||
_L5:
|
||||
break MISSING_BLOCK_LABEL_64;
|
||||
_L6:
|
||||
break MISSING_BLOCK_LABEL_65;
|
||||
return;
|
||||
this;
|
||||
if(flag) goto _L8; else goto _L7
|
||||
_L7:
|
||||
d;
|
||||
_L4:
|
||||
JVM INSTR ifle 94;
|
||||
goto _L9 _L10
|
||||
_L9:
|
||||
break MISSING_BLOCK_LABEL_76;
|
||||
_L10:
|
||||
break MISSING_BLOCK_LABEL_94;
|
||||
B = 0;
|
||||
b(g, 0, d);
|
||||
d = 0;
|
||||
this;
|
||||
_L8:
|
||||
3;
|
||||
e;
|
||||
}
|
||||
|
||||
public void b(byte abyte0[], int i1, int j1)
|
||||
throws IOException
|
||||
{
|
||||
}
|
||||
|
||||
public int h()
|
||||
throws IOException
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public void i()
|
||||
throws IOException
|
||||
{
|
||||
f();
|
||||
f(0);
|
||||
}
|
||||
|
||||
public w()
|
||||
{
|
||||
boolean flag = false;
|
||||
e = 3;
|
||||
f = 8;
|
||||
y = false;
|
||||
A = 5000;
|
||||
C = "";
|
||||
}
|
||||
|
||||
protected int a;
|
||||
public int b;
|
||||
public int c;
|
||||
public int d;
|
||||
private int e;
|
||||
private int f;
|
||||
public byte g[];
|
||||
private static int h[];
|
||||
final int i = 61;
|
||||
final int j = 59;
|
||||
final int k = 42;
|
||||
final int l = 43;
|
||||
final int m = 44;
|
||||
final int n = 45;
|
||||
final int o = 46;
|
||||
final int p = 47;
|
||||
final int q = 92;
|
||||
final int r = 32;
|
||||
final int s = 124;
|
||||
final int t = 34;
|
||||
public m u;
|
||||
public m v;
|
||||
static char w[];
|
||||
public static int x[];
|
||||
protected boolean y;
|
||||
public static int z[];
|
||||
protected int A;
|
||||
protected int B;
|
||||
protected String C;
|
||||
public static int D;
|
||||
private static String E;
|
||||
|
||||
static
|
||||
{
|
||||
E = "!uwy\020:in";
|
||||
break MISSING_BLOCK_LABEL_123;
|
||||
local;
|
||||
toCharArray();
|
||||
JVM INSTR dup ;
|
||||
JVM INSTR arraylength .length;
|
||||
JVM INSTR swap ;
|
||||
int j1 = 0;
|
||||
JVM INSTR swap ;
|
||||
JVM INSTR dup_x1 ;
|
||||
1;
|
||||
JVM INSTR icmpgt 102;
|
||||
goto _L1 _L2
|
||||
_L1:
|
||||
JVM INSTR dup ;
|
||||
j1;
|
||||
_L4:
|
||||
JVM INSTR dup2 ;
|
||||
JVM INSTR caload ;
|
||||
byte byte0;
|
||||
switch(j1 % 5)
|
||||
{
|
||||
case 0: // '\0'
|
||||
byte0 = 0x55;
|
||||
break;
|
||||
|
||||
case 1: // '\001'
|
||||
byte0 = 28;
|
||||
break;
|
||||
|
||||
case 2: // '\002'
|
||||
byte0 = 26;
|
||||
break;
|
||||
|
||||
case 3: // '\003'
|
||||
byte0 = 28;
|
||||
break;
|
||||
|
||||
default:
|
||||
byte0 = 61;
|
||||
break;
|
||||
}
|
||||
byte0;
|
||||
JVM INSTR ixor ;
|
||||
(char);
|
||||
JVM INSTR castore ;
|
||||
j1++;
|
||||
JVM INSTR swap ;
|
||||
JVM INSTR dup_x1 ;
|
||||
JVM INSTR ifne 102;
|
||||
goto _L3 _L2
|
||||
_L3:
|
||||
JVM INSTR dup2 ;
|
||||
JVM INSTR swap ;
|
||||
goto _L4
|
||||
_L2:
|
||||
JVM INSTR swap ;
|
||||
JVM INSTR dup_x1 ;
|
||||
j1;
|
||||
JVM INSTR icmpgt 26;
|
||||
goto _L5 _L1
|
||||
_L5:
|
||||
JVM INSTR new #169 <Class String>;
|
||||
JVM INSTR dup_x1 ;
|
||||
JVM INSTR swap ;
|
||||
String();
|
||||
intern();
|
||||
JVM INSTR swap ;
|
||||
JVM INSTR pop ;
|
||||
JVM INSTR ret 1;
|
||||
h = (new int[] {
|
||||
0, 1, 3, 7, 15, 31, 63, 127, 255, 511,
|
||||
1023, 2047, 4095, 8191, 16383, 32767, 65535, 0x1ffff, 0x3ffff, 0x7ffff,
|
||||
0xfffff, 0x1fffff, 0x3fffff, 0x7fffff, 0xffffff, 0x1ffffff, 0x3ffffff, 0x7ffffff, 0xfffffff, 0x1fffffff,
|
||||
0x3fffffff, 0x7fffffff, -1
|
||||
});
|
||||
x = new int[256];
|
||||
z = new int[256];
|
||||
w = new char[256];
|
||||
for(int i1 = 0; i1 < 256; i1++)
|
||||
w[i1] = (char)i1;
|
||||
|
||||
w[61] = '=';
|
||||
w[59] = ';';
|
||||
w[42] = '*';
|
||||
w[43] = '+';
|
||||
w[44] = ',';
|
||||
w[45] = '-';
|
||||
w[46] = '.';
|
||||
w[47] = '/';
|
||||
w[92] = '\\';
|
||||
w[124] = '|';
|
||||
w[33] = '!';
|
||||
w[34] = '"';
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user