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.
108 lines
2.3 KiB
Java
108 lines
2.3 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: n.java
|
|
|
|
import java.math.BigInteger;
|
|
import java.util.zip.CRC32;
|
|
|
|
public class n
|
|
{
|
|
|
|
private n()
|
|
{
|
|
}
|
|
|
|
public n(byte abyte0[])
|
|
{
|
|
a = abyte0;
|
|
b = 0;
|
|
}
|
|
|
|
public void a(int i)
|
|
{
|
|
a[b++] = (byte)i;
|
|
}
|
|
|
|
public void b(int i)
|
|
{
|
|
a[b++] = (byte)(i >> 24);
|
|
a[b++] = (byte)(i >> 16);
|
|
a[b++] = (byte)(i >> 8);
|
|
a[b++] = (byte)i;
|
|
}
|
|
|
|
public void a(String s)
|
|
{
|
|
s.getBytes(0, s.length(), a, b);
|
|
b += s.length();
|
|
a[b++] = 10;
|
|
}
|
|
|
|
public void a(byte abyte0[], int i, int j)
|
|
{
|
|
int k = i;
|
|
do
|
|
{
|
|
if(k >= i + j)
|
|
break;
|
|
a[b++] = abyte0[k];
|
|
k++;
|
|
} while(!q.d);
|
|
}
|
|
|
|
public int a()
|
|
{
|
|
return a[b++] & 0xff;
|
|
}
|
|
|
|
public int b()
|
|
{
|
|
b += 2;
|
|
return ((a[b - 2] & 0xff) << 8) + (a[b - 1] & 0xff);
|
|
}
|
|
|
|
public int c()
|
|
{
|
|
b += 4;
|
|
return ((a[b - 4] & 0xff) << 24) + ((a[b - 3] & 0xff) << 16) + ((a[b - 2] & 0xff) << 8) + (a[b - 1] & 0xff);
|
|
}
|
|
|
|
public void b(byte abyte0[], int i, int j)
|
|
{
|
|
int k = i;
|
|
do
|
|
{
|
|
if(k >= i + j)
|
|
break;
|
|
abyte0[k] = a[b++];
|
|
k++;
|
|
} while(!q.d);
|
|
}
|
|
|
|
public void a(BigInteger biginteger, BigInteger biginteger1)
|
|
{
|
|
int i = b;
|
|
b = 0;
|
|
byte abyte0[] = new byte[i];
|
|
b(abyte0, 0, i);
|
|
BigInteger biginteger2 = new BigInteger(abyte0);
|
|
BigInteger biginteger3 = biginteger2.modPow(biginteger, biginteger1);
|
|
byte abyte1[] = biginteger3.toByteArray();
|
|
b = 0;
|
|
a(abyte1.length);
|
|
a(abyte1, 0, abyte1.length);
|
|
}
|
|
|
|
public byte a[];
|
|
public int b;
|
|
static CRC32 c = new CRC32();
|
|
private static final int d[] = {
|
|
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
|
|
};
|
|
|
|
}
|