/* Class84_Sub1 - Decompiled by JODE
 * Visit http://jode.sourceforge.net/
 */
import java.lang.reflect.Field;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.util.ArrayList;
import java.util.Iterator;

import jaclib.memory.DirectBufferHelper;
import jaclib.memory.Stream;
import jaclib.memory.heap.NativeHeap;
import jaclib.memory.heap.NativeHeapBuffer;

import sun.misc.Unsafe;

public abstract class Class84_Sub1 extends Class84 {
	Class135_Sub2 aClass135_Sub2_8863;
	Class610 aClass610_8864 = new Class610();
	int anInt8865;
	static final int anInt8866 = 1;
	static final int anInt8867 = 2;
	static final int anInt8868 = 4;
	protected boolean aBool8869;
	static final int anInt8870 = 55;
	static final int anInt8871 = 7;
	protected static final int anInt8872 = 100663296;
	Class279 aClass279_8873;
	protected boolean aBool8874;
	int[] anIntArray8875;
	public ByteBuffer aByteBuffer8876;
	Class288 aClass288_8877;
	Class288 aClass288_8878;
	protected float[] aFloatArray8879;
	Class359 aClass359_8880;
	NativeHeap aNativeHeap8881;
	Class413 aClass413_8882;
	public int anInt8883;
	public int anInt8884;
	float[] aFloatArray8885;
	public Interface39 anInterface39_8886;
	Class288 aClass288_8887;
	Class346 aClass346_8888;
	protected int anInt8889;
	static final int anInt8890 = 8;
	Interface33[] anInterface33Array8891;
	Class346 aClass346_8892;
	public long aLong8893;
	static Class288 aClass288_8894;
	Class346 aClass346_8895;
	protected int anInt8896;
	Class288 aClass288_8897;
	Class277 aClass277_8898;
	float[] aFloatArray8899;
	boolean aBool8900;
	protected Class288 aClass288_8901;
	Class368_Sub1_Sub2 aClass368_Sub1_Sub2_8902;
	Class288 aClass288_8903;
	Class288 aClass288_8904;
	boolean aBool8905;
	Class288 aClass288_8906;
	Class288 aClass288_8907;
	Class288 aClass288_8908;
	public Class288 aClass288_8909;
	protected int anInt8910;
	protected float aFloat8911;
	float[][] aFloatArrayArray8912;
	float aFloat8913;
	float[] aFloatArray8914;
	float aFloat8915;
	float aFloat8916;
	protected float aFloat8917;
	Class163_Sub2[] aClass163_Sub2Array8918;
	protected int anInt8919;
	float aFloat8920;
	protected float aFloat8921;
	protected float aFloat8922;
	int anInt8923;
	protected boolean aBool8924;
	protected int anInt8925;
	protected int anInt8926;
	int anInt8927;
	int anInt8928;
	protected int anInt8929;
	static final int anInt8930 = 2;
	protected int anInt8931;
	protected int anInt8932;
	protected int anInt8933;
	protected int anInt8934;
	protected boolean aBool8935;
	Class346 aClass346_8936;
	protected boolean aBool8937;
	protected boolean aBool8938;
	int anInt8939;
	protected int anInt8940;
	Class346 aClass346_8941;
	protected boolean aBool8942;
	public float[] aFloatArray8943;
	static final int anInt8944 = 1;
	float aFloat8945;
	protected boolean aBool8946;
	int anInt8947;
	public float aFloat8948;
	public float aFloat8949;
	public Class288 aClass288_8950;
	protected float aFloat8951;
	public float aFloat8952;
	int anInt8953 = 4194304;
	protected Class587_Sub12[] aClass587_Sub12Array8954;
	protected int anInt8955;
	public Unsafe anUnsafe8956;
	int anInt8957;
	protected int anInt8958;
	int anInt8959;
	int anInt8960;
	protected int anInt8961;
	Class346 aClass346_8962;
	protected Class288[] aClass288Array8963;
	protected Class367[] aClass367Array8964;
	protected Class391[] aClass391Array8965;
	Class368 aClass368_8966;
	boolean aBool8967;
	Class381 aClass381_8968;
	Class363 aClass363_8969;
	Interface39 anInterface39_8970;
	Interface41 anInterface41_8971;
	protected int anInt8972;
	static final int anInt8973 = 128;
	Class305 aClass305_8974;
	public float aFloat8975;
	Class385 aClass385_8976;
	Class363 aClass363_8977;
	Class349 aClass349_8978;
	Class69 aClass69_8979;
	Class356 aClass356_8980;
	static Object anObject8981 = new Object();
	float aFloat8982;
	Class368_Sub1_Sub1 aClass368_Sub1_Sub1_8983;
	protected float aFloat8984;
	Class98 aClass98_8985;
	boolean aBool8986;
	Class383[] aClass383Array8987;
	Class159_Sub1 aClass159_Sub1_8988;
	boolean aBool8989;
	boolean aBool8990;
	int anInt8991;
	protected int anInt8992;
	protected boolean aBool8993;
	protected boolean aBool8994;
	Class368_Sub1_Sub2 aClass368_Sub1_Sub2_8995;
	Class135_Sub2 aClass135_Sub2_8996;
	protected int anInt8997;
	protected float aFloat8998;
	protected float aFloat8999;
	int anInt9000;
	Class288 aClass288_9001;
	protected boolean aBool9002;
	Class372 aClass372_9003;
	public int anInt9004;
	public int anInt9005;
	protected Class391[] aClass391Array9006;
	boolean aBool9007;
	Class386 aClass386_9008;
	public Class288 aClass288_9009;
	public int anInt9010;
	int anInt9011;
	public boolean aBool9012;
	protected boolean aBool9013;
	protected boolean aBool9014;
	protected boolean aBool9015;
	Class368[] aClass368Array9016;
	Interface41 anInterface41_9017;
	protected boolean aBool9018;
	Interface41 anInterface41_9019;
	Class64 aClass64_9020;
	Class363 aClass363_9021;
	Class363 aClass363_9022;
	Class363 aClass363_9023;
	protected int anInt9024;
	Class363 aClass363_9025;
	Interface43 anInterface43_9026;
	protected Class373 aClass373_9027;
	Class163_Sub2[] aClass163_Sub2Array9028;
	Class288 aClass288_9029;
	int anInt9030;
	protected boolean aBool9031;
	protected int anInt9032;

	public final void method14750(int i) {
		if (anInt8961 != i) {
			anInt8961 = i;
			method14847();
		}
	}

	public void method14751(Interface40 interface40) {
		((Class84_Sub1) this).aClass610_8864.method12988(interface40, (byte) 2);
	}

	public final NativeHeapBuffer method14752(int i, boolean bool) {
		return ((Class84_Sub1) this).aNativeHeap8881.method985(i, bool);
	}

	public abstract boolean method14753();

	public abstract boolean method14754();

	final boolean method14755() {
		return aBool8874;
	}

	public abstract Class57 method14756(String string);

	byte[] method14757(String string, String string_0_) {
		return ((Class84_Sub1) this).aClass279_8873.method5599(string, string_0_, -406053411);
	}

	final void method14758() {
		if (method14755())
			method14820();
		anInt8955 = anInt8896;
	}

	public abstract void method14759(Class288 class288, Class288 class288_1_, Class288 class288_2_);

	public static void method14760() throws Exception_Sub3 {
		Class106_Sub3.method14645(6838043).method117("jaclib", -1436687740);
	}

	public final Class176 method2092(int i, int i_3_, int[][] is, int[][] is_4_, int i_5_, int i_6_, int i_7_) {
		return new Class176_Sub3(this, i_6_, i_7_, i, i_3_, is, is_4_, i_5_);
	}

	public final void method14761() {
		((Class84_Sub1) this).anInterface33Array8891 = new Interface33[anInt9010];
		aClass288Array8963 = new Class288[anInt9010];
		aClass367Array8964 = new Class367[anInt9010];
		aClass391Array8965 = new Class391[anInt9010];
		aClass391Array9006 = new Class391[anInt9010];
		for (int i = 0; i < anInt9010; i++) {
			aClass391Array9006[i] = Class391.aClass391_5704;
			aClass391Array8965[i] = Class391.aClass391_5704;
			aClass367Array8964[i] = Class367.aClass367_5540;
			aClass288Array8963[i] = new Class288();
		}
		aClass587_Sub12Array8954 = new Class587_Sub12[anInt8889 - 2];
		int[] is = { -1 };
		anInterface39_8886 = method14829(1, 1, false, is, 0, 0);
		is[0] = -16777216;
		((Class84_Sub1) this).anInterface39_8970 = method14829(1, 1, false, is, 0, 0);
		method1933(new Class587_Sub25_Sub2(262144));
		((Class84_Sub1) this).aClass363_8969 = method14864(new Class384[] { new Class384(new Class371[] { Class371.aClass371_5581, Class371.aClass371_5568 }) });
		((Class84_Sub1) this).aClass363_9025 = method14864(new Class384[] { new Class384(new Class371[] { Class371.aClass371_5581, Class371.aClass371_5570 }) });
		((Class84_Sub1) this).aClass363_9023 = method14864(new Class384[] { new Class384(Class371.aClass371_5581), new Class384(Class371.aClass371_5570), new Class384(Class371.aClass371_5568), new Class384(Class371.aClass371_5569) });
		((Class84_Sub1) this).aClass363_9022 = method14864(new Class384[] { new Class384(Class371.aClass371_5581), new Class384(Class371.aClass371_5570), new Class384(Class371.aClass371_5568) });
		for (int i = 0; i < 7; i++) {
			((Class84_Sub1) this).aClass163_Sub2Array8918[i] = new Class163_Sub2(this, 0, 0, false, false);
			((Class84_Sub1) this).aClass163_Sub2Array9028[i] = new Class163_Sub2(this, 0, 0, true, true);
		}
		method14762();
		((Class84_Sub1) this).anInterface43_9026 = method14862(true);
		method14763();
		method1898();
		method1917();
		method1903();
		((Class84_Sub1) this).aClass135_Sub2_8996 = new Class135_Sub2(this, anInterface39_8886);
		((Class84_Sub1) this).aClass135_Sub2_8863 = new Class135_Sub2(this, ((Class84_Sub1) this).anInterface39_8970);
		method1912(3, 0);
	}

	final void method14762() {
		((Class84_Sub1) this).aClass359_8880 = new Class359(this);
		aBool8874 = false;
		try {
			((Class84_Sub1) this).aClass64_9020 = new Class64_Sub2(this);
			((Class84_Sub1) this).aClass349_8978 = new Class349_Sub2(this);
			((Class84_Sub1) this).aClass69_8979 = new Class69_Sub2(this);
			((Class84_Sub1) this).aClass356_8980 = new Class356_Sub1(this);
			((Class84_Sub1) this).aClass368_Sub1_Sub2_8902 = new Class368_Sub1_Sub2(this, ((Class84_Sub1) this).aClass359_8880, false);
			((Class84_Sub1) this).aClass368_Sub1_Sub2_8995 = new Class368_Sub1_Sub2(this, ((Class84_Sub1) this).aClass359_8880, true);
			((Class84_Sub1) this).aClass368_Sub1_Sub1_8983 = new Class368_Sub1_Sub1(this, ((Class84_Sub1) this).aClass359_8880);
		} catch (Exception exception) {
			exception.printStackTrace();
			((Class84_Sub1) this).aClass64_9020 = new Class64_Sub1(this);
			((Class84_Sub1) this).aClass349_8978 = new Class349_Sub1(this);
			((Class84_Sub1) this).aClass69_8979 = new Class69_Sub1(this);
			((Class84_Sub1) this).aClass356_8980 = new Class356_Sub2(this);
			((Class84_Sub1) this).aClass368_Sub1_Sub2_8902 = null;
			((Class84_Sub1) this).aClass368_Sub1_Sub2_8995 = null;
			((Class84_Sub1) this).aClass368_Sub1_Sub1_8983 = null;
			aBool8874 = true;
		}
		int i;
		int i_8_;
		if (aClass171_1190 != null) {
			i_8_ = aClass171_1190.method3754();
			i = aClass171_1190.method3755();
		} else {
			i = 0;
			i_8_ = 0;
		}
		((Class84_Sub1) this).aClass372_9003 = new Class372(this, i_8_, i);
		if (!aBool8874) {
			((Class84_Sub1) this).aClass383Array8987[1] = new Class383_Sub1(this);
			((Class84_Sub1) this).aClass372_9003.method6956(((Class84_Sub1) this).aClass383Array8987[1]);
		}
		if (((Class84_Sub1) this).aClass368_8966 != null) {
			((Class84_Sub1) this).aClass368_8966.method6920();
			((Class84_Sub1) this).aClass368_8966 = null;
		}
		method14765();
	}

	void method14763() {
		method14875(7);
		method14764();
	}

	final void method14764() {
		method14815();
		method14769();
		method14814();
		method14819();
		method14817();
		method15125();
		method14887();
		method14881();
		method14809();
		method14860();
		method14859();
		method14855();
		method14854();
		method14853();
		for (int i = anInt9010 - 1; i >= 0; i--) {
			method15025(i);
			method15053();
			method14848();
			method14843();
		}
		method14845();
		method14787();
	}

	public final void method1957(boolean bool) {
		aBool8937 = bool;
		method14809();
	}

	void method14765() {
		((Class84_Sub1) this).aClass372_9003.method6955();
		for (int i = 0; i < ((Class84_Sub1) this).aClass383Array8987.length; i++) {
			if (((Class84_Sub1) this).aClass383Array8987[i] != null && ((Class84_Sub1) this).aClass383Array8987[i].method7048())
				((Class84_Sub1) this).aClass383Array8987[i].method7039();
		}
		((Class84_Sub1) this).aClass386_9008 = new Class386(this);
		method15023();
		method14766();
		method14767();
		((Class84_Sub1) this).aClass386_9008.method7085(this);
		((Class84_Sub1) this).aClass305_8974 = new Class305(this, 1024);
	}

	public final int method1915() {
		return anInt8889 - 2;
	}

	final void method14766() {
		((Class84_Sub1) this).anInterface41_9017 = method14973(true);
		((Class84_Sub1) this).anInterface41_9017.method289(24, 12);
		((Class84_Sub1) this).aClass363_8977 = method14864(new Class384[] { new Class384(Class371.aClass371_5581) });
	}

	final void method14767() {
		((Class84_Sub1) this).anInterface41_9019 = method14973(false);
		((Class84_Sub1) this).anInterface41_9019.method289(3096, 12);
		aByteBuffer8876.clear();
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		for (int i = 0; i <= 256; i++) {
			double d = (double) (i * 2) * 3.141592653589793 / 256.0;
			float f = (float) Math.cos(d);
			float f_9_ = (float) Math.sin(d);
			aByteBuffer8876.putFloat(f_9_);
			aByteBuffer8876.putFloat(f);
			aByteBuffer8876.putFloat(0.0F);
		}
		((Class84_Sub1) this).anInterface41_9019.method302(0, aByteBuffer8876.position(), aLong8893);
	}

	boolean method14768(float f, float f_10_, float f_11_, float f_12_, float f_13_, float f_14_) {
		aByteBuffer8876.clear();
		aByteBuffer8876.putFloat(f);
		aByteBuffer8876.putFloat(f_10_);
		aByteBuffer8876.putFloat(f_11_);
		aByteBuffer8876.putFloat(f_12_);
		aByteBuffer8876.putFloat(f_13_);
		aByteBuffer8876.putFloat(f_14_);
		return ((Class84_Sub1) this).anInterface41_9017.method302(0, aByteBuffer8876.position(), aLong8893);
	}

	abstract void method14769();

	public final boolean method1878() {
		return true;
	}

	public final boolean method2047() {
		return true;
	}

	abstract boolean method14770(Class172 class172, Class96 class96);

	public final boolean method2008() {
		return true;
	}

	public final boolean method2168() {
		return true;
	}

	abstract void method14771(Interface43 interface43);

	final void method14772() {
		if (((Class84_Sub1) this).aClass385_8976 != Class385.aClass385_5667) {
			((Class84_Sub1) this).aClass385_8976 = Class385.aClass385_5667;
			method14793();
			method14804();
			((Class84_Sub1) this).aClass288_8908 = ((Class84_Sub1) this).aClass288_8906;
			method14805();
			method15116();
			((Class84_Sub1) this).anInt9011 &= ~0x7;
		}
	}

	public final boolean method1886() {
		return true;
	}

	public final boolean method1940() {
		return false;
	}

	public final boolean method1999() {
		return aBool9015;
	}

	public abstract float method14773();

	public final int method14774() {
		return anInt8961;
	}

	public final Class135 method2009(int[] is, int i, int i_15_, int i_16_, int i_17_, boolean bool) {
		return new Class135_Sub2(this, i_16_, i_17_, is, i, i_15_);
	}

	public void method2242() {
		if (((Class84_Sub1) this).aClass305_8974 != null)
			((Class84_Sub1) this).aClass305_8974.method6077();
	}

	public void method1926() {
		if (((Class84_Sub1) this).aClass305_8974 != null)
			((Class84_Sub1) this).aClass305_8974.method6088();
	}

	public void method1890() {
		if (((Class84_Sub1) this).aClass305_8974 != null)
			((Class84_Sub1) this).aClass305_8974.method6086();
	}

	void method14775() {
		method14776();
	}

	void method14776() {
		method14801();
		method14802();
		method15146();
		method1904();
		method1917();
	}

	public final boolean method2052() {
		if (((Class84_Sub1) this).aClass383Array8987[1] != null && !((Class84_Sub1) this).aClass383Array8987[1].method7048()) {
			boolean bool = ((Class84_Sub1) this).aClass372_9003.method6956(((Class84_Sub1) this).aClass383Array8987[1]);
			if (bool)
				((Class84_Sub1) this).aClass381_8968.method7018();
			return bool;
		}
		return false;
	}

	public final void method2226() {
		if (((Class84_Sub1) this).aClass383Array8987[1] != null && ((Class84_Sub1) this).aClass383Array8987[1].method7048()) {
			((Class84_Sub1) this).aClass372_9003.method6958(((Class84_Sub1) this).aClass383Array8987[1]);
			((Class84_Sub1) this).aClass381_8968.method7018();
		}
	}

	public final boolean method1972() {
		return (((Class84_Sub1) this).aClass383Array8987[1] != null && ((Class84_Sub1) this).aClass383Array8987[1].method7048());
	}

	final void method2080(float f, float f_18_, float f_19_, float f_20_, float f_21_, float f_22_) {
		Class383_Sub1.aFloat10007 = f;
		Class383_Sub1.aFloat10021 = f_18_;
		Class383_Sub1.aFloat10006 = f_19_;
		Class383_Sub1.aFloat10023 = f_22_;
	}

	public final void method2219(int i, int i_23_, int i_24_, int i_25_) {
		((Class84_Sub1) this).aClass372_9003.method6959(i, i_23_, i_24_, i_25_);
	}

	public final void method1976() {
		((Class84_Sub1) this).aClass372_9003.method6960();
	}

	public final Class587_Sub25 method1932(int i) {
		Class587_Sub25_Sub2 class587_sub25_sub2 = new Class587_Sub25_Sub2(i);
		((Class84_Sub1) this).aClass413_8882.method7337(class587_sub25_sub2, -350588433);
		return class587_sub25_sub2;
	}

	public final boolean method2040() {
		return true;
	}

	Class288 method14777() {
		return ((Class84_Sub1) this).aClass288_8887;
	}

	final Interface43 method14778(int i) {
		if (((Class84_Sub1) this).anInterface43_9026.method52() < i * 2)
			((Class84_Sub1) this).anInterface43_9026.method295(i);
		return ((Class84_Sub1) this).anInterface43_9026;
	}

	public final int method1877() {
		return anInt8884 + anInt8883 + anInt8929;
	}

	public final void method1924(int i, int i_26_, int i_27_, int i_28_, int i_29_) {
		method1913(i, i_26_, i + i_27_, i_26_, i_28_, i_29_);
	}

	public final Class135 method1938(Class100 class100, boolean bool) {
		Class135 class135;
		if (class100.method2439() != 0 && class100.method2440() != 0) {
			int[] is = class100.method2454(false);
			class135 = method1937(is, 0, class100.method2439(), class100.method2439(), class100.method2440(), -2138629690);
		} else
			class135 = method1937(new int[] { 0 }, 0, 1, 1, 1, -2077738291);
		class135.method3115(class100.method2453(), class100.method2443(), class100.method2484(), class100.method2444());
		return class135;
	}

	public final Class159 method2125(int i) {
		return new Class159_Sub1_Sub1(this, i);
	}

	public final Class135 method1939(int i, int i_30_, int i_31_, int i_32_, boolean bool) {
		Class135_Sub2 class135_sub2 = new Class135_Sub2(this, i_31_, i_32_, bool, false);
		class135_sub2.method3117(0, 0, i_31_, i_32_, i, i_30_);
		return class135_sub2;
	}

	public final Class106 method1945(Class611 class611, Class100_Sub1[] class100_sub1s, boolean bool) {
		return new Class106_Sub5(this, class611, class100_sub1s, bool);
	}

	Class370 method14779() {
		if (((Class84_Sub1) this).aClass305_8974 == null)
			return Class370.aClass370_5567;
		return ((Class84_Sub1) this).aClass305_8974.method6075();
	}

	public final void method1948(int i) {
		/* empty */
	}

	public final Class163 method1949(Class94 class94, int i, int i_33_, int i_34_, int i_35_) {
		return new Class163_Sub2(this, class94, i, i_34_, i_35_, i_33_);
	}

	public abstract boolean method14780();

	final void method14781() {
		((Class84_Sub1) this).aBool8986 = false;
		if (((Class84_Sub1) this).aClass385_8976 == Class385.aClass385_5668) {
			method14803();
			method14805();
		}
	}

	public final Class176 method2220(int i, int i_36_, int[][] is, int[][] is_37_, int i_38_, int i_39_, int i_40_) {
		return new Class176_Sub3(this, i_39_, i_40_, i, i_36_, is, is_37_, i_38_);
	}

	public final Class288 method1946() {
		return ((Class84_Sub1) this).aClass288_9029;
	}

	public final Class346 method1947() {
		return ((Class84_Sub1) this).aClass346_8941;
	}

	public final Class159 method2055(int i) {
		return new Class159_Sub1_Sub1(this, i);
	}

	public final void method1887(Class159 class159) {
		((Class84_Sub1) this).aClass159_Sub1_8988 = (Class159_Sub1) class159;
	}

	public final Interface31 method14782() {
		return (((Class84_Sub1) this).aClass159_Sub1_8988 != null ? ((Class84_Sub1) this).aClass159_Sub1_8988.method15270() : null);
	}

	public void method2062(int i, int i_41_, int i_42_, int i_43_, int i_44_, int i_45_, Class134 class134, int i_46_, int i_47_, int i_48_, int i_49_, int i_50_) {
		/* empty */
	}

	public final void method2174(int i) {
		/* empty */
	}

	Class370 method14783() {
		if (((Class84_Sub1) this).aClass305_8974 == null)
			return Class370.aClass370_5567;
		return ((Class84_Sub1) this).aClass305_8974.method6075();
	}

	void method14784() {
		ArrayList arraylist = ((Class84_Sub1) this).aClass610_8864.method12989(-1967274836);
		Iterator iterator = arraylist.iterator();
		while (iterator.hasNext()) {
			Interface40 interface40 = (Interface40) iterator.next();
			interface40.method54();
		}
	}

	public final void method1911(int[] is) {
		is[0] = anInt8925;
		is[1] = anInt9024;
		is[2] = anInt8926;
		is[3] = anInt8992;
	}

	public final void method1917() {
		if (aClass171_1190 != null) {
			anInt9024 = 0;
			anInt8925 = 0;
			anInt8926 = aClass171_1190.method3754();
			anInt8992 = aClass171_1190.method3755();
		} else {
			anInt8992 = 0;
			anInt8926 = 0;
			anInt9024 = 0;
			anInt8925 = 0;
		}
		if (aBool9031) {
			aBool9031 = false;
			method14789();
		}
	}

