Files
sbot_archive/m.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

265 lines
6.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: m.java
public final class m
{
public m(int ai[])
{
label0:
{
boolean flag = q.d;
super();
c = new int[256];
b = new int[256];
int i = 0;
do
{
if(i >= ai.length)
break;
b[i] = ai[i];
i++;
if(flag)
break label0;
} while(!flag);
c();
}
}
public final int a()
{
a--;
if(q.d) goto _L2; else goto _L1
_L1:
JVM INSTR ifne 31;
goto _L3 _L4
_L3:
break MISSING_BLOCK_LABEL_20;
_L4:
break MISSING_BLOCK_LABEL_31;
b();
a = 255;
b[a];
_L2:
return;
}
private final void b()
{
boolean flag1 = q.d;
boolean flag = false;
e += ++f;
int i = 0;
do
{
if(i >= 256)
break;
int j = c[i];
if(!flag1)
{
switch(i & 3)
{
default:
break;
case 0: // '\0'
d ^= d << 13;
if(!flag1)
break;
// fall through
case 1: // '\001'
d ^= d >>> 6;
if(!flag1)
break;
// fall through
case 2: // '\002'
d ^= d << 2;
if(!flag1)
break;
// fall through
case 3: // '\003'
d ^= d >>> 16;
break;
}
d += c[i + 128 & 0xff];
}
int k;
c[i] = k = c[(j & 0x3fc) >> 2] + d + e;
b[i] = e = c[(k >> 8 & 0x3fc) >> 2] + j;
i++;
} while(!flag1);
}
private final void c()
{
int i;
int j;
int k;
int l;
int i1;
int j1;
int k1;
int l1;
int i2;
boolean flag1;
label0:
{
flag1 = q.d;
boolean flag = false;
l1 = i = j = k = l = i1 = j1 = k1 = 0x9e3779b9;
i2 = 0;
do
{
if(i2 >= 4)
break;
l1 ^= i << 11;
k += l1;
i += j;
i ^= j >>> 2;
l += i;
j += k;
j ^= k << 8;
i1 += j;
k += l;
k ^= l >>> 16;
j1 += k;
l += i1;
l ^= i1 << 10;
k1 += l;
i1 += j1;
i1 ^= j1 >>> 4;
l1 += i1;
j1 += k1;
j1 ^= k1 << 8;
i += j1;
k1 += l1;
k1 ^= l1 >>> 9;
j += k1;
l1 += i;
i2++;
if(flag1)
break label0;
} while(!flag1);
i2 = 0;
}
label1:
{
do
{
if(i2 >= 256)
break;
l1 += b[i2];
i += b[i2 + 1];
j += b[i2 + 2];
k += b[i2 + 3];
l += b[i2 + 4];
i1 += b[i2 + 5];
j1 += b[i2 + 6];
k1 += b[i2 + 7];
l1 ^= i << 11;
k += l1;
i += j;
i ^= j >>> 2;
l += i;
j += k;
j ^= k << 8;
i1 += j;
k += l;
k ^= l >>> 16;
j1 += k;
l += i1;
l ^= i1 << 10;
k1 += l;
i1 += j1;
i1 ^= j1 >>> 4;
l1 += i1;
j1 += k1;
j1 ^= k1 << 8;
i += j1;
k1 += l1;
k1 ^= l1 >>> 9;
j += k1;
l1 += i;
c[i2] = l1;
c[i2 + 1] = i;
c[i2 + 2] = j;
c[i2 + 3] = k;
c[i2 + 4] = l;
c[i2 + 5] = i1;
c[i2 + 6] = j1;
c[i2 + 7] = k1;
i2 += 8;
if(flag1)
break label1;
} while(!flag1);
i2 = 0;
}
label2:
{
do
{
if(i2 >= 256)
break;
l1 += c[i2];
i += c[i2 + 1];
j += c[i2 + 2];
k += c[i2 + 3];
l += c[i2 + 4];
i1 += c[i2 + 5];
j1 += c[i2 + 6];
k1 += c[i2 + 7];
l1 ^= i << 11;
k += l1;
i += j;
i ^= j >>> 2;
l += i;
j += k;
j ^= k << 8;
i1 += j;
k += l;
k ^= l >>> 16;
j1 += k;
l += i1;
l ^= i1 << 10;
k1 += l;
i1 += j1;
i1 ^= j1 >>> 4;
l1 += i1;
j1 += k1;
j1 ^= k1 << 8;
i += j1;
k1 += l1;
k1 ^= l1 >>> 9;
j += k1;
l1 += i;
c[i2] = l1;
c[i2 + 1] = i;
c[i2 + 2] = j;
c[i2 + 3] = k;
c[i2 + 4] = l;
c[i2 + 5] = i1;
c[i2 + 6] = j1;
c[i2 + 7] = k1;
i2 += 8;
if(flag1)
break label2;
} while(!flag1);
b();
a = 256;
}
}
private int a;
private int b[];
private int c[];
private int d;
private int e;
private int f;
}