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.
330 lines
6.4 KiB
Java
330 lines
6.4 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: j.java
|
|
|
|
|
|
public class j
|
|
{
|
|
|
|
public j()
|
|
{
|
|
}
|
|
|
|
public static String a(byte abyte0[], int i, int k)
|
|
{
|
|
boolean flag1;
|
|
flag1 = q.d;
|
|
boolean flag = false;
|
|
int l;
|
|
int i1;
|
|
int j1;
|
|
l = 0;
|
|
i1 = -1;
|
|
j1 = 0;
|
|
_L22:
|
|
int k1;
|
|
int l1;
|
|
if(j1 >= k)
|
|
break; /* Loop/switch isn't completed */
|
|
k1 = abyte0[i++] & 0xff;
|
|
l1 = k1 >> 4 & 0xf;
|
|
i1;
|
|
if(flag1) goto _L2; else goto _L1
|
|
_L1:
|
|
-1;
|
|
if(flag1) goto _L4; else goto _L3
|
|
_L3:
|
|
JVM INSTR icmpne 100;
|
|
goto _L5 _L6
|
|
_L5:
|
|
l1;
|
|
if(flag1) goto _L8; else goto _L7
|
|
_L7:
|
|
13;
|
|
JVM INSTR icmpge 91;
|
|
goto _L9 _L10
|
|
_L9:
|
|
b[l++] = c[l1];
|
|
if(!flag1) goto _L11; else goto _L10
|
|
_L10:
|
|
l1;
|
|
_L8:
|
|
i1;
|
|
if(!flag1) goto _L11; else goto _L6
|
|
_L6:
|
|
b[l++] = c[((i1 << 4) + l1) - 195];
|
|
-1;
|
|
_L2:
|
|
i1;
|
|
_L11:
|
|
l1 = k1 & 0xf;
|
|
i1;
|
|
if(flag1) goto _L13; else goto _L12
|
|
_L12:
|
|
-1;
|
|
JVM INSTR icmpne 186;
|
|
goto _L14 _L15
|
|
_L14:
|
|
l1;
|
|
if(flag1) goto _L17; else goto _L16
|
|
_L16:
|
|
13;
|
|
JVM INSTR icmpge 177;
|
|
goto _L18 _L19
|
|
_L18:
|
|
b[l++] = c[l1];
|
|
if(!flag1) goto _L20; else goto _L19
|
|
_L19:
|
|
l1;
|
|
_L17:
|
|
i1;
|
|
if(!flag1) goto _L20; else goto _L15
|
|
_L15:
|
|
b[l++] = c[((i1 << 4) + l1) - 195];
|
|
-1;
|
|
_L13:
|
|
i1;
|
|
_L20:
|
|
j1++;
|
|
if(!flag1) goto _L22; else goto _L21
|
|
_L21:
|
|
j1 = 1;
|
|
k1 = 0;
|
|
_L51:
|
|
k1;
|
|
l;
|
|
_L4:
|
|
JVM INSTR icmpge 377;
|
|
goto _L23 _L24
|
|
_L24:
|
|
break; /* Loop/switch isn't completed */
|
|
_L23:
|
|
l1 = b[k1];
|
|
k1;
|
|
4;
|
|
if(flag1) goto _L26; else goto _L25
|
|
_L25:
|
|
JVM INSTR icmple 273;
|
|
goto _L27 _L28
|
|
_L27:
|
|
l1;
|
|
'@';
|
|
if(flag1) goto _L26; else goto _L29
|
|
_L29:
|
|
JVM INSTR icmpne 273;
|
|
goto _L30 _L28
|
|
_L30:
|
|
b[k1] = ' ';
|
|
_L28:
|
|
l1;
|
|
if(flag1) goto _L32; else goto _L31
|
|
_L31:
|
|
37;
|
|
_L26:
|
|
JVM INSTR icmpne 293;
|
|
goto _L33 _L34
|
|
_L33:
|
|
b[k1] = ' ';
|
|
_L34:
|
|
j1;
|
|
_L32:
|
|
if(flag1) goto _L36; else goto _L35
|
|
_L35:
|
|
JVM INSTR ifeq 342;
|
|
goto _L37 _L38
|
|
_L37:
|
|
l1;
|
|
'a';
|
|
if(flag1) goto _L40; else goto _L39
|
|
_L39:
|
|
JVM INSTR icmplt 342;
|
|
goto _L41 _L38
|
|
_L41:
|
|
l1;
|
|
'z';
|
|
if(flag1) goto _L40; else goto _L42
|
|
_L42:
|
|
JVM INSTR icmpgt 342;
|
|
goto _L43 _L38
|
|
_L43:
|
|
b[k1] += '\uFFE0';
|
|
j1 = 0;
|
|
_L38:
|
|
l1;
|
|
_L36:
|
|
if(flag1) goto _L45; else goto _L44
|
|
_L44:
|
|
46;
|
|
_L40:
|
|
JVM INSTR icmpeq 366;
|
|
goto _L46 _L47
|
|
_L46:
|
|
l1;
|
|
if(flag1) goto _L45; else goto _L48
|
|
_L48:
|
|
'!';
|
|
JVM INSTR icmpne 369;
|
|
goto _L47 _L49
|
|
_L47:
|
|
true;
|
|
_L45:
|
|
j1;
|
|
_L49:
|
|
k1++;
|
|
if(!flag1) goto _L51; else goto _L50
|
|
_L50:
|
|
return new String(b, 0, l);
|
|
Exception exception;
|
|
exception;
|
|
return ".";
|
|
}
|
|
|
|
public static int a(String s)
|
|
{
|
|
boolean flag1;
|
|
flag1 = q.d;
|
|
boolean flag = false;
|
|
s.length();
|
|
if(flag1) goto _L2; else goto _L1
|
|
_L1:
|
|
80;
|
|
JVM INSTR icmple 29;
|
|
goto _L3 _L4
|
|
_L3:
|
|
break MISSING_BLOCK_LABEL_21;
|
|
_L4:
|
|
break MISSING_BLOCK_LABEL_29;
|
|
s = s.substring(0, 80);
|
|
s = s.toLowerCase();
|
|
false;
|
|
_L2:
|
|
int i;
|
|
i;
|
|
int k;
|
|
int l;
|
|
k = -1;
|
|
l = 0;
|
|
_L34:
|
|
char c1;
|
|
int i1;
|
|
if(l >= s.length())
|
|
break; /* Loop/switch isn't completed */
|
|
c1 = s.charAt(l);
|
|
i1 = 0;
|
|
0;
|
|
if(flag1) goto _L6; else goto _L5
|
|
_L5:
|
|
int j1;
|
|
j1;
|
|
_L15:
|
|
if(j1 >= c.length)
|
|
break; /* Loop/switch isn't completed */
|
|
c1;
|
|
if(flag1) goto _L8; else goto _L7
|
|
_L7:
|
|
c[j1];
|
|
if(flag1) goto _L10; else goto _L9
|
|
_L9:
|
|
JVM INSTR icmpeq 104;
|
|
goto _L11 _L12
|
|
_L11:
|
|
if(!flag1) goto _L13; else goto _L12
|
|
_L12:
|
|
j1;
|
|
_L8:
|
|
i1;
|
|
if(!flag1)
|
|
break; /* Loop/switch isn't completed */
|
|
_L13:
|
|
j1++;
|
|
if(!flag1) goto _L15; else goto _L14
|
|
_L14:
|
|
i1;
|
|
0xc;
|
|
_L10:
|
|
if(flag1) goto _L17; else goto _L16
|
|
_L16:
|
|
JVM INSTR icmple 141;
|
|
goto _L18 _L19
|
|
_L18:
|
|
break MISSING_BLOCK_LABEL_133;
|
|
_L19:
|
|
break MISSING_BLOCK_LABEL_141;
|
|
i1 += 195;
|
|
k;
|
|
-1;
|
|
_L17:
|
|
if(flag1) goto _L21; else goto _L20
|
|
_L20:
|
|
JVM INSTR icmpne 187;
|
|
goto _L22 _L23
|
|
_L22:
|
|
i1;
|
|
if(flag1) goto _L25; else goto _L24
|
|
_L24:
|
|
13;
|
|
JVM INSTR icmpge 171;
|
|
goto _L26 _L27
|
|
_L26:
|
|
i1;
|
|
_L25:
|
|
k;
|
|
if(!flag1) goto _L28; else goto _L27
|
|
_L27:
|
|
a[i++] = (byte)i1;
|
|
if(!flag1) goto _L28; else goto _L23
|
|
_L23:
|
|
i1;
|
|
13;
|
|
_L21:
|
|
if(flag1) goto _L30; else goto _L29
|
|
_L29:
|
|
JVM INSTR icmpge 221;
|
|
goto _L31 _L32
|
|
_L31:
|
|
a[i++] = (byte)((k << 4) + i1);
|
|
k = -1;
|
|
if(!flag1) goto _L28; else goto _L32
|
|
_L32:
|
|
a[i++] = (byte)((k << 4) + (i1 >> 4));
|
|
i1;
|
|
15;
|
|
_L30:
|
|
JVM INSTR iand ;
|
|
k;
|
|
_L28:
|
|
l++;
|
|
if(!flag1) goto _L34; else goto _L33
|
|
_L33:
|
|
k;
|
|
_L6:
|
|
if(flag1) goto _L36; else goto _L35
|
|
_L35:
|
|
-1;
|
|
JVM INSTR icmpeq 274;
|
|
goto _L37 _L38
|
|
_L37:
|
|
break MISSING_BLOCK_LABEL_262;
|
|
_L38:
|
|
break MISSING_BLOCK_LABEL_274;
|
|
a[i++] = (byte)(k << 4);
|
|
i;
|
|
_L36:
|
|
return;
|
|
}
|
|
|
|
public static byte a[] = new byte[100];
|
|
public static char b[] = new char[100];
|
|
private static char c[] = {
|
|
' ', 'e', 't', 'a', 'o', 'i', 'h', 'n', 's', 'r',
|
|
'd', 'l', 'u', 'm', 'w', 'c', 'y', 'f', 'g', 'p',
|
|
'b', 'v', 'k', 'x', 'j', 'q', 'z', '0', '1', '2',
|
|
'3', '4', '5', '6', '7', '8', '9', ' ', '!', '?',
|
|
'.', ',', ':', ';', '(', ')', '-', '&', '*', '\\',
|
|
'\'', '@', '#', '+', '=', '\243', '$', '%', '"', '[',
|
|
']'
|
|
};
|
|
|
|
}
|