	public final void method1907(int i, int i_51_, int i_52_, int i_53_) {
		int i_54_;
		int i_55_;
		if (aClass171_1190 != null) {
			i_55_ = aClass171_1190.method3754();
			i_54_ = aClass171_1190.method3755();
		} else {
			i_54_ = 0;
			i_55_ = 0;
		}
		if (i <= 0 && i_52_ >= i_55_ - 1 && i_51_ <= 0 && i_53_ >= i_54_ - 1)
			method1917();
		else {
			anInt8925 = i >= 0 ? i : 0;
			anInt8926 = i_52_ <= i_55_ ? i_52_ : i_55_;
			anInt9024 = i_51_ >= 0 ? i_51_ : 0;
			anInt8992 = i_53_ <= i_54_ ? i_53_ : i_54_;
			if (!aBool9031 && (((Class84_Sub1) this).aBool8967 || method15068() == Class370.aClass370_5567)) {
				aBool9031 = true;
				method14789();
			}
			method14788();
		}
	}

	public final void method1870(int i, int i_56_, int i_57_, int i_58_) {
		int i_59_;
		int i_60_;
		if (aClass171_1190 != null) {
			i_60_ = aClass171_1190.method3754();
			i_59_ = aClass171_1190.method3755();
		} else {
			i_59_ = 0;
			i_60_ = 0;
		}
		i = i >= 0 ? i : 0;
		i_57_ = i_57_ <= i_60_ ? i_57_ : i_60_;
		i_56_ = i_56_ >= 0 ? i_56_ : 0;
		i_58_ = i_58_ <= i_59_ ? i_58_ : i_59_;
		boolean bool = false;
		if (anInt8925 < i) {
			anInt8925 = i;
			bool = true;
		}
		if (anInt8926 > i_57_) {
			anInt8926 = i_57_;
			bool = true;
		}
		if (anInt9024 < i_56_) {
			anInt9024 = i_56_;
			bool = true;
		}
		if (anInt8992 > i_58_) {
			anInt8992 = i_58_;
			bool = true;
		}
		if (bool) {
			if (!aBool9031 && (((Class84_Sub1) this).aBool8967 || method15068() == Class370.aClass370_5567)) {
				aBool9031 = true;
				method14789();
			}
			method14788();
		}
	}

	public abstract void method14785(Class363 class363);

	final Interface39 method14786(Class172 class172, int i, int i_61_, boolean bool, byte[] is) {
		return method14827(class172, i, i_61_, bool, is, 0, 0);
	}

	abstract void method14787();

	abstract void method14788();

	abstract void method14789();

	final Class288 method14790() {
		if (((Class84_Sub1) this).aClass385_8976 == Class385.aClass385_5667)
			return aClass288_8950;
		return aClass288_8894;
	}

	final Class288 method14791() {
		if (((Class84_Sub1) this).aClass385_8976 == Class385.aClass385_5667)
			return ((Class84_Sub1) this).aClass288_8877;
		return aClass288_8894;
	}

	public final Class346 method1869() {
		return ((Class84_Sub1) this).aClass346_8941;
	}

	public Class346 method1998() {
		return ((Class84_Sub1) this).aClass346_8888;
	}

	public final void method1958(Class288 class288) {
		((Class84_Sub1) this).aClass288_8906.method5825(class288);
		method14792();
		if (((Class84_Sub1) this).aClass385_8976 == Class385.aClass385_5667)
			method14805();
	}

	final void method14792() {
		((Class84_Sub1) this).aClass288_9001.method5825(aClass288_8950);
		((Class84_Sub1) this).aClass288_9001.method5835(((Class84_Sub1) this).aClass288_8906);
		((Class84_Sub1) this).aClass288_9001.method5763(((Class84_Sub1) this).aFloatArrayArray8912[0]);
		((Class84_Sub1) this).aClass288_9001.method5769(((Class84_Sub1) this).aFloatArrayArray8912[1]);
		((Class84_Sub1) this).aClass288_9001.method5777(((Class84_Sub1) this).aFloatArrayArray8912[2]);
		((Class84_Sub1) this).aClass288_9001.method5765(((Class84_Sub1) this).aFloatArrayArray8912[3]);
		((Class84_Sub1) this).aClass288_9001.method5766(((Class84_Sub1) this).aFloatArrayArray8912[4]);
		((Class84_Sub1) this).aClass288_9001.method5816(((Class84_Sub1) this).aFloatArrayArray8912[5]);
		aClass288_9009.method5825(((Class84_Sub1) this).aClass288_9001);
		method14799(aClass288_9009);
	}

	public final Class288 method1959() {
		return ((Class84_Sub1) this).aClass288_8906;
	}

	final void method14793() {
		((Class84_Sub1) this).aBool8900 = false;
	}

	Class288 method14794() {
		return ((Class84_Sub1) this).aClass288_8887;
	}

	Class346 method14795() {
		if (((Class84_Sub1) this).aClass385_8976 == Class385.aClass385_5667) {
			if (!((Class84_Sub1) this).aBool8900) {
				((Class84_Sub1) this).aClass346_8892.method6507(((Class84_Sub1) this).aClass346_8962);
				((Class84_Sub1) this).aClass346_8892.method6564(((Class84_Sub1) this).aClass346_8888);
				((Class84_Sub1) this).aClass288_8897.method5846(((Class84_Sub1) this).aClass346_8892);
				((Class84_Sub1) this).aBool8900 = true;
			}
			return ((Class84_Sub1) this).aClass346_8892;
		}
		return ((Class84_Sub1) this).aClass346_8962;
	}

	abstract void method14796();

	final void method14797(int i, int i_62_) {
		anInt8940 = i;
		anInt8933 = i_62_;
		method14787();
		method14788();
	}

	abstract void method14798(int i, Class365 class365, boolean bool);

	public abstract void method14799(Class288 class288);

	public final Class135 method2074(Class100 class100, boolean bool) {
		Class135 class135;
		if (class100.method2439() != 0 && class100.method2440() != 0) {
			int[] is = class100.method2454(false);
			class135 = method1937(is, 0, class100.method2439(), class100.method2439(), class100.method2440(), -2088325775);
		} else
			class135 = method1937(new int[] { 0 }, 0, 1, 1, 1, -2084496370);
		class135.method3115(class100.method2453(), class100.method2443(), class100.method2484(), class100.method2444());
		return class135;
	}

	final void method14800() {
		if (((Class84_Sub1) this).aClass385_8976 != Class385.aClass385_5668) {
			Class385 class385 = ((Class84_Sub1) this).aClass385_8976;
			((Class84_Sub1) this).aClass385_8976 = Class385.aClass385_5668;
			if (class385 == Class385.aClass385_5667)
				method14793();
			method14803();
			((Class84_Sub1) this).aClass288_8908 = ((Class84_Sub1) this).aClass288_8903;
			method14805();
			method15116();
			((Class84_Sub1) this).anInt9011 &= ~0x8;
		}
	}

	final void method14801() {
		((Class84_Sub1) this).aBool8986 = false;
		if (((Class84_Sub1) this).aClass385_8976 == Class385.aClass385_5668) {
			method14803();
			method14805();
		}
	}

	public final Class106 method2158(Class611 class611, Class100_Sub1[] class100_sub1s, boolean bool) {
		return new Class106_Sub5(this, class611, class100_sub1s, bool);
	}

	final void method14802() {
		((Class84_Sub1) this).aBool8905 = false;
		method14804();
		if (((Class84_Sub1) this).aClass385_8976 == Class385.aClass385_5667)
			method14805();
	}

	final void method14803() {
		if (!((Class84_Sub1) this).aBool8986) {
			int i;
			int i_63_;
			if (aClass171_1190 != null) {
				i_63_ = aClass171_1190.method3754();
				i = aClass171_1190.method3755();
			} else {
				i = 0;
				i_63_ = 0;
			}
			Class288 class288 = ((Class84_Sub1) this).aClass288_8903;
			if (i_63_ != 0 && i != 0)
				class288.method5757(0.0F, (float) i_63_, 0.0F, (float) i, -1.0F, 1.0F);
			else
				class288.method5744();
			((Class84_Sub1) this).aClass288_8904.method5825(class288);
			method14799(((Class84_Sub1) this).aClass288_8904);
			((Class84_Sub1) this).aBool8986 = true;
		}
	}

	final void method14804() {
		if (!((Class84_Sub1) this).aBool8905)
			((Class84_Sub1) this).aBool8905 = true;
	}

	final void method14805() {
		aClass288_8909.method5825(((Class84_Sub1) this).aClass288_8908);
		method14799(aClass288_8909);
		aFloat8922 = ((aClass288_8909.aFloatArray4285[14] - aClass288_8909.aFloatArray4285[15]) / (aClass288_8909.aFloatArray4285[11] - aClass288_8909.aFloatArray4285[10]));
		aFloat8911 = (-aClass288_8909.aFloatArray4285[14] / aClass288_8909.aFloatArray4285[10]);
		method14858();
	}

	final void method14806(boolean bool) {
		if (bool != aBool8869) {
			aBool8869 = bool;
			method14881();
			((Class84_Sub1) this).anInt9011 &= ~0xf;
		}
	}

	final void method14807(boolean bool) {
		if (bool != aBool8869) {
			aBool8869 = bool;
			method14881();
			((Class84_Sub1) this).anInt9011 &= ~0xf;
		}
	}

	final void method14808(boolean bool) {
		if (bool != aBool8938) {
			aBool8938 = bool;
			method14809();
			((Class84_Sub1) this).anInt9011 &= ~0xf;
		}
	}

	public final Class134 method2211(int i, int i_64_, int[] is, int[] is_65_) {
		return Class134_Sub1.method14704(this, i, i_64_, is, is_65_);
	}

	abstract void method14809();

	public final void method14810(int i) {
		switch (i) {
		case 0:
			method14863(Class391.aClass391_5704, Class391.aClass391_5704);
			break;
		case 3:
			method14863(Class391.aClass391_5705, Class391.aClass391_5704);
			break;
		case 1:
			method14863(Class391.aClass391_5708, Class391.aClass391_5708);
			break;
		case 2:
			method14863(Class391.aClass391_5707, Class391.aClass391_5708);
			break;
		case 4:
			method14863(Class391.aClass391_5706, Class391.aClass391_5706);
			break;
		}
	}

