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.
171 lines
3.7 KiB
Java
171 lines
3.7 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: z.java
|
|
|
|
|
|
public class z
|
|
{
|
|
|
|
public z()
|
|
{
|
|
}
|
|
|
|
public static String a()
|
|
{
|
|
return a[b - 29];
|
|
}
|
|
|
|
public static int b()
|
|
{
|
|
boolean flag = q.d;
|
|
b;
|
|
if(flag) goto _L2; else goto _L1
|
|
_L1:
|
|
29;
|
|
JVM INSTR icmpeq 52;
|
|
goto _L3 _L4
|
|
_L3:
|
|
b;
|
|
if(flag) goto _L2; else goto _L5
|
|
_L5:
|
|
31;
|
|
JVM INSTR icmpeq 52;
|
|
goto _L6 _L4
|
|
_L6:
|
|
b;
|
|
if(flag) goto _L2; else goto _L7
|
|
_L7:
|
|
33;
|
|
JVM INSTR icmpeq 52;
|
|
goto _L8 _L4
|
|
_L8:
|
|
b;
|
|
if(flag) goto _L10; else goto _L9
|
|
_L9:
|
|
37;
|
|
JVM INSTR icmpne 55;
|
|
goto _L4 _L11
|
|
_L4:
|
|
43594;
|
|
_L2:
|
|
return;
|
|
_L11:
|
|
43595;
|
|
_L10:
|
|
return;
|
|
}
|
|
|
|
public static void a(int i)
|
|
{
|
|
boolean flag = q.d;
|
|
i;
|
|
28;
|
|
if(flag) goto _L2; else goto _L1
|
|
_L1:
|
|
JVM INSTR icmple 28;
|
|
goto _L3 _L4
|
|
_L3:
|
|
i;
|
|
if(flag) goto _L6; else goto _L5
|
|
_L5:
|
|
39;
|
|
_L2:
|
|
JVM INSTR icmpge 28;
|
|
goto _L7 _L4
|
|
_L7:
|
|
i;
|
|
_L6:
|
|
b;
|
|
_L4:
|
|
}
|
|
|
|
public static String a[];
|
|
public static int b;
|
|
|
|
static
|
|
{
|
|
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 94;
|
|
goto _L1 _L2
|
|
_L1:
|
|
JVM INSTR dup ;
|
|
i;
|
|
_L4:
|
|
JVM INSTR dup2 ;
|
|
JVM INSTR caload ;
|
|
byte byte0;
|
|
switch(i % 5)
|
|
{
|
|
case 0: // '\0'
|
|
byte0 = 0x3b;
|
|
break;
|
|
|
|
case 1: // '\001'
|
|
byte0 = 52;
|
|
break;
|
|
|
|
case 2: // '\002'
|
|
byte0 = 111;
|
|
break;
|
|
|
|
case 3: // '\003'
|
|
byte0 = 85;
|
|
break;
|
|
|
|
default:
|
|
byte0 = 99;
|
|
break;
|
|
}
|
|
byte0;
|
|
JVM INSTR ixor ;
|
|
(char);
|
|
JVM INSTR castore ;
|
|
i++;
|
|
JVM INSTR swap ;
|
|
JVM INSTR dup_x1 ;
|
|
JVM INSTR ifne 94;
|
|
goto _L3 _L2
|
|
_L3:
|
|
JVM INSTR dup2 ;
|
|
JVM INSTR swap ;
|
|
goto _L4
|
|
_L2:
|
|
JVM INSTR swap ;
|
|
JVM INSTR dup_x1 ;
|
|
i;
|
|
JVM INSTR icmpgt 18;
|
|
goto _L5 _L1
|
|
_L5:
|
|
JVM INSTR new #6 <Class String>;
|
|
JVM INSTR dup_x1 ;
|
|
JVM INSTR swap ;
|
|
String();
|
|
intern();
|
|
JVM INSTR swap ;
|
|
JVM INSTR pop ;
|
|
JVM INSTR ret 0;
|
|
String as[] = new String[10];
|
|
as[0] = "S@\033%Y\024\033\037=P\025F\032;\006HW\016%\006\025W\0008LXX\0060\rO\006@";
|
|
as[1] = "S@\033%Y\024\033\037=P\025F\032;\006HW\016%\006\025W\0008LXX\0060\rO\006@";
|
|
as[2] = "S@\033%Y\024\033\032>R\025F\032;\006HW\016%\006\025W\0008LXX\0060\rO\006@";
|
|
as[3] = "S@\033%Y\024\033\032>R\025F\032;\006HW\016%\006\025W\0008LXX\0060\rO\006@";
|
|
as[4] = "S@\033%Y\024\033\0329P\025F\032;\006HW\016%\006\025W\0008LXX\0060\rO\006@";
|
|
as[5] = "S@\033%Y\024\033\0329P\025F\032;\006HW\016%\006\025W\0008LXX\0060\rO\006@";
|
|
as[6] = "S@\033%Y\024\033\0329P\025F\032;\006HW\016%\006\025W\0008LXX\0060\rO\006@";
|
|
as[7] = "S@\033%Y\024\033\0329P\025F\032;\006HW\016%\006\025W\0008LXX\0060\rO\006@";
|
|
as[8] = "S@\033%Y\024\033\f0\027\b\032\035 \r^G\f4\023^\032\f:\016\024W\003<\006U@]z";
|
|
as[9] = "S@\033%Y\024\033\f0\027\b\032\035 \r^G\f4\023^\032\f:\016\024W\003<\006U@]z";
|
|
a = as;
|
|
b = 29;
|
|
}
|
|
}
|