Files
sbot_archive/x.java
T
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

379 lines
7.2 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: x.java
import java.io.*;
import java.net.Socket;
public class x extends w
implements Runnable
{
public x(Socket socket, a a1)
throws IOException
{
H = false;
L = true;
G = socket;
E = socket.getInputStream();
F = socket.getOutputStream();
L = false;
a1.a(this);
}
public void a()
{
boolean flag;
flag = q.d;
super.a();
H = true;
this;
if(flag) goto _L2; else goto _L1
_L1:
E;
JVM INSTR ifnull 31;
goto _L3 _L4
_L3:
E.close();
_L4:
this;
_L2:
if(flag) goto _L6; else goto _L5
_L5:
F;
JVM INSTR ifnull 49;
goto _L7 _L8
_L7:
F.close();
_L8:
this;
_L6:
G;
if(flag) goto _L10; else goto _L9
_L9:
JVM INSTR ifnull 67;
goto _L11 _L12
_L12:
break MISSING_BLOCK_LABEL_82;
_L11:
G;
_L10:
close();
break MISSING_BLOCK_LABEL_82;
IOException ioexception;
ioexception;
System.out.println(M[1]);
L = true;
synchronized(this)
{
notify();
}
I = null;
return;
}
public int h()
throws IOException
{
H;
if(q.d) goto _L2; else goto _L1
_L1:
if(H)
return 0;
E.read();
_L2:
return;
}
public int d()
throws IOException
{
H;
if(q.d) goto _L2; else goto _L1
_L1:
if(H)
return 0;
E.available();
_L2:
return;
}
public void a(int i, int j, byte abyte0[])
throws IOException
{
boolean flag1 = q.d;
H;
if(flag1) goto _L2; else goto _L1
_L1:
if(H)
return;
false;
_L2:
int k;
k;
boolean flag = false;
_L8:
if(k >= i)
break; /* Loop/switch isn't completed */
int l = E.read(abyte0, k + j, i - k);
if(flag1) goto _L4; else goto _L3
_L3:
JVM INSTR ifgt 70;
goto _L5 _L6
_L5:
break MISSING_BLOCK_LABEL_57;
_L6:
break MISSING_BLOCK_LABEL_70;
throw new IOException(M[0]);
k + l;
_L4:
k;
if(!flag1) goto _L8; else goto _L7
_L7:
}
public void b(byte abyte0[], int i, int j)
throws IOException
{
boolean flag = q.d;
this;
if(flag) goto _L2; else goto _L1
_L1:
H;
JVM INSTR ifeq 18;
goto _L3 _L4
_L3:
break MISSING_BLOCK_LABEL_17;
_L4:
break MISSING_BLOCK_LABEL_18;
return;
this;
_L2:
if(flag) goto _L6; else goto _L5
_L5:
I;
JVM INSTR ifnonnull 39;
goto _L7 _L8
_L7:
break MISSING_BLOCK_LABEL_30;
_L8:
break MISSING_BLOCK_LABEL_39;
I = new byte[5000];
this;
_L6:
JVM INSTR dup ;
x x1;
x1;
JVM INSTR monitorenter ;
int k = 0;
_L14:
if(k >= j)
break; /* Loop/switch isn't completed */
I[K] = abyte0[k + i];
K = (K + 1) % 5000;
if(flag)
continue; /* Loop/switch isn't completed */
this;
if(flag) goto _L10; else goto _L9
_L9:
K;
(J + 4900) % 5000;
JVM INSTR icmpne 124;
goto _L11 _L12
_L11:
throw new IOException(M[3]);
_L12:
k++;
if(!flag) goto _L14; else goto _L13
_L13:
notify();
x1;
_L10:
JVM INSTR monitorexit ;
goto _L15
Exception exception;
exception;
throw exception;
_L15:
}
public void run()
{
boolean flag1;
flag1 = q.d;
boolean flag = false;
_L15:
if(L)
break; /* Loop/switch isn't completed */
x x1 = this;
JVM INSTR monitorenter ;
K;
if(flag1) goto _L2; else goto _L1
_L1:
J;
JVM INSTR icmpne 44;
goto _L3 _L4
_L3:
wait();
goto _L4
InterruptedException interruptedexception;
interruptedexception;
_L4:
L;
_L2:
if(flag1) goto _L6; else goto _L5
_L5:
JVM INSTR ifeq 60;
goto _L7 _L8
_L7:
return;
_L8:
J;
_L6:
int j;
j;
K;
J;
if(flag1) goto _L10; else goto _L9
_L9:
JVM INSTR icmplt 96;
goto _L11 _L12
_L11:
int i = K - J;
if(!flag1) goto _L13; else goto _L12
_L12:
'\u1388';
J;
_L10:
JVM INSTR isub ;
i;
goto _L13
Exception exception;
exception;
throw exception;
_L13:
if(i <= 0) goto _L15; else goto _L14
_L14:
try
{
F.write(I, j, i);
}
catch(IOException ioexception)
{
super.y = true;
super.C = M[2] + ioexception;
}
J = (J + i) % 5000;
this;
if(flag1) goto _L17; else goto _L16
_L16:
K;
J;
JVM INSTR icmpne 210;
goto _L18 _L15
_L18:
this;
_L17:
F;
flush();
goto _L15
IOException ioexception1;
ioexception1;
super.y = true;
super.C = M[2] + ioexception1;
if(!flag1) goto _L15; else goto _L19
_L19:
}
private InputStream E;
private OutputStream F;
private Socket G;
private boolean H;
private byte I[];
private int J;
private int K;
private boolean L;
private static String M[];
static
{
String as[];
as = new String[4];
as[0] = "\005\023|";
as[1] = "\005.H3y`?V3x)2]|x4._=f";
as[2] = "\024+H5\177%.\0";
as[3] = "\")\\:n2|U*n2:V3|";
M = as;
break MISSING_BLOCK_LABEL_155;
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 134;
goto _L1 _L2
_L1:
JVM INSTR dup ;
i;
_L4:
JVM INSTR dup2 ;
JVM INSTR caload ;
byte byte0;
switch(i % 5)
{
case 0: // '\0'
byte0 = 0x40;
break;
case 1: // '\001'
byte0 = 92;
break;
case 2: // '\002'
byte0 = 58;
break;
case 3: // '\003'
byte0 = 92;
break;
default:
byte0 = 11;
break;
}
byte0;
JVM INSTR ixor ;
(char);
JVM INSTR castore ;
i++;
JVM INSTR swap ;
JVM INSTR dup_x1 ;
JVM INSTR ifne 134;
goto _L3 _L2
_L3:
JVM INSTR dup2 ;
JVM INSTR swap ;
goto _L4
_L2:
JVM INSTR swap ;
JVM INSTR dup_x1 ;
i;
JVM INSTR icmpgt 57;
goto _L5 _L1
_L5:
JVM INSTR new #157 <Class String>;
JVM INSTR dup_x1 ;
JVM INSTR swap ;
String();
intern();
JVM INSTR swap ;
JVM INSTR pop ;
JVM INSTR ret 0;
}
}