Files
sbot_archive/s.java
T
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;
}
}