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.
765 lines
17 KiB
Java
765 lines
17 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: q.java
|
|
|
|
import java.io.*;
|
|
import java.net.URL;
|
|
|
|
public class q
|
|
{
|
|
|
|
public q()
|
|
{
|
|
}
|
|
|
|
public static InputStream a(String s)
|
|
throws IOException
|
|
{
|
|
boolean flag = d;
|
|
a;
|
|
if(flag) goto _L2; else goto _L1
|
|
_L1:
|
|
Object obj;
|
|
if(a == null)
|
|
{
|
|
obj = new BufferedInputStream(new FileInputStream(s));
|
|
if(!flag)
|
|
break MISSING_BLOCK_LABEL_51;
|
|
}
|
|
new URL(a, s);
|
|
_L2:
|
|
URL url;
|
|
url;
|
|
obj = url.openStream();
|
|
return (InputStream)obj;
|
|
}
|
|
|
|
public static void a(String s, byte abyte0[], int i)
|
|
throws IOException
|
|
{
|
|
InputStream inputstream = a(s);
|
|
DataInputStream datainputstream = new DataInputStream(inputstream);
|
|
try
|
|
{
|
|
datainputstream.readFully(abyte0, 0, i);
|
|
}
|
|
catch(EOFException eofexception) { }
|
|
datainputstream.close();
|
|
}
|
|
|
|
public static int a(byte byte0)
|
|
{
|
|
return byte0 & 0xff;
|
|
}
|
|
|
|
public static int a(byte abyte0[], int i)
|
|
{
|
|
return ((abyte0[i] & 0xff) << 8) + (abyte0[i + 1] & 0xff);
|
|
}
|
|
|
|
public static int b(byte abyte0[], int i)
|
|
{
|
|
return ((abyte0[i] & 0xff) << 24) + ((abyte0[i + 1] & 0xff) << 16) + ((abyte0[i + 2] & 0xff) << 8) + (abyte0[i + 3] & 0xff);
|
|
}
|
|
|
|
public static long c(byte abyte0[], int i)
|
|
{
|
|
return (((long)b(abyte0, i) & 0xffffffffL) << 32) + ((long)b(abyte0, i + 4) & 0xffffffffL);
|
|
}
|
|
|
|
public static int d(byte abyte0[], int i)
|
|
{
|
|
int j = a(abyte0[i]) * 256 + a(abyte0[i + 1]);
|
|
j;
|
|
if(d) goto _L2; else goto _L1
|
|
_L1:
|
|
32767;
|
|
JVM INSTR icmple 38;
|
|
goto _L3 _L4
|
|
_L3:
|
|
break MISSING_BLOCK_LABEL_33;
|
|
_L4:
|
|
break MISSING_BLOCK_LABEL_38;
|
|
j -= 0x10000;
|
|
j;
|
|
_L2:
|
|
return;
|
|
}
|
|
|
|
public static int e(byte abyte0[], int i)
|
|
{
|
|
abyte0[i] & 0xff;
|
|
128;
|
|
if(d) goto _L2; else goto _L1
|
|
_L1:
|
|
JVM INSTR icmpge 23;
|
|
goto _L3 _L4
|
|
_L3:
|
|
break MISSING_BLOCK_LABEL_19;
|
|
_L4:
|
|
break MISSING_BLOCK_LABEL_23;
|
|
return abyte0[i];
|
|
((abyte0[i] & 0xff) - 128 << 24) + ((abyte0[i + 1] & 0xff) << 16) + ((abyte0[i + 2] & 0xff) << 8);
|
|
abyte0[i + 3] & 0xff;
|
|
_L2:
|
|
JVM INSTR iadd ;
|
|
return;
|
|
}
|
|
|
|
public static int a(byte abyte0[], int i, int j)
|
|
{
|
|
int k;
|
|
int l;
|
|
int i1;
|
|
boolean flag1;
|
|
flag1 = d;
|
|
boolean flag = false;
|
|
k = i >> 3;
|
|
l = 8 - (i & 7);
|
|
i1 = 0;
|
|
_L4:
|
|
if(j <= l)
|
|
break; /* Loop/switch isn't completed */
|
|
i1 += (abyte0[k++] & b[l]) << j - l;
|
|
j -= l;
|
|
l = 8;
|
|
if(flag1) goto _L2; else goto _L1
|
|
_L1:
|
|
if(!flag1) goto _L4; else goto _L3
|
|
_L3:
|
|
j;
|
|
l;
|
|
if(flag1) goto _L6; else goto _L5
|
|
_L5:
|
|
JVM INSTR icmpne 105;
|
|
goto _L7 _L2
|
|
_L7:
|
|
i1 += abyte0[k] & b[l];
|
|
if(!flag1) goto _L8; else goto _L2
|
|
_L2:
|
|
i1;
|
|
abyte0[k] >> l - j & b[j];
|
|
_L6:
|
|
JVM INSTR iadd ;
|
|
i1;
|
|
_L8:
|
|
return i1;
|
|
}
|
|
|
|
public static String a(String s, int i)
|
|
{
|
|
String s1;
|
|
int j;
|
|
boolean flag1;
|
|
flag1 = d;
|
|
boolean flag = false;
|
|
s1 = "";
|
|
j = 0;
|
|
_L24:
|
|
if(j >= i)
|
|
break; /* Loop/switch isn't completed */
|
|
j;
|
|
if(flag1) goto _L2; else goto _L1
|
|
_L1:
|
|
s.length();
|
|
JVM INSTR icmplt 58;
|
|
goto _L3 _L4
|
|
_L3:
|
|
break MISSING_BLOCK_LABEL_33;
|
|
_L4:
|
|
break MISSING_BLOCK_LABEL_58;
|
|
s1 = s1 + " ";
|
|
if(!flag1)
|
|
break MISSING_BLOCK_LABEL_228;
|
|
s.charAt(j);
|
|
_L2:
|
|
int k;
|
|
k;
|
|
k;
|
|
97;
|
|
if(flag1) goto _L6; else goto _L5
|
|
_L5:
|
|
JVM INSTR icmplt 115;
|
|
goto _L7 _L8
|
|
_L7:
|
|
k;
|
|
122;
|
|
if(flag1) goto _L6; else goto _L9
|
|
_L9:
|
|
JVM INSTR icmpgt 115;
|
|
goto _L10 _L8
|
|
_L10:
|
|
s1 = s1 + k;
|
|
if(!flag1)
|
|
break MISSING_BLOCK_LABEL_228;
|
|
_L8:
|
|
k;
|
|
65;
|
|
_L6:
|
|
if(flag1) goto _L12; else goto _L11
|
|
_L11:
|
|
JVM INSTR icmplt 164;
|
|
goto _L13 _L14
|
|
_L13:
|
|
k;
|
|
90;
|
|
if(flag1) goto _L12; else goto _L15
|
|
_L15:
|
|
JVM INSTR icmpgt 164;
|
|
goto _L16 _L14
|
|
_L16:
|
|
s1 = s1 + k;
|
|
if(!flag1)
|
|
break MISSING_BLOCK_LABEL_228;
|
|
_L14:
|
|
k;
|
|
48;
|
|
_L12:
|
|
if(flag1) goto _L18; else goto _L17
|
|
_L17:
|
|
JVM INSTR icmplt 208;
|
|
goto _L19 _L20
|
|
_L19:
|
|
break MISSING_BLOCK_LABEL_176;
|
|
_L20:
|
|
break MISSING_BLOCK_LABEL_208;
|
|
k;
|
|
57;
|
|
_L18:
|
|
JVM INSTR icmpgt 208;
|
|
goto _L21 _L22
|
|
_L21:
|
|
break MISSING_BLOCK_LABEL_183;
|
|
_L22:
|
|
break MISSING_BLOCK_LABEL_208;
|
|
s1 = s1 + k;
|
|
if(!flag1)
|
|
break MISSING_BLOCK_LABEL_228;
|
|
s1 = s1 + '_';
|
|
j++;
|
|
if(!flag1) goto _L24; else goto _L23
|
|
_L23:
|
|
return s1;
|
|
}
|
|
|
|
public static String a(int i)
|
|
{
|
|
return (i >> 24 & 0xff) + "." + (i >> 16 & 0xff) + "." + (i >> 8 & 0xff) + "." + (i & 0xff);
|
|
}
|
|
|
|
public static long b(String s)
|
|
{
|
|
String s1;
|
|
long l;
|
|
boolean flag1;
|
|
flag1 = d;
|
|
boolean flag = false;
|
|
s1 = "";
|
|
l = 0;
|
|
_L22:
|
|
char c1;
|
|
if(l >= s.length())
|
|
break; /* Loop/switch isn't completed */
|
|
c1 = s.charAt(l);
|
|
c1;
|
|
'a';
|
|
if(flag1) goto _L2; else goto _L1
|
|
_L1:
|
|
if(flag1) goto _L4; else goto _L3
|
|
_L3:
|
|
JVM INSTR icmplt 81;
|
|
goto _L5 _L6
|
|
_L5:
|
|
c1;
|
|
'z';
|
|
if(flag1) goto _L4; else goto _L7
|
|
_L7:
|
|
JVM INSTR icmpgt 81;
|
|
goto _L8 _L6
|
|
_L8:
|
|
s1 = s1 + c1;
|
|
if(!flag1)
|
|
break MISSING_BLOCK_LABEL_201;
|
|
_L6:
|
|
c1;
|
|
65;
|
|
_L4:
|
|
if(flag1) goto _L10; else goto _L9
|
|
_L9:
|
|
JVM INSTR icmplt 137;
|
|
goto _L11 _L12
|
|
_L11:
|
|
c1;
|
|
'Z';
|
|
if(flag1) goto _L10; else goto _L13
|
|
_L13:
|
|
JVM INSTR icmpgt 137;
|
|
goto _L14 _L12
|
|
_L14:
|
|
s1 = s1 + (char)((c1 + 97) - 65);
|
|
if(!flag1)
|
|
break MISSING_BLOCK_LABEL_201;
|
|
_L12:
|
|
c1;
|
|
48;
|
|
_L10:
|
|
if(flag1) goto _L16; else goto _L15
|
|
_L15:
|
|
JVM INSTR icmplt 181;
|
|
goto _L17 _L18
|
|
_L17:
|
|
break MISSING_BLOCK_LABEL_149;
|
|
_L18:
|
|
break MISSING_BLOCK_LABEL_181;
|
|
c1;
|
|
57;
|
|
_L16:
|
|
JVM INSTR icmpgt 181;
|
|
goto _L19 _L20
|
|
_L19:
|
|
break MISSING_BLOCK_LABEL_156;
|
|
_L20:
|
|
break MISSING_BLOCK_LABEL_181;
|
|
s1 = s1 + c1;
|
|
if(!flag1)
|
|
break MISSING_BLOCK_LABEL_201;
|
|
s1 = s1 + ' ';
|
|
l++;
|
|
if(!flag1) goto _L22; else goto _L21
|
|
_L21:
|
|
s1 = s1.trim();
|
|
s1;
|
|
if(flag1) goto _L24; else goto _L23
|
|
_L23:
|
|
length();
|
|
12;
|
|
_L2:
|
|
JVM INSTR icmple 236;
|
|
goto _L25 _L26
|
|
_L25:
|
|
s1.substring(0, 12);
|
|
_L24:
|
|
s1;
|
|
_L26:
|
|
int i;
|
|
l = 0L;
|
|
i = 0;
|
|
_L42:
|
|
char c2;
|
|
if(i >= s1.length())
|
|
break; /* Loop/switch isn't completed */
|
|
c2 = s1.charAt(i);
|
|
l * 37L;
|
|
if(flag1) goto _L28; else goto _L27
|
|
_L27:
|
|
l;
|
|
c2;
|
|
'a';
|
|
if(flag1) goto _L30; else goto _L29
|
|
_L29:
|
|
JVM INSTR icmplt 309;
|
|
goto _L31 _L32
|
|
_L31:
|
|
c2;
|
|
'z';
|
|
if(flag1) goto _L30; else goto _L33
|
|
_L33:
|
|
JVM INSTR icmpgt 309;
|
|
goto _L34 _L32
|
|
_L34:
|
|
l += (1 + c2) - 97;
|
|
if(!flag1)
|
|
break MISSING_BLOCK_LABEL_340;
|
|
_L32:
|
|
c2;
|
|
48;
|
|
_L30:
|
|
if(flag1) goto _L36; else goto _L35
|
|
_L35:
|
|
JVM INSTR icmplt 340;
|
|
goto _L37 _L38
|
|
_L37:
|
|
break MISSING_BLOCK_LABEL_321;
|
|
_L38:
|
|
break MISSING_BLOCK_LABEL_340;
|
|
c2;
|
|
57;
|
|
_L36:
|
|
JVM INSTR icmpgt 340;
|
|
goto _L39 _L40
|
|
_L39:
|
|
break MISSING_BLOCK_LABEL_328;
|
|
_L40:
|
|
break MISSING_BLOCK_LABEL_340;
|
|
l += (27 + c2) - 48;
|
|
i++;
|
|
if(!flag1) goto _L42; else goto _L41
|
|
_L41:
|
|
l;
|
|
_L28:
|
|
return;
|
|
}
|
|
|
|
public static String a(long l)
|
|
{
|
|
String s;
|
|
boolean flag1;
|
|
flag1 = d;
|
|
boolean flag = false;
|
|
if(l < 0L)
|
|
return A;
|
|
s = "";
|
|
_L4:
|
|
int i;
|
|
if(l == 0L)
|
|
break; /* Loop/switch isn't completed */
|
|
i = (int)(l % 37L);
|
|
l /= 37L;
|
|
i;
|
|
if(flag1) goto _L2; else goto _L1
|
|
_L1:
|
|
if(i != 0)
|
|
break; /* Loop/switch isn't completed */
|
|
s = " " + s;
|
|
if(!flag1) goto _L4; else goto _L3
|
|
_L3:
|
|
i;
|
|
_L2:
|
|
if(flag1) goto _L6; else goto _L5
|
|
_L5:
|
|
27;
|
|
JVM INSTR icmpge 159;
|
|
goto _L7 _L8
|
|
_L7:
|
|
break MISSING_BLOCK_LABEL_87;
|
|
_L8:
|
|
break; /* Loop/switch isn't completed */
|
|
l % 37L != 0L;
|
|
_L6:
|
|
JVM INSTR ifne 128;
|
|
goto _L9 _L10
|
|
_L9:
|
|
break MISSING_BLOCK_LABEL_97;
|
|
_L10:
|
|
break; /* Loop/switch isn't completed */
|
|
s = (char)((i + 65) - 1) + s;
|
|
if(!flag1) goto _L4; else goto _L11
|
|
_L11:
|
|
s = (char)((i + 97) - 1) + s;
|
|
if(!flag1) goto _L4; else goto _L12
|
|
_L12:
|
|
s = (char)((i + 48) - 27) + s;
|
|
if(!flag1) goto _L4; else goto _L13
|
|
_L13:
|
|
return s;
|
|
}
|
|
|
|
public static int a(String s, byte abyte0[])
|
|
{
|
|
int i;
|
|
int j;
|
|
int k;
|
|
int l;
|
|
boolean flag1;
|
|
label0:
|
|
{
|
|
flag1 = d;
|
|
boolean flag = false;
|
|
i = a(abyte0, 0);
|
|
j = 0;
|
|
s = s.toUpperCase();
|
|
k = 0;
|
|
do
|
|
{
|
|
if(k >= s.length())
|
|
break;
|
|
j = (j * 61 + s.charAt(k)) - 32;
|
|
k++;
|
|
if(flag1)
|
|
break label0;
|
|
} while(!flag1);
|
|
k = 2 + i * 10;
|
|
}
|
|
l = 0;
|
|
_L8:
|
|
int i1;
|
|
int j1;
|
|
if(l >= i)
|
|
break; /* Loop/switch isn't completed */
|
|
i1 = (abyte0[l * 10 + 2] & 0xff) * 0x1000000 + (abyte0[l * 10 + 3] & 0xff) * 0x10000 + (abyte0[l * 10 + 4] & 0xff) * 256 + (abyte0[l * 10 + 5] & 0xff);
|
|
j1 = (abyte0[l * 10 + 9] & 0xff) * 0x10000 + (abyte0[l * 10 + 10] & 0xff) * 256 + (abyte0[l * 10 + 11] & 0xff);
|
|
i1;
|
|
if(flag1) goto _L2; else goto _L1
|
|
_L1:
|
|
j;
|
|
if(flag1) goto _L4; else goto _L3
|
|
_L3:
|
|
JVM INSTR icmpne 220;
|
|
goto _L5 _L6
|
|
_L5:
|
|
break MISSING_BLOCK_LABEL_217;
|
|
_L6:
|
|
break MISSING_BLOCK_LABEL_220;
|
|
return k;
|
|
k;
|
|
j1;
|
|
_L4:
|
|
JVM INSTR iadd ;
|
|
k;
|
|
l++;
|
|
if(!flag1) goto _L8; else goto _L7
|
|
_L7:
|
|
false;
|
|
_L2:
|
|
return;
|
|
}
|
|
|
|
public static int b(String s, byte abyte0[])
|
|
{
|
|
int i;
|
|
int j;
|
|
int k;
|
|
int l;
|
|
boolean flag1;
|
|
label0:
|
|
{
|
|
flag1 = d;
|
|
boolean flag = false;
|
|
i = a(abyte0, 0);
|
|
j = 0;
|
|
s = s.toUpperCase();
|
|
k = 0;
|
|
do
|
|
{
|
|
if(k >= s.length())
|
|
break;
|
|
j = (j * 61 + s.charAt(k)) - 32;
|
|
k++;
|
|
if(flag1)
|
|
break label0;
|
|
} while(!flag1);
|
|
k = 2 + i * 10;
|
|
}
|
|
l = 0;
|
|
_L8:
|
|
int i1;
|
|
int j1;
|
|
int k1;
|
|
if(l >= i)
|
|
break; /* Loop/switch isn't completed */
|
|
i1 = (abyte0[l * 10 + 2] & 0xff) * 0x1000000 + (abyte0[l * 10 + 3] & 0xff) * 0x10000 + (abyte0[l * 10 + 4] & 0xff) * 256 + (abyte0[l * 10 + 5] & 0xff);
|
|
j1 = (abyte0[l * 10 + 6] & 0xff) * 0x10000 + (abyte0[l * 10 + 7] & 0xff) * 256 + (abyte0[l * 10 + 8] & 0xff);
|
|
k1 = (abyte0[l * 10 + 9] & 0xff) * 0x10000 + (abyte0[l * 10 + 10] & 0xff) * 256 + (abyte0[l * 10 + 11] & 0xff);
|
|
i1;
|
|
if(flag1) goto _L2; else goto _L1
|
|
_L1:
|
|
j;
|
|
if(flag1) goto _L4; else goto _L3
|
|
_L3:
|
|
JVM INSTR icmpne 273;
|
|
goto _L5 _L6
|
|
_L5:
|
|
break MISSING_BLOCK_LABEL_270;
|
|
_L6:
|
|
break MISSING_BLOCK_LABEL_273;
|
|
return j1;
|
|
k;
|
|
k1;
|
|
_L4:
|
|
JVM INSTR iadd ;
|
|
k;
|
|
l++;
|
|
if(!flag1) goto _L8; else goto _L7
|
|
_L7:
|
|
false;
|
|
_L2:
|
|
return;
|
|
}
|
|
|
|
public static byte[] a(String s, int i, byte abyte0[])
|
|
{
|
|
return a(s, i, abyte0, null);
|
|
}
|
|
|
|
public static byte[] a(String s, int i, byte abyte0[], byte abyte1[])
|
|
{
|
|
int j;
|
|
int k;
|
|
int l;
|
|
int i1;
|
|
boolean flag1;
|
|
label0:
|
|
{
|
|
flag1 = d;
|
|
boolean flag = false;
|
|
j = (abyte0[0] & 0xff) * 256 + (abyte0[1] & 0xff);
|
|
k = 0;
|
|
s = s.toUpperCase();
|
|
l = 0;
|
|
do
|
|
{
|
|
if(l >= s.length())
|
|
break;
|
|
k = (k * 61 + s.charAt(l)) - 32;
|
|
l++;
|
|
if(flag1)
|
|
break label0;
|
|
} while(!flag1);
|
|
l = 2 + j * 10;
|
|
}
|
|
i1 = 0;
|
|
_L18:
|
|
int j1;
|
|
int k1;
|
|
int l1;
|
|
if(i1 >= j)
|
|
break; /* Loop/switch isn't completed */
|
|
j1 = (abyte0[i1 * 10 + 2] & 0xff) * 0x1000000 + (abyte0[i1 * 10 + 3] & 0xff) * 0x10000 + (abyte0[i1 * 10 + 4] & 0xff) * 256 + (abyte0[i1 * 10 + 5] & 0xff);
|
|
k1 = (abyte0[i1 * 10 + 6] & 0xff) * 0x10000 + (abyte0[i1 * 10 + 7] & 0xff) * 256 + (abyte0[i1 * 10 + 8] & 0xff);
|
|
l1 = (abyte0[i1 * 10 + 9] & 0xff) * 0x10000 + (abyte0[i1 * 10 + 10] & 0xff) * 256 + (abyte0[i1 * 10 + 11] & 0xff);
|
|
j1;
|
|
k;
|
|
if(flag1) goto _L2; else goto _L1
|
|
_L1:
|
|
JVM INSTR icmpne 364;
|
|
goto _L3 _L4
|
|
_L3:
|
|
abyte1;
|
|
if(flag1) goto _L6; else goto _L5
|
|
_L5:
|
|
if(abyte1 != null) goto _L8; else goto _L7
|
|
_L7:
|
|
new byte[k1 + i];
|
|
_L6:
|
|
abyte1;
|
|
_L8:
|
|
k1;
|
|
if(flag1) goto _L10; else goto _L9
|
|
_L9:
|
|
l1;
|
|
JVM INSTR icmpeq 328;
|
|
goto _L11 _L12
|
|
_L11:
|
|
u.a(abyte1, k1, abyte0, l1, l);
|
|
if(!flag1) goto _L13; else goto _L12
|
|
_L12:
|
|
false;
|
|
_L10:
|
|
int i2;
|
|
i2;
|
|
_L16:
|
|
if(i2 >= k1)
|
|
break; /* Loop/switch isn't completed */
|
|
abyte1;
|
|
if(flag1) goto _L15; else goto _L14
|
|
_L14:
|
|
i2;
|
|
abyte0[l + i2];
|
|
JVM INSTR bastore ;
|
|
i2++;
|
|
if(!flag1) goto _L16; else goto _L13
|
|
_L13:
|
|
abyte1;
|
|
_L15:
|
|
return;
|
|
_L4:
|
|
l;
|
|
l1;
|
|
_L2:
|
|
JVM INSTR iadd ;
|
|
l;
|
|
i1++;
|
|
if(!flag1) goto _L18; else goto _L17
|
|
_L17:
|
|
return null;
|
|
}
|
|
|
|
public static URL a;
|
|
private static int b[];
|
|
public static boolean c;
|
|
public static boolean d;
|
|
private static String A;
|
|
|
|
static
|
|
{
|
|
A = "md!T8mn\b[5io";
|
|
break MISSING_BLOCK_LABEL_122;
|
|
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 101;
|
|
goto _L1 _L2
|
|
_L1:
|
|
JVM INSTR dup ;
|
|
i;
|
|
_L4:
|
|
JVM INSTR dup2 ;
|
|
JVM INSTR caload ;
|
|
byte byte0;
|
|
switch(i % 5)
|
|
{
|
|
case 0: // '\0'
|
|
byte0 = 4;
|
|
break;
|
|
|
|
case 1: // '\001'
|
|
byte0 = 10;
|
|
break;
|
|
|
|
case 2: // '\002'
|
|
byte0 = 87;
|
|
break;
|
|
|
|
case 3: // '\003'
|
|
byte0 = 53;
|
|
break;
|
|
|
|
default:
|
|
byte0 = 84;
|
|
break;
|
|
}
|
|
byte0;
|
|
JVM INSTR ixor ;
|
|
(char);
|
|
JVM INSTR castore ;
|
|
i++;
|
|
JVM INSTR swap ;
|
|
JVM INSTR dup_x1 ;
|
|
JVM INSTR ifne 101;
|
|
goto _L3 _L2
|
|
_L3:
|
|
JVM INSTR dup2 ;
|
|
JVM INSTR swap ;
|
|
goto _L4
|
|
_L2:
|
|
JVM INSTR swap ;
|
|
JVM INSTR dup_x1 ;
|
|
i;
|
|
JVM INSTR icmpgt 26;
|
|
goto _L5 _L1
|
|
_L5:
|
|
JVM INSTR new #112 <Class String>;
|
|
JVM INSTR dup_x1 ;
|
|
JVM INSTR swap ;
|
|
String();
|
|
intern();
|
|
JVM INSTR swap ;
|
|
JVM INSTR pop ;
|
|
JVM INSTR ret 0;
|
|
a = null;
|
|
b = (new int[] {
|
|
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
|
|
});
|
|
}
|
|
}
|