Files
wes c30e839b64 SBoT 1.0 decompiled with CFR 0.152
Full source recovered from SBoT.jar (July 2004) plus the three bundled
example scripts (BoneBury, GuildFish, GuildFisher). Class names are the
original RSC-era single-letter obfuscation (a.java-z.java); mudclient.java
and Script.java kept their real names since those weren't obfuscated.
2026-08-25 13:11:31 -04:00

1845 lines
86 KiB
Java

/*
* Decompiled with CFR 0.152.
*/
public class s {
protected h a;
int b;
int c;
public boolean[] d;
public boolean[] e;
public boolean[] f;
public boolean[] g;
public int[] h;
public int[] i;
public int[] j;
public int[] k;
boolean[] l;
int[] m;
int[] n;
int[] o;
int[] p;
int[] q;
int[] r;
int[] s;
String[] t;
String[][] u;
int v;
int w;
int x;
int y;
int z = -1;
int A;
int B;
int C;
int D;
int E;
int F;
int G;
int H;
int I;
int J;
int K;
int L;
int M;
public boolean N = true;
public static boolean O;
public static int P;
public static int Q;
public static int R;
public static int S;
public static int T;
private static String[] U;
public s(h h2, int n2) {
this.a = h2;
this.c = n2;
this.d = new boolean[n2];
this.e = new boolean[n2];
this.f = new boolean[n2];
this.g = new boolean[n2];
this.l = new boolean[n2];
this.h = new int[n2];
this.i = new int[n2];
this.j = new int[n2];
this.k = new int[n2];
this.m = new int[n2];
this.n = new int[n2];
this.o = new int[n2];
this.p = new int[n2];
this.q = new int[n2];
this.r = new int[n2];
this.s = new int[n2];
this.t = new String[n2];
this.u = new String[n2][];
this.B = this.a(114, 114, 176);
this.C = this.a(14, 14, 62);
this.D = this.a(200, 208, 232);
this.E = this.a(96, 129, 184);
this.F = this.a(53, 95, 115);
this.G = this.a(117, 142, 171);
this.H = this.a(98, 122, 158);
this.I = this.a(86, 100, 136);
this.J = this.a(135, 146, 179);
this.K = this.a(97, 112, 151);
this.L = this.a(88, 102, 136);
this.M = this.a(84, 93, 120);
}
public int a(int n2, int n3, int n4) {
return h.b(Q * n2 / 114, R * n3 / 114, S * n4 / 176);
}
public void a(int n2, int n3, int n4, int n5) {
block33: {
block22: {
s s2;
int n6;
boolean bl;
block31: {
int n7;
block32: {
block30: {
block29: {
int n8;
int n9;
block23: {
block21: {
block24: {
bl = q.d;
boolean bl2 = false;
this.v = n2;
this.w = n3;
this.y = n5;
n9 = n4;
if (!bl) {
if (n9 != 0) {
this.x = n4;
}
n9 = n4;
}
n8 = 1;
if (bl) break block23;
if (n9 != n8) break block24;
for (n6 = 0; n6 < this.b; ++n6) {
block28: {
s s3;
int n10;
int n11;
block27: {
block25: {
block26: {
n9 = this.d[n6];
if (bl) break block21;
if (bl) break block25;
if (n9 == 0) break block26;
n11 = this.o[n6];
if (bl) break block25;
if (n11 != 10) break block26;
n11 = this.v;
if (bl) break block25;
if (n11 < this.m[n6]) break block26;
n11 = this.w;
if (bl) break block25;
if (n11 < this.n[n6]) break block26;
n11 = this.v;
if (bl) break block25;
if (n11 > this.m[n6] + this.p[n6]) break block26;
n11 = this.w;
if (bl) break block25;
if (n11 <= this.n[n6] + this.q[n6]) {
this.g[n6] = true;
}
}
n11 = this.d[n6];
}
if (!bl) {
if (n11 == false) continue;
n11 = this.o[n6];
}
n10 = 14;
if (!bl) {
if (n11 != n10) continue;
n11 = this.v;
n10 = this.m[n6];
}
if (!bl) {
if (n11 < n10) continue;
n11 = this.w;
n10 = this.n[n6];
}
if (!bl) {
if (n11 < n10) continue;
n11 = this.v;
n10 = this.m[n6] + this.p[n6];
}
if (bl) break block27;
if (n11 > n10) continue;
s3 = this;
if (bl) break block28;
n11 = s3.w;
n10 = this.n[n6] + this.q[n6];
}
if (n11 > n10) continue;
s3 = this;
}
s3.j[n6] = 1 - this.j[n6];
if (!bl) continue;
}
}
n9 = n5;
}
n8 = 1;
}
if (n9 != n8) break block29;
++this.A;
if (!bl) break block30;
}
this.A = 0;
}
n7 = n4;
if (bl) break block31;
if (n7 == 1) break block32;
n7 = this.A;
if (bl) break block31;
if (n7 <= 20) break block33;
}
n7 = n6 = 0;
}
while (n6 < this.b) {
block35: {
block40: {
s s4;
int n12;
int n13;
block39: {
block38: {
block37: {
block36: {
block34: {
s2 = this;
if (bl) break block22;
n13 = s2.d[n6];
if (bl) break block34;
if (n13 == 0) break block35;
n13 = this.o[n6];
}
n12 = 15;
if (bl) break block36;
if (n13 != n12) break block35;
n13 = this.v;
n12 = this.m[n6];
}
if (bl) break block37;
if (n13 < n12) break block35;
n13 = this.w;
n12 = this.n[n6];
}
if (bl) break block38;
if (n13 < n12) break block35;
n13 = this.v;
n12 = this.m[n6] + this.p[n6];
}
if (bl) break block39;
if (n13 > n12) break block35;
s4 = this;
if (bl) break block40;
n13 = s4.w;
n12 = this.n[n6] + this.q[n6];
}
if (n13 > n12) break block35;
s4 = this;
}
s4.g[n6] = true;
}
++n6;
if (!bl) continue;
}
s2 = this;
}
s2.A -= 5;
}
}
/*
* Enabled force condition propagation
* Lifted jumps to return sites
*/
public boolean a(int n2) {
boolean bl = q.d;
boolean bl2 = this.d[n2];
if (bl) return bl2;
if (!bl2) return false;
bl2 = this.g[n2];
if (bl) return bl2;
if (!bl2) return false;
this.g[n2] = false;
return true;
}
/*
* Unable to fully structure code
*/
public void b(int var1_1) {
block24: {
block32: {
block30: {
block31: {
block27: {
block29: {
block28: {
block26: {
block25: {
block23: {
block22: {
var5_2 = q.d;
v0 = var1_1;
if (var5_2) break block22;
if (v0 == 0) {
return;
}
v1 = this;
if (var5_2) break block23;
v0 = v1.z;
}
if (v0 == -1) break block24;
v1 = this;
}
if (var5_2) break block25;
if (v1.t[this.z] == null) break block24;
v1 = this;
}
v2 = v1.d[this.z];
if (var5_2) break block26;
if (v2 == 0) break block24;
v2 = this.t[this.z].length();
}
var2_3 = v2;
v3 = var1_1;
v4 = 8;
if (var5_2) break block27;
if (v3 != v4) break block28;
v3 = var2_3;
if (var5_2) break block29;
if (v3 > 0) {
this.t[this.z] = this.t[this.z].substring(0, var2_3 - 1);
}
}
v3 = var1_1;
}
if (var5_2) break block30;
v4 = 10;
}
if (v3 == v4) break block31;
v3 = var1_1;
if (var5_2) break block30;
if (v3 != 13) break block32;
}
v3 = var2_3;
}
if (v3 > 0) {
this.g[this.z] = true;
}
}
var3_4 = s.U[2];
v5 = var2_3;
v6 = this.r[this.z];
if (!var5_2) {
if (v5 < v6) {
for (var4_5 = 0; var4_5 < 95; ++var4_5) {
v5 = var1_1;
v6 = s.U[2].charAt(var4_5);
if (!var5_2) {
if (v5 != v6) continue;
v7 = this.z;
this.t[v7] = this.t[v7] + (char)var1_1;
if (!var5_2) continue;
}
break;
}
} else {
v5 = var1_1;
v6 = 9;
}
}
if (var5_2) ** GOTO lbl70
if (v5 != v6) break block24;
block1: while (true) {
this.z = (this.z + 1) % this.b;
do {
v5 = this.o[this.z];
v6 = 5;
lbl70:
// 2 sources
if (v5 != v6 && this.o[this.z] != 6) continue block1;
} while (var5_2);
break;
}
return;
}
}
public void a() {
block26: {
s s2;
boolean bl = q.d;
boolean bl2 = false;
for (int i2 = 0; i2 < this.b; ++i2) {
s s3;
block33: {
int n2;
int n3;
block32: {
block30: {
block31: {
s s4;
block28: {
block29: {
int n4;
int n5;
block27: {
s2 = this;
if (bl) break block26;
n5 = s2.d[i2];
if (!bl) {
if (n5 == 0) continue;
n5 = this.o[i2];
}
if (!bl) {
if (n5 == 0) {
this.a(i2, this.m[i2], this.n[i2], this.t[i2], this.s[i2]);
if (!bl) continue;
}
n5 = this.o[i2];
}
n4 = 1;
if (!bl) {
if (n5 == n4) {
this.a(i2, this.m[i2] - this.a.a(this.t[i2], this.s[i2]) / 2, this.n[i2], this.t[i2], this.s[i2]);
if (!bl) continue;
}
n5 = this.o[i2];
n4 = 2;
}
if (!bl) {
if (n5 == n4) {
this.b(this.m[i2], this.n[i2], this.p[i2], this.q[i2]);
if (!bl) continue;
}
n5 = this.o[i2];
n4 = 3;
}
if (!bl) {
if (n5 == n4) {
this.c(this.m[i2], this.n[i2], this.p[i2]);
if (!bl) continue;
}
n5 = this.o[i2];
n4 = 4;
}
if (bl) break block27;
if (n5 == n4) {
this.a(i2, this.m[i2], this.n[i2], this.p[i2], this.q[i2], this.s[i2], this.u[i2], this.i[i2], this.h[i2]);
if (!bl) continue;
}
s4 = this;
if (bl) break block28;
n5 = s4.o[i2];
n4 = 5;
}
if (n5 == n4) break block29;
n3 = this.o[i2];
n2 = 6;
if (bl) break block30;
if (n3 != n2) break block31;
}
s4 = this;
}
s4.a(i2, this.m[i2], this.n[i2], this.p[i2], this.q[i2], this.t[i2], this.s[i2]);
if (!bl) continue;
}
n3 = this.o[i2];
n2 = 7;
}
if (!bl) {
if (n3 == n2) {
this.a(i2, this.m[i2], this.n[i2], this.s[i2], this.u[i2]);
if (!bl) continue;
}
n3 = this.o[i2];
n2 = 8;
}
if (!bl) {
if (n3 == n2) {
this.b(i2, this.m[i2], this.n[i2], this.s[i2], this.u[i2]);
if (!bl) continue;
}
n3 = this.o[i2];
n2 = 9;
}
if (!bl) {
if (n3 == n2) {
this.b(i2, this.m[i2], this.n[i2], this.p[i2], this.q[i2], this.s[i2], this.u[i2], this.i[i2], this.h[i2]);
if (!bl) continue;
}
n3 = this.o[i2];
n2 = 11;
}
if (!bl) {
if (n3 == n2) {
this.c(this.m[i2], this.n[i2], this.p[i2], this.q[i2]);
if (!bl) continue;
}
n3 = this.o[i2];
n2 = 12;
}
if (bl) break block32;
if (n3 == n2) {
this.b(this.m[i2], this.n[i2], this.s[i2]);
if (!bl) continue;
}
s3 = this;
if (bl) break block33;
n3 = s3.o[i2];
n2 = 14;
}
if (n3 != n2) continue;
s3 = this;
}
s3.a(i2, this.m[i2], this.n[i2], this.p[i2], this.q[i2]);
if (!bl) continue;
}
s2 = this;
}
s2.x = 0;
}
protected void a(int n2, int n3, int n4, int n5, int n6) {
block4: {
int n7;
boolean bl;
block3: {
bl = q.d;
this.a.b(n3, n4, n5, n6, 0xFFFFFF);
this.a.b(n3, n4, n5, this.J);
this.a.c(n3, n4, n6, this.J);
this.a.b(n3, n4 + n6 - 1, n5, this.M);
this.a.c(n3 + n5 - 1, n4, n6, this.M);
int n8 = this.j[n2];
if (bl) break block3;
if (n8 != 1) break block4;
n8 = n7 = 0;
}
while (n7 < n6) {
this.a.b(n3 + n7, n4 + n7, 1, 0);
this.a.b(n3 + n5 - 1 - n7, n4 + n7, 1, 0);
++n7;
if (!bl) continue;
}
}
}
protected void a(int n2, int n3, int n4, String string, int n5) {
int n6 = n4 + this.a.c(n5) / 3;
this.b(n2, n3, n6, string, n5);
}
protected void b(int n2, int n3, int n4, String string, int n5) {
int n6;
block4: {
int n7;
block2: {
block3: {
boolean bl = q.d;
n7 = this.l[n2];
if (bl) break block2;
if (n7 == 0) break block3;
n6 = 0xFFFFFF;
if (!bl) break block4;
}
n7 = 0;
}
n6 = n7;
}
this.a.c(string, n3, n4, n5, n6);
}
protected void a(int n2, int n3, int n4, int n5, int n6, String string, int n7) {
int n8;
int n9;
int n10;
boolean bl;
block14: {
block15: {
int n11;
int n12;
block16: {
block17: {
block13: {
block12: {
bl = q.d;
boolean bl2 = false;
n10 = this.f[n2];
if (!bl) {
if (n10 != 0) {
n9 = string.length();
string = "";
for (int i2 = 0; i2 < n9; ++i2) {
string = string + "X";
if (!bl) {
if (!bl) continue;
}
break block12;
}
}
n10 = this.o[n2];
}
n8 = 5;
if (bl) break block13;
if (n10 != n8) break block12;
n10 = this.x;
n8 = 1;
if (bl) break block14;
if (n10 != n8) break block15;
n10 = this.v;
n8 = n3;
if (bl) break block14;
if (n10 < n8) break block15;
n10 = this.w;
n8 = n4 - n6 / 2;
if (bl) break block14;
if (n10 < n8) break block15;
n10 = this.v;
n8 = n3 + n5;
if (bl) break block14;
if (n10 > n8) break block15;
n10 = this.w;
n8 = n4 + n6 / 2;
if (bl) break block14;
if (n10 > n8) break block15;
this.z = n2;
if (!bl) break block15;
}
n10 = this.o[n2];
n8 = 6;
}
if (bl) break block14;
if (n10 != n8) break block15;
n12 = this.x;
n11 = 1;
if (bl) break block16;
if (n12 != n11) break block17;
n12 = this.v;
n11 = n3 - n5 / 2;
if (bl) break block16;
if (n12 < n11) break block17;
n12 = this.w;
n11 = n4 - n6 / 2;
if (bl) break block16;
if (n12 < n11) break block17;
n12 = this.v;
n11 = n3 + n5 / 2;
if (bl) break block16;
if (n12 > n11) break block17;
n12 = this.w;
n11 = n4 + n6 / 2;
if (bl) break block16;
if (n12 <= n11) {
this.z = n2;
}
}
n12 = n3;
n11 = this.a.a(string, n7) / 2;
}
n3 = n12 - n11;
}
n10 = this.z;
n8 = n2;
}
if (!bl) {
if (n10 == n8) {
string = string + "*";
}
n10 = n4;
n8 = this.a.c(n7) / 3;
}
n9 = n10 + n8;
this.b(n2, n3, n9, string, n7);
}
public void b(int n2, int n3, int n4, int n5) {
block5: {
boolean bl = q.d;
boolean bl2 = false;
this.a.a(n2, n3, n2 + n4, n3 + n5);
this.a.b(n2, n3, n4, n5, this.M, this.J);
if (!bl) {
if (O) {
int n6 = n2 - (n3 & 0x3F);
while (n6 < n2 + n4) {
block6: {
if (bl) break block5;
for (int i2 = n3 - (n3 & 0x1F); i2 < n3 + n5; i2 += 128) {
this.a.d(n6, i2, 6 + P, 128);
if (!bl) {
if (!bl) continue;
}
break block6;
}
n6 += 128;
}
if (!bl) continue;
}
}
this.a.b(n2, n3, n4, this.J);
this.a.b(n2 + 1, n3 + 1, n4 - 2, this.J);
this.a.b(n2 + 2, n3 + 2, n4 - 4, this.K);
this.a.c(n2, n3, n5, this.J);
this.a.c(n2 + 1, n3 + 1, n5 - 2, this.J);
this.a.c(n2 + 2, n3 + 2, n5 - 4, this.K);
this.a.b(n2, n3 + n5 - 1, n4, this.M);
this.a.b(n2 + 1, n3 + n5 - 2, n4 - 2, this.M);
this.a.b(n2 + 2, n3 + n5 - 3, n4 - 4, this.L);
this.a.c(n2 + n4 - 1, n3, n5, this.M);
this.a.c(n2 + n4 - 2, n3 + 1, n5 - 2, this.M);
this.a.c(n2 + n4 - 3, n3 + 2, n5 - 4, this.L);
this.a.b();
}
}
}
public void c(int n2, int n3, int n4, int n5) {
this.a.b(n2, n3, n4, n5, 0);
this.a.c(n2, n3, n4, n5, this.G);
this.a.c(n2 + 1, n3 + 1, n4 - 2, n5 - 2, this.H);
this.a.c(n2 + 2, n3 + 2, n4 - 4, n5 - 4, this.I);
this.a.c(n2, n3, 2 + P);
this.a.c(n2 + n4 - 7, n3, 3 + P);
this.a.c(n2, n3 + n5 - 7, 4 + P);
this.a.c(n2 + n4 - 7, n3 + n5 - 7, 5 + P);
}
protected void b(int n2, int n3, int n4) {
this.a.c(n2, n3, n4);
}
protected void c(int n2, int n3, int n4) {
this.a.b(n2, n3, n4, 0);
}
protected void a(int n2, int n3, int n4, int n5, int n6, int n7, String[] stringArray, int n8, int n9) {
int n10;
int n11;
int n12;
int n13;
int n14;
boolean bl;
block22: {
int n15;
block23: {
int n16;
int n17;
block38: {
block39: {
block37: {
int n18;
boolean[] blArray;
s s2;
block31: {
block32: {
block41: {
int n19;
block40: {
block35: {
block36: {
int n20;
int n21;
block33: {
block34: {
int n22;
int n23;
block24: {
block25: {
block29: {
s s3;
block30: {
int n24;
int n25;
block26: {
block28: {
block27: {
bl = q.d;
boolean bl2 = false;
n15 = n6 / this.a.c(n7);
n14 = n9;
if (!bl) {
if (n14 > n8 - n15) {
n9 = n8 - n15;
}
n14 = n9;
}
if (!bl) {
if (n14 < 0) {
n9 = 0;
}
this.h[n2] = n9;
n14 = n15;
}
n13 = n8;
if (bl) break block22;
if (n14 >= n13) break block23;
n12 = n3 + n5 - 12;
int n26 = n11 = (n6 - 27) * n15 / n8;
int n27 = 6;
if (!bl) {
if (n26 < n27) {
n11 = 6;
}
n26 = (n6 - 27 - n11) * n9;
n27 = n8 - n15;
}
n10 = n26 / n27;
n23 = this.y;
n22 = 1;
if (bl) break block24;
if (n23 != n22) break block25;
n23 = this.v;
n22 = n12;
if (bl) break block24;
if (n23 < n22) break block25;
n23 = this.v;
n22 = n12 + 12;
if (bl) break block24;
if (n23 > n22) break block25;
n25 = this.w;
n24 = n4;
if (bl) break block26;
if (n25 <= n24) break block27;
n25 = this.w;
n24 = n4 + 12;
if (bl) break block26;
if (n25 >= n24) break block27;
n25 = n9--;
if (bl) break block28;
if (n25 > 0) {
// empty if block
}
}
s3 = this;
if (bl) break block29;
n25 = s3.w;
}
n24 = n4 + n6 - 12;
}
if (n25 <= n24) break block30;
s3 = this;
if (bl) break block29;
if (s3.w >= n4 + n6 || n9 < n8 - n15) {
// empty if block
}
}
s3 = this;
}
s3.h[n2] = ++n9;
}
s2 = this;
if (bl) break block31;
n23 = s2.y;
n22 = 1;
}
if (n23 != n22) break block32;
n21 = this.v;
n20 = n12;
if (bl) break block33;
if (n21 < n20) break block34;
n17 = this.v;
n16 = n12 + 12;
if (bl) break block35;
if (n17 <= n16) break block36;
}
s2 = this;
if (bl) break block31;
n21 = s2.v;
n20 = n12 - 12;
}
if (n21 < n20) break block32;
s2 = this;
if (bl) break block31;
if (s2.v > n12 + 24) break block32;
blArray = this.e;
n18 = n2;
if (bl) break block37;
if (!blArray[n18]) break block32;
}
n17 = this.w;
n16 = n4 + 12;
}
if (bl) break block38;
if (n17 <= n16) break block39;
n17 = this.w;
n16 = n4 + n6 - 12;
if (bl) break block38;
if (n17 >= n16) break block39;
this.e[n2] = true;
int n28 = this.w - n4 - 12 - n11 / 2;
n19 = n9 = n28 * n8 / (n6 - 24);
if (!bl) {
if (n19 > n8 - n15) {
n9 = n8 - n15;
}
n19 = n9;
}
if (bl) break block40;
if (n19 >= 0) break block41;
n19 = 0;
}
n9 = n19;
}
this.h[n2] = n9;
if (!bl) break block39;
}
s2 = this;
}
blArray = s2.e;
n18 = n2;
}
blArray[n18] = false;
}
n17 = (n6 - 27 - n11) * n9;
n16 = n8 - n15;
}
n10 = n17 / n16;
this.a(n3, n4, n5, n6, n10, n11);
}
n14 = n6;
n13 = n15 * this.a.c(n7);
}
n12 = n14 - n13;
n11 = n4 + this.a.c(n7) * 5 / 6 + n12 / 2;
n10 = n9;
while (n10 < n8) {
this.b(n2, n3 + 2, n11, stringArray[n10], n7);
n11 += this.a.c(n7) - T;
if (!bl) {
if (n11 >= n4 + n6) {
return;
}
++n10;
}
if (!bl) continue;
}
}
protected void a(int n2, int n3, int n4, int n5, int n6, int n7) {
int n8 = n2 + n4 - 12;
this.a.c(n8, n3, 12, n5, 0);
this.a.c(n8 + 1, n3 + 1, P);
this.a.c(n8 + 1, n3 + n5 - 12, 1 + P);
this.a.b(n8, n3 + 13, 12, 0);
this.a.b(n8, n3 + n5 - 13, 12, 0);
this.a.b(n8 + 1, n3 + 14, 11, n5 - 27, this.B, this.C);
this.a.b(n8 + 3, n6 + n3 + 14, 7, n7, this.E);
this.a.c(n8 + 2, n6 + n3 + 14, n7, this.D);
this.a.c(n8 + 2 + 8, n6 + n3 + 14, n7, this.F);
}
protected void a(int n2, int n3, int n4, int n5, String[] stringArray) {
int n6;
int n7;
int n8;
int n9;
boolean bl;
block22: {
bl = q.d;
boolean bl2 = false;
int n10 = 0;
n9 = stringArray.length;
n8 = 0;
while (n8 < n9) {
n10 += this.a.a(stringArray[n8], n5);
if (!bl) {
n7 = n8;
n6 = n9 - 1;
if (bl) break block22;
if (n7 < n6) {
n10 += this.a.a(U[0], n5);
}
++n8;
}
if (!bl) continue;
}
n8 = n3 - n10 / 2;
n7 = n4;
n6 = this.a.c(n5) / 3;
}
int n11 = n7 + n6;
for (int i2 = 0; i2 < n9; ++i2) {
int n12;
int n13;
block31: {
int n14;
block32: {
int n15;
block33: {
block34: {
block26: {
block27: {
block30: {
int n16;
block28: {
block29: {
block25: {
int n17;
block23: {
block24: {
n17 = this.l[n2];
if (bl) break block23;
if (n17 == 0) break block24;
n14 = 0xFFFFFF;
if (!bl) break block25;
}
n17 = 0;
}
n14 = n17;
}
n13 = this.v;
n12 = n8;
if (bl) break block26;
if (n13 < n12) break block27;
n13 = this.v;
n12 = n8 + this.a.a(stringArray[i2], n5);
if (bl) break block26;
if (n13 > n12) break block27;
n13 = this.w;
n12 = n11;
if (bl) break block26;
if (n13 > n12) break block27;
n13 = this.w;
n12 = n11 - this.a.c(n5);
if (bl) break block26;
if (n13 <= n12) break block27;
n16 = this.l[n2];
if (bl) break block28;
if (n16 == 0) break block29;
n14 = 0x808080;
if (!bl) break block30;
}
n16 = 0xFFFFFF;
}
n14 = n16;
}
n13 = this.x;
n12 = 1;
if (bl) break block26;
if (n13 == n12) {
this.j[n2] = i2;
this.g[n2] = true;
}
}
n13 = this.j[n2];
n12 = i2;
}
if (bl) break block31;
if (n13 != n12) break block32;
n15 = this.l[n2];
if (bl) break block33;
if (n15 == 0) break block34;
n14 = 0xFF0000;
if (!bl) break block32;
}
n15 = 0xC00000;
}
n14 = n15;
}
this.a.c(stringArray[i2], n8, n11, n5, n14);
n13 = n8;
n12 = this.a.a(stringArray[i2] + U[0], n5);
}
n8 = n13 + n12;
if (!bl) continue;
}
}
protected void b(int n2, int n3, int n4, int n5, String[] stringArray) {
boolean bl = q.d;
boolean bl2 = false;
int n6 = stringArray.length;
int n7 = n4 - this.a.c(n5) * (n6 - 1) / 2;
for (int i2 = 0; i2 < n6; ++i2) {
int n8;
int n9;
block22: {
int n10;
int n11;
block23: {
int n12;
block24: {
block25: {
block17: {
block18: {
block21: {
int n13;
block19: {
block20: {
block16: {
int n14;
block14: {
block15: {
n14 = this.l[n2];
if (bl) break block14;
if (n14 == 0) break block15;
n11 = 0xFFFFFF;
if (!bl) break block16;
}
n14 = 0;
}
n11 = n14;
}
n10 = this.a.a(stringArray[i2], n5);
n9 = this.v;
n8 = n3 - n10 / 2;
if (bl) break block17;
if (n9 < n8) break block18;
n9 = this.v;
n8 = n3 + n10 / 2;
if (bl) break block17;
if (n9 > n8) break block18;
n9 = this.w - 2;
n8 = n7;
if (bl) break block17;
if (n9 > n8) break block18;
n9 = this.w - 2;
n8 = n7 - this.a.c(n5);
if (bl) break block17;
if (n9 <= n8) break block18;
n13 = this.l[n2];
if (bl) break block19;
if (n13 == 0) break block20;
n11 = 0x808080;
if (!bl) break block21;
}
n13 = 0xFFFFFF;
}
n11 = n13;
}
n9 = this.x;
n8 = 1;
if (bl) break block17;
if (n9 == n8) {
this.j[n2] = i2;
this.g[n2] = true;
}
}
n9 = this.j[n2];
n8 = i2;
}
if (bl) break block22;
if (n9 != n8) break block23;
n12 = this.l[n2];
if (bl) break block24;
if (n12 == 0) break block25;
n11 = 0xFF0000;
if (!bl) break block23;
}
n12 = 0xC00000;
}
n11 = n12;
}
this.a.c(stringArray[i2], n3 - n10 / 2, n7, n5, n11);
n9 = n7;
n8 = this.a.c(n5);
}
n7 = n9 + n8;
if (!bl) continue;
}
}
protected void b(int n2, int n3, int n4, int n5, int n6, int n7, String[] stringArray, int n8, int n9) {
int n10;
int n11;
int n12;
int n13;
int n14;
boolean bl;
block54: {
int n15;
block34: {
block35: {
int n16;
int n17;
block50: {
block51: {
block49: {
int n18;
boolean[] blArray;
s s2;
block43: {
block44: {
block53: {
int n19;
int n20;
block52: {
block47: {
block48: {
int n21;
int n22;
block45: {
block46: {
int n23;
int n24;
block36: {
block37: {
block41: {
s s3;
block42: {
int n25;
int n26;
block38: {
block40: {
block39: {
bl = q.d;
boolean bl2 = false;
n15 = n14 = n6 / this.a.c(n7);
if (bl) break block34;
if (n15 >= n8) break block35;
n13 = n3 + n5 - 12;
int n27 = n12 = (n6 - 27) * n14 / n8;
int n28 = 6;
if (!bl) {
if (n27 < n28) {
n12 = 6;
}
n27 = (n6 - 27 - n12) * n9;
n28 = n8 - n14;
}
n11 = n27 / n28;
n24 = this.y;
n23 = 1;
if (bl) break block36;
if (n24 != n23) break block37;
n24 = this.v;
n23 = n13;
if (bl) break block36;
if (n24 < n23) break block37;
n24 = this.v;
n23 = n13 + 12;
if (bl) break block36;
if (n24 > n23) break block37;
n26 = this.w;
n25 = n4;
if (bl) break block38;
if (n26 <= n25) break block39;
n26 = this.w;
n25 = n4 + 12;
if (bl) break block38;
if (n26 >= n25) break block39;
n26 = n9--;
if (bl) break block40;
if (n26 > 0) {
// empty if block
}
}
s3 = this;
if (bl) break block41;
n26 = s3.w;
}
n25 = n4 + n6 - 12;
}
if (n26 <= n25) break block42;
s3 = this;
if (bl) break block41;
if (s3.w >= n4 + n6 || n9 < n8 - n14) {
// empty if block
}
}
s3 = this;
}
s3.h[n2] = ++n9;
}
s2 = this;
if (bl) break block43;
n24 = s2.y;
n23 = 1;
}
if (n24 != n23) break block44;
n22 = this.v;
n21 = n13;
if (bl) break block45;
if (n22 < n21) break block46;
n17 = this.v;
n16 = n13 + 12;
if (bl) break block47;
if (n17 <= n16) break block48;
}
s2 = this;
if (bl) break block43;
n22 = s2.v;
n21 = n13 - 12;
}
if (n22 < n21) break block44;
s2 = this;
if (bl) break block43;
if (s2.v > n13 + 24) break block44;
blArray = this.e;
n18 = n2;
if (bl) break block49;
if (!blArray[n18]) break block44;
}
n17 = this.w;
n16 = n4 + 12;
}
if (bl) break block50;
if (n17 <= n16) break block51;
n17 = this.w;
n16 = n4 + n6 - 12;
if (bl) break block50;
if (n17 >= n16) break block51;
this.e[n2] = true;
n10 = this.w - n4 - 12 - n12 / 2;
n20 = n9 = n10 * n8 / (n6 - 24);
if (!bl) {
if (n20 < 0) {
n9 = 0;
}
n20 = n9;
}
n19 = n8 - n14;
if (bl) break block52;
if (n20 <= n19) break block53;
n20 = n8;
n19 = n14;
}
n9 = n20 - n19;
}
this.h[n2] = n9;
if (!bl) break block51;
}
s2 = this;
}
blArray = s2.e;
n18 = n2;
}
blArray[n18] = false;
}
n17 = (n6 - 27 - n12) * n9;
n16 = n8 - n14;
}
n11 = n17 / n16;
this.a(n3, n4, n5, n6, n11, n12);
if (!bl) break block54;
}
n15 = 0;
}
n9 = n15;
this.h[n2] = 0;
}
this.k[n2] = -1;
n13 = n6 - n14 * this.a.c(n7);
n12 = n4 + this.a.c(n7) * 5 / 6 + n13 / 2;
n11 = n9;
while (n11 < n8) {
block66: {
int n29;
int n30;
block63: {
block65: {
block64: {
block58: {
block59: {
block62: {
int n31;
block60: {
block61: {
block57: {
int n32;
block55: {
block56: {
n32 = this.l[n2];
if (bl) break block55;
if (n32 == 0) break block56;
n10 = 0xFFFFFF;
if (!bl) break block57;
}
n32 = 0;
}
n10 = n32;
}
n30 = this.v;
n29 = n3 + 2;
if (bl) break block58;
if (n30 < n29) break block59;
n30 = this.v;
n29 = n3 + 2 + this.a.a(stringArray[n11], n7);
if (bl) break block58;
if (n30 > n29) break block59;
n30 = this.w - 2;
n29 = n12;
if (bl) break block58;
if (n30 > n29) break block59;
n30 = this.w - 2;
n29 = n12 - this.a.c(n7);
if (bl) break block58;
if (n30 <= n29) break block59;
n31 = this.l[n2];
if (bl) break block60;
if (n31 == 0) break block61;
n10 = 0x808080;
if (!bl) break block62;
}
n31 = 0xFFFFFF;
}
n10 = n31;
}
this.k[n2] = n11;
n30 = this.x;
n29 = 1;
if (bl) break block58;
if (n30 == n29) {
this.j[n2] = n11;
this.g[n2] = true;
}
}
n30 = this.j[n2];
n29 = n11;
}
if (bl) break block63;
if (n30 != n29) break block64;
n30 = this.N ? '\u0001' : '\u0000';
if (bl) break block65;
if (n30 != 0) {
n10 = 0xFF0000;
}
}
this.a.c(stringArray[n11], n3 + 2, n12, n7, n10);
n12 += this.a.c(n7);
if (bl) break block66;
n30 = n12;
}
n29 = n4 + n6;
}
if (n30 >= n29) {
return;
}
++n11;
}
if (!bl) continue;
}
}
public int a(int n2, int n3, String string, int n4, boolean bl) {
this.o[this.b] = 1;
this.d[this.b] = true;
this.g[this.b] = false;
this.s[this.b] = n4;
this.l[this.b] = bl;
this.m[this.b] = n2;
this.n[this.b] = n3;
this.t[this.b] = string;
return this.b++;
}
public int d(int n2, int n3, int n4, int n5) {
this.o[this.b] = 2;
this.d[this.b] = true;
this.g[this.b] = false;
this.m[this.b] = n2 - n4 / 2;
this.n[this.b] = n3 - n5 / 2;
this.p[this.b] = n4;
this.q[this.b] = n5;
return this.b++;
}
public int e(int n2, int n3, int n4, int n5) {
this.o[this.b] = 11;
this.d[this.b] = true;
this.g[this.b] = false;
this.m[this.b] = n2 - n4 / 2;
this.n[this.b] = n3 - n5 / 2;
this.p[this.b] = n4;
this.q[this.b] = n5;
return this.b++;
}
public int d(int n2, int n3, int n4) {
int n5 = this.a.n[n4];
int n6 = this.a.o[n4];
this.o[this.b] = 12;
this.d[this.b] = true;
this.g[this.b] = false;
this.m[this.b] = n2 - n5 / 2;
this.n[this.b] = n3 - n6 / 2;
this.p[this.b] = n5;
this.q[this.b] = n6;
this.s[this.b] = n4;
return this.b++;
}
public int a(int n2, int n3, int n4, int n5, int n6, int n7, boolean bl) {
this.o[this.b] = 4;
this.d[this.b] = true;
this.g[this.b] = false;
this.m[this.b] = n2;
this.n[this.b] = n3;
this.p[this.b] = n4;
this.q[this.b] = n5;
this.l[this.b] = bl;
this.s[this.b] = n6;
this.r[this.b] = n7;
this.i[this.b] = 0;
this.h[this.b] = 0;
this.u[this.b] = new String[n7];
return this.b++;
}
public int a(int n2, int n3, int n4, int n5, int n6, int n7, boolean bl, boolean bl2) {
this.o[this.b] = 5;
this.d[this.b] = true;
this.f[this.b] = bl;
this.g[this.b] = false;
this.s[this.b] = n6;
this.l[this.b] = bl2;
this.m[this.b] = n2;
this.n[this.b] = n3;
this.p[this.b] = n4;
this.q[this.b] = n5;
this.r[this.b] = n7;
this.t[this.b] = "";
return this.b++;
}
public int b(int n2, int n3, int n4, int n5, int n6, int n7, boolean bl, boolean bl2) {
this.o[this.b] = 6;
this.d[this.b] = true;
this.f[this.b] = bl;
this.g[this.b] = false;
this.s[this.b] = n6;
this.l[this.b] = bl2;
this.m[this.b] = n2;
this.n[this.b] = n3;
this.p[this.b] = n4;
this.q[this.b] = n5;
this.r[this.b] = n7;
this.t[this.b] = "";
return this.b++;
}
public int b(int n2, int n3, int n4, int n5, int n6, int n7, boolean bl) {
this.o[this.b] = 9;
this.d[this.b] = true;
this.g[this.b] = false;
this.s[this.b] = n6;
this.l[this.b] = bl;
this.m[this.b] = n2;
this.n[this.b] = n3;
this.p[this.b] = n4;
this.q[this.b] = n5;
this.r[this.b] = n7;
this.u[this.b] = new String[n7];
this.i[this.b] = 0;
this.h[this.b] = 0;
this.j[this.b] = -1;
this.k[this.b] = -1;
return this.b++;
}
public int f(int n2, int n3, int n4, int n5) {
this.o[this.b] = 10;
this.d[this.b] = true;
this.g[this.b] = false;
this.m[this.b] = n2 - n4 / 2;
this.n[this.b] = n3 - n5 / 2;
this.p[this.b] = n4;
this.q[this.b] = n5;
return this.b++;
}
public void c(int n2) {
this.i[n2] = 0;
}
public void d(int n2) {
this.h[n2] = 0;
this.k[n2] = -1;
}
public void a(int n2, int n3, String string) {
block3: {
block2: {
s s2 = this;
if (q.d) break block2;
s2.u[n2][n3] = string;
if (n3 + 1 <= this.i[n2]) break block3;
s2 = this;
}
s2.i[n2] = n3 + 1;
}
}
public void a(int n2, String string, boolean bl) {
block11: {
block10: {
s s2;
int n3;
block9: {
block8: {
boolean bl2 = q.d;
int n4 = n2;
int n5 = this.i[n4];
this.i[n4] = n5 + 1;
int n6 = n5;
n3 = n6--;
if (bl2) break block9;
if (n3 >= this.r[n2]) {
int n7 = n2;
this.i[n7] = this.i[n7] - 1;
for (int i2 = 0; i2 < n6; ++i2) {
this.u[n2][i2] = this.u[n2][i2 + 1];
if (!bl2) {
if (!bl2) continue;
}
break block8;
}
}
s2 = this;
if (bl2) break block10;
s2.u[n2][n6] = string;
}
n3 = bl ? '\u0001' : '\u0000';
}
if (n3 == 0) break block11;
s2 = this;
}
s2.h[n2] = 999999;
}
}
public void a(int n2, String string) {
this.t[n2] = string;
}
public String e(int n2) {
String string = this.t[n2];
if (!q.d) {
if (string == null) {
return U[1];
}
string = this.t[n2];
}
return string;
}
public void f(int n2) {
this.d[n2] = true;
}
public void g(int n2) {
this.d[n2] = false;
}
public void h(int n2) {
this.z = n2;
}
public int i(int n2) {
int n3 = this.k[n2];
return n3;
}
/*
* Handled impossible loop by duplicating code
* Enabled aggressive block sorting
*/
static {
char[] cArray;
String[] stringArray;
block32: {
int n2;
int n3;
char[] cArray2;
int n4;
block31: {
char[] cArray3;
Object var0;
block30: {
int n5;
int n6;
char[] cArray4;
block29: {
char[] cArray5;
block28: {
int n7;
int n8;
char[] cArray6;
block27: {
stringArray = new String[3];
var0 = null;
char[] cArray7 = "\u0012\u0005".toCharArray();
n4 = 0;
int n9 = cArray7.length;
cArray6 = cArray7;
n8 = n9;
if (n9 <= 1) break block27;
cArray5 = cArray6;
n7 = n8;
if (n8 <= n4) break block28;
}
do {
char[] cArray8 = cArray6;
char[] cArray9 = cArray6;
int n10 = n4;
while (true) {
int n11;
char c2 = cArray8[n10];
switch (n4 % 5) {
case 0: {
n11 = 50;
break;
}
case 1: {
n11 = 37;
break;
}
case 2: {
n11 = 24;
break;
}
case 3: {
n11 = 81;
break;
}
default: {
n11 = 65;
}
}
cArray8[n10] = (char)(c2 ^ n11);
++n4;
cArray6 = cArray9;
n8 = n8;
if (n8 != 0) break;
cArray9 = cArray6;
n7 = n8;
n10 = n8;
cArray8 = cArray6;
}
cArray5 = cArray6;
n7 = n8;
} while (n8 > n4);
}
stringArray[0] = new String(cArray5).intern();
var0 = null;
char[] cArray10 = "\\Pt=".toCharArray();
n4 = 0;
int n12 = cArray10.length;
cArray4 = cArray10;
n6 = n12;
if (n12 <= 1) break block29;
cArray3 = cArray4;
n5 = n6;
if (n6 <= n4) break block30;
}
do {
char[] cArray11 = cArray4;
char[] cArray12 = cArray4;
int n13 = n4;
while (true) {
int n14;
char c3 = cArray11[n13];
switch (n4 % 5) {
case 0: {
n14 = 50;
break;
}
case 1: {
n14 = 37;
break;
}
case 2: {
n14 = 24;
break;
}
case 3: {
n14 = 81;
break;
}
default: {
n14 = 65;
}
}
cArray11[n13] = (char)(c3 ^ n14);
++n4;
cArray4 = cArray12;
n6 = n6;
if (n6 != 0) break;
cArray12 = cArray4;
n5 = n6;
n13 = n6;
cArray11 = cArray4;
}
cArray3 = cArray4;
n5 = n6;
} while (n6 > n4);
}
stringArray[1] = new String(cArray3).intern();
var0 = null;
char[] cArray13 = "sg[\u0015\u0004tbP\u0018\u000byiU\u001f\u000ebtJ\u0002\u0015gsO\t\u0018hDz2%WC\u007f9(XNt</]Ui#2FPn&9K_(`s\u0001\u0011-gv\n\u001c9s\u00e2\u0016\u0000Fwk\u001a\f5\u000e|\u0019~c\f<\t\u001f?\u0011bL\t$\u007f\u007f\u001d\u001aD-a".toCharArray();
n4 = 0;
int n15 = cArray13.length;
cArray2 = cArray13;
n3 = n15;
if (n15 <= 1) break block31;
cArray = cArray2;
n2 = n3;
if (n3 <= n4) break block32;
}
do {
char[] cArray14 = cArray2;
char[] cArray15 = cArray2;
int n16 = n4;
while (true) {
int n17;
char c4 = cArray14[n16];
switch (n4 % 5) {
case 0: {
n17 = 50;
break;
}
case 1: {
n17 = 37;
break;
}
case 2: {
n17 = 24;
break;
}
case 3: {
n17 = 81;
break;
}
default: {
n17 = 65;
}
}
cArray14[n16] = (char)(c4 ^ n17);
++n4;
cArray2 = cArray15;
n3 = n3;
if (n3 != 0) break;
cArray15 = cArray2;
n2 = n3;
n16 = n3;
cArray14 = cArray2;
}
cArray = cArray2;
n2 = n3;
} while (n3 > n4);
}
stringArray[2] = new String(cArray).intern();
U = stringArray;
O = true;
Q = 114;
R = 114;
S = 176;
}
}