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

2043 lines
72 KiB
Java

/*
* Decompiled with CFR 0.152.
*/
import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
public class l {
public int a;
public int[] b;
public int[] c;
public int[] d;
public int[] e;
public int[] f;
public int[] g;
public byte[] h;
public int i;
public int[] j;
public int[][] k;
public int[] l;
public int[] m;
public int[] n;
public int[] o;
public int[] p;
public int[] q;
public int[] r;
public int[] s;
public int t;
public int u;
public boolean v;
public int w;
public int x;
public int y;
public int z;
public int A;
public int B;
public boolean C;
public boolean D;
public boolean E;
public int F;
public int[] G;
public byte[] H;
private boolean I;
public boolean J;
public boolean K;
public boolean L;
public boolean M;
private static int[] N;
private static int[] O;
private static byte[] P;
private static int[] Q;
private int R;
private int S;
public int T;
public int[] U;
public int[] V;
public int[] W;
public int[] X;
public int[] Y;
public int[] Z;
private int ab;
private int[][] bb;
private int[] cb;
private int[] db;
private int[] eb;
private int[] fb;
private int[] gb;
private int[] hb;
private int ib;
private int jb;
private int kb;
private int lb;
private int mb;
private int nb;
private int ob;
private int pb;
private int qb;
private int rb;
private int sb;
private int tb;
private int ub;
private int vb;
private int wb;
private int xb;
private int yb;
private int zb;
private int Ab;
private int Bb;
private int Cb;
protected int Db;
protected int Eb;
private int Fb;
private int Gb;
public l(int n2, int n3) {
this.u = 1;
this.v = true;
this.C = true;
this.D = false;
this.E = false;
this.F = -1;
this.I = false;
this.J = false;
this.K = false;
this.L = false;
this.M = false;
this.R = 4;
this.S = 12345678;
this.yb = 12345678;
this.zb = 180;
this.Ab = 155;
this.Bb = 95;
this.Cb = 256;
this.Db = 512;
this.Eb = 32;
this.a(n2, n3);
this.bb = new int[n3][1];
for (int i2 = 0; i2 < n3; ++i2) {
this.bb[i2][0] = i2;
if (!q.d) continue;
}
}
public l(int n2, int n3, boolean bl, boolean bl2, boolean bl3, boolean bl4, boolean bl5) {
this.u = 1;
this.v = true;
this.C = true;
this.D = false;
this.E = false;
this.F = -1;
this.I = false;
this.J = false;
this.K = false;
this.L = false;
this.M = false;
this.R = 4;
this.S = 12345678;
this.yb = 12345678;
this.zb = 180;
this.Ab = 155;
this.Bb = 95;
this.Cb = 256;
this.Db = 512;
this.Eb = 32;
this.I = bl;
this.J = bl2;
this.K = bl3;
this.L = bl4;
this.M = bl5;
this.a(n2, n3);
}
private void a(int n2, int n3) {
block21: {
l l2;
boolean bl;
block19: {
boolean bl2;
block20: {
block17: {
l l3;
block18: {
block16: {
block14: {
l l4;
block15: {
boolean bl3;
block13: {
bl2 = q.d;
this.U = new int[n2];
this.V = new int[n2];
this.W = new int[n2];
this.g = new int[n2];
this.h = new byte[n2];
this.j = new int[n3];
this.k = new int[n3][];
this.l = new int[n3];
this.m = new int[n3];
this.p = new int[n3];
this.o = new int[n3];
this.n = new int[n3];
bl3 = this.M;
if (!bl2) {
if (!bl3) {
this.b = new int[n2];
this.c = new int[n2];
this.d = new int[n2];
this.e = new int[n2];
this.f = new int[n2];
}
bl3 = this.L;
}
if (bl2) break block13;
if (!bl3) {
this.H = new byte[n3];
this.G = new int[n3];
}
l4 = this;
if (bl2) break block14;
bl3 = l4.I;
}
if (!bl3) break block15;
this.X = this.U;
this.Y = this.V;
this.Z = this.W;
if (!bl2) break block16;
}
this.X = new int[n2];
this.Y = new int[n2];
l4 = this;
}
l4.Z = new int[n2];
}
l3 = this;
if (bl2) break block17;
if (!l3.K) break block18;
bl = this.J;
if (bl2) break block19;
if (bl) break block20;
}
this.q = new int[n3];
this.r = new int[n3];
l3 = this;
}
l3.s = new int[n3];
}
l2 = this;
if (bl2) break block21;
bl = l2.J;
}
if (!bl) {
this.cb = new int[n3];
this.db = new int[n3];
this.eb = new int[n3];
this.fb = new int[n3];
this.gb = new int[n3];
this.hb = new int[n3];
}
this.i = 0;
this.a = 0;
this.T = n2;
this.ab = n3;
this.kb = 0;
this.jb = 0;
this.ib = 0;
this.nb = 0;
this.mb = 0;
this.lb = 0;
this.qb = 256;
this.pb = 256;
this.ob = 256;
this.wb = 256;
this.vb = 256;
this.ub = 256;
this.tb = 256;
this.sb = 256;
this.rb = 256;
l2 = this;
}
l2.xb = 0;
}
public void a() {
this.b = new int[this.a];
this.c = new int[this.a];
this.d = new int[this.a];
this.e = new int[this.a];
this.f = new int[this.a];
}
public void b() {
this.i = 0;
this.a = 0;
}
public void b(int n2, int n3) {
block6: {
block5: {
l l2;
int n4;
block4: {
boolean bl = q.d;
this.i -= n2;
n4 = this.i;
if (bl) break block4;
if (n4 < 0) {
this.i = 0;
}
this.a -= n3;
l2 = this;
if (bl) break block5;
n4 = l2.a;
}
if (n4 >= 0) break block6;
l2 = this;
}
l2.a = 0;
}
}
/*
* Unable to fully structure code
*/
public l(byte[] var1_1, int var2_2, boolean var3_3) {
block30: {
block29: {
block28: {
block27: {
block26: {
block25: {
var9_4 = q.d;
super();
var4_5 = false;
this.u = 1;
this.v = true;
this.C = true;
this.D = false;
this.E = false;
this.F = -1;
this.I = false;
this.J = false;
this.K = false;
this.L = false;
this.M = false;
this.R = 4;
this.S = 12345678;
this.yb = 12345678;
this.zb = 180;
this.Ab = 155;
this.Bb = 95;
this.Cb = 256;
this.Db = 512;
this.Eb = 32;
var5_6 = q.a(var1_1, var2_2);
var6_7 = q.a(var1_1, var2_2 += 2);
var2_2 += 2;
this.a(var5_6, var6_7);
this.bb = new int[var6_7][1];
for (var7_8 = 0; var7_8 < var5_6; ++var7_8) {
this.U[var7_8] = q.d(var1_1, var2_2);
var2_2 += 2;
if (!var9_4) {
if (!var9_4) continue;
}
break block25;
}
var7_8 = 0;
}
while (var7_8 < var5_6) {
this.V[var7_8] = q.d(var1_1, var2_2);
var2_2 += 2;
++var7_8;
if (!var9_4) {
if (!var9_4) continue;
}
break block26;
}
var7_8 = 0;
}
while (var7_8 < var5_6) {
this.W[var7_8] = q.d(var1_1, var2_2);
var2_2 += 2;
++var7_8;
if (!var9_4) {
if (!var9_4) continue;
}
break block27;
}
this.a = var5_6;
}
for (var7_8 = 0; var7_8 < var6_7; ++var7_8) {
this.j[var7_8] = var1_1[var2_2++] & 255;
if (!var9_4) {
if (!var9_4) continue;
}
break block28;
}
var7_8 = 0;
}
while (var7_8 < var6_7) {
block31: {
this.l[var7_8] = q.d(var1_1, var2_2);
var2_2 += 2;
if (var9_4) break block31;
v0 = this.l[var7_8];
v1 = 32767;
if (var9_4) ** GOTO lbl79
if (v0 == v1) {
this.l[var7_8] = this.S;
}
++var7_8;
}
if (!var9_4) continue;
}
var7_8 = 0;
do {
v0 = var7_8;
v1 = var6_7;
lbl79:
// 2 sources
if (v0 >= v1) break;
this.m[var7_8] = q.d(var1_1, var2_2);
var2_2 += 2;
if (var9_4) continue;
v2 = this.m[var7_8];
v3 = 32767;
if (var9_4) ** GOTO lbl94
if (v2 == v3) {
this.m[var7_8] = this.S;
}
++var7_8;
} while (!var9_4);
var7_8 = 0;
do {
block34: {
block33: {
block32: {
v2 = var7_8;
v3 = var6_7;
lbl94:
// 2 sources
if (v2 >= v3) break;
var8_9 = var1_1[var2_2++] & 255;
if (var9_4) break block32;
v4 = var8_9;
if (var9_4) break block29;
if (v4 != 0) break block33;
this.p[var7_8] = 0;
}
if (!var9_4) break block34;
}
this.p[var7_8] = this.S;
}
++var7_8;
} while (!var9_4);
v4 = 0;
}
var7_8 = v4;
block7: while (true) {
v5 = var7_8;
v6 = var6_7;
block8: while (v5 < v6) {
this.k[var7_8] = new int[this.j[var7_8]];
if (var9_4) break block30;
for (var8_9 = 0; var8_9 < this.j[var7_8]; ++var8_9) {
v5 = var5_6;
v6 = 256;
if (var9_4) continue block8;
if (v5 < v6) {
this.k[var7_8][var8_9] = var1_1[var2_2++] & 255;
if (!var9_4) continue;
}
this.k[var7_8][var8_9] = q.a(var1_1, var2_2);
var2_2 += 2;
if (!var9_4) continue;
}
++var7_8;
if (!var9_4) continue block7;
}
break;
}
this.i = var6_7;
this.u = 1;
}
}
public l(String string) {
block19: {
int n2;
int n3;
int n4;
int n5;
int n6;
byte[] byArray;
boolean bl;
block18: {
int n7;
block17: {
bl = q.d;
boolean bl2 = false;
this.u = 1;
this.v = true;
this.C = true;
this.D = false;
this.E = false;
this.F = -1;
this.I = false;
this.J = false;
this.K = false;
this.L = false;
this.M = false;
this.R = 4;
this.S = 12345678;
this.yb = 12345678;
this.zb = 180;
this.Ab = 155;
this.Bb = 95;
this.Cb = 256;
this.Db = 512;
this.Eb = 32;
boolean bl3 = false;
boolean bl4 = false;
byArray = null;
try {
DataInputStream dataInputStream;
block16: {
InputStream inputStream = q.a(string);
dataInputStream = new DataInputStream(inputStream);
byArray = new byte[3];
this.Fb = 0;
this.Gb = 0;
for (n7 = 0; n7 < 3; n7 += dataInputStream.read(byArray, n7, 3 - n7)) {
if (!bl) {
if (!bl) continue;
}
break block16;
}
n7 = this.a(byArray);
byArray = new byte[n7];
this.Fb = 0;
this.Gb = 0;
}
for (n6 = 0; n6 < n7; n6 += dataInputStream.read(byArray, n6, n7 - n6)) {
if (!bl) {
if (!bl) continue;
}
break block17;
}
dataInputStream.close();
}
catch (IOException iOException) {
this.a = 0;
this.i = 0;
return;
}
}
int n8 = this.a(byArray);
n5 = this.a(byArray);
n7 = 0;
this.a(n8, n5);
this.bb = new int[n5][];
for (n6 = 0; n6 < n8; ++n6) {
n4 = this.a(byArray);
n3 = this.a(byArray);
n2 = this.a(byArray);
this.a(n4, n3, n2);
if (!bl) {
if (!bl) continue;
}
break block18;
}
n6 = 0;
}
block5: while (n6 < n5) {
block23: {
block21: {
l l2;
block22: {
int n9;
block20: {
int n10;
n4 = this.a(byArray);
n3 = this.a(byArray);
n2 = this.a(byArray);
int n11 = this.a(byArray);
this.Db = this.a(byArray);
this.Eb = this.a(byArray);
n9 = this.a(byArray);
int[] nArray = new int[n4];
if (bl) break block19;
for (int i2 = 0; i2 < n4; ++i2) {
nArray[i2] = this.a(byArray);
if (bl) continue block5;
if (!bl) continue;
}
int[] nArray2 = new int[n11];
for (n10 = 0; n10 < n11; ++n10) {
nArray2[n10] = this.a(byArray);
if (!bl) {
if (!bl) continue;
}
break block20;
}
n10 = this.a(n4, nArray, n3, n2);
l2 = this;
if (bl) break block21;
l2.bb[n6] = nArray2;
}
if (n9 != 0) break block22;
this.p[n10] = 0;
if (!bl) break block23;
}
l2 = this;
}
l2.p[n10] = this.S;
}
++n6;
if (!bl) continue;
}
this.u = 1;
}
}
public l(l[] lArray, int n2, boolean bl, boolean bl2, boolean bl3, boolean bl4) {
this.u = 1;
this.v = true;
this.C = true;
this.D = false;
this.E = false;
this.F = -1;
this.I = false;
this.J = false;
this.K = false;
this.L = false;
this.M = false;
this.R = 4;
this.S = 12345678;
this.yb = 12345678;
this.zb = 180;
this.Ab = 155;
this.Bb = 95;
this.Cb = 256;
this.Db = 512;
this.Eb = 32;
this.I = bl;
this.J = bl2;
this.K = bl3;
this.L = bl4;
this.a(lArray, n2, false);
}
public l(l[] lArray, int n2) {
this.u = 1;
this.v = true;
this.C = true;
this.D = false;
this.E = false;
this.F = -1;
this.I = false;
this.J = false;
this.K = false;
this.L = false;
this.M = false;
this.R = 4;
this.S = 12345678;
this.yb = 12345678;
this.zb = 180;
this.Ab = 155;
this.Bb = 95;
this.Cb = 256;
this.Db = 512;
this.Eb = 32;
this.a(lArray, n2, true);
}
/*
* Unable to fully structure code
*/
public void a(l[] var1_1, int var2_2, boolean var3_3) {
block14: {
block13: {
var14_4 = q.d;
var4_5 = false;
var5_6 = 0;
var6_7 = 0;
for (var7_8 = 0; var7_8 < var2_2; ++var7_8) {
var5_6 += var1_1[var7_8].i;
var6_7 += var1_1[var7_8].a;
if (!var14_4) {
if (!var14_4) continue;
}
break block13;
}
this.a(var6_7, var5_6);
}
v0 = var3_3;
if (!var14_4) {
if (v0) {
this.bb = new int[var5_6][];
}
v0 = false;
}
var7_8 = (int)v0;
block1: while (true) {
v1 = var7_8;
block2: while (v1 < var2_2) {
var8_9 = var1_1[var7_8];
var8_9.h();
this.Eb = var8_9.Eb;
this.Db = var8_9.Db;
this.zb = var8_9.zb;
this.Ab = var8_9.Ab;
this.Bb = var8_9.Bb;
this.Cb = var8_9.Cb;
if (var14_4) break block14;
var9_10 = 0;
while (var9_10 < var8_9.i) {
block16: {
block17: {
block15: {
var10_11 = new int[var8_9.j[var9_10]];
var11_12 = var8_9.k[var9_10];
v1 = 0;
if (var14_4) continue block2;
for (var12_13 = v175808; var12_13 < var8_9.j[var9_10]; ++var12_13) {
var10_11[var12_13] = this.a(var8_9.U[var11_12[var12_13]], var8_9.V[var11_12[var12_13]], var8_9.W[var11_12[var12_13]]);
if (!var14_4) {
if (!var14_4) continue;
}
break block15;
}
var12_13 = this.a(var8_9.j[var9_10], var10_11, var8_9.l[var9_10], var8_9.m[var9_10]);
this.p[var12_13] = var8_9.p[var9_10];
this.o[var12_13] = var8_9.o[var9_10];
this.n[var12_13] = var8_9.n[var9_10];
}
if (var14_4) break block16;
if (!var3_3) break block17;
v2 = var2_2;
if (var14_4) ** GOTO lbl61
if (v2 <= 1) ** GOTO lbl59
this.bb[var12_13] = new int[var8_9.bb[var9_10].length + 1];
this.bb[var12_13][0] = var7_8;
for (var13_14 = 0; var13_14 < var8_9.bb[var9_10].length; ++var13_14) {
this.bb[var12_13][var13_14 + 1] = var8_9.bb[var9_10][var13_14];
if (!var14_4) {
if (!var14_4) continue;
}
break block16;
lbl59:
// 2 sources
this.bb[var12_13] = new int[var8_9.bb[var9_10].length];
v2 = var13_14 = 0;
while (var13_14 < var8_9.bb[var9_10].length) {
this.bb[var12_13][var13_14] = var8_9.bb[var9_10][var13_14];
++var13_14;
if (!var14_4) {
if (!var14_4) continue;
}
break block16;
}
break block5;
}
}
++var9_10;
}
if (!var14_4) continue;
}
++var7_8;
if (!var14_4) continue block1;
}
break;
}
this.u = 1;
}
}
public int a(int n2, int n3, int n4) {
int n5;
block12: {
int n6;
block9: {
boolean bl = q.d;
for (int i2 = 0; i2 < this.a; ++i2) {
int n7;
block11: {
int n8;
block10: {
n5 = this.U[i2];
n6 = n2;
if (bl) break block9;
if (!bl) {
if (n5 != n6) continue;
n7 = this.V[i2];
n8 = n3;
}
if (bl) break block10;
if (n7 != n8) continue;
n7 = this.W[i2];
if (bl) break block11;
n8 = n4;
}
if (n7 != n8) continue;
n7 = i2;
}
return n7;
}
n5 = this.a;
if (bl) break block12;
n6 = this.T;
}
if (n5 >= n6) {
return -1;
}
this.U[this.a] = n2;
this.V[this.a] = n3;
this.W[this.a] = n4;
int n9 = this.a;
n5 = n9;
this.a = n9 + 1;
}
return n5;
}
public int b(int n2, int n3, int n4) {
int n5 = this.a;
if (!q.d) {
if (n5 >= this.T) {
return -1;
}
this.U[this.a] = n2;
this.V[this.a] = n3;
this.W[this.a] = n4;
int n6 = this.a;
n5 = n6;
this.a = n6 + 1;
}
return n5;
}
public int a(int n2, int[] nArray, int n3, int n4) {
int n5 = this.i;
if (!q.d) {
if (n5 >= this.ab) {
return -1;
}
this.j[this.i] = n2;
this.k[this.i] = nArray;
this.l[this.i] = n3;
this.m[this.i] = n4;
this.u = 1;
int n6 = this.i;
n5 = n6;
this.i = n6 + 1;
}
return n5;
}
/*
* Unable to fully structure code
*/
public l[] a(int var1_1, int var2_2, int var3_3, int var4_4, int var5_5, int var6_6, int var7_7, boolean var8_8) {
block18: {
block17: {
block15: {
block14: {
var19_9 = q.d;
var9_10 = false;
this.h();
var10_11 = new int[var6_6];
var11_12 = new int[var6_6];
for (var12_13 = 0; var12_13 < var6_6; ++var12_13) {
var10_11[var12_13] = 0;
var11_12[var12_13] = 0;
if (!var19_9) {
if (!var19_9) continue;
}
break block14;
}
var12_13 = 0;
}
while (var12_13 < this.i) {
block16: {
var13_15 = 0;
var14_16 = 0;
var15_17 = this.j[var12_13];
var16_18 = this.k[var12_13];
v0 = 0;
if (var19_9) break block15;
for (var17_20 = v178280; var17_20 < var15_17; ++var17_20) {
var13_15 += this.U[var16_18[var17_20]];
var14_16 += this.W[var16_18[var17_20]];
if (!var19_9) {
if (!var19_9) continue;
}
break block16;
}
v1 = var17_20 = var13_15 / (var15_17 * var3_3) + var14_16 / (var15_17 * var4_4) * var5_5;
var10_11[v1] = var10_11[v1] + var15_17;
v2 = var17_20;
var11_12[v2] = var11_12[v2] + 1;
++var12_13;
}
if (!var19_9) continue;
}
v0 = var6_6;
}
var12_14 = new l[v0];
for (var13_15 = 0; var13_15 < var6_6; ++var13_15) {
block20: {
block19: {
v3 = var10_11;
v4 = var13_15;
if (var19_9) break block19;
v5 = v3[v4];
v6 = var7_7;
if (var19_9) ** GOTO lbl58
if (v5 <= v6) break block20;
v3 = var10_11;
v4 = var13_15;
}
v3[v4] = var7_7;
}
var12_14[var13_15] = new l(var10_11[var13_15], var11_12[var13_15], true, true, true, var8_8, true);
var12_14[var13_15].Db = this.Db;
var12_14[var13_15].Eb = this.Eb;
if (!var19_9) continue;
}
var13_15 = 0;
block4: do {
v5 = var13_15;
v6 = this.i;
lbl58:
// 2 sources
if (v5 >= v6) break;
var14_16 = 0;
var15_17 = 0;
var16_19 = this.j[var13_15];
var17_22 = this.k[var13_15];
v7 = 0;
if (var19_9) break block17;
for (var18_23 = v178378; var18_23 < var16_19; ++var18_23) {
var14_16 += this.U[var17_22[var18_23]];
var15_17 += this.W[var17_22[var18_23]];
if (var19_9) continue block4;
if (!var19_9) continue;
}
var18_23 = var14_16 / (var16_19 * var3_3) + var15_17 / (var16_19 * var4_4) * var5_5;
this.a(var12_14[var18_23], var17_22, var16_19, var13_15);
++var13_15;
} while (!var19_9);
v7 = var13_15 = 0;
}
while (var13_15 < var6_6) {
v8 = var12_14;
if (!var19_9) {
v8[var13_15].a();
++var13_15;
if (!var19_9) continue;
}
break block18;
}
v8 = var12_14;
}
return v8;
}
public void a(l l2, int[] nArray, int n2, int n3) {
block8: {
l l3;
block9: {
boolean bl;
block7: {
int n4;
bl = q.d;
int[] nArray2 = new int[n2];
for (n4 = 0; n4 < n2; ++n4) {
int n5 = nArray2[n4] = l2.a(this.U[nArray[n4]], this.V[nArray[n4]], this.W[nArray[n4]]);
l2.g[n5] = this.g[nArray[n4]];
l2.h[n5] = this.h[nArray[n4]];
if (!bl) {
if (!bl) continue;
}
break block7;
}
n4 = l2.a(n2, nArray2, this.l[n3], this.m[n3]);
}
l3 = l2;
if (bl) break block8;
if (l3.L) break block9;
l3 = this;
if (bl) break block8;
if (!l3.L) {
l2.G[n4] = this.G[n3];
}
}
l2.p[n4] = this.p[n3];
l2.o[n4] = this.o[n3];
l3 = l2;
}
l3.n[n4] = this.n[n3];
}
public void a(boolean bl, int n2, int n3, int n4, int n5, int n6) {
block6: {
int n7;
boolean bl2 = q.d;
boolean bl3 = false;
this.Eb = 256 - n2 * 4;
this.Db = (64 - n3) * 16 + 128;
int n8 = this.K;
if (!bl2) {
if (n8 != 0) {
return;
}
n8 = n7 = 0;
}
while (n7 < this.i) {
block8: {
block7: {
if (bl2) break block6;
if (!bl) break block7;
this.p[n7] = this.S;
if (!bl2) break block8;
}
this.p[n7] = 0;
}
++n7;
if (!bl2) continue;
}
this.zb = n4;
this.Ab = n5;
this.Bb = n6;
this.Cb = (int)Math.sqrt(n4 * n4 + n5 * n5 + n6 * n6);
this.e();
}
}
public void a(int n2, int n3, int n4, int n5, int n6) {
this.Eb = 256 - n2 * 4;
this.Db = (64 - n3) * 16 + 128;
l l2 = this;
if (!q.d) {
if (l2.K) {
return;
}
this.zb = n4;
this.Ab = n5;
this.Bb = n6;
this.Cb = (int)Math.sqrt(n4 * n4 + n5 * n5 + n6 * n6);
l2 = this;
}
l2.e();
}
public void c(int n2, int n3, int n4) {
l l2 = this;
if (!q.d) {
if (l2.K) {
return;
}
this.zb = n2;
this.Ab = n3;
this.Bb = n4;
this.Cb = (int)Math.sqrt(n2 * n2 + n3 * n3 + n4 * n4);
l2 = this;
}
l2.e();
}
public void c(int n2, int n3) {
this.h[n2] = (byte)n3;
}
public void d(int n2, int n3, int n4) {
this.lb = this.lb + n2 & 0xFF;
this.mb = this.mb + n3 & 0xFF;
this.nb = this.nb + n4 & 0xFF;
this.c();
this.u = 1;
}
public void e(int n2, int n3, int n4) {
this.lb = n2 & 0xFF;
this.mb = n3 & 0xFF;
this.nb = n4 & 0xFF;
this.c();
this.u = 1;
}
public void f(int n2, int n3, int n4) {
this.ib += n2;
this.jb += n3;
this.kb += n4;
this.c();
this.u = 1;
}
public void g(int n2, int n3, int n4) {
this.ib = n2;
this.jb = n3;
this.kb = n4;
this.c();
this.u = 1;
}
private void c() {
block22: {
l l2;
block23: {
block20: {
l l3;
block21: {
int n2;
boolean bl;
block18: {
block19: {
block16: {
l l4;
block17: {
int n3;
block14: {
block15: {
block12: {
l l5;
block13: {
int n4;
int n5;
block10: {
block11: {
block8: {
l l6;
block9: {
bl = q.d;
l6 = this;
if (bl) break block8;
if (l6.rb != 256) break block9;
l6 = this;
if (bl) break block8;
if (l6.sb != 256) break block9;
l6 = this;
if (bl) break block8;
if (l6.tb != 256) break block9;
l6 = this;
if (bl) break block8;
if (l6.ub != 256) break block9;
l6 = this;
if (bl) break block8;
if (l6.vb != 256) break block9;
n5 = this.wb;
n4 = 256;
if (bl) break block10;
if (n5 == n4) break block11;
}
l6 = this;
}
l6.xb = 4;
return;
}
l5 = this;
if (bl) break block12;
n5 = l5.ob;
n4 = 256;
}
if (n5 != n4) break block13;
l5 = this;
if (bl) break block12;
if (l5.pb != 256) break block13;
n3 = this.qb;
if (bl) break block14;
if (n3 == 256) break block15;
}
l5 = this;
}
l5.xb = 3;
return;
}
l4 = this;
if (bl) break block16;
n3 = l4.lb;
}
if (n3 != 0) break block17;
l4 = this;
if (bl) break block16;
if (l4.mb != 0) break block17;
n2 = this.nb;
if (bl) break block18;
if (n2 == 0) break block19;
}
l4 = this;
}
l4.xb = 2;
return;
}
l3 = this;
if (bl) break block20;
n2 = l3.ib;
}
if (n2 != 0) break block21;
l3 = this;
if (bl) break block20;
if (l3.jb != 0) break block21;
l2 = this;
if (bl) break block22;
if (l2.kb == 0) break block23;
}
l3 = this;
}
l3.xb = 1;
return;
}
l2 = this;
}
l2.xb = 0;
}
private void h(int n2, int n3, int n4) {
int n5 = 0;
while (n5 < this.a) {
int n6 = n5;
this.X[n6] = this.X[n6] + n2;
int n7 = n5;
this.Y[n7] = this.Y[n7] + n3;
int n8 = n5++;
this.Z[n8] = this.Z[n8] + n4;
if (!q.d) continue;
}
}
private void i(int n2, int n3, int n4) {
boolean bl = q.d;
for (int i2 = 0; i2 < this.a; ++i2) {
int n5;
int n6;
int n7;
int n8 = n4;
if (!bl) {
if (n8 != 0) {
n7 = N[n4];
n6 = N[n4 + 256];
n5 = this.Y[i2] * n7 + this.X[i2] * n6 >> 15;
this.Y[i2] = this.Y[i2] * n6 - this.X[i2] * n7 >> 15;
this.X[i2] = n5;
}
n8 = n2;
}
if (!bl) {
if (n8 != 0) {
n7 = N[n2];
n6 = N[n2 + 256];
n5 = this.Y[i2] * n6 - this.Z[i2] * n7 >> 15;
this.Z[i2] = this.Y[i2] * n7 + this.Z[i2] * n6 >> 15;
this.Y[i2] = n5;
}
n8 = n3;
}
if (!bl) {
if (n8 == 0) continue;
n8 = N[n3];
}
n7 = n8;
n6 = N[n3 + 256];
n5 = this.Z[i2] * n7 + this.X[i2] * n6 >> 15;
this.Z[i2] = this.Z[i2] * n6 - this.X[i2] * n7 >> 15;
this.X[i2] = n5;
if (!bl) continue;
}
}
private void a(int n2, int n3, int n4, int n5, int n6, int n7) {
boolean bl = q.d;
for (int i2 = 0; i2 < this.a; ++i2) {
int n8 = n2;
if (!bl) {
if (n8 != 0) {
int n9 = i2;
this.X[n9] = this.X[n9] + (this.Y[i2] * n2 >> 8);
}
n8 = n3;
}
if (!bl) {
if (n8 != 0) {
int n10 = i2;
this.Z[n10] = this.Z[n10] + (this.Y[i2] * n3 >> 8);
}
n8 = n4;
}
if (!bl) {
if (n8 != 0) {
int n11 = i2;
this.X[n11] = this.X[n11] + (this.Z[i2] * n4 >> 8);
}
n8 = n5;
}
if (!bl) {
if (n8 != 0) {
int n12 = i2;
this.Y[n12] = this.Y[n12] + (this.Z[i2] * n5 >> 8);
}
n8 = n6;
}
if (!bl) {
if (n8 != 0) {
int n13 = i2;
this.Z[n13] = this.Z[n13] + (this.X[i2] * n6 >> 8);
}
n8 = n7;
}
if (n8 == 0) continue;
int n14 = i2;
this.Y[n14] = this.Y[n14] + (this.X[i2] * n7 >> 8);
if (!bl) continue;
}
}
private void j(int n2, int n3, int n4) {
for (int i2 = 0; i2 < this.a; ++i2) {
this.X[i2] = this.X[i2] * n2 >> 8;
this.Y[i2] = this.Y[i2] * n3 >> 8;
this.Z[i2] = this.Z[i2] * n4 >> 8;
if (!q.d) continue;
}
}
private void d() {
boolean bl = q.d;
boolean bl2 = false;
this.A = 999999;
this.y = 999999;
this.w = 999999;
this.B = -999999;
this.z = -999999;
this.x = -999999;
this.yb = -999999;
for (int i2 = 0; i2 < this.i; ++i2) {
int n2;
int n3;
int n4;
int n5;
int n6;
int n7;
int n8;
int n9;
block32: {
int[] nArray = this.k[i2];
int n10 = nArray[0];
int n11 = this.j[i2];
n8 = n9 = this.X[n10];
n6 = n7 = this.Y[n10];
n4 = n5 = this.Z[n10];
for (int i3 = 0; i3 < n11; ++i3) {
int n12;
block42: {
int n13;
int n14;
block41: {
block40: {
block39: {
block37: {
block38: {
block36: {
block35: {
block33: {
block34: {
n14 = nArray[i3];
n3 = this.X[n14];
n2 = n9;
if (bl) break block32;
if (bl) break block33;
if (n3 >= n2) break block34;
n9 = this.X[n14];
if (!bl) break block35;
}
n12 = this.X[n14];
n13 = n8;
}
if (bl) break block36;
if (n12 > n13) {
n8 = this.X[n14];
}
}
n12 = this.Y[n14];
n13 = n7;
}
if (bl) break block37;
if (n12 >= n13) break block38;
n7 = this.Y[n14];
if (!bl) break block39;
}
n12 = this.Y[n14];
n13 = n6;
}
if (bl) break block40;
if (n12 > n13) {
n6 = this.Y[n14];
}
}
n12 = this.Z[n14];
n13 = n5;
}
if (bl) break block41;
if (n12 < n13) {
n5 = this.Z[n14];
if (!bl) continue;
}
n12 = this.Z[n14];
if (bl) break block42;
n13 = n4;
}
if (n12 <= n13) continue;
n12 = this.Z[n14];
}
n4 = n12;
if (!bl) continue;
}
n3 = this.J;
if (!bl) {
if (n3 == 0) {
this.cb[i2] = n9;
this.db[i2] = n8;
this.eb[i2] = n7;
this.fb[i2] = n6;
this.gb[i2] = n5;
this.hb[i2] = n4;
}
n3 = n8 - n9;
}
n2 = this.yb;
}
if (!bl) {
if (n3 > n2) {
this.yb = n8 - n9;
}
n3 = n6 - n7;
n2 = this.yb;
}
if (!bl) {
if (n3 > n2) {
this.yb = n6 - n7;
}
n3 = n4 - n5;
n2 = this.yb;
}
if (!bl) {
if (n3 > n2) {
this.yb = n4 - n5;
}
n3 = n9;
n2 = this.w;
}
if (!bl) {
if (n3 < n2) {
this.w = n9;
}
n3 = n8;
n2 = this.x;
}
if (!bl) {
if (n3 > n2) {
this.x = n8;
}
n3 = n7;
n2 = this.y;
}
if (!bl) {
if (n3 < n2) {
this.y = n7;
}
n3 = n6;
n2 = this.z;
}
if (!bl) {
if (n3 > n2) {
this.z = n6;
}
n3 = n5;
n2 = this.A;
}
if (!bl) {
if (n3 < n2) {
this.A = n5;
}
n3 = n4;
n2 = this.B;
}
if (n3 <= n2) continue;
this.B = n4;
if (!bl) continue;
}
}
/*
* Unable to fully structure code
*/
public void e() {
block22: {
block21: {
var10_1 = q.d;
var1_2 = false;
v0 = this.K;
if (!var10_1) {
if (v0 != 0) {
return;
}
v0 = this.Db * this.Cb >> 8;
}
var2_3 = v0;
for (var3_4 = 0; var3_4 < this.i; ++var3_4) {
v1 = this.p;
v2 = var3_4;
if (!var10_1) {
v3 = v1[v2];
if (var10_1) break block21;
if (v3 == this.S) continue;
v1 = this.p;
v2 = var3_4;
}
v1[v2] = (this.q[var3_4] * this.zb + this.r[var3_4] * this.Ab + this.s[var3_4] * this.Bb) / var2_3;
if (!var10_1) continue;
}
v3 = this.a;
}
var3_5 = new int[v3];
var4_6 = new int[this.a];
var5_7 = new int[this.a];
var6_8 = new int[this.a];
for (var7_9 = 0; var7_9 < this.a; ++var7_9) {
var3_5[var7_9] = 0;
var4_6[var7_9] = 0;
var5_7[var7_9] = 0;
var6_8[var7_9] = 0;
if (!var10_1) {
if (!var10_1) continue;
}
break block22;
}
var7_9 = 0;
}
while (var7_9 < this.i) {
v4 = this.p[var7_9];
if (var10_1) ** GOTO lbl43
v5 = this.S;
if (var10_1) ** GOTO lbl63
if (v4 == v5) {
v4 = var8_10 = 0;
lbl43:
// 3 sources
while (var8_10 < this.j[var7_9]) {
v6 = var9_11 = this.k[var7_9][var8_10];
var3_5[v6] = var3_5[v6] + this.q[var7_9];
v7 = var9_11;
var4_6[v7] = var4_6[v7] + this.r[var7_9];
v8 = var9_11;
var5_7[v8] = var5_7[v8] + this.s[var7_9];
v9 = var9_11;
var6_8[v9] = var6_8[v9] + 1;
++var8_10;
if (!var10_1) {
if (!var10_1) continue;
}
break;
}
} else {
++var7_9;
}
if (!var10_1) continue;
}
var7_9 = 0;
do {
block24: {
block23: {
v10 = var7_9;
v5 = this.a;
lbl63:
// 2 sources
if (v10 >= v5) break;
v11 = var6_8;
v12 = var7_9;
if (var10_1) break block23;
if (v11[v12] <= 0) break block24;
v11 = this.g;
v12 = var7_9;
}
v11[v12] = (var3_5[var7_9] * this.zb + var4_6[var7_9] * this.Ab + var5_7[var7_9] * this.Bb) / (var2_3 * var6_8[var7_9]);
}
++var7_9;
} while (!var10_1);
}
/*
* Unable to fully structure code
* Could not resolve type clashes
*/
public void f() {
block15: {
var17_1 = q.d;
var1_2 = false;
v0 = this.K;
if (!var17_1) {
if (v0 != 0) {
v0 = this.J;
if (!var17_1) {
if (v0 != 0) {
return;
} else {
** GOTO lbl-1000
}
}
} else lbl-1000:
// 3 sources
{
v0 = var2_3 = 0;
}
}
while (var2_3 < this.i) {
block16: {
var3_4 = this.k[var2_3];
var4_5 = this.X[var3_4[0]];
var5_6 = this.Y[var3_4[0]];
var6_7 = this.Z[var3_4[0]];
var7_8 = this.X[var3_4[1]] - var4_5;
var8_9 = this.Y[var3_4[1]] - var5_6;
var9_10 = this.Z[var3_4[1]] - var6_7;
var10_11 = this.X[var3_4[2]] - var4_5;
var11_12 = this.Y[var3_4[2]] - var5_6;
var12_13 = this.Z[var3_4[2]] - var6_7;
var13_14 = var8_9 * var12_13 - var11_12 * var9_10;
var14_15 = var9_10 * var10_11 - var12_13 * var7_8;
if (var17_1) break block15;
var15_16 = var7_8 * var11_12 - var10_11 * var8_9;
do {
block18: {
block17: {
if (var13_14 > 8192) break block17;
v1 = var14_15;
v2 = 8192;
if (var17_1 || var17_1) break block18;
if (v1 > v2) break block17;
v1 = var15_16;
v2 = 8192;
if (var17_1) break block18;
if (v1 <= v2) {
v1 = var13_14;
v2 = -8192;
if (!var17_1) {
if (v1 >= v2) {
v1 = var14_15;
v2 = -8192;
if (!var17_1) {
if (v1 >= v2) {
v3 = var15_16;
if (!var17_1) {
if (v3 >= -8192) break;
}
break block16;
} else {
** GOTO lbl53
}
} else {
** GOTO lbl52
}
} else {
** GOTO lbl51
}
} else {
** GOTO lbl50
}
}
break block17;
lbl50:
// 2 sources
break block18;
lbl51:
// 2 sources
break block17;
lbl52:
// 2 sources
break block18;
}
var13_14 >>= 1;
var14_15 >>= 1;
v1 = var15_16;
v2 = 1;
}
var15_16 = v1 >> v2;
} while (!var17_1);
v3 = var16_17 = (int)(256.0 * Math.sqrt(var13_14 * var13_14 + var14_15 * var14_15 + var15_16 * var15_16));
}
if (!var17_1) {
if (var16_17 <= 0) {
var16_17 = 1;
}
this.q[var2_3] = var13_14 * 65536 / var16_17;
this.r[var2_3] = var14_15 * 65536 / var16_17;
this.s[var2_3] = var15_16 * 65535 / var16_17;
this.o[var2_3] = -1;
++var2_3;
}
if (!var17_1) continue;
}
this.e();
}
}
public void g() {
block24: {
l l2;
block27: {
int n2;
int n3;
block26: {
boolean bl;
block25: {
block21: {
int n4;
block23: {
int n5;
int n6;
block22: {
bl = q.d;
boolean bl2 = false;
n6 = this.u;
n5 = 2;
if (bl) break block22;
if (n6 == n5) {
block20: {
this.u = 0;
for (int i2 = 0; i2 < this.a; ++i2) {
this.X[i2] = this.U[i2];
this.Y[i2] = this.V[i2];
this.Z[i2] = this.W[i2];
if (!bl) {
if (!bl) continue;
}
break block20;
}
this.A = -9999999;
this.y = -9999999;
this.w = -9999999;
this.B = 9999999;
this.z = 9999999;
this.x = 9999999;
this.yb = 9999999;
}
return;
}
n6 = this.u;
if (bl) break block23;
n5 = 1;
}
if (n6 != n5) break block24;
this.u = 0;
n6 = n4 = 0;
}
while (n4 < this.a) {
this.X[n4] = this.U[n4];
this.Y[n4] = this.V[n4];
this.Z[n4] = this.W[n4];
++n4;
if (!bl) {
if (!bl) continue;
}
break block21;
}
n3 = this.xb;
n2 = 2;
if (bl) break block25;
if (n3 >= n2) {
this.i(this.lb, this.mb, this.nb);
}
}
n3 = this.xb;
n2 = 3;
}
if (!bl) {
if (n3 >= n2) {
this.j(this.ob, this.pb, this.qb);
}
n3 = this.xb;
n2 = 4;
}
if (bl) break block26;
if (n3 >= n2) {
this.a(this.rb, this.sb, this.tb, this.ub, this.vb, this.wb);
}
l2 = this;
if (bl) break block27;
n3 = l2.xb;
n2 = 1;
}
if (n3 >= n2) {
this.h(this.ib, this.jb, this.kb);
}
this.d();
l2 = this;
}
l2.f();
}
}
public void a(int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9) {
int n10;
int n11;
boolean bl;
block24: {
block25: {
block22: {
l l2;
block23: {
bl = q.d;
boolean bl2 = false;
this.g();
l2 = this;
if (bl) break block22;
if (l2.A > f.Bb) break block23;
l2 = this;
if (bl) break block22;
if (l2.B < f.Ab) break block23;
l2 = this;
if (bl) break block22;
if (l2.w > f.xb) break block23;
l2 = this;
if (bl) break block22;
if (l2.x < f.wb) break block23;
l2 = this;
if (bl) break block22;
if (l2.y > f.zb) break block23;
n11 = this.z;
if (bl) break block24;
if (n11 >= f.yb) break block25;
}
l2 = this;
}
l2.v = false;
return;
}
this.v = true;
n11 = 0;
}
int n12 = n11;
int n13 = 0;
int n14 = 0;
int n15 = 0;
int n16 = 0;
int n17 = 0;
int n18 = n7;
if (!bl) {
if (n18 != 0) {
n12 = O[n7];
n13 = O[n7 + 1024];
}
n18 = n6;
}
if (!bl) {
if (n18 != 0) {
n16 = O[n6];
n17 = O[n6 + 1024];
}
n18 = n5;
}
if (!bl) {
if (n18 != 0) {
n14 = O[n5];
n15 = O[n5 + 1024];
}
n18 = n10 = 0;
}
while (n10 < this.a) {
int n19;
int n20;
int n21;
block29: {
block28: {
block27: {
block26: {
int n22;
n21 = this.X[n10] - n2;
n20 = this.Y[n10] - n3;
n19 = this.Z[n10] - n4;
int n23 = n7;
if (!bl) {
if (n23 != 0) {
n22 = n20 * n12 + n21 * n13 >> 15;
n20 = n20 * n13 - n21 * n12 >> 15;
n21 = n22;
}
n23 = n6;
}
if (!bl) {
if (n23 != 0) {
n22 = n19 * n16 + n21 * n17 >> 15;
n19 = n19 * n17 - n21 * n16 >> 15;
n21 = n22;
}
n23 = n5;
}
if (!bl) {
if (n23 != 0) {
n22 = n20 * n15 - n19 * n14 >> 15;
n19 = n20 * n14 + n19 * n15 >> 15;
n20 = n22;
}
n23 = n19;
}
if (n23 < n9) break block26;
this.e[n10] = (n21 << n8) / n19;
if (!bl) break block27;
}
this.e[n10] = n21 << n8;
}
if (n19 < n9) break block28;
this.f[n10] = (n20 << n8) / n19;
if (!bl) break block29;
}
this.f[n10] = n20 << n8;
}
this.b[n10] = n21;
this.c[n10] = n20;
this.d[n10] = n19;
++n10;
if (!bl) continue;
}
}
public void h() {
block2: {
boolean bl = q.d;
this.g();
for (int i2 = 0; i2 < this.a; ++i2) {
this.U[i2] = this.X[i2];
this.V[i2] = this.Y[i2];
this.W[i2] = this.Z[i2];
if (!bl) {
if (!bl) continue;
}
break block2;
}
this.kb = 0;
this.jb = 0;
this.ib = 0;
this.nb = 0;
this.mb = 0;
this.lb = 0;
this.qb = 256;
this.pb = 256;
this.ob = 256;
this.wb = 256;
this.vb = 256;
this.ub = 256;
this.tb = 256;
this.sb = 256;
this.rb = 256;
this.xb = 0;
}
}
public l i() {
l[] lArray = new l[]{this};
l l2 = new l(lArray, 1);
l2.t = 0;
l2.E = this.E;
return l2;
}
public l a(boolean bl, boolean bl2, boolean bl3, boolean bl4) {
l[] lArray = new l[]{this};
l l2 = new l(lArray, 1, bl, bl2, bl3, bl4);
l2.t = 0;
return l2;
}
public void a(l l2) {
this.lb = l2.lb;
this.mb = l2.mb;
this.nb = l2.nb;
this.ib = l2.ib;
this.jb = l2.jb;
this.kb = l2.kb;
this.c();
this.u = 1;
}
public int a(byte[] byArray) {
int n2;
int n3;
boolean bl;
block5: {
bl = q.d;
do {
if (byArray[this.Fb] != 10) {
n3 = byArray[this.Fb];
if (!bl) {
if (n3 != 13) break;
}
break block5;
}
++this.Fb;
} while (!bl);
n3 = Q[byArray[this.Fb++] & 0xFF];
}
int n4 = n3;
int n5 = Q[byArray[this.Fb++] & 0xFF];
int n6 = Q[byArray[this.Fb++] & 0xFF];
int n7 = n2 = n4 * 4096 + n5 * 64 + n6 - 131072;
if (!bl) {
if (n7 == 123456) {
n2 = this.S;
}
n7 = n2;
}
return n7;
}
static {
int n2;
N = new int[512];
O = new int[2048];
P = new byte[64];
Q = new int[256];
for (n2 = 0; n2 < 256; ++n2) {
l.N[n2] = (int)(Math.sin((double)n2 * 0.02454369) * 32768.0);
l.N[n2 + 256] = (int)(Math.cos((double)n2 * 0.02454369) * 32768.0);
}
for (n2 = 0; n2 < 1024; ++n2) {
l.O[n2] = (int)(Math.sin((double)n2 * 0.00613592315) * 32768.0);
l.O[n2 + 1024] = (int)(Math.cos((double)n2 * 0.00613592315) * 32768.0);
}
for (n2 = 0; n2 < 10; ++n2) {
l.P[n2] = (byte)(48 + n2);
}
for (n2 = 0; n2 < 26; ++n2) {
l.P[n2 + 10] = (byte)(65 + n2);
}
for (n2 = 0; n2 < 26; ++n2) {
l.P[n2 + 36] = (byte)(97 + n2);
}
l.P[62] = -93;
l.P[63] = 36;
for (n2 = 0; n2 < 10; ++n2) {
l.Q[48 + n2] = n2;
}
for (n2 = 0; n2 < 26; ++n2) {
l.Q[65 + n2] = n2 + 10;
}
for (n2 = 0; n2 < 26; ++n2) {
l.Q[97 + n2] = n2 + 36;
}
l.Q[163] = 62;
l.Q[36] = 63;
}
}