/* Class178_Sub2 - Decompiled by JODE
 * Visit http://jode.sourceforge.net/
 */
package com.jagex;

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 Class178_Sub2 extends Class178 {
	protected int anInt9524;
	Class74 aClass74_9525 = new Class74();
	protected boolean aBool9526;
	static final int anInt9527 = 1;
	protected boolean aBool9528;
	static final int anInt9529 = 4;
	public int anInt9530;
	static final int anInt9531 = 16;
	static final int anInt9532 = 55;
	static final int anInt9533 = 7;
	protected static final int anInt9534 = 100663296;
	Class472 aClass472_9535;
	static Class441 aClass441_9536;
	int[] anIntArray9537;
	protected Unsafe anUnsafe9538;
	public ByteBuffer aByteBuffer9539;
	public long aLong9540;
	static final int anInt9541 = 4194304;
	Class435 aClass435_9542;
	Class353 aClass353_9543;
	NativeHeap aNativeHeap9544;
	static final int anInt9545 = 1;
	static final int anInt9546 = 8;
	protected Class441[] aClass441Array9547;
	protected boolean aBool9548;
	protected boolean aBool9549;
	Class441 aClass441_9550;
	Class435 aClass435_9551;
	Class435 aClass435_9552;
	static final int anInt9553 = 128;
	Class441 aClass441_9554;
	Class441 aClass441_9555;
	public int anInt9556;
	Class441 aClass441_9557;
	protected boolean aBool9558;
	Class435 aClass435_9559;
	protected Class441 aClass441_9560;
	Class441 aClass441_9561;
	Class437 aClass437_9562;
	protected boolean aBool9563;
	boolean aBool9564;
	Class346 aClass346_9565;
	protected boolean aBool9566;
	Class441 aClass441_9567;
	Class345 aClass345_9568;
	boolean aBool9569;
	Class441 aClass441_9570;
	Class441 aClass441_9571;
	public Class441 aClass441_9572;
	protected boolean aBool9573;
	Class441 aClass441_9574;
	public Class441 aClass441_9575;
	float[][] aFloatArrayArray9576;
	static Object anObject9577 = new Object();
	float aFloat9578;
	float aFloat9579;
	float aFloat9580;
	protected float aFloat9581;
	protected float[] aFloatArray9582;
	float aFloat9583;
	float aFloat9584;
	protected float aFloat9585;
	Class349 aClass349_9586;
	protected int anInt9587;
	protected int anInt9588;
	Class354 aClass354_9589;
	protected int anInt9590;
	int anInt9591;
	int anInt9592;
	int anInt9593;
	int anInt9594;
	Class167_Sub2[] aClass167_Sub2Array9595;
	Class360 aClass360_9596;
	protected int anInt9597;
	protected int anInt9598;
	boolean aBool9599;
	protected int anInt9600;
	int anInt9601;
	protected int anInt9602;
	float aFloat9603;
	protected boolean aBool9604;
	protected float aFloat9605;
	protected boolean aBool9606;
	int anInt9607;
	public float[] aFloatArray9608;
	protected boolean aBool9609;
	float[] aFloatArray9610;
	float[] aFloatArray9611;
	static final int anInt9612 = 4;
	Class327 aClass327_9613;
	public float aFloat9614;
	int anInt9615;
	Class340_Sub1_Sub2 aClass340_Sub1_Sub2_9616;
	public float aFloat9617;
	protected float aFloat9618;
	protected int anInt9619;
	protected int anInt9620;
	Class441 aClass441_9621;
	float[] aFloatArray9622;
	int anInt9623;
	int anInt9624;
	int anInt9625;
	protected int anInt9626;
	Interface43[] anInterface43Array9627;
	protected int anInt9628;
	public Class441 aClass441_9629;
	protected Class374[] aClass374Array9630;
	protected Class374[] aClass374Array9631;
	protected int anInt9632;
	protected int anInt9633;
	Class441 aClass441_9634;
	Interface37 anInterface37_9635;
	Class148_Sub3 aClass148_Sub3_9636;
	Class148_Sub3 aClass148_Sub3_9637;
	boolean aBool9638;
	Class356 aClass356_9639;
	Class340 aClass340_9640;
	Class340[] aClass340Array9641;
	Class329 aClass329_9642;
	protected float aFloat9643;
	Class311 aClass311_9644;
	Class326 aClass326_9645;
	Class340_Sub1_Sub2 aClass340_Sub1_Sub2_9646;
	protected boolean aBool9647;
	public int anInt9648;
	protected int anInt9649;
	Class441 aClass441_9650;
	static final int anInt9651 = 2;
	static final int anInt9652 = 3;
	protected int anInt9653;
	Class350[] aClass350Array9654;
	Class185_Sub2 aClass185_Sub2_9655;
	boolean aBool9656;
	boolean aBool9657;
	boolean aBool9658;
	Class163 aClass163_9659;
	protected boolean aBool9660;
	public int anInt9661;
	protected int anInt9662;
	protected int anInt9663;
	protected int anInt9664;
	protected Class377[] aClass377Array9665;
	protected Class363 aClass363_9666;
	int anInt9667;
	static final int anInt9668 = 2;
	public Interface37 anInterface37_9669;
	int anInt9670;
	protected Class523_Sub20[] aClass523_Sub20Array9671;
	protected byte aByte9672;
	protected int anInt9673;
	protected boolean aBool9674;
	protected boolean aBool9675;
	int anInt9676;
	Class435 aClass435_9677;
	Class335 aClass335_9678;
	protected boolean aBool9679;
	public int anInt9680;
	protected float aFloat9681;
	public boolean aBool9682;
	protected float aFloat9683;
	protected int anInt9684;
	protected boolean aBool9685;
	protected boolean aBool9686;
	public boolean aBool9687;
	protected boolean aBool9688;
	public float aFloat9689;
	Interface36 anInterface36_9690;
	Interface36 anInterface36_9691;
	Interface36 anInterface36_9692;
	Class345 aClass345_9693;
	Class345 aClass345_9694;
	Class345 aClass345_9695;
	Class340_Sub1_Sub1 aClass340_Sub1_Sub1_9696;
	Class345 aClass345_9697;
	Class345 aClass345_9698;
	Interface40 anInterface40_9699;
	Class167_Sub2[] aClass167_Sub2Array9700;
	int anInt9701 = 0;
	protected float aFloat9702;
	Class435 aClass435_9703;
	public float aFloat9704;
	Class708 aClass708_9705 = new Class708();

	final void method3465(float f, float f_0_, float f_1_, float f_2_, float f_3_, float f_4_) {
		Class350_Sub3.aFloat10266 = f;
		Class350_Sub3.aFloat10268 = f_0_;
		Class350_Sub3.aFloat10264 = f_1_;
		Class350_Sub3.aFloat10271 = f_4_;
	}

	public void method14917(Interface35 interface35) {
		aClass74_9525.method1527(interface35, (byte) 9);
	}

	void method14918() {
		ArrayList arraylist = aClass74_9525.method1513(-120685691);
		Iterator iterator = arraylist.iterator();
		while (iterator.hasNext()) {
			Interface35 interface35 = (Interface35) iterator.next();
			interface35.method131();
		}
	}

	public abstract boolean method14919();

	public final void method3296(int i, Class523_Sub20[] class523_sub20s) {
		for (int i_5_ = 0; i_5_ < i; i_5_++)
			aClass523_Sub20Array9671[i_5_] = class523_sub20s[i_5_];
		anInt9602 = i;
	}

	public final void method3151(int i, int i_6_, int i_7_, int i_8_) {
		if (aClass354_9589 != null) {
			for (int i_9_ = 0; i_9_ < aClass350Array9654.length; i_9_++) {
				if (aClass350Array9654[i_9_] != null && aClass350Array9654[i_9_].method6122() && !aClass350Array9654[i_9_].method6124()) {
					if (!aClass354_9589.method6211(i, i_6_, i_7_, i_8_)) {
						aClass354_9589.method6214();
						aClass354_9589 = null;
					}
					break;
				}
			}
		}
	}

	final boolean method14920() {
		return aBool9647;
	}

	final Class441 method14921() {
		if (aClass346_9565 == Class346.aClass346_3631)
			return aClass441_9629;
		return aClass441_9536;
	}

	ByteBuffer method14922(int i) {
		ByteBuffer bytebuffer = ByteBuffer.allocateDirect(i);
		bytebuffer.order(ByteOrder.nativeOrder());
		return bytebuffer;
	}

	final void method14923() {
		method15070();
	}

	final void method14924() {
		method15033(0, anInterface36_9690);
		method15032(aClass345_9693);
		method15040(Class376.aClass376_3919, 0, 1);
	}

	byte[] method14925(String string, String string_10_) {
		return aClass472_9535.method7667(string, string_10_, 621598755);
	}

	Class279 method14926(byte[] is) {
		if (is == null)
			return null;
		Class279 class279;
		try {
			class279 = new Class279(is);
		} catch (Exception exception) {
			return null;
		}
		return class279;
	}

	void method14927() {
		if (aClass354_9589 != null)
			aClass354_9589.method6206();
		if (aClass350Array9654 != null) {
			for (int i = 0; i < aClass350Array9654.length; i++) {
				if (aClass350Array9654[i] != null && aClass350Array9654[i].method6122())
					aClass350Array9654[i].method6137();
			}
		}
		aClass335_9678 = new Class335(this);
		method15042();
		method14936();
		method14937();
		aClass360_9596 = new Class360(this, 1024);
		aClass335_9678.method5913(this);
		if (aBool9682)
			aClass356_9639 = new Class356(this, 1024);
	}

	final void method14928(byte i) {
		if (aByte9672 != i) {
			aByte9672 = i;
			if (i == 0) {
				method15019(0);
				method15018(1);
			} else {
				method15019(3);
				method15018(3);
			}
			method15021();
		}
	}

	Class163 method14929() {
		return aClass163_9659;
	}

	public final void method3390(Class523_Sub8 class523_sub8) {
		aNativeHeap9544 = ((Class523_Sub8_Sub1) class523_sub8).aNativeHeap11396;
	}

	abstract boolean method14930(Class158 class158, Class170 class170);

	void method14931() {
		method14945(7);
		method14932();
	}

	final void method14932() {
		method14984();
		method14985();
		method14983();
		method14941();
		method15077();
		method14987();
		method15276();
		method14980();
		method15304();
		method15220();
		method15027();
		method15023();
		method15022();
		method15021();
		for (int i = anInt9680 - 1; i >= 0; i--) {
			method15255(i);
			method15016();
			method14955();
			method15012();
		}
		method15097();
		method15217();
	}

	void method14933() {
		if (aClass354_9589 != null)
			aClass354_9589.method6214();
		if (anInterface36_9691 != null)
			anInterface36_9691.method131();
		if (anInterface36_9690 != null)
			anInterface36_9690.method131();
		if (anInterface36_9692 != null)
			anInterface36_9692.method131();
		if (aClass360_9596 != null)
			aClass360_9596.method6287();
		for (int i = 0; i < 8; i++) {
			if (aClass167_Sub2Array9595[i] != null)
				aClass167_Sub2Array9595[i].method14562();
		}
		if (aClass335_9678 != null)
			aClass335_9678.method5923();
		if (anInterface40_9699 != null)
			anInterface40_9699.method131();
		if (aClass356_9639 != null) {
			aClass356_9639.method6242();
			aClass356_9639 = null;
		}
	}

	abstract void method14934(Interface40 interface40);

	final void method14935() {
		if (aClass346_9565 != Class346.aClass346_3633) {
			Class346 class346 = aClass346_9565;
			aClass346_9565 = Class346.aClass346_3633;
			if (class346 == Class346.aClass346_3631)
				method14972();
			aClass441_9634 = aClass441_9571;
			method14977();
			method15046();
			anInt9676 &= ~0x1f;
		}
	}

	final void method14936() {
		anInterface36_9690 = method15030(true);
		int i = 24;
		anInterface36_9690.method215(i, 12);
		aClass345_9693 = method15031(new Class378[] { new Class378(Class344.aClass344_3624) });
	}

	final void method14937() {
		anInterface36_9692 = method15030(false);
		anInterface36_9692.method215(3096, 12);
		aByteBuffer9539.clear();
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.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_11_ = (float) Math.sin(d);
			aByteBuffer9539.putFloat(f_11_);
			aByteBuffer9539.putFloat(f);
			aByteBuffer9539.putFloat(0.0F);
		}
		anInterface36_9692.method265(0, aByteBuffer9539.position(), aLong9540);
	}

	boolean method14938(float f, float f_12_, float f_13_, float f_14_, float f_15_, float f_16_) {
		method15125(24);
		aByteBuffer9539.clear();
		aByteBuffer9539.putFloat(f);
		aByteBuffer9539.putFloat(f_12_);
		aByteBuffer9539.putFloat(f_13_);
		aByteBuffer9539.putFloat(f_14_);
		aByteBuffer9539.putFloat(f_15_);
		aByteBuffer9539.putFloat(f_16_);
		return anInterface36_9690.method265(0, aByteBuffer9539.position(), aLong9540);
	}

	void method3023() {
		if (!aBool9599) {
			method14933();
			aClass349_9586.method6106();
			for (Class523 class523 = aClass708_9705.method14240(574436578); class523 != null; class523 = aClass708_9705.method14244((byte) 12))
				((Class523_Sub8_Sub1) class523).method17802();
			Class305.method5552(false, true, (byte) 0);
			for (int i = 0; i < aClass340Array9641.length; i++) {
				if (aClass340Array9641[i] != null) {
					aClass340Array9641[i].method5959();
					aClass340Array9641[i] = null;
				}
			}
			for (int i = 0; i < aClass350Array9654.length; i++) {
				if (aClass350Array9654[i] != null) {
					aClass350Array9654[i].method6123();
					aClass350Array9654[i] = null;
				}
			}
			method14918();
			method3428(0);
			aBool9599 = true;
		}
	}

	public final boolean method3026() {
		return true;
	}

	public final boolean method3027() {
		return true;
	}

	public void method3164(int i) {
		if (aClass349_9586 != null)
			aClass349_9586.method6098();
		anInt9556 = i & 0x7fffffff;
	}

	final Interface40 method14939(int i) {
		if (anInterface40_9699.method38() < i * 2)
			anInterface40_9699.method275(i);
		return anInterface40_9699;
	}

	public final boolean method3031() {
		return true;
	}

	public final void method3391(Class171 class171) {
		aClass335_9678.method5927(this, class171);
	}

	public final boolean method3033() {
		return true;
	}

	public final boolean method3070() {
		return true;
	}

	public final boolean method3457() {
		return aClass354_9589 != null && aClass354_9589.aBool3690;
	}

	public final void method14940(int i, Class361 class361) {
		method15007(i, class361, false);
	}

	final void method14941() {
		if (method14920())
			method14989();
		anInt9620 = anInt9602;
	}

	public abstract String method3036();

	public final int[] method3418() {
		return null;
	}

	public void method3428(int i) {
		if (aClass349_9586 != null)
			aClass349_9586.method6098();
		anInt9556 = i & 0x7fffffff;
	}

	Class348 method14942() {
		if (aClass356_9639 == null)
			return Class348.aClass348_3636;
		return aClass356_9639.method6251();
	}

	public void method3206() {
		if (aClass356_9639 != null)
			aClass356_9639.method6243();
	}

	public void method3186() {
		if (aClass356_9639 != null)
			aClass356_9639.method6249();
	}

	public void method3108() {
		if (aClass356_9639 != null)
			aClass356_9639.method6250();
	}

	public abstract void method14943(Class345 class345);

	void method14944() {
		method15306();
		method14974();
		method14935();
		method3067();
		method3071();
	}

	public final void method3322(int i, int i_17_, int i_18_, int i_19_) {
		if (aClass354_9589 != null) {
			for (int i_20_ = 0; i_20_ < aClass350Array9654.length; i_20_++) {
				if (aClass350Array9654[i_20_] != null && aClass350Array9654[i_20_].method6122() && !aClass350Array9654[i_20_].method6124()) {
					if (!aClass354_9589.method6211(i, i_17_, i_18_, i_19_)) {
						aClass354_9589.method6214();
						aClass354_9589 = null;
					}
					break;
				}
			}
		}
	}

	public final void method3137(int i, int i_21_) {
		if (aClass354_9589 != null)
			aClass354_9589.method6212(i, i_21_);
	}

	public final boolean method3138() {
		return aClass354_9589 != null && aClass354_9589.aBool3690;
	}

	abstract void method14945(int i);

	public boolean method3139() {
		return (aClass350Array9654[1] != null && aClass350Array9654[1].method6122());
	}

	public void method3398(float f, float f_22_, float f_23_, float f_24_, float f_25_) {
		Class350_Sub2.aFloat10248 = f;
		Class350_Sub2.aFloat10245 = f_22_;
		Class350_Sub2.aFloat10250 = f_23_;
		Class350_Sub2.aFloat10251 = f_24_;
		Class350_Sub2.aFloat10246 = f_25_;
	}

	public Class165 method3141(int[] is) {
		return new Class165_Sub2(this, is);
	}

	boolean method14946(float f, float f_26_, float f_27_, float f_28_, float f_29_, float f_30_) {
		method15125(24);
		aByteBuffer9539.clear();
		aByteBuffer9539.putFloat(f);
		aByteBuffer9539.putFloat(f_26_);
		aByteBuffer9539.putFloat(f_27_);
		aByteBuffer9539.putFloat(f_28_);
		aByteBuffer9539.putFloat(f_29_);
		aByteBuffer9539.putFloat(f_30_);
		return anInterface36_9690.method265(0, aByteBuffer9539.position(), aLong9540);
	}

	abstract void method14947();

	final void method14948() {
		method15033(0, anInterface36_9690);
		method15032(aClass345_9693);
		method15040(Class376.aClass376_3919, 0, 1);
	}

	public final boolean method3144() {
		if (aClass350Array9654[3] != null && !aClass350Array9654[3].method6122()) {
			boolean bool = aClass354_9589.method6234(aClass350Array9654[3]);
			if (bool)
				aClass349_9586.method6106();
			return bool;
		}
		return false;
	}

	public final void method3145() {
		if (aClass350Array9654[3] != null && aClass350Array9654[3].method6122()) {
			aClass354_9589.method6209(aClass350Array9654[3]);
			aClass349_9586.method6106();
		}
	}

	public final boolean method3180() {
		return false;
	}

	final void method14949(boolean bool) {
		if (bool != aBool9606) {
			aBool9606 = bool;
			method14980();
			anInt9676 &= ~0x1f;
		}
	}

	public final Class523_Sub8 method3385(int i) {
		Class523_Sub8_Sub1 class523_sub8_sub1 = new Class523_Sub8_Sub1(i);
		aClass708_9705.method14236(class523_sub8_sub1, -368374045);
		return class523_sub8_sub1;
	}

	public final void method3099(Class523_Sub8 class523_sub8) {
		aNativeHeap9544 = ((Class523_Sub8_Sub1) class523_sub8).aNativeHeap11396;
	}

	public final NativeHeapBuffer method14950(int i, boolean bool) {
		return aNativeHeap9544.method1905(i, bool);
	}

	final Interface40 method14951(int i) {
		if (anInterface40_9699.method38() < i * 2)
			anInterface40_9699.method275(i);
		return anInterface40_9699;
	}

	Class441 method14952() {
		if (aClass346_9565 == Class346.aClass346_3631) {
			if (!aBool9564)
				method14967();
			return aClass441_9557;
		}
		return aClass441_9550;
	}

	public final Class148 method3136(int i, int i_31_, boolean bool, boolean bool_32_) {
		return new Class148_Sub3(this, i, i_31_, bool, bool_32_);
	}

	public final Class148 method3104(Class175 class175, boolean bool) {
		Class148 class148;
		if (class175.method2944() != 0 && class175.method2945() != 0) {
			int[] is = class175.method2959(false);
			class148 = method3103(is, 0, class175.method2944(), class175.method2944(), class175.method2945(), -1666979359);
		} else
			class148 = method3103(new int[] { 0 }, 0, 1, 1, 1, -1830749159);
		class148.method2426(class175.method2946(), class175.method2948(), class175.method2984(), class175.method2949());
		return class148;
	}

	public final Class148 method3102(int[] is, int i, int i_33_, int i_34_, int i_35_, boolean bool) {
		return new Class148_Sub3(this, i_34_, i_35_, is, i, i_33_);
	}

	public final Class148 method3376(int i, int i_36_, int i_37_, int i_38_, boolean bool) {
		Class148_Sub3 class148_sub3 = new Class148_Sub3(this, i_37_, i_38_, bool, false);
		class148_sub3.method2433(0, 0, i_37_, i_38_, i, i_36_);
		return class148_sub3;
	}

	public final Class164 method3111(Class10 class10, Class175[] class175s, boolean bool) {
		return new Class164_Sub6(this, class10, class175s, bool);
	}

	abstract void method14953();

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

	public final Class167 method3115(Class179 class179, int i, int i_39_, int i_40_, int i_41_) {
		return new Class167_Sub2(this, class179, i, i_40_, i_41_, i_39_);
	}

	public final int method3068(int i, int i_42_) {
		return i & i_42_ ^ i_42_;
	}

	public final int method3117(int i, int i_43_) {
		return i | i_43_;
	}

	public final void method3277(int i, int i_44_, int i_45_, int i_46_, int i_47_, int i_48_, int i_49_) {
		i += 1.0F;
		i_44_ += 1.0F;
		i_45_ += 1.0F;
		i_46_ += 1.0F;
		float f = (float) (i_45_ - i);
		float f_50_ = (float) (i_46_ - i_44_);
		float f_51_ = 1.0F / (float) Math.sqrt((double) (f * f + f_50_ * f_50_));
		f *= f_51_;
		f_50_ *= f_51_;
		i -= f;
		i_44_ -= f_50_;
		float f_52_ = -f_50_;
		float f_53_ = f;
		f_52_ *= 0.5F * (float) i_48_;
		f_53_ *= 0.5F * (float) i_48_;
		aClass148_Sub3_9636.method2469((float) i - f_52_, (float) i_44_ - f_53_, (float) i_45_ - f_52_, (float) i_46_ - f_53_, (float) i + f_52_, (float) i_44_ + f_53_, 0, i_47_, i_49_);
	}

	public final Class441 method3112() {
		return aClass441_9554;
	}

	public final Class435 method3113() {
		return aClass435_9703;
	}

	public void method3067() {
		anInt9615 = 0;
		anInt9592 = 0;
		anInt9593 = aClass168_1938.method2875();
		anInt9594 = aClass168_1938.method2874();
		method15046();
	}

	public final void method3135(Class185 class185) {
		aClass185_Sub2_9655 = (Class185_Sub2) class185;
	}

	public final Interface39 method14954() {
		return (aClass185_Sub2_9655 != null ? aClass185_Sub2_9655.method15482() : null);
	}

	abstract void method14955();

	public void method3208(int i, int i_54_, int i_55_, int i_56_) {
		anInt9615 = i;
		anInt9592 = i_54_;
		anInt9593 = i_55_;
		anInt9594 = i_56_;
		method15046();
	}

	public void method3069(int[] is) {
		is[0] = anInt9615;
		is[1] = anInt9592;
		is[2] = anInt9593;
		is[3] = anInt9594;
	}

	final void method14956() {
		aBool9569 = false;
		method14976();
		if (aClass346_9565 == Class346.aClass346_3631)
			method14977();
	}

	public void method3192(float f, float f_57_) {
		aFloat9583 = f;
		aFloat9584 = f_57_;
		method15046();
	}

	final Interface37 method14957(Class158 class158, int i, int i_58_, boolean bool, float[] fs) {
		return method14995(class158, i, i_58_, bool, fs, 0, 0);
	}

	public final void method3071() {
		if (aClass168_1938 != null) {
			anInt9587 = 0;
			anInt9633 = 0;
			anInt9590 = aClass168_1938.method2875();
			anInt9588 = aClass168_1938.method2874();
		} else {
			anInt9588 = 0;
			anInt9590 = 0;
			anInt9587 = 0;
			anInt9633 = 0;
		}
		if (aBool9675) {
			aBool9675 = false;
			method14961();
		}
	}

	public final void method3378(int i, int i_59_, int i_60_, int i_61_) {
		int i_62_;
		int i_63_;
		if (aClass168_1938 != null) {
			i_63_ = aClass168_1938.method2875();
			i_62_ = aClass168_1938.method2874();
		} else {
			i_62_ = 0;
			i_63_ = 0;
		}
		if (i <= 0 && i_60_ >= i_63_ - 1 && i_59_ <= 0 && i_61_ >= i_62_ - 1)
			method3071();
		else {
			anInt9633 = i >= 0 ? i : 0;
			anInt9590 = i_60_ <= i_63_ ? i_60_ : i_63_;
			anInt9587 = i_59_ >= 0 ? i_59_ : 0;
			anInt9588 = i_61_ <= i_62_ ? i_61_ : i_62_;
			if (!aBool9675 && (aBool9638 || method14942() == Class348.aClass348_3636)) {
				aBool9675 = true;
				method14961();
			}
			if (aBool9675)
				method15162();
		}
	}

	public final void method3266(int i, int i_64_, int i_65_, int i_66_) {
		int i_67_;
		int i_68_;
		if (aClass168_1938 != null) {
			i_68_ = aClass168_1938.method2875();
			i_67_ = aClass168_1938.method2874();
		} else {
			i_67_ = 0;
			i_68_ = 0;
		}
		i = i >= 0 ? i : 0;
		i_65_ = i_65_ <= i_68_ ? i_65_ : i_68_;
		i_64_ = i_64_ >= 0 ? i_64_ : 0;
		i_66_ = i_66_ <= i_67_ ? i_66_ : i_67_;
		boolean bool = false;
		if (anInt9633 < i) {
			anInt9633 = i;
			bool = true;
		}
		if (anInt9590 > i_65_) {
			anInt9590 = i_65_;
			bool = true;
		}
		if (anInt9587 < i_64_) {
			anInt9587 = i_64_;
			bool = true;
		}
		if (anInt9588 > i_66_) {
			anInt9588 = i_66_;
			bool = true;
		}
		if (bool) {
			if (!aBool9675 && (aBool9638 || method14942() == Class348.aClass348_3636)) {
				aBool9675 = true;
				method14961();
			}
			if (aBool9675)
				method15162();
		}
	}

	final void method14958(int i, int i_69_) {
		anInt9619 = i;
		anInt9600 = i_69_;
		method15217();
		if (!aBool9675 && (aBool9638 || method14942() == Class348.aClass348_3636)) {
			aBool9675 = true;
			method14961();
		}
		if (aBool9675)
			method15162();
	}

	public void method3074(boolean bool) {
		aBool9638 = bool;
	}

	final void method14959(int i, int i_70_) {
		anInt9619 = i;
		anInt9600 = i_70_;
		method15217();
		if (!aBool9675 && (aBool9638 || method14942() == Class348.aClass348_3636)) {
			aBool9675 = true;
			method14961();
		}
		if (aBool9675)
			method15162();
	}

	public final void method14960(int i) {
		switch (i) {
		case 3:
			method15003(Class374.aClass374_3910, Class374.aClass374_3908);
			break;
		case 0:
			method15003(Class374.aClass374_3908, Class374.aClass374_3908);
			break;
		case 2:
			method15003(Class374.aClass374_3912, Class374.aClass374_3909);
			break;
		case 1:
			method15003(Class374.aClass374_3909, Class374.aClass374_3909);
			break;
		case 4:
			method15003(Class374.aClass374_3911, Class374.aClass374_3911);
			break;
		}
	}

	abstract void method14961();

	Class435 method14962() {
		if (aClass346_9565 == Class346.aClass346_3631) {
			if (!aBool9564) {
				aClass435_9542.method6803(aClass435_9677);
				aClass435_9542.method6820(aClass435_9551);
				aClass441_9557.method7090(aClass435_9542);
				aBool9564 = true;
			}
			return aClass435_9542;
		}
		return aClass435_9677;
	}

	final Class441 method14963() {
		if (aClass346_9565 == Class346.aClass346_3631)
			return aClass441_9650;
		return aClass441_9536;
	}

	final void method14964() {
		if (aClass346_9565 != Class346.aClass346_3632) {
			Class346 class346 = aClass346_9565;
			aClass346_9565 = Class346.aClass346_3632;
			if (class346 == Class346.aClass346_3631)
				method14972();
			method14975();
			aClass441_9634 = aClass441_9567;
			method14977();
			method15046();
			anInt9676 &= ~0x18;
		}
	}

	public Class435 method3122() {
		return aClass435_9551;
	}

	public final void method3460(int i, float f, float f_71_, float f_72_, float f_73_, float f_74_) {
		boolean bool = anInt9591 != i;
		f *= 0.5F;
		f_71_ *= 0.5F;
		if (bool || aFloat9617 != f || aFloat9618 != f_71_) {
			anInt9591 = i;
			aFloat9617 = f;
			aFloat9618 = f_71_;
			if (bool) {
				aFloat9689 = (float) (anInt9591 & 0xff0000) / 1.671168E7F;
				aFloat9614 = (float) (anInt9591 & 0xff00) / 65280.0F;
				aFloat9704 = (float) (anInt9591 & 0xff) / 255.0F;
				method14984();
			}
			method14985();
		}
		if (aFloatArray9622[0] != f_72_ || aFloatArray9622[1] != f_73_ || aFloatArray9622[2] != f_74_) {
			aFloatArray9622[0] = f_72_;
			aFloatArray9622[1] = f_73_;
			aFloatArray9622[2] = f_74_;
			aFloatArray9611[0] = -f_72_;
			aFloatArray9611[1] = -f_73_;
			aFloatArray9611[2] = -f_74_;
			float f_75_ = (float) (1.0 / Math.sqrt((double) (f_72_ * f_72_ + f_73_ * f_73_ + f_74_ * f_74_)));
			aFloatArray9608[0] = f_72_ * f_75_;
			aFloatArray9608[1] = f_73_ * f_75_;
			aFloatArray9608[2] = f_74_ * f_75_;
			aFloatArray9582[0] = -aFloatArray9608[0];
			aFloatArray9582[1] = -aFloatArray9608[1];
			aFloatArray9582[2] = -aFloatArray9608[2];
			method15077();
			anInt9624 = (int) (f_72_ * 256.0F / f_73_);
			anInt9625 = (int) (f_74_ * 256.0F / f_73_);
		}
		method14987();
	}

	final void method14965() {
		aClass441_9574.method7086(aClass441_9629);
		aClass441_9574.method7089(aClass441_9570);
		aClass441_9574.method7114(aFloatArrayArray9576[0]);
		aClass441_9574.method7111(aFloatArrayArray9576[1]);
		aClass441_9574.method7106(aFloatArrayArray9576[2]);
		aClass441_9574.method7107(aFloatArrayArray9576[3]);
		aClass441_9574.method7123(aFloatArrayArray9576[4]);
		aClass441_9574.method7184(aFloatArrayArray9576[5]);
		aClass441_9575.method7086(aClass441_9574);
		method14970(aClass441_9575);
	}

	public final Class441 method3125() {
		return aClass441_9570;
	}

	public final boolean method3375() {
		return true;
	}

	Class441 method14966() {
		return aClass441_9550;
	}

	Class435 method14967() {
		if (aClass346_9565 == Class346.aClass346_3631) {
			if (!aBool9564) {
				aClass435_9542.method6803(aClass435_9677);
				aClass435_9542.method6820(aClass435_9551);
				aClass441_9557.method7090(aClass435_9542);
				aBool9564 = true;
			}
			return aClass435_9542;
		}
		return aClass435_9677;
	}

	public final Class523_Sub8 method3257(int i) {
		Class523_Sub8_Sub1 class523_sub8_sub1 = new Class523_Sub8_Sub1(i);
		aClass708_9705.method14236(class523_sub8_sub1, -1634036005);
		return class523_sub8_sub1;
	}

	final Class441 method14968() {
		return aClass441_9575;
	}

	final Class441 method14969() {
		return aClass441_9572;
	}

	public abstract void method14970(Class441 class441);

	public final void method3392() {
		if (aClass168_1938 != null) {
			anInt9587 = 0;
			anInt9633 = 0;
			anInt9590 = aClass168_1938.method2875();
			anInt9588 = aClass168_1938.method2874();
		} else {
			anInt9588 = 0;
			anInt9590 = 0;
			anInt9587 = 0;
			anInt9633 = 0;
		}
		if (aBool9675) {
			aBool9675 = false;
			method14961();
		}
	}

	final void method14971() {
		if (aClass346_9565 != Class346.aClass346_3632) {
			Class346 class346 = aClass346_9565;
			aClass346_9565 = Class346.aClass346_3632;
			if (class346 == Class346.aClass346_3631)
				method14972();
			method14975();
			aClass441_9634 = aClass441_9567;
			method14977();
			method15046();
			anInt9676 &= ~0x18;
		}
	}

	final void method14972() {
		aBool9564 = false;
	}

	final void method14973() {
		if (aClass346_9565 != Class346.aClass346_3631) {
			aClass346_9565 = Class346.aClass346_3631;
			method14972();
			method14976();
			aClass441_9634 = aClass441_9570;
			method14977();
			method15046();
			anInt9676 &= ~0x7;
		}
	}

	final void method14974() {
		aBool9569 = false;
		method14976();
		if (aClass346_9565 == Class346.aClass346_3631)
			method14977();
	}

	final void method14975() {
		if (!aBool9658) {
			int i;
			int i_76_;
			if (aClass168_1938 != null) {
				i_76_ = aClass168_1938.method2875();
				i = aClass168_1938.method2874();
			} else {
				i = 0;
				i_76_ = 0;
			}
			Class441 class441 = aClass441_9567;
			if (i_76_ != 0 && i != 0)
				class441.method7098(0.0F, (float) i_76_, 0.0F, (float) i, -1.0F, 1.0F);
			else
				class441.method7085();
			aClass441_9621.method7086(class441);
			method14970(aClass441_9621);
			aBool9658 = true;
		}
	}

	final void method14976() {
		if (!aBool9569)
			aBool9569 = true;
	}

	final void method14977() {
		aClass441_9572.method7086(aClass441_9634);
		method14970(aClass441_9572);
		aFloat9702 = ((aClass441_9572.aFloatArray4916[14] - aClass441_9572.aFloatArray4916[15]) / (aClass441_9572.aFloatArray4916[11] - aClass441_9572.aFloatArray4916[10]));
		aFloat9585 = (-aClass441_9572.aFloatArray4916[14] / aClass441_9572.aFloatArray4916[10]);
		method15026();
	}

	public final void method3287(boolean bool) {
		aBool9604 = bool;
		method15304();
	}

	final void method14978(boolean bool) {
		if (bool != aBool9606) {
			aBool9606 = bool;
			method14980();
			anInt9676 &= ~0x1f;
		}
	}

	public final void method14979(int i, Class361 class361) {
		method15005(i, class361, false, false);
	}

	abstract void method14980();

	final void method14981(boolean bool) {
		if (bool != aBool9674) {
			aBool9674 = bool;
			method14983();
			anInt9676 &= ~0x7;
		}
	}

	public void method3153(float f, float f_77_, float f_78_, float[] fs) {
		float f_79_ = (aClass441_9574.aFloatArray4916[15] + aClass441_9574.aFloatArray4916[3] * f + aClass441_9574.aFloatArray4916[7] * f_77_ + aClass441_9574.aFloatArray4916[11] * f_78_);
		float f_80_ = (aClass441_9574.aFloatArray4916[12] + aClass441_9574.aFloatArray4916[0] * f + aClass441_9574.aFloatArray4916[4] * f_77_ + aClass441_9574.aFloatArray4916[8] * f_78_);
		float f_81_ = (aClass441_9574.aFloatArray4916[13] + aClass441_9574.aFloatArray4916[1] * f + aClass441_9574.aFloatArray4916[5] * f_77_ + aClass441_9574.aFloatArray4916[9] * f_78_);
		float f_82_ = (aClass441_9629.aFloatArray4916[14] + aClass441_9629.aFloatArray4916[2] * f + aClass441_9629.aFloatArray4916[6] * f_77_ + aClass441_9629.aFloatArray4916[10] * f_78_);
		fs[0] = aFloat9603 + aFloat9578 * f_80_ / f_79_;
		fs[1] = aFloat9579 + aFloat9580 * f_81_ / f_79_;
		fs[2] = f_82_;
	}

	public void method3152(float f, float f_83_, float f_84_, float[] fs) {
		float f_85_ = (aClass441_9574.aFloatArray4916[14] + aClass441_9574.aFloatArray4916[2] * f + aClass441_9574.aFloatArray4916[6] * f_83_ + aClass441_9574.aFloatArray4916[10] * f_84_);
		float f_86_ = (aClass441_9574.aFloatArray4916[15] + aClass441_9574.aFloatArray4916[3] * f + aClass441_9574.aFloatArray4916[7] * f_83_ + aClass441_9574.aFloatArray4916[11] * f_84_);
		if (f_85_ < -f_86_ || f_85_ > f_86_) {
			float[] fs_87_ = fs;
			float[] fs_88_ = fs;
			fs[2] = Float.NaN;
			fs_88_[1] = Float.NaN;
			fs_87_[0] = Float.NaN;
		} else {
			float f_89_ = (aClass441_9574.aFloatArray4916[12] + aClass441_9574.aFloatArray4916[0] * f + aClass441_9574.aFloatArray4916[4] * f_83_ + aClass441_9574.aFloatArray4916[8] * f_84_);
			if (f_89_ < -f_86_ || f_89_ > f_86_) {
				float[] fs_90_ = fs;
				float[] fs_91_ = fs;
				fs[2] = Float.NaN;
				fs_91_[1] = Float.NaN;
				fs_90_[0] = Float.NaN;
			} else {
				float f_92_ = (aClass441_9574.aFloatArray4916[13] + aClass441_9574.aFloatArray4916[1] * f + aClass441_9574.aFloatArray4916[5] * f_83_ + aClass441_9574.aFloatArray4916[9] * f_84_);
				if (f_92_ < -f_86_ || f_92_ > f_86_) {
					float[] fs_93_ = fs;
					float[] fs_94_ = fs;
					fs[2] = Float.NaN;
					fs_94_[1] = Float.NaN;
					fs_93_[0] = Float.NaN;
				} else {
					float f_95_ = (aClass441_9629.aFloatArray4916[14] + aClass441_9629.aFloatArray4916[2] * f + aClass441_9629.aFloatArray4916[6] * f_83_ + aClass441_9629.aFloatArray4916[10] * f_84_);
					fs[0] = aFloat9603 + aFloat9578 * f_89_ / f_86_;
					fs[1] = aFloat9579 + aFloat9580 * f_92_ / f_86_;
					fs[2] = f_95_;
				}
			}
		}
	}

	public int method3094(int i, int i_96_, int i_97_, int i_98_, int i_99_, int i_100_) {
		int i_101_ = 0;
		float f = (aClass441_9574.aFloatArray4916[14] + aClass441_9574.aFloatArray4916[2] * (float) i + aClass441_9574.aFloatArray4916[6] * (float) i_96_ + aClass441_9574.aFloatArray4916[10] * (float) i_97_);
		float f_102_ = (aClass441_9574.aFloatArray4916[14] + aClass441_9574.aFloatArray4916[2] * (float) i_98_ + aClass441_9574.aFloatArray4916[6] * (float) i_99_ + aClass441_9574.aFloatArray4916[10] * (float) i_100_);
		float f_103_ = (aClass441_9574.aFloatArray4916[15] + aClass441_9574.aFloatArray4916[3] * (float) i + aClass441_9574.aFloatArray4916[7] * (float) i_96_ + aClass441_9574.aFloatArray4916[11] * (float) i_97_);
		float f_104_ = (aClass441_9574.aFloatArray4916[15] + aClass441_9574.aFloatArray4916[3] * (float) i_98_ + aClass441_9574.aFloatArray4916[7] * (float) i_99_ + aClass441_9574.aFloatArray4916[11] * (float) i_100_);
		if (f < -f_103_ && f_102_ < -f_104_)
			i_101_ |= 0x10;
		else if (f > f_103_ && f_102_ > f_104_)
			i_101_ |= 0x20;
		float f_105_ = (aClass441_9574.aFloatArray4916[12] + aClass441_9574.aFloatArray4916[0] * (float) i + aClass441_9574.aFloatArray4916[4] * (float) i_96_ + aClass441_9574.aFloatArray4916[8] * (float) i_97_);
		float f_106_ = (aClass441_9574.aFloatArray4916[12] + aClass441_9574.aFloatArray4916[0] * (float) i_98_ + aClass441_9574.aFloatArray4916[4] * (float) i_99_ + aClass441_9574.aFloatArray4916[8] * (float) i_100_);
		if (f_105_ < -f_103_ && f_106_ < -f_104_)
			i_101_ |= 0x1;
		if (f_105_ > f_103_ && f_106_ > f_104_)
			i_101_ |= 0x2;
		float f_107_ = (aClass441_9574.aFloatArray4916[13] + aClass441_9574.aFloatArray4916[1] * (float) i + aClass441_9574.aFloatArray4916[5] * (float) i_96_ + aClass441_9574.aFloatArray4916[9] * (float) i_97_);
		float f_108_ = (aClass441_9574.aFloatArray4916[13] + aClass441_9574.aFloatArray4916[1] * (float) i_98_ + aClass441_9574.aFloatArray4916[5] * (float) i_99_ + aClass441_9574.aFloatArray4916[9] * (float) i_100_);
		if (f_107_ < -f_103_ && f_108_ < -f_104_)
			i_101_ |= 0x4;
		if (f_107_ > f_103_ && f_108_ > f_104_)
			i_101_ |= 0x8;
		return i_101_;
	}

	public boolean method3336() {
		return (aClass350Array9654[1] != null && aClass350Array9654[1].method6122());
	}

	public void method3055(Class435 class435, Class180 class180, Class430 class430) {
		Class441 class441 = aClass441_9560;
		class441.method7090(class435);
		class441.method7089(aClass441_9574);
		class180.method3531(class430, aClass441_9570, class441, aFloat9603, aFloat9579, aFloat9578, aFloat9580);
	}

	public final int method3267() {
		return anInt9524 - 2;
	}

	final void method14982(boolean bool) {
		if (bool != aBool9674) {
			aBool9674 = bool;
			method14983();
			anInt9676 &= ~0x7;
		}
	}

	public final void method3132(int i, Class523_Sub20[] class523_sub20s) {
		for (int i_109_ = 0; i_109_ < i; i_109_++)
			aClass523_Sub20Array9671[i_109_] = class523_sub20s[i_109_];
		anInt9602 = i;
	}

	public final void method3126(float f) {
		if (aFloat9643 != f) {
			aFloat9643 = f;
			method14984();
			method14987();
		}
	}

	public final void method3250(int i, Class163 class163) {
		if (!aBool9656)
			throw new RuntimeException("");
		anInt9601 = i;
		aClass163_9659 = class163;
		if (aBool9657) {
			aClass340Array9641[3].method5975();
			aClass340Array9641[3].method5979();
		}
	}

	public final void method3128(int i) {
		anInt9623 = 0;
		for (/**/; i > 1; i >>= 1)
			anInt9623++;
		anInt9607 = 1 << anInt9623;
	}

	abstract void method14983();

	abstract void method14984();

	abstract void method14985();

	abstract void method14986();

	abstract void method14987();

	final void method3415(int i, int i_110_, int i_111_, int i_112_, int i_113_) {
		/* empty */
	}

	abstract Interface37 method14988(Class158 class158, int i, int i_114_, boolean bool, byte[] is, int i_115_, int i_116_);

	abstract void method14989();

	abstract boolean method14990(Class158 class158, Class170 class170);

	final void method3018(float f, float f_117_, float f_118_, float f_119_, float f_120_, float f_121_) {
		Class350_Sub3.aFloat10266 = f;
		Class350_Sub3.aFloat10268 = f_117_;
		Class350_Sub3.aFloat10264 = f_118_;
		Class350_Sub3.aFloat10271 = f_121_;
	}

	final Interface37 method14991(int i, int i_122_, boolean bool, int[] is) {
		return method14996(i, i_122_, bool, is, 0, 0);
	}

	public final void method3360(int i, int i_123_, float f, int i_124_, int i_125_, float f_126_, int i_127_, int i_128_, float f_129_, int i_130_, int i_131_, int i_132_, int i_133_) {
		/* empty */
	}

	abstract void method14992();

	boolean method14993() {
		if (aClass350Array9654[1] != null && !aClass350Array9654[1].method6122()) {
			boolean bool = aClass354_9589.method6234(aClass350Array9654[1]);
			if (bool)
				aClass349_9586.method6106();
			return bool;
		}
		return false;
	}

	abstract Interface37 method14994(Class158 class158, int i, int i_134_, boolean bool, byte[] is, int i_135_, int i_136_);

	abstract Interface37 method14995(Class158 class158, int i, int i_137_, boolean bool, float[] fs, int i_138_, int i_139_);

	abstract Interface37 method14996(int i, int i_140_, boolean bool, int[] is, int i_141_, int i_142_);

	abstract Interface39 method14997(int i, boolean bool, int[][] is);

	void method14998() {
		method14945(7);
		method14932();
	}

	abstract Interface41 method14999(Class158 class158, Class170 class170, int i, int i_143_);

	public final Class185 method3133(int i) {
		return new Class185_Sub2_Sub1(this, i);
	}

	abstract void method15000(int i);

	public final void method15001(Interface43 interface43) {
		if (anInterface43Array9627[anInt9626] != interface43) {
			anInterface43Array9627[anInt9626] = interface43;
			if (interface43 != null)
				interface43.method297();
			else
				anInterface37_9669.method297();
			anInt9676 &= ~0x11;
		}
	}

	public boolean method3029() {
		return (aClass350Array9654[2] != null && aClass350Array9654[2].method6122());
	}

	public final void method15002(Interface43 interface43) {
		if (anInterface43Array9627[anInt9626] != interface43) {
			anInterface43Array9627[anInt9626] = interface43;
			if (interface43 != null)
				interface43.method297();
			else
				anInterface37_9669.method297();
			anInt9676 &= ~0x11;
		}
	}

	public final void method15003(Class374 class374, Class374 class374_144_) {
		boolean bool = false;
		if (aClass374Array9630[anInt9626] != class374) {
			aClass374Array9630[anInt9626] = class374;
			method15016();
			bool = true;
		}
		if (aClass374Array9631[anInt9626] != class374_144_) {
			aClass374Array9631[anInt9626] = class374_144_;
			method14955();
			bool = true;
		}
		if (bool)
			anInt9676 &= ~0x1d;
	}

	final void method15004() {
		anInterface36_9692 = method15030(false);
		anInterface36_9692.method215(3096, 12);
		aByteBuffer9539.clear();
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.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_145_ = (float) Math.sin(d);
			aByteBuffer9539.putFloat(f_145_);
			aByteBuffer9539.putFloat(f);
			aByteBuffer9539.putFloat(0.0F);
		}
		anInterface36_9692.method265(0, aByteBuffer9539.position(), aLong9540);
	}

	abstract void method15005(int i, Class361 class361, boolean bool, boolean bool_146_);

	public final void method15006(int i, Class361 class361) {
		method15007(i, class361, false);
	}

	abstract void method15007(int i, Class361 class361, boolean bool);

	public void method15008(int i) {
		if (i != anInt9632) {
			anInt9632 = i;
			method15097();
		}
	}

	final Class441 method15009() {
		return aClass441Array9547[anInt9626];
	}

	public final void method15010(int i, Class361 class361) {
		method15005(i, class361, false, false);
	}

	public final void method15011(Class377 class377) {
		aClass377Array9665[anInt9626] = class377;
		method15264();
	}

	final void method15012() {
		if (aClass377Array9665[anInt9626] != Class377.aClass377_3926) {
			aClass377Array9665[anInt9626] = Class377.aClass377_3926;
			aClass441Array9547[anInt9626].method7085();
			method15264();
		}
	}

	final void method3241(int i, int i_147_, int i_148_, int i_149_, int i_150_) {
		method3089(i, i_147_, i + i_148_, i_147_, i_149_, i_150_);
	}

	abstract Interface41 method15013(Class158 class158, Class170 class170, int i, int i_151_);

	abstract Interface37 method15014(int i, int i_152_, boolean bool, int[] is, int i_153_, int i_154_);

	abstract void method15015();

	abstract void method15016();

	public final Class441 method3072() {
		return aClass441_9570;
	}

	Class163 method15017() {
		return aClass163_9659;
	}

	public final void method3149(int i, Class163 class163) {
		anInt9601 = i;
		aClass163_9659 = class163;
		aBool9656 = true;
	}

	public final void method3150(int i, Class163 class163) {
		if (!aBool9656)
			throw new RuntimeException("");
		anInt9601 = i;
		aClass163_9659 = class163;
		if (aBool9657) {
			aClass340Array9641[3].method5975();
			aClass340Array9641[3].method5979();
		}
	}

	public final void method3323() {
		aBool9656 = false;
	}

	final void method15018(int i) {
		if (anInt9667 != i) {
			Class363 class363;
			boolean bool;
			boolean bool_155_;
			if (i == 1) {
				class363 = Class363.aClass363_3752;
				bool = true;
				bool_155_ = true;
			} else if (i == 2) {
				class363 = Class363.aClass363_3750;
				bool = false;
				bool_155_ = true;
			} else if (i == 128) {
				class363 = Class363.aClass363_3753;
				bool = true;
				bool_155_ = true;
			} else if (i == 3) {
				class363 = Class363.aClass363_3751;
				bool = true;
				bool_155_ = false;
			} else {
				class363 = Class363.aClass363_3751;
				bool = false;
				bool_155_ = false;
			}
			if (bool != aBool9563) {
				aBool9563 = bool;
				method15021();
			}
			if (bool_155_ != aBool9549) {
				aBool9549 = bool_155_;
				method15023();
			}
			if (class363 != aClass363_9666) {
				aClass363_9666 = class363;
				method15022();
			}
			anInt9667 = i;
			anInt9676 &= ~0x1c;
		}
	}

	final void method15019(int i) {
		if (anInt9653 != i) {
			anInt9653 = i;
			method15022();
		}
	}

	final void method15020(byte i) {
		if (aByte9672 != i) {
			aByte9672 = i;
			if (i == 0) {
				method15019(0);
				method15018(1);
			} else {
				method15019(3);
				method15018(3);
			}
			method15021();
		}
	}

	public final boolean method3329() {
		return aClass354_9589 != null && aClass354_9589.aBool3690;
	}

	abstract void method15021();

	abstract void method15022();

	abstract void method15023();

	final void method15024(boolean bool) {
		if (bool != aBool9660) {
			aBool9660 = bool;
			method15220();
			anInt9676 &= ~0x1f;
		}
	}

	Class441 method15025() {
		return aClass441_9550;
	}

	final void method15026() {
		if (aClass340_9640 != null)
			aClass340_9640.method5979();
		method15027();
	}

	abstract void method15027();

	public void method3461() {
		if (aClass356_9639 != null)
			aClass356_9639.method6250();
	}

	abstract void method15028(boolean bool);

	abstract Interface40 method15029(boolean bool);

	abstract Interface36 method15030(boolean bool);

	abstract Class345 method15031(Class378[] class378s);

	public abstract void method15032(Class345 class345);

	public abstract void method15033(int i, Interface36 interface36);

	public void method3397(Class165 class165, float f, Class165 class165_156_, float f_157_, Class165 class165_158_, float f_159_) {
		int i = 0;
		if (class165_158_ == null && f_159_ > 0.0F)
			f_159_ = 0.0F;
		if (class165_156_ == null && f_157_ > 0.0F) {
			class165_156_ = class165_158_;
			class165_158_ = null;
			f_157_ = f_159_;
			f_159_ = 0.0F;
		}
		if (class165 == null && f > 0.0F) {
			class165 = class165_156_;
			class165_156_ = class165_158_;
			class165_158_ = null;
			f = f_157_;
			f_157_ = f_159_;
			f_159_ = 0.0F;
		}
		Class350_Sub1.aClass165_Sub2Array10168[0] = (Class165_Sub2) class165;
		Class350_Sub1.aFloatArray10171[0] = f;
		if (f > 0.0F)
			i++;
		Class350_Sub1.aClass165_Sub2Array10168[1] = (Class165_Sub2) class165_156_;
		Class350_Sub1.aFloatArray10171[1] = f_157_;
		if (f_157_ > 0.0F)
			i++;
		Class350_Sub1.aClass165_Sub2Array10168[2] = (Class165_Sub2) class165_158_;
		Class350_Sub1.aFloatArray10171[2] = f_159_;
		if (f_159_ > 0.0F)
			i++;
		Class350_Sub1.anInt10167 = i;
		Class350_Sub1.aFloat10166 = 1.0F - (f + f_157_ + f_159_);
	}

	public abstract void method15034(Class376 class376, int i, int i_160_, int i_161_, int i_162_);

	public final void method3193(int i, int i_163_, int i_164_, int i_165_, int i_166_, int i_167_) {
		if (aBool9685 && anInt9661 != 0)
			method15028(false);
		if (aBool9604) {
			method3287(false);
			aClass148_Sub3_9636.method2439(i, i_163_, i_164_, i_165_, 0, i_166_, i_167_);
			method3287(true);
		} else
			aClass148_Sub3_9636.method2439(i, i_163_, i_164_, i_165_, 0, i_166_, i_167_);
		if (aBool9685 && anInt9661 != 0)
			method15028(true);
	}

	final void method3190(int i, int i_168_, int i_169_, int i_170_, int i_171_) {
		method3089(i, i_168_, i, i_168_ + i_169_, i_170_, i_171_);
	}

	public final void method3286(int i) {
		anInt9623 = 0;
		for (/**/; i > 1; i >>= 1)
			anInt9623++;
		anInt9607 = 1 << anInt9623;
	}

	final void method15035() {
		if (anInt9676 != 8) {
			method14973();
			method15024(true);
			method14978(true);
			method15249(true);
			method15018(1);
			method15020((byte) 0);
			anInt9676 = 8;
		}
	}

	abstract void method15036();

	final void method3119(int i, int i_172_, int i_173_, int i_174_, int i_175_) {
		method3089(i, i_172_, i, i_172_ + i_173_, i_174_, i_175_);
	}

	public final void method3089(int i, int i_176_, int i_177_, int i_178_, int i_179_, int i_180_) {
		method3277(i, i_176_, i_177_, i_178_, i_179_, 1, i_180_);
	}

	long method15037(ByteBuffer bytebuffer) {
		return DirectBufferHelper.getDirectBufferAddress(bytebuffer);
	}

	public void method3092(int i, int i_181_, int i_182_, int i_183_, int i_184_, int i_185_, Class145 class145, int i_186_, int i_187_, int i_188_, int i_189_, int i_190_) {
		/* empty */
	}

	public final void method3090(int i, int i_191_, int i_192_, int i_193_, int i_194_, int i_195_, Class145 class145, int i_196_, int i_197_) {
		/* empty */
	}

	public final int method3034() {
		return anInt9648 + anInt9530 + anInt9684;
	}

	public final void method3120(Class171 class171) {
		aClass335_9678.method5927(this, class171);
	}

	public final boolean method3030() {
		return aClass350Array9654[3] != null;
	}

	public final void method15038() {
		method15039(Class376.aClass376_3918, 2);
	}

	final void method15039(Class376 class376, int i) {
		method15033(0, anInterface36_9691);
		method15032(aClass345_9694);
		method15040(class376, 0, i);
	}

	public abstract void method15040(Class376 class376, int i, int i_198_);

	abstract void method15041(Interface40 interface40, Class376 class376, int i, int i_199_, int i_200_, int i_201_);

	public final Class142 method3082(int i, int i_202_, int[][] is, int[][] is_203_, int i_204_, int i_205_, int i_206_) {
		return new Class142_Sub1(this, i_205_, i_206_, i, i_202_, is, is_203_, i_204_);
	}

	final void method15042() {
		anInterface36_9691 = method15030(false);
		int i = 160;
		anInterface36_9691.method215(i, 32);
		aByteBuffer9539.clear();
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putInt(-1);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(1.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putInt(-1);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(1.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(1.0F);
		aByteBuffer9539.putFloat(1.0F);
		aByteBuffer9539.putFloat(1.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putInt(-1);
		aByteBuffer9539.putFloat(1.0F);
		aByteBuffer9539.putFloat(1.0F);
		aByteBuffer9539.putFloat(1.0F);
		aByteBuffer9539.putFloat(1.0F);
		aByteBuffer9539.putFloat(1.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putInt(-1);
		aByteBuffer9539.putFloat(1.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(1.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putInt(-1);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(0.0F);
		anInterface36_9691.method265(0, aByteBuffer9539.position(), aLong9540);
		aClass345_9694 = method15031(new Class378[] { new Class378(new Class344[] { Class344.aClass344_3624, Class344.aClass344_3613, Class344.aClass344_3615, Class344.aClass344_3615 }) });
	}

	final void method15043() {
		if (anInt9676 != 8) {
			method14973();
			method15024(true);
			method14978(true);
			method15249(true);
			method15018(1);
			method15020((byte) 0);
			anInt9676 = 8;
		}
	}

	abstract void method15044(int i);

	Class435 method15045() {
		if (aClass346_9565 == Class346.aClass346_3631) {
			if (!aBool9564) {
				aClass435_9542.method6803(aClass435_9677);
				aClass435_9542.method6820(aClass435_9551);
				aClass441_9557.method7090(aClass435_9542);
				aBool9564 = true;
			}
			return aClass435_9542;
		}
		return aClass435_9677;
	}

	public final Class145 method3109(int i, int i_207_, int[] is, int[] is_208_) {
		return Class145_Sub2.method15344(this, i, i_207_, is, is_208_);
	}

	void method3073() {
		if (!aBool9599) {
			method14933();
			aClass349_9586.method6106();
			for (Class523 class523 = aClass708_9705.method14240(1543985981); class523 != null; class523 = aClass708_9705.method14244((byte) 25))
				((Class523_Sub8_Sub1) class523).method17802();
			Class305.method5552(false, true, (byte) 0);
			for (int i = 0; i < aClass340Array9641.length; i++) {
				if (aClass340Array9641[i] != null) {
					aClass340Array9641[i].method5959();
					aClass340Array9641[i] = null;
				}
			}
			for (int i = 0; i < aClass350Array9654.length; i++) {
				if (aClass350Array9654[i] != null) {
					aClass350Array9654[i].method6123();
					aClass350Array9654[i] = null;
				}
			}
			method14918();
			method3428(0);
			aBool9599 = true;
		}
	}

	public void method3163(int i) {
		if (aClass349_9586 != null)
			aClass349_9586.method6098();
		anInt9556 = i & 0x7fffffff;
	}

	final void method15046() {
		if (aClass346_9565 == Class346.aClass346_3631) {
			anInt9628 = anInt9615;
			anInt9649 = anInt9592;
			anInt9597 = anInt9593;
			anInt9598 = anInt9594;
			aFloat9581 = aFloat9583;
			aFloat9605 = aFloat9584;
		} else {
			anInt9628 = 0;
			anInt9649 = 0;
			anInt9597 = aClass168_1938.method2875();
			anInt9598 = aClass168_1938.method2874();
			aFloat9581 = 0.0F;
			aFloat9605 = 1.0F;
		}
		method15217();
		aFloat9578 = (float) anInt9593 / 2.0F;
		aFloat9580 = (float) anInt9594 / 2.0F;
		aFloat9603 = (float) anInt9615 + aFloat9578;
		aFloat9579 = (float) anInt9592 + aFloat9580;
	}

	public void method3165(int i) {
		if (aClass349_9586 != null)
			aClass349_9586.method6098();
		anInt9556 = i & 0x7fffffff;
	}

	public abstract void method15047(Class441 class441, Class441 class441_209_, Class441 class441_210_);

	public final int method3167() {
		return anInt9648 + anInt9530 + anInt9684;
	}

	public final int method3168() {
		return anInt9648 + anInt9530 + anInt9684;
	}

	final Interface37 method15048(int i, int i_211_, boolean bool, int[] is) {
		return method14996(i, i_211_, bool, is, 0, 0);
	}

	public final boolean method3170() {
		return true;
	}

	public final boolean method3171() {
		return true;
	}

	public final boolean method3172() {
		return true;
	}

	void method15049() {
		method14944();
	}

	final void method15050(boolean bool) {
		if (bool != aBool9606) {
			aBool9606 = bool;
			method14980();
			anInt9676 &= ~0x1f;
		}
	}

	public boolean method3253() {
		return (aClass350Array9654[2] != null && aClass350Array9654[2].method6122());
	}

	public final boolean method3198() {
		return true;
	}

	public final boolean method3177() {
		return aBool9685;
	}

	public final boolean method3178() {
		return true;
	}

	public final boolean method3179() {
		return true;
	}

	public void method3148(Class165 class165, float f, Class165 class165_212_, float f_213_, Class165 class165_214_, float f_215_) {
		int i = 0;
		if (class165_214_ == null && f_215_ > 0.0F)
			f_215_ = 0.0F;
		if (class165_212_ == null && f_213_ > 0.0F) {
			class165_212_ = class165_214_;
			class165_214_ = null;
			f_213_ = f_215_;
			f_215_ = 0.0F;
		}
		if (class165 == null && f > 0.0F) {
			class165 = class165_212_;
			class165_212_ = class165_214_;
			class165_214_ = null;
			f = f_213_;
			f_213_ = f_215_;
			f_215_ = 0.0F;
		}
		Class350_Sub1.aClass165_Sub2Array10168[0] = (Class165_Sub2) class165;
		Class350_Sub1.aFloatArray10171[0] = f;
		if (f > 0.0F)
			i++;
		Class350_Sub1.aClass165_Sub2Array10168[1] = (Class165_Sub2) class165_212_;
		Class350_Sub1.aFloatArray10171[1] = f_213_;
		if (f_213_ > 0.0F)
			i++;
		Class350_Sub1.aClass165_Sub2Array10168[2] = (Class165_Sub2) class165_214_;
		Class350_Sub1.aFloatArray10171[2] = f_215_;
		if (f_215_ > 0.0F)
			i++;
		Class350_Sub1.anInt10167 = i;
		Class350_Sub1.aFloat10166 = 1.0F - (f + f_213_ + f_215_);
	}

	public final int method15051() {
		return anInt9626;
	}

	public abstract String method3182();

	public abstract String method3234();

	abstract void method15052();

	public final int[] method3341() {
		return null;
	}

	final void method15053() {
		if (anInt9676 != 8) {
			method14973();
			method15024(true);
			method14978(true);
			method15249(true);
			method15018(1);
			method15020((byte) 0);
			anInt9676 = 8;
		}
	}

	public final void method3220(boolean bool) {
		aBool9604 = bool;
		method15304();
	}

	abstract void method15054();

	public void method3222(int i, int i_216_, int i_217_, int i_218_) {
		anInt9615 = i;
		anInt9592 = i_216_;
		anInt9593 = i_217_;
		anInt9594 = i_218_;
		method15046();
	}

	public void method3223(int i, int i_219_, int i_220_, int i_221_) {
		anInt9615 = i;
		anInt9592 = i_219_;
		anInt9593 = i_220_;
		anInt9594 = i_221_;
		method15046();
	}

	public void method3224(int[] is) {
		is[0] = anInt9615;
		is[1] = anInt9592;
		is[2] = anInt9593;
		is[3] = anInt9594;
	}

	public void method3225(int[] is) {
		is[0] = anInt9615;
		is[1] = anInt9592;
		is[2] = anInt9593;
		is[3] = anInt9594;
	}

	public abstract void method15055();

	public final void method3227(int i, int i_222_, int i_223_, int i_224_) {
		int i_225_;
		int i_226_;
		if (aClass168_1938 != null) {
			i_226_ = aClass168_1938.method2875();
			i_225_ = aClass168_1938.method2874();
		} else {
			i_225_ = 0;
			i_226_ = 0;
		}
		if (i <= 0 && i_223_ >= i_226_ - 1 && i_222_ <= 0 && i_224_ >= i_225_ - 1)
			method3071();
		else {
			anInt9633 = i >= 0 ? i : 0;
			anInt9590 = i_223_ <= i_226_ ? i_223_ : i_226_;
			anInt9587 = i_222_ >= 0 ? i_222_ : 0;
			anInt9588 = i_224_ <= i_225_ ? i_224_ : i_225_;
			if (!aBool9675 && (aBool9638 || method14942() == Class348.aClass348_3636)) {
				aBool9675 = true;
				method14961();
			}
			if (aBool9675)
				method15162();
		}
	}

	public final boolean method3351() {
		return true;
	}

	public final void method3210(int i, int i_227_, int i_228_, int i_229_) {
		int i_230_;
		int i_231_;
		if (aClass168_1938 != null) {
			i_231_ = aClass168_1938.method2875();
			i_230_ = aClass168_1938.method2874();
		} else {
			i_230_ = 0;
			i_231_ = 0;
		}
		i = i >= 0 ? i : 0;
		i_228_ = i_228_ <= i_231_ ? i_228_ : i_231_;
		i_227_ = i_227_ >= 0 ? i_227_ : 0;
		i_229_ = i_229_ <= i_230_ ? i_229_ : i_230_;
		boolean bool = false;
		if (anInt9633 < i) {
			anInt9633 = i;
			bool = true;
		}
		if (anInt9590 > i_228_) {
			anInt9590 = i_228_;
			bool = true;
		}
		if (anInt9587 < i_227_) {
			anInt9587 = i_227_;
			bool = true;
		}
		if (anInt9588 > i_229_) {
			anInt9588 = i_229_;
			bool = true;
		}
		if (bool) {
			if (!aBool9675 && (aBool9638 || method14942() == Class348.aClass348_3636)) {
				aBool9675 = true;
				method14961();
			}
			if (aBool9675)
				method15162();
		}
	}

	public final void method3230(int i, int i_232_, int i_233_, int i_234_) {
		int i_235_;
		int i_236_;
		if (aClass168_1938 != null) {
			i_236_ = aClass168_1938.method2875();
			i_235_ = aClass168_1938.method2874();
		} else {
			i_235_ = 0;
			i_236_ = 0;
		}
		i = i >= 0 ? i : 0;
		i_233_ = i_233_ <= i_236_ ? i_233_ : i_236_;
		i_232_ = i_232_ >= 0 ? i_232_ : 0;
		i_234_ = i_234_ <= i_235_ ? i_234_ : i_235_;
		boolean bool = false;
		if (anInt9633 < i) {
			anInt9633 = i;
			bool = true;
		}
		if (anInt9590 > i_233_) {
			anInt9590 = i_233_;
			bool = true;
		}
		if (anInt9587 < i_232_) {
			anInt9587 = i_232_;
			bool = true;
		}
		if (anInt9588 > i_234_) {
			anInt9588 = i_234_;
			bool = true;
		}
		if (bool) {
			if (!aBool9675 && (aBool9638 || method14942() == Class348.aClass348_3636)) {
				aBool9675 = true;
				method14961();
			}
			if (aBool9675)
				method15162();
		}
	}

	public final void method3231(int[] is) {
		is[0] = anInt9633;
		is[1] = anInt9587;
		is[2] = anInt9590;
		is[3] = anInt9588;
	}

	public final void method3236(int[] is) {
		is[0] = anInt9633;
		is[1] = anInt9587;
		is[2] = anInt9590;
		is[3] = anInt9588;
	}

	public final void method3285(int[] is) {
		is[0] = anInt9633;
		is[1] = anInt9587;
		is[2] = anInt9590;
		is[3] = anInt9588;
	}

	public final void method3043(int[] is) {
		is[0] = anInt9633;
		is[1] = anInt9587;
		is[2] = anInt9590;
		is[3] = anInt9588;
	}

	public final void method3129(int i, int i_237_, int i_238_, int i_239_, int i_240_, int i_241_) {
		i_238_--;
		i_239_--;
		int i_242_ = 0;
		if (this instanceof Class178_Sub2_Sub2)
			i_242_ = -1;
		if (aBool9685 && anInt9661 != 0)
			method15028(false);
		method3089(i, i_237_ + i_242_, i + i_238_, i_237_ + i_242_, i_240_, i_241_);
		method3089(i, i_237_ + i_239_ + i_242_, i + i_238_, i_237_ + i_239_ + i_242_, i_240_, i_241_);
		method3089(i, i_237_, i, i_237_ + i_239_, i_240_, i_241_);
		method3089(i + i_238_, i_237_, i + i_238_, i_237_ + i_239_, i_240_, i_241_);
		if (aBool9685 && anInt9661 != 0)
			method15028(true);
	}

	public final void method3272(int i, int i_243_, int i_244_, int i_245_, int i_246_, int i_247_) {
		i_244_--;
		i_245_--;
		int i_248_ = 0;
		if (this instanceof Class178_Sub2_Sub2)
			i_248_ = -1;
		if (aBool9685 && anInt9661 != 0)
			method15028(false);
		method3089(i, i_243_ + i_248_, i + i_244_, i_243_ + i_248_, i_246_, i_247_);
		method3089(i, i_243_ + i_245_ + i_248_, i + i_244_, i_243_ + i_245_ + i_248_, i_246_, i_247_);
		method3089(i, i_243_, i, i_243_ + i_245_, i_246_, i_247_);
		method3089(i + i_244_, i_243_, i + i_244_, i_243_ + i_245_, i_246_, i_247_);
		if (aBool9685 && anInt9661 != 0)
			method15028(true);
	}

	final void method15056() {
		anInterface36_9692 = method15030(false);
		anInterface36_9692.method215(3096, 12);
		aByteBuffer9539.clear();
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.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_249_ = (float) Math.sin(d);
			aByteBuffer9539.putFloat(f_249_);
			aByteBuffer9539.putFloat(f);
			aByteBuffer9539.putFloat(0.0F);
		}
		anInterface36_9692.method265(0, aByteBuffer9539.position(), aLong9540);
	}

	public final void method3238(int i, int i_250_, int i_251_, int i_252_, int i_253_, int i_254_) {
		if (aBool9685 && anInt9661 != 0)
			method15028(false);
		if (aBool9604) {
			method3287(false);
			aClass148_Sub3_9636.method2439(i, i_250_, i_251_, i_252_, 0, i_253_, i_254_);
			method3287(true);
		} else
			aClass148_Sub3_9636.method2439(i, i_250_, i_251_, i_252_, 0, i_253_, i_254_);
		if (aBool9685 && anInt9661 != 0)
			method15028(true);
	}

	abstract boolean method15057(Class158 class158, Class170 class170);

	public final void method3408(int i, int i_255_, int i_256_, int i_257_, int i_258_, int i_259_) {
		if (aBool9685 && anInt9661 != 0)
			method15028(false);
		if (aBool9604) {
			method3287(false);
			aClass148_Sub3_9636.method2439(i, i_255_, i_256_, i_257_, 0, i_258_, i_259_);
			method3287(true);
		} else
			aClass148_Sub3_9636.method2439(i, i_255_, i_256_, i_257_, 0, i_258_, i_259_);
		if (aBool9685 && anInt9661 != 0)
			method15028(true);
	}

	public final int[] method3320() {
		return null;
	}

	final void method3242(int i, int i_260_, int i_261_, int i_262_, int i_263_) {
		method3089(i, i_260_, i, i_260_ + i_261_, i_262_, i_263_);
	}

	final void method3209(int i, int i_264_, int i_265_, int i_266_, int i_267_) {
		method3089(i, i_264_, i, i_264_ + i_265_, i_266_, i_267_);
	}

	final void method15058() {
		aClass441_9572.method7086(aClass441_9634);
		method14970(aClass441_9572);
		aFloat9702 = ((aClass441_9572.aFloatArray4916[14] - aClass441_9572.aFloatArray4916[15]) / (aClass441_9572.aFloatArray4916[11] - aClass441_9572.aFloatArray4916[10]));
		aFloat9585 = (-aClass441_9572.aFloatArray4916[14] / aClass441_9572.aFloatArray4916[10]);
		method15026();
	}

	public void method3245(int i, int i_268_, int i_269_, int i_270_, int i_271_, int i_272_, int i_273_, int i_274_, int i_275_) {
		float f = (float) i_269_ - (float) i;
		float f_276_ = (float) i_270_ - (float) i_268_;
		if (f == 0.0F && f_276_ == 0.0F)
			f = 1.0F;
		else {
			float f_277_ = (float) (1.0 / Math.sqrt((double) (f * f + f_276_ * f_276_)));
			f *= f_277_;
			f_276_ *= f_277_;
		}
		method14971();
		Class340 class340 = aClass340Array9641[13];
		class340.method5955();
		class340.method5956(i_271_);
		method15018(i_272_);
		class340.method5960();
		method15028(false);
		i_275_ %= i_274_ + i_273_;
		float f_278_ = f * (float) i_273_;
		float f_279_ = f_276_ * (float) i_273_;
		float f_280_ = 0.0F;
		float f_281_ = 0.0F;
		float f_282_ = f_278_;
		float f_283_ = f_279_;
		if (i_275_ > i_273_) {
			f_280_ = f * (float) (i_273_ + i_274_ - i_275_);
			f_281_ = f_276_ * (float) (i_273_ + i_274_ - i_275_);
		} else {
			f_282_ = f * (float) (i_273_ - i_275_);
			f_283_ = f_276_ * (float) (i_273_ - i_275_);
		}
		float f_284_ = (float) i + f_280_;
		float f_285_ = (float) i_268_ + f_281_;
		float f_286_ = f * (float) i_274_;
		float f_287_ = f_276_ * (float) i_274_;
		for (;;) {
			if (i_269_ > i) {
				if (f_284_ > (float) i_269_)
					break;
				if (f_284_ + f_282_ > (float) i_269_)
					f_282_ = (float) i_269_ - f_284_;
			} else {
				if (f_284_ < (float) i_269_)
					break;
				if (f_284_ + f_282_ < (float) i_269_)
					f_282_ = (float) i_269_ - f_284_;
			}
			if (i_270_ > i_268_) {
				if (f_285_ > (float) i_270_)
					break;
				if (f_285_ + f_283_ > (float) i_270_)
					f_283_ = (float) i_270_ - f_285_;
			} else {
				if (f_285_ < (float) i_270_)
					break;
				if (f_285_ + f_283_ < (float) i_270_)
					f_283_ = (float) i_270_ - f_285_;
			}
			if (!method14938(f_284_, f_285_, 0.0F, f_284_ + f_282_, f_285_ + f_283_, 0.0F))
				return;
			method14924();
			f_284_ += f_286_ + f_282_;
			f_285_ += f_287_ + f_283_;
			f_282_ = f_278_;
			f_283_ = f_279_;
		}
		method15028(true);
		class340.method5970();
	}

	public void method3427(int i, int i_288_, int i_289_, int i_290_, int i_291_, int i_292_, int i_293_, int i_294_, int i_295_) {
		float f = (float) i_289_ - (float) i;
		float f_296_ = (float) i_290_ - (float) i_288_;
		if (f == 0.0F && f_296_ == 0.0F)
			f = 1.0F;
		else {
			float f_297_ = (float) (1.0 / Math.sqrt((double) (f * f + f_296_ * f_296_)));
			f *= f_297_;
			f_296_ *= f_297_;
		}
		method14971();
		Class340 class340 = aClass340Array9641[13];
		class340.method5955();
		class340.method5956(i_291_);
		method15018(i_292_);
		class340.method5960();
		method15028(false);
		i_295_ %= i_294_ + i_293_;
		float f_298_ = f * (float) i_293_;
		float f_299_ = f_296_ * (float) i_293_;
		float f_300_ = 0.0F;
		float f_301_ = 0.0F;
		float f_302_ = f_298_;
		float f_303_ = f_299_;
		if (i_295_ > i_293_) {
			f_300_ = f * (float) (i_293_ + i_294_ - i_295_);
			f_301_ = f_296_ * (float) (i_293_ + i_294_ - i_295_);
		} else {
			f_302_ = f * (float) (i_293_ - i_295_);
			f_303_ = f_296_ * (float) (i_293_ - i_295_);
		}
		float f_304_ = (float) i + f_300_;
		float f_305_ = (float) i_288_ + f_301_;
		float f_306_ = f * (float) i_294_;
		float f_307_ = f_296_ * (float) i_294_;
		for (;;) {
			if (i_289_ > i) {
				if (f_304_ > (float) i_289_)
					break;
				if (f_304_ + f_302_ > (float) i_289_)
					f_302_ = (float) i_289_ - f_304_;
			} else {
				if (f_304_ < (float) i_289_)
					break;
				if (f_304_ + f_302_ < (float) i_289_)
					f_302_ = (float) i_289_ - f_304_;
			}
			if (i_290_ > i_288_) {
				if (f_305_ > (float) i_290_)
					break;
				if (f_305_ + f_303_ > (float) i_290_)
					f_303_ = (float) i_290_ - f_305_;
			} else {
				if (f_305_ < (float) i_290_)
					break;
				if (f_305_ + f_303_ < (float) i_290_)
					f_303_ = (float) i_290_ - f_305_;
			}
			if (!method14938(f_304_, f_305_, 0.0F, f_304_ + f_302_, f_305_ + f_303_, 0.0F))
				return;
			method14924();
			f_304_ += f_306_ + f_302_;
			f_305_ += f_307_ + f_303_;
			f_302_ = f_298_;
			f_303_ = f_299_;
		}
		method15028(true);
		class340.method5970();
	}

	public final void method3426(int i, int i_308_, int i_309_, int i_310_, int i_311_, int i_312_, Class145 class145, int i_313_, int i_314_) {
		/* empty */
	}

	public final void method3303(int i, int i_315_, int i_316_, int i_317_, int i_318_, int i_319_, Class145 class145, int i_320_, int i_321_) {
		/* empty */
	}

	Class435 method15059() {
		if (aClass346_9565 == Class346.aClass346_3631) {
			if (!aBool9564) {
				aClass435_9542.method6803(aClass435_9677);
				aClass435_9542.method6820(aClass435_9551);
				aClass441_9557.method7090(aClass435_9542);
				aBool9564 = true;
			}
			return aClass435_9542;
		}
		return aClass435_9677;
	}

	public final void method3037(int i, int i_322_, int i_323_, int i_324_, int i_325_, int i_326_, int i_327_) {
		i += 1.0F;
		i_322_ += 1.0F;
		i_323_ += 1.0F;
		i_324_ += 1.0F;
		float f = (float) (i_323_ - i);
		float f_328_ = (float) (i_324_ - i_322_);
		float f_329_ = 1.0F / (float) Math.sqrt((double) (f * f + f_328_ * f_328_));
		f *= f_329_;
		f_328_ *= f_329_;
		i -= f;
		i_322_ -= f_328_;
		float f_330_ = -f_328_;
		float f_331_ = f;
		f_330_ *= 0.5F * (float) i_326_;
		f_331_ *= 0.5F * (float) i_326_;
		aClass148_Sub3_9636.method2469((float) i - f_330_, (float) i_322_ - f_331_, (float) i_323_ - f_330_, (float) i_324_ - f_331_, (float) i + f_330_, (float) i_322_ + f_331_, 0, i_325_, i_327_);
	}

	boolean method3229(int i, int i_332_, int i_333_, int i_334_, Class435 class435, Class430 class430) {
		Class441 class441 = aClass441_9560;
		class441.method7090(class435);
		class441.method7089(aClass441_9574);
		return class430.method6786(i, i_332_, i_333_, i_334_, class441, aFloat9603, aFloat9579, aFloat9578, aFloat9580);
	}

	public final Class441 method3307() {
		return aClass441_9570;
	}

	final void method15060() {
		aBool9564 = false;
	}

	public abstract boolean method15061(boolean bool);

	public final boolean method3032() {
		return aBool9685;
	}

	abstract void method15062();

	boolean method15063() {
		if (aClass350Array9654[2] != null && !aClass350Array9654[2].method6122()) {
			boolean bool = aClass354_9589.method6234(aClass350Array9654[2]);
			if (bool)
				aClass349_9586.method6106();
			return bool;
		}
		return false;
	}

	public final Class523_Sub8 method3258(int i) {
		Class523_Sub8_Sub1 class523_sub8_sub1 = new Class523_Sub8_Sub1(i);
		aClass708_9705.method14236(class523_sub8_sub1, -37308744);
		return class523_sub8_sub1;
	}

	public final void method3304(Class441 class441) {
		aClass441_9570.method7086(class441);
		method14965();
		if (aClass346_9565 == Class346.aClass346_3631)
			method14977();
	}

	public final Class148 method3278(int i, int i_335_, boolean bool, boolean bool_336_) {
		return new Class148_Sub3(this, i, i_335_, bool, bool_336_);
	}

	public final Class148 method3261(int i, int i_337_, boolean bool, boolean bool_338_) {
		return new Class148_Sub3(this, i, i_337_, bool, bool_338_);
	}

	public final void method3228(int i, int i_339_, int i_340_, int i_341_) {
		int i_342_;
		int i_343_;
		if (aClass168_1938 != null) {
			i_343_ = aClass168_1938.method2875();
			i_342_ = aClass168_1938.method2874();
		} else {
			i_342_ = 0;
			i_343_ = 0;
		}
		if (i <= 0 && i_340_ >= i_343_ - 1 && i_339_ <= 0 && i_341_ >= i_342_ - 1)
			method3071();
		else {
			anInt9633 = i >= 0 ? i : 0;
			anInt9590 = i_340_ <= i_343_ ? i_340_ : i_343_;
			anInt9587 = i_339_ >= 0 ? i_339_ : 0;
			anInt9588 = i_341_ <= i_342_ ? i_341_ : i_342_;
			if (!aBool9675 && (aBool9638 || method14942() == Class348.aClass348_3636)) {
				aBool9675 = true;
				method14961();
			}
			if (aBool9675)
				method15162();
		}
	}

	public final Class148 method3263(int[] is, int i, int i_344_, int i_345_, int i_346_, boolean bool) {
		return new Class148_Sub3(this, i_345_, i_346_, is, i, i_344_);
	}

	public final Class185 method3395(int i) {
		return new Class185_Sub2_Sub1(this, i);
	}

	boolean method3419(int i, int i_347_, int i_348_, int i_349_, Class435 class435, Class430 class430) {
		Class441 class441 = aClass441_9560;
		class441.method7090(class435);
		class441.method7089(aClass441_9574);
		return class430.method6786(i, i_347_, i_348_, i_349_, class441, aFloat9603, aFloat9579, aFloat9578, aFloat9580);
	}

	public final Class148 method3091(Class175 class175, boolean bool) {
		Class148 class148;
		if (class175.method2944() != 0 && class175.method2945() != 0) {
			int[] is = class175.method2959(false);
			class148 = method3103(is, 0, class175.method2944(), class175.method2944(), class175.method2945(), -1917785072);
		} else
			class148 = method3103(new int[] { 0 }, 0, 1, 1, 1, -1843083531);
		class148.method2426(class175.method2946(), class175.method2948(), class175.method2984(), class175.method2949());
		return class148;
	}

	public final Class148 method3280(int i, int i_350_, int i_351_, int i_352_, boolean bool) {
		Class148_Sub3 class148_sub3 = new Class148_Sub3(this, i_351_, i_352_, bool, false);
		class148_sub3.method2433(0, 0, i_351_, i_352_, i, i_350_);
		return class148_sub3;
	}

	public final Class145 method3268(int i, int i_353_, int[] is, int[] is_354_) {
		return Class145_Sub2.method15344(this, i, i_353_, is, is_354_);
	}

	public final boolean method3244() {
		return true;
	}

	public final void method3270(int i, Class145 class145, int i_355_, int i_356_) {
		method3287(false);
		aClass148_Sub3_9637.method2475(0.0F, 0.0F, (float) method3039(1768903386).method2875(), 0.0F, 0.0F, (float) method3039(1496620317).method2874(), 0, class145, i_355_, i_356_);
		method3287(true);
	}

	public final void method15064() {
		if (anInt9676 != 2) {
			method14971();
			method15024(false);
			method14982(false);
			method14978(false);
			method15249(false);
			method15018(1);
			method15020((byte) 0);
			anInt9676 = 2;
		}
	}

	abstract boolean method15065(Class158 class158, Class170 class170);

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

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

	public final boolean method3174() {
		return true;
	}

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

	public final Class167 method3166(Class179 class179, int i, int i_357_, int i_358_, int i_359_) {
		return new Class167_Sub2(this, class179, i, i_358_, i_359_, i_357_);
	}

	public final Class167 method3246(Class179 class179, int i, int i_360_, int i_361_, int i_362_) {
		return new Class167_Sub2(this, class179, i, i_361_, i_362_, i_360_);
	}

	final void method15066() {
		aBool9658 = false;
		if (aClass346_9565 == Class346.aClass346_3632) {
			method14975();
			method14977();
		}
	}

	public final int method3462(int i, int i_363_) {
		return i & i_363_ ^ i_363_;
	}

	public final int method3281(int i, int i_364_) {
		return i & i_364_ ^ i_364_;
	}

	public final int method3282(int i, int i_365_) {
		return i | i_365_;
	}

	public final int method3183(int i, int i_366_) {
		return i | i_366_;
	}

	public final Class142 method3081(int i, int i_367_, int[][] is, int[][] is_368_, int i_369_, int i_370_, int i_371_) {
		return new Class142_Sub1(this, i_370_, i_371_, i, i_367_, is, is_368_, i_369_);
	}

	public final Class142 method3367(int i, int i_372_, int[][] is, int[][] is_373_, int i_374_, int i_375_, int i_376_) {
		return new Class142_Sub1(this, i_375_, i_376_, i, i_372_, is, is_373_, i_374_);
	}

	public final Class142 method3312(int i, int i_377_, int[][] is, int[][] is_378_, int i_379_, int i_380_, int i_381_) {
		return new Class142_Sub1(this, i_380_, i_381_, i, i_377_, is, is_378_, i_379_);
	}

	Class441 method15067() {
		return aClass441_9550;
	}

	final Class441 method15068() {
		return aClass441_9572;
	}

	final Class441 method15069() {
		return aClass441_9572;
	}

	abstract void method15070();

	public final Class435 method3291() {
		return aClass435_9703;
	}

	public final int method3292() {
		return anInt9524 - 2;
	}

	public final int method3169() {
		return anInt9524 - 2;
	}

	public final void method3295(int i, Class523_Sub20[] class523_sub20s) {
		for (int i_382_ = 0; i_382_ < i; i_382_++)
			aClass523_Sub20Array9671[i_382_] = class523_sub20s[i_382_];
		anInt9602 = i;
	}

	public final Class148 method3338(int i, int i_383_, boolean bool, boolean bool_384_) {
		return new Class148_Sub3(this, i, i_383_, bool, bool_384_);
	}

	public final void method3297(Class435 class435) {
		aClass435_9551 = class435;
		aClass441_9629.method7090(aClass435_9551);
		aClass441_9555.method7086(aClass441_9629);
		aClass441_9555.method7124();
		aClass435_9552.method6803(class435);
		aClass435_9552.method6857();
		aClass441_9650.method7090(aClass435_9552);
		method14965();
		if (aClass346_9565 == Class346.aClass346_3631)
			method14972();
	}

	public final void method3247(Class435 class435) {
		aClass435_9551 = class435;
		aClass441_9629.method7090(aClass435_9551);
		aClass441_9555.method7086(aClass441_9629);
		aClass441_9555.method7124();
		aClass435_9552.method6803(class435);
		aClass435_9552.method6857();
		aClass441_9650.method7090(aClass435_9552);
		method14965();
		if (aClass346_9565 == Class346.aClass346_3631)
			method14972();
	}

	abstract void method15071();

	final void method3467(float f, float f_385_, float f_386_, float f_387_, float f_388_, float f_389_) {
		Class350_Sub3.aFloat10266 = f;
		Class350_Sub3.aFloat10268 = f_385_;
		Class350_Sub3.aFloat10264 = f_386_;
		Class350_Sub3.aFloat10271 = f_389_;
	}

	public abstract void method15072();

	public Class435 method3302() {
		return aClass435_9551;
	}

	public Class435 method3201() {
		return aClass435_9551;
	}

	public abstract Class265 method15073(String string);

	public final Class441 method3289() {
		return aClass441_9570;
	}

	public final boolean method3181() {
		return false;
	}

	final void method15074(byte i) {
		if (aByte9672 != i) {
			aByte9672 = i;
			if (i == 0) {
				method15019(0);
				method15018(1);
			} else {
				method15019(3);
				method15018(3);
			}
			method15021();
		}
	}

	public final Class441 method3308() {
		return aClass441_9570;
	}

	public final void method3361(float f) {
		if (aFloat9643 != f) {
			aFloat9643 = f;
			method14984();
			method14987();
		}
	}

	void method15075() {
		if (aClass354_9589 != null)
			aClass354_9589.method6206();
		if (aClass350Array9654 != null) {
			for (int i = 0; i < aClass350Array9654.length; i++) {
				if (aClass350Array9654[i] != null && aClass350Array9654[i].method6122())
					aClass350Array9654[i].method6137();
			}
		}
		aClass335_9678 = new Class335(this);
		method15042();
		method14936();
		method14937();
		aClass360_9596 = new Class360(this, 1024);
		aClass335_9678.method5913(this);
		if (aBool9682)
			aClass356_9639 = new Class356(this, 1024);
	}

	public final void method3226(float f) {
		if (aFloat9643 != f) {
			aFloat9643 = f;
			method14984();
			method14987();
		}
	}

	void method15076() {
		method14945(7);
		method14932();
	}

	public final void method3313(int i, float f, float f_390_, float f_391_, float f_392_, float f_393_) {
		boolean bool = anInt9591 != i;
		f *= 0.5F;
		f_390_ *= 0.5F;
		if (bool || aFloat9617 != f || aFloat9618 != f_390_) {
			anInt9591 = i;
			aFloat9617 = f;
			aFloat9618 = f_390_;
			if (bool) {
				aFloat9689 = (float) (anInt9591 & 0xff0000) / 1.671168E7F;
				aFloat9614 = (float) (anInt9591 & 0xff00) / 65280.0F;
				aFloat9704 = (float) (anInt9591 & 0xff) / 255.0F;
				method14984();
			}
			method14985();
		}
		if (aFloatArray9622[0] != f_391_ || aFloatArray9622[1] != f_392_ || aFloatArray9622[2] != f_393_) {
			aFloatArray9622[0] = f_391_;
			aFloatArray9622[1] = f_392_;
			aFloatArray9622[2] = f_393_;
			aFloatArray9611[0] = -f_391_;
			aFloatArray9611[1] = -f_392_;
			aFloatArray9611[2] = -f_393_;
			float f_394_ = (float) (1.0 / Math.sqrt((double) (f_391_ * f_391_ + f_392_ * f_392_ + f_393_ * f_393_)));
			aFloatArray9608[0] = f_391_ * f_394_;
			aFloatArray9608[1] = f_392_ * f_394_;
			aFloatArray9608[2] = f_393_ * f_394_;
			aFloatArray9582[0] = -aFloatArray9608[0];
			aFloatArray9582[1] = -aFloatArray9608[1];
			aFloatArray9582[2] = -aFloatArray9608[2];
			method15077();
			anInt9624 = (int) (f_391_ * 256.0F / f_392_);
			anInt9625 = (int) (f_393_ * 256.0F / f_392_);
		}
		method14987();
	}

	public final void method3121(int i, float f, float f_395_, float f_396_, float f_397_, float f_398_) {
		boolean bool = anInt9591 != i;
		f *= 0.5F;
		f_395_ *= 0.5F;
		if (bool || aFloat9617 != f || aFloat9618 != f_395_) {
			anInt9591 = i;
			aFloat9617 = f;
			aFloat9618 = f_395_;
			if (bool) {
				aFloat9689 = (float) (anInt9591 & 0xff0000) / 1.671168E7F;
				aFloat9614 = (float) (anInt9591 & 0xff00) / 65280.0F;
				aFloat9704 = (float) (anInt9591 & 0xff) / 255.0F;
				method14984();
			}
			method14985();
		}
		if (aFloatArray9622[0] != f_396_ || aFloatArray9622[1] != f_397_ || aFloatArray9622[2] != f_398_) {
			aFloatArray9622[0] = f_396_;
			aFloatArray9622[1] = f_397_;
			aFloatArray9622[2] = f_398_;
			aFloatArray9611[0] = -f_396_;
			aFloatArray9611[1] = -f_397_;
			aFloatArray9611[2] = -f_398_;
			float f_399_ = (float) (1.0 / Math.sqrt((double) (f_396_ * f_396_ + f_397_ * f_397_ + f_398_ * f_398_)));
			aFloatArray9608[0] = f_396_ * f_399_;
			aFloatArray9608[1] = f_397_ * f_399_;
			aFloatArray9608[2] = f_398_ * f_399_;
			aFloatArray9582[0] = -aFloatArray9608[0];
			aFloatArray9582[1] = -aFloatArray9608[1];
			aFloatArray9582[2] = -aFloatArray9608[2];
			method15077();
			anInt9624 = (int) (f_396_ * 256.0F / f_397_);
			anInt9625 = (int) (f_398_ * 256.0F / f_397_);
		}
		method14987();
	}

	public final void method3315(int i, float f, float f_400_, float f_401_, float f_402_, float f_403_) {
		boolean bool = anInt9591 != i;
		f *= 0.5F;
		f_400_ *= 0.5F;
		if (bool || aFloat9617 != f || aFloat9618 != f_400_) {
			anInt9591 = i;
			aFloat9617 = f;
			aFloat9618 = f_400_;
			if (bool) {
				aFloat9689 = (float) (anInt9591 & 0xff0000) / 1.671168E7F;
				aFloat9614 = (float) (anInt9591 & 0xff00) / 65280.0F;
				aFloat9704 = (float) (anInt9591 & 0xff) / 255.0F;
				method14984();
			}
			method14985();
		}
		if (aFloatArray9622[0] != f_401_ || aFloatArray9622[1] != f_402_ || aFloatArray9622[2] != f_403_) {
			aFloatArray9622[0] = f_401_;
			aFloatArray9622[1] = f_402_;
			aFloatArray9622[2] = f_403_;
			aFloatArray9611[0] = -f_401_;
			aFloatArray9611[1] = -f_402_;
			aFloatArray9611[2] = -f_403_;
			float f_404_ = (float) (1.0 / Math.sqrt((double) (f_401_ * f_401_ + f_402_ * f_402_ + f_403_ * f_403_)));
			aFloatArray9608[0] = f_401_ * f_404_;
			aFloatArray9608[1] = f_402_ * f_404_;
			aFloatArray9608[2] = f_403_ * f_404_;
			aFloatArray9582[0] = -aFloatArray9608[0];
			aFloatArray9582[1] = -aFloatArray9608[1];
			aFloatArray9582[2] = -aFloatArray9608[2];
			method15077();
			anInt9624 = (int) (f_401_ * 256.0F / f_402_);
			anInt9625 = (int) (f_403_ * 256.0F / f_402_);
		}
		method14987();
	}

	public final void method3316(int i, int i_405_, int i_406_) {
		if (anInt9662 != i || anInt9663 != i_405_ || anInt9664 != i_406_) {
			anInt9662 = i;
			anInt9663 = i_405_;
			anInt9664 = i_406_;
			method15026();
			method15220();
		}
	}

	public final void method3232(int i, int i_407_, int i_408_) {
		if (anInt9662 != i || anInt9663 != i_407_ || anInt9664 != i_408_) {
			anInt9662 = i;
			anInt9663 = i_407_;
			anInt9664 = i_408_;
			method15026();
			method15220();
		}
	}

	public final void method3143(int i, int i_409_, int i_410_) {
		if (anInt9662 != i || anInt9663 != i_409_ || anInt9664 != i_410_) {
			anInt9662 = i;
			anInt9663 = i_409_;
			anInt9664 = i_410_;
			method15026();
			method15220();
		}
	}

	public final void method3321(Class185 class185) {
		aClass185_Sub2_9655 = (Class185_Sub2) class185;
	}

	public final void method3363(Class185 class185) {
		aClass185_Sub2_9655 = (Class185_Sub2) class185;
	}

	public final void method3383(Class185 class185) {
		aClass185_Sub2_9655 = (Class185_Sub2) class185;
	}

	abstract void method15077();

	public final void method3325(int i, int i_411_, int i_412_, int i_413_) {
		if (aClass354_9589 != null) {
			for (int i_414_ = 0; i_414_ < aClass350Array9654.length; i_414_++) {
				if (aClass350Array9654[i_414_] != null && aClass350Array9654[i_414_].method6122() && !aClass350Array9654[i_414_].method6124()) {
					if (!aClass354_9589.method6211(i, i_411_, i_412_, i_413_)) {
						aClass354_9589.method6214();
						aClass354_9589 = null;
					}
					break;
				}
			}
		}
	}

	final void method3087(int i, int i_415_, int i_416_, int i_417_, int i_418_) {
		method3089(i, i_415_, i + i_416_, i_415_, i_417_, i_418_);
	}

	static int method15078(char c, char c_419_, char c_420_, char c_421_) {
		return ((c & 0xff) << 0 | (c_419_ & 0xff) << 8 | (c_420_ & 0xff) << 16 | (c_421_ & 0xff) << 24);
	}

	abstract void method15079();

	public final void method15080(Interface43 interface43) {
		if (anInterface43Array9627[anInt9626] != interface43) {
			anInterface43Array9627[anInt9626] = interface43;
			if (interface43 != null)
				interface43.method297();
			else
				anInterface37_9669.method297();
			anInt9676 &= ~0x11;
		}
	}

	public final boolean method3173() {
		return true;
	}

	public void method3086() {
		if (aClass356_9639 != null)
			aClass356_9639.method6250();
	}

	abstract void method15081();

	public boolean method3333() {
		return (aClass350Array9654[1] != null && aClass350Array9654[1].method6122());
	}

	public boolean method3262() {
		return (aClass350Array9654[1] != null && aClass350Array9654[1].method6122());
	}

	public boolean method3127() {
		return (aClass350Array9654[1] != null && aClass350Array9654[1].method6122());
	}

	Class178_Sub2(Class172 class172, Interface25 interface25, Interface46 interface46, Interface48 interface48, Interface45 interface45, Class472 class472, int i, int i_422_) {
		super(class172, interface25, interface46, interface48, interface45);
		aClass435_9677 = new Class435();
		aClass441_9550 = new Class441();
		aClass435_9551 = new Class435();
		aClass435_9552 = new Class435();
		aClass441_9629 = new Class441();
		aClass441_9650 = new Class441();
		aClass441_9555 = new Class441();
		aClass435_9542 = new Class435();
		aClass441_9557 = new Class441();
		aClass435_9559 = new Class435();
		aClass441_9560 = new Class441();
		aClass441_9561 = new Class441();
		aClass437_9562 = new Class437();
		aFloatArray9610 = new float[4];
		aBool9564 = false;
		aClass346_9565 = Class346.aClass346_3633;
		aBool9658 = false;
		aClass441_9567 = new Class441();
		aClass441_9621 = new Class441();
		aBool9569 = false;
		aClass441_9570 = new Class441();
		aClass441_9571 = new Class441();
		aClass441_9634 = aClass441_9571;
		aClass441_9572 = new Class441();
		aClass441_9574 = new Class441();
		aClass441_9575 = new Class441();
		aFloatArrayArray9576 = new float[6][4];
		aFloat9581 = 0.0F;
		aFloat9605 = 1.0F;
		aFloat9583 = 0.0F;
		aFloat9584 = 1.0F;
		aFloat9585 = 50.0F;
		aFloat9702 = 3584.0F;
		anInt9587 = 0;
		anInt9588 = 0;
		anInt9633 = 0;
		anInt9590 = 0;
		anInt9615 = 0;
		anInt9592 = 0;
		anInt9593 = 0;
		anInt9594 = 0;
		anInt9628 = 0;
		anInt9649 = 0;
		anInt9597 = 0;
		anInt9598 = 0;
		anInt9619 = 0;
		anInt9600 = 0;
		aBool9604 = true;
		aBool9558 = false;
		aBool9526 = true;
		aBool9606 = false;
		aBool9674 = false;
		aBool9679 = true;
		aBool9548 = false;
		aFloatArray9608 = new float[] { 0.0F, 0.0F, 1.0F, 0.0F };
		aFloatArray9582 = new float[] { 0.0F, 0.0F, -1.0F, 0.0F };
		aFloatArray9622 = new float[] { 0.0F, 0.0F, 1.0F, 0.0F };
		aFloatArray9611 = new float[] { 0.0F, 0.0F, 1.0F, 0.0F };
		anInt9591 = 16777215;
		aFloat9689 = 1.0F;
		aFloat9614 = 1.0F;
		aFloat9704 = 1.0F;
		aFloat9643 = 1.0F;
		aFloat9617 = -1.0F;
		aFloat9618 = -1.0F;
		anInt9607 = 8;
		anInt9623 = 3;
		anInt9626 = 0;
		aBool9638 = false;
		aClass340Array9641 = new Class340[16];
		aClass350Array9654 = new Class350[4];
		aBool9657 = false;
		aBool9573 = true;
		anInt9662 = -1;
		anInt9663 = -1;
		anInt9664 = 0;
		anInt9667 = 1;
		anInt9653 = -1;
		aClass363_9666 = Class363.aClass363_3752;
		aBool9549 = true;
		aBool9563 = true;
		aByte9672 = (byte) 0;
		anInt9673 = 2;
		aBool9599 = false;
		new Stream();
		aClass167_Sub2Array9700 = new Class167_Sub2[8];
		aClass167_Sub2Array9595 = new Class167_Sub2[8];
		aClass441_9554 = new Class441();
		aClass435_9703 = new Class435();
		try {
			aClass472_9535 = class472;
			anInt9661 = i;
			anInt9670 = i_422_;
			Class226.method4166(false, true, 240723773);
			if (anInterface25_1923 != null)
				aClass349_9586 = new Class349(this, anInterface25_1923);
			else
				aClass349_9586 = null;
			if (anInt9670 == 0)
				anIntArray9537 = Class710.anIntArray8839;
			else
				anIntArray9537 = Class638.anIntArray8307;
			try {
				Field field = sun.misc.Unsafe.class.getDeclaredField("theUnsafe");
				field.setAccessible(true);
				anUnsafe9538 = (Unsafe) field.get(null);
			} catch (Exception exception) {
				/* empty */
			}
			method15125(4194304);
		} catch (Throwable throwable) {
			throwable.printStackTrace();
			method3024(-1864377370);
			if (throwable instanceof OutOfMemoryError)
				throw (OutOfMemoryError) throwable;
			throw new RuntimeException("");
		}
		method3099(method3385(131072));
	}

	public void method3337(float f, float f_423_, float f_424_, float f_425_, float f_426_) {
		Class350_Sub2.aFloat10248 = f;
		Class350_Sub2.aFloat10245 = f_423_;
		Class350_Sub2.aFloat10250 = f_424_;
		Class350_Sub2.aFloat10251 = f_425_;
		Class350_Sub2.aFloat10246 = f_426_;
	}

	public void method3400(float f, float f_427_, float f_428_, float f_429_, float f_430_) {
		Class350_Sub2.aFloat10248 = f;
		Class350_Sub2.aFloat10245 = f_427_;
		Class350_Sub2.aFloat10250 = f_428_;
		Class350_Sub2.aFloat10251 = f_429_;
		Class350_Sub2.aFloat10246 = f_430_;
	}

	public Class165 method3339(int[] is) {
		return new Class165_Sub2(this, is);
	}

	ByteBuffer method15082(int i) {
		ByteBuffer bytebuffer = ByteBuffer.allocateDirect(i);
		bytebuffer.order(ByteOrder.nativeOrder());
		return bytebuffer;
	}

	abstract Interface37 method15083(Class158 class158, Class170 class170, int i, int i_431_);

	public boolean method3317() {
		return (aClass350Array9654[2] != null && aClass350Array9654[2].method6122());
	}

	public boolean method3343() {
		return (aClass350Array9654[2] != null && aClass350Array9654[2].method6122());
	}

	public final boolean method3213() {
		if (aClass350Array9654[3] != null && !aClass350Array9654[3].method6122()) {
			boolean bool = aClass354_9589.method6234(aClass350Array9654[3]);
			if (bool)
				aClass349_9586.method6106();
			return bool;
		}
		return false;
	}

	public final boolean method3345() {
		if (aClass350Array9654[3] != null && !aClass350Array9654[3].method6122()) {
			boolean bool = aClass354_9589.method6234(aClass350Array9654[3]);
			if (bool)
				aClass349_9586.method6106();
			return bool;
		}
		return false;
	}

	public final void method3346() {
		if (aClass350Array9654[3] != null && aClass350Array9654[3].method6122()) {
			aClass354_9589.method6209(aClass350Array9654[3]);
			aClass349_9586.method6106();
		}
	}

	public abstract Class265 method15084(String string);

	public final boolean method3348() {
		return (aClass350Array9654[3] != null && aClass350Array9654[3].method6122());
	}

	public final boolean method3214() {
		return (aClass350Array9654[3] != null && aClass350Array9654[3].method6122());
	}

	public final boolean method3106() {
		return (aClass350Array9654[3] != null && aClass350Array9654[3].method6122());
	}

	public final void method3256(int i, Class163 class163) {
		anInt9601 = i;
		aClass163_9659 = class163;
		aBool9656 = true;
	}

	final void method15085() {
		method14984();
		method14985();
		method14983();
		method14941();
		method15077();
		method14987();
		method15276();
		method14980();
		method15304();
		method15220();
		method15027();
		method15023();
		method15022();
		method15021();
		for (int i = anInt9680 - 1; i >= 0; i--) {
			method15255(i);
			method15016();
			method14955();
			method15012();
		}
		method15097();
		method15217();
	}

	public abstract void method15086(Class441 class441);

	public final void method3175() {
		aBool9656 = false;
	}

	public final int method3187() {
		return anInt9648 + anInt9530 + anInt9684;
	}

	public final void method3356(int i, int i_432_, float f, int i_433_, int i_434_, float f_435_, int i_436_, int i_437_, float f_438_, int i_439_, int i_440_, int i_441_, int i_442_) {
		/* empty */
	}

	public final void method3357(int i, int i_443_, float f, int i_444_, int i_445_, float f_446_, int i_447_, int i_448_, float f_449_, int i_450_, int i_451_, int i_452_, int i_453_) {
		/* empty */
	}

	abstract Interface34 method15087(Class158 class158, int i, int i_454_, int i_455_, boolean bool, byte[] is);

	public void method3359(float f, float f_456_, float f_457_, float[] fs) {
		float f_458_ = (aClass441_9574.aFloatArray4916[15] + aClass441_9574.aFloatArray4916[3] * f + aClass441_9574.aFloatArray4916[7] * f_456_ + aClass441_9574.aFloatArray4916[11] * f_457_);
		float f_459_ = (aClass441_9574.aFloatArray4916[12] + aClass441_9574.aFloatArray4916[0] * f + aClass441_9574.aFloatArray4916[4] * f_456_ + aClass441_9574.aFloatArray4916[8] * f_457_);
		float f_460_ = (aClass441_9574.aFloatArray4916[13] + aClass441_9574.aFloatArray4916[1] * f + aClass441_9574.aFloatArray4916[5] * f_456_ + aClass441_9574.aFloatArray4916[9] * f_457_);
		float f_461_ = (aClass441_9629.aFloatArray4916[14] + aClass441_9629.aFloatArray4916[2] * f + aClass441_9629.aFloatArray4916[6] * f_456_ + aClass441_9629.aFloatArray4916[10] * f_457_);
		fs[0] = aFloat9603 + aFloat9578 * f_459_ / f_458_;
		fs[1] = aFloat9579 + aFloat9580 * f_460_ / f_458_;
		fs[2] = f_461_;
	}

	public void method3040(float f, float f_462_, float f_463_, float[] fs) {
		float f_464_ = (aClass441_9574.aFloatArray4916[15] + aClass441_9574.aFloatArray4916[3] * f + aClass441_9574.aFloatArray4916[7] * f_462_ + aClass441_9574.aFloatArray4916[11] * f_463_);
		float f_465_ = (aClass441_9574.aFloatArray4916[12] + aClass441_9574.aFloatArray4916[0] * f + aClass441_9574.aFloatArray4916[4] * f_462_ + aClass441_9574.aFloatArray4916[8] * f_463_);
		float f_466_ = (aClass441_9574.aFloatArray4916[13] + aClass441_9574.aFloatArray4916[1] * f + aClass441_9574.aFloatArray4916[5] * f_462_ + aClass441_9574.aFloatArray4916[9] * f_463_);
		float f_467_ = (aClass441_9629.aFloatArray4916[14] + aClass441_9629.aFloatArray4916[2] * f + aClass441_9629.aFloatArray4916[6] * f_462_ + aClass441_9629.aFloatArray4916[10] * f_463_);
		fs[0] = aFloat9603 + aFloat9578 * f_465_ / f_464_;
		fs[1] = aFloat9579 + aFloat9580 * f_466_ / f_464_;
		fs[2] = f_467_;
	}

	public void method3212(float f, float f_468_, float f_469_, float[] fs) {
		float f_470_ = (aClass441_9574.aFloatArray4916[14] + aClass441_9574.aFloatArray4916[2] * f + aClass441_9574.aFloatArray4916[6] * f_468_ + aClass441_9574.aFloatArray4916[10] * f_469_);
		float f_471_ = (aClass441_9574.aFloatArray4916[15] + aClass441_9574.aFloatArray4916[3] * f + aClass441_9574.aFloatArray4916[7] * f_468_ + aClass441_9574.aFloatArray4916[11] * f_469_);
		if (f_470_ < -f_471_ || f_470_ > f_471_) {
			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_ = (aClass441_9574.aFloatArray4916[12] + aClass441_9574.aFloatArray4916[0] * f + aClass441_9574.aFloatArray4916[4] * f_468_ + aClass441_9574.aFloatArray4916[8] * f_469_);
			if (f_474_ < -f_471_ || f_474_ > f_471_) {
				float[] fs_475_ = fs;
				float[] fs_476_ = fs;
				fs[2] = Float.NaN;
				fs_476_[1] = Float.NaN;
				fs_475_[0] = Float.NaN;
			} else {
				float f_477_ = (aClass441_9574.aFloatArray4916[13] + aClass441_9574.aFloatArray4916[1] * f + aClass441_9574.aFloatArray4916[5] * f_468_ + aClass441_9574.aFloatArray4916[9] * f_469_);
				if (f_477_ < -f_471_ || f_477_ > f_471_) {
					float[] fs_478_ = fs;
					float[] fs_479_ = fs;
					fs[2] = Float.NaN;
					fs_479_[1] = Float.NaN;
					fs_478_[0] = Float.NaN;
				} else {
					float f_480_ = (aClass441_9629.aFloatArray4916[14] + aClass441_9629.aFloatArray4916[2] * f + aClass441_9629.aFloatArray4916[6] * f_468_ + aClass441_9629.aFloatArray4916[10] * f_469_);
					fs[0] = aFloat9603 + aFloat9578 * f_474_ / f_471_;
					fs[1] = aFloat9579 + aFloat9580 * f_477_ / f_471_;
					fs[2] = f_480_;
				}
			}
		}
	}

	public void method3362(float f, float f_481_, float f_482_, float[] fs) {
		float f_483_ = (aClass441_9574.aFloatArray4916[14] + aClass441_9574.aFloatArray4916[2] * f + aClass441_9574.aFloatArray4916[6] * f_481_ + aClass441_9574.aFloatArray4916[10] * f_482_);
		float f_484_ = (aClass441_9574.aFloatArray4916[15] + aClass441_9574.aFloatArray4916[3] * f + aClass441_9574.aFloatArray4916[7] * f_481_ + aClass441_9574.aFloatArray4916[11] * f_482_);
		if (f_483_ < -f_484_ || f_483_ > f_484_) {
			float[] fs_485_ = fs;
			float[] fs_486_ = fs;
			fs[2] = Float.NaN;
			fs_486_[1] = Float.NaN;
			fs_485_[0] = Float.NaN;
		} else {
			float f_487_ = (aClass441_9574.aFloatArray4916[12] + aClass441_9574.aFloatArray4916[0] * f + aClass441_9574.aFloatArray4916[4] * f_481_ + aClass441_9574.aFloatArray4916[8] * f_482_);
			if (f_487_ < -f_484_ || f_487_ > f_484_) {
				float[] fs_488_ = fs;
				float[] fs_489_ = fs;
				fs[2] = Float.NaN;
				fs_489_[1] = Float.NaN;
				fs_488_[0] = Float.NaN;
			} else {
				float f_490_ = (aClass441_9574.aFloatArray4916[13] + aClass441_9574.aFloatArray4916[1] * f + aClass441_9574.aFloatArray4916[5] * f_481_ + aClass441_9574.aFloatArray4916[9] * f_482_);
				if (f_490_ < -f_484_ || f_490_ > f_484_) {
					float[] fs_491_ = fs;
					float[] fs_492_ = fs;
					fs[2] = Float.NaN;
					fs_492_[1] = Float.NaN;
					fs_491_[0] = Float.NaN;
				} else {
					float f_493_ = (aClass441_9629.aFloatArray4916[14] + aClass441_9629.aFloatArray4916[2] * f + aClass441_9629.aFloatArray4916[6] * f_481_ + aClass441_9629.aFloatArray4916[10] * f_482_);
					fs[0] = aFloat9603 + aFloat9578 * f_487_ / f_484_;
					fs[1] = aFloat9579 + aFloat9580 * f_490_ / f_484_;
					fs[2] = f_493_;
				}
			}
		}
	}

	public void method3318(float f, float f_494_, float f_495_, float[] fs) {
		float f_496_ = (aClass441_9574.aFloatArray4916[14] + aClass441_9574.aFloatArray4916[2] * f + aClass441_9574.aFloatArray4916[6] * f_494_ + aClass441_9574.aFloatArray4916[10] * f_495_);
		float f_497_ = (aClass441_9574.aFloatArray4916[15] + aClass441_9574.aFloatArray4916[3] * f + aClass441_9574.aFloatArray4916[7] * f_494_ + aClass441_9574.aFloatArray4916[11] * f_495_);
		if (f_496_ < -f_497_ || f_496_ > f_497_) {
			float[] fs_498_ = fs;
			float[] fs_499_ = fs;
			fs[2] = Float.NaN;
			fs_499_[1] = Float.NaN;
			fs_498_[0] = Float.NaN;
		} else {
			float f_500_ = (aClass441_9574.aFloatArray4916[12] + aClass441_9574.aFloatArray4916[0] * f + aClass441_9574.aFloatArray4916[4] * f_494_ + aClass441_9574.aFloatArray4916[8] * f_495_);
			if (f_500_ < -f_497_ || f_500_ > f_497_) {
				float[] fs_501_ = fs;
				float[] fs_502_ = fs;
				fs[2] = Float.NaN;
				fs_502_[1] = Float.NaN;
				fs_501_[0] = Float.NaN;
			} else {
				float f_503_ = (aClass441_9574.aFloatArray4916[13] + aClass441_9574.aFloatArray4916[1] * f + aClass441_9574.aFloatArray4916[5] * f_494_ + aClass441_9574.aFloatArray4916[9] * f_495_);
				if (f_503_ < -f_497_ || f_503_ > f_497_) {
					float[] fs_504_ = fs;
					float[] fs_505_ = fs;
					fs[2] = Float.NaN;
					fs_505_[1] = Float.NaN;
					fs_504_[0] = Float.NaN;
				} else {
					float f_506_ = (aClass441_9629.aFloatArray4916[14] + aClass441_9629.aFloatArray4916[2] * f + aClass441_9629.aFloatArray4916[6] * f_494_ + aClass441_9629.aFloatArray4916[10] * f_495_);
					fs[0] = aFloat9603 + aFloat9578 * f_500_ / f_497_;
					fs[1] = aFloat9579 + aFloat9580 * f_503_ / f_497_;
					fs[2] = f_506_;
				}
			}
		}
	}

	public void method3364(float f, float f_507_, float f_508_, float[] fs) {
		float f_509_ = (aClass441_9574.aFloatArray4916[14] + aClass441_9574.aFloatArray4916[2] * f + aClass441_9574.aFloatArray4916[6] * f_507_ + aClass441_9574.aFloatArray4916[10] * f_508_);
		float f_510_ = (aClass441_9574.aFloatArray4916[15] + aClass441_9574.aFloatArray4916[3] * f + aClass441_9574.aFloatArray4916[7] * f_507_ + aClass441_9574.aFloatArray4916[11] * f_508_);
		if (f_509_ < -f_510_ || f_509_ > f_510_) {
			float[] fs_511_ = fs;
			float[] fs_512_ = fs;
			fs[2] = Float.NaN;
			fs_512_[1] = Float.NaN;
			fs_511_[0] = Float.NaN;
		} else {
			float f_513_ = (aClass441_9574.aFloatArray4916[12] + aClass441_9574.aFloatArray4916[0] * f + aClass441_9574.aFloatArray4916[4] * f_507_ + aClass441_9574.aFloatArray4916[8] * f_508_);
			if (f_513_ < -f_510_ || f_513_ > f_510_) {
				float[] fs_514_ = fs;
				float[] fs_515_ = fs;
				fs[2] = Float.NaN;
				fs_515_[1] = Float.NaN;
				fs_514_[0] = Float.NaN;
			} else {
				float f_516_ = (aClass441_9574.aFloatArray4916[13] + aClass441_9574.aFloatArray4916[1] * f + aClass441_9574.aFloatArray4916[5] * f_507_ + aClass441_9574.aFloatArray4916[9] * f_508_);
				if (f_516_ < -f_510_ || f_516_ > f_510_) {
					float[] fs_517_ = fs;
					float[] fs_518_ = fs;
					fs[2] = Float.NaN;
					fs_518_[1] = Float.NaN;
					fs_517_[0] = Float.NaN;
				} else {
					float f_519_ = (aClass441_9629.aFloatArray4916[14] + aClass441_9629.aFloatArray4916[2] * f + aClass441_9629.aFloatArray4916[6] * f_507_ + aClass441_9629.aFloatArray4916[10] * f_508_);
					fs[0] = aFloat9603 + aFloat9578 * f_513_ / f_510_;
					fs[1] = aFloat9579 + aFloat9580 * f_516_ / f_510_;
					fs[2] = f_519_;
				}
			}
		}
	}

	public final boolean method3097() {
		return true;
	}

	public final boolean method3374() {
		return true;
	}

	public final void method3239(int i, int i_520_, int i_521_, int i_522_, int i_523_, int i_524_) {
		if (aBool9685 && anInt9661 != 0)
			method15028(false);
		if (aBool9604) {
			method3287(false);
			aClass148_Sub3_9636.method2439(i, i_520_, i_521_, i_522_, 0, i_523_, i_524_);
			method3287(true);
		} else
			aClass148_Sub3_9636.method2439(i, i_520_, i_521_, i_522_, 0, i_523_, i_524_);
		if (aBool9685 && anInt9661 != 0)
			method15028(true);
	}

	public final boolean method3084() {
		return true;
	}

	public final boolean method3377() {
		return true;
	}

	final void method3382(int i, int i_525_, int i_526_, int i_527_, int i_528_) {
		/* empty */
	}

	final void method3140(int i, int i_529_, int i_530_, int i_531_, int i_532_) {
		/* empty */
	}

	public final void method3384(int i, int i_533_, int i_534_, int i_535_, int i_536_, int i_537_) {
		method3277(i, i_533_, i_534_, i_535_, i_536_, 1, i_537_);
	}

	public final void method3452(int i, int i_538_, int i_539_, int i_540_, int i_541_, int i_542_) {
		method3277(i, i_538_, i_539_, i_540_, i_541_, 1, i_542_);
	}

	public final void method3386(int i, int i_543_, int i_544_, int i_545_, int i_546_, int i_547_) {
		method3277(i, i_543_, i_544_, i_545_, i_546_, 1, i_547_);
	}

	public void method3162(int i, int i_548_, int i_549_, int i_550_, int i_551_, int i_552_, Class145 class145, int i_553_, int i_554_, int i_555_, int i_556_, int i_557_) {
		/* empty */
	}

	abstract void method15088();

	public abstract float method15089();

	final Class441 method15090() {
		if (aClass346_9565 == Class346.aClass346_3631)
			return aClass441_9629;
		return aClass441_9536;
	}

	public final void method15091(Class377 class377) {
		aClass377Array9665[anInt9626] = class377;
		method15264();
	}

	public final void method3352(int i, Class163 class163) {
		anInt9601 = i;
		aClass163_9659 = class163;
		aBool9656 = true;
	}

	public abstract void method15092(Class441 class441, Class441 class441_558_, Class441 class441_559_);

	public final void method3406(int i) {
		anInt9623 = 0;
		for (/**/; i > 1; i >>= 1)
			anInt9623++;
		anInt9607 = 1 << anInt9623;
	}

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

	public final Class185 method3396(int i) {
		return new Class185_Sub2_Sub1(this, i);
	}

	final void method15093() {
		if (aClass340_9640 != null)
			aClass340_9640.method5979();
		method15027();
	}

	final void method15094() {
		if (method14920())
			method14989();
		anInt9620 = anInt9602;
	}

	public final boolean method3350() {
		return true;
	}

	public final void method15095(int i) {
		switch (i) {
		case 3:
			method15003(Class374.aClass374_3910, Class374.aClass374_3908);
			break;
		case 0:
			method15003(Class374.aClass374_3908, Class374.aClass374_3908);
			break;
		case 2:
			method15003(Class374.aClass374_3912, Class374.aClass374_3909);
			break;
		case 1:
			method15003(Class374.aClass374_3909, Class374.aClass374_3909);
			break;
		case 4:
			method15003(Class374.aClass374_3911, Class374.aClass374_3911);
			break;
		}
	}

	public void method3442(boolean bool) {
		aBool9638 = bool;
	}

	public void method3306(boolean bool) {
		aBool9638 = bool;
	}

	final void method15096() {
		method15070();
	}

	abstract void method15097();

	final void method15098(boolean bool) {
		if (bool != aBool9660) {
			aBool9660 = bool;
			method15220();
			anInt9676 &= ~0x1f;
		}
	}

	public final void method3330(int i, int i_560_, float f, int i_561_, int i_562_, float f_563_, int i_564_, int i_565_, float f_566_, int i_567_, int i_568_, int i_569_, int i_570_) {
		/* empty */
	}

	final void method3424(float f, float f_571_, float f_572_, float f_573_, float f_574_, float f_575_) {
		Class350_Sub3.aFloat10266 = f;
		Class350_Sub3.aFloat10268 = f_571_;
		Class350_Sub3.aFloat10264 = f_572_;
		Class350_Sub3.aFloat10271 = f_575_;
	}

	public final void method3347() {
		if (aClass350Array9654[3] != null && aClass350Array9654[3].method6122()) {
			aClass354_9589.method6209(aClass350Array9654[3]);
			aClass349_9586.method6106();
		}
	}

	final void method3468(float f, float f_576_, float f_577_, float f_578_, float f_579_, float f_580_) {
		Class350_Sub3.aFloat10266 = f;
		Class350_Sub3.aFloat10268 = f_576_;
		Class350_Sub3.aFloat10264 = f_577_;
		Class350_Sub3.aFloat10271 = f_580_;
	}

	public void method15099(Interface35 interface35) {
		aClass74_9525.method1511(interface35, anObject9577, -1196696685);
	}

	public final NativeHeapBuffer method15100(int i, boolean bool) {
		return aNativeHeap9544.method1905(i, bool);
	}

	public void method15101(Interface35 interface35) {
		aClass74_9525.method1527(interface35, (byte) 17);
	}

	void method15102() {
		ArrayList arraylist = aClass74_9525.method1513(-1303821270);
		Iterator iterator = arraylist.iterator();
		while (iterator.hasNext()) {
			Interface35 interface35 = (Interface35) iterator.next();
			interface35.method131();
		}
	}

	void method15103() {
		ArrayList arraylist = aClass74_9525.method1513(-82756393);
		Iterator iterator = arraylist.iterator();
		while (iterator.hasNext()) {
			Interface35 interface35 = (Interface35) iterator.next();
			interface35.method131();
		}
	}

	public void method15104(Interface35 interface35) {
		aClass74_9525.method1527(interface35, (byte) 115);
	}

	public abstract boolean method15105();

	Class163 method15106() {
		return aClass163_9659;
	}

	public abstract boolean method15107();

	public abstract boolean method15108();

	public abstract boolean method15109(boolean bool);

	public final void method3249(int i, int i_581_, int i_582_, int i_583_, int i_584_, int i_585_, Class145 class145, int i_586_, int i_587_) {
		/* empty */
	}

	public void method15110(int i) {
		if (i > anInt9701) {
			anInt9701 = i;
			aByteBuffer9539 = ByteBuffer.allocateDirect(anInt9701);
			aByteBuffer9539.order(ByteOrder.nativeOrder());
			aLong9540 = DirectBufferHelper.getDirectBufferAddress(aByteBuffer9539);
		}
	}

	public void method15111(int i) {
		if (i > anInt9701) {
			anInt9701 = i;
			aByteBuffer9539 = ByteBuffer.allocateDirect(anInt9701);
			aByteBuffer9539.order(ByteOrder.nativeOrder());
			aLong9540 = DirectBufferHelper.getDirectBufferAddress(aByteBuffer9539);
		}
	}

	public abstract void method15112(Class441 class441, Class441 class441_588_, Class441 class441_589_);

	ByteBuffer method15113(int i) {
		ByteBuffer bytebuffer = ByteBuffer.allocateDirect(i);
		bytebuffer.order(ByteOrder.nativeOrder());
		return bytebuffer;
	}

	abstract void method15114(int i);

	abstract void method15115();

	public abstract Class265 method15116(String string);

	public final void method3284(int i, int i_590_, int i_591_, int i_592_, int i_593_, int i_594_) {
		i_591_--;
		i_592_--;
		int i_595_ = 0;
		if (this instanceof Class178_Sub2_Sub2)
			i_595_ = -1;
		if (aBool9685 && anInt9661 != 0)
			method15028(false);
		method3089(i, i_590_ + i_595_, i + i_591_, i_590_ + i_595_, i_593_, i_594_);
		method3089(i, i_590_ + i_592_ + i_595_, i + i_591_, i_590_ + i_592_ + i_595_, i_593_, i_594_);
		method3089(i, i_590_, i, i_590_ + i_592_, i_593_, i_594_);
		method3089(i + i_591_, i_590_, i + i_591_, i_590_ + i_592_, i_593_, i_594_);
		if (aBool9685 && anInt9661 != 0)
			method15028(true);
	}

	byte[] method15117(String string, String string_596_) {
		return aClass472_9535.method7667(string, string_596_, 1327175670);
	}

	byte[] method15118(String string, String string_597_) {
		return aClass472_9535.method7667(string, string_597_, 177866178);
	}

	public abstract boolean method15119();

	public abstract boolean method15120();

	public abstract String method3184();

	public abstract void method15121(Class441 class441, Class441 class441_598_, Class441 class441_599_);

	public final void method15122() {
		anInterface43Array9627 = new Interface43[anInt9680];
		aClass441Array9547 = new Class441[anInt9680];
		aClass377Array9665 = new Class377[anInt9680];
		aClass374Array9630 = new Class374[anInt9680];
		aClass374Array9631 = new Class374[anInt9680];
		for (int i = 0; i < anInt9680; i++) {
			aClass374Array9631[i] = Class374.aClass374_3908;
			aClass374Array9630[i] = Class374.aClass374_3908;
			aClass377Array9665[i] = Class377.aClass377_3926;
			aClass441Array9547[i] = new Class441();
		}
		aClass523_Sub20Array9671 = new Class523_Sub20[anInt9524 - 2];
		int[] is = { -1 };
		anInterface37_9669 = method14996(1, 1, false, is, 0, 0);
		is[0] = -16777216;
		anInterface37_9635 = method14996(1, 1, false, is, 0, 0);
		method3099(new Class523_Sub8_Sub1(262144));
		aClass345_9697 = method15031(new Class378[] { new Class378(new Class344[] { Class344.aClass344_3624, Class344.aClass344_3615 }) });
		aClass345_9698 = method15031(new Class378[] { new Class378(new Class344[] { Class344.aClass344_3624, Class344.aClass344_3613 }) });
		aClass345_9568 = method15031(new Class378[] { new Class378(Class344.aClass344_3624), new Class378(Class344.aClass344_3613), new Class378(Class344.aClass344_3615), new Class378(Class344.aClass344_3612) });
		aClass345_9695 = method15031(new Class378[] { new Class378(Class344.aClass344_3624), new Class378(Class344.aClass344_3613), new Class378(Class344.aClass344_3615) });
		for (int i = 0; i < 8; i++) {
			aClass167_Sub2Array9700[i] = new Class167_Sub2(this, 0, 0, false, false);
			aClass167_Sub2Array9595[i] = new Class167_Sub2(this, 0, 0, true, true);
		}
		method15260();
		anInterface40_9699 = method15029(true);
		method14931();
		method3071();
		method3054();
		aClass148_Sub3_9636 = new Class148_Sub3(this, anInterface37_9669);
		aClass148_Sub3_9637 = new Class148_Sub3(this, anInterface37_9635);
		method3076(3, 0);
	}

	final void method15123() {
		aClass353_9543 = new Class353(this);
		aBool9647 = false;
		try {
			aClass329_9642 = new Class329_Sub2(this);
			aClass327_9613 = new Class327_Sub2(this);
			aClass311_9644 = new Class311_Sub1(this);
			aClass326_9645 = new Class326_Sub2(this);
			aClass340_Sub1_Sub2_9646 = new Class340_Sub1_Sub2(this, aClass353_9543, false);
			aClass340_Sub1_Sub2_9616 = new Class340_Sub1_Sub2(this, aClass353_9543, true);
			aClass340_Sub1_Sub1_9696 = new Class340_Sub1_Sub1(this, aClass353_9543);
		} catch (Exception exception) {
			exception.printStackTrace();
			aClass329_9642 = new Class329_Sub1(this);
			aClass327_9613 = new Class327_Sub1(this);
			aClass311_9644 = new Class311_Sub2(this);
			aClass326_9645 = new Class326_Sub1(this);
			aClass340_Sub1_Sub2_9646 = null;
			aClass340_Sub1_Sub2_9616 = null;
			aClass340_Sub1_Sub1_9696 = null;
			aBool9647 = true;
		}
		if (!aBool9647) {
			int i;
			int i_600_;
			if (aClass168_1938 != null) {
				i_600_ = aClass168_1938.method2875();
				i = aClass168_1938.method2874();
			} else {
				i = 0;
				i_600_ = 0;
			}
			aClass354_9589 = new Class354(this, i_600_, i);
			aClass350Array9654[3] = new Class350_Sub3(this);
			aClass350Array9654[1] = new Class350_Sub2(this);
			aClass350Array9654[2] = new Class350_Sub1(this);
			if (aClass350Array9654[3].method6112())
				aClass354_9589.method6234(aClass350Array9654[3]);
			aClass354_9589.method6234(aClass350Array9654[1]);
			aClass354_9589.method6234(aClass350Array9654[2]);
			method14993();
			method15063();
		}
		if (aClass340_9640 != null) {
			aClass340_9640.method5970();
			aClass340_9640 = null;
		}
		method14927();
	}

	void method15124() {
		method14945(7);
		method14932();
	}

	public void method15125(int i) {
		if (i > anInt9701) {
			anInt9701 = i;
			aByteBuffer9539 = ByteBuffer.allocateDirect(anInt9701);
			aByteBuffer9539.order(ByteOrder.nativeOrder());
			aLong9540 = DirectBufferHelper.getDirectBufferAddress(aByteBuffer9539);
		}
	}

	public final void method3110(int i, Class145 class145, int i_601_, int i_602_) {
		method3287(false);
		aClass148_Sub3_9637.method2475(0.0F, 0.0F, (float) method3039(2145126283).method2875(), 0.0F, 0.0F, (float) method3039(1885671584).method2874(), 0, class145, i_601_, i_602_);
		method3287(true);
	}

	public abstract void method15126(int i, Interface36 interface36);

	abstract void method15127(int i, Class361 class361, boolean bool, boolean bool_603_);

	final void method15128() {
		method14984();
		method14985();
		method14983();
		method14941();
		method15077();
		method14987();
		method15276();
		method14980();
		method15304();
		method15220();
		method15027();
		method15023();
		method15022();
		method15021();
		for (int i = anInt9680 - 1; i >= 0; i--) {
			method15255(i);
			method15016();
			method14955();
			method15012();
		}
		method15097();
		method15217();
	}

	final void method15129() {
		method14984();
		method14985();
		method14983();
		method14941();
		method15077();
		method14987();
		method15276();
		method14980();
		method15304();
		method15220();
		method15027();
		method15023();
		method15022();
		method15021();
		for (int i = anInt9680 - 1; i >= 0; i--) {
			method15255(i);
			method15016();
			method14955();
			method15012();
		}
		method15097();
		method15217();
	}

	final void method15130() {
		anInterface36_9691 = method15030(false);
		int i = 160;
		anInterface36_9691.method215(i, 32);
		aByteBuffer9539.clear();
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putInt(-1);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(1.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putInt(-1);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(1.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(1.0F);
		aByteBuffer9539.putFloat(1.0F);
		aByteBuffer9539.putFloat(1.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putInt(-1);
		aByteBuffer9539.putFloat(1.0F);
		aByteBuffer9539.putFloat(1.0F);
		aByteBuffer9539.putFloat(1.0F);
		aByteBuffer9539.putFloat(1.0F);
		aByteBuffer9539.putFloat(1.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putInt(-1);
		aByteBuffer9539.putFloat(1.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(1.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putInt(-1);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(0.0F);
		anInterface36_9691.method265(0, aByteBuffer9539.position(), aLong9540);
		aClass345_9694 = method15031(new Class378[] { new Class378(new Class344[] { Class344.aClass344_3624, Class344.aClass344_3613, Class344.aClass344_3615, Class344.aClass344_3615 }) });
	}

	final void method15131() {
		anInterface36_9690 = method15030(true);
		int i = 24;
		anInterface36_9690.method215(i, 12);
		aClass345_9693 = method15031(new Class378[] { new Class378(Class344.aClass344_3624) });
	}

	public final void method3075(int[] is) {
		is[0] = anInt9633;
		is[1] = anInt9587;
		is[2] = anInt9590;
		is[3] = anInt9588;
	}

	final void method15132() {
		anInterface36_9692 = method15030(false);
		anInterface36_9692.method215(3096, 12);
		aByteBuffer9539.clear();
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.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_604_ = (float) Math.sin(d);
			aByteBuffer9539.putFloat(f_604_);
			aByteBuffer9539.putFloat(f);
			aByteBuffer9539.putFloat(0.0F);
		}
		anInterface36_9692.method265(0, aByteBuffer9539.position(), aLong9540);
	}

	abstract void method15133();

	public void method15134(int i) {
		if (i != anInt9632) {
			anInt9632 = i;
			method15097();
		}
	}

	public final void method3269(int i, Class145 class145, int i_605_, int i_606_) {
		method3287(false);
		aClass148_Sub3_9637.method2475(0.0F, 0.0F, (float) method3039(1929883078).method2875(), 0.0F, 0.0F, (float) method3039(1463252665).method2874(), 0, class145, i_605_, i_606_);
		method3287(true);
	}

	boolean method15135(float f, float f_607_, float f_608_, float f_609_, float f_610_, float f_611_) {
		method15125(24);
		aByteBuffer9539.clear();
		aByteBuffer9539.putFloat(f);
		aByteBuffer9539.putFloat(f_607_);
		aByteBuffer9539.putFloat(f_608_);
		aByteBuffer9539.putFloat(f_609_);
		aByteBuffer9539.putFloat(f_610_);
		aByteBuffer9539.putFloat(f_611_);
		return anInterface36_9690.method265(0, aByteBuffer9539.position(), aLong9540);
	}

	Class348 method15136() {
		if (aClass356_9639 == null)
			return Class348.aClass348_3636;
		return aClass356_9639.method6251();
	}

	Class348 method15137() {
		if (aClass356_9639 == null)
			return Class348.aClass348_3636;
		return aClass356_9639.method6251();
	}

	Class348 method15138() {
		if (aClass356_9639 == null)
			return Class348.aClass348_3636;
		return aClass356_9639.method6251();
	}

	abstract void method15139();

	void method15140() {
		method14944();
	}

	void method15141() {
		method14944();
	}

	void method15142() {
		method15306();
		method14974();
		method14935();
		method3067();
		method3071();
	}

	public void method3344() {
		anInt9615 = 0;
		anInt9592 = 0;
		anInt9593 = aClass168_1938.method2875();
		anInt9594 = aClass168_1938.method2874();
		method15046();
	}

	public final NativeHeapBuffer method15143(int i, boolean bool) {
		return aNativeHeap9544.method1905(i, bool);
	}

	public final boolean method3332() {
		return aClass354_9589 != null && aClass354_9589.aBool3690;
	}

	abstract void method15144();

	public final Interface39 method15145() {
		return (aClass185_Sub2_9655 != null ? aClass185_Sub2_9655.method15482() : null);
	}

	public final Interface39 method15146() {
		return (aClass185_Sub2_9655 != null ? aClass185_Sub2_9655.method15482() : null);
	}

	public final Interface39 method15147() {
		return (aClass185_Sub2_9655 != null ? aClass185_Sub2_9655.method15482() : null);
	}

	public final Interface39 method15148() {
		return (aClass185_Sub2_9655 != null ? aClass185_Sub2_9655.method15482() : null);
	}

	public final Interface39 method15149() {
		return (aClass185_Sub2_9655 != null ? aClass185_Sub2_9655.method15482() : null);
	}

	final void method15150() {
		if (aClass346_9565 == Class346.aClass346_3631) {
			anInt9628 = anInt9615;
			anInt9649 = anInt9592;
			anInt9597 = anInt9593;
			anInt9598 = anInt9594;
			aFloat9581 = aFloat9583;
			aFloat9605 = aFloat9584;
		} else {
			anInt9628 = 0;
			anInt9649 = 0;
			anInt9597 = aClass168_1938.method2875();
			anInt9598 = aClass168_1938.method2874();
			aFloat9581 = 0.0F;
			aFloat9605 = 1.0F;
		}
		method15217();
		aFloat9578 = (float) anInt9593 / 2.0F;
		aFloat9580 = (float) anInt9594 / 2.0F;
		aFloat9603 = (float) anInt9615 + aFloat9578;
		aFloat9579 = (float) anInt9592 + aFloat9580;
	}

	final void method15151(int i, int i_612_) {
		anInt9619 = i;
		anInt9600 = i_612_;
		method15217();
		if (!aBool9675 && (aBool9638 || method14942() == Class348.aClass348_3636)) {
			aBool9675 = true;
			method14961();
		}
		if (aBool9675)
			method15162();
	}

	final void method15152(int i, int i_613_) {
		anInt9619 = i;
		anInt9600 = i_613_;
		method15217();
		if (!aBool9675 && (aBool9638 || method14942() == Class348.aClass348_3636)) {
			aBool9675 = true;
			method14961();
		}
		if (aBool9675)
			method15162();
	}

	public void method3335(float f, float f_614_) {
		aFloat9583 = f;
		aFloat9584 = f_614_;
		method15046();
	}

	abstract void method15153();

	abstract void method15154();

	public Class435 method3064() {
		return aClass435_9551;
	}

	abstract void method15155();

	public final Class164 method3093(Class10 class10, Class175[] class175s, boolean bool) {
		return new Class164_Sub6(this, class10, class175s, bool);
	}

	final Class441 method15156() {
		if (aClass346_9565 == Class346.aClass346_3631)
			return aClass441_9650;
		return aClass441_9536;
	}

	public final boolean method3331() {
		return aClass354_9589 != null && aClass354_9589.aBool3690;
	}

	final Class441 method15157() {
		if (aClass346_9565 == Class346.aClass346_3631)
			return aClass441_9650;
		return aClass441_9536;
	}

	static {
		aClass441_9536 = new Class441();
	}

	Class441 method15158() {
		return aClass441_9550;
	}

	Class441 method15159() {
		return aClass441_9550;
	}

	Class441 method15160() {
		return aClass441_9550;
	}

	public final void method3373(int i, float f, float f_615_, float f_616_, float f_617_, float f_618_) {
		boolean bool = anInt9591 != i;
		f *= 0.5F;
		f_615_ *= 0.5F;
		if (bool || aFloat9617 != f || aFloat9618 != f_615_) {
			anInt9591 = i;
			aFloat9617 = f;
			aFloat9618 = f_615_;
			if (bool) {
				aFloat9689 = (float) (anInt9591 & 0xff0000) / 1.671168E7F;
				aFloat9614 = (float) (anInt9591 & 0xff00) / 65280.0F;
				aFloat9704 = (float) (anInt9591 & 0xff) / 255.0F;
				method14984();
			}
			method14985();
		}
		if (aFloatArray9622[0] != f_616_ || aFloatArray9622[1] != f_617_ || aFloatArray9622[2] != f_618_) {
			aFloatArray9622[0] = f_616_;
			aFloatArray9622[1] = f_617_;
			aFloatArray9622[2] = f_618_;
			aFloatArray9611[0] = -f_616_;
			aFloatArray9611[1] = -f_617_;
			aFloatArray9611[2] = -f_618_;
			float f_619_ = (float) (1.0 / Math.sqrt((double) (f_616_ * f_616_ + f_617_ * f_617_ + f_618_ * f_618_)));
			aFloatArray9608[0] = f_616_ * f_619_;
			aFloatArray9608[1] = f_617_ * f_619_;
			aFloatArray9608[2] = f_618_ * f_619_;
			aFloatArray9582[0] = -aFloatArray9608[0];
			aFloatArray9582[1] = -aFloatArray9608[1];
			aFloatArray9582[2] = -aFloatArray9608[2];
			method15077();
			anInt9624 = (int) (f_616_ * 256.0F / f_617_);
			anInt9625 = (int) (f_618_ * 256.0F / f_617_);
		}
		method14987();
	}

	Class441 method15161() {
		return aClass441_9550;
	}

	public int method3389(int i, int i_620_, int i_621_, int i_622_, int i_623_, int i_624_) {
		int i_625_ = 0;
		float f = (aClass441_9574.aFloatArray4916[14] + aClass441_9574.aFloatArray4916[2] * (float) i + aClass441_9574.aFloatArray4916[6] * (float) i_620_ + aClass441_9574.aFloatArray4916[10] * (float) i_621_);
		float f_626_ = (aClass441_9574.aFloatArray4916[14] + aClass441_9574.aFloatArray4916[2] * (float) i_622_ + aClass441_9574.aFloatArray4916[6] * (float) i_623_ + aClass441_9574.aFloatArray4916[10] * (float) i_624_);
		float f_627_ = (aClass441_9574.aFloatArray4916[15] + aClass441_9574.aFloatArray4916[3] * (float) i + aClass441_9574.aFloatArray4916[7] * (float) i_620_ + aClass441_9574.aFloatArray4916[11] * (float) i_621_);
		float f_628_ = (aClass441_9574.aFloatArray4916[15] + aClass441_9574.aFloatArray4916[3] * (float) i_622_ + aClass441_9574.aFloatArray4916[7] * (float) i_623_ + aClass441_9574.aFloatArray4916[11] * (float) i_624_);
		if (f < -f_627_ && f_626_ < -f_628_)
			i_625_ |= 0x10;
		else if (f > f_627_ && f_626_ > f_628_)
			i_625_ |= 0x20;
		float f_629_ = (aClass441_9574.aFloatArray4916[12] + aClass441_9574.aFloatArray4916[0] * (float) i + aClass441_9574.aFloatArray4916[4] * (float) i_620_ + aClass441_9574.aFloatArray4916[8] * (float) i_621_);
		float f_630_ = (aClass441_9574.aFloatArray4916[12] + aClass441_9574.aFloatArray4916[0] * (float) i_622_ + aClass441_9574.aFloatArray4916[4] * (float) i_623_ + aClass441_9574.aFloatArray4916[8] * (float) i_624_);
		if (f_629_ < -f_627_ && f_630_ < -f_628_)
			i_625_ |= 0x1;
		if (f_629_ > f_627_ && f_630_ > f_628_)
			i_625_ |= 0x2;
		float f_631_ = (aClass441_9574.aFloatArray4916[13] + aClass441_9574.aFloatArray4916[1] * (float) i + aClass441_9574.aFloatArray4916[5] * (float) i_620_ + aClass441_9574.aFloatArray4916[9] * (float) i_621_);
		float f_632_ = (aClass441_9574.aFloatArray4916[13] + aClass441_9574.aFloatArray4916[1] * (float) i_622_ + aClass441_9574.aFloatArray4916[5] * (float) i_623_ + aClass441_9574.aFloatArray4916[9] * (float) i_624_);
		if (f_631_ < -f_627_ && f_632_ < -f_628_)
			i_625_ |= 0x4;
		if (f_631_ > f_627_ && f_632_ > f_628_)
			i_625_ |= 0x8;
		return i_625_;
	}

	abstract void method15162();

	final Class441 method15163() {
		return aClass441Array9547[anInt9626];
	}

	Class435 method15164() {
		if (aClass346_9565 == Class346.aClass346_3631) {
			if (!aBool9564) {
				aClass435_9542.method6803(aClass435_9677);
				aClass435_9542.method6820(aClass435_9551);
				aClass441_9557.method7090(aClass435_9542);
				aBool9564 = true;
			}
			return aClass435_9542;
		}
		return aClass435_9677;
	}

	public Class435 method3301() {
		return aClass435_9551;
	}

	Class441 method15165() {
		if (aClass346_9565 == Class346.aClass346_3631) {
			if (!aBool9564)
				method14967();
			return aClass441_9557;
		}
		return aClass441_9550;
	}

	final Class441 method15166() {
		return aClass441_9575;
	}

	final Class441 method15167() {
		return aClass441_9575;
	}

	final Class441 method15168() {
		return aClass441_9575;
	}

	final Class441 method15169() {
		return aClass441_9575;
	}

	final Class441 method15170() {
		return aClass441_9575;
	}

	public final void method3124(Class441 class441) {
		aClass441_9570.method7086(class441);
		method14965();
		if (aClass346_9565 == Class346.aClass346_3631)
			method14977();
	}

	final Class441 method15171() {
		return aClass441_9572;
	}

	final Class441 method15172() {
		return aClass441_9572;
	}

	public void method3475() {
		if (aClass356_9639 != null)
			aClass356_9639.method6249();
	}

	public final int method3025() {
		return anInt9648 + anInt9530 + anInt9684;
	}

	public abstract void method15173(Class441 class441);

	public void method3459() {
		if (aClass356_9639 != null)
			aClass356_9639.method6243();
	}

	public final Class441 method15174() {
		return aClass441Array9547[anInt9626];
	}

	final void method15175() {
		aBool9658 = false;
		if (aClass346_9565 == Class346.aClass346_3632) {
			method14975();
			method14977();
		}
	}

	public final int method15176() {
		return anInt9626;
	}

	final void method15177() {
		if (aClass346_9565 != Class346.aClass346_3631) {
			aClass346_9565 = Class346.aClass346_3631;
			method14972();
			method14976();
			aClass441_9634 = aClass441_9570;
			method14977();
			method15046();
			anInt9676 &= ~0x7;
		}
	}

	final void method15178() {
		if (aClass346_9565 != Class346.aClass346_3631) {
			aClass346_9565 = Class346.aClass346_3631;
			method14972();
			method14976();
			aClass441_9634 = aClass441_9570;
			method14977();
			method15046();
			anInt9676 &= ~0x7;
		}
	}

	final void method15179() {
		if (aClass346_9565 != Class346.aClass346_3631) {
			aClass346_9565 = Class346.aClass346_3631;
			method14972();
			method14976();
			aClass441_9634 = aClass441_9570;
			method14977();
			method15046();
			anInt9676 &= ~0x7;
		}
	}

	public final boolean method3035() {
		return false;
	}

	final void method15180() {
		aBool9569 = false;
		method14976();
		if (aClass346_9565 == Class346.aClass346_3631)
			method14977();
	}

	final void method15181() {
		aBool9569 = false;
		method14976();
		if (aClass346_9565 == Class346.aClass346_3631)
			method14977();
	}

	final void method15182() {
		if (!aBool9658) {
			int i;
			int i_633_;
			if (aClass168_1938 != null) {
				i_633_ = aClass168_1938.method2875();
				i = aClass168_1938.method2874();
			} else {
				i = 0;
				i_633_ = 0;
			}
			Class441 class441 = aClass441_9567;
			if (i_633_ != 0 && i != 0)
				class441.method7098(0.0F, (float) i_633_, 0.0F, (float) i, -1.0F, 1.0F);
			else
				class441.method7085();
			aClass441_9621.method7086(class441);
			method14970(aClass441_9621);
			aBool9658 = true;
		}
	}

	abstract Interface37 method15183(Class158 class158, int i, int i_634_, boolean bool, byte[] is, int i_635_, int i_636_);

	final void method15184() {
		aClass441_9572.method7086(aClass441_9634);
		method14970(aClass441_9572);
		aFloat9702 = ((aClass441_9572.aFloatArray4916[14] - aClass441_9572.aFloatArray4916[15]) / (aClass441_9572.aFloatArray4916[11] - aClass441_9572.aFloatArray4916[10]));
		aFloat9585 = (-aClass441_9572.aFloatArray4916[14] / aClass441_9572.aFloatArray4916[10]);
		method15026();
	}

	public final void method3083(int i, int i_637_, int i_638_, int i_639_, int i_640_, int i_641_) {
		i_638_--;
		i_639_--;
		int i_642_ = 0;
		if (this instanceof Class178_Sub2_Sub2)
			i_642_ = -1;
		if (aBool9685 && anInt9661 != 0)
			method15028(false);
		method3089(i, i_637_ + i_642_, i + i_638_, i_637_ + i_642_, i_640_, i_641_);
		method3089(i, i_637_ + i_639_ + i_642_, i + i_638_, i_637_ + i_639_ + i_642_, i_640_, i_641_);
		method3089(i, i_637_, i, i_637_ + i_639_, i_640_, i_641_);
		method3089(i + i_638_, i_637_, i + i_638_, i_637_ + i_639_, i_640_, i_641_);
		if (aBool9685 && anInt9661 != 0)
			method15028(true);
	}

	final Interface37 method15185(Class158 class158, int i, int i_643_, boolean bool, byte[] is) {
		return method14994(class158, i, i_643_, bool, is, 0, 0);
	}

	final void method15186(boolean bool) {
		if (bool != aBool9606) {
			aBool9606 = bool;
			method14980();
			anInt9676 &= ~0x1f;
		}
	}

	public final void method15187() {
		method15039(Class376.aClass376_3918, 2);
	}

	final void method15188(boolean bool) {
		if (bool != aBool9606) {
			aBool9606 = bool;
			method14980();
			anInt9676 &= ~0x1f;
		}
	}

	abstract void method15189();

	abstract void method15190();

	abstract void method15191();

	abstract void method15192();

	public final boolean method3420() {
		return true;
	}

	abstract void method15193();

	abstract Class345 method15194(Class378[] class378s);

	final void method15195(boolean bool) {
		if (bool != aBool9674) {
			aBool9674 = bool;
			method14983();
			anInt9676 &= ~0x7;
		}
	}

	final void method15196(boolean bool) {
		if (bool != aBool9674) {
			aBool9674 = bool;
			method14983();
			anInt9676 &= ~0x7;
		}
	}

	abstract void method15197();

	abstract void method15198();

	void method15199() {
		method14945(7);
		method14932();
	}

	abstract void method15200(int i, Class361 class361, boolean bool, boolean bool_644_);

	abstract Interface37 method15201(Class158 class158, Class170 class170, int i, int i_645_);

	long method15202(ByteBuffer bytebuffer) {
		return DirectBufferHelper.getDirectBufferAddress(bytebuffer);
	}

	abstract void method15203();

	abstract void method15204();

	abstract void method15205();

	public final void method3355() {
		aBool9656 = false;
	}

	abstract void method15206();

	abstract void method15207();

	abstract void method15208();

	abstract void method15209();

	abstract void method15210();

	public void method3107(int i, int i_646_, int i_647_, int i_648_, int i_649_, int i_650_, int i_651_, int i_652_, int i_653_) {
		float f = (float) i_647_ - (float) i;
		float f_654_ = (float) i_648_ - (float) i_646_;
		if (f == 0.0F && f_654_ == 0.0F)
			f = 1.0F;
		else {
			float f_655_ = (float) (1.0 / Math.sqrt((double) (f * f + f_654_ * f_654_)));
			f *= f_655_;
			f_654_ *= f_655_;
		}
		method14971();
		Class340 class340 = aClass340Array9641[13];
		class340.method5955();
		class340.method5956(i_649_);
		method15018(i_650_);
		class340.method5960();
		method15028(false);
		i_653_ %= i_652_ + i_651_;
		float f_656_ = f * (float) i_651_;
		float f_657_ = f_654_ * (float) i_651_;
		float f_658_ = 0.0F;
		float f_659_ = 0.0F;
		float f_660_ = f_656_;
		float f_661_ = f_657_;
		if (i_653_ > i_651_) {
			f_658_ = f * (float) (i_651_ + i_652_ - i_653_);
			f_659_ = f_654_ * (float) (i_651_ + i_652_ - i_653_);
		} else {
			f_660_ = f * (float) (i_651_ - i_653_);
			f_661_ = f_654_ * (float) (i_651_ - i_653_);
		}
		float f_662_ = (float) i + f_658_;
		float f_663_ = (float) i_646_ + f_659_;
		float f_664_ = f * (float) i_652_;
		float f_665_ = f_654_ * (float) i_652_;
		for (;;) {
			if (i_647_ > i) {
				if (f_662_ > (float) i_647_)
					break;
				if (f_662_ + f_660_ > (float) i_647_)
					f_660_ = (float) i_647_ - f_662_;
			} else {
				if (f_662_ < (float) i_647_)
					break;
				if (f_662_ + f_660_ < (float) i_647_)
					f_660_ = (float) i_647_ - f_662_;
			}
			if (i_648_ > i_646_) {
				if (f_663_ > (float) i_648_)
					break;
				if (f_663_ + f_661_ > (float) i_648_)
					f_661_ = (float) i_648_ - f_663_;
			} else {
				if (f_663_ < (float) i_648_)
					break;
				if (f_663_ + f_661_ < (float) i_648_)
					f_661_ = (float) i_648_ - f_663_;
			}
			if (!method14938(f_662_, f_663_, 0.0F, f_662_ + f_660_, f_663_ + f_661_, 0.0F))
				return;
			method14924();
			f_662_ += f_664_ + f_660_;
			f_663_ += f_665_ + f_661_;
			f_660_ = f_656_;
			f_661_ = f_657_;
		}
		method15028(true);
		class340.method5970();
	}

	abstract void method15211();

	abstract void method15212();

	public final boolean method3017() {
		return aClass350Array9654[3] != null;
	}

	abstract void method15213(Interface40 interface40);

	final void method15214() {
		if (method14920())
			method14989();
		anInt9620 = anInt9602;
	}

	public final Class441 method3052() {
		return aClass441_9554;
	}

	public void method15215(int i) {
		if (i != anInt9632) {
			anInt9632 = i;
			method15097();
		}
	}

	abstract void method15216();

	abstract void method15217();

	abstract boolean method15218(Class158 class158, Class170 class170);

	abstract boolean method15219(Class158 class158, Class170 class170);

	abstract void method15220();

	abstract boolean method15221(Class158 class158, Class170 class170);

	public final Class148 method3264(int[] is, int i, int i_666_, int i_667_, int i_668_, boolean bool) {
		return new Class148_Sub3(this, i_667_, i_668_, is, i, i_666_);
	}

	final Interface37 method15222(int i, int i_669_, boolean bool, int[] is) {
		return method14996(i, i_669_, bool, is, 0, 0);
	}

	final Interface37 method15223(Class158 class158, int i, int i_670_, boolean bool, byte[] is) {
		return method14994(class158, i, i_670_, bool, is, 0, 0);
	}

	final Interface37 method15224(Class158 class158, int i, int i_671_, boolean bool, byte[] is) {
		return method14994(class158, i, i_671_, bool, is, 0, 0);
	}

	final Interface37 method15225(Class158 class158, int i, int i_672_, boolean bool, byte[] is) {
		return method14994(class158, i, i_672_, bool, is, 0, 0);
	}

	final Interface37 method15226(Class158 class158, int i, int i_673_, boolean bool, float[] fs) {
		return method14995(class158, i, i_673_, bool, fs, 0, 0);
	}

	final Interface37 method15227(Class158 class158, int i, int i_674_, boolean bool, float[] fs) {
		return method14995(class158, i, i_674_, bool, fs, 0, 0);
	}

	public Class165 method3340(int[] is) {
		return new Class165_Sub2(this, is);
	}

	byte[] method15228(String string, String string_675_) {
		return aClass472_9535.method7667(string, string_675_, 627727483);
	}

	abstract Interface37 method15229(Class158 class158, int i, int i_676_, boolean bool, float[] fs, int i_677_, int i_678_);

	public abstract void method15230(Class441 class441, Class441 class441_679_, Class441 class441_680_);

	abstract Interface37 method15231(int i, int i_681_, boolean bool, int[] is, int i_682_, int i_683_);

	abstract Interface39 method15232(int i, boolean bool, int[][] is);

	abstract Interface39 method15233(int i, boolean bool, int[][] is);

	abstract Interface34 method15234(Class158 class158, int i, int i_684_, int i_685_, boolean bool, byte[] is);

	abstract Interface41 method15235(Class158 class158, Class170 class170, int i, int i_686_);

	final void method15236() {
		if (method14920())
			method14989();
		anInt9620 = anInt9602;
	}

	abstract Interface41 method15237(Class158 class158, Class170 class170, int i, int i_687_);

	public final Class441 method3288() {
		return aClass441_9554;
	}

	public final int method15238() {
		return anInt9626;
	}

	public final int method15239() {
		return anInt9626;
	}

	public final void method15240(int i) {
		if (anInt9626 != i) {
			anInt9626 = i;
			method15015();
		}
	}

	public final void method15241(Interface43 interface43) {
		if (anInterface43Array9627[anInt9626] != interface43) {
			anInterface43Array9627[anInt9626] = interface43;
			if (interface43 != null)
				interface43.method297();
			else
				anInterface37_9669.method297();
			anInt9676 &= ~0x11;
		}
	}

	public final void method15242(Interface43 interface43) {
		if (anInterface43Array9627[anInt9626] != interface43) {
			anInterface43Array9627[anInt9626] = interface43;
			if (interface43 != null)
				interface43.method297();
			else
				anInterface37_9669.method297();
			anInt9676 &= ~0x11;
		}
	}

	public final boolean method3100() {
		return true;
	}

	public void method15243(Interface35 interface35) {
		aClass74_9525.method1511(interface35, anObject9577, -1060770294);
	}

	public final int method3279(int i, int i_688_) {
		return i & i_688_ ^ i_688_;
	}

	final Class441 method15244() {
		if (aClass346_9565 == Class346.aClass346_3631)
			return aClass441_9650;
		return aClass441_9536;
	}

	public final void method15245(int i) {
		switch (i) {
		case 3:
			method15003(Class374.aClass374_3910, Class374.aClass374_3908);
			break;
		case 0:
			method15003(Class374.aClass374_3908, Class374.aClass374_3908);
			break;
		case 2:
			method15003(Class374.aClass374_3912, Class374.aClass374_3909);
			break;
		case 1:
			method15003(Class374.aClass374_3909, Class374.aClass374_3909);
			break;
		case 4:
			method15003(Class374.aClass374_3911, Class374.aClass374_3911);
			break;
		}
	}

	public final void method15246(int i) {
		switch (i) {
		case 3:
			method15003(Class374.aClass374_3910, Class374.aClass374_3908);
			break;
		case 0:
			method15003(Class374.aClass374_3908, Class374.aClass374_3908);
			break;
		case 2:
			method15003(Class374.aClass374_3912, Class374.aClass374_3909);
			break;
		case 1:
			method15003(Class374.aClass374_3909, Class374.aClass374_3909);
			break;
		case 4:
			method15003(Class374.aClass374_3911, Class374.aClass374_3911);
			break;
		}
	}

	public final void method15247(int i, Class361 class361) {
		method15005(i, class361, false, false);
	}

	public final void method15248(int i, Class361 class361) {
		method15005(i, class361, false, false);
	}

	public final void method3358(Class435 class435) {
		aClass435_9551 = class435;
		aClass441_9629.method7090(aClass435_9551);
		aClass441_9555.method7086(aClass441_9629);
		aClass441_9555.method7124();
		aClass435_9552.method6803(class435);
		aClass435_9552.method6857();
		aClass441_9650.method7090(aClass435_9552);
		method14965();
		if (aClass346_9565 == Class346.aClass346_3631)
			method14972();
	}

	public final void method3062(int i, int i_689_) {
		if (aClass354_9589 != null)
			aClass354_9589.method6212(i, i_689_);
	}

	final void method15249(boolean bool) {
		if (bool != aBool9558) {
			aBool9558 = bool;
			method15304();
			anInt9676 &= ~0x1f;
		}
	}

	public final void method15250(int i, Class361 class361) {
		method15007(i, class361, false);
	}

	public final void method3271(int i, Class145 class145, int i_690_, int i_691_) {
		method3287(false);
		aClass148_Sub3_9637.method2475(0.0F, 0.0F, (float) method3039(1539724914).method2875(), 0.0F, 0.0F, (float) method3039(2136121162).method2874(), 0, class145, i_690_, i_691_);
		method3287(true);
	}

	abstract void method15251(int i, Class361 class361, boolean bool);

	abstract void method15252(int i, Class361 class361, boolean bool);

	public void method15253(int i) {
		if (i != anInt9632) {
			anInt9632 = i;
			method15097();
		}
	}

	public void method15254(int i) {
		if (i != anInt9632) {
			anInt9632 = i;
			method15097();
		}
	}

	public final void method15255(int i) {
		if (anInt9626 != i) {
			anInt9626 = i;
			method15015();
		}
	}

	abstract void method15256(Interface40 interface40);

	final Class441 method15257() {
		return aClass441Array9547[anInt9626];
	}

	public final void method3300(Class435 class435) {
		aClass435_9551 = class435;
		aClass441_9629.method7090(aClass435_9551);
		aClass441_9555.method7086(aClass441_9629);
		aClass441_9555.method7124();
		aClass435_9552.method6803(class435);
		aClass435_9552.method6857();
		aClass441_9650.method7090(aClass435_9552);
		method14965();
		if (aClass346_9565 == Class346.aClass346_3631)
			method14972();
	}

	final Class441 method15258() {
		return aClass441Array9547[anInt9626];
	}

	public final Class441 method15259() {
		return aClass441Array9547[anInt9626];
	}

	final void method15260() {
		aClass353_9543 = new Class353(this);
		aBool9647 = false;
		try {
			aClass329_9642 = new Class329_Sub2(this);
			aClass327_9613 = new Class327_Sub2(this);
			aClass311_9644 = new Class311_Sub1(this);
			aClass326_9645 = new Class326_Sub2(this);
			aClass340_Sub1_Sub2_9646 = new Class340_Sub1_Sub2(this, aClass353_9543, false);
			aClass340_Sub1_Sub2_9616 = new Class340_Sub1_Sub2(this, aClass353_9543, true);
			aClass340_Sub1_Sub1_9696 = new Class340_Sub1_Sub1(this, aClass353_9543);
		} catch (Exception exception) {
			exception.printStackTrace();
			aClass329_9642 = new Class329_Sub1(this);
			aClass327_9613 = new Class327_Sub1(this);
			aClass311_9644 = new Class311_Sub2(this);
			aClass326_9645 = new Class326_Sub1(this);
			aClass340_Sub1_Sub2_9646 = null;
			aClass340_Sub1_Sub2_9616 = null;
			aClass340_Sub1_Sub1_9696 = null;
			aBool9647 = true;
		}
		if (!aBool9647) {
			int i;
			int i_692_;
			if (aClass168_1938 != null) {
				i_692_ = aClass168_1938.method2875();
				i = aClass168_1938.method2874();
			} else {
				i = 0;
				i_692_ = 0;
			}
			aClass354_9589 = new Class354(this, i_692_, i);
			aClass350Array9654[3] = new Class350_Sub3(this);
			aClass350Array9654[1] = new Class350_Sub2(this);
			aClass350Array9654[2] = new Class350_Sub1(this);
			if (aClass350Array9654[3].method6112())
				aClass354_9589.method6234(aClass350Array9654[3]);
			aClass354_9589.method6234(aClass350Array9654[1]);
			aClass354_9589.method6234(aClass350Array9654[2]);
			method14993();
			method15063();
		}
		if (aClass340_9640 != null) {
			aClass340_9640.method5970();
			aClass340_9640 = null;
		}
		method14927();
	}

	final void method15261() {
		if (aClass377Array9665[anInt9626] != Class377.aClass377_3926) {
			aClass377Array9665[anInt9626] = Class377.aClass377_3926;
			aClass441Array9547[anInt9626].method7085();
			method15264();
		}
	}

	public final void method3310(float f) {
		if (aFloat9643 != f) {
			aFloat9643 = f;
			method14984();
			method14987();
		}
	}

	final void method15262() {
		method15070();
	}

	final void method15263() {
		method15070();
	}

	final void method15264() {
		method15070();
	}

	abstract void method15265();

	public final Class435 method3464() {
		return aClass435_9703;
	}

	abstract void method15266();

	final boolean method15267() {
		return aBool9647;
	}

	abstract void method15268();

	abstract void method15269();

	public static void method15270() throws Exception_Sub6 {
		Class523_Sub24.method16142(1232827613).method383("jaclib", 2106472487);
	}

	public final void method3326(int i, int i_693_) {
		if (aClass354_9589 != null)
			aClass354_9589.method6212(i, i_693_);
	}

	Class163 method15271() {
		return aClass163_9659;
	}

	Class163 method15272() {
		return aClass163_9659;
	}

	final void method15273(int i) {
		if (anInt9667 != i) {
			Class363 class363;
			boolean bool;
			boolean bool_694_;
			if (i == 1) {
				class363 = Class363.aClass363_3752;
				bool = true;
				bool_694_ = true;
			} else if (i == 2) {
				class363 = Class363.aClass363_3750;
				bool = false;
				bool_694_ = true;
			} else if (i == 128) {
				class363 = Class363.aClass363_3753;
				bool = true;
				bool_694_ = true;
			} else if (i == 3) {
				class363 = Class363.aClass363_3751;
				bool = true;
				bool_694_ = false;
			} else {
				class363 = Class363.aClass363_3751;
				bool = false;
				bool_694_ = false;
			}
			if (bool != aBool9563) {
				aBool9563 = bool;
				method15021();
			}
			if (bool_694_ != aBool9549) {
				aBool9549 = bool_694_;
				method15023();
			}
			if (class363 != aClass363_9666) {
				aClass363_9666 = class363;
				method15022();
			}
			anInt9667 = i;
			anInt9676 &= ~0x1c;
		}
	}

	final void method15274(int i) {
		if (anInt9667 != i) {
			Class363 class363;
			boolean bool;
			boolean bool_695_;
			if (i == 1) {
				class363 = Class363.aClass363_3752;
				bool = true;
				bool_695_ = true;
			} else if (i == 2) {
				class363 = Class363.aClass363_3750;
				bool = false;
				bool_695_ = true;
			} else if (i == 128) {
				class363 = Class363.aClass363_3753;
				bool = true;
				bool_695_ = true;
			} else if (i == 3) {
				class363 = Class363.aClass363_3751;
				bool = true;
				bool_695_ = false;
			} else {
				class363 = Class363.aClass363_3751;
				bool = false;
				bool_695_ = false;
			}
			if (bool != aBool9563) {
				aBool9563 = bool;
				method15021();
			}
			if (bool_695_ != aBool9549) {
				aBool9549 = bool_695_;
				method15023();
			}
			if (class363 != aClass363_9666) {
				aClass363_9666 = class363;
				method15022();
			}
			anInt9667 = i;
			anInt9676 &= ~0x1c;
		}
	}

	final void method15275(int i) {
		if (anInt9667 != i) {
			Class363 class363;
			boolean bool;
			boolean bool_696_;
			if (i == 1) {
				class363 = Class363.aClass363_3752;
				bool = true;
				bool_696_ = true;
			} else if (i == 2) {
				class363 = Class363.aClass363_3750;
				bool = false;
				bool_696_ = true;
			} else if (i == 128) {
				class363 = Class363.aClass363_3753;
				bool = true;
				bool_696_ = true;
			} else if (i == 3) {
				class363 = Class363.aClass363_3751;
				bool = true;
				bool_696_ = false;
			} else {
				class363 = Class363.aClass363_3751;
				bool = false;
				bool_696_ = false;
			}
			if (bool != aBool9563) {
				aBool9563 = bool;
				method15021();
			}
			if (bool_696_ != aBool9549) {
				aBool9549 = bool_696_;
				method15023();
			}
			if (class363 != aClass363_9666) {
				aClass363_9666 = class363;
				method15022();
			}
			anInt9667 = i;
			anInt9676 &= ~0x1c;
		}
	}

	abstract void method15276();

	final void method15277(int i) {
		if (anInt9653 != i) {
			anInt9653 = i;
			method15022();
		}
	}

	final void method15278(int i) {
		if (anInt9653 != i) {
			anInt9653 = i;
			method15022();
		}
	}

	public void method3254(Class435 class435, Class180 class180, Class430 class430) {
		Class441 class441 = aClass441_9560;
		class441.method7090(class435);
		class441.method7089(aClass441_9574);
		class180.method3531(class430, aClass441_9570, class441, aFloat9603, aFloat9579, aFloat9578, aFloat9580);
	}

	final void method15279(byte i) {
		if (aByte9672 != i) {
			aByte9672 = i;
			if (i == 0) {
				method15019(0);
				method15018(1);
			} else {
				method15019(3);
				method15018(3);
			}
			method15021();
		}
	}

	boolean method15280() {
		if (aClass350Array9654[2] != null && !aClass350Array9654[2].method6122()) {
			boolean bool = aClass354_9589.method6234(aClass350Array9654[2]);
			if (bool)
				aClass349_9586.method6106();
			return bool;
		}
		return false;
	}

	final void method15281(byte i) {
		if (aByte9672 != i) {
			aByte9672 = i;
			if (i == 0) {
				method15019(0);
				method15018(1);
			} else {
				method15019(3);
				method15018(3);
			}
			method15021();
		}
	}

	public final Class523_Sub8 method3259(int i) {
		Class523_Sub8_Sub1 class523_sub8_sub1 = new Class523_Sub8_Sub1(i);
		aClass708_9705.method14236(class523_sub8_sub1, 247488927);
		return class523_sub8_sub1;
	}

	final void method15282() {
		if (!aBool9569)
			aBool9569 = true;
	}

	abstract void method15283(int i);

	abstract void method15284(int i);

	abstract void method15285();

	abstract void method15286();

	abstract void method15287();

	public final void method3327(int i, int i_697_) {
		if (aClass354_9589 != null)
			aClass354_9589.method6212(i, i_697_);
	}

	abstract void method15288();

	abstract void method15289();

	public abstract boolean method15290();

	final void method15291() {
		anInterface36_9692 = method15030(false);
		anInterface36_9692.method215(3096, 12);
		aByteBuffer9539.clear();
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.putFloat(0.0F);
		aByteBuffer9539.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_698_ = (float) Math.sin(d);
			aByteBuffer9539.putFloat(f_698_);
			aByteBuffer9539.putFloat(f);
			aByteBuffer9539.putFloat(0.0F);
		}
		anInterface36_9692.method265(0, aByteBuffer9539.position(), aLong9540);
	}

	final void method15292() {
		if (aClass340_9640 != null)
			aClass340_9640.method5979();
		method15027();
	}

	public final void method15293() {
		anInterface43Array9627 = new Interface43[anInt9680];
		aClass441Array9547 = new Class441[anInt9680];
		aClass377Array9665 = new Class377[anInt9680];
		aClass374Array9630 = new Class374[anInt9680];
		aClass374Array9631 = new Class374[anInt9680];
		for (int i = 0; i < anInt9680; i++) {
			aClass374Array9631[i] = Class374.aClass374_3908;
			aClass374Array9630[i] = Class374.aClass374_3908;
			aClass377Array9665[i] = Class377.aClass377_3926;
			aClass441Array9547[i] = new Class441();
		}
		aClass523_Sub20Array9671 = new Class523_Sub20[anInt9524 - 2];
		int[] is = { -1 };
		anInterface37_9669 = method14996(1, 1, false, is, 0, 0);
		is[0] = -16777216;
		anInterface37_9635 = method14996(1, 1, false, is, 0, 0);
		method3099(new Class523_Sub8_Sub1(262144));
		aClass345_9697 = method15031(new Class378[] { new Class378(new Class344[] { Class344.aClass344_3624, Class344.aClass344_3615 }) });
		aClass345_9698 = method15031(new Class378[] { new Class378(new Class344[] { Class344.aClass344_3624, Class344.aClass344_3613 }) });
		aClass345_9568 = method15031(new Class378[] { new Class378(Class344.aClass344_3624), new Class378(Class344.aClass344_3613), new Class378(Class344.aClass344_3615), new Class378(Class344.aClass344_3612) });
		aClass345_9695 = method15031(new Class378[] { new Class378(Class344.aClass344_3624), new Class378(Class344.aClass344_3613), new Class378(Class344.aClass344_3615) });
		for (int i = 0; i < 8; i++) {
			aClass167_Sub2Array9700[i] = new Class167_Sub2(this, 0, 0, false, false);
			aClass167_Sub2Array9595[i] = new Class167_Sub2(this, 0, 0, true, true);
		}
		method15260();
		anInterface40_9699 = method15029(true);
		method14931();
		method3071();
		method3054();
		aClass148_Sub3_9636 = new Class148_Sub3(this, anInterface37_9669);
		aClass148_Sub3_9637 = new Class148_Sub3(this, anInterface37_9635);
		method3076(3, 0);
	}

	abstract void method15294();

	abstract void method15295();

	abstract void method15296();

	public final Class523_Sub8 method3078(int i) {
		Class523_Sub8_Sub1 class523_sub8_sub1 = new Class523_Sub8_Sub1(i);
		aClass708_9705.method14236(class523_sub8_sub1, -873230372);
		return class523_sub8_sub1;
	}

	abstract void method15297(boolean bool);

	abstract void method15298(boolean bool);

	abstract void method15299(boolean bool);

	abstract Interface40 method15300(boolean bool);

	abstract Interface40 method15301(boolean bool);

	abstract Interface36 method15302(boolean bool);

	abstract Class345 method15303(Class378[] class378s);

	abstract void method15304();

	abstract Class345 method15305(Class378[] class378s);

	public final void method3349(int i, int i_699_, int i_700_) {
		if (anInt9662 != i || anInt9663 != i_699_ || anInt9664 != i_700_) {
			anInt9662 = i;
			anInt9663 = i_699_;
			anInt9664 = i_700_;
			method15026();
			method15220();
		}
	}

	final void method15306() {
		aBool9658 = false;
		if (aClass346_9565 == Class346.aClass346_3632) {
			method14975();
			method14977();
		}
	}

	public void method3255(Class435 class435, Class180 class180, Class430 class430) {
		Class441 class441 = aClass441_9560;
		class441.method7090(class435);
		class441.method7089(aClass441_9574);
		class180.method3531(class430, aClass441_9570, class441, aFloat9603, aFloat9579, aFloat9578, aFloat9580);
	}

	public int method3388(int i, int i_701_, int i_702_, int i_703_, int i_704_, int i_705_) {
		int i_706_ = 0;
		float f = (aClass441_9574.aFloatArray4916[14] + aClass441_9574.aFloatArray4916[2] * (float) i + aClass441_9574.aFloatArray4916[6] * (float) i_701_ + aClass441_9574.aFloatArray4916[10] * (float) i_702_);
		float f_707_ = (aClass441_9574.aFloatArray4916[14] + aClass441_9574.aFloatArray4916[2] * (float) i_703_ + aClass441_9574.aFloatArray4916[6] * (float) i_704_ + aClass441_9574.aFloatArray4916[10] * (float) i_705_);
		float f_708_ = (aClass441_9574.aFloatArray4916[15] + aClass441_9574.aFloatArray4916[3] * (float) i + aClass441_9574.aFloatArray4916[7] * (float) i_701_ + aClass441_9574.aFloatArray4916[11] * (float) i_702_);
		float f_709_ = (aClass441_9574.aFloatArray4916[15] + aClass441_9574.aFloatArray4916[3] * (float) i_703_ + aClass441_9574.aFloatArray4916[7] * (float) i_704_ + aClass441_9574.aFloatArray4916[11] * (float) i_705_);
		if (f < -f_708_ && f_707_ < -f_709_)
			i_706_ |= 0x10;
		else if (f > f_708_ && f_707_ > f_709_)
			i_706_ |= 0x20;
		float f_710_ = (aClass441_9574.aFloatArray4916[12] + aClass441_9574.aFloatArray4916[0] * (float) i + aClass441_9574.aFloatArray4916[4] * (float) i_701_ + aClass441_9574.aFloatArray4916[8] * (float) i_702_);
		float f_711_ = (aClass441_9574.aFloatArray4916[12] + aClass441_9574.aFloatArray4916[0] * (float) i_703_ + aClass441_9574.aFloatArray4916[4] * (float) i_704_ + aClass441_9574.aFloatArray4916[8] * (float) i_705_);
		if (f_710_ < -f_708_ && f_711_ < -f_709_)
			i_706_ |= 0x1;
		if (f_710_ > f_708_ && f_711_ > f_709_)
			i_706_ |= 0x2;
		float f_712_ = (aClass441_9574.aFloatArray4916[13] + aClass441_9574.aFloatArray4916[1] * (float) i + aClass441_9574.aFloatArray4916[5] * (float) i_701_ + aClass441_9574.aFloatArray4916[9] * (float) i_702_);
		float f_713_ = (aClass441_9574.aFloatArray4916[13] + aClass441_9574.aFloatArray4916[1] * (float) i_703_ + aClass441_9574.aFloatArray4916[5] * (float) i_704_ + aClass441_9574.aFloatArray4916[9] * (float) i_705_);
		if (f_712_ < -f_708_ && f_713_ < -f_709_)
			i_706_ |= 0x4;
		if (f_712_ > f_708_ && f_713_ > f_709_)
			i_706_ |= 0x8;
		return i_706_;
	}

	abstract void method15307(Interface40 interface40);

	final void method15308() {
		aBool9658 = false;
		if (aClass346_9565 == Class346.aClass346_3632) {
			method14975();
			method14977();
		}
	}

	abstract void method15309();

	public abstract void method15310(Class376 class376, int i, int i_714_);

	abstract void method15311(Interface40 interface40, Class376 class376, int i, int i_715_, int i_716_, int i_717_);

	abstract void method15312(Interface40 interface40, Class376 class376, int i, int i_718_, int i_719_, int i_720_);

	final void method15313(int i) {
		if (anInt9653 != i) {
			anInt9653 = i;
			method15022();
		}
	}

	public abstract void method15314(Class376 class376, int i, int i_721_, int i_722_, int i_723_);

	public abstract void method15315(Class376 class376, int i, int i_724_, int i_725_, int i_726_);

	public abstract void method15316(Class376 class376, int i, int i_727_, int i_728_, int i_729_);

	public final void method15317() {
		if (anInt9676 != 2) {
			method14971();
			method15024(false);
			method14982(false);
			method14978(false);
			method15249(false);
			method15018(1);
			method15020((byte) 0);
			anInt9676 = 2;
		}
	}

	public final void method15318() {
		if (anInt9676 != 2) {
			method14971();
			method15024(false);
			method14982(false);
			method14978(false);
			method15249(false);
			method15018(1);
			method15020((byte) 0);
			anInt9676 = 2;
		}
	}

	public void method3096(Class435 class435, Class180 class180, Class430 class430) {
		Class441 class441 = aClass441_9560;
		class441.method7090(class435);
		class441.method7089(aClass441_9574);
		class180.method3531(class430, aClass441_9570, class441, aFloat9603, aFloat9579, aFloat9578, aFloat9580);
	}

	public final Class148 method3265(Class175 class175, boolean bool) {
		Class148 class148;
		if (class175.method2944() != 0 && class175.method2945() != 0) {
			int[] is = class175.method2959(false);
			class148 = method3103(is, 0, class175.method2944(), class175.method2944(), class175.method2945(), -1775216369);
		} else
			class148 = method3103(new int[] { 0 }, 0, 1, 1, 1, -1781636265);
		class148.method2426(class175.method2946(), class175.method2948(), class175.method2984(), class175.method2949());
		return class148;
	}

	final void method15319() {
		if (anInt9676 != 8) {
			method14973();
			method15024(true);
			method14978(true);
			method15249(true);
			method15018(1);
			method15020((byte) 0);
			anInt9676 = 8;
		}
	}

	abstract void method15320(int i);

	abstract void method15321(int i);

	static int method15322(char c, char c_730_, char c_731_, char c_732_) {
		return ((c & 0xff) << 0 | (c_730_ & 0xff) << 8 | (c_731_ & 0xff) << 16 | (c_732_ & 0xff) << 24);
	}

	void method15323() {
		if (aClass354_9589 != null)
			aClass354_9589.method6206();
		if (aClass350Array9654 != null) {
			for (int i = 0; i < aClass350Array9654.length; i++) {
				if (aClass350Array9654[i] != null && aClass350Array9654[i].method6122())
					aClass350Array9654[i].method6137();
			}
		}
		aClass335_9678 = new Class335(this);
		method15042();
		method14936();
		method14937();
		aClass360_9596 = new Class360(this, 1024);
		aClass335_9678.method5913(this);
		if (aBool9682)
			aClass356_9639 = new Class356(this, 1024);
	}

	public final boolean method3146() {
		return (aClass350Array9654[3] != null && aClass350Array9654[3].method6122());
	}

	void method15324() {
		if (aClass354_9589 != null)
			aClass354_9589.method6206();
		if (aClass350Array9654 != null) {
			for (int i = 0; i < aClass350Array9654.length; i++) {
				if (aClass350Array9654[i] != null && aClass350Array9654[i].method6122())
					aClass350Array9654[i].method6137();
			}
		}
		aClass335_9678 = new Class335(this);
		method15042();
		method14936();
		method14937();
		aClass360_9596 = new Class360(this, 1024);
		aClass335_9678.method5913(this);
		if (aBool9682)
			aClass356_9639 = new Class356(this, 1024);
	}

	void method15325() {
		if (aClass354_9589 != null)
			aClass354_9589.method6214();
		if (anInterface36_9691 != null)
			anInterface36_9691.method131();
		if (anInterface36_9690 != null)
			anInterface36_9690.method131();
		if (anInterface36_9692 != null)
			anInterface36_9692.method131();
		if (aClass360_9596 != null)
			aClass360_9596.method6287();
		for (int i = 0; i < 8; i++) {
			if (aClass167_Sub2Array9595[i] != null)
				aClass167_Sub2Array9595[i].method14562();
		}
		if (aClass335_9678 != null)
			aClass335_9678.method5923();
		if (anInterface40_9699 != null)
			anInterface40_9699.method131();
		if (aClass356_9639 != null) {
			aClass356_9639.method6242();
			aClass356_9639 = null;
		}
	}

	public abstract float method15326();

	boolean method3123(int i, int i_733_, int i_734_, int i_735_, Class435 class435, Class430 class430) {
		Class441 class441 = aClass441_9560;
		class441.method7090(class435);
		class441.method7089(aClass441_9574);
		return class430.method6786(i, i_733_, i_734_, i_735_, class441, aFloat9603, aFloat9579, aFloat9578, aFloat9580);
	}

	abstract void method15327();

	public final Class441 method3446() {
		return aClass441_9554;
	}

	abstract void method15328();

	abstract void method15329(Interface40 interface40, Class376 class376, int i, int i_736_, int i_737_, int i_738_);

	abstract Interface37 method15330(Class158 class158, Class170 class170, int i, int i_739_);

	abstract Interface37 method15331(Class158 class158, Class170 class170, int i, int i_740_);

	abstract Interface37 method15332(Class158 class158, Class170 class170, int i, int i_741_);

	abstract Interface37 method15333(Class158 class158, Class170 class170, int i, int i_742_);

	abstract void method15334();
}