	public void method1980(float f, float f_66_, float f_67_, float[] fs) {
		float f_68_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[14] + ((Class84_Sub1) this).aClass288_9001.aFloatArray4285[2] * f + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[6] * f_66_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[10] * f_67_));
		float f_69_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[15] + ((Class84_Sub1) this).aClass288_9001.aFloatArray4285[3] * f + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[7] * f_66_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[11] * f_67_));
		if (f_68_ < -f_69_ || f_68_ > f_69_) {
			float[] fs_70_ = fs;
			float[] fs_71_ = fs;
			fs[2] = Float.NaN;
			fs_71_[1] = Float.NaN;
			fs_70_[0] = Float.NaN;
		} else {
			float f_72_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[12] + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[0] * f) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[4] * f_66_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[8] * f_67_));
			if (f_72_ < -f_69_ || f_72_ > f_69_) {
				float[] fs_73_ = fs;
				float[] fs_74_ = fs;
				fs[2] = Float.NaN;
				fs_74_[1] = Float.NaN;
				fs_73_[0] = Float.NaN;
			} else {
				float f_75_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[13] + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[1]) * f + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[5]) * f_66_ + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[9]) * f_67_);
				if (f_75_ < -f_69_ || f_75_ > f_69_) {
					float[] fs_76_ = fs;
					float[] fs_77_ = fs;
					fs[2] = Float.NaN;
					fs_77_[1] = Float.NaN;
					fs_76_[0] = Float.NaN;
				} else {
					float f_78_ = (aClass288_8950.aFloatArray4285[14] + aClass288_8950.aFloatArray4285[2] * f + aClass288_8950.aFloatArray4285[6] * f_66_ + aClass288_8950.aFloatArray4285[10] * f_67_);
					fs[0] = (((Class84_Sub1) this).aFloat8913 + ((Class84_Sub1) this).aFloat8982 * f_72_ / f_69_);
					fs[1] = (((Class84_Sub1) this).aFloat8915 + ((Class84_Sub1) this).aFloat8916 * f_75_ / f_69_);
					fs[2] = f_78_;
				}
			}
		}
	}

	public final void method14811() {
		((Class84_Sub1) this).anInterface33Array8891 = new Interface33[anInt9010];
		aClass288Array8963 = new Class288[anInt9010];
		aClass367Array8964 = new Class367[anInt9010];
		aClass391Array8965 = new Class391[anInt9010];
		aClass391Array9006 = new Class391[anInt9010];
		for (int i = 0; i < anInt9010; i++) {
			aClass391Array9006[i] = Class391.aClass391_5704;
			aClass391Array8965[i] = Class391.aClass391_5704;
			aClass367Array8964[i] = Class367.aClass367_5540;
			aClass288Array8963[i] = new Class288();
		}
		aClass587_Sub12Array8954 = new Class587_Sub12[anInt8889 - 2];
		int[] is = { -1 };
		anInterface39_8886 = method14829(1, 1, false, is, 0, 0);
		is[0] = -16777216;
		((Class84_Sub1) this).anInterface39_8970 = method14829(1, 1, false, is, 0, 0);
		method1933(new Class587_Sub25_Sub2(262144));
		((Class84_Sub1) this).aClass363_8969 = method14864(new Class384[] { new Class384(new Class371[] { Class371.aClass371_5581, Class371.aClass371_5568 }) });
		((Class84_Sub1) this).aClass363_9025 = method14864(new Class384[] { new Class384(new Class371[] { Class371.aClass371_5581, Class371.aClass371_5570 }) });
		((Class84_Sub1) this).aClass363_9023 = method14864(new Class384[] { new Class384(Class371.aClass371_5581), new Class384(Class371.aClass371_5570), new Class384(Class371.aClass371_5568), new Class384(Class371.aClass371_5569) });
		((Class84_Sub1) this).aClass363_9022 = method14864(new Class384[] { new Class384(Class371.aClass371_5581), new Class384(Class371.aClass371_5570), new Class384(Class371.aClass371_5568) });
		for (int i = 0; i < 7; i++) {
			((Class84_Sub1) this).aClass163_Sub2Array8918[i] = new Class163_Sub2(this, 0, 0, false, false);
			((Class84_Sub1) this).aClass163_Sub2Array9028[i] = new Class163_Sub2(this, 0, 0, true, true);
		}
		method14762();
		((Class84_Sub1) this).anInterface43_9026 = method14862(true);
		method14763();
		method1898();
		method1917();
		method1903();
		((Class84_Sub1) this).aClass135_Sub2_8996 = new Class135_Sub2(this, anInterface39_8886);
		((Class84_Sub1) this).aClass135_Sub2_8863 = new Class135_Sub2(this, ((Class84_Sub1) this).anInterface39_8970);
		method1912(3, 0);
	}

	abstract boolean method14812(Class172 class172, Class96 class96);

	final void method14813(boolean bool) {
		if (bool != aBool8946) {
			aBool8946 = bool;
			method14814();
			((Class84_Sub1) this).anInt9011 &= ~0x7;
		}
	}

	public void method2026(float f, float f_79_) {
		((Class84_Sub1) this).aFloat8945 = f;
		((Class84_Sub1) this).aFloat8920 = f_79_;
		method15116();
	}

	public final void method1960(float f) {
		if (aFloat8951 != f) {
			aFloat8951 = f;
			method14815();
			method15125();
		}
	}

	public final void method1961(int i, float f, float f_80_, float f_81_, float f_82_, float f_83_) {
		boolean bool = ((Class84_Sub1) this).anInt8947 != i;
		if (bool || aFloat8952 != f || aFloat8917 != f_80_) {
			((Class84_Sub1) this).anInt8947 = i;
			aFloat8952 = f;
			aFloat8917 = f_80_;
			if (bool) {
				aFloat8948 = (float) (((Class84_Sub1) this).anInt8947 & 0xff0000) / 1.671168E7F;
				aFloat8949 = (float) (((Class84_Sub1) this).anInt8947 & 0xff00) / 65280.0F;
				aFloat8975 = ((float) (((Class84_Sub1) this).anInt8947 & 0xff) / 255.0F);
				method14815();
			}
			method14769();
		}
		if (((Class84_Sub1) this).aFloatArray8885[0] != f_81_ || ((Class84_Sub1) this).aFloatArray8885[1] != f_82_ || ((Class84_Sub1) this).aFloatArray8885[2] != f_83_) {
			((Class84_Sub1) this).aFloatArray8885[0] = f_81_;
			((Class84_Sub1) this).aFloatArray8885[1] = f_82_;
			((Class84_Sub1) this).aFloatArray8885[2] = f_83_;
			((Class84_Sub1) this).aFloatArray8914[0] = -f_81_;
			((Class84_Sub1) this).aFloatArray8914[1] = -f_82_;
			((Class84_Sub1) this).aFloatArray8914[2] = -f_83_;
			float f_84_ = (float) (1.0 / Math.sqrt((double) (f_81_ * f_81_ + f_82_ * f_82_ + f_83_ * f_83_)));
			aFloatArray8943[0] = f_81_ * f_84_;
			aFloatArray8943[1] = f_82_ * f_84_;
			aFloatArray8943[2] = f_83_ * f_84_;
			aFloatArray8879[0] = -aFloatArray8943[0];
			aFloatArray8879[1] = -aFloatArray8943[1];
			aFloatArray8879[2] = -aFloatArray8943[2];
			method14817();
			((Class84_Sub1) this).anInt8959 = (int) (f_81_ * 256.0F / f_82_);
			((Class84_Sub1) this).anInt8960 = (int) (f_83_ * 256.0F / f_82_);
		}
		method15125();
	}

	public final boolean method1916() {
		return false;
	}

	abstract void method14814();

	abstract void method14815();

	final void method14816(boolean bool) {
		if (bool != aBool8938) {
			aBool8938 = bool;
			method14809();
			((Class84_Sub1) this).anInt9011 &= ~0xf;
		}
	}

	abstract void method14817();

	abstract void method14818(Interface43 interface43, Class392 class392, int i, int i_85_, int i_86_, int i_87_);

	public final void method2035(int i, int i_88_, int i_89_, int i_90_) {
		int i_91_;
		int i_92_;
		if (aClass171_1190 != null) {
			i_92_ = aClass171_1190.method3754();
			i_91_ = aClass171_1190.method3755();
		} else {
			i_91_ = 0;
			i_92_ = 0;
		}
		i = i >= 0 ? i : 0;
		i_89_ = i_89_ <= i_92_ ? i_89_ : i_92_;
		i_88_ = i_88_ >= 0 ? i_88_ : 0;
		i_90_ = i_90_ <= i_91_ ? i_90_ : i_91_;
		boolean bool = false;
		if (anInt8925 < i) {
			anInt8925 = i;
			bool = true;
		}
		if (anInt8926 > i_89_) {
			anInt8926 = i_89_;
			bool = true;
		}
		if (anInt9024 < i_88_) {
			anInt9024 = i_88_;
			bool = true;
		}
		if (anInt8992 > i_90_) {
			anInt8992 = i_90_;
			bool = true;
		}
		if (bool) {
			if (!aBool9031 && (((Class84_Sub1) this).aBool8967 || method15068() == Class370.aClass370_5567)) {
				aBool9031 = true;
				method14789();
			}
			method14788();
		}
	}

	final void method14819() {
		if (method14755())
			method14820();
		anInt8955 = anInt8896;
	}

	abstract void method14820();

	abstract Interface39 method14821(Class172 class172, Class96 class96, int i, int i_93_);

	abstract boolean method14822(Class172 class172, Class96 class96);

	final Interface39 method14823(int i, int i_94_, boolean bool, int[] is) {
		return method14829(i, i_94_, bool, is, 0, 0);
	}

	final Interface39 method14824(Class172 class172, int i, int i_95_, boolean bool, byte[] is) {
		return method14827(class172, i, i_95_, bool, is, 0, 0);
	}

	final Interface39 method14825(Class172 class172, int i, int i_96_, boolean bool, float[] fs) {
		return method14828(class172, i, i_96_, bool, fs, 0, 0);
	}

	abstract Interface39 method14826(Class172 class172, Class96 class96, int i, int i_97_);

	abstract Interface39 method14827(Class172 class172, int i, int i_98_, boolean bool, byte[] is, int i_99_, int i_100_);

	abstract Interface39 method14828(Class172 class172, int i, int i_101_, boolean bool, float[] fs, int i_102_, int i_103_);

	abstract Interface39 method14829(int i, int i_104_, boolean bool, int[] is, int i_105_, int i_106_);

	abstract Interface31 method14830(int i, boolean bool, int[][] is);

	public final void method2139(int i, int i_107_, int i_108_, int i_109_, int i_110_, int i_111_, byte[] is, int i_112_, int i_113_) {
		/* empty */
	}

	final void method14831() {
		method14846();
	}

	abstract void method14832();

	public final Class288 method14833() {
		return aClass288Array8963[anInt8961];
	}

	public final void method14834(Interface33 interface33) {
		if (((Class84_Sub1) this).anInterface33Array8891[anInt8961] != interface33) {
			((Class84_Sub1) this).anInterface33Array8891[anInt8961] = interface33;
			if (interface33 != null)
				interface33.method190();
			else
				anInterface39_8886.method190();
			((Class84_Sub1) this).anInt9011 &= ~0x1;
		}
	}

	public void method14835(int i) {
		if (i != anInt8958) {
			anInt8958 = i;
			method14845();
		}
	}

	void method14836() {
		((Class84_Sub1) this).aClass372_9003.method6967();
		((Class84_Sub1) this).anInterface41_8971.method54();
		((Class84_Sub1) this).anInterface41_9017.method54();
		((Class84_Sub1) this).anInterface41_9019.method54();
		for (int i = 0; i < 7; i++)
			((Class84_Sub1) this).aClass163_Sub2Array9028[i].method15336();
		((Class84_Sub1) this).aClass386_9008.method7100();
		((Class84_Sub1) this).anInterface43_9026.method54();
		((Class84_Sub1) this).aClass305_8974.method6076();
		((Class84_Sub1) this).aClass305_8974 = null;
	}

	public void method1993(int i) {
		if (((Class84_Sub1) this).aClass381_8968 != null)
			((Class84_Sub1) this).aClass381_8968.method7022();
		anInt9005 = i & 0x7fffffff;
	}

	abstract void method14837();

	abstract void method14838(int i, Class365 class365, boolean bool, boolean bool_114_);

	public final void method14839(int i, Class365 class365) {
		method14798(i, class365, false);
	}

	public final boolean method2100() {
		return true;
	}

	public final boolean method2171() {
		return true;
	}

	void method14840() {
		((Class84_Sub1) this).aClass372_9003.method6967();
		((Class84_Sub1) this).anInterface41_8971.method54();
		((Class84_Sub1) this).anInterface41_9017.method54();
		((Class84_Sub1) this).anInterface41_9019.method54();
		for (int i = 0; i < 7; i++)
			((Class84_Sub1) this).aClass163_Sub2Array9028[i].method15336();
		((Class84_Sub1) this).aClass386_9008.method7100();
		((Class84_Sub1) this).anInterface43_9026.method54();
		((Class84_Sub1) this).aClass305_8974.method6076();
		((Class84_Sub1) this).aClass305_8974 = null;
	}

	public final Class288 method14841() {
		return aClass288Array8963[anInt8961];
	}

	public final void method14842(Class367 class367) {
		aClass367Array8964[anInt8961] = class367;
		method14844();
	}

	final void method14843() {
		if (aClass367Array8964[anInt8961] != Class367.aClass367_5540) {
			aClass367Array8964[anInt8961] = Class367.aClass367_5540;
			aClass288Array8963[anInt8961].method5744();
			method14844();
		}
	}

	final void method14844() {
		method14846();
	}

	abstract void method14845();

	abstract void method14846();

	abstract void method14847();

	public final boolean method1975() {
		return ((Class84_Sub1) this).aClass383Array8987[1] != null;
	}

	abstract void method14848();

	Class98 method14849() {
		return ((Class84_Sub1) this).aClass98_8985;
	}

	public final void method2241(int i, Class98 class98) {
		((Class84_Sub1) this).anInt8991 = i;
		((Class84_Sub1) this).aClass98_8985 = class98;
		((Class84_Sub1) this).aBool8989 = true;
	}

	abstract void method14850();

	public final boolean method2138() {
		return (((Class84_Sub1) this).aClass383Array8987[1] != null && ((Class84_Sub1) this).aClass383Array8987[1].method7048());
	}

	final void method14851(int i) {
		if (((Class84_Sub1) this).anInt9000 != i) {
			Class373 class373;
			boolean bool;
			boolean bool_115_;
			if (i == 1) {
				class373 = Class373.aClass373_5611;
				bool = true;
				bool_115_ = true;
			} else if (i == 2) {
				class373 = Class373.aClass373_5608;
				bool = false;
				bool_115_ = true;
			} else if (i == 128) {
				class373 = Class373.aClass373_5612;
				bool = true;
				bool_115_ = true;
			} else {
				class373 = Class373.aClass373_5610;
				bool = false;
				bool_115_ = false;
			}
			if (bool != aBool9018) {
				aBool9018 = bool;
				method14853();
			}
			if (bool_115_ != aBool9002) {
				aBool9002 = bool_115_;
				method14855();
			}
			if (class373 != aClass373_9027) {
				aClass373_9027 = class373;
				method14854();
			}
			((Class84_Sub1) this).anInt9000 = i;
			((Class84_Sub1) this).anInt9011 &= ~0xc;
		}
	}

	final void method14852(int i) {
		if (anInt9032 != i) {
			anInt9032 = i;
			method14854();
		}
	}

	public final void method2143(int i, int i_116_, int i_117_, int i_118_) {
		((Class84_Sub1) this).aClass372_9003.method6959(i, i_116_, i_117_, i_118_);
	}

	abstract void method14853();

	abstract void method14854();

	abstract void method14855();

	final void method14856(boolean bool) {
		if (bool != aBool8993) {
			aBool8993 = bool;
			method14860();
			((Class84_Sub1) this).anInt9011 &= ~0xf;
		}
	}

	abstract void method14857();

	final void method14858() {
		if (((Class84_Sub1) this).aClass368_8966 != null)
			((Class84_Sub1) this).aClass368_8966.method6922();
		method14859();
	}

	abstract void method14859();

	abstract void method14860();

	abstract void method14861(boolean bool);

	abstract Interface43 method14862(boolean bool);

	public final void method14863(Class391 class391, Class391 class391_119_) {
		boolean bool = false;
		if (aClass391Array8965[anInt8961] != class391) {
			aClass391Array8965[anInt8961] = class391;
			method15053();
			bool = true;
		}
		if (aClass391Array9006[anInt8961] != class391_119_) {
			aClass391Array9006[anInt8961] = class391_119_;
			method14848();
			bool = true;
		}
		if (bool)
			((Class84_Sub1) this).anInt9011 &= ~0xd;
	}

	abstract Class363 method14864(Class384[] class384s);

	public abstract void method14865(Class363 class363);

	public abstract void method14866(int i, Interface41 interface41);

	abstract void method14867(Interface43 interface43);

	public final void method1944(int i, Class134 class134, int i_120_, int i_121_) {
		method1957(false);
		((Class84_Sub1) this).aClass135_Sub2_8863.method3110(0.0F, 0.0F, (float) method2063(1419047951).method3754(), 0.0F, 0.0F, (float) method2063(1869899557).method3755(), 0, class134, i_120_, i_121_);
		method1957(true);
	}

	public final void method2227(int i, int i_122_, int i_123_, int i_124_, int i_125_, int i_126_) {
		if (aBool8937) {
			method1957(false);
			((Class84_Sub1) this).aClass135_Sub2_8996.method3160(i, i_122_, i_123_, i_124_, 0, i_125_, i_126_);
			method1957(true);
		} else
			((Class84_Sub1) this).aClass135_Sub2_8996.method3160(i, i_122_, i_123_, i_124_, 0, i_125_, i_126_);
	}

	public void method2235(boolean bool) {
		((Class84_Sub1) this).aBool8967 = bool;
	}

	public final void method14868(Class391 class391, Class391 class391_127_) {
		boolean bool = false;
		if (aClass391Array8965[anInt8961] != class391) {
			aClass391Array8965[anInt8961] = class391;
			method15053();
			bool = true;
		}
		if (aClass391Array9006[anInt8961] != class391_127_) {
			aClass391Array9006[anInt8961] = class391_127_;
			method14848();
			bool = true;
		}
		if (bool)
			((Class84_Sub1) this).anInt9011 &= ~0xd;
	}

	public final void method1922(int i, int i_128_, float f, int i_129_, int i_130_, float f_131_, int i_132_, int i_133_, float f_134_, int i_135_, int i_136_, int i_137_, int i_138_) {
		/* empty */
	}

	final void method2137(int i, int i_139_, int i_140_, int i_141_, int i_142_) {
		/* empty */
	}

	final void method14869(Class392 class392, int i) {
		method14866(0, ((Class84_Sub1) this).anInterface41_8971);
		method14865(((Class84_Sub1) this).aClass363_9021);
		method14876(class392, 0, i);
	}

	public final void method1925(int i, int i_143_, int i_144_, int i_145_, int i_146_) {
		method1913(i, i_143_, i, i_143_ + i_144_, i_145_, i_146_);
	}

	public final void method1913(int i, int i_147_, int i_148_, int i_149_, int i_150_, int i_151_) {
		method2212(i, i_147_, i_148_, i_149_, i_150_, 1, i_151_);
	}

	public void method1928(int i, int i_152_, int i_153_, int i_154_, int i_155_, int i_156_, int i_157_, int i_158_, int i_159_) {
		float f = (float) i_153_ - (float) i;
		float f_160_ = (float) i_154_ - (float) i_152_;
		if (f == 0.0F && f_160_ == 0.0F)
			f = 1.0F;
		else {
			float f_161_ = (float) (1.0 / Math.sqrt((double) (f * f + f_160_ * f_160_)));
			f *= f_161_;
			f_160_ *= f_161_;
		}
		method14800();
		Class368 class368 = ((Class84_Sub1) this).aClass368Array9016[13];
		class368.method6918();
		class368.method6926(i_155_);
		method14851(i_156_);
		class368.method6924();
		method14861(false);
		i_159_ %= i_158_ + i_157_;
		float f_162_ = f * (float) i_157_;
		float f_163_ = f_160_ * (float) i_157_;
		float f_164_ = 0.0F;
		float f_165_ = 0.0F;
		float f_166_ = f_162_;
		float f_167_ = f_163_;
		if (i_159_ > i_157_) {
			f_164_ = f * (float) (i_157_ + i_158_ - i_159_);
			f_165_ = f_160_ * (float) (i_157_ + i_158_ - i_159_);
		} else {
			f_166_ = f * (float) (i_157_ - i_159_);
			f_167_ = f_160_ * (float) (i_157_ - i_159_);
		}
		float f_168_ = (float) i + f_164_;
		float f_169_ = (float) i_152_ + f_165_;
		float f_170_ = f * (float) i_158_;
		float f_171_ = f_160_ * (float) i_158_;
		for (;;) {
			if (i_153_ > i) {
				if (f_168_ > (float) i_153_)
					break;
				if (f_168_ + f_166_ > (float) i_153_)
					f_166_ = (float) i_153_ - f_168_;
			} else {
				if (f_168_ < (float) i_153_)
					break;
				if (f_168_ + f_166_ < (float) i_153_)
					f_166_ = (float) i_153_ - f_168_;
			}
			if (i_154_ > i_152_) {
				if (f_169_ > (float) i_154_)
					break;
				if (f_169_ + f_167_ > (float) i_154_)
					f_167_ = (float) i_154_ - f_169_;
			} else {
				if (f_169_ < (float) i_154_)
					break;
				if (f_169_ + f_167_ < (float) i_154_)
					f_167_ = (float) i_154_ - f_169_;
			}
			if (!method14768(f_168_, f_169_, 0.0F, f_168_ + f_166_, f_169_ + f_167_, 0.0F))
				return;
			method14873();
			f_168_ += f_170_ + f_166_;
			f_169_ += f_171_ + f_167_;
			f_166_ = f_162_;
			f_167_ = f_163_;
		}
		method14861(true);
		class368.method6920();
	}

	final void method14870() {
		if (((Class84_Sub1) this).aClass385_8976 != Class385.aClass385_5668) {
			Class385 class385 = ((Class84_Sub1) this).aClass385_8976;
			((Class84_Sub1) this).aClass385_8976 = Class385.aClass385_5668;
			if (class385 == Class385.aClass385_5667)
				method14793();
			method14803();
			((Class84_Sub1) this).aClass288_8908 = ((Class84_Sub1) this).aClass288_8903;
			method14805();
			method15116();
			((Class84_Sub1) this).anInt9011 &= ~0x8;
		}
	}

	public final int method1874() {
		return anInt8889 - 2;
	}

	final void method14871() {
		method14846();
	}

	abstract void method14872();

	final void method14873() {
		method14866(0, ((Class84_Sub1) this).anInterface41_9017);
		method14865(((Class84_Sub1) this).aClass363_8977);
		method14876(Class392.aClass392_5711, 0, 1);
	}

	public final void method14874() {
		method14869(Class392.aClass392_5709, 2);
	}

	abstract void method14875(int i);

	public abstract void method14876(Class392 class392, int i, int i_172_);

	abstract void method14877(Interface43 interface43, Class392 class392, int i, int i_173_, int i_174_, int i_175_);

	public abstract void method14878(Class392 class392, int i, int i_176_, int i_177_, int i_178_);

	public final void method14879() {
		if (((Class84_Sub1) this).anInt9011 != 2) {
			method14800();
			method14856(false);
			method14813(false);
			method14807(false);
			method14808(false);
			((Class84_Sub1) this).anInt9011 = 2;
		}
	}

	public final void method2204(int i, Class98 class98) {
		((Class84_Sub1) this).anInt8991 = i;
		((Class84_Sub1) this).aClass98_8985 = class98;
		((Class84_Sub1) this).aBool8989 = true;
	}

	abstract void method14880(int i);

	static {
		aClass288_8894 = new Class288();
	}

	void method1990() {
		if (!((Class84_Sub1) this).aBool9007) {
			method14840();
			((Class84_Sub1) this).aClass381_8968.method7018();
			for (Class587 class587 = ((Class84_Sub1) this).aClass413_8882.method7361(2093990769); class587 != null; class587 = ((Class84_Sub1) this).aClass413_8882.method7344(-2110844140))
				((Class587_Sub25_Sub2) class587).method16549();
			Class530.method11767(false, true, (short) -24060);
			for (int i = 0; i < ((Class84_Sub1) this).aClass368Array9016.length; i++) {
				if (((Class84_Sub1) this).aClass368Array9016[i] != null) {
					((Class84_Sub1) this).aClass368Array9016[i].method6923();
					((Class84_Sub1) this).aClass368Array9016[i] = null;
				}
			}
			for (int i = 0; i < ((Class84_Sub1) this).aClass383Array8987.length; i++) {
				if (((Class84_Sub1) this).aClass383Array8987[i] != null) {
					((Class84_Sub1) this).aClass383Array8987[i].method7065();
					((Class84_Sub1) this).aClass383Array8987[i] = null;
				}
			}
			method14897();
			method1883(0);
			((Class84_Sub1) this).aBool9007 = true;
		}
	}

	abstract void method14881();

	public void method1992(int i) {
		if (((Class84_Sub1) this).aClass381_8968 != null)
			((Class84_Sub1) this).aClass381_8968.method7022();
		anInt9005 = i & 0x7fffffff;
	}

	public final void method2108(Class160 class160) {
		((Class84_Sub1) this).aClass386_9008.method7087(this, class160);
	}

	public final boolean method2105() {
		return true;
	}

	Class84_Sub1(Class101 class101, Interface5 interface5, Class279 class279, int i, int i_179_) {
		super(class101, interface5);
		((Class84_Sub1) this).aClass413_8882 = new Class413();
		((Class84_Sub1) this).aClass346_8962 = new Class346();
		((Class84_Sub1) this).aClass288_8887 = new Class288();
		((Class84_Sub1) this).aClass346_8888 = new Class346();
		((Class84_Sub1) this).aClass346_8936 = new Class346();
		aClass288_8950 = new Class288();
		((Class84_Sub1) this).aClass288_8877 = new Class288();
		((Class84_Sub1) this).aClass346_8892 = new Class346();
		((Class84_Sub1) this).aClass288_8897 = new Class288();
		((Class84_Sub1) this).aClass346_8895 = new Class346();
		aClass288_8901 = new Class288();
		((Class84_Sub1) this).aClass288_8878 = new Class288();
		((Class84_Sub1) this).aClass277_8898 = new Class277();
		((Class84_Sub1) this).aFloatArray8899 = new float[4];
		((Class84_Sub1) this).aBool8900 = false;
		((Class84_Sub1) this).aClass385_8976 = Class385.aClass385_5669;
		((Class84_Sub1) this).aBool8986 = false;
		((Class84_Sub1) this).aClass288_8903 = new Class288();
		((Class84_Sub1) this).aClass288_8904 = new Class288();
		((Class84_Sub1) this).aBool8905 = false;
		((Class84_Sub1) this).aClass288_8906 = new Class288();
		((Class84_Sub1) this).aClass288_8907 = new Class288();
		((Class84_Sub1) this).aClass288_8908 = ((Class84_Sub1) this).aClass288_8907;
		aClass288_8909 = new Class288();
		((Class84_Sub1) this).aClass288_9001 = new Class288();
		aClass288_9009 = new Class288();
		((Class84_Sub1) this).aFloatArrayArray8912 = new float[6][4];
		aFloat8984 = 0.0F;
		aFloat8921 = 1.0F;
		((Class84_Sub1) this).aFloat8945 = 0.0F;
		((Class84_Sub1) this).aFloat8920 = 1.0F;
		aFloat8911 = 50.0F;
		aFloat8922 = 3584.0F;
		anInt9024 = 0;
		anInt8992 = 0;
		anInt8925 = 0;
		anInt8926 = 0;
		((Class84_Sub1) this).anInt8927 = 0;
		((Class84_Sub1) this).anInt8928 = 0;
		((Class84_Sub1) this).anInt8865 = 0;
		((Class84_Sub1) this).anInt8939 = 0;
		anInt8931 = 0;
		anInt8932 = 0;
		anInt8972 = 0;
		anInt8934 = 0;
		anInt8940 = 0;
		anInt8933 = 0;
		aBool8937 = true;
		aBool8938 = false;
		aBool8869 = false;
		aBool8946 = false;
		aBool8924 = true;
		aBool8942 = false;
		aFloatArray8943 = new float[] { 0.0F, 0.0F, 1.0F, 0.0F };
		aFloatArray8879 = new float[] { 0.0F, 0.0F, -1.0F, 0.0F };
		((Class84_Sub1) this).aFloatArray8885 = new float[] { 0.0F, 0.0F, 1.0F, 0.0F };
		((Class84_Sub1) this).aFloatArray8914 = new float[] { 0.0F, 0.0F, 1.0F, 0.0F };
		((Class84_Sub1) this).anInt8947 = 16777215;
		aFloat8948 = 1.0F;
		aFloat8949 = 1.0F;
		aFloat8975 = 1.0F;
		aFloat8951 = 1.0F;
		aFloat8952 = -1.0F;
		aFloat8917 = -1.0F;
		((Class84_Sub1) this).anInt8957 = 8;
		((Class84_Sub1) this).anInt8923 = 3;
		anInt8961 = 0;
		((Class84_Sub1) this).aBool8967 = false;
		((Class84_Sub1) this).aClass368Array9016 = new Class368[16];
		((Class84_Sub1) this).aClass383Array8987 = new Class383[2];
		((Class84_Sub1) this).aBool8990 = false;
		aBool8994 = true;
		anInt8919 = -1;
		anInt8910 = -1;
		anInt8997 = 0;
		((Class84_Sub1) this).anInt9000 = 1;
		aClass373_9027 = Class373.aClass373_5611;
		aBool9002 = true;
		aBool9018 = true;
		((Class84_Sub1) this).aBool9007 = false;
		new Stream();
		((Class84_Sub1) this).aClass163_Sub2Array8918 = new Class163_Sub2[7];
		((Class84_Sub1) this).aClass163_Sub2Array9028 = new Class163_Sub2[7];
		((Class84_Sub1) this).aClass288_9029 = new Class288();
		((Class84_Sub1) this).aClass346_8941 = new Class346();
		anInt9032 = -1;
		try {
			((Class84_Sub1) this).aClass279_8873 = class279;
			anInt9004 = i;
			((Class84_Sub1) this).anInt9030 = i_179_;
			Class587_Sub26.method15884(false, true, -74390965);
			if (anInterface5_1177 != null)
				((Class84_Sub1) this).aClass381_8968 = new Class381(this, anInterface5_1177);
			else
				((Class84_Sub1) this).aClass381_8968 = null;
			if (((Class84_Sub1) this).anInt9030 == 0)
				((Class84_Sub1) this).anIntArray8875 = Class103.anIntArray1451;
			else
				((Class84_Sub1) this).anIntArray8875 = Class459.anIntArray6405;
			try {
				Field field = sun.misc.Unsafe.class.getDeclaredField("theUnsafe");
				field.setAccessible(true);
				anUnsafe8956 = (Unsafe) field.get(null);
			} catch (Exception exception) {
				/* empty */
			}
			aByteBuffer8876 = ByteBuffer.allocateDirect(4194304);
			aByteBuffer8876.order(ByteOrder.nativeOrder());
			aLong8893 = DirectBufferHelper.getDirectBufferAddress(aByteBuffer8876);
		} catch (Throwable throwable) {
			throwable.printStackTrace();
			method2135((byte) -16);
			if (throwable instanceof OutOfMemoryError)
				throw (OutOfMemoryError) throwable;
			throw new RuntimeException("");
		}
		method1933(method1932(131072));
	}

	abstract Interface38 method14882(Class172 class172, int i, int i_180_, int i_181_, boolean bool, byte[] is);

	abstract Interface31 method14883(int i, boolean bool, int[][] is);

	public final boolean method2013() {
		return ((Class84_Sub1) this).aClass383Array8987[1] != null;
	}

	public final boolean method1950() {
		return true;
	}

	public final boolean method1996() {
		return true;
	}

	Class34 method14884(byte[] is) {
		if (is == null)
			return null;
		Class34 class34;
		try {
			class34 = new Class34(is);
		} catch (Exception exception) {
			return null;
		}
		return class34;
	}

	public final boolean method2002() {
		return true;
	}

	public final boolean method2003() {
		return true;
	}

	public void method1905(int i, int i_182_, int i_183_, int i_184_) {
		((Class84_Sub1) this).anInt8927 = i;
		((Class84_Sub1) this).anInt8928 = i_182_;
		((Class84_Sub1) this).anInt8865 = i_183_;
		((Class84_Sub1) this).anInt8939 = i_184_;
		method15116();
	}

	public final boolean method2005() {
		return true;
	}

	public final Class163 method2086(Class94 class94, int i, int i_185_, int i_186_, int i_187_) {
		return new Class163_Sub2(this, class94, i, i_186_, i_187_, i_185_);
	}

	public final boolean method2007() {
		return true;
	}

	final void method14885(boolean bool) {
		if (bool != aBool8869) {
			aBool8869 = bool;
			method14881();
			((Class84_Sub1) this).anInt9011 &= ~0xf;
		}
	}

	public abstract void method14886(Class288 class288, Class288 class288_188_, Class288 class288_189_);

	public final boolean method2010() {
		return aBool9015;
	}

	public final boolean method2011() {
		return true;
	}

	public final boolean method1888() {
		return true;
	}

	public final boolean method2195() {
		return true;
	}

	public final void method1868(Class288 class288) {
		((Class84_Sub1) this).aClass288_8906.method5825(class288);
		method14792();
		if (((Class84_Sub1) this).aClass385_8976 == Class385.aClass385_5667)
			method14805();
	}

	public final void method1979() {
		((Class84_Sub1) this).aBool8989 = false;
	}

	public final void method2023(boolean bool) {
		aBool8937 = bool;
		method14809();
	}

	public void method2024(int i, int i_190_, int i_191_, int i_192_) {
		((Class84_Sub1) this).anInt8927 = i;
		((Class84_Sub1) this).anInt8928 = i_190_;
		((Class84_Sub1) this).anInt8865 = i_191_;
		((Class84_Sub1) this).anInt8939 = i_192_;
		method15116();
	}

	public final void method1933(Class587_Sub25 class587_sub25) {
		((Class84_Sub1) this).aNativeHeap8881 = (((Class587_Sub25_Sub2) (Class587_Sub25_Sub2) class587_sub25).aNativeHeap10339);
	}

	abstract void method14887();

	public void method2027(float f, float f_193_) {
		((Class84_Sub1) this).aFloat8945 = f;
		((Class84_Sub1) this).aFloat8920 = f_193_;
		method15116();
	}

	public final void method2043(int i, int i_194_, int i_195_, int i_196_, int i_197_, int i_198_) {
		i_195_--;
		i_196_--;
		int i_199_ = 0;
		if (this instanceof Class84_Sub1_Sub1)
			i_199_ = -1;
		method1913(i, i_194_ + i_199_, i + i_195_, i_194_ + i_199_, i_197_, i_198_);
		method1913(i, i_194_ + i_196_ + i_199_, i + i_195_, i_194_ + i_196_ + i_199_, i_197_, i_198_);
		method1913(i, i_194_, i, i_194_ + i_196_, i_197_, i_198_);
		method1913(i + i_195_, i_194_, i + i_195_, i_194_ + i_196_, i_197_, i_198_);
	}

	public final void method2029() {
		if (aClass171_1190 != null) {
			anInt9024 = 0;
			anInt8925 = 0;
			anInt8926 = aClass171_1190.method3754();
			anInt8992 = aClass171_1190.method3755();
		} else {
			anInt8992 = 0;
			anInt8926 = 0;
			anInt9024 = 0;
			anInt8925 = 0;
		}
		if (aBool9031) {
			aBool9031 = false;
			method14789();
		}
	}

	public final void method2061() {
		if (aClass171_1190 != null) {
			anInt9024 = 0;
			anInt8925 = 0;
			anInt8926 = aClass171_1190.method3754();
			anInt8992 = aClass171_1190.method3755();
		} else {
			anInt8992 = 0;
			anInt8926 = 0;
			anInt9024 = 0;
			anInt8925 = 0;
		}
		if (aBool9031) {
			aBool9031 = false;
			method14789();
		}
	}

	public final void method2031() {
		if (aClass171_1190 != null) {
			anInt9024 = 0;
			anInt8925 = 0;
			anInt8926 = aClass171_1190.method3754();
			anInt8992 = aClass171_1190.method3755();
		} else {
			anInt8992 = 0;
			anInt8926 = 0;
			anInt9024 = 0;
			anInt8925 = 0;
		}
		if (aBool9031) {
			aBool9031 = false;
			method14789();
		}
	}

	public final void method2032(int i, int i_200_, int i_201_, int i_202_) {
		int i_203_;
		int i_204_;
		if (aClass171_1190 != null) {
			i_204_ = aClass171_1190.method3754();
			i_203_ = aClass171_1190.method3755();
		} else {
			i_203_ = 0;
			i_204_ = 0;
		}
		if (i <= 0 && i_201_ >= i_204_ - 1 && i_200_ <= 0 && i_202_ >= i_203_ - 1)
			method1917();
		else {
			anInt8925 = i >= 0 ? i : 0;
			anInt8926 = i_201_ <= i_204_ ? i_201_ : i_204_;
			anInt9024 = i_200_ >= 0 ? i_200_ : 0;
			anInt8992 = i_202_ <= i_203_ ? i_202_ : i_203_;
			if (!aBool9031 && (((Class84_Sub1) this).aBool8967 || method15068() == Class370.aClass370_5567)) {
				aBool9031 = true;
				method14789();
			}
			method14788();
		}
	}

	public final void method2033(int i, int i_205_, int i_206_, int i_207_) {
		int i_208_;
		int i_209_;
		if (aClass171_1190 != null) {
			i_209_ = aClass171_1190.method3754();
			i_208_ = aClass171_1190.method3755();
		} else {
			i_208_ = 0;
			i_209_ = 0;
		}
		if (i <= 0 && i_206_ >= i_209_ - 1 && i_205_ <= 0 && i_207_ >= i_208_ - 1)
			method1917();
		else {
			anInt8925 = i >= 0 ? i : 0;
			anInt8926 = i_206_ <= i_209_ ? i_206_ : i_209_;
			anInt9024 = i_205_ >= 0 ? i_205_ : 0;
			anInt8992 = i_207_ <= i_208_ ? i_207_ : i_208_;
			if (!aBool9031 && (((Class84_Sub1) this).aBool8967 || method15068() == Class370.aClass370_5567)) {
				aBool9031 = true;
				method14789();
			}
			method14788();
		}
	}

	public final void method2078(int i, int i_210_, int i_211_, int i_212_) {
		int i_213_;
		int i_214_;
		if (aClass171_1190 != null) {
			i_214_ = aClass171_1190.method3754();
			i_213_ = aClass171_1190.method3755();
		} else {
			i_213_ = 0;
			i_214_ = 0;
		}
		if (i <= 0 && i_211_ >= i_214_ - 1 && i_210_ <= 0 && i_212_ >= i_213_ - 1)
			method1917();
		else {
			anInt8925 = i >= 0 ? i : 0;
			anInt8926 = i_211_ <= i_214_ ? i_211_ : i_214_;
			anInt9024 = i_210_ >= 0 ? i_210_ : 0;
			anInt8992 = i_212_ <= i_213_ ? i_212_ : i_213_;
			if (!aBool9031 && (((Class84_Sub1) this).aBool8967 || method15068() == Class370.aClass370_5567)) {
				aBool9031 = true;
				method14789();
			}
			method14788();
		}
	}

	public int method1931(int i, int i_215_, int i_216_, int i_217_, int i_218_, int i_219_) {
		int i_220_ = 0;
		float f = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[14] + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[2] * (float) i) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[6] * (float) i_215_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[10] * (float) i_216_));
		float f_221_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[14] + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[2] * (float) i_217_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[6] * (float) i_218_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[10] * (float) i_219_));
		float f_222_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[15] + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[3] * (float) i) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[7] * (float) i_215_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[11] * (float) i_216_));
		float f_223_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[15] + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[3] * (float) i_217_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[7] * (float) i_218_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[11] * (float) i_219_));
		if (f < -f_222_ && f_221_ < -f_223_)
			i_220_ |= 0x10;
		else if (f > f_222_ && f_221_ > f_223_)
			i_220_ |= 0x20;
		float f_224_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[12] + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[0] * (float) i) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[4] * (float) i_215_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[8] * (float) i_216_));
		float f_225_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[12] + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[0] * (float) i_217_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[4] * (float) i_218_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[8] * (float) i_219_));
		if (f_224_ < -f_222_ && f_225_ < -f_223_)
			i_220_ |= 0x1;
		if (f_224_ > f_222_ && f_225_ > f_223_)
			i_220_ |= 0x2;
		float f_226_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[13] + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[1] * (float) i) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[5] * (float) i_215_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[9] * (float) i_216_));
		float f_227_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[13] + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[1] * (float) i_217_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[5] * (float) i_218_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[9] * (float) i_219_));
		if (f_226_ < -f_222_ && f_227_ < -f_223_)
			i_220_ |= 0x4;
		if (f_226_ > f_222_ && f_227_ > f_223_)
			i_220_ |= 0x8;
		return i_220_;
	}

	public final void method2036(int[] is) {
		is[0] = anInt8925;
		is[1] = anInt9024;
		is[2] = anInt8926;
		is[3] = anInt8992;
	}

	public final void method2037(int[] is) {
		is[0] = anInt8925;
		is[1] = anInt9024;
		is[2] = anInt8926;
		is[3] = anInt8992;
	}

	public final boolean method1923() {
		return true;
	}

	public final Interface31 method14888() {
		return (((Class84_Sub1) this).aClass159_Sub1_8988 != null ? ((Class84_Sub1) this).aClass159_Sub1_8988.method15270() : null);
	}

	public final boolean method1997() {
		return true;
	}

	public final void method2044(int i, int i_228_, int i_229_, int i_230_, int i_231_, int i_232_) {
		if (aBool8937) {
			method1957(false);
			((Class84_Sub1) this).aClass135_Sub2_8996.method3160(i, i_228_, i_229_, i_230_, 0, i_231_, i_232_);
			method1957(true);
		} else
			((Class84_Sub1) this).aClass135_Sub2_8996.method3160(i, i_228_, i_229_, i_230_, 0, i_231_, i_232_);
	}

	public final void method1974(int i, int i_233_, int i_234_, int i_235_, int i_236_, int i_237_) {
		i_234_--;
		i_235_--;
		int i_238_ = 0;
		if (this instanceof Class84_Sub1_Sub1)
			i_238_ = -1;
		method1913(i, i_233_ + i_238_, i + i_234_, i_233_ + i_238_, i_236_, i_237_);
		method1913(i, i_233_ + i_235_ + i_238_, i + i_234_, i_233_ + i_235_ + i_238_, i_236_, i_237_);
		method1913(i, i_233_, i, i_233_ + i_235_, i_236_, i_237_);
		method1913(i + i_234_, i_233_, i + i_234_, i_233_ + i_235_, i_236_, i_237_);
	}

	final void method14889(boolean bool) {
		if (bool != aBool8946) {
			aBool8946 = bool;
			method14814();
			((Class84_Sub1) this).anInt9011 &= ~0x7;
		}
	}

	public final void method2081(int i, int i_239_, int i_240_, int i_241_, int i_242_, int i_243_, byte[] is, int i_244_, int i_245_) {
		/* empty */
	}

	public final Class135 method1967(int i, int i_246_, int i_247_, int i_248_, boolean bool) {
		Class135_Sub2 class135_sub2 = new Class135_Sub2(this, i_247_, i_248_, bool, false);
		class135_sub2.method3117(0, 0, i_247_, i_248_, i, i_246_);
		return class135_sub2;
	}

	public final void method2028() {
		if (aClass171_1190 != null) {
			anInt9024 = 0;
			anInt8925 = 0;
			anInt8926 = aClass171_1190.method3754();
			anInt8992 = aClass171_1190.method3755();
		} else {
			anInt8992 = 0;
			anInt8926 = 0;
			anInt9024 = 0;
			anInt8925 = 0;
		}
		if (aBool9031) {
			aBool9031 = false;
			method14789();
		}
	}

	abstract Class363 method14890(Class384[] class384s);

	final void method2051(int i, int i_249_, int i_250_, int i_251_, int i_252_) {
		/* empty */
	}

	public final void method2012(int i, int i_253_, int i_254_, int i_255_, int i_256_) {
		method1913(i, i_253_, i + i_254_, i_253_, i_255_, i_256_);
	}

	public final void method2053(int i, int i_257_, int i_258_, int i_259_, int i_260_) {
		method1913(i, i_257_, i + i_258_, i_257_, i_259_, i_260_);
	}

	public final void method1880(int i, int i_261_, int i_262_, int i_263_, int i_264_) {
		method1913(i, i_261_, i, i_261_ + i_262_, i_263_, i_264_);
	}

	public final void method2189(int i, int i_265_, int i_266_) {
		if (anInt8919 != i || anInt8910 != i_265_ || anInt8997 != i_266_) {
			anInt8919 = i;
			anInt8910 = i_265_;
			anInt8997 = i_266_;
			method14858();
			method14860();
		}
	}

	public final void method2056(int i, int i_267_, int i_268_, int i_269_, int i_270_) {
		method1913(i, i_267_, i, i_267_ + i_268_, i_269_, i_270_);
	}

	public final void method2057(int i, int i_271_, int i_272_, int i_273_, int i_274_, int i_275_) {
		method2212(i, i_271_, i_272_, i_273_, i_274_, 1, i_275_);
	}

	public void method2058(int i, int i_276_, int i_277_, int i_278_, int i_279_, int i_280_, int i_281_, int i_282_, int i_283_) {
		float f = (float) i_277_ - (float) i;
		float f_284_ = (float) i_278_ - (float) i_276_;
		if (f == 0.0F && f_284_ == 0.0F)
			f = 1.0F;
		else {
			float f_285_ = (float) (1.0 / Math.sqrt((double) (f * f + f_284_ * f_284_)));
			f *= f_285_;
			f_284_ *= f_285_;
		}
		method14800();
		Class368 class368 = ((Class84_Sub1) this).aClass368Array9016[13];
		class368.method6918();
		class368.method6926(i_279_);
		method14851(i_280_);
		class368.method6924();
		method14861(false);
		i_283_ %= i_282_ + i_281_;
		float f_286_ = f * (float) i_281_;
		float f_287_ = f_284_ * (float) i_281_;
		float f_288_ = 0.0F;
		float f_289_ = 0.0F;
		float f_290_ = f_286_;
		float f_291_ = f_287_;
		if (i_283_ > i_281_) {
			f_288_ = f * (float) (i_281_ + i_282_ - i_283_);
			f_289_ = f_284_ * (float) (i_281_ + i_282_ - i_283_);
		} else {
			f_290_ = f * (float) (i_281_ - i_283_);
			f_291_ = f_284_ * (float) (i_281_ - i_283_);
		}
		float f_292_ = (float) i + f_288_;
		float f_293_ = (float) i_276_ + f_289_;
		float f_294_ = f * (float) i_282_;
		float f_295_ = f_284_ * (float) i_282_;
		for (;;) {
			if (i_277_ > i) {
				if (f_292_ > (float) i_277_)
					break;
				if (f_292_ + f_290_ > (float) i_277_)
					f_290_ = (float) i_277_ - f_292_;
			} else {
				if (f_292_ < (float) i_277_)
					break;
				if (f_292_ + f_290_ < (float) i_277_)
					f_290_ = (float) i_277_ - f_292_;
			}
			if (i_278_ > i_276_) {
				if (f_293_ > (float) i_278_)
					break;
				if (f_293_ + f_291_ > (float) i_278_)
					f_291_ = (float) i_278_ - f_293_;
			} else {
				if (f_293_ < (float) i_278_)
					break;
				if (f_293_ + f_291_ < (float) i_278_)
					f_291_ = (float) i_278_ - f_293_;
			}
			if (!method14768(f_292_, f_293_, 0.0F, f_292_ + f_290_, f_293_ + f_291_, 0.0F))
				return;
			method14873();
			f_292_ += f_294_ + f_290_;
			f_293_ += f_295_ + f_291_;
			f_290_ = f_286_;
			f_291_ = f_287_;
		}
		method14861(true);
		class368.method6920();
	}

	public void method2059(int i, int i_296_, int i_297_, int i_298_, int i_299_, int i_300_, int i_301_, int i_302_, int i_303_) {
		float f = (float) i_297_ - (float) i;
		float f_304_ = (float) i_298_ - (float) i_296_;
		if (f == 0.0F && f_304_ == 0.0F)
			f = 1.0F;
		else {
			float f_305_ = (float) (1.0 / Math.sqrt((double) (f * f + f_304_ * f_304_)));
			f *= f_305_;
			f_304_ *= f_305_;
		}
		method14800();
		Class368 class368 = ((Class84_Sub1) this).aClass368Array9016[13];
		class368.method6918();
		class368.method6926(i_299_);
		method14851(i_300_);
		class368.method6924();
		method14861(false);
		i_303_ %= i_302_ + i_301_;
		float f_306_ = f * (float) i_301_;
		float f_307_ = f_304_ * (float) i_301_;
		float f_308_ = 0.0F;
		float f_309_ = 0.0F;
		float f_310_ = f_306_;
		float f_311_ = f_307_;
		if (i_303_ > i_301_) {
			f_308_ = f * (float) (i_301_ + i_302_ - i_303_);
			f_309_ = f_304_ * (float) (i_301_ + i_302_ - i_303_);
		} else {
			f_310_ = f * (float) (i_301_ - i_303_);
			f_311_ = f_304_ * (float) (i_301_ - i_303_);
		}
		float f_312_ = (float) i + f_308_;
		float f_313_ = (float) i_296_ + f_309_;
		float f_314_ = f * (float) i_302_;
		float f_315_ = f_304_ * (float) i_302_;
		for (;;) {
			if (i_297_ > i) {
				if (f_312_ > (float) i_297_)
					break;
				if (f_312_ + f_310_ > (float) i_297_)
					f_310_ = (float) i_297_ - f_312_;
			} else {
				if (f_312_ < (float) i_297_)
					break;
				if (f_312_ + f_310_ < (float) i_297_)
					f_310_ = (float) i_297_ - f_312_;
			}
			if (i_298_ > i_296_) {
				if (f_313_ > (float) i_298_)
					break;
				if (f_313_ + f_311_ > (float) i_298_)
					f_311_ = (float) i_298_ - f_313_;
			} else {
				if (f_313_ < (float) i_298_)
					break;
				if (f_313_ + f_311_ < (float) i_298_)
					f_311_ = (float) i_298_ - f_313_;
			}
			if (!method14768(f_312_, f_313_, 0.0F, f_312_ + f_310_, f_313_ + f_311_, 0.0F))
				return;
			method14873();
			f_312_ += f_314_ + f_310_;
			f_313_ += f_315_ + f_311_;
			f_310_ = f_306_;
			f_311_ = f_307_;
		}
		method14861(true);
		class368.method6920();
	}

	abstract boolean method14891(Class172 class172, Class96 class96);

	public final void method1882(int i, int i_316_, int i_317_, int i_318_, int i_319_, int i_320_, Class134 class134, int i_321_, int i_322_) {
		/* empty */
	}

	public final int method2087(int i, int i_323_) {
		return i & i_323_ ^ i_323_;
	}

	public int method1871(int i, int i_324_, int i_325_, int i_326_, int i_327_, int i_328_) {
		int i_329_ = 0;
		float f = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[14] + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[2] * (float) i) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[6] * (float) i_324_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[10] * (float) i_325_));
		float f_330_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[14] + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[2] * (float) i_326_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[6] * (float) i_327_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[10] * (float) i_328_));
		float f_331_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[15] + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[3] * (float) i) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[7] * (float) i_324_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[11] * (float) i_325_));
		float f_332_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[15] + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[3] * (float) i_326_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[7] * (float) i_327_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[11] * (float) i_328_));
		if (f < -f_331_ && f_330_ < -f_332_)
			i_329_ |= 0x10;
		else if (f > f_331_ && f_330_ > f_332_)
			i_329_ |= 0x20;
		float f_333_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[12] + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[0] * (float) i) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[4] * (float) i_324_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[8] * (float) i_325_));
		float f_334_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[12] + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[0] * (float) i_326_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[4] * (float) i_327_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[8] * (float) i_328_));
		if (f_333_ < -f_331_ && f_334_ < -f_332_)
			i_329_ |= 0x1;
		if (f_333_ > f_331_ && f_334_ > f_332_)
			i_329_ |= 0x2;
		float f_335_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[13] + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[1] * (float) i) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[5] * (float) i_324_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[9] * (float) i_325_));
		float f_336_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[13] + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[1] * (float) i_326_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[5] * (float) i_327_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[9] * (float) i_328_));
		if (f_335_ < -f_331_ && f_336_ < -f_332_)
			i_329_ |= 0x4;
		if (f_335_ > f_331_ && f_336_ > f_332_)
			i_329_ |= 0x8;
		return i_329_;
	}

	public int method2064(int i, int i_337_, int i_338_, int i_339_, int i_340_, int i_341_) {
		int i_342_ = 0;
		float f = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[14] + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[2] * (float) i) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[6] * (float) i_337_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[10] * (float) i_338_));
		float f_343_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[14] + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[2] * (float) i_339_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[6] * (float) i_340_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[10] * (float) i_341_));
		float f_344_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[15] + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[3] * (float) i) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[7] * (float) i_337_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[11] * (float) i_338_));
		float f_345_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[15] + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[3] * (float) i_339_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[7] * (float) i_340_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[11] * (float) i_341_));
		if (f < -f_344_ && f_343_ < -f_345_)
			i_342_ |= 0x10;
		else if (f > f_344_ && f_343_ > f_345_)
			i_342_ |= 0x20;
		float f_346_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[12] + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[0] * (float) i) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[4] * (float) i_337_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[8] * (float) i_338_));
		float f_347_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[12] + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[0] * (float) i_339_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[4] * (float) i_340_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[8] * (float) i_341_));
		if (f_346_ < -f_344_ && f_347_ < -f_345_)
			i_342_ |= 0x1;
		if (f_346_ > f_344_ && f_347_ > f_345_)
			i_342_ |= 0x2;
		float f_348_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[13] + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[1] * (float) i) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[5] * (float) i_337_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[9] * (float) i_338_));
		float f_349_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[13] + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[1] * (float) i_339_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[5] * (float) i_340_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[9] * (float) i_341_));
		if (f_348_ < -f_344_ && f_349_ < -f_345_)
			i_342_ |= 0x4;
		if (f_348_ > f_344_ && f_349_ > f_345_)
			i_342_ |= 0x8;
		return i_342_;
	}

	abstract void method14892();

	void method1991() {
		if (!((Class84_Sub1) this).aBool9007) {
			method14840();
			((Class84_Sub1) this).aClass381_8968.method7018();
			for (Class587 class587 = ((Class84_Sub1) this).aClass413_8882.method7361(1979836437); class587 != null; class587 = ((Class84_Sub1) this).aClass413_8882.method7344(5660629))
				((Class587_Sub25_Sub2) class587).method16549();
			Class530.method11767(false, true, (short) -9756);
			for (int i = 0; i < ((Class84_Sub1) this).aClass368Array9016.length; i++) {
				if (((Class84_Sub1) this).aClass368Array9016[i] != null) {
					((Class84_Sub1) this).aClass368Array9016[i].method6923();
					((Class84_Sub1) this).aClass368Array9016[i] = null;
				}
			}
			for (int i = 0; i < ((Class84_Sub1) this).aClass383Array8987.length; i++) {
				if (((Class84_Sub1) this).aClass383Array8987[i] != null) {
					((Class84_Sub1) this).aClass383Array8987[i].method7065();
					((Class84_Sub1) this).aClass383Array8987[i] = null;
				}
			}
			method14897();
			method1883(0);
			((Class84_Sub1) this).aBool9007 = true;
		}
	}

	public final void method2067(Class587_Sub25 class587_sub25) {
		((Class84_Sub1) this).aNativeHeap8881 = (((Class587_Sub25_Sub2) (Class587_Sub25_Sub2) class587_sub25).aNativeHeap10339);
	}

	public final Class135 method2068(int i, int i_350_, boolean bool, boolean bool_351_) {
		return new Class135_Sub2(this, i, i_350_, bool, bool_351_);
	}

	public final Class135 method2069(int i, int i_352_, boolean bool, boolean bool_353_) {
		return new Class135_Sub2(this, i, i_352_, bool, bool_353_);
	}

	final Interface39 method14893(int i, int i_354_, boolean bool, int[] is) {
		return method14829(i, i_354_, bool, is, 0, 0);
	}

	abstract void method14894();

	public final Class135 method2072(int[] is, int i, int i_355_, int i_356_, int i_357_, boolean bool) {
		return new Class135_Sub2(this, i_356_, i_357_, is, i, i_355_);
	}

	public final Class135 method2073(Class100 class100, boolean bool) {
		Class135 class135;
		if (class100.method2439() != 0 && class100.method2440() != 0) {
			int[] is = class100.method2454(false);
			class135 = method1937(is, 0, class100.method2439(), class100.method2439(), class100.method2440(), -2041222881);
		} else
			class135 = method1937(new int[] { 0 }, 0, 1, 1, 1, -2030809006);
		class135.method3115(class100.method2453(), class100.method2443(), class100.method2484(), class100.method2444());
		return class135;
	}

	abstract Interface32 method14895(Class172 class172, Class96 class96, int i, int i_358_);

	public final Class135 method2075(Class100 class100, boolean bool) {
		Class135 class135;
		if (class100.method2439() != 0 && class100.method2440() != 0) {
			int[] is = class100.method2454(false);
			class135 = method1937(is, 0, class100.method2439(), class100.method2439(), class100.method2440(), -2068387339);
		} else
			class135 = method1937(new int[] { 0 }, 0, 1, 1, 1, -2071684828);
		class135.method3115(class100.method2453(), class100.method2443(), class100.method2484(), class100.method2444());
		return class135;
	}

	void method14896() {
		((Class84_Sub1) this).aClass372_9003.method6955();
		for (int i = 0; i < ((Class84_Sub1) this).aClass383Array8987.length; i++) {
			if (((Class84_Sub1) this).aClass383Array8987[i] != null && ((Class84_Sub1) this).aClass383Array8987[i].method7048())
				((Class84_Sub1) this).aClass383Array8987[i].method7039();
		}
		((Class84_Sub1) this).aClass386_9008 = new Class386(this);
		method15023();
		method14766();
		method14767();
		((Class84_Sub1) this).aClass386_9008.method7085(this);
		((Class84_Sub1) this).aClass305_8974 = new Class305(this, 1024);
	}

	public final Class135 method2128(int i, int i_359_, int i_360_, int i_361_, boolean bool) {
		Class135_Sub2 class135_sub2 = new Class135_Sub2(this, i_360_, i_361_, bool, false);
		class135_sub2.method3117(0, 0, i_360_, i_361_, i, i_359_);
		return class135_sub2;
	}

	public void method1904() {
		((Class84_Sub1) this).anInt8927 = 0;
		((Class84_Sub1) this).anInt8928 = 0;
		((Class84_Sub1) this).anInt8865 = aClass171_1190.method3754();
		((Class84_Sub1) this).anInt8939 = aClass171_1190.method3755();
		method15116();
	}

	public final Class134 method2079(int i, int i_362_, int[] is, int[] is_363_) {
		return Class134_Sub1.method14704(this, i, i_362_, is, is_363_);
	}

	void method14897() {
		ArrayList arraylist = ((Class84_Sub1) this).aClass610_8864.method12989(-1092900421);
		Iterator iterator = arraylist.iterator();
		while (iterator.hasNext()) {
			Interface40 interface40 = (Interface40) iterator.next();
			interface40.method54();
		}
	}

	public final Class134 method1983(int i, int i_364_, int[] is, int[] is_365_) {
		return Class134_Sub1.method14704(this, i, i_364_, is, is_365_);
	}

	public final void method2082(int i, Class134 class134, int i_366_, int i_367_) {
		method1957(false);
		((Class84_Sub1) this).aClass135_Sub2_8863.method3110(0.0F, 0.0F, (float) method2063(-833403602).method3754(), 0.0F, 0.0F, (float) method2063(1751207307).method3755(), 0, class134, i_366_, i_367_);
		method1957(true);
	}

	public final void method2083(int i, Class134 class134, int i_368_, int i_369_) {
		method1957(false);
		((Class84_Sub1) this).aClass135_Sub2_8863.method3110(0.0F, 0.0F, (float) method2063(-744125768).method3754(), 0.0F, 0.0F, (float) method2063(-813041471).method3755(), 0, class134, i_368_, i_369_);
		method1957(true);
	}

	public final Class106 method2178(Class611 class611, Class100_Sub1[] class100_sub1s, boolean bool) {
		return new Class106_Sub5(this, class611, class100_sub1s, bool);
	}

	public final void method14898() {
		if (((Class84_Sub1) this).anInt9011 != 2) {
			method14800();
			method14856(false);
			method14813(false);
			method14807(false);
			method14808(false);
			((Class84_Sub1) this).anInt9011 = 2;
		}
	}

	public final void method14899(int i, Class365 class365) {
		method14798(i, class365, false);
	}

	abstract void method14900(boolean bool);

	public final int method2088(int i, int i_370_) {
		return i | i_370_;
	}

	public final int method1969(int i, int i_371_) {
		return i | i_371_;
	}

	public final Class176 method1994(int i, int i_372_, int[][] is, int[][] is_373_, int i_374_, int i_375_, int i_376_) {
		return new Class176_Sub3(this, i_375_, i_376_, i, i_372_, is, is_373_, i_374_);
	}

	public final Class176 method2071(int i, int i_377_, int[][] is, int[][] is_378_, int i_379_, int i_380_, int i_381_) {
		return new Class176_Sub3(this, i_380_, i_381_, i, i_377_, is, is_378_, i_379_);
	}

	public final Class288 method14901() {
		return aClass288Array8963[anInt8961];
	}

	public final NativeHeapBuffer method14902(int i, boolean bool) {
		return ((Class84_Sub1) this).aNativeHeap8881.method985(i, bool);
	}

	public final void method1921(int i, int i_382_, int i_383_, int i_384_, int i_385_, int i_386_, byte[] is, int i_387_, int i_388_) {
		/* empty */
	}

	public final int method2095() {
		return anInt8889 - 2;
	}

	public final void method14903(int i, Class365 class365) {
		method14838(i, class365, false, false);
	}

	public final int method2097() {
		return anInt8889 - 2;
	}

	public final int method2098() {
		return anInt8889 - 2;
	}

	public final void method2102(int i, Class587_Sub12[] class587_sub12s) {
		for (int i_389_ = 0; i_389_ < i; i_389_++)
			aClass587_Sub12Array8954[i_389_] = class587_sub12s[i_389_];
		anInt8896 = i;
	}

	Class288 method14904() {
		return ((Class84_Sub1) this).aClass288_8887;
	}

	public final boolean method1897() {
		return (((Class84_Sub1) this).aClass383Array8987[1] != null && ((Class84_Sub1) this).aClass383Array8987[1].method7048());
	}

	final void method14905() {
		if (((Class84_Sub1) this).aClass385_8976 != Class385.aClass385_5667) {
			((Class84_Sub1) this).aClass385_8976 = Class385.aClass385_5667;
			method14793();
			method14804();
			((Class84_Sub1) this).aClass288_8908 = ((Class84_Sub1) this).aClass288_8906;
			method14805();
			method15116();
			((Class84_Sub1) this).anInt9011 &= ~0x7;
		}
	}

	public final void method2106(Class160 class160) {
		((Class84_Sub1) this).aClass386_9008.method7087(this, class160);
	}

	public final Interface31 method14906() {
		return (((Class84_Sub1) this).aClass159_Sub1_8988 != null ? ((Class84_Sub1) this).aClass159_Sub1_8988.method15270() : null);
	}

	public final Class159 method1935(int i) {
		return new Class159_Sub1_Sub1(this, i);
	}

	final Class288 method14907() {
		return aClass288_9009;
	}

	final void method14908() {
		method14846();
	}

	public final void method2110(Class160 class160) {
		((Class84_Sub1) this).aClass386_9008.method7087(this, class160);
	}

	public final void method2111(Class346 class346) {
		((Class84_Sub1) this).aClass346_8888 = class346;
		aClass288_8950.method5846(((Class84_Sub1) this).aClass346_8888);
		((Class84_Sub1) this).aClass346_8936.method6507(class346);
		((Class84_Sub1) this).aClass346_8936.method6549();
		((Class84_Sub1) this).aClass288_8877.method5846(((Class84_Sub1) this).aClass346_8936);
		method14792();
		if (((Class84_Sub1) this).aClass385_8976 == Class385.aClass385_5667)
			method14793();
	}

	final void method14909(int i, int i_390_) {
		anInt8940 = i;
		anInt8933 = i_390_;
		method14787();
		method14788();
	}

	public abstract void method14910();

	public final void method2104(int i, Class587_Sub12[] class587_sub12s) {
		for (int i_391_ = 0; i_391_ < i; i_391_++)
			aClass587_Sub12Array8954[i_391_] = class587_sub12s[i_391_];
		anInt8896 = i;
	}

	abstract Interface39 method14911(Class172 class172, int i, int i_392_, boolean bool, byte[] is, int i_393_, int i_394_);

	public void method2252() {
		if (((Class84_Sub1) this).aClass305_8974 != null)
			((Class84_Sub1) this).aClass305_8974.method6077();
	}

	public final Class288 method2117() {
		return ((Class84_Sub1) this).aClass288_8906;
	}

	public final void method1963(int i, int i_395_, int i_396_) {
		if (anInt8919 != i || anInt8910 != i_395_ || anInt8997 != i_396_) {
			anInt8919 = i;
			anInt8910 = i_395_;
			anInt8997 = i_396_;
			method14858();
			method14860();
		}
	}

	final Class288 method14912() {
		if (((Class84_Sub1) this).aClass385_8976 == Class385.aClass385_5667)
			return ((Class84_Sub1) this).aClass288_8877;
		return aClass288_8894;
	}

	public final void method2091(int i, float f, float f_397_, float f_398_, float f_399_, float f_400_) {
		boolean bool = ((Class84_Sub1) this).anInt8947 != i;
		if (bool || aFloat8952 != f || aFloat8917 != f_397_) {
			((Class84_Sub1) this).anInt8947 = i;
			aFloat8952 = f;
			aFloat8917 = f_397_;
			if (bool) {
				aFloat8948 = (float) (((Class84_Sub1) this).anInt8947 & 0xff0000) / 1.671168E7F;
				aFloat8949 = (float) (((Class84_Sub1) this).anInt8947 & 0xff00) / 65280.0F;
				aFloat8975 = ((float) (((Class84_Sub1) this).anInt8947 & 0xff) / 255.0F);
				method14815();
			}
			method14769();
		}
		if (((Class84_Sub1) this).aFloatArray8885[0] != f_398_ || ((Class84_Sub1) this).aFloatArray8885[1] != f_399_ || ((Class84_Sub1) this).aFloatArray8885[2] != f_400_) {
			((Class84_Sub1) this).aFloatArray8885[0] = f_398_;
			((Class84_Sub1) this).aFloatArray8885[1] = f_399_;
			((Class84_Sub1) this).aFloatArray8885[2] = f_400_;
			((Class84_Sub1) this).aFloatArray8914[0] = -f_398_;
			((Class84_Sub1) this).aFloatArray8914[1] = -f_399_;
			((Class84_Sub1) this).aFloatArray8914[2] = -f_400_;
			float f_401_ = (float) (1.0 / Math.sqrt((double) (f_398_ * f_398_ + f_399_ * f_399_ + f_400_ * f_400_)));
			aFloatArray8943[0] = f_398_ * f_401_;
			aFloatArray8943[1] = f_399_ * f_401_;
			aFloatArray8943[2] = f_400_ * f_401_;
			aFloatArray8879[0] = -aFloatArray8943[0];
			aFloatArray8879[1] = -aFloatArray8943[1];
			aFloatArray8879[2] = -aFloatArray8943[2];
			method14817();
			((Class84_Sub1) this).anInt8959 = (int) (f_398_ * 256.0F / f_399_);
			((Class84_Sub1) this).anInt8960 = (int) (f_400_ * 256.0F / f_399_);
		}
		method15125();
	}

	public final void method2121(int i) {
		((Class84_Sub1) this).anInt8923 = 0;
		for (/**/; i > 1; i >>= 1)
			((Class84_Sub1) this).anInt8923++;
		((Class84_Sub1) this).anInt8957 = 1 << ((Class84_Sub1) this).anInt8923;
	}

	public final void method2122(int i) {
		((Class84_Sub1) this).anInt8923 = 0;
		for (/**/; i > 1; i >>= 1)
			((Class84_Sub1) this).anInt8923++;
		((Class84_Sub1) this).anInt8957 = 1 << ((Class84_Sub1) this).anInt8923;
	}

	public final void method2169(int i) {
		((Class84_Sub1) this).anInt8923 = 0;
		for (/**/; i > 1; i >>= 1)
			((Class84_Sub1) this).anInt8923++;
		((Class84_Sub1) this).anInt8957 = 1 << ((Class84_Sub1) this).anInt8923;
	}

	public final Class159 method2124(int i) {
		return new Class159_Sub1_Sub1(this, i);
	}

	public final boolean method2004() {
		return true;
	}

	abstract void method14913();

	public final Class159 method2127(int i) {
		return new Class159_Sub1_Sub1(this, i);
	}

	final void method14914() {
		method14815();
		method14769();
		method14814();
		method14819();
		method14817();
		method15125();
		method14887();
		method14881();
		method14809();
		method14860();
		method14859();
		method14855();
		method14854();
		method14853();
		for (int i = anInt9010 - 1; i >= 0; i--) {
			method15025(i);
			method15053();
			method14848();
			method14843();
		}
		method14845();
		method14787();
	}

	public final boolean method2131() {
		if (((Class84_Sub1) this).aClass383Array8987[1] != null && !((Class84_Sub1) this).aClass383Array8987[1].method7048()) {
			boolean bool = ((Class84_Sub1) this).aClass372_9003.method6956(((Class84_Sub1) this).aClass383Array8987[1]);
			if (bool)
				((Class84_Sub1) this).aClass381_8968.method7018();
			return bool;
		}
		return false;
	}

	public final boolean method2180() {
		if (((Class84_Sub1) this).aClass383Array8987[1] != null && !((Class84_Sub1) this).aClass383Array8987[1].method7048()) {
			boolean bool = ((Class84_Sub1) this).aClass372_9003.method6956(((Class84_Sub1) this).aClass383Array8987[1]);
			if (bool)
				((Class84_Sub1) this).aClass381_8968.method7018();
			return bool;
		}
		return false;
	}

	public final boolean method2133() {
		if (((Class84_Sub1) this).aClass383Array8987[1] != null && !((Class84_Sub1) this).aClass383Array8987[1].method7048()) {
			boolean bool = ((Class84_Sub1) this).aClass372_9003.method6956(((Class84_Sub1) this).aClass383Array8987[1]);
			if (bool)
				((Class84_Sub1) this).aClass381_8968.method7018();
			return bool;
		}
		return false;
	}

	public final boolean method2134() {
		if (((Class84_Sub1) this).aClass383Array8987[1] != null && !((Class84_Sub1) this).aClass383Array8987[1].method7048()) {
			boolean bool = ((Class84_Sub1) this).aClass372_9003.method6956(((Class84_Sub1) this).aClass383Array8987[1]);
			if (bool)
				((Class84_Sub1) this).aClass381_8968.method7018();
			return bool;
		}
		return false;
	}

	public final void method2229(int i, Class587_Sub12[] class587_sub12s) {
		for (int i_402_ = 0; i_402_ < i; i_402_++)
			aClass587_Sub12Array8954[i_402_] = class587_sub12s[i_402_];
		anInt8896 = i;
	}

	public final void method2136() {
		if (((Class84_Sub1) this).aClass383Array8987[1] != null && ((Class84_Sub1) this).aClass383Array8987[1].method7048()) {
			((Class84_Sub1) this).aClass372_9003.method6958(((Class84_Sub1) this).aClass383Array8987[1]);
			((Class84_Sub1) this).aClass381_8968.method7018();
		}
	}

	public final void method2118(float f) {
		if (aFloat8951 != f) {
			aFloat8951 = f;
			method14815();
			method15125();
		}
	}

	public final void method2177(float f) {
		if (aFloat8951 != f) {
			aFloat8951 = f;
			method14815();
			method15125();
		}
	}

	public final boolean method2152() {
		return (((Class84_Sub1) this).aClass383Array8987[1] != null && ((Class84_Sub1) this).aClass383Array8987[1].method7048());
	}

	public final void method2146() {
		((Class84_Sub1) this).aClass372_9003.method6960();
	}

	public final void method2141(int i, int i_403_, int i_404_, int i_405_) {
		((Class84_Sub1) this).aClass372_9003.method6959(i, i_403_, i_404_, i_405_);
	}

	public final void method2142(int i, int i_406_, int i_407_, int i_408_) {
		((Class84_Sub1) this).aClass372_9003.method6959(i, i_406_, i_407_, i_408_);
	}

	abstract void method14915();

	public final void method2144(int i, int i_409_, int i_410_, int i_411_) {
		((Class84_Sub1) this).aClass372_9003.method6959(i, i_409_, i_410_, i_411_);
	}

	public final void method2145(int i, int i_412_, int i_413_, int i_414_) {
		((Class84_Sub1) this).aClass372_9003.method6959(i, i_412_, i_413_, i_414_);
	}

	public void method2060(int i, int i_415_, int i_416_, int i_417_, int i_418_, int i_419_, int i_420_, int i_421_, int i_422_) {
		float f = (float) i_416_ - (float) i;
		float f_423_ = (float) i_417_ - (float) i_415_;
		if (f == 0.0F && f_423_ == 0.0F)
			f = 1.0F;
		else {
			float f_424_ = (float) (1.0 / Math.sqrt((double) (f * f + f_423_ * f_423_)));
			f *= f_424_;
			f_423_ *= f_424_;
		}
		method14800();
		Class368 class368 = ((Class84_Sub1) this).aClass368Array9016[13];
		class368.method6918();
		class368.method6926(i_418_);
		method14851(i_419_);
		class368.method6924();
		method14861(false);
		i_422_ %= i_421_ + i_420_;
		float f_425_ = f * (float) i_420_;
		float f_426_ = f_423_ * (float) i_420_;
		float f_427_ = 0.0F;
		float f_428_ = 0.0F;
		float f_429_ = f_425_;
		float f_430_ = f_426_;
		if (i_422_ > i_420_) {
			f_427_ = f * (float) (i_420_ + i_421_ - i_422_);
			f_428_ = f_423_ * (float) (i_420_ + i_421_ - i_422_);
		} else {
			f_429_ = f * (float) (i_420_ - i_422_);
			f_430_ = f_423_ * (float) (i_420_ - i_422_);
		}
		float f_431_ = (float) i + f_427_;
		float f_432_ = (float) i_415_ + f_428_;
		float f_433_ = f * (float) i_421_;
		float f_434_ = f_423_ * (float) i_421_;
		for (;;) {
			if (i_416_ > i) {
				if (f_431_ > (float) i_416_)
					break;
				if (f_431_ + f_429_ > (float) i_416_)
					f_429_ = (float) i_416_ - f_431_;
			} else {
				if (f_431_ < (float) i_416_)
					break;
				if (f_431_ + f_429_ < (float) i_416_)
					f_429_ = (float) i_416_ - f_431_;
			}
			if (i_417_ > i_415_) {
				if (f_432_ > (float) i_417_)
					break;
				if (f_432_ + f_430_ > (float) i_417_)
					f_430_ = (float) i_417_ - f_432_;
			} else {
				if (f_432_ < (float) i_417_)
					break;
				if (f_432_ + f_430_ < (float) i_417_)
					f_430_ = (float) i_417_ - f_432_;
			}
			if (!method14768(f_431_, f_432_, 0.0F, f_431_ + f_429_, f_432_ + f_430_, 0.0F))
				return;
			method14873();
			f_431_ += f_433_ + f_429_;
			f_432_ += f_434_ + f_430_;
			f_429_ = f_425_;
			f_430_ = f_426_;
		}
		method14861(true);
		class368.method6920();
	}

	public final void method2212(int i, int i_435_, int i_436_, int i_437_, int i_438_, int i_439_, int i_440_) {
		i += 1.0F;
		i_435_ += 1.0F;
		i_436_ += 1.0F;
		i_437_ += 1.0F;
		float f = (float) (i_436_ - i);
		float f_441_ = (float) (i_437_ - i_435_);
		float f_442_ = 1.0F / (float) Math.sqrt((double) (f * f + f_441_ * f_441_));
		f *= f_442_;
		f_441_ *= f_442_;
		i -= f;
		i_435_ -= f_441_;
		float f_443_ = -f_441_;
		float f_444_ = f;
		f_443_ *= 0.5F * (float) i_439_;
		f_444_ *= 0.5F * (float) i_439_;
		((Class84_Sub1) this).aClass135_Sub2_8996.method3120((float) i - f_443_, (float) i_435_ - f_444_, (float) i_436_ - f_443_, (float) i_437_ - f_444_, (float) i + f_443_, (float) i_435_ + f_444_, 0, i_438_, i_440_);
	}

	final void method14916() {
		aClass288_8909.method5825(((Class84_Sub1) this).aClass288_8908);
		method14799(aClass288_8909);
		aFloat8922 = ((aClass288_8909.aFloatArray4285[14] - aClass288_8909.aFloatArray4285[15]) / (aClass288_8909.aFloatArray4285[11] - aClass288_8909.aFloatArray4285[10]));
		aFloat8911 = (-aClass288_8909.aFloatArray4285[14] / aClass288_8909.aFloatArray4285[10]);
		method14858();
	}

	public final void method2148(int i, Class98 class98) {
		if (!((Class84_Sub1) this).aBool8989)
			throw new RuntimeException("");
		((Class84_Sub1) this).anInt8991 = i;
		((Class84_Sub1) this).aClass98_8985 = class98;
		if (((Class84_Sub1) this).aBool8990) {
			((Class84_Sub1) this).aClass368Array9016[3].method6928();
			((Class84_Sub1) this).aClass368Array9016[3].method6922();
		}
	}

	public final void method2182(int i, Class98 class98) {
		if (!((Class84_Sub1) this).aBool8989)
			throw new RuntimeException("");
		((Class84_Sub1) this).anInt8991 = i;
		((Class84_Sub1) this).aClass98_8985 = class98;
		if (((Class84_Sub1) this).aBool8990) {
			((Class84_Sub1) this).aClass368Array9016[3].method6928();
			((Class84_Sub1) this).aClass368Array9016[3].method6922();
		}
	}

	public final void method2150(int i, Class98 class98) {
		if (!((Class84_Sub1) this).aBool8989)
			throw new RuntimeException("");
		((Class84_Sub1) this).anInt8991 = i;
		((Class84_Sub1) this).aClass98_8985 = class98;
		if (((Class84_Sub1) this).aBool8990) {
			((Class84_Sub1) this).aClass368Array9016[3].method6928();
			((Class84_Sub1) this).aClass368Array9016[3].method6922();
		}
	}

	public final void method2077() {
		((Class84_Sub1) this).aBool8989 = false;
	}

	public final void method2160() {
		((Class84_Sub1) this).aBool8989 = false;
	}

	public final void method2153(int i, int i_445_, float f, int i_446_, int i_447_, float f_448_, int i_449_, int i_450_, float f_451_, int i_452_, int i_453_, int i_454_, int i_455_) {
		/* empty */
	}

	public void method2154(float f, float f_456_, float f_457_, float[] fs) {
		float f_458_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[15] + ((Class84_Sub1) this).aClass288_9001.aFloatArray4285[3] * f + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[7] * f_456_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[11] * f_457_));
		float f_459_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[12] + ((Class84_Sub1) this).aClass288_9001.aFloatArray4285[0] * f + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[4] * f_456_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[8] * f_457_));
		float f_460_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[13] + ((Class84_Sub1) this).aClass288_9001.aFloatArray4285[1] * f + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[5] * f_456_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[9] * f_457_));
		float f_461_ = (aClass288_8950.aFloatArray4285[14] + aClass288_8950.aFloatArray4285[2] * f + aClass288_8950.aFloatArray4285[6] * f_456_ + aClass288_8950.aFloatArray4285[10] * f_457_);
		fs[0] = (((Class84_Sub1) this).aFloat8913 + ((Class84_Sub1) this).aFloat8982 * f_459_ / f_458_);
		fs[1] = (((Class84_Sub1) this).aFloat8915 + ((Class84_Sub1) this).aFloat8916 * f_460_ / f_458_);
		fs[2] = f_461_;
	}

	public void method2155(float f, float f_462_, float f_463_, float[] fs) {
		float f_464_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[14] + ((Class84_Sub1) this).aClass288_9001.aFloatArray4285[2] * f + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[6] * f_462_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[10] * f_463_));
		float f_465_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[15] + ((Class84_Sub1) this).aClass288_9001.aFloatArray4285[3] * f + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[7] * f_462_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[11] * f_463_));
		if (f_464_ < -f_465_ || f_464_ > f_465_) {
			float[] fs_466_ = fs;
			float[] fs_467_ = fs;
			fs[2] = Float.NaN;
			fs_467_[1] = Float.NaN;
			fs_466_[0] = Float.NaN;
		} else {
			float f_468_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[12] + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[0] * f) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[4] * f_462_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[8] * f_463_));
			if (f_468_ < -f_465_ || f_468_ > f_465_) {
				float[] fs_469_ = fs;
				float[] fs_470_ = fs;
				fs[2] = Float.NaN;
				fs_470_[1] = Float.NaN;
				fs_469_[0] = Float.NaN;
			} else {
				float f_471_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[13] + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[1]) * f + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[5]) * f_462_ + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[9]) * f_463_);
				if (f_471_ < -f_465_ || f_471_ > f_465_) {
					float[] fs_472_ = fs;
					float[] fs_473_ = fs;
					fs[2] = Float.NaN;
					fs_473_[1] = Float.NaN;
					fs_472_[0] = Float.NaN;
				} else {
					float f_474_ = (aClass288_8950.aFloatArray4285[14] + aClass288_8950.aFloatArray4285[2] * f + aClass288_8950.aFloatArray4285[6] * f_462_ + aClass288_8950.aFloatArray4285[10] * f_463_);
					fs[0] = (((Class84_Sub1) this).aFloat8913 + (((Class84_Sub1) this).aFloat8982 * f_468_ / f_465_));
					fs[1] = (((Class84_Sub1) this).aFloat8915 + (((Class84_Sub1) this).aFloat8916 * f_471_ / f_465_));
					fs[2] = f_474_;
				}
			}
		}
	}

	public final Class587_Sub25 method2172(int i) {
		Class587_Sub25_Sub2 class587_sub25_sub2 = new Class587_Sub25_Sub2(i);
		((Class84_Sub1) this).aClass413_8882.method7337(class587_sub25_sub2, -2015579455);
		return class587_sub25_sub2;
	}

	public final Class134 method2205(int i, int i_475_, int[] is, int[] is_476_) {
		return Class134_Sub1.method14704(this, i, i_475_, is, is_476_);
	}

	final void method14917() {
		if (((Class84_Sub1) this).anInt9011 != 8) {
			method14772();
			method14856(true);
			method14807(true);
			method14808(true);
			method14851(1);
			((Class84_Sub1) this).anInt9011 = 8;
		}
	}

	Class34 method14918(byte[] is) {
		if (is == null)
			return null;
		Class34 class34;
		try {
			class34 = new Class34(is);
		} catch (Exception exception) {
			return null;
		}
		return class34;
	}

	public final void method1971(int i) {
		/* empty */
	}

	public final Class288 method2147() {
		return ((Class84_Sub1) this).aClass288_9029;
	}

	public final void method1955(Class346 class346) {
		((Class84_Sub1) this).aClass346_8888 = class346;
		aClass288_8950.method5846(((Class84_Sub1) this).aClass346_8888);
		((Class84_Sub1) this).aClass346_8936.method6507(class346);
		((Class84_Sub1) this).aClass346_8936.method6549();
		((Class84_Sub1) this).aClass288_8877.method5846(((Class84_Sub1) this).aClass346_8936);
		method14792();
		if (((Class84_Sub1) this).aClass385_8976 == Class385.aClass385_5667)
			method14793();
	}

	public final Class288 method2179() {
		return ((Class84_Sub1) this).aClass288_9029;
	}

	public final Class288 method1954() {
		return ((Class84_Sub1) this).aClass288_9029;
	}

	public void method2181() {
		((Class84_Sub1) this).anInt8927 = 0;
		((Class84_Sub1) this).anInt8928 = 0;
		((Class84_Sub1) this).anInt8865 = aClass171_1190.method3754();
		((Class84_Sub1) this).anInt8939 = aClass171_1190.method3755();
		method15116();
	}

	abstract void method14919();

	public void method2084() {
		((Class84_Sub1) this).anInt8927 = 0;
		((Class84_Sub1) this).anInt8928 = 0;
		((Class84_Sub1) this).anInt8865 = aClass171_1190.method3754();
		((Class84_Sub1) this).anInt8939 = aClass171_1190.method3755();
		method15116();
	}

	final void method14920() {
		if (!((Class84_Sub1) this).aBool8986) {
			int i;
			int i_477_;
			if (aClass171_1190 != null) {
				i_477_ = aClass171_1190.method3754();
				i = aClass171_1190.method3755();
			} else {
				i = 0;
				i_477_ = 0;
			}
			Class288 class288 = ((Class84_Sub1) this).aClass288_8903;
			if (i_477_ != 0 && i != 0)
				class288.method5757(0.0F, (float) i_477_, 0.0F, (float) i, -1.0F, 1.0F);
			else
				class288.method5744();
			((Class84_Sub1) this).aClass288_8904.method5825(class288);
			method14799(((Class84_Sub1) this).aClass288_8904);
			((Class84_Sub1) this).aBool8986 = true;
		}
	}

	public void method2190() {
		((Class84_Sub1) this).anInt8927 = 0;
		((Class84_Sub1) this).anInt8928 = 0;
		((Class84_Sub1) this).anInt8865 = aClass171_1190.method3754();
		((Class84_Sub1) this).anInt8939 = aClass171_1190.method3755();
		method15116();
	}

	public final void method14921(int i) {
		switch (i) {
		case 0:
			method14863(Class391.aClass391_5704, Class391.aClass391_5704);
			break;
		case 3:
			method14863(Class391.aClass391_5705, Class391.aClass391_5704);
			break;
		case 1:
			method14863(Class391.aClass391_5708, Class391.aClass391_5708);
			break;
		case 2:
			method14863(Class391.aClass391_5707, Class391.aClass391_5708);
			break;
		case 4:
			method14863(Class391.aClass391_5706, Class391.aClass391_5706);
			break;
		}
	}

	public final void method2187(Class288 class288) {
		((Class84_Sub1) this).aClass288_8906.method5825(class288);
		method14792();
		if (((Class84_Sub1) this).aClass385_8976 == Class385.aClass385_5667)
			method14805();
	}

	abstract void method14922(int i);

	public final boolean method2215() {
		if (((Class84_Sub1) this).aClass383Array8987[1] != null && !((Class84_Sub1) this).aClass383Array8987[1].method7048()) {
			boolean bool = ((Class84_Sub1) this).aClass372_9003.method6956(((Class84_Sub1) this).aClass383Array8987[1]);
			if (bool)
				((Class84_Sub1) this).aClass381_8968.method7018();
			return bool;
		}
		return false;
	}

	public final void method2192(Class159 class159) {
		((Class84_Sub1) this).aClass159_Sub1_8988 = (Class159_Sub1) class159;
	}

	public final void method2042(int i, int i_478_, int i_479_, int i_480_, int i_481_, int i_482_) {
		i_479_--;
		i_480_--;
		int i_483_ = 0;
		if (this instanceof Class84_Sub1_Sub1)
			i_483_ = -1;
		method1913(i, i_478_ + i_483_, i + i_479_, i_478_ + i_483_, i_481_, i_482_);
		method1913(i, i_478_ + i_480_ + i_483_, i + i_479_, i_478_ + i_480_ + i_483_, i_481_, i_482_);
		method1913(i, i_478_, i, i_478_ + i_480_, i_481_, i_482_);
		method1913(i + i_479_, i_478_, i + i_479_, i_478_ + i_480_, i_481_, i_482_);
	}

	public final int method2014() {
		return anInt8884 + anInt8883 + anInt8929;
	}

	public final int method2193() {
		return anInt8884 + anInt8883 + anInt8929;
	}

	public void method2228(boolean bool) {
		((Class84_Sub1) this).aBool8967 = bool;
	}

	final void method14923() {
		aClass288_8909.method5825(((Class84_Sub1) this).aClass288_8908);
		method14799(aClass288_8909);
		aFloat8922 = ((aClass288_8909.aFloatArray4285[14] - aClass288_8909.aFloatArray4285[15]) / (aClass288_8909.aFloatArray4285[11] - aClass288_8909.aFloatArray4285[10]));
		aFloat8911 = (-aClass288_8909.aFloatArray4285[14] / aClass288_8909.aFloatArray4285[10]);
		method14858();
	}

	public final boolean method2000() {
		return ((Class84_Sub1) this).aClass383Array8987[1] != null;
	}

	public final void method2245(int i, int i_484_, int i_485_, int i_486_, int i_487_, int i_488_, int i_489_) {
		i += 1.0F;
		i_484_ += 1.0F;
		i_485_ += 1.0F;
		i_486_ += 1.0F;
		float f = (float) (i_485_ - i);
		float f_490_ = (float) (i_486_ - i_484_);
		float f_491_ = 1.0F / (float) Math.sqrt((double) (f * f + f_490_ * f_490_));
		f *= f_491_;
		f_490_ *= f_491_;
		i -= f;
		i_484_ -= f_490_;
		float f_492_ = -f_490_;
		float f_493_ = f;
		f_492_ *= 0.5F * (float) i_488_;
		f_493_ *= 0.5F * (float) i_488_;
		((Class84_Sub1) this).aClass135_Sub2_8996.method3120((float) i - f_492_, (float) i_484_ - f_493_, (float) i_485_ - f_492_, (float) i_486_ - f_493_, (float) i + f_492_, (float) i_484_ + f_493_, 0, i_487_, i_489_);
	}

	public final void method2246(int i, int i_494_, int i_495_, int i_496_, int i_497_, int i_498_, int i_499_) {
		i += 1.0F;
		i_494_ += 1.0F;
		i_495_ += 1.0F;
		i_496_ += 1.0F;
		float f = (float) (i_495_ - i);
		float f_500_ = (float) (i_496_ - i_494_);
		float f_501_ = 1.0F / (float) Math.sqrt((double) (f * f + f_500_ * f_500_));
		f *= f_501_;
		f_500_ *= f_501_;
		i -= f;
		i_494_ -= f_500_;
		float f_502_ = -f_500_;
		float f_503_ = f;
		f_502_ *= 0.5F * (float) i_498_;
		f_503_ *= 0.5F * (float) i_498_;
		((Class84_Sub1) this).aClass135_Sub2_8996.method3120((float) i - f_502_, (float) i_494_ - f_503_, (float) i_495_ - f_502_, (float) i_496_ - f_503_, (float) i + f_502_, (float) i_494_ + f_503_, 0, i_497_, i_499_);
	}

	abstract void method14924();

	public final void method2065(Class587_Sub25 class587_sub25) {
		((Class84_Sub1) this).aNativeHeap8881 = (((Class587_Sub25_Sub2) (Class587_Sub25_Sub2) class587_sub25).aNativeHeap10339);
	}

	public void method2253() {
		if (((Class84_Sub1) this).aClass305_8974 != null)
			((Class84_Sub1) this).aClass305_8974.method6088();
	}

	public void method2254() {
		if (((Class84_Sub1) this).aClass305_8974 != null)
			((Class84_Sub1) this).aClass305_8974.method6086();
	}

	public void method14925(Interface40 interface40) {
		((Class84_Sub1) this).aClass610_8864.method12990(interface40, anObject8981, 1026505120);
	}

	public void method14926(Interface40 interface40) {
		((Class84_Sub1) this).aClass610_8864.method12988(interface40, (byte) 43);
	}

	void method14927() {
		ArrayList arraylist = ((Class84_Sub1) this).aClass610_8864.method12989(-1228067017);
		Iterator iterator = arraylist.iterator();
		while (iterator.hasNext()) {
			Interface40 interface40 = (Interface40) iterator.next();
			interface40.method54();
		}
	}

	final void method14928() {
		if (((Class84_Sub1) this).aClass385_8976 != Class385.aClass385_5667) {
			((Class84_Sub1) this).aClass385_8976 = Class385.aClass385_5667;
			method14793();
			method14804();
			((Class84_Sub1) this).aClass288_8908 = ((Class84_Sub1) this).aClass288_8906;
			method14805();
			method15116();
			((Class84_Sub1) this).anInt9011 &= ~0x7;
		}
	}

	void method14929() {
		ArrayList arraylist = ((Class84_Sub1) this).aClass610_8864.method12989(-2073416923);
		Iterator iterator = arraylist.iterator();
		while (iterator.hasNext()) {
			Interface40 interface40 = (Interface40) iterator.next();
			interface40.method54();
		}
	}

	public abstract boolean method14930();

	public abstract boolean method14931();

	public abstract boolean method14932();

	abstract void method14933();

	public abstract boolean method14934();

	final boolean method14935() {
		return aBool8874;
	}

	final boolean method14936() {
		return aBool8874;
	}

	byte[] method14937(String string, String string_504_) {
		return ((Class84_Sub1) this).aClass279_8873.method5599(string, string_504_, 454681756);
	}

	public final int method2149(int i, int i_505_) {
		return i & i_505_ ^ i_505_;
	}

	Class34 method14938(byte[] is) {
		if (is == null)
			return null;
		Class34 class34;
		try {
			class34 = new Class34(is);
		} catch (Exception exception) {
			return null;
		}
		return class34;
	}

	boolean method14939(float f, float f_506_, float f_507_, float f_508_, float f_509_, float f_510_) {
		aByteBuffer8876.clear();
		aByteBuffer8876.putFloat(f);
		aByteBuffer8876.putFloat(f_506_);
		aByteBuffer8876.putFloat(f_507_);
		aByteBuffer8876.putFloat(f_508_);
		aByteBuffer8876.putFloat(f_509_);
		aByteBuffer8876.putFloat(f_510_);
		return ((Class84_Sub1) this).anInterface41_9017.method302(0, aByteBuffer8876.position(), aLong8893);
	}

	public abstract void method14940(Class288 class288, Class288 class288_511_, Class288 class288_512_);

	public abstract void method14941(Class288 class288, Class288 class288_513_, Class288 class288_514_);

	public abstract void method14942(Class288 class288, Class288 class288_515_, Class288 class288_516_);

	public static void method14943() throws Exception_Sub3 {
		Class106_Sub3.method14645(6838043).method117("jaclib", 936504117);
	}

	public static void method14944() throws Exception_Sub3 {
		Class106_Sub3.method14645(6838043).method117("jaclib", -1388811238);
	}

	public final void method2046(int i, int i_517_, int i_518_, int i_519_, int i_520_, int i_521_, byte[] is, int i_522_, int i_523_) {
		/* empty */
	}

	public final void method14945() {
		((Class84_Sub1) this).anInterface33Array8891 = new Interface33[anInt9010];
		aClass288Array8963 = new Class288[anInt9010];
		aClass367Array8964 = new Class367[anInt9010];
		aClass391Array8965 = new Class391[anInt9010];
		aClass391Array9006 = new Class391[anInt9010];
		for (int i = 0; i < anInt9010; i++) {
			aClass391Array9006[i] = Class391.aClass391_5704;
			aClass391Array8965[i] = Class391.aClass391_5704;
			aClass367Array8964[i] = Class367.aClass367_5540;
			aClass288Array8963[i] = new Class288();
		}
		aClass587_Sub12Array8954 = new Class587_Sub12[anInt8889 - 2];
		int[] is = { -1 };
		anInterface39_8886 = method14829(1, 1, false, is, 0, 0);
		is[0] = -16777216;
		((Class84_Sub1) this).anInterface39_8970 = method14829(1, 1, false, is, 0, 0);
		method1933(new Class587_Sub25_Sub2(262144));
		((Class84_Sub1) this).aClass363_8969 = method14864(new Class384[] { new Class384(new Class371[] { Class371.aClass371_5581, Class371.aClass371_5568 }) });
		((Class84_Sub1) this).aClass363_9025 = method14864(new Class384[] { new Class384(new Class371[] { Class371.aClass371_5581, Class371.aClass371_5570 }) });
		((Class84_Sub1) this).aClass363_9023 = method14864(new Class384[] { new Class384(Class371.aClass371_5581), new Class384(Class371.aClass371_5570), new Class384(Class371.aClass371_5568), new Class384(Class371.aClass371_5569) });
		((Class84_Sub1) this).aClass363_9022 = method14864(new Class384[] { new Class384(Class371.aClass371_5581), new Class384(Class371.aClass371_5570), new Class384(Class371.aClass371_5568) });
		for (int i = 0; i < 7; i++) {
			((Class84_Sub1) this).aClass163_Sub2Array8918[i] = new Class163_Sub2(this, 0, 0, false, false);
			((Class84_Sub1) this).aClass163_Sub2Array9028[i] = new Class163_Sub2(this, 0, 0, true, true);
		}
		method14762();
		((Class84_Sub1) this).anInterface43_9026 = method14862(true);
		method14763();
		method1898();
		method1917();
		method1903();
		((Class84_Sub1) this).aClass135_Sub2_8996 = new Class135_Sub2(this, anInterface39_8886);
		((Class84_Sub1) this).aClass135_Sub2_8863 = new Class135_Sub2(this, ((Class84_Sub1) this).anInterface39_8970);
		method1912(3, 0);
	}

	boolean method14946(float f, float f_524_, float f_525_, float f_526_, float f_527_, float f_528_) {
		aByteBuffer8876.clear();
		aByteBuffer8876.putFloat(f);
		aByteBuffer8876.putFloat(f_524_);
		aByteBuffer8876.putFloat(f_525_);
		aByteBuffer8876.putFloat(f_526_);
		aByteBuffer8876.putFloat(f_527_);
		aByteBuffer8876.putFloat(f_528_);
		return ((Class84_Sub1) this).anInterface41_9017.method302(0, aByteBuffer8876.position(), aLong8893);
	}

	public final void method14947() {
		((Class84_Sub1) this).anInterface33Array8891 = new Interface33[anInt9010];
		aClass288Array8963 = new Class288[anInt9010];
		aClass367Array8964 = new Class367[anInt9010];
		aClass391Array8965 = new Class391[anInt9010];
		aClass391Array9006 = new Class391[anInt9010];
		for (int i = 0; i < anInt9010; i++) {
			aClass391Array9006[i] = Class391.aClass391_5704;
			aClass391Array8965[i] = Class391.aClass391_5704;
			aClass367Array8964[i] = Class367.aClass367_5540;
			aClass288Array8963[i] = new Class288();
		}
		aClass587_Sub12Array8954 = new Class587_Sub12[anInt8889 - 2];
		int[] is = { -1 };
		anInterface39_8886 = method14829(1, 1, false, is, 0, 0);
		is[0] = -16777216;
		((Class84_Sub1) this).anInterface39_8970 = method14829(1, 1, false, is, 0, 0);
		method1933(new Class587_Sub25_Sub2(262144));
		((Class84_Sub1) this).aClass363_8969 = method14864(new Class384[] { new Class384(new Class371[] { Class371.aClass371_5581, Class371.aClass371_5568 }) });
		((Class84_Sub1) this).aClass363_9025 = method14864(new Class384[] { new Class384(new Class371[] { Class371.aClass371_5581, Class371.aClass371_5570 }) });
		((Class84_Sub1) this).aClass363_9023 = method14864(new Class384[] { new Class384(Class371.aClass371_5581), new Class384(Class371.aClass371_5570), new Class384(Class371.aClass371_5568), new Class384(Class371.aClass371_5569) });
		((Class84_Sub1) this).aClass363_9022 = method14864(new Class384[] { new Class384(Class371.aClass371_5581), new Class384(Class371.aClass371_5570), new Class384(Class371.aClass371_5568) });
		for (int i = 0; i < 7; i++) {
			((Class84_Sub1) this).aClass163_Sub2Array8918[i] = new Class163_Sub2(this, 0, 0, false, false);
			((Class84_Sub1) this).aClass163_Sub2Array9028[i] = new Class163_Sub2(this, 0, 0, true, true);
		}
		method14762();
		((Class84_Sub1) this).anInterface43_9026 = method14862(true);
		method14763();
		method1898();
		method1917();
		method1903();
		((Class84_Sub1) this).aClass135_Sub2_8996 = new Class135_Sub2(this, anInterface39_8886);
		((Class84_Sub1) this).aClass135_Sub2_8863 = new Class135_Sub2(this, ((Class84_Sub1) this).anInterface39_8970);
		method1912(3, 0);
	}

	final void method14948() {
		((Class84_Sub1) this).aClass359_8880 = new Class359(this);
		aBool8874 = false;
		try {
			((Class84_Sub1) this).aClass64_9020 = new Class64_Sub2(this);
			((Class84_Sub1) this).aClass349_8978 = new Class349_Sub2(this);
			((Class84_Sub1) this).aClass69_8979 = new Class69_Sub2(this);
			((Class84_Sub1) this).aClass356_8980 = new Class356_Sub1(this);
			((Class84_Sub1) this).aClass368_Sub1_Sub2_8902 = new Class368_Sub1_Sub2(this, ((Class84_Sub1) this).aClass359_8880, false);
			((Class84_Sub1) this).aClass368_Sub1_Sub2_8995 = new Class368_Sub1_Sub2(this, ((Class84_Sub1) this).aClass359_8880, true);
			((Class84_Sub1) this).aClass368_Sub1_Sub1_8983 = new Class368_Sub1_Sub1(this, ((Class84_Sub1) this).aClass359_8880);
		} catch (Exception exception) {
			exception.printStackTrace();
			((Class84_Sub1) this).aClass64_9020 = new Class64_Sub1(this);
			((Class84_Sub1) this).aClass349_8978 = new Class349_Sub1(this);
			((Class84_Sub1) this).aClass69_8979 = new Class69_Sub1(this);
			((Class84_Sub1) this).aClass356_8980 = new Class356_Sub2(this);
			((Class84_Sub1) this).aClass368_Sub1_Sub2_8902 = null;
			((Class84_Sub1) this).aClass368_Sub1_Sub2_8995 = null;
			((Class84_Sub1) this).aClass368_Sub1_Sub1_8983 = null;
			aBool8874 = true;
		}
		int i;
		int i_529_;
		if (aClass171_1190 != null) {
			i_529_ = aClass171_1190.method3754();
			i = aClass171_1190.method3755();
		} else {
			i = 0;
			i_529_ = 0;
		}
		((Class84_Sub1) this).aClass372_9003 = new Class372(this, i_529_, i);
		if (!aBool8874) {
			((Class84_Sub1) this).aClass383Array8987[1] = new Class383_Sub1(this);
			((Class84_Sub1) this).aClass372_9003.method6956(((Class84_Sub1) this).aClass383Array8987[1]);
		}
		if (((Class84_Sub1) this).aClass368_8966 != null) {
			((Class84_Sub1) this).aClass368_8966.method6920();
			((Class84_Sub1) this).aClass368_8966 = null;
		}
		method14765();
	}

	final void method14949() {
		((Class84_Sub1) this).aClass359_8880 = new Class359(this);
		aBool8874 = false;
		try {
			((Class84_Sub1) this).aClass64_9020 = new Class64_Sub2(this);
			((Class84_Sub1) this).aClass349_8978 = new Class349_Sub2(this);
			((Class84_Sub1) this).aClass69_8979 = new Class69_Sub2(this);
			((Class84_Sub1) this).aClass356_8980 = new Class356_Sub1(this);
			((Class84_Sub1) this).aClass368_Sub1_Sub2_8902 = new Class368_Sub1_Sub2(this, ((Class84_Sub1) this).aClass359_8880, false);
			((Class84_Sub1) this).aClass368_Sub1_Sub2_8995 = new Class368_Sub1_Sub2(this, ((Class84_Sub1) this).aClass359_8880, true);
			((Class84_Sub1) this).aClass368_Sub1_Sub1_8983 = new Class368_Sub1_Sub1(this, ((Class84_Sub1) this).aClass359_8880);
		} catch (Exception exception) {
			exception.printStackTrace();
			((Class84_Sub1) this).aClass64_9020 = new Class64_Sub1(this);
			((Class84_Sub1) this).aClass349_8978 = new Class349_Sub1(this);
			((Class84_Sub1) this).aClass69_8979 = new Class69_Sub1(this);
			((Class84_Sub1) this).aClass356_8980 = new Class356_Sub2(this);
			((Class84_Sub1) this).aClass368_Sub1_Sub2_8902 = null;
			((Class84_Sub1) this).aClass368_Sub1_Sub2_8995 = null;
			((Class84_Sub1) this).aClass368_Sub1_Sub1_8983 = null;
			aBool8874 = true;
		}
		int i;
		int i_530_;
		if (aClass171_1190 != null) {
			i_530_ = aClass171_1190.method3754();
			i = aClass171_1190.method3755();
		} else {
			i = 0;
			i_530_ = 0;
		}
		((Class84_Sub1) this).aClass372_9003 = new Class372(this, i_530_, i);
		if (!aBool8874) {
			((Class84_Sub1) this).aClass383Array8987[1] = new Class383_Sub1(this);
			((Class84_Sub1) this).aClass372_9003.method6956(((Class84_Sub1) this).aClass383Array8987[1]);
		}
		if (((Class84_Sub1) this).aClass368_8966 != null) {
			((Class84_Sub1) this).aClass368_8966.method6920();
			((Class84_Sub1) this).aClass368_8966 = null;
		}
		method14765();
	}

	public void method2025(float f, float f_531_) {
		((Class84_Sub1) this).aFloat8945 = f;
		((Class84_Sub1) this).aFloat8920 = f_531_;
		method15116();
	}

	final void method14950() {
		method14815();
		method14769();
		method14814();
		method14819();
		method14817();
		method15125();
		method14887();
		method14881();
		method14809();
		method14860();
		method14859();
		method14855();
		method14854();
		method14853();
		for (int i = anInt9010 - 1; i >= 0; i--) {
			method15025(i);
			method15053();
			method14848();
			method14843();
		}
		method14845();
		method14787();
	}

	public final Class135 method2070(int i, int i_532_, boolean bool, boolean bool_533_) {
		return new Class135_Sub2(this, i, i_532_, bool, bool_533_);
	}

	void method14951() {
		((Class84_Sub1) this).aClass372_9003.method6967();
		((Class84_Sub1) this).anInterface41_8971.method54();
		((Class84_Sub1) this).anInterface41_9017.method54();
		((Class84_Sub1) this).anInterface41_9019.method54();
		for (int i = 0; i < 7; i++)
			((Class84_Sub1) this).aClass163_Sub2Array9028[i].method15336();
		((Class84_Sub1) this).aClass386_9008.method7100();
		((Class84_Sub1) this).anInterface43_9026.method54();
		((Class84_Sub1) this).aClass305_8974.method6076();
		((Class84_Sub1) this).aClass305_8974 = null;
	}

	void method14952() {
		((Class84_Sub1) this).aClass372_9003.method6967();
		((Class84_Sub1) this).anInterface41_8971.method54();
		((Class84_Sub1) this).anInterface41_9017.method54();
		((Class84_Sub1) this).anInterface41_9019.method54();
		for (int i = 0; i < 7; i++)
			((Class84_Sub1) this).aClass163_Sub2Array9028[i].method15336();
		((Class84_Sub1) this).aClass386_9008.method7100();
		((Class84_Sub1) this).anInterface43_9026.method54();
		((Class84_Sub1) this).aClass305_8974.method6076();
		((Class84_Sub1) this).aClass305_8974 = null;
	}

	void method14953() {
		((Class84_Sub1) this).aClass372_9003.method6967();
		((Class84_Sub1) this).anInterface41_8971.method54();
		((Class84_Sub1) this).anInterface41_9017.method54();
		((Class84_Sub1) this).anInterface41_9019.method54();
		for (int i = 0; i < 7; i++)
			((Class84_Sub1) this).aClass163_Sub2Array9028[i].method15336();
		((Class84_Sub1) this).aClass386_9008.method7100();
		((Class84_Sub1) this).anInterface43_9026.method54();
		((Class84_Sub1) this).aClass305_8974.method6076();
		((Class84_Sub1) this).aClass305_8974 = null;
	}

	void method14954() {
		((Class84_Sub1) this).aClass372_9003.method6955();
		for (int i = 0; i < ((Class84_Sub1) this).aClass383Array8987.length; i++) {
			if (((Class84_Sub1) this).aClass383Array8987[i] != null && ((Class84_Sub1) this).aClass383Array8987[i].method7048())
				((Class84_Sub1) this).aClass383Array8987[i].method7039();
		}
		((Class84_Sub1) this).aClass386_9008 = new Class386(this);
		method15023();
		method14766();
		method14767();
		((Class84_Sub1) this).aClass386_9008.method7085(this);
		((Class84_Sub1) this).aClass305_8974 = new Class305(this, 1024);
	}

	public final void method2041(int i, int i_534_, int i_535_, int i_536_, int i_537_, int i_538_) {
		i_535_--;
		i_536_--;
		int i_539_ = 0;
		if (this instanceof Class84_Sub1_Sub1)
			i_539_ = -1;
		method1913(i, i_534_ + i_539_, i + i_535_, i_534_ + i_539_, i_537_, i_538_);
		method1913(i, i_534_ + i_536_ + i_539_, i + i_535_, i_534_ + i_536_ + i_539_, i_537_, i_538_);
		method1913(i, i_534_, i, i_534_ + i_536_, i_537_, i_538_);
		method1913(i + i_535_, i_534_, i + i_535_, i_534_ + i_536_, i_537_, i_538_);
	}

	public final void method1942(int i) {
		((Class84_Sub1) this).anInt8923 = 0;
		for (/**/; i > 1; i >>= 1)
			((Class84_Sub1) this).anInt8923++;
		((Class84_Sub1) this).anInt8957 = 1 << ((Class84_Sub1) this).anInt8923;
	}

	final void method14955() {
		((Class84_Sub1) this).anInterface41_8971 = method14973(false);
		int i = 160;
		((Class84_Sub1) this).anInterface41_8971.method289(i, 32);
		aByteBuffer8876.clear();
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putInt(-1);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putInt(-1);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putInt(-1);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putInt(-1);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putInt(-1);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		((Class84_Sub1) this).anInterface41_8971.method302(0, aByteBuffer8876.position(), aLong8893);
		((Class84_Sub1) this).aClass363_9021 = method14864(new Class384[] { new Class384(new Class371[] { Class371.aClass371_5581, Class371.aClass371_5570, Class371.aClass371_5568, Class371.aClass371_5568 }) });
	}

	final void method14956() {
		((Class84_Sub1) this).anInterface41_8971 = method14973(false);
		int i = 160;
		((Class84_Sub1) this).anInterface41_8971.method289(i, 32);
		aByteBuffer8876.clear();
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putInt(-1);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putInt(-1);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putInt(-1);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putInt(-1);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putInt(-1);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		((Class84_Sub1) this).anInterface41_8971.method302(0, aByteBuffer8876.position(), aLong8893);
		((Class84_Sub1) this).aClass363_9021 = method14864(new Class384[] { new Class384(new Class371[] { Class371.aClass371_5581, Class371.aClass371_5570, Class371.aClass371_5568, Class371.aClass371_5568 }) });
	}

	final void method14957() {
		((Class84_Sub1) this).anInterface41_9019 = method14973(false);
		((Class84_Sub1) this).anInterface41_9019.method289(3096, 12);
		aByteBuffer8876.clear();
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		for (int i = 0; i <= 256; i++) {
			double d = (double) (i * 2) * 3.141592653589793 / 256.0;
			float f = (float) Math.cos(d);
			float f_540_ = (float) Math.sin(d);
			aByteBuffer8876.putFloat(f_540_);
			aByteBuffer8876.putFloat(f);
			aByteBuffer8876.putFloat(0.0F);
		}
		((Class84_Sub1) this).anInterface41_9019.method302(0, aByteBuffer8876.position(), aLong8893);
	}

	final void method14958() {
		((Class84_Sub1) this).anInterface41_9019 = method14973(false);
		((Class84_Sub1) this).anInterface41_9019.method289(3096, 12);
		aByteBuffer8876.clear();
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		for (int i = 0; i <= 256; i++) {
			double d = (double) (i * 2) * 3.141592653589793 / 256.0;
			float f = (float) Math.cos(d);
			float f_541_ = (float) Math.sin(d);
			aByteBuffer8876.putFloat(f_541_);
			aByteBuffer8876.putFloat(f);
			aByteBuffer8876.putFloat(0.0F);
		}
		((Class84_Sub1) this).anInterface41_9019.method302(0, aByteBuffer8876.position(), aLong8893);
	}

	void method14959() {
		method14801();
		method14802();
		method15146();
		method1904();
		method1917();
	}

	public final void method1919(Class160 class160) {
		((Class84_Sub1) this).aClass386_9008.method7087(this, class160);
	}

	boolean method14960(float f, float f_542_, float f_543_, float f_544_, float f_545_, float f_546_) {
		aByteBuffer8876.clear();
		aByteBuffer8876.putFloat(f);
		aByteBuffer8876.putFloat(f_542_);
		aByteBuffer8876.putFloat(f_543_);
		aByteBuffer8876.putFloat(f_544_);
		aByteBuffer8876.putFloat(f_545_);
		aByteBuffer8876.putFloat(f_546_);
		return ((Class84_Sub1) this).anInterface41_9017.method302(0, aByteBuffer8876.position(), aLong8893);
	}

	boolean method14961(float f, float f_547_, float f_548_, float f_549_, float f_550_, float f_551_) {
		aByteBuffer8876.clear();
		aByteBuffer8876.putFloat(f);
		aByteBuffer8876.putFloat(f_547_);
		aByteBuffer8876.putFloat(f_548_);
		aByteBuffer8876.putFloat(f_549_);
		aByteBuffer8876.putFloat(f_550_);
		aByteBuffer8876.putFloat(f_551_);
		return ((Class84_Sub1) this).anInterface41_9017.method302(0, aByteBuffer8876.position(), aLong8893);
	}

	public abstract float method14962();

	final void method14963(int i) {
		if (((Class84_Sub1) this).anInt9000 != i) {
			Class373 class373;
			boolean bool;
			boolean bool_552_;
			if (i == 1) {
				class373 = Class373.aClass373_5611;
				bool = true;
				bool_552_ = true;
			} else if (i == 2) {
				class373 = Class373.aClass373_5608;
				bool = false;
				bool_552_ = true;
			} else if (i == 128) {
				class373 = Class373.aClass373_5612;
				bool = true;
				bool_552_ = true;
			} else {
				class373 = Class373.aClass373_5610;
				bool = false;
				bool_552_ = false;
			}
			if (bool != aBool9018) {
				aBool9018 = bool;
				method14853();
			}
			if (bool_552_ != aBool9002) {
				aBool9002 = bool_552_;
				method14855();
			}
			if (class373 != aClass373_9027) {
				aClass373_9027 = class373;
				method14854();
			}
			((Class84_Sub1) this).anInt9000 = i;
			((Class84_Sub1) this).anInt9011 &= ~0xc;
		}
	}

	public abstract float method14964();

	public final boolean method2015() {
		return false;
	}

	Class370 method14965() {
		if (((Class84_Sub1) this).aClass305_8974 == null)
			return Class370.aClass370_5567;
		return ((Class84_Sub1) this).aClass305_8974.method6075();
	}

	public Class346 method2114() {
		return ((Class84_Sub1) this).aClass346_8888;
	}

	Class370 method14966() {
		if (((Class84_Sub1) this).aClass305_8974 == null)
			return Class370.aClass370_5567;
		return ((Class84_Sub1) this).aClass305_8974.method6075();
	}

	public void method1910(boolean bool) {
		((Class84_Sub1) this).aBool8967 = bool;
	}

	final void method2050(int i, int i_553_, int i_554_, int i_555_, int i_556_) {
		/* empty */
	}

	void method14967() {
		method14801();
		method14802();
		method15146();
		method1904();
		method1917();
	}

	public final Class134 method1885(int i, int i_557_, int[] is, int[] is_558_) {
		return Class134_Sub1.method14704(this, i, i_557_, is, is_558_);
	}

	public final NativeHeapBuffer method14968(int i, boolean bool) {
		return ((Class84_Sub1) this).aNativeHeap8881.method985(i, bool);
	}

	public abstract void method14969(Class392 class392, int i, int i_559_);

	public final NativeHeapBuffer method14970(int i, boolean bool) {
		return ((Class84_Sub1) this).aNativeHeap8881.method985(i, bool);
	}

	final Interface43 method14971(int i) {
		if (((Class84_Sub1) this).anInterface43_9026.method52() < i * 2)
			((Class84_Sub1) this).anInterface43_9026.method295(i);
		return ((Class84_Sub1) this).anInterface43_9026;
	}

	public final Interface31 method14972() {
		return (((Class84_Sub1) this).aClass159_Sub1_8988 != null ? ((Class84_Sub1) this).aClass159_Sub1_8988.method15270() : null);
	}

	abstract Interface41 method14973(boolean bool);

	public void method14974(int i) {
		if (i != anInt8958) {
			anInt8958 = i;
			method14845();
		}
	}

	final void method14975() {
		if (((Class84_Sub1) this).aClass385_8976 == Class385.aClass385_5667) {
			anInt8931 = ((Class84_Sub1) this).anInt8927;
			anInt8932 = ((Class84_Sub1) this).anInt8928;
			anInt8972 = ((Class84_Sub1) this).anInt8865;
			anInt8934 = ((Class84_Sub1) this).anInt8939;
			aFloat8984 = ((Class84_Sub1) this).aFloat8945;
			aFloat8921 = ((Class84_Sub1) this).aFloat8920;
		} else {
			anInt8931 = 0;
			anInt8932 = 0;
			anInt8972 = aClass171_1190.method3754();
			anInt8934 = aClass171_1190.method3755();
			aFloat8984 = 0.0F;
			aFloat8921 = 1.0F;
		}
		method14787();
		((Class84_Sub1) this).aFloat8982 = (float) ((Class84_Sub1) this).anInt8865 / 2.0F;
		((Class84_Sub1) this).aFloat8916 = (float) ((Class84_Sub1) this).anInt8939 / 2.0F;
		((Class84_Sub1) this).aFloat8913 = ((float) ((Class84_Sub1) this).anInt8927 + ((Class84_Sub1) this).aFloat8982);
		((Class84_Sub1) this).aFloat8915 = ((float) ((Class84_Sub1) this).anInt8928 + ((Class84_Sub1) this).aFloat8916);
	}

	public void method1906(float f, float f_560_) {
		((Class84_Sub1) this).aFloat8945 = f;
		((Class84_Sub1) this).aFloat8920 = f_560_;
		method15116();
	}

	void method14976() {
		((Class84_Sub1) this).aClass372_9003.method6955();
		for (int i = 0; i < ((Class84_Sub1) this).aClass383Array8987.length; i++) {
			if (((Class84_Sub1) this).aClass383Array8987[i] != null && ((Class84_Sub1) this).aClass383Array8987[i].method7048())
				((Class84_Sub1) this).aClass383Array8987[i].method7039();
		}
		((Class84_Sub1) this).aClass386_9008 = new Class386(this);
		method15023();
		method14766();
		method14767();
		((Class84_Sub1) this).aClass386_9008.method7085(this);
		((Class84_Sub1) this).aClass305_8974 = new Class305(this, 1024);
	}

	abstract void method14977();

	abstract void method14978();

	public final void method1927(int i, int i_561_, int i_562_, int i_563_, int i_564_, int i_565_, Class134 class134, int i_566_, int i_567_) {
		/* empty */
	}

	final Class288 method14979() {
		if (((Class84_Sub1) this).aClass385_8976 == Class385.aClass385_5667)
			return aClass288_8950;
		return aClass288_8894;
	}

	final Class288 method14980() {
		if (((Class84_Sub1) this).aClass385_8976 == Class385.aClass385_5667)
			return aClass288_8950;
		return aClass288_8894;
	}

	final Class288 method14981() {
		return aClass288Array8963[anInt8961];
	}

	final Class288 method14982() {
		if (((Class84_Sub1) this).aClass385_8976 == Class385.aClass385_5667)
			return aClass288_8950;
		return aClass288_8894;
	}

	public Class346 method1934() {
		return ((Class84_Sub1) this).aClass346_8888;
	}

	final Class288 method14983() {
		if (((Class84_Sub1) this).aClass385_8976 == Class385.aClass385_5667)
			return ((Class84_Sub1) this).aClass288_8877;
		return aClass288_8894;
	}

	final void method14984() {
		((Class84_Sub1) this).aBool8900 = false;
	}

	abstract Interface39 method14985(Class172 class172, int i, int i_568_, boolean bool, float[] fs, int i_569_, int i_570_);

	final void method14986() {
		((Class84_Sub1) this).aBool8900 = false;
	}

	final void method14987() {
		((Class84_Sub1) this).aBool8900 = false;
	}

	final void method14988(Class392 class392, int i) {
		method14866(0, ((Class84_Sub1) this).anInterface41_8971);
		method14865(((Class84_Sub1) this).aClass363_9021);
		method14876(class392, 0, i);
	}

	Class288 method14989() {
		return ((Class84_Sub1) this).aClass288_8887;
	}

	Class288 method14990() {
		return ((Class84_Sub1) this).aClass288_8887;
	}

	abstract void method14991();

	Class346 method14992() {
		if (((Class84_Sub1) this).aClass385_8976 == Class385.aClass385_5667) {
			if (!((Class84_Sub1) this).aBool8900) {
				((Class84_Sub1) this).aClass346_8892.method6507(((Class84_Sub1) this).aClass346_8962);
				((Class84_Sub1) this).aClass346_8892.method6564(((Class84_Sub1) this).aClass346_8888);
				((Class84_Sub1) this).aClass288_8897.method5846(((Class84_Sub1) this).aClass346_8892);
				((Class84_Sub1) this).aBool8900 = true;
			}
			return ((Class84_Sub1) this).aClass346_8892;
		}
		return ((Class84_Sub1) this).aClass346_8962;
	}

	Class288 method14993() {
		if (((Class84_Sub1) this).aClass385_8976 == Class385.aClass385_5667) {
			if (!((Class84_Sub1) this).aBool8900)
				method14795();
			return ((Class84_Sub1) this).aClass288_8897;
		}
		return ((Class84_Sub1) this).aClass288_8887;
	}

	Class288 method14994() {
		if (((Class84_Sub1) this).aClass385_8976 == Class385.aClass385_5667) {
			if (!((Class84_Sub1) this).aBool8900)
				method14795();
			return ((Class84_Sub1) this).aClass288_8897;
		}
		return ((Class84_Sub1) this).aClass288_8887;
	}

	final Class288 method14995() {
		return aClass288_9009;
	}

	final Class288 method14996() {
		return aClass288_9009;
	}

	public abstract void method14997(Class288 class288);

	final void method14998() {
		if (((Class84_Sub1) this).aClass385_8976 != Class385.aClass385_5667) {
			((Class84_Sub1) this).aClass385_8976 = Class385.aClass385_5667;
			method14793();
			method14804();
			((Class84_Sub1) this).aClass288_8908 = ((Class84_Sub1) this).aClass288_8906;
			method14805();
			method15116();
			((Class84_Sub1) this).anInt9011 &= ~0x7;
		}
	}

	public abstract void method14999(Class288 class288);

	final void method15000() {
		if (((Class84_Sub1) this).aClass385_8976 != Class385.aClass385_5669) {
			Class385 class385 = ((Class84_Sub1) this).aClass385_8976;
			((Class84_Sub1) this).aClass385_8976 = Class385.aClass385_5669;
			if (class385 == Class385.aClass385_5667)
				method14793();
			((Class84_Sub1) this).aClass288_8908 = ((Class84_Sub1) this).aClass288_8907;
			method14805();
			method15116();
			((Class84_Sub1) this).anInt9011 &= ~0xf;
		}
	}

	final void method15001() {
		if (((Class84_Sub1) this).aClass385_8976 != Class385.aClass385_5668) {
			Class385 class385 = ((Class84_Sub1) this).aClass385_8976;
			((Class84_Sub1) this).aClass385_8976 = Class385.aClass385_5668;
			if (class385 == Class385.aClass385_5667)
				method14793();
			method14803();
			((Class84_Sub1) this).aClass288_8908 = ((Class84_Sub1) this).aClass288_8903;
			method14805();
			method15116();
			((Class84_Sub1) this).anInt9011 &= ~0x8;
		}
	}

	public final boolean method1879() {
		return true;
	}

	final void method15002() {
		method14846();
	}

	public final Class176 method2093(int i, int i_571_, int[][] is, int[][] is_572_, int i_573_, int i_574_, int i_575_) {
		return new Class176_Sub3(this, i_574_, i_575_, i, i_571_, is, is_572_, i_573_);
	}

	public final void method2244(int i, int i_576_, int i_577_, int i_578_, int i_579_, int i_580_, int i_581_) {
		i += 1.0F;
		i_576_ += 1.0F;
		i_577_ += 1.0F;
		i_578_ += 1.0F;
		float f = (float) (i_577_ - i);
		float f_582_ = (float) (i_578_ - i_576_);
		float f_583_ = 1.0F / (float) Math.sqrt((double) (f * f + f_582_ * f_582_));
		f *= f_583_;
		f_582_ *= f_583_;
		i -= f;
		i_576_ -= f_582_;
		float f_584_ = -f_582_;
		float f_585_ = f;
		f_584_ *= 0.5F * (float) i_580_;
		f_585_ *= 0.5F * (float) i_580_;
		((Class84_Sub1) this).aClass135_Sub2_8996.method3120((float) i - f_584_, (float) i_576_ - f_585_, (float) i_577_ - f_584_, (float) i_578_ - f_585_, (float) i + f_584_, (float) i_576_ + f_585_, 0, i_579_, i_581_);
	}

	void method1875() {
		if (!((Class84_Sub1) this).aBool9007) {
			method14840();
			((Class84_Sub1) this).aClass381_8968.method7018();
			for (Class587 class587 = ((Class84_Sub1) this).aClass413_8882.method7361(1615306850); class587 != null; class587 = ((Class84_Sub1) this).aClass413_8882.method7344(-329528386))
				((Class587_Sub25_Sub2) class587).method16549();
			Class530.method11767(false, true, (short) -26163);
			for (int i = 0; i < ((Class84_Sub1) this).aClass368Array9016.length; i++) {
				if (((Class84_Sub1) this).aClass368Array9016[i] != null) {
					((Class84_Sub1) this).aClass368Array9016[i].method6923();
					((Class84_Sub1) this).aClass368Array9016[i] = null;
				}
			}
			for (int i = 0; i < ((Class84_Sub1) this).aClass383Array8987.length; i++) {
				if (((Class84_Sub1) this).aClass383Array8987[i] != null) {
					((Class84_Sub1) this).aClass383Array8987[i].method7065();
					((Class84_Sub1) this).aClass383Array8987[i] = null;
				}
			}
			method14897();
			method1883(0);
			((Class84_Sub1) this).aBool9007 = true;
		}
	}

	final void method15003() {
		if (((Class84_Sub1) this).aClass385_8976 != Class385.aClass385_5667) {
			((Class84_Sub1) this).aClass385_8976 = Class385.aClass385_5667;
			method14793();
			method14804();
			((Class84_Sub1) this).aClass288_8908 = ((Class84_Sub1) this).aClass288_8906;
			method14805();
			method15116();
			((Class84_Sub1) this).anInt9011 &= ~0x7;
		}
	}

	final void method15004() {
		method14866(0, ((Class84_Sub1) this).anInterface41_9017);
		method14865(((Class84_Sub1) this).aClass363_8977);
		method14876(Class392.aClass392_5711, 0, 1);
	}

	final void method15005() {
		((Class84_Sub1) this).aBool8905 = false;
		method14804();
		if (((Class84_Sub1) this).aClass385_8976 == Class385.aClass385_5667)
			method14805();
	}

	abstract void method15006(boolean bool);

	final void method15007() {
		if (!((Class84_Sub1) this).aBool8986) {
			int i;
			int i_586_;
			if (aClass171_1190 != null) {
				i_586_ = aClass171_1190.method3754();
				i = aClass171_1190.method3755();
			} else {
				i = 0;
				i_586_ = 0;
			}
			Class288 class288 = ((Class84_Sub1) this).aClass288_8903;
			if (i_586_ != 0 && i != 0)
				class288.method5757(0.0F, (float) i_586_, 0.0F, (float) i, -1.0F, 1.0F);
			else
				class288.method5744();
			((Class84_Sub1) this).aClass288_8904.method5825(class288);
			method14799(((Class84_Sub1) this).aClass288_8904);
			((Class84_Sub1) this).aBool8986 = true;
		}
	}

	final void method15008() {
		if (!((Class84_Sub1) this).aBool8905)
			((Class84_Sub1) this).aBool8905 = true;
	}

	final void method15009() {
		aClass288_8909.method5825(((Class84_Sub1) this).aClass288_8908);
		method14799(aClass288_8909);
		aFloat8922 = ((aClass288_8909.aFloatArray4285[14] - aClass288_8909.aFloatArray4285[15]) / (aClass288_8909.aFloatArray4285[11] - aClass288_8909.aFloatArray4285[10]));
		aFloat8911 = (-aClass288_8909.aFloatArray4285[14] / aClass288_8909.aFloatArray4285[10]);
		method14858();
	}

	final void method15010() {
		aClass288_8909.method5825(((Class84_Sub1) this).aClass288_8908);
		method14799(aClass288_8909);
		aFloat8922 = ((aClass288_8909.aFloatArray4285[14] - aClass288_8909.aFloatArray4285[15]) / (aClass288_8909.aFloatArray4285[11] - aClass288_8909.aFloatArray4285[10]));
		aFloat8911 = (-aClass288_8909.aFloatArray4285[14] / aClass288_8909.aFloatArray4285[10]);
		method14858();
	}

	public final void method2112(Class346 class346) {
		((Class84_Sub1) this).aClass346_8888 = class346;
		aClass288_8950.method5846(((Class84_Sub1) this).aClass346_8888);
		((Class84_Sub1) this).aClass346_8936.method6507(class346);
		((Class84_Sub1) this).aClass346_8936.method6549();
		((Class84_Sub1) this).aClass288_8877.method5846(((Class84_Sub1) this).aClass346_8936);
		method14792();
		if (((Class84_Sub1) this).aClass385_8976 == Class385.aClass385_5667)
			method14793();
	}

	public final Class288 method1920() {
		return ((Class84_Sub1) this).aClass288_9029;
	}

	public void method1883(int i) {
		if (((Class84_Sub1) this).aClass381_8968 != null)
			((Class84_Sub1) this).aClass381_8968.method7022();
		anInt9005 = i & 0x7fffffff;
	}

	final void method15011(boolean bool) {
		if (bool != aBool8869) {
			aBool8869 = bool;
			method14881();
			((Class84_Sub1) this).anInt9011 &= ~0xf;
		}
	}

	abstract Interface39 method15012(Class172 class172, Class96 class96, int i, int i_587_);

	final void method15013() {
		method14846();
	}

	public final void method2045(int i, int i_588_, int i_589_, int i_590_, int i_591_, int i_592_, byte[] is, int i_593_, int i_594_) {
		/* empty */
	}

	abstract void method15014();

	public final void method2186(int i, int i_595_, int i_596_, int i_597_, int i_598_) {
		method1913(i, i_595_, i, i_595_ + i_596_, i_597_, i_598_);
	}

	public void method1981(float f, float f_599_, float f_600_, float[] fs) {
		float f_601_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[15] + ((Class84_Sub1) this).aClass288_9001.aFloatArray4285[3] * f + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[7] * f_599_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[11] * f_600_));
		float f_602_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[12] + ((Class84_Sub1) this).aClass288_9001.aFloatArray4285[0] * f + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[4] * f_599_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[8] * f_600_));
		float f_603_ = (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[13] + ((Class84_Sub1) this).aClass288_9001.aFloatArray4285[1] * f + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[5] * f_599_) + (((Class84_Sub1) this).aClass288_9001.aFloatArray4285[9] * f_600_));
		float f_604_ = (aClass288_8950.aFloatArray4285[14] + aClass288_8950.aFloatArray4285[2] * f + aClass288_8950.aFloatArray4285[6] * f_599_ + aClass288_8950.aFloatArray4285[10] * f_600_);
		fs[0] = (((Class84_Sub1) this).aFloat8913 + ((Class84_Sub1) this).aFloat8982 * f_602_ / f_601_);
		fs[1] = (((Class84_Sub1) this).aFloat8915 + ((Class84_Sub1) this).aFloat8916 * f_603_ / f_601_);
		fs[2] = f_604_;
	}

	abstract void method15015();

	public final void method2140(int i, Class587_Sub12[] class587_sub12s) {
		for (int i_605_ = 0; i_605_ < i; i_605_++)
			aClass587_Sub12Array8954[i_605_] = class587_sub12s[i_605_];
		anInt8896 = i;
	}

	abstract void method15016();

	abstract void method15017();

	abstract void method15018();

	abstract void method15019();

	public final void method2109(Class160 class160) {
		((Class84_Sub1) this).aClass386_9008.method7087(this, class160);
	}

	public final boolean method2130() {
		if (((Class84_Sub1) this).aClass383Array8987[1] != null && !((Class84_Sub1) this).aClass383Array8987[1].method7048()) {
			boolean bool = ((Class84_Sub1) this).aClass372_9003.method6956(((Class84_Sub1) this).aClass383Array8987[1]);
			if (bool)
				((Class84_Sub1) this).aClass381_8968.method7018();
			return bool;
		}
		return false;
	}

	final void method15020() {
		if (method14755())
			method14820();
		anInt8955 = anInt8896;
	}

	abstract void method15021();

	abstract boolean method15022(Class172 class172, Class96 class96);

	final void method15023() {
		((Class84_Sub1) this).anInterface41_8971 = method14973(false);
		int i = 160;
		((Class84_Sub1) this).anInterface41_8971.method289(i, 32);
		aByteBuffer8876.clear();
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putInt(-1);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putInt(-1);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putInt(-1);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putInt(-1);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(1.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putInt(-1);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		aByteBuffer8876.putFloat(0.0F);
		((Class84_Sub1) this).anInterface41_8971.method302(0, aByteBuffer8876.position(), aLong8893);
		((Class84_Sub1) this).aClass363_9021 = method14864(new Class384[] { new Class384(new Class371[] { Class371.aClass371_5581, Class371.aClass371_5570, Class371.aClass371_5568, Class371.aClass371_5568 }) });
	}

	abstract boolean method15024(Class172 class172, Class96 class96);

	public final void method15025(int i) {
		if (anInt8961 != i) {
			anInt8961 = i;
			method14847();
		}
	}

	public final void method1978(int i, Class98 class98) {
		if (!((Class84_Sub1) this).aBool8989)
			throw new RuntimeException("");
		((Class84_Sub1) this).anInt8991 = i;
		((Class84_Sub1) this).aClass98_8985 = class98;
		if (((Class84_Sub1) this).aBool8990) {
			((Class84_Sub1) this).aClass368Array9016[3].method6928();
			((Class84_Sub1) this).aClass368Array9016[3].method6922();
		}
	}

	Class288 method15026() {
		if (((Class84_Sub1) this).aClass385_8976 == Class385.aClass385_5667) {
			if (!((Class84_Sub1) this).aBool8900)
				method14795();
			return ((Class84_Sub1) this).aClass288_8897;
		}
		return ((Class84_Sub1) this).aClass288_8887;
	}

	final Interface39 method15027(int i, int i_606_, boolean bool, int[] is) {
		return method14829(i, i_606_, bool, is, 0, 0);
	}

	final Class288 method15028() {
		return aClass288_8909;
	}

	abstract void method15029();

	final Interface39 method15030(Class172 class172, int i, int i_607_, boolean bool, byte[] is) {
		return method14827(class172, i, i_607_, bool, is, 0, 0);
	}

	final Interface39 method15031(Class172 class172, int i, int i_608_, boolean bool, byte[] is) {
		return method14827(class172, i, i_608_, bool, is, 0, 0);
	}

	final Interface39 method15032(Class172 class172, int i, int i_609_, boolean bool, byte[] is) {
		return method14827(class172, i, i_609_, bool, is, 0, 0);
	}

	public final boolean method1881() {
		return true;
	}

	abstract void method15033();

	abstract Interface39 method15034(Class172 class172, int i, int i_610_, boolean bool, byte[] is, int i_611_, int i_612_);

	abstract Interface39 method15035(Class172 class172, int i, int i_613_, boolean bool, byte[] is, int i_614_, int i_615_);

	abstract void method15036(int i);

	abstract Interface39 method15037(Class172 class172, int i, int i_616_, boolean bool, float[] fs, int i_617_, int i_618_);

	abstract void method15038(Interface43 interface43);

	abstract Interface39 method15039(int i, int i_619_, boolean bool, int[] is, int i_620_, int i_621_);

	abstract Interface39 method15040(int i, int i_622_, boolean bool, int[] is, int i_623_, int i_624_);

	abstract Interface39 method15041(int i, int i_625_, boolean bool, int[] is, int i_626_, int i_627_);

	abstract Interface32 method15042(Class172 class172, Class96 class96, int i, int i_628_);

	public final int method15043() {
		return anInt8961;
	}

	public abstract float method15044();

	public final void method15045(int i) {
		if (anInt8961 != i) {
			anInt8961 = i;
			method14847();
		}
	}

	public final int method2191() {
		return anInt8884 + anInt8883 + anInt8929;
	}

	public final Class288 method1982() {
		return ((Class84_Sub1) this).aClass288_8906;
	}

	public final void method15046(Interface33 interface33) {
		if (((Class84_Sub1) this).anInterface33Array8891[anInt8961] != interface33) {
			((Class84_Sub1) this).anInterface33Array8891[anInt8961] = interface33;
			if (interface33 != null)
				interface33.method190();
			else
				anInterface39_8886.method190();
			((Class84_Sub1) this).anInt9011 &= ~0x1;
		}
	}

	public final void method15047(Interface33 interface33) {
		if (((Class84_Sub1) this).anInterface33Array8891[anInt8961] != interface33) {
			((Class84_Sub1) this).anInterface33Array8891[anInt8961] = interface33;
			if (interface33 != null)
				interface33.method190();
			else
				anInterface39_8886.method190();
			((Class84_Sub1) this).anInt9011 &= ~0x1;
		}
	}

	public abstract void method15048();

	public abstract void method15049();

	public abstract void method15050();

	public void method1964() {
		((Class84_Sub1) this).anInt8927 = 0;
		((Class84_Sub1) this).anInt8928 = 0;
		((Class84_Sub1) this).anInt8865 = aClass171_1190.method3754();
		((Class84_Sub1) this).anInt8939 = aClass171_1190.method3755();
		method15116();
	}

	public final void method15051(int i) {
		switch (i) {
		case 0:
			method14863(Class391.aClass391_5704, Class391.aClass391_5704);
			break;
		case 3:
			method14863(Class391.aClass391_5705, Class391.aClass391_5704);
			break;
		case 1:
			method14863(Class391.aClass391_5708, Class391.aClass391_5708);
			break;
		case 2:
			method14863(Class391.aClass391_5707, Class391.aClass391_5708);
			break;
		case 4:
			method14863(Class391.aClass391_5706, Class391.aClass391_5706);
			break;
		}
	}

	public final void method15052(Class391 class391, Class391 class391_629_) {
		boolean bool = false;
		if (aClass391Array8965[anInt8961] != class391) {
			aClass391Array8965[anInt8961] = class391;
			method15053();
			bool = true;
		}
		if (aClass391Array9006[anInt8961] != class391_629_) {
			aClass391Array9006[anInt8961] = class391_629_;
			method14848();
			bool = true;
		}
		if (bool)
			((Class84_Sub1) this).anInt9011 &= ~0xd;
	}

	public final Class135 method1936(int[] is, int i, int i_630_, int i_631_, int i_632_, boolean bool) {
		return new Class135_Sub2(this, i_631_, i_632_, is, i, i_630_);
	}

	abstract void method15053();

	public final void method15054(int i, Class365 class365) {
		method14838(i, class365, false, false);
	}

	abstract void method15055(int i, Class365 class365, boolean bool, boolean bool_633_);

	abstract void method15056(int i, Class365 class365, boolean bool, boolean bool_634_);

	final void method15057() {
		((Class84_Sub1) this).aBool8900 = false;
	}

	public final void method1966(int i, Class587_Sub12[] class587_sub12s) {
		for (int i_635_ = 0; i_635_ < i; i_635_++)
			aClass587_Sub12Array8954[i_635_] = class587_sub12s[i_635_];
		anInt8896 = i;
	}

	public final void method15058(int i, Class365 class365) {
		method14798(i, class365, false);
	}

	public final Class288 method2115() {
		return ((Class84_Sub1) this).aClass288_8906;
	}

	public void method15059(int i) {
		if (i != anInt8958) {
			anInt8958 = i;
			method14845();
		}
	}

	public final void method1889(Class587_Sub25 class587_sub25) {
		((Class84_Sub1) this).aNativeHeap8881 = (((Class587_Sub25_Sub2) (Class587_Sub25_Sub2) class587_sub25).aNativeHeap10339);
	}

	public void method15060(int i) {
		if (i != anInt8958) {
			anInt8958 = i;
			method14845();
		}
	}

	public void method15061(int i) {
		if (i != anInt8958) {
			anInt8958 = i;
			method14845();
		}
	}

	public void method15062(int i) {
		if (i != anInt8958) {
			anInt8958 = i;
			method14845();
		}
	}

	final Class288 method15063() {
		return aClass288Array8963[anInt8961];
	}

	public final Class587_Sub25 method2173(int i) {
		Class587_Sub25_Sub2 class587_sub25_sub2 = new Class587_Sub25_Sub2(i);
		((Class84_Sub1) this).aClass413_8882.method7337(class587_sub25_sub2, -1078828205);
		return class587_sub25_sub2;
	}

	public final Class135 method2038(int i, int i_636_, boolean bool, boolean bool_637_) {
		return new Class135_Sub2(this, i, i_636_, bool, bool_637_);
	}

	public final Class288 method15064() {
		return aClass288Array8963[anInt8961];
	}

	public final void method15065(int i, Class365 class365) {
		method14838(i, class365, false, false);
	}

	public final void method15066(Class367 class367) {
		aClass367Array8964[anInt8961] = class367;
		method14844();
	}

	final void method15067() {
		if (aClass367Array8964[anInt8961] != Class367.aClass367_5540) {
			aClass367Array8964[anInt8961] = Class367.aClass367_5540;
			aClass288Array8963[anInt8961].method5744();
			method14844();
		}
	}

	Class370 method15068() {
		if (((Class84_Sub1) this).aClass305_8974 == null)
			return Class370.aClass370_5567;
		return ((Class84_Sub1) this).aClass305_8974.method6075();
	}

	public void method15069(Interface40 interface40) {
		((Class84_Sub1) this).aClass610_8864.method12988(interface40, (byte) 40);
	}

	abstract void method15070();

	public abstract Class57 method15071(String string);

	public void method1953(int i, int i_638_, int i_639_, int i_640_, int i_641_, int i_642_, Class134 class134, int i_643_, int i_644_, int i_645_, int i_646_, int i_647_) {
		/* empty */
	}

	abstract void method15072();

	abstract void method15073();

	abstract void method15074();

	Class370 method15075() {
		if (((Class84_Sub1) this).aClass305_8974 == null)
			return Class370.aClass370_5567;
		return ((Class84_Sub1) this).aClass305_8974.method6075();
	}

	abstract void method15076();

	abstract void method15077();

	final void method15078() {
		if (((Class84_Sub1) this).aClass368_8966 != null)
			((Class84_Sub1) this).aClass368_8966.method6922();
		method14859();
	}

	abstract void method15079();

	abstract void method15080();

	abstract void method15081();

	public final void method1943() {
		((Class84_Sub1) this).aClass372_9003.method6960();
	}

	public final void method1988(Class160 class160) {
		((Class84_Sub1) this).aClass386_9008.method7087(this, class160);
	}

	abstract void method15082();

	abstract void method15083();

	Class98 method15084() {
		return ((Class84_Sub1) this).aClass98_8985;
	}

	public final void method2175(int i) {
		/* empty */
	}

	final void method15085(int i) {
		if (anInt9032 != i) {
			anInt9032 = i;
			method14854();
		}
	}

	final void method15086(int i) {
		if (anInt9032 != i) {
			anInt9032 = i;
			method14854();
		}
	}

	final void method15087(int i) {
		if (anInt9032 != i) {
			anInt9032 = i;
			method14854();
		}
	}

	abstract void method15088();

	abstract void method15089(int i);

	abstract void method15090(int i);

	abstract void method15091();

	public final void method15092() {
		if (((Class84_Sub1) this).anInt9011 != 2) {
			method14800();
			method14856(false);
			method14813(false);
			method14807(false);
			method14808(false);
			((Class84_Sub1) this).anInt9011 = 2;
		}
	}

	abstract void method15093();

	abstract void method15094();

	abstract void method15095();

	abstract Interface38 method15096(Class172 class172, int i, int i_648_, int i_649_, boolean bool, byte[] is);

	abstract void method15097();

	abstract void method15098();

	final void method15099(boolean bool) {
		if (bool != aBool8993) {
			aBool8993 = bool;
			method14860();
			((Class84_Sub1) this).anInt9011 &= ~0xf;
		}
	}

	final void method15100(boolean bool) {
		if (bool != aBool8993) {
			aBool8993 = bool;
			method14860();
			((Class84_Sub1) this).anInt9011 &= ~0xf;
		}
	}

	final void method15101() {
		if (((Class84_Sub1) this).aClass368_8966 != null)
			((Class84_Sub1) this).aClass368_8966.method6922();
		method14859();
	}

	final void method15102() {
		if (((Class84_Sub1) this).aClass368_8966 != null)
			((Class84_Sub1) this).aClass368_8966.method6922();
		method14859();
	}

	public void method1986() {
		if (((Class84_Sub1) this).aClass305_8974 != null)
			((Class84_Sub1) this).aClass305_8974.method6077();
	}

	final void method15103() {
		if (((Class84_Sub1) this).aClass368_8966 != null)
			((Class84_Sub1) this).aClass368_8966.method6922();
		method14859();
	}

	void method15104() {
		method14801();
		method14802();
		method15146();
		method1904();
		method1917();
	}

	public final void method15105(Interface33 interface33) {
		if (((Class84_Sub1) this).anInterface33Array8891[anInt8961] != interface33) {
			((Class84_Sub1) this).anInterface33Array8891[anInt8961] = interface33;
			if (interface33 != null)
				interface33.method190();
			else
				anInterface39_8886.method190();
			((Class84_Sub1) this).anInt9011 &= ~0x1;
		}
	}

	final Interface39 method15106(int i, int i_650_, boolean bool, int[] is) {
		return method14829(i, i_650_, bool, is, 0, 0);
	}

	final Class288 method15107() {
		return aClass288Array8963[anInt8961];
	}

	abstract Interface41 method15108(boolean bool);

	abstract Interface41 method15109(boolean bool);

	public final void method15110() {
		((Class84_Sub1) this).anInterface33Array8891 = new Interface33[anInt9010];
		aClass288Array8963 = new Class288[anInt9010];
		aClass367Array8964 = new Class367[anInt9010];
		aClass391Array8965 = new Class391[anInt9010];
		aClass391Array9006 = new Class391[anInt9010];
		for (int i = 0; i < anInt9010; i++) {
			aClass391Array9006[i] = Class391.aClass391_5704;
			aClass391Array8965[i] = Class391.aClass391_5704;
			aClass367Array8964[i] = Class367.aClass367_5540;
			aClass288Array8963[i] = new Class288();
		}
		aClass587_Sub12Array8954 = new Class587_Sub12[anInt8889 - 2];
		int[] is = { -1 };
		anInterface39_8886 = method14829(1, 1, false, is, 0, 0);
		is[0] = -16777216;
		((Class84_Sub1) this).anInterface39_8970 = method14829(1, 1, false, is, 0, 0);
		method1933(new Class587_Sub25_Sub2(262144));
		((Class84_Sub1) this).aClass363_8969 = method14864(new Class384[] { new Class384(new Class371[] { Class371.aClass371_5581, Class371.aClass371_5568 }) });
		((Class84_Sub1) this).aClass363_9025 = method14864(new Class384[] { new Class384(new Class371[] { Class371.aClass371_5581, Class371.aClass371_5570 }) });
		((Class84_Sub1) this).aClass363_9023 = method14864(new Class384[] { new Class384(Class371.aClass371_5581), new Class384(Class371.aClass371_5570), new Class384(Class371.aClass371_5568), new Class384(Class371.aClass371_5569) });
		((Class84_Sub1) this).aClass363_9022 = method14864(new Class384[] { new Class384(Class371.aClass371_5581), new Class384(Class371.aClass371_5570), new Class384(Class371.aClass371_5568) });
		for (int i = 0; i < 7; i++) {
			((Class84_Sub1) this).aClass163_Sub2Array8918[i] = new Class163_Sub2(this, 0, 0, false, false);
			((Class84_Sub1) this).aClass163_Sub2Array9028[i] = new Class163_Sub2(this, 0, 0, true, true);
		}
		method14762();
		((Class84_Sub1) this).anInterface43_9026 = method14862(true);
		method14763();
		method1898();
		method1917();
		method1903();
		((Class84_Sub1) this).aClass135_Sub2_8996 = new Class135_Sub2(this, anInterface39_8886);
		((Class84_Sub1) this).aClass135_Sub2_8863 = new Class135_Sub2(this, ((Class84_Sub1) this).anInterface39_8970);
		method1912(3, 0);
	}

	public final boolean method1995() {
		return true;
	}

	public abstract void method15111(int i, Interface41 interface41);

	public abstract void method15112(int i, Interface41 interface41);

	abstract void method15113();

	public final int method15114() {
		return anInt8961;
	}

	abstract void method15115(Interface43 interface43);

	final void method15116() {
		if (((Class84_Sub1) this).aClass385_8976 == Class385.aClass385_5667) {
			anInt8931 = ((Class84_Sub1) this).anInt8927;
			anInt8932 = ((Class84_Sub1) this).anInt8928;
			anInt8972 = ((Class84_Sub1) this).anInt8865;
			anInt8934 = ((Class84_Sub1) this).anInt8939;
			aFloat8984 = ((Class84_Sub1) this).aFloat8945;
			aFloat8921 = ((Class84_Sub1) this).aFloat8920;
		} else {
			anInt8931 = 0;
			anInt8932 = 0;
			anInt8972 = aClass171_1190.method3754();
			anInt8934 = aClass171_1190.method3755();
			aFloat8984 = 0.0F;
			aFloat8921 = 1.0F;
		}
		method14787();
		((Class84_Sub1) this).aFloat8982 = (float) ((Class84_Sub1) this).anInt8865 / 2.0F;
		((Class84_Sub1) this).aFloat8916 = (float) ((Class84_Sub1) this).anInt8939 / 2.0F;
		((Class84_Sub1) this).aFloat8913 = ((float) ((Class84_Sub1) this).anInt8927 + ((Class84_Sub1) this).aFloat8982);
		((Class84_Sub1) this).aFloat8915 = ((float) ((Class84_Sub1) this).anInt8928 + ((Class84_Sub1) this).aFloat8916);
	}

	final void method15117() {
		method14866(0, ((Class84_Sub1) this).anInterface41_9017);
		method14865(((Class84_Sub1) this).aClass363_8977);
		method14876(Class392.aClass392_5711, 0, 1);
	}

	final void method15118() {
		method14866(0, ((Class84_Sub1) this).anInterface41_9017);
		method14865(((Class84_Sub1) this).aClass363_8977);
		method14876(Class392.aClass392_5711, 0, 1);
	}

	final void method15119() {
		method14866(0, ((Class84_Sub1) this).anInterface41_9017);
		method14865(((Class84_Sub1) this).aClass363_8977);
		method14876(Class392.aClass392_5711, 0, 1);
	}

	final void method15120() {
		method14866(0, ((Class84_Sub1) this).anInterface41_9017);
		method14865(((Class84_Sub1) this).aClass363_8977);
		method14876(Class392.aClass392_5711, 0, 1);
	}

	final void method15121(Class392 class392, int i) {
		method14866(0, ((Class84_Sub1) this).anInterface41_8971);
		method14865(((Class84_Sub1) this).aClass363_9021);
		method14876(class392, 0, i);
	}

	final void method15122() {
		((Class84_Sub1) this).aBool8986 = false;
		if (((Class84_Sub1) this).aClass385_8976 == Class385.aClass385_5668) {
			method14803();
			method14805();
		}
	}

	final void method15123(Class392 class392, int i) {
		method14866(0, ((Class84_Sub1) this).anInterface41_8971);
		method14865(((Class84_Sub1) this).aClass363_9021);
		method14876(class392, 0, i);
	}

	public abstract void method15124(Class392 class392, int i, int i_651_);

	abstract void method15125();

	public final void method2188(Class288 class288) {
		((Class84_Sub1) this).aClass288_8906.method5825(class288);
		method14792();
		if (((Class84_Sub1) this).aClass385_8976 == Class385.aClass385_5667)
			method14805();
	}

	abstract void method15126(Interface43 interface43, Class392 class392, int i, int i_652_, int i_653_, int i_654_);

	final void method2161(float f, float f_655_, float f_656_, float f_657_, float f_658_, float f_659_) {
		Class383_Sub1.aFloat10007 = f;
		Class383_Sub1.aFloat10021 = f_655_;
		Class383_Sub1.aFloat10006 = f_656_;
		Class383_Sub1.aFloat10023 = f_659_;
	}

	public final void method15127() {
		if (((Class84_Sub1) this).anInt9011 != 2) {
			method14800();
			method14856(false);
			method14813(false);
			method14807(false);
			method14808(false);
			((Class84_Sub1) this).anInt9011 = 2;
		}
	}

	public abstract void method15128(Class288 class288);

	final void method15129() {
		if (((Class84_Sub1) this).anInt9011 != 8) {
			method14772();
			method14856(true);
			method14807(true);
			method14808(true);
			method14851(1);
			((Class84_Sub1) this).anInt9011 = 8;
		}
	}

	final void method15130() {
		if (((Class84_Sub1) this).anInt9011 != 8) {
			method14772();
			method14856(true);
			method14807(true);
			method14808(true);
			method14851(1);
			((Class84_Sub1) this).anInt9011 = 8;
		}
	}

	public final void method15131(int i, Class365 class365) {
		method14798(i, class365, false);
	}

	void method15132() {
		method14875(7);
		method14764();
	}

	public final void method2049(int i, int i_660_, int i_661_, int i_662_, int i_663_, int i_664_, byte[] is, int i_665_, int i_666_) {
		/* empty */
	}

	abstract void method15133();

	abstract void method15134();

	public final void method15135(int i, Class365 class365) {
		method14798(i, class365, false);
	}

	abstract void method15136();

	public void method2184() {
		((Class84_Sub1) this).anInt8927 = 0;
		((Class84_Sub1) this).anInt8928 = 0;
		((Class84_Sub1) this).anInt8865 = aClass171_1190.method3754();
		((Class84_Sub1) this).anInt8939 = aClass171_1190.method3755();
		method15116();
	}

	abstract Interface38 method15137(Class172 class172, int i, int i_667_, int i_668_, boolean bool, byte[] is);

	abstract Interface38 method15138(Class172 class172, int i, int i_669_, int i_670_, boolean bool, byte[] is);

	public final void method2107(Class160 class160) {
		((Class84_Sub1) this).aClass386_9008.method7087(this, class160);
	}

	abstract void method15139(int i, Class365 class365, boolean bool);

	public final int method1951(int i, int i_671_) {
		return i | i_671_;
	}

	abstract void method15140();

	abstract Interface43 method15141(boolean bool);

	public abstract void method15142(Class392 class392, int i, int i_672_, int i_673_, int i_674_);

	public abstract void method15143(Class392 class392, int i, int i_675_, int i_676_, int i_677_);

	public abstract Class57 method15144(String string);

	abstract boolean method15145(Class172 class172, Class96 class96);

	final void method15146() {
		if (((Class84_Sub1) this).aClass385_8976 != Class385.aClass385_5669) {
			Class385 class385 = ((Class84_Sub1) this).aClass385_8976;
			((Class84_Sub1) this).aClass385_8976 = Class385.aClass385_5669;
			if (class385 == Class385.aClass385_5667)
				method14793();
			((Class84_Sub1) this).aClass288_8908 = ((Class84_Sub1) this).aClass288_8907;
			method14805();
			method15116();
			((Class84_Sub1) this).anInt9011 &= ~0xf;
		}
	}

	abstract void method15147();
}
