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

765 lines
17 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: q.java
import java.io.*;
import java.net.URL;
public class q
{
public q()
{
}
public static InputStream a(String s)
throws IOException
{
boolean flag = d;
a;
if(flag) goto _L2; else goto _L1
_L1:
Object obj;
if(a == null)
{
obj = new BufferedInputStream(new FileInputStream(s));
if(!flag)
break MISSING_BLOCK_LABEL_51;
}
new URL(a, s);
_L2:
URL url;
url;
obj = url.openStream();
return (InputStream)obj;
}
public static void a(String s, byte abyte0[], int i)
throws IOException
{
InputStream inputstream = a(s);
DataInputStream datainputstream = new DataInputStream(inputstream);
try
{
datainputstream.readFully(abyte0, 0, i);
}
catch(EOFException eofexception) { }
datainputstream.close();
}
public static int a(byte byte0)
{
return byte0 & 0xff;
}
public static int a(byte abyte0[], int i)
{
return ((abyte0[i] & 0xff) << 8) + (abyte0[i + 1] & 0xff);
}
public static int b(byte abyte0[], int i)
{
return ((abyte0[i] & 0xff) << 24) + ((abyte0[i + 1] & 0xff) << 16) + ((abyte0[i + 2] & 0xff) << 8) + (abyte0[i + 3] & 0xff);
}
public static long c(byte abyte0[], int i)
{
return (((long)b(abyte0, i) & 0xffffffffL) << 32) + ((long)b(abyte0, i + 4) & 0xffffffffL);
}
public static int d(byte abyte0[], int i)
{
int j = a(abyte0[i]) * 256 + a(abyte0[i + 1]);
j;
if(d) goto _L2; else goto _L1
_L1:
32767;
JVM INSTR icmple 38;
goto _L3 _L4
_L3:
break MISSING_BLOCK_LABEL_33;
_L4:
break MISSING_BLOCK_LABEL_38;
j -= 0x10000;
j;
_L2:
return;
}
public static int e(byte abyte0[], int i)
{
abyte0[i] & 0xff;
128;
if(d) goto _L2; else goto _L1
_L1:
JVM INSTR icmpge 23;
goto _L3 _L4
_L3:
break MISSING_BLOCK_LABEL_19;
_L4:
break MISSING_BLOCK_LABEL_23;
return abyte0[i];
((abyte0[i] & 0xff) - 128 << 24) + ((abyte0[i + 1] & 0xff) << 16) + ((abyte0[i + 2] & 0xff) << 8);
abyte0[i + 3] & 0xff;
_L2:
JVM INSTR iadd ;
return;
}
public static int a(byte abyte0[], int i, int j)
{
int k;
int l;
int i1;
boolean flag1;
flag1 = d;
boolean flag = false;
k = i >> 3;
l = 8 - (i & 7);
i1 = 0;
_L4:
if(j <= l)
break; /* Loop/switch isn't completed */
i1 += (abyte0[k++] & b[l]) << j - l;
j -= l;
l = 8;
if(flag1) goto _L2; else goto _L1
_L1:
if(!flag1) goto _L4; else goto _L3
_L3:
j;
l;
if(flag1) goto _L6; else goto _L5
_L5:
JVM INSTR icmpne 105;
goto _L7 _L2
_L7:
i1 += abyte0[k] & b[l];
if(!flag1) goto _L8; else goto _L2
_L2:
i1;
abyte0[k] >> l - j & b[j];
_L6:
JVM INSTR iadd ;
i1;
_L8:
return i1;
}
public static String a(String s, int i)
{
String s1;
int j;
boolean flag1;
flag1 = d;
boolean flag = false;
s1 = "";
j = 0;
_L24:
if(j >= i)
break; /* Loop/switch isn't completed */
j;
if(flag1) goto _L2; else goto _L1
_L1:
s.length();
JVM INSTR icmplt 58;
goto _L3 _L4
_L3:
break MISSING_BLOCK_LABEL_33;
_L4:
break MISSING_BLOCK_LABEL_58;
s1 = s1 + " ";
if(!flag1)
break MISSING_BLOCK_LABEL_228;
s.charAt(j);
_L2:
int k;
k;
k;
97;
if(flag1) goto _L6; else goto _L5
_L5:
JVM INSTR icmplt 115;
goto _L7 _L8
_L7:
k;
122;
if(flag1) goto _L6; else goto _L9
_L9:
JVM INSTR icmpgt 115;
goto _L10 _L8
_L10:
s1 = s1 + k;
if(!flag1)
break MISSING_BLOCK_LABEL_228;
_L8:
k;
65;
_L6:
if(flag1) goto _L12; else goto _L11
_L11:
JVM INSTR icmplt 164;
goto _L13 _L14
_L13:
k;
90;
if(flag1) goto _L12; else goto _L15
_L15:
JVM INSTR icmpgt 164;
goto _L16 _L14
_L16:
s1 = s1 + k;
if(!flag1)
break MISSING_BLOCK_LABEL_228;
_L14:
k;
48;
_L12:
if(flag1) goto _L18; else goto _L17
_L17:
JVM INSTR icmplt 208;
goto _L19 _L20
_L19:
break MISSING_BLOCK_LABEL_176;
_L20:
break MISSING_BLOCK_LABEL_208;
k;
57;
_L18:
JVM INSTR icmpgt 208;
goto _L21 _L22
_L21:
break MISSING_BLOCK_LABEL_183;
_L22:
break MISSING_BLOCK_LABEL_208;
s1 = s1 + k;
if(!flag1)
break MISSING_BLOCK_LABEL_228;
s1 = s1 + '_';
j++;
if(!flag1) goto _L24; else goto _L23
_L23:
return s1;
}
public static String a(int i)
{
return (i >> 24 & 0xff) + "." + (i >> 16 & 0xff) + "." + (i >> 8 & 0xff) + "." + (i & 0xff);
}
public static long b(String s)
{
String s1;
long l;
boolean flag1;
flag1 = d;
boolean flag = false;
s1 = "";
l = 0;
_L22:
char c1;
if(l >= s.length())
break; /* Loop/switch isn't completed */
c1 = s.charAt(l);
c1;
'a';
if(flag1) goto _L2; else goto _L1
_L1:
if(flag1) goto _L4; else goto _L3
_L3:
JVM INSTR icmplt 81;
goto _L5 _L6
_L5:
c1;
'z';
if(flag1) goto _L4; else goto _L7
_L7:
JVM INSTR icmpgt 81;
goto _L8 _L6
_L8:
s1 = s1 + c1;
if(!flag1)
break MISSING_BLOCK_LABEL_201;
_L6:
c1;
65;
_L4:
if(flag1) goto _L10; else goto _L9
_L9:
JVM INSTR icmplt 137;
goto _L11 _L12
_L11:
c1;
'Z';
if(flag1) goto _L10; else goto _L13
_L13:
JVM INSTR icmpgt 137;
goto _L14 _L12
_L14:
s1 = s1 + (char)((c1 + 97) - 65);
if(!flag1)
break MISSING_BLOCK_LABEL_201;
_L12:
c1;
48;
_L10:
if(flag1) goto _L16; else goto _L15
_L15:
JVM INSTR icmplt 181;
goto _L17 _L18
_L17:
break MISSING_BLOCK_LABEL_149;
_L18:
break MISSING_BLOCK_LABEL_181;
c1;
57;
_L16:
JVM INSTR icmpgt 181;
goto _L19 _L20
_L19:
break MISSING_BLOCK_LABEL_156;
_L20:
break MISSING_BLOCK_LABEL_181;
s1 = s1 + c1;
if(!flag1)
break MISSING_BLOCK_LABEL_201;
s1 = s1 + ' ';
l++;
if(!flag1) goto _L22; else goto _L21
_L21:
s1 = s1.trim();
s1;
if(flag1) goto _L24; else goto _L23
_L23:
length();
12;
_L2:
JVM INSTR icmple 236;
goto _L25 _L26
_L25:
s1.substring(0, 12);
_L24:
s1;
_L26:
int i;
l = 0L;
i = 0;
_L42:
char c2;
if(i >= s1.length())
break; /* Loop/switch isn't completed */
c2 = s1.charAt(i);
l * 37L;
if(flag1) goto _L28; else goto _L27
_L27:
l;
c2;
'a';
if(flag1) goto _L30; else goto _L29
_L29:
JVM INSTR icmplt 309;
goto _L31 _L32
_L31:
c2;
'z';
if(flag1) goto _L30; else goto _L33
_L33:
JVM INSTR icmpgt 309;
goto _L34 _L32
_L34:
l += (1 + c2) - 97;
if(!flag1)
break MISSING_BLOCK_LABEL_340;
_L32:
c2;
48;
_L30:
if(flag1) goto _L36; else goto _L35
_L35:
JVM INSTR icmplt 340;
goto _L37 _L38
_L37:
break MISSING_BLOCK_LABEL_321;
_L38:
break MISSING_BLOCK_LABEL_340;
c2;
57;
_L36:
JVM INSTR icmpgt 340;
goto _L39 _L40
_L39:
break MISSING_BLOCK_LABEL_328;
_L40:
break MISSING_BLOCK_LABEL_340;
l += (27 + c2) - 48;
i++;
if(!flag1) goto _L42; else goto _L41
_L41:
l;
_L28:
return;
}
public static String a(long l)
{
String s;
boolean flag1;
flag1 = d;
boolean flag = false;
if(l < 0L)
return A;
s = "";
_L4:
int i;
if(l == 0L)
break; /* Loop/switch isn't completed */
i = (int)(l % 37L);
l /= 37L;
i;
if(flag1) goto _L2; else goto _L1
_L1:
if(i != 0)
break; /* Loop/switch isn't completed */
s = " " + s;
if(!flag1) goto _L4; else goto _L3
_L3:
i;
_L2:
if(flag1) goto _L6; else goto _L5
_L5:
27;
JVM INSTR icmpge 159;
goto _L7 _L8
_L7:
break MISSING_BLOCK_LABEL_87;
_L8:
break; /* Loop/switch isn't completed */
l % 37L != 0L;
_L6:
JVM INSTR ifne 128;
goto _L9 _L10
_L9:
break MISSING_BLOCK_LABEL_97;
_L10:
break; /* Loop/switch isn't completed */
s = (char)((i + 65) - 1) + s;
if(!flag1) goto _L4; else goto _L11
_L11:
s = (char)((i + 97) - 1) + s;
if(!flag1) goto _L4; else goto _L12
_L12:
s = (char)((i + 48) - 27) + s;
if(!flag1) goto _L4; else goto _L13
_L13:
return s;
}
public static int a(String s, byte abyte0[])
{
int i;
int j;
int k;
int l;
boolean flag1;
label0:
{
flag1 = d;
boolean flag = false;
i = a(abyte0, 0);
j = 0;
s = s.toUpperCase();
k = 0;
do
{
if(k >= s.length())
break;
j = (j * 61 + s.charAt(k)) - 32;
k++;
if(flag1)
break label0;
} while(!flag1);
k = 2 + i * 10;
}
l = 0;
_L8:
int i1;
int j1;
if(l >= i)
break; /* Loop/switch isn't completed */
i1 = (abyte0[l * 10 + 2] & 0xff) * 0x1000000 + (abyte0[l * 10 + 3] & 0xff) * 0x10000 + (abyte0[l * 10 + 4] & 0xff) * 256 + (abyte0[l * 10 + 5] & 0xff);
j1 = (abyte0[l * 10 + 9] & 0xff) * 0x10000 + (abyte0[l * 10 + 10] & 0xff) * 256 + (abyte0[l * 10 + 11] & 0xff);
i1;
if(flag1) goto _L2; else goto _L1
_L1:
j;
if(flag1) goto _L4; else goto _L3
_L3:
JVM INSTR icmpne 220;
goto _L5 _L6
_L5:
break MISSING_BLOCK_LABEL_217;
_L6:
break MISSING_BLOCK_LABEL_220;
return k;
k;
j1;
_L4:
JVM INSTR iadd ;
k;
l++;
if(!flag1) goto _L8; else goto _L7
_L7:
false;
_L2:
return;
}
public static int b(String s, byte abyte0[])
{
int i;
int j;
int k;
int l;
boolean flag1;
label0:
{
flag1 = d;
boolean flag = false;
i = a(abyte0, 0);
j = 0;
s = s.toUpperCase();
k = 0;
do
{
if(k >= s.length())
break;
j = (j * 61 + s.charAt(k)) - 32;
k++;
if(flag1)
break label0;
} while(!flag1);
k = 2 + i * 10;
}
l = 0;
_L8:
int i1;
int j1;
int k1;
if(l >= i)
break; /* Loop/switch isn't completed */
i1 = (abyte0[l * 10 + 2] & 0xff) * 0x1000000 + (abyte0[l * 10 + 3] & 0xff) * 0x10000 + (abyte0[l * 10 + 4] & 0xff) * 256 + (abyte0[l * 10 + 5] & 0xff);
j1 = (abyte0[l * 10 + 6] & 0xff) * 0x10000 + (abyte0[l * 10 + 7] & 0xff) * 256 + (abyte0[l * 10 + 8] & 0xff);
k1 = (abyte0[l * 10 + 9] & 0xff) * 0x10000 + (abyte0[l * 10 + 10] & 0xff) * 256 + (abyte0[l * 10 + 11] & 0xff);
i1;
if(flag1) goto _L2; else goto _L1
_L1:
j;
if(flag1) goto _L4; else goto _L3
_L3:
JVM INSTR icmpne 273;
goto _L5 _L6
_L5:
break MISSING_BLOCK_LABEL_270;
_L6:
break MISSING_BLOCK_LABEL_273;
return j1;
k;
k1;
_L4:
JVM INSTR iadd ;
k;
l++;
if(!flag1) goto _L8; else goto _L7
_L7:
false;
_L2:
return;
}
public static byte[] a(String s, int i, byte abyte0[])
{
return a(s, i, abyte0, null);
}
public static byte[] a(String s, int i, byte abyte0[], byte abyte1[])
{
int j;
int k;
int l;
int i1;
boolean flag1;
label0:
{
flag1 = d;
boolean flag = false;
j = (abyte0[0] & 0xff) * 256 + (abyte0[1] & 0xff);
k = 0;
s = s.toUpperCase();
l = 0;
do
{
if(l >= s.length())
break;
k = (k * 61 + s.charAt(l)) - 32;
l++;
if(flag1)
break label0;
} while(!flag1);
l = 2 + j * 10;
}
i1 = 0;
_L18:
int j1;
int k1;
int l1;
if(i1 >= j)
break; /* Loop/switch isn't completed */
j1 = (abyte0[i1 * 10 + 2] & 0xff) * 0x1000000 + (abyte0[i1 * 10 + 3] & 0xff) * 0x10000 + (abyte0[i1 * 10 + 4] & 0xff) * 256 + (abyte0[i1 * 10 + 5] & 0xff);
k1 = (abyte0[i1 * 10 + 6] & 0xff) * 0x10000 + (abyte0[i1 * 10 + 7] & 0xff) * 256 + (abyte0[i1 * 10 + 8] & 0xff);
l1 = (abyte0[i1 * 10 + 9] & 0xff) * 0x10000 + (abyte0[i1 * 10 + 10] & 0xff) * 256 + (abyte0[i1 * 10 + 11] & 0xff);
j1;
k;
if(flag1) goto _L2; else goto _L1
_L1:
JVM INSTR icmpne 364;
goto _L3 _L4
_L3:
abyte1;
if(flag1) goto _L6; else goto _L5
_L5:
if(abyte1 != null) goto _L8; else goto _L7
_L7:
new byte[k1 + i];
_L6:
abyte1;
_L8:
k1;
if(flag1) goto _L10; else goto _L9
_L9:
l1;
JVM INSTR icmpeq 328;
goto _L11 _L12
_L11:
u.a(abyte1, k1, abyte0, l1, l);
if(!flag1) goto _L13; else goto _L12
_L12:
false;
_L10:
int i2;
i2;
_L16:
if(i2 >= k1)
break; /* Loop/switch isn't completed */
abyte1;
if(flag1) goto _L15; else goto _L14
_L14:
i2;
abyte0[l + i2];
JVM INSTR bastore ;
i2++;
if(!flag1) goto _L16; else goto _L13
_L13:
abyte1;
_L15:
return;
_L4:
l;
l1;
_L2:
JVM INSTR iadd ;
l;
i1++;
if(!flag1) goto _L18; else goto _L17
_L17:
return null;
}
public static URL a;
private static int b[];
public static boolean c;
public static boolean d;
private static String A;
static
{
A = "md!T8mn\b[5io";
break MISSING_BLOCK_LABEL_122;
local;
toCharArray();
JVM INSTR dup ;
JVM INSTR arraylength .length;
JVM INSTR swap ;
int i = 0;
JVM INSTR swap ;
JVM INSTR dup_x1 ;
1;
JVM INSTR icmpgt 101;
goto _L1 _L2
_L1:
JVM INSTR dup ;
i;
_L4:
JVM INSTR dup2 ;
JVM INSTR caload ;
byte byte0;
switch(i % 5)
{
case 0: // '\0'
byte0 = 4;
break;
case 1: // '\001'
byte0 = 10;
break;
case 2: // '\002'
byte0 = 87;
break;
case 3: // '\003'
byte0 = 53;
break;
default:
byte0 = 84;
break;
}
byte0;
JVM INSTR ixor ;
(char);
JVM INSTR castore ;
i++;
JVM INSTR swap ;
JVM INSTR dup_x1 ;
JVM INSTR ifne 101;
goto _L3 _L2
_L3:
JVM INSTR dup2 ;
JVM INSTR swap ;
goto _L4
_L2:
JVM INSTR swap ;
JVM INSTR dup_x1 ;
i;
JVM INSTR icmpgt 26;
goto _L5 _L1
_L5:
JVM INSTR new #112 <Class String>;
JVM INSTR dup_x1 ;
JVM INSTR swap ;
String();
intern();
JVM INSTR swap ;
JVM INSTR pop ;
JVM INSTR ret 0;
a = null;
b = (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
});
}
}