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

import java.awt.Canvas;
import java.lang.reflect.Field;

import jaclib.memory.Buffer;
import jaclib.memory.Stream;
import jaclib.memory.heap.NativeHeap;

import jaggl.OpenGL;

import sun.misc.Unsafe;

public class Class178_Sub1 extends Class178 {
	int anInt9228;
	static final float aFloat9229 = 0.35F;
	static final int anInt9230 = 0;
	static final int anInt9231 = 1;
	Interface18 anInterface18_9232;
	Class435 aClass435_9233;
	static final int anInt9234 = 8;
	static final int anInt9235 = 16;
	static final int anInt9236 = 32;
	int anInt9237;
	static final int anInt9238 = 5121;
	static final int anInt9239 = 5123;
	float aFloat9240;
	int anInt9241;
	static final int anInt9242 = 7;
	static final int anInt9243 = 128;
	static final int anInt9244 = -1;
	static final int anInt9245 = -2;
	static final int anInt9246 = 7681;
	static final int anInt9247 = 8448;
	static final int anInt9248 = 260;
	static final int anInt9249 = 34023;
	float aFloat9250;
	static final int anInt9251 = 34167;
	static final int anInt9252 = 34168;
	int anInt9253;
	Interface15 anInterface15_9254;
	static final int anInt9255 = 34166;
	static final int anInt9256 = 770;
	static final int anInt9257 = 768;
	static final int anInt9258 = 0;
	boolean aBool9259;
	static final int anInt9260 = 2;
	int anInt9261;
	static final int anInt9262 = 1;
	int anInt9263;
	static final int anInt9264 = 3;
	static final int anInt9265 = 1;
	static final int anInt9266 = 2;
	static final int anInt9267 = 4;
	float aFloat9268;
	static final int anInt9269 = 16;
	static final int anInt9270 = 55;
	static final int anInt9271 = 7;
	OpenGL anOpenGL9272;
	Class441 aClass441_9273;
	float aFloat9274;
	int anInt9275;
	Class141 aClass141_9276;
	float[] aFloatArray9277;
	int anInt9278;
	Class523_Sub17_Sub2 aClass523_Sub17_Sub2_9279;
	Class121 aClass121_9280 = new Class121();
	Class441 aClass441_9281 = new Class441();
	static final int anInt9282 = 5126;
	Class435 aClass435_9283;
	float aFloat9284;
	int anInt9285;
	int anInt9286;
	int anInt9287;
	boolean aBool9288;
	NativeHeap aNativeHeap9289;
	Class708 aClass708_9290;
	Unsafe anUnsafe9291;
	Class441 aClass441_9292;
	int anInt9293;
	int[] anIntArray9294;
	Class708 aClass708_9295;
	Class708 aClass708_9296;
	Class708 aClass708_9297;
	Class708 aClass708_9298;
	Class708 aClass708_9299;
	static final int anInt9300 = 34479;
	Class708 aClass708_9301;
	long aLong9302;
	static int[] anIntArray9303 = new int[1000];
	static final int anInt9304 = 32993;
	int anInt9305;
	int anInt9306;
	static final int anInt9307 = 4;
	boolean aBool9308;
	static final int anInt9309 = 2;
	boolean aBool9310;
	byte aByte9311;
	boolean aBool9312;
	float aFloat9313;
	int anInt9314;
	boolean aBool9315;
	Class441 aClass441_9316;
	Class441 aClass441_9317;
	boolean aBool9318;
	int anInt9319;
	boolean aBool9320;
	Class523_Sub34_Sub1 aClass523_Sub34_Sub1_9321;
	float[] aFloatArray9322;
	boolean aBool9323;
	int anInt9324;
	boolean aBool9325;
	float aFloat9326;
	float aFloat9327;
	boolean aBool9328;
	long[] aLongArray9329;
	boolean aBool9330;
	Class435 aClass435_9331;
	Class441 aClass441_9332;
	Class441 aClass441_9333;
	float[] aFloatArray9334;
	int anInt9335;
	static final int anInt9336 = 5890;
	static final int anInt9337 = 34165;
	int anInt9338;
	boolean aBool9339;
	float aFloat9340;
	Class523_Sub17_Sub1 aClass523_Sub17_Sub1_9341;
	int anInt9342;
	float aFloat9343;
	int anInt9344;
	int anInt9345;
	int anInt9346;
	int anInt9347;
	static int anInt9348 = 4;
	boolean aBool9349;
	String aString9350;
	boolean aBool9351;
	int anInt9352;
	static final int anInt9353 = 4;
	float[] aFloatArray9354;
	int anInt9355;
	float aFloat9356;
	float aFloat9357;
	Class167_Sub3[] aClass167_Sub3Array9358;
	float aFloat9359;
	int anInt9360;
	int anInt9361;
	Class441 aClass441_9362 = new Class441();
	float aFloat9363;
	Class156 aClass156_9364;
	Class441 aClass441_9365;
	int anInt9366;
	boolean aBool9367;
	int anInt9368;
	int anInt9369;
	Class131 aClass131_9370;
	float aFloat9371;
	int anInt9372;
	float aFloat9373;
	float aFloat9374;
	boolean aBool9375;
	boolean aBool9376;
	Class163 aClass163_9377;
	Class168_Sub1 aClass168_Sub1_9378;
	float aFloat9379;
	static final int anInt9380 = 0;
	int anInt9381;
	Class154 aClass154_9382;
	int anInt9383;
	boolean aBool9384;
	Class708 aClass708_9385;
	Class126[] aClass126Array9386;
	Class126_Sub2 aClass126_Sub2_9387;
	Class185_Sub1 aClass185_Sub1_9388;
	static final int anInt9389 = 1;
	String aString9390;
	boolean aBool9391;
	int anInt9392;
	boolean aBool9393;
	static final int anInt9394 = 8;
	Class523_Sub20[] aClass523_Sub20Array9395;
	float[] aFloatArray9396;
	int anInt9397;
	boolean aBool9398;
	int anInt9399;
	boolean aBool9400;
	boolean aBool9401;
	boolean aBool9402;
	boolean aBool9403;
	boolean aBool9404;
	boolean aBool9405;
	static final int anInt9406 = 100663296;
	boolean aBool9407;
	boolean aBool9408;
	boolean aBool9409;
	boolean aBool9410;
	boolean aBool9411;
	boolean aBool9412;
	boolean aBool9413;
	boolean aBool9414;
	float[][] aFloatArrayArray9415;
	boolean aBool9416;
	Class523_Sub17_Sub3 aClass523_Sub17_Sub3_9417;
	int anInt9418;
	float aFloat9419;
	float aFloat9420;
	static final int anInt9421 = 2;
	Class167_Sub3[] aClass167_Sub3Array9422;
	Class168_Sub1_Sub3 aClass168_Sub1_Sub3_9423;
	int anInt9424;
	Class131 aClass131_9425;
	Interface15 anInterface15_9426;
	static float[] aFloatArray9427 = new float[4];
	static float[] aFloatArray9428 = new float[4];
	Class120 aClass120_9429;
	Class148 aClass148_9430;
	int[] anIntArray9431;
	int[] anIntArray9432;
	byte[] aByteArray9433;
	static final int anInt9434 = 3;
	Class148 aClass148_9435;
	int anInt9436;
	int anInt9437;
	int[] anIntArray9438;
	float[] aFloatArray9439;
	int[] anIntArray9440;
	int anInt9441;
	int anInt9442;

	public boolean method3377() {
		return true;
	}

	public int[] method3341() {
		int[] is = new int[1];
		OpenGL.glGetIntegerv(34466, is, 0);
		int i = is[0];
		if (i == 0)
			return null;
		int[] is_0_ = new int[i];
		OpenGL.glGetIntegerv(34467, is_0_, 0);
		return is_0_;
	}

	int method14614() {
		int i = 0;
		aString9350 = OpenGL.glGetString(7936).toLowerCase();
		aString9390 = OpenGL.glGetString(7937).toLowerCase();
		if (aString9350.indexOf("microsoft") != -1)
			i |= 0x1;
		if (aString9350.indexOf("brian paul") != -1 || aString9350.indexOf("mesa") != -1)
			i |= 0x1;
		String string = OpenGL.glGetString(7938);
		String[] strings = Class194_Sub13.method15512(string.replace('.', ' '), ' ', (byte) 7);
		if (strings.length >= 2) {
			try {
				int i_1_ = JS5Client.method15856(strings[0], (byte) 50);
				int i_2_ = JS5Client.method15856(strings[1], (byte) 22);
				anInt9392 = i_1_ * 10 + i_2_;
			} catch (NumberFormatException numberformatexception) {
				i |= 0x4;
			}
		} else
			i |= 0x4;
		if (anInt9392 < 12)
			i |= 0x2;
		if (!anOpenGL9272.method1668("GL_ARB_multitexture"))
			i |= 0x8;
		if (!anOpenGL9272.method1668("GL_ARB_texture_env_combine"))
			i |= 0x20;
		int[] is = new int[1];
		OpenGL.glGetIntegerv(34018, is, 0);
		anInt9241 = is[0];
		OpenGL.glGetIntegerv(34929, is, 0);
		anInt9278 = is[0];
		OpenGL.glGetIntegerv(34930, is, 0);
		anInt9397 = is[0];
		if (anInt9241 < 2 || anInt9278 < 2 || anInt9397 < 2)
			i |= 0x10;
		aBool9393 = Stream.method1704();
		aBool9320 = anOpenGL9272.method1668("GL_ARB_vertex_buffer_object");
		aBool9401 = anOpenGL9272.method1668("GL_ARB_multisample");
		aBool9412 = anOpenGL9272.method1668("GL_ARB_vertex_program");
		aBool9414 = anOpenGL9272.method1668("GL_ARB_fragment_program");
		aBool9413 = anOpenGL9272.method1668("GL_ARB_vertex_shader");
		aBool9315 = anOpenGL9272.method1668("GL_ARB_fragment_shader");
		aBool9325 = anOpenGL9272.method1668("GL_EXT_texture3D");
		aBool9409 = anOpenGL9272.method1668("GL_ARB_texture_rectangle");
		aBool9407 = anOpenGL9272.method1668("GL_ARB_texture_cube_map");
		aBool9408 = anOpenGL9272.method1668("GL_ARB_seamless_cube_map");
		aBool9410 = anOpenGL9272.method1668("GL_ARB_texture_float");
		aBool9411 = anOpenGL9272.method1668("GL_ARB_texture_non_power_of_two");
		aBool9398 = anOpenGL9272.method1668("GL_EXT_framebuffer_object");
		aBool9259 = anOpenGL9272.method1668("GL_EXT_framebuffer_blit");
		aBool9400 = anOpenGL9272.method1668("GL_EXT_framebuffer_multisample");
		aBool9402 = aBool9259 & aBool9400;
		aBool9330 = anOpenGL9272.method1668("GL_EXT_blend_func_separate");
		aBool9405 = (anUnsafe9291 != null && (anInt9392 >= 32 || anOpenGL9272.method1668("GL_ARB_sync")));
		aBool9318 = Class509.aString5723.startsWith("mac");
		OpenGL.glGetFloatv(2834, aFloatArray9427, 0);
		aFloat9420 = aFloatArray9427[0];
		aFloat9419 = aFloatArray9427[1];
		return i != 0 ? i : 0;
	}

	void method14615() {
		aClass126Array9386 = new Class126[anInt9241];
		aClass126_Sub2_9387 = new Class126_Sub2(this, 3553, Class158.aClass158_1743, Class170.aClass170_1822, 1, 1);
		new Class126_Sub2(this, 3553, Class158.aClass158_1743, Class170.aClass170_1822, 1, 1);
		new Class126_Sub2(this, 3553, Class158.aClass158_1743, Class170.aClass170_1822, 1, 1);
		for (int i = 0; i < 8; i++) {
			aClass167_Sub3Array9358[i] = new Class167_Sub3(this);
			aClass167_Sub3Array9422[i] = new Class167_Sub3(this);
		}
		if (aBool9398) {
			aClass168_Sub1_Sub3_9423 = new Class168_Sub1_Sub3(this);
			new Class168_Sub1_Sub3(this);
		}
	}

	void method14616() {
		method14670(-2);
		for (int i = anInt9241 - 1; i >= 0; i--) {
			method14673(i);
			method14711(null);
			OpenGL.glTexEnvi(8960, 8704, 34160);
		}
		method14676(8448, 8448);
		method14677(2, 34168, 770);
		method14826();
		anInt9305 = 1;
		anInt9442 = 0;
		aBool9308 = true;
		if (aBool9330)
			OpenGL.glBlendFuncSeparate(770, 771, 0, 0);
		else
			OpenGL.glBlendFunc(770, 771);
		anInt9306 = 1;
		aByte9311 = (byte) -1;
		method14625((byte) 0);
		aBool9310 = true;
		OpenGL.glEnable(3008);
		OpenGL.glAlphaFunc(516, (float) aByte9311);
		if (aBool9401) {
			if (anInt9381 == 0)
				OpenGL.glDisable(32925);
			else
				OpenGL.glEnable(32925);
			OpenGL.glDisable(32926);
		}
		OpenGL.glColorMask(true, true, true, true);
		aBool9323 = true;
		method14788(true);
		method14682(true);
		method14684(true);
		method14620(true);
		method3192(0.0F, 1.0F);
		method14641();
		anOpenGL9272.setSwapInterval(0);
		OpenGL.glShadeModel(7425);
		OpenGL.glClearDepth(1.0F);
		OpenGL.glDepthFunc(515);
		OpenGL.glPolygonMode(1028, 6914);
		method14712(anInt9314);
		OpenGL.glMatrixMode(5888);
		OpenGL.glLoadIdentity();
		OpenGL.glColorMaterial(1028, 5634);
		OpenGL.glEnable(2903);
		float[] fs = { 0.0F, 0.0F, 0.0F, 1.0F };
		for (int i = 0; i < 8; i++) {
			int i_3_ = 16384 + i;
			OpenGL.glLightfv(i_3_, 4608, fs, 0);
			OpenGL.glLightf(i_3_, 4615, 0.0F);
			OpenGL.glLightf(i_3_, 4616, 0.0F);
		}
		OpenGL.glEnable(16384);
		OpenGL.glEnable(16385);
		OpenGL.glFogf(2914, 0.95F);
		OpenGL.glFogi(2917, 9729);
		OpenGL.glHint(3156, 4353);
		if (aBool9408)
			OpenGL.glEnable(34895);
		anInt9368 = -1;
		anInt9355 = -1;
		method3067();
		method3071();
	}

	void method14617() {
		method14670(-2);
		for (int i = anInt9241 - 1; i >= 0; i--) {
			method14673(i);
			method14711(null);
			OpenGL.glTexEnvi(8960, 8704, 34160);
		}
		method14676(8448, 8448);
		method14677(2, 34168, 770);
		method14826();
		anInt9305 = 1;
		anInt9442 = 0;
		aBool9308 = true;
		if (aBool9330)
			OpenGL.glBlendFuncSeparate(770, 771, 0, 0);
		else
			OpenGL.glBlendFunc(770, 771);
		anInt9306 = 1;
		aByte9311 = (byte) -1;
		method14625((byte) 0);
		aBool9310 = true;
		OpenGL.glEnable(3008);
		OpenGL.glAlphaFunc(516, (float) aByte9311);
		if (aBool9401) {
			if (anInt9381 == 0)
				OpenGL.glDisable(32925);
			else
				OpenGL.glEnable(32925);
			OpenGL.glDisable(32926);
		}
		OpenGL.glColorMask(true, true, true, true);
		aBool9323 = true;
		method14788(true);
		method14682(true);
		method14684(true);
		method14620(true);
		method3192(0.0F, 1.0F);
		method14641();
		anOpenGL9272.setSwapInterval(0);
		OpenGL.glShadeModel(7425);
		OpenGL.glClearDepth(1.0F);
		OpenGL.glDepthFunc(515);
		OpenGL.glPolygonMode(1028, 6914);
		method14712(anInt9314);
		OpenGL.glMatrixMode(5888);
		OpenGL.glLoadIdentity();
		OpenGL.glColorMaterial(1028, 5634);
		OpenGL.glEnable(2903);
		float[] fs = { 0.0F, 0.0F, 0.0F, 1.0F };
		for (int i = 0; i < 8; i++) {
			int i_4_ = 16384 + i;
			OpenGL.glLightfv(i_4_, 4608, fs, 0);
			OpenGL.glLightf(i_4_, 4615, 0.0F);
			OpenGL.glLightf(i_4_, 4616, 0.0F);
		}
		OpenGL.glEnable(16384);
		OpenGL.glEnable(16385);
		OpenGL.glFogf(2914, 0.95F);
		OpenGL.glFogi(2917, 9729);
		OpenGL.glHint(3156, 4353);
		if (aBool9408)
			OpenGL.glEnable(34895);
		anInt9368 = -1;
		anInt9355 = -1;
		method3067();
		method3071();
	}

	final void method14618(int i) {
		if (anInt9285 != i) {
			OpenGL.glActiveTexture(33984 + i);
			anInt9285 = i;
		}
	}

	public void method3021() {
		OpenGL.glFinish();
	}

	void method3023() {
		for (Class523 class523 = aClass708_9290.method14240(734422356); class523 != null; class523 = aClass708_9290.method14244((byte) -48))
			((Class523_Sub8_Sub2) class523).method17875();
		if (aClass141_9276 != null)
			aClass141_9276.method2314();
		if (aBool9288) {
			Class305.method5552(false, true, (byte) 0);
			aBool9288 = false;
		}
	}

	public boolean method3026() {
		return true;
	}

	public boolean method3027() {
		return true;
	}

	public boolean method3244() {
		return true;
	}

	final void method14619() {
		if (anInt9424 != 8) {
			method14643();
			method14788(true);
			method14684(true);
			method14620(true);
			method14687(1);
			method14625((byte) 0);
			anInt9424 = 8;
		}
	}

	final void method3467(float f, float f_5_, float f_6_, float f_7_, float f_8_, float f_9_) {
		Class523_Sub17_Sub3.aFloat11597 = f;
		Class523_Sub17_Sub3.aFloat11596 = f_5_;
		Class523_Sub17_Sub3.aFloat11595 = f_6_;
	}

	final void method14620(boolean bool) {
		if (bool != aBool9403) {
			aBool9403 = bool;
			method14685();
			anInt9424 &= ~0x1f;
		}
	}

	final void method14621(int i, int i_10_) {
		if (anInt9285 == 0) {
			boolean bool = false;
			if (anInt9399 != i) {
				OpenGL.glTexEnvi(8960, 34161, i);
				anInt9399 = i;
				bool = true;
			}
			if (anInt9383 != i_10_) {
				OpenGL.glTexEnvi(8960, 34162, i_10_);
				anInt9383 = i_10_;
				bool = true;
			}
			if (bool)
				anInt9424 &= ~0x1d;
		} else {
			OpenGL.glTexEnvi(8960, 34161, i);
			OpenGL.glTexEnvi(8960, 34162, i_10_);
		}
	}

	public boolean method3033() {
		return true;
	}

	public boolean method3127() {
		return (aClass523_Sub17_Sub1_9341 != null && aClass523_Sub17_Sub1_9341.method16010());
	}

	final void method14622() {
		aFloat9313 = aClass441_9292.method7105();
		aFloat9340 = aClass441_9292.method7104();
		method14651();
		if (anInt9335 == 2)
			method14644(aClass441_9292.aFloatArray4916);
		else if (anInt9335 == 1)
			method14644(aClass441_9273.aFloatArray4916);
	}

	public boolean method3035() {
		return false;
	}

	public String method3036() {
		String string = "Caps: 2:";
		String string_11_ = ":";
		string = new StringBuilder().append(string).append(anInt9381).append(string_11_).toString();
		string = new StringBuilder().append(string).append(anInt9418).append(string_11_).toString();
		string = new StringBuilder().append(string).append(anInt9241).append(string_11_).toString();
		string = new StringBuilder().append(string).append(anInt9278).append(string_11_).toString();
		string = new StringBuilder().append(string).append(anInt9397).append(string_11_).toString();
		string = new StringBuilder().append(string).append(aFloat9420).append(string_11_).toString();
		string = new StringBuilder().append(string).append(aFloat9419).append(string_11_).toString();
		string = new StringBuilder().append(string).append(aBool9393 ? 1 : 0).append(string_11_).toString();
		string = new StringBuilder().append(string).append(aBool9391 ? 1 : 0).append(string_11_).toString();
		string = new StringBuilder().append(string).append(aBool9318 ? 1 : 0).append(string_11_).toString();
		string = new StringBuilder().append(string).append(aBool9320 ? 1 : 0).append(string_11_).toString();
		string = new StringBuilder().append(string).append(aBool9404 ? 1 : 0).append(string_11_).toString();
		string = new StringBuilder().append(string).append(aBool9401 ? 1 : 0).append(string_11_).toString();
		string = new StringBuilder().append(string).append(aBool9412 ? 1 : 0).append(string_11_).toString();
		string = new StringBuilder().append(string).append(aBool9414 ? 1 : 0).append(string_11_).toString();
		string = new StringBuilder().append(string).append(aBool9413 ? 1 : 0).append(string_11_).toString();
		string = new StringBuilder().append(string).append(aBool9315 ? 1 : 0).append(string_11_).toString();
		string = new StringBuilder().append(string).append(aBool9325 ? 1 : 0).append(string_11_).toString();
		string = new StringBuilder().append(string).append(aBool9409 ? 1 : 0).append(string_11_).toString();
		string = new StringBuilder().append(string).append(aBool9407 ? 1 : 0).append(string_11_).toString();
		string = new StringBuilder().append(string).append(aBool9408 ? 1 : 0).append(string_11_).toString();
		string = new StringBuilder().append(string).append(aBool9411 ? 1 : 0).append(string_11_).toString();
		string = new StringBuilder().append(string).append(aBool9398 ? 1 : 0).append(string_11_).toString();
		string = new StringBuilder().append(string).append(aBool9259 ? 1 : 0).append(string_11_).toString();
		string = new StringBuilder().append(string).append(aBool9400 ? 1 : 0).append(string_11_).toString();
		string = new StringBuilder().append(string).append(aBool9410 ? 1 : 0).append(string_11_).toString();
		string = new StringBuilder().append(string).append(aBool9416 ? 1 : 0).append(string_11_).toString();
		string = new StringBuilder().append(string).append(aBool9330 ? 1 : 0).toString();
		return string;
	}

	public Interface23 method3402(int i, int i_12_) {
		return new Class523_Sub27_Sub3(this, Class158.aClass158_1750, Class170.aClass170_1827, i, i_12_);
	}

	void method14623() {
		if (aBool9349 && !aBool9328)
			OpenGL.glEnable(2896);
		else
			OpenGL.glDisable(2896);
	}

	public int method3389(int i, int i_13_, int i_14_, int i_15_, int i_16_, int i_17_) {
		int i_18_ = 0;
		float f = (aClass441_9365.aFloatArray4916[14] + aClass441_9365.aFloatArray4916[2] * (float) i + aClass441_9365.aFloatArray4916[6] * (float) i_13_ + aClass441_9365.aFloatArray4916[10] * (float) i_14_);
		float f_19_ = (aClass441_9365.aFloatArray4916[14] + aClass441_9365.aFloatArray4916[2] * (float) i_15_ + aClass441_9365.aFloatArray4916[6] * (float) i_16_ + aClass441_9365.aFloatArray4916[10] * (float) i_17_);
		float f_20_ = (aClass441_9365.aFloatArray4916[15] + aClass441_9365.aFloatArray4916[3] * (float) i + aClass441_9365.aFloatArray4916[7] * (float) i_13_ + aClass441_9365.aFloatArray4916[11] * (float) i_14_);
		float f_21_ = (aClass441_9365.aFloatArray4916[15] + aClass441_9365.aFloatArray4916[3] * (float) i_15_ + aClass441_9365.aFloatArray4916[7] * (float) i_16_ + aClass441_9365.aFloatArray4916[11] * (float) i_17_);
		if (f < -f_20_ && f_19_ < -f_21_)
			i_18_ |= 0x10;
		else if (f > f_20_ && f_19_ > f_21_)
			i_18_ |= 0x20;
		float f_22_ = (aClass441_9365.aFloatArray4916[12] + aClass441_9365.aFloatArray4916[0] * (float) i + aClass441_9365.aFloatArray4916[4] * (float) i_13_ + aClass441_9365.aFloatArray4916[8] * (float) i_14_);
		float f_23_ = (aClass441_9365.aFloatArray4916[12] + aClass441_9365.aFloatArray4916[0] * (float) i_15_ + aClass441_9365.aFloatArray4916[4] * (float) i_16_ + aClass441_9365.aFloatArray4916[8] * (float) i_17_);
		if (f_22_ < -f_20_ && f_23_ < -f_21_)
			i_18_ |= 0x1;
		if (f_22_ > f_20_ && f_23_ > f_21_)
			i_18_ |= 0x2;
		float f_24_ = (aClass441_9365.aFloatArray4916[13] + aClass441_9365.aFloatArray4916[1] * (float) i + aClass441_9365.aFloatArray4916[5] * (float) i_13_ + aClass441_9365.aFloatArray4916[9] * (float) i_14_);
		float f_25_ = (aClass441_9365.aFloatArray4916[13] + aClass441_9365.aFloatArray4916[1] * (float) i_15_ + aClass441_9365.aFloatArray4916[5] * (float) i_16_ + aClass441_9365.aFloatArray4916[9] * (float) i_17_);
		if (f_24_ < -f_20_ && f_25_ < -f_21_)
			i_18_ |= 0x4;
		if (f_24_ > f_20_ && f_25_ > f_21_)
			i_18_ |= 0x8;
		return i_18_;
	}

	void method14624() {
		int i = aClass168_1938.method2875();
		int i_26_ = aClass168_1938.method2874();
		aClass441_9273.method7098(0.0F, (float) i, 0.0F, (float) i_26_, -1.0F, 1.0F);
		method3067();
		method14641();
		method3071();
	}

	public int[] method3293(int i, int i_27_, int i_28_, int i_29_) {
		if (aClass168_1938 != null) {
			int[] is = new int[i_28_ * i_29_];
			int i_30_ = aClass168_1938.method2874();
			for (int i_31_ = 0; i_31_ < i_29_; i_31_++)
				OpenGL.glReadPixelsi(i, i_30_ - i_27_ - i_31_ - 1, i_28_, 1, 32993, anInt9418, is, i_31_ * i_28_);
			return is;
		}
		return null;
	}

	public void method3054() {
		if (aBool9416 && aClass168_1938 != null) {
			int i = anInt9253;
			int i_32_ = anInt9361;
			int i_33_ = anInt9338;
			int i_34_ = anInt9263;
			method3071();
			int i_35_ = anInt9344;
			int i_36_ = anInt9345;
			int i_37_ = anInt9346;
			int i_38_ = anInt9360;
			method3067();
			OpenGL.glReadBuffer(1028);
			OpenGL.glDrawBuffer(1029);
			method14641();
			method14788(false);
			method14682(false);
			method14684(false);
			method14620(false);
			method14711(null);
			method14670(-2);
			method14785(1);
			method14687(0);
			OpenGL.glMatrixMode(5889);
			OpenGL.glLoadIdentity();
			OpenGL.glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
			OpenGL.glMatrixMode(5888);
			OpenGL.glLoadIdentity();
			OpenGL.glRasterPos2i(0, 0);
			OpenGL.glCopyPixels(0, 0, aClass168_1938.method2875(), aClass168_1938.method2874(), 6144);
			OpenGL.glFlush();
			OpenGL.glReadBuffer(1029);
			OpenGL.glDrawBuffer(1029);
			method3378(i, i_33_, i_32_, i_34_);
			method3208(i_35_, i_36_, i_37_, i_38_);
		}
	}

	public boolean method3309() {
		return aBool9405;
	}

	public boolean method3056() {
		if (aBool9405 && aLongArray9329[anInt9319] != 0L)
			return false;
		return true;
	}

	final void method14625(byte i) {
		if (aByte9311 != i) {
			aByte9311 = i;
			if (i == 0) {
				method14683(2);
				method14687(1);
			} else {
				method14683(3);
				method14687(3);
			}
			method14690();
		}
	}

	public boolean method3058() {
		return true;
	}

	public int method3059() {
		if (aBool9405) {
			if (aLongArray9329[anInt9441] == 0L)
				return -1;
			int i = OpenGL.glClientWaitSync(aLongArray9329[anInt9441], 0, 0);
			if (i == 37149) {
				method3060();
				return -1;
			}
			return i != 37147 ? anIntArray9440[anInt9441] : -1;
		}
		return -1;
	}

	public void method3061(int i, int i_39_, int i_40_) {
		method3186();
		if (aClass168_Sub1_9378 == null)
			method14629(i_39_, i_40_);
		if (aClass148_9435 == null)
			aClass148_9435 = method3376(0, 0, aClass168_1938.method2875(), aClass168_1938.method2874(), true);
		else
			((Class148_Sub2) aClass148_9435).method14534(0, 0, aClass168_1938.method2875(), aClass168_1938.method2874(), 0, 0, true);
		method3353(aClass168_Sub1_9378, 423716014);
		method3076(1, -16777216);
		aClass148_9435.method2438(anInt1945 * 1970564341, anInt1937 * 1216763507, anInt1946 * -750425387, anInt1915 * -733304105);
		OpenGL.glBindBufferARB(35051, anIntArray9438[anInt9319]);
		OpenGL.glReadPixelsub(0, 0, anInt1942 * 799761325, anInt1943 * -2022726959, 32993, 5121, null, 0);
		OpenGL.glBindBufferARB(35051, 0);
		method3047(aClass168_Sub1_9378, (short) -8366);
		aLongArray9329[anInt9319] = OpenGL.glFenceSync(37143, 0);
		anIntArray9440[anInt9319] = i;
		if (++anInt9319 >= 3)
			anInt9319 = 0;
		method3108();
	}

	final void method14626(Interface18 interface18) {
		if (anInterface18_9232 != interface18) {
			if (aBool9320)
				OpenGL.glBindBufferARB(34963, interface18.method1());
			anInterface18_9232 = interface18;
		}
	}

	public long method3324(int i, int i_41_) {
		return method14627(i, i_41_, null, null);
	}

	public void method3130(int i, int i_42_, int[] is, int[] is_43_) {
		method14627(i, i_42_, is, is_43_);
	}

	long method14627(int i, int i_44_, int[] is, int[] is_45_) {
		if (aBool9405) {
			if (aLongArray9329[anInt9441] != 0L) {
				OpenGL.glDeleteSync(aLongArray9329[anInt9441]);
				aLongArray9329[anInt9441] = 0L;
			}
			OpenGL.glBindBufferARB(35051, anIntArray9438[anInt9441]);
			long l = OpenGL.glMapBufferARB(35051, 35000);
			if (is != null) {
				int i_46_ = 0;
				for (int i_47_ = i_44_ - 1; i_47_ >= 0; i_47_--) {
					for (int i_48_ = 0; i_48_ < i; i_48_++)
						is[i_46_++] = anUnsafe9291.getInt(l + (long) ((i_47_ * i + i_48_) * 4));
				}
				if (OpenGL.glUnmapBufferARB(35051)) {
					/* empty */
				}
				OpenGL.glBindBufferARB(35051, 0);
				l = 0L;
			}
			if (++anInt9441 >= 3)
				anInt9441 = 0;
			return l;
		}
		if (aClass148_9430 == null)
			method14629(i, i_44_);
		if (aClass148_9435 == null)
			aClass148_9435 = method3376(0, 0, aClass168_1938.method2875(), aClass168_1938.method2874(), true);
		else
			((Class148_Sub2) aClass148_9435).method14534(0, 0, aClass168_1938.method2875(), aClass168_1938.method2874(), 0, 0, true);
		method3353(aClass168_Sub1_9378, -817600087);
		method3076(1, -16777216);
		aClass148_9435.method2438(anInt1945 * 1970564341, anInt1937 * 1216763507, anInt1946 * -750425387, anInt1915 * -733304105);
		aClass148_9430.method2432(0, 0, i, i_44_, is, is_45_, 0, i);
		method3047(aClass168_Sub1_9378, (short) -8095);
		return 0L;
	}

	void method14628() {
		int i = 0;
		while (!anOpenGL9272.method1669()) {
			if (i++ > 5)
				throw new RuntimeException("");
			Class653.method10656(1000L);
		}
	}

	void method3209(int i, int i_49_, int i_50_, int i_51_, int i_52_) {
		method14716();
		method14687(i_52_);
		float f = (float) i + 0.35F;
		float f_53_ = (float) i_49_ + 0.35F;
		OpenGL.glColor4ub((byte) (i_51_ >> 16), (byte) (i_51_ >> 8), (byte) i_51_, (byte) (i_51_ >> 24));
		OpenGL.glBegin(1);
		OpenGL.glVertex2f(f, f_53_);
		OpenGL.glVertex2f(f, f_53_ + (float) i_50_);
		OpenGL.glEnd();
	}

	void method14629(int i, int i_54_) {
		method3066();
		method3161(i, i_54_, -1914624483);
		if (aBool9405) {
			aClass148_9430 = method3136(i, i_54_, true, true);
			aClass168_Sub1_9378 = method3248();
			aClass168_Sub1_9378.method14424(0, aClass148_9430.method2430());
			OpenGL.glGenBuffersARB(3, anIntArray9438, 0);
			for (int i_55_ = 0; i_55_ < 3; i_55_++) {
				OpenGL.glBindBufferARB(35051, anIntArray9438[i_55_]);
				OpenGL.glBufferDataARBa(35051, i * i_54_ * 4, 0L, 35041);
				OpenGL.glBindBufferARB(35051, 0);
			}
		} else {
			aClass148_9430 = method3136(i, i_54_, true, true);
			aClass168_Sub1_9378 = method3248();
			aClass168_Sub1_9378.method14424(0, aClass148_9430.method2430());
		}
	}

	public Class523_Sub8 method3385(int i) {
		Class523_Sub8_Sub2 class523_sub8_sub2 = new Class523_Sub8_Sub2(i);
		aClass708_9290.method14236(class523_sub8_sub2, 957313272);
		return class523_sub8_sub2;
	}

	public void method3083(int i, int i_56_, int i_57_, int i_58_, int i_59_, int i_60_) {
		float f = (float) i + 0.35F;
		float f_61_ = (float) i_56_ + 0.35F;
		float f_62_ = f + (float) i_57_ - 1.0F;
		float f_63_ = f_61_ + (float) i_58_ - 1.0F;
		method14716();
		method14687(i_60_);
		OpenGL.glColor4ub((byte) (i_59_ >> 16), (byte) (i_59_ >> 8), (byte) i_59_, (byte) (i_59_ >> 24));
		if (aBool9401)
			OpenGL.glDisable(32925);
		OpenGL.glBegin(2);
		OpenGL.glVertex2f(f, f_61_);
		OpenGL.glVertex2f(f, f_63_);
		OpenGL.glVertex2f(f_62_, f_63_);
		OpenGL.glVertex2f(f_62_, f_61_);
		OpenGL.glEnd();
		if (aBool9401)
			OpenGL.glEnable(32925);
	}

	public void method3193(int i, int i_64_, int i_65_, int i_66_, int i_67_, int i_68_) {
		float f = (float) i + 0.35F;
		float f_69_ = (float) i_64_ + 0.35F;
		float f_70_ = f + (float) i_65_;
		float f_71_ = f_69_ + (float) i_66_;
		method14716();
		method14687(i_68_);
		OpenGL.glColor4ub((byte) (i_67_ >> 16), (byte) (i_67_ >> 8), (byte) i_67_, (byte) (i_67_ >> 24));
		if (aBool9401)
			OpenGL.glDisable(32925);
		OpenGL.glBegin(7);
		OpenGL.glVertex2f(f, f_69_);
		OpenGL.glVertex2f(f, f_71_);
		OpenGL.glVertex2f(f_70_, f_71_);
		OpenGL.glVertex2f(f_70_, f_69_);
		OpenGL.glEnd();
		if (aBool9401)
			OpenGL.glEnable(32925);
	}

	public final void method3297(Class435 class435) {
		aClass435_9233.method6803(class435);
		aClass441_9316.method7090(aClass435_9233);
		aClass435_9331.method6803(class435);
		aClass435_9331.method6857();
		aClass441_9317.method7090(aClass435_9331);
		method14789();
		if (anInt9335 != 1)
			method14713();
	}

	void method3415(int i, int i_72_, int i_73_, int i_74_, int i_75_) {
		if (i_73_ < 0)
			i_73_ = -i_73_;
		if (i + i_73_ >= anInt9253 && i - i_73_ <= anInt9361 && i_72_ + i_73_ >= anInt9338 && i_72_ - i_73_ <= anInt9263) {
			method14716();
			method14687(i_75_);
			OpenGL.glColor4ub((byte) (i_74_ >> 16), (byte) (i_74_ >> 8), (byte) i_74_, (byte) (i_74_ >> 24));
			float f = (float) i + 0.35F;
			float f_76_ = (float) i_72_ + 0.35F;
			int i_77_ = i_73_ << 1;
			if ((float) i_77_ < aFloat9420) {
				OpenGL.glBegin(7);
				OpenGL.glVertex2f(f + 1.0F, f_76_ + 1.0F);
				OpenGL.glVertex2f(f + 1.0F, f_76_ - 1.0F);
				OpenGL.glVertex2f(f - 1.0F, f_76_ - 1.0F);
				OpenGL.glVertex2f(f - 1.0F, f_76_ + 1.0F);
				OpenGL.glEnd();
			} else if ((float) i_77_ <= aFloat9419) {
				OpenGL.glEnable(2832);
				OpenGL.glPointSize((float) i_77_);
				OpenGL.glBegin(0);
				OpenGL.glVertex2f(f, f_76_);
				OpenGL.glEnd();
				OpenGL.glDisable(2832);
			} else {
				OpenGL.glBegin(6);
				OpenGL.glVertex2f(f, f_76_);
				int i_78_ = 262144 / (6 * i_73_);
				if (i_78_ <= 64)
					i_78_ = 64;
				else if (i_78_ > 512)
					i_78_ = 512;
				i_78_ = Class375.method6383(i_78_, 189765723);
				OpenGL.glVertex2f(f + (float) i_73_, f_76_);
				for (int i_79_ = 16384 - i_78_; i_79_ > 0; i_79_ -= i_78_)
					OpenGL.glVertex2f(f + (Class153.aFloatArray1730[i_79_] * (float) i_73_), f_76_ + (Class153.aFloatArray1731[i_79_] * (float) i_73_));
				OpenGL.glVertex2f(f + (float) i_73_, f_76_);
				OpenGL.glEnd();
			}
		}
	}

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

	void method3119(int i, int i_81_, int i_82_, int i_83_, int i_84_) {
		method14716();
		method14687(i_84_);
		float f = (float) i + 0.35F;
		float f_85_ = (float) i_81_ + 0.35F;
		OpenGL.glColor4ub((byte) (i_83_ >> 16), (byte) (i_83_ >> 8), (byte) i_83_, (byte) (i_83_ >> 24));
		OpenGL.glBegin(1);
		OpenGL.glVertex2f(f, f_85_);
		OpenGL.glVertex2f(f, f_85_ + (float) i_82_);
		OpenGL.glEnd();
	}

	public void method3089(int i, int i_86_, int i_87_, int i_88_, int i_89_, int i_90_) {
		method14716();
		method14687(i_90_);
		float f = (float) i_87_ - (float) i;
		float f_91_ = (float) i_88_ - (float) i_86_;
		if (f == 0.0F && f_91_ == 0.0F)
			f = 1.0F;
		else {
			float f_92_ = (float) (1.0 / Math.sqrt((double) (f * f + f_91_ * f_91_)));
			f *= f_92_;
			f_91_ *= f_92_;
		}
		OpenGL.glColor4ub((byte) (i_89_ >> 16), (byte) (i_89_ >> 8), (byte) i_89_, (byte) (i_89_ >> 24));
		OpenGL.glBegin(1);
		OpenGL.glVertex2f((float) i + 0.35F, (float) i_86_ + 0.35F);
		OpenGL.glVertex2f((float) i_87_ + f + 0.35F, (float) i_88_ + f_91_ + 0.35F);
		OpenGL.glEnd();
	}

	public void method3107(int i, int i_93_, int i_94_, int i_95_, int i_96_, int i_97_, int i_98_, int i_99_, int i_100_) {
		if (i != i_94_ || i_93_ != i_95_) {
			method14716();
			method14687(i_97_);
			float f = (float) i_94_ - (float) i;
			float f_101_ = (float) i_95_ - (float) i_93_;
			float f_102_ = (float) (1.0 / Math.sqrt((double) (f * f + f_101_ * f_101_)));
			f *= f_102_;
			f_101_ *= f_102_;
			OpenGL.glColor4ub((byte) (i_96_ >> 16), (byte) (i_96_ >> 8), (byte) i_96_, (byte) (i_96_ >> 24));
			i_100_ %= i_99_ + i_98_;
			float f_103_ = f * (float) i_98_;
			float f_104_ = f_101_ * (float) i_98_;
			float f_105_ = 0.0F;
			float f_106_ = 0.0F;
			float f_107_ = f_103_;
			float f_108_ = f_104_;
			if (i_100_ > i_98_) {
				f_105_ = f * (float) (i_98_ + i_99_ - i_100_);
				f_106_ = f_101_ * (float) (i_98_ + i_99_ - i_100_);
			} else {
				f_107_ = f * (float) (i_98_ - i_100_);
				f_108_ = f_101_ * (float) (i_98_ - i_100_);
			}
			float f_109_ = (float) i + 0.35F + f_105_;
			float f_110_ = (float) i_93_ + 0.35F + f_106_;
			float f_111_ = f * (float) i_99_;
			float f_112_ = f_101_ * (float) i_99_;
			for (;;) {
				if (i_94_ > i) {
					if (f_109_ > (float) i_94_ + 0.35F)
						break;
					if (f_109_ + f_107_ > (float) i_94_)
						f_107_ = (float) i_94_ - f_109_;
				} else {
					if (f_109_ < (float) i_94_ + 0.35F)
						break;
					if (f_109_ + f_107_ < (float) i_94_)
						f_107_ = (float) i_94_ - f_109_;
				}
				if (i_95_ > i_93_) {
					if (f_110_ > (float) i_95_ + 0.35F)
						break;
					if (f_110_ + f_108_ > (float) i_95_)
						f_108_ = (float) i_95_ - f_110_;
				} else {
					if (f_110_ < (float) i_95_ + 0.35F)
						break;
					if (f_110_ + f_108_ < (float) i_95_)
						f_108_ = (float) i_95_ - f_110_;
				}
				OpenGL.glBegin(1);
				OpenGL.glVertex2f(f_109_, f_110_);
				OpenGL.glVertex2f(f_109_ + f_107_, f_110_ + f_108_);
				OpenGL.glEnd();
				f_109_ += f_111_ + f_107_;
				f_110_ += f_112_ + f_108_;
				f_107_ = f_103_;
				f_108_ = f_104_;
			}
		}
	}

	public void method3090(int i, int i_113_, int i_114_, int i_115_, int i_116_, int i_117_, Class145 class145, int i_118_, int i_119_) {
		Class145_Sub3 class145_sub3 = (Class145_Sub3) class145;
		Class126_Sub2_Sub1 class126_sub2_sub1 = class145_sub3.aClass126_Sub2_Sub1_9842;
		method14738();
		method14711(class145_sub3.aClass126_Sub2_Sub1_9842);
		method14687(i_117_);
		method14676(7681, 8448);
		method14677(0, 34167, 768);
		float f = (class126_sub2_sub1.aFloat11357 / (float) class126_sub2_sub1.anInt11354);
		float f_120_ = (class126_sub2_sub1.aFloat11356 / (float) class126_sub2_sub1.anInt11355);
		float f_121_ = (float) i_114_ - (float) i;
		float f_122_ = (float) i_115_ - (float) i_113_;
		float f_123_ = (float) (1.0 / Math.sqrt((double) (f_121_ * f_121_ + f_122_ * f_122_)));
		f_121_ *= f_123_;
		f_122_ *= f_123_;
		OpenGL.glColor4ub((byte) (i_116_ >> 16), (byte) (i_116_ >> 8), (byte) i_116_, (byte) (i_116_ >> 24));
		OpenGL.glBegin(1);
		OpenGL.glTexCoord2f(f * (float) (i - i_118_), f_120_ * (float) (i_113_ - i_119_));
		OpenGL.glVertex2f((float) i + 0.35F, (float) i_113_ + 0.35F);
		OpenGL.glTexCoord2f(f * (float) (i_114_ - i_118_), f_120_ * (float) (i_115_ - i_119_));
		OpenGL.glVertex2f((float) i_114_ + f_121_ + 0.35F, (float) i_115_ + f_122_ + 0.35F);
		OpenGL.glEnd();
		method14677(0, 5890, 768);
	}

	public void method3092(int i, int i_124_, int i_125_, int i_126_, int i_127_, int i_128_, Class145 class145, int i_129_, int i_130_, int i_131_, int i_132_, int i_133_) {
		if (i != i_125_ || i_124_ != i_126_) {
			Class145_Sub3 class145_sub3 = (Class145_Sub3) class145;
			Class126_Sub2_Sub1 class126_sub2_sub1 = class145_sub3.aClass126_Sub2_Sub1_9842;
			method14738();
			method14711(class145_sub3.aClass126_Sub2_Sub1_9842);
			method14687(i_128_);
			method14676(7681, 8448);
			method14677(0, 34167, 768);
			float f = (class126_sub2_sub1.aFloat11357 / (float) class126_sub2_sub1.anInt11354);
			float f_134_ = (class126_sub2_sub1.aFloat11356 / (float) class126_sub2_sub1.anInt11355);
			float f_135_ = (float) i_125_ - (float) i;
			float f_136_ = (float) i_126_ - (float) i_124_;
			float f_137_ = (float) (1.0 / Math.sqrt((double) (f_135_ * f_135_ + f_136_ * f_136_)));
			f_135_ *= f_137_;
			f_136_ *= f_137_;
			OpenGL.glColor4ub((byte) (i_127_ >> 16), (byte) (i_127_ >> 8), (byte) i_127_, (byte) (i_127_ >> 24));
			i_133_ %= i_132_ + i_131_;
			float f_138_ = f_135_ * (float) i_131_;
			float f_139_ = f_136_ * (float) i_131_;
			float f_140_ = 0.0F;
			float f_141_ = 0.0F;
			float f_142_ = f_138_;
			float f_143_ = f_139_;
			if (i_133_ > i_131_) {
				f_140_ = f_135_ * (float) (i_131_ + i_132_ - i_133_);
				f_141_ = f_136_ * (float) (i_131_ + i_132_ - i_133_);
			} else {
				f_142_ = f_135_ * (float) (i_131_ - i_133_);
				f_143_ = f_136_ * (float) (i_131_ - i_133_);
			}
			float f_144_ = (float) i + 0.35F + f_140_;
			float f_145_ = (float) i_124_ + 0.35F + f_141_;
			float f_146_ = f_135_ * (float) i_132_;
			float f_147_ = f_136_ * (float) i_132_;
			for (;;) {
				if (i_125_ > i) {
					if (f_144_ > (float) i_125_ + 0.35F)
						break;
					if (f_144_ + f_142_ > (float) i_125_)
						f_142_ = (float) i_125_ - f_144_;
				} else {
					if (f_144_ < (float) i_125_ + 0.35F)
						break;
					if (f_144_ + f_142_ < (float) i_125_)
						f_142_ = (float) i_125_ - f_144_;
				}
				if (i_126_ > i_124_) {
					if (f_145_ > (float) i_126_ + 0.35F)
						break;
					if (f_145_ + f_143_ > (float) i_126_)
						f_143_ = (float) i_126_ - f_145_;
				} else {
					if (f_145_ < (float) i_126_ + 0.35F)
						break;
					if (f_145_ + f_143_ < (float) i_126_)
						f_143_ = (float) i_126_ - f_145_;
				}
				OpenGL.glBegin(1);
				OpenGL.glTexCoord2f(f * (f_144_ - (float) i_129_), f_134_ * (f_145_ - (float) i_130_));
				OpenGL.glVertex2f(f_144_, f_145_);
				OpenGL.glTexCoord2f(f * (f_144_ + f_142_ - (float) i_129_), f_134_ * (f_145_ + f_143_ - (float) i_130_));
				OpenGL.glVertex2f(f_144_ + f_142_, f_145_ + f_143_);
				OpenGL.glEnd();
				f_144_ += f_146_ + f_142_;
				f_145_ += f_147_ + f_143_;
				f_142_ = f_138_;
				f_143_ = f_139_;
			}
			method14677(0, 5890, 768);
		}
	}

	public void method3277(int i, int i_148_, int i_149_, int i_150_, int i_151_, int i_152_, int i_153_) {
		OpenGL.glLineWidth((float) i_152_);
		method3089(i, i_148_, i_149_, i_150_, i_151_, i_153_);
		OpenGL.glLineWidth(1.0F);
	}

	public void method3063(long l) {
		if (OpenGL.glUnmapBufferARB(35051)) {
			/* empty */
		}
		OpenGL.glBindBufferARB(35051, 0);
	}

	public void method3152(float f, float f_154_, float f_155_, float[] fs) {
		float f_156_ = (aClass441_9365.aFloatArray4916[14] + aClass441_9365.aFloatArray4916[2] * f + aClass441_9365.aFloatArray4916[6] * f_154_ + aClass441_9365.aFloatArray4916[10] * f_155_);
		float f_157_ = (aClass441_9365.aFloatArray4916[15] + aClass441_9365.aFloatArray4916[3] * f + aClass441_9365.aFloatArray4916[7] * f_154_ + aClass441_9365.aFloatArray4916[11] * f_155_);
		if (f_156_ < -f_157_ || f_156_ > f_157_) {
			float[] fs_158_ = fs;
			float[] fs_159_ = fs;
			fs[2] = Float.NaN;
			fs_159_[1] = Float.NaN;
			fs_158_[0] = Float.NaN;
		} else {
			float f_160_ = (aClass441_9365.aFloatArray4916[12] + aClass441_9365.aFloatArray4916[0] * f + aClass441_9365.aFloatArray4916[4] * f_154_ + aClass441_9365.aFloatArray4916[8] * f_155_);
			if (f_160_ < -f_157_ || f_160_ > f_157_) {
				float[] fs_161_ = fs;
				float[] fs_162_ = fs;
				fs[2] = Float.NaN;
				fs_162_[1] = Float.NaN;
				fs_161_[0] = Float.NaN;
			} else {
				float f_163_ = (aClass441_9365.aFloatArray4916[13] + aClass441_9365.aFloatArray4916[1] * f + aClass441_9365.aFloatArray4916[5] * f_154_ + aClass441_9365.aFloatArray4916[9] * f_155_);
				if (f_163_ < -f_157_ || f_163_ > f_157_) {
					float[] fs_164_ = fs;
					float[] fs_165_ = fs;
					fs[2] = Float.NaN;
					fs_165_[1] = Float.NaN;
					fs_164_[0] = Float.NaN;
				} else {
					float f_166_ = (aClass441_9316.aFloatArray4916[14] + aClass441_9316.aFloatArray4916[2] * f + aClass441_9316.aFloatArray4916[6] * f_154_ + aClass441_9316.aFloatArray4916[10] * f_155_);
					fs[0] = aFloat9274 + aFloat9363 * f_160_ / f_157_;
					fs[1] = aFloat9284 + aFloat9326 * f_163_ / f_157_;
					fs[2] = f_166_;
				}
			}
		}
	}

	public final void method3373(int i, float f, float f_167_, float f_168_, float f_169_, float f_170_) {
		boolean bool = anInt9355 != i;
		if (bool || aFloat9343 != f || aFloat9250 != f_167_) {
			anInt9355 = i;
			aFloat9343 = f;
			aFloat9250 = f_167_;
			if (bool) {
				aFloat9356 = (float) (anInt9355 & 0xff0000) / 1.671168E7F;
				aFloat9357 = (float) (anInt9355 & 0xff00) / 65280.0F;
				aFloat9268 = (float) (anInt9355 & 0xff) / 255.0F;
				method14647();
			}
			method14765();
		}
		if (aFloatArray9439[0] != f_168_ || aFloatArray9439[1] != f_169_ || aFloatArray9439[2] != f_170_) {
			aFloatArray9439[0] = f_168_;
			aFloatArray9439[1] = f_169_;
			aFloatArray9439[2] = f_170_;
			aFloatArray9396[0] = -f_168_;
			aFloatArray9396[1] = -f_169_;
			aFloatArray9396[2] = -f_170_;
			float f_171_ = (float) (1.0 / Math.sqrt((double) (f_168_ * f_168_ + f_169_ * f_169_ + f_170_ * f_170_)));
			aFloatArray9277[0] = f_168_ * f_171_;
			aFloatArray9277[1] = f_169_ * f_171_;
			aFloatArray9277[2] = f_170_ * f_171_;
			aFloatArray9354[0] = -aFloatArray9277[0];
			aFloatArray9354[1] = -aFloatArray9277[1];
			aFloatArray9354[2] = -aFloatArray9277[2];
			method14658();
			anInt9372 = (int) (f_168_ * 256.0F / f_169_);
			anInt9366 = (int) (f_170_ * 256.0F / f_169_);
		}
	}

	boolean method3419(int i, int i_172_, int i_173_, int i_174_, Class435 class435, Class430 class430) {
		Class441 class441 = aClass441_9332;
		class441.method7090(class435);
		class441.method7089(aClass441_9365);
		return class430.method6786(i, i_172_, i_173_, i_174_, class441, aFloat9274, aFloat9284, aFloat9363, aFloat9326);
	}

	public void method3055(Class435 class435, Class180 class180, Class430 class430) {
		Class441 class441 = aClass441_9332;
		class441.method7090(class435);
		class441.method7089(aClass441_9365);
		class180.method3531(class430, aClass441_9292, class441, aFloat9274, aFloat9284, aFloat9363, aFloat9326);
	}

	public final Class441 method3072() {
		return new Class441(aClass441_9292);
	}

	public void method3099(Class523_Sub8 class523_sub8) {
		aNativeHeap9289 = ((Class523_Sub8_Sub2) class523_sub8).aNativeHeap11469;
		if (anInterface15_9426 == null) {
			Class523_Sub34_Sub1 class523_sub34_sub1 = new Class523_Sub34_Sub1(80);
			if (aBool9393) {
				class523_sub34_sub1.method18112(-1.0F);
				class523_sub34_sub1.method18112(-1.0F);
				class523_sub34_sub1.method18112(0.0F);
				class523_sub34_sub1.method18112(0.0F);
				class523_sub34_sub1.method18112(0.0F);
				class523_sub34_sub1.method18112(-1.0F);
				class523_sub34_sub1.method18112(1.0F);
				class523_sub34_sub1.method18112(0.0F);
				class523_sub34_sub1.method18112(0.0F);
				class523_sub34_sub1.method18112(1.0F);
				class523_sub34_sub1.method18112(1.0F);
				class523_sub34_sub1.method18112(1.0F);
				class523_sub34_sub1.method18112(0.0F);
				class523_sub34_sub1.method18112(1.0F);
				class523_sub34_sub1.method18112(1.0F);
				class523_sub34_sub1.method18112(1.0F);
				class523_sub34_sub1.method18112(-1.0F);
				class523_sub34_sub1.method18112(0.0F);
				class523_sub34_sub1.method18112(1.0F);
				class523_sub34_sub1.method18112(0.0F);
			} else {
				class523_sub34_sub1.method18110(-1.0F);
				class523_sub34_sub1.method18110(-1.0F);
				class523_sub34_sub1.method18110(0.0F);
				class523_sub34_sub1.method18110(0.0F);
				class523_sub34_sub1.method18110(0.0F);
				class523_sub34_sub1.method18110(-1.0F);
				class523_sub34_sub1.method18110(1.0F);
				class523_sub34_sub1.method18110(0.0F);
				class523_sub34_sub1.method18110(0.0F);
				class523_sub34_sub1.method18110(1.0F);
				class523_sub34_sub1.method18110(1.0F);
				class523_sub34_sub1.method18110(1.0F);
				class523_sub34_sub1.method18110(0.0F);
				class523_sub34_sub1.method18110(1.0F);
				class523_sub34_sub1.method18110(1.0F);
				class523_sub34_sub1.method18110(1.0F);
				class523_sub34_sub1.method18110(-1.0F);
				class523_sub34_sub1.method18110(0.0F);
				class523_sub34_sub1.method18110(1.0F);
				class523_sub34_sub1.method18110(0.0F);
			}
			anInterface15_9426 = method14717(20, class523_sub34_sub1.buffer, class523_sub34_sub1.offset * 2349011, false);
			aClass131_9370 = new Class131(anInterface15_9426, 5126, 3, 0);
			aClass131_9425 = new Class131(anInterface15_9426, 5126, 2, 12);
			aClass121_9280.method2079(this);
		}
	}

	public Class148 method3136(int i, int i_175_, boolean bool, boolean bool_176_) {
		return new Class148_Sub2(this, i, i_175_, bool);
	}

	public Class148 method3104(Class175 class175, boolean bool) {
		int[] is = class175.method2959(false);
		Class148 class148 = method3103(is, 0, class175.method2944(), class175.method2944(), class175.method2945(), -1819285832);
		class148.method2426(class175.method2946(), class175.method2948(), class175.method2984(), class175.method2949());
		return class148;
	}

	final void method14630(float f, float f_177_, float f_178_) {
		OpenGL.glMatrixMode(5890);
		if (aBool9384)
			OpenGL.glLoadIdentity();
		OpenGL.glTranslatef(f, f_177_, f_178_);
		OpenGL.glMatrixMode(5888);
		aBool9384 = true;
	}

	public Class148 method3376(int i, int i_179_, int i_180_, int i_181_, boolean bool) {
		return new Class148_Sub2(this, i, i_179_, i_180_, i_181_);
	}

	public Class145 method3109(int i, int i_182_, int[] is, int[] is_183_) {
		return Class145_Sub3.method15485(this, i, i_182_, is, is_183_);
	}

	public void method3110(int i, Class145 class145, int i_184_, int i_185_) {
		Class145_Sub3 class145_sub3 = (Class145_Sub3) class145;
		Class126_Sub2_Sub1 class126_sub2_sub1 = class145_sub3.aClass126_Sub2_Sub1_9842;
		method14738();
		method14711(class145_sub3.aClass126_Sub2_Sub1_9842);
		method14687(1);
		method14676(7681, 8448);
		method14677(0, 34167, 768);
		float f = (class126_sub2_sub1.aFloat11357 / (float) class126_sub2_sub1.anInt11354);
		float f_186_ = (class126_sub2_sub1.aFloat11356 / (float) class126_sub2_sub1.anInt11355);
		OpenGL.glColor4ub((byte) (i >> 16), (byte) (i >> 8), (byte) i, (byte) (i >> 24));
		OpenGL.glBegin(7);
		OpenGL.glTexCoord2f(f * (float) (anInt9253 - i_184_), f_186_ * (float) (anInt9338 - i_185_));
		OpenGL.glVertex2i(anInt9253, anInt9338);
		OpenGL.glTexCoord2f(f * (float) (anInt9253 - i_184_), f_186_ * (float) (anInt9263 - i_185_));
		OpenGL.glVertex2i(anInt9253, anInt9263);
		OpenGL.glTexCoord2f(f * (float) (anInt9361 - i_184_), f_186_ * (float) (anInt9263 - i_185_));
		OpenGL.glVertex2i(anInt9361, anInt9263);
		OpenGL.glTexCoord2f(f * (float) (anInt9361 - i_184_), f_186_ * (float) (anInt9338 - i_185_));
		OpenGL.glVertex2i(anInt9361, anInt9338);
		OpenGL.glEnd();
		method14677(0, 5890, 768);
	}

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

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

	public Class167 method3115(Class179 class179, int i, int i_187_, int i_188_, int i_189_) {
		return new Class167_Sub3(this, class179, i, i_188_, i_189_, i_187_);
	}

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

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

	public Class142 method3082(int i, int i_192_, int[][] is, int[][] is_193_, int i_194_, int i_195_, int i_196_) {
		return new Class142_Sub2(this, i_195_, i_196_, i, i_192_, is, is_193_, i_194_);
	}

	public Class441 method3112() {
		return aClass441_9281;
	}

	public Class435 method3113() {
		return aClass435_9283;
	}

	public void method3120(Class171 class171) {
		aClass121_9280.method2080(this, class171);
	}

	public void method3149(int i, Class163 class163) {
		anInt9228 = i;
		aClass163_9377 = class163;
		aBool9375 = true;
	}

	public void method3150(int i, Class163 class163) {
		if (!aBool9375)
			throw new RuntimeException("");
		anInt9228 = i;
		aClass163_9377 = class163;
		if (aBool9376) {
			aClass120_9429.aClass117_Sub8_1481.method14414();
			aClass120_9429.aClass117_Sub8_1481.method14415();
		}
	}

	public final synchronized void method3164(int i) {
		int i_197_ = 0;
		i &= 0x7fffffff;
		while (!aClass708_9296.method14237((byte) 104)) {
			Class523_Sub24 class523_sub24 = (Class523_Sub24) aClass708_9296.method14293(1977666318);
			anIntArray9303[i_197_++] = (int) (class523_sub24.aLong7065 * 1055205983951172633L);
			anInt9293 -= class523_sub24.anInt10542 * -677457577;
			if (i_197_ == 1000) {
				OpenGL.glDeleteBuffersARB(i_197_, anIntArray9303, 0);
				i_197_ = 0;
			}
		}
		if (i_197_ > 0) {
			OpenGL.glDeleteBuffersARB(i_197_, anIntArray9303, 0);
			i_197_ = 0;
		}
		while (!aClass708_9297.method14237((byte) 104)) {
			Class523_Sub24 class523_sub24 = (Class523_Sub24) aClass708_9297.method14293(2051770958);
			anIntArray9303[i_197_++] = (int) (class523_sub24.aLong7065 * 1055205983951172633L);
			anInt9275 -= class523_sub24.anInt10542 * -677457577;
			if (i_197_ == 1000) {
				OpenGL.glDeleteTextures(i_197_, anIntArray9303, 0);
				i_197_ = 0;
			}
		}
		if (i_197_ > 0) {
			OpenGL.glDeleteTextures(i_197_, anIntArray9303, 0);
			i_197_ = 0;
		}
		while (!aClass708_9298.method14237((byte) 104)) {
			Class523_Sub24 class523_sub24 = (Class523_Sub24) aClass708_9298.method14293(2039659252);
			anIntArray9303[i_197_++] = class523_sub24.anInt10542 * -677457577;
			if (i_197_ == 1000) {
				OpenGL.glDeleteFramebuffersEXT(i_197_, anIntArray9303, 0);
				i_197_ = 0;
			}
		}
		if (i_197_ > 0) {
			OpenGL.glDeleteFramebuffersEXT(i_197_, anIntArray9303, 0);
			i_197_ = 0;
		}
		while (!aClass708_9299.method14237((byte) 104)) {
			Class523_Sub24 class523_sub24 = (Class523_Sub24) aClass708_9299.method14293(2137379832);
			anIntArray9303[i_197_++] = (int) (class523_sub24.aLong7065 * 1055205983951172633L);
			anInt9324 -= class523_sub24.anInt10542 * -677457577;
			if (i_197_ == 1000) {
				OpenGL.glDeleteRenderbuffersEXT(i_197_, anIntArray9303, 0);
				i_197_ = 0;
			}
		}
		if (i_197_ > 0) {
			OpenGL.glDeleteRenderbuffersEXT(i_197_, anIntArray9303, 0);
			boolean bool = false;
		}
		while (!aClass708_9295.method14237((byte) 104)) {
			Class523_Sub24 class523_sub24 = (Class523_Sub24) aClass708_9295.method14293(1975230356);
			OpenGL.glDeleteLists((int) (class523_sub24.aLong7065 * 1055205983951172633L), class523_sub24.anInt10542 * -677457577);
		}
		while (!aClass708_9301.method14237((byte) 104)) {
			Class523 class523 = aClass708_9301.method14293(2125567527);
			OpenGL.glDeleteProgramARB((int) (class523.aLong7065 * 1055205983951172633L));
		}
		while (!aClass708_9385.method14237((byte) 104)) {
			Class523 class523 = aClass708_9385.method14293(2096597041);
			OpenGL.glDeleteShader((int) (class523.aLong7065 * 1055205983951172633L));
		}
		while (!aClass708_9295.method14237((byte) 104)) {
			Class523_Sub24 class523_sub24 = (Class523_Sub24) aClass708_9295.method14293(2045625790);
			OpenGL.glDeleteLists((int) (class523_sub24.aLong7065 * 1055205983951172633L), class523_sub24.anInt10542 * -677457577);
		}
		aClass154_9382.method2531();
		if (method3025() > 100663296 && TimeUtils.getCurrentTimeMilliseconds(1516375036) > aLong9302 + 60000L) {
			System.gc();
			aLong9302 = TimeUtils.getCurrentTimeMilliseconds(1516375036);
		}
		anInt9436 = i;
	}

	public void method3067() {
		anInt9344 = 0;
		anInt9345 = 0;
		anInt9346 = aClass168_1938.method2875();
		anInt9360 = aClass168_1938.method2874();
		method14633();
	}

	public void method3208(int i, int i_198_, int i_199_, int i_200_) {
		anInt9344 = i;
		anInt9345 = i_198_;
		anInt9346 = i_199_;
		anInt9360 = i_200_;
		method14633();
	}

	public void method3220(boolean bool) {
		aBool9351 = bool;
		method14685();
	}

	void method14631() {
		method14624();
	}

	final void method3468(float f, float f_201_, float f_202_, float f_203_, float f_204_, float f_205_) {
		Class523_Sub17_Sub3.aFloat11597 = f;
		Class523_Sub17_Sub3.aFloat11596 = f_201_;
		Class523_Sub17_Sub3.aFloat11595 = f_202_;
	}

	public final void method3071() {
		if (aClass168_1938 != null) {
			anInt9253 = 0;
			anInt9338 = 0;
			anInt9361 = aClass168_1938.method2875();
			anInt9263 = aClass168_1938.method2874();
			OpenGL.glDisable(3089);
		}
	}

	public final void method3378(int i, int i_206_, int i_207_, int i_208_) {
		if (aClass168_1938 != null) {
			if (i < 0)
				i = 0;
			if (i_207_ > aClass168_1938.method2875())
				i_207_ = aClass168_1938.method2875();
			if (i_206_ < 0)
				i_206_ = 0;
			if (i_208_ > aClass168_1938.method2874())
				i_208_ = aClass168_1938.method2874();
			anInt9253 = i;
			anInt9338 = i_206_;
			anInt9361 = i_207_;
			anInt9263 = i_208_;
			OpenGL.glEnable(3089);
			method14635();
		}
	}

	public final void method3266(int i, int i_209_, int i_210_, int i_211_) {
		if (anInt9253 < i)
			anInt9253 = i;
		if (anInt9361 > i_210_)
			anInt9361 = i_210_;
		if (anInt9338 < i_209_)
			anInt9338 = i_209_;
		if (anInt9263 > i_211_)
			anInt9263 = i_211_;
		OpenGL.glEnable(3089);
		method14635();
	}

	final void method14632(int i, int i_212_) {
		anInt9342 = i;
		anInt9437 = i_212_;
		method14633();
		method14635();
	}

	final void method14633() {
		if (aClass168_1938 != null) {
			int i;
			int i_213_;
			int i_214_;
			int i_215_;
			if (anInt9335 == 2) {
				i = anInt9344;
				i_213_ = anInt9345;
				i_214_ = anInt9346;
				i_215_ = anInt9360;
			} else {
				i = 0;
				i_213_ = 0;
				i_214_ = aClass168_1938.method2875();
				i_215_ = aClass168_1938.method2874();
			}
			if (i_214_ < 1)
				i_214_ = 1;
			if (i_215_ < 1)
				i_215_ = 1;
			OpenGL.glViewport(anInt9342 + i, (anInt9437 + aClass168_1938.method2874() - i_213_ - i_215_), i_214_, i_215_);
			aFloat9363 = (float) anInt9346 / 2.0F;
			aFloat9326 = (float) anInt9360 / 2.0F;
			aFloat9274 = (float) anInt9344 + aFloat9363;
			aFloat9284 = (float) anInt9345 + aFloat9326;
		}
	}

	final void method14634() {
		if (anInt9335 == 2)
			OpenGL.glDepthRange(aFloat9327, aFloat9379);
		else
			OpenGL.glDepthRange(0.0F, 1.0F);
	}

	final void method14635() {
		if (aClass168_1938 != null && anInt9253 < anInt9361 && anInt9338 < anInt9263)
			OpenGL.glScissor(anInt9342 + anInt9253, (anInt9437 + aClass168_1938.method2874() - anInt9263), anInt9361 - anInt9253, anInt9263 - anInt9338);
		else
			OpenGL.glScissor(0, 0, 0, 0);
	}

	final void method14636() {
		OpenGL.glPushMatrix();
	}

	final void method14637(Class441 class441) {
		OpenGL.glPushMatrix();
		OpenGL.glMultMatrixf(class441.aFloatArray4916, 0);
	}

	public boolean method3178() {
		return true;
	}

	final void method14638() {
		OpenGL.glPopMatrix();
	}

	void method14639() {
		aFloat9240 = aFloat9313 - (float) anInt9261 - aFloat9374;
		aFloat9371 = aFloat9240 - (float) anInt9369 * aFloat9373;
		if (aFloat9371 < aFloat9340)
			aFloat9371 = aFloat9340;
		OpenGL.glFogf(2915, aFloat9371);
		OpenGL.glFogf(2916, aFloat9240);
		aFloatArray9427[0] = (float) (anInt9368 & 0xff0000) / 1.671168E7F;
		aFloatArray9427[1] = (float) (anInt9368 & 0xff00) / 65280.0F;
		aFloatArray9427[2] = (float) (anInt9368 & 0xff) / 255.0F;
		OpenGL.glFogfv(2918, aFloatArray9427, 0);
	}

	public Class435 method3122() {
		return new Class435(aClass435_9233);
	}

	public final Class441 method3289() {
		return new Class441(aClass441_9292);
	}

	public final void method3124(Class441 class441) {
		aClass441_9292.method7086(class441);
		method14789();
		method14622();
	}

	final void method14640(boolean bool) {
		if (bool != aBool9328) {
			aBool9328 = bool;
			method14623();
		}
	}

	final void method14641() {
		if (anInt9335 != 0) {
			anInt9335 = 0;
			method14633();
			method14634();
			anInt9424 &= ~0x1f;
		}
	}

	final void method14642() {
		if (anInt9335 != 1) {
			anInt9335 = 1;
			method14622();
			method14633();
			method14634();
			OpenGL.glMatrixMode(5888);
			OpenGL.glLoadIdentity();
			anInt9424 &= ~0x18;
		}
	}

	final void method14643() {
		if (anInt9335 != 2) {
			anInt9335 = 2;
			method14644(aClass441_9292.aFloatArray4916);
			method14713();
			method14633();
			method14634();
			anInt9424 &= ~0x7;
		}
	}

	public void method3356(int i, int i_216_, float f, int i_217_, int i_218_, float f_219_, int i_220_, int i_221_, float f_222_, int i_223_, int i_224_, int i_225_, int i_226_) {
		method14716();
		method14687(i_226_);
		OpenGL.glBegin(4);
		OpenGL.glColor4ub((byte) (i_223_ >> 16), (byte) (i_223_ >> 8), (byte) i_223_, (byte) (i_223_ >> 24));
		OpenGL.glVertex3f((float) i + 0.35F, (float) i_216_ + 0.35F, f);
		OpenGL.glColor4ub((byte) (i_224_ >> 16), (byte) (i_224_ >> 8), (byte) i_224_, (byte) (i_224_ >> 24));
		OpenGL.glVertex3f((float) i_217_ + 0.35F, (float) i_218_ + 0.35F, f_219_);
		OpenGL.glColor4ub((byte) (i_225_ >> 16), (byte) (i_225_ >> 8), (byte) i_225_, (byte) (i_225_ >> 24));
		OpenGL.glVertex3f((float) i_220_ + 0.35F, (float) i_221_ + 0.35F, f_222_);
		OpenGL.glEnd();
	}

	public void method3452(int i, int i_227_, int i_228_, int i_229_, int i_230_, int i_231_) {
		method14716();
		method14687(i_231_);
		float f = (float) i_228_ - (float) i;
		float f_232_ = (float) i_229_ - (float) i_227_;
		if (f == 0.0F && f_232_ == 0.0F)
			f = 1.0F;
		else {
			float f_233_ = (float) (1.0 / Math.sqrt((double) (f * f + f_232_ * f_232_)));
			f *= f_233_;
			f_232_ *= f_233_;
		}
		OpenGL.glColor4ub((byte) (i_230_ >> 16), (byte) (i_230_ >> 8), (byte) i_230_, (byte) (i_230_ >> 24));
		OpenGL.glBegin(1);
		OpenGL.glVertex2f((float) i + 0.35F, (float) i_227_ + 0.35F);
		OpenGL.glVertex2f((float) i_228_ + f + 0.35F, (float) i_229_ + f_232_ + 0.35F);
		OpenGL.glEnd();
	}

	final void method14644(float[] fs) {
		float[] fs_234_ = new float[16];
		System.arraycopy(fs, 0, fs_234_, 0, 16);
		fs_234_[1] = -fs_234_[1];
		fs_234_[5] = -fs_234_[5];
		fs_234_[9] = -fs_234_[9];
		fs_234_[13] = -fs_234_[13];
		OpenGL.glMatrixMode(5889);
		OpenGL.glLoadMatrixf(fs_234_, 0);
		OpenGL.glMatrixMode(5888);
	}

	public void method3287(boolean bool) {
		aBool9351 = bool;
		method14685();
	}

	public int method3267() {
		return 4;
	}

	public void method3132(int i, Class523_Sub20[] class523_sub20s) {
		for (int i_235_ = 0; i_235_ < i; i_235_++)
			aClass523_Sub20Array9395[i_235_] = class523_sub20s[i_235_];
		anInt9237 = i;
		if (anInt9335 != 1)
			method14719();
	}

	void method3242(int i, int i_236_, int i_237_, int i_238_, int i_239_) {
		method14716();
		method14687(i_239_);
		float f = (float) i + 0.35F;
		float f_240_ = (float) i_236_ + 0.35F;
		OpenGL.glColor4ub((byte) (i_238_ >> 16), (byte) (i_238_ >> 8), (byte) i_238_, (byte) (i_238_ >> 24));
		OpenGL.glBegin(1);
		OpenGL.glVertex2f(f, f_240_);
		OpenGL.glVertex2f(f, f_240_ + (float) i_237_);
		OpenGL.glEnd();
	}

	public final void method3126(float f) {
		if (aFloat9359 != f) {
			aFloat9359 = f;
			method14647();
		}
	}

	public final void method3460(int i, float f, float f_241_, float f_242_, float f_243_, float f_244_) {
		boolean bool = anInt9355 != i;
		if (bool || aFloat9343 != f || aFloat9250 != f_241_) {
			anInt9355 = i;
			aFloat9343 = f;
			aFloat9250 = f_241_;
			if (bool) {
				aFloat9356 = (float) (anInt9355 & 0xff0000) / 1.671168E7F;
				aFloat9357 = (float) (anInt9355 & 0xff00) / 65280.0F;
				aFloat9268 = (float) (anInt9355 & 0xff) / 255.0F;
				method14647();
			}
			method14765();
		}
		if (aFloatArray9439[0] != f_242_ || aFloatArray9439[1] != f_243_ || aFloatArray9439[2] != f_244_) {
			aFloatArray9439[0] = f_242_;
			aFloatArray9439[1] = f_243_;
			aFloatArray9439[2] = f_244_;
			aFloatArray9396[0] = -f_242_;
			aFloatArray9396[1] = -f_243_;
			aFloatArray9396[2] = -f_244_;
			float f_245_ = (float) (1.0 / Math.sqrt((double) (f_242_ * f_242_ + f_243_ * f_243_ + f_244_ * f_244_)));
			aFloatArray9277[0] = f_242_ * f_245_;
			aFloatArray9277[1] = f_243_ * f_245_;
			aFloatArray9277[2] = f_244_ * f_245_;
			aFloatArray9354[0] = -aFloatArray9277[0];
			aFloatArray9354[1] = -aFloatArray9277[1];
			aFloatArray9354[2] = -aFloatArray9277[2];
			method14658();
			anInt9372 = (int) (f_242_ * 256.0F / f_243_);
			anInt9366 = (int) (f_244_ * 256.0F / f_243_);
		}
	}

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

	final void method14645(float[] fs) {
		float[] fs_246_ = new float[16];
		System.arraycopy(fs, 0, fs_246_, 0, 16);
		fs_246_[1] = -fs_246_[1];
		fs_246_[5] = -fs_246_[5];
		fs_246_[9] = -fs_246_[9];
		fs_246_[13] = -fs_246_[13];
		OpenGL.glMatrixMode(5889);
		OpenGL.glLoadMatrixf(fs_246_, 0);
		OpenGL.glMatrixMode(5888);
	}

	final Class126_Sub1 method14646() {
		return (aClass185_Sub1_9388 != null ? aClass185_Sub1_9388.method15349() : null);
	}

	void method14647() {
		aFloatArray9427[0] = aFloat9359 * aFloat9356;
		aFloatArray9427[1] = aFloat9359 * aFloat9357;
		aFloatArray9427[2] = aFloat9359 * aFloat9268;
		aFloatArray9427[3] = 1.0F;
		OpenGL.glLightModelfv(2899, aFloatArray9427, 0);
	}

	final Class126_Sub1 method14648() {
		return (aClass185_Sub1_9388 != null ? aClass185_Sub1_9388.method15349() : null);
	}

	final synchronized void method14649(long l) {
		Class523 class523 = new Class523();
		class523.aLong7065 = l * 2947252533757437993L;
		aClass708_9385.method14236(class523, -459443413);
	}

	void method14650() {
		if (aBool9367 && anInt9369 >= 0)
			OpenGL.glEnable(2912);
		else
			OpenGL.glDisable(2912);
	}

	void method14651() {
		aFloat9240 = aFloat9313 - (float) anInt9261 - aFloat9374;
		aFloat9371 = aFloat9240 - (float) anInt9369 * aFloat9373;
		if (aFloat9371 < aFloat9340)
			aFloat9371 = aFloat9340;
		OpenGL.glFogf(2915, aFloat9371);
		OpenGL.glFogf(2916, aFloat9240);
		aFloatArray9427[0] = (float) (anInt9368 & 0xff0000) / 1.671168E7F;
		aFloatArray9427[1] = (float) (anInt9368 & 0xff00) / 65280.0F;
		aFloatArray9427[2] = (float) (anInt9368 & 0xff) / 255.0F;
		OpenGL.glFogfv(2918, aFloatArray9427, 0);
	}

	public Class185 method3133(int i) {
		return aBool9407 ? new Class185_Sub1_Sub2(this, i) : null;
	}

	public Class185 method3134(Class185 class185, Class185 class185_247_, float f, Class185 class185_248_) {
		if (class185 != null && class185_247_ != null && aBool9407 && aBool9398) {
			Class185_Sub1_Sub1 class185_sub1_sub1 = null;
			Class185_Sub1 class185_sub1 = (Class185_Sub1) class185;
			Class185_Sub1 class185_sub1_249_ = (Class185_Sub1) class185_247_;
			Class126_Sub1 class126_sub1 = class185_sub1.method15349();
			Class126_Sub1 class126_sub1_250_ = class185_sub1_249_.method15349();
			if (class126_sub1 != null && class126_sub1_250_ != null) {
				int i = (class126_sub1.anInt8888 > class126_sub1_250_.anInt8888 ? class126_sub1.anInt8888 : class126_sub1_250_.anInt8888);
				if (class185 != class185_248_ && class185_247_ != class185_248_ && class185_248_ instanceof Class185_Sub1_Sub1) {
					Class185_Sub1_Sub1 class185_sub1_sub1_251_ = (Class185_Sub1_Sub1) class185_248_;
					if (class185_sub1_sub1_251_.method17761() == i)
						class185_sub1_sub1 = class185_sub1_sub1_251_;
				}
				if (class185_sub1_sub1 == null)
					class185_sub1_sub1 = new Class185_Sub1_Sub1(this, i);
				if (class185_sub1_sub1.method17763(class126_sub1, class126_sub1_250_, f))
					return class185_sub1_sub1;
			}
		}
		return f < 0.5F ? class185 : class185_247_;
	}

	final void method14652(Interface18 interface18, int i, int i_252_, int i_253_) {
		method14626(interface18);
		OpenGL.glDrawElements(i, i_253_, 5123, interface18.method2() + (long) (i_252_ * 2));
	}

	public boolean method3207() {
		return true;
	}

	public final void method3322(int i, int i_254_, int i_255_, int i_256_) {
		if (aClass141_9276 != null)
			aClass141_9276.method2293(i, i_254_, i_255_, i_256_);
	}

	public final void method3137(int i, int i_257_) {
		if (aClass141_9276 != null)
			aClass141_9276.method2294(i, i_257_);
	}

	public final boolean method3138() {
		if (aClass141_9276 == null)
			return false;
		return aClass141_9276.method2290();
	}

	boolean method14653() {
		if (aClass523_Sub17_Sub1_9341 != null) {
			if (!aClass523_Sub17_Sub1_9341.method16010()) {
				if (aClass141_9276.method2306(aClass523_Sub17_Sub1_9341))
					aClass154_9382.method2532();
				else
					return false;
			}
			return true;
		}
		return false;
	}

	boolean method14654() {
		return aClass120_9429.method2068(3);
	}

	void method14655() {
		method14624();
	}

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

	boolean method14656() {
		if (aClass523_Sub17_Sub2_9279 != null) {
			if (!aClass523_Sub17_Sub2_9279.method16010()) {
				if (aClass141_9276.method2306(aClass523_Sub17_Sub2_9279))
					aClass154_9382.method2532();
				else
					return false;
			}
			return true;
		}
		return false;
	}

	void method3241(int i, int i_258_, int i_259_, int i_260_, int i_261_) {
		method14716();
		method14687(i_261_);
		float f = (float) i + 0.35F;
		float f_262_ = (float) i_258_ + 0.35F;
		OpenGL.glColor4ub((byte) (i_260_ >> 16), (byte) (i_260_ >> 8), (byte) i_260_, (byte) (i_260_ >> 24));
		OpenGL.glBegin(1);
		OpenGL.glVertex2f(f, f_262_);
		OpenGL.glVertex2f(f + (float) i_259_, f_262_);
		OpenGL.glEnd();
	}

	public void method3148(Class165 class165, float f, Class165 class165_263_, float f_264_, Class165 class165_265_, float f_266_) {
		int i = 0;
		if (class165_265_ == null && f_266_ > 0.0F)
			f_266_ = 0.0F;
		if (class165_263_ == null && f_264_ > 0.0F) {
			class165_263_ = class165_265_;
			class165_265_ = null;
			f_264_ = f_266_;
			f_266_ = 0.0F;
		}
		if (class165 == null && f > 0.0F) {
			class165 = class165_263_;
			class165_263_ = class165_265_;
			class165_265_ = null;
			f = f_264_;
			f_264_ = f_266_;
			f_266_ = 0.0F;
		}
		Class523_Sub17_Sub2.aClass165_Sub1Array11465[0] = (Class165_Sub1) class165;
		Class523_Sub17_Sub2.aFloatArray11461[0] = f;
		if (f > 0.0F)
			i++;
		Class523_Sub17_Sub2.aClass165_Sub1Array11465[1] = (Class165_Sub1) class165_263_;
		Class523_Sub17_Sub2.aFloatArray11461[1] = f_264_;
		if (f_264_ > 0.0F)
			i++;
		Class523_Sub17_Sub2.aClass165_Sub1Array11465[2] = (Class165_Sub1) class165_265_;
		Class523_Sub17_Sub2.aFloatArray11461[2] = f_266_;
		if (f_266_ > 0.0F)
			i++;
		Class523_Sub17_Sub2.anInt11456 = i;
		Class523_Sub17_Sub2.aFloat11455 = 1.0F - (f + f_264_ + f_266_);
	}

	public final boolean method3144() {
		if (aClass523_Sub17_Sub3_9417 != null) {
			if (!aClass523_Sub17_Sub3_9417.method16010()) {
				if (aClass141_9276.method2306(aClass523_Sub17_Sub3_9417))
					aClass154_9382.method2532();
				else
					return false;
			}
			return true;
		}
		return false;
	}

	public final void method3145() {
		if (aClass523_Sub17_Sub3_9417 != null && aClass523_Sub17_Sub3_9417.method16010()) {
			aClass141_9276.method2305(aClass523_Sub17_Sub3_9417);
			aClass154_9382.method2532();
		}
	}

	public void method3157(boolean bool) {
		/* empty */
	}

	final void method3018(float f, float f_267_, float f_268_, float f_269_, float f_270_, float f_271_) {
		Class523_Sub17_Sub3.aFloat11597 = f;
		Class523_Sub17_Sub3.aFloat11596 = f_267_;
		Class523_Sub17_Sub3.aFloat11595 = f_268_;
	}

	final void method14657(float f, float f_272_, float f_273_, float f_274_) {
		aFloatArray9427[0] = f;
		aFloatArray9427[1] = f_272_;
		aFloatArray9427[2] = f_273_;
		aFloatArray9427[3] = f_274_;
		OpenGL.glTexEnvfv(8960, 8705, aFloatArray9427, 0);
	}

	Class168_Sub2 method3243(Canvas canvas, int i, int i_275_) {
		return new Class168_Sub2_Sub3(this, canvas);
	}

	void method14658() {
		OpenGL.glLightfv(16384, 4611, aFloatArray9277, 0);
		OpenGL.glLightfv(16385, 4611, aFloatArray9354, 0);
	}

	void method14659() {
		if (aBool9349 && !aBool9328)
			OpenGL.glEnable(2896);
		else
			OpenGL.glDisable(2896);
	}

	final Interface18 method14660(int i, byte[] is, int i_276_, boolean bool) {
		if (aBool9320 && (!bool || aBool9404))
			return new Class135_Sub2(this, i, is, i_276_, bool);
		return new Class130_Sub1(this, i, is, i_276_);
	}

	public Class150 method3401() {
		int i = -1;
		if (aString9350.indexOf("nvidia") != -1)
			i = 4318;
		else if (aString9350.indexOf("intel") != -1)
			i = 32902;
		else if (aString9350.indexOf("ati") != -1)
			i = 4098;
		return new Class150(i, "OpenGL", anInt9392, aString9390, 0L, false);
	}

	final Interface15 method14661(int i, Buffer buffer, int i_277_, boolean bool) {
		if (aBool9320 && (!bool || aBool9404))
			return new Class135_Sub1(this, i, buffer, i_277_, bool);
		return new Class130_Sub2(this, i, buffer);
	}

	final void method14662(Interface15 interface15) {
		if (anInterface15_9254 != interface15) {
			if (aBool9320)
				OpenGL.glBindBufferARB(34962, interface15.method1());
			anInterface15_9254 = interface15;
		}
	}

	final void method14663() {
		if (anInt9424 != 2) {
			method14642();
			method14788(false);
			method14682(false);
			method14684(false);
			method14620(false);
			method14670(-2);
			method14625((byte) 0);
			anInt9424 = 2;
		}
	}

	final void method14664(Class131 class131, Class131 class131_278_, Class131 class131_279_, Class131 class131_280_) {
		if (class131 != null) {
			method14662(class131.anInterface15_1558);
			OpenGL.glVertexPointer(class131.aByte1557, class131.aShort1556, anInterface15_9254.method82(), (anInterface15_9254.method83() + (long) class131.aByte1555));
			OpenGL.glEnableClientState(32884);
		} else
			OpenGL.glDisableClientState(32884);
		if (class131_278_ != null) {
			method14662(class131_278_.anInterface15_1558);
			OpenGL.glNormalPointer(class131_278_.aShort1556, anInterface15_9254.method82(), (anInterface15_9254.method83() + (long) class131_278_.aByte1555));
			OpenGL.glEnableClientState(32885);
		} else
			OpenGL.glDisableClientState(32885);
		if (class131_279_ != null) {
			method14662(class131_279_.anInterface15_1558);
			OpenGL.glColorPointer(class131_279_.aByte1557, class131_279_.aShort1556, anInterface15_9254.method82(), (anInterface15_9254.method83() + (long) class131_279_.aByte1555));
			OpenGL.glEnableClientState(32886);
		} else
			OpenGL.glDisableClientState(32886);
		if (class131_280_ != null) {
			method14662(class131_280_.anInterface15_1558);
			OpenGL.glTexCoordPointer(class131_280_.aByte1557, class131_280_.aShort1556, anInterface15_9254.method82(), (anInterface15_9254.method83() + (long) class131_280_.aByte1555));
			OpenGL.glEnableClientState(32888);
		} else
			OpenGL.glDisableClientState(32888);
	}

	final void method14665(int i, int i_281_, int i_282_) {
		OpenGL.glDrawArrays(i, i_281_, i_282_);
	}

	final Class126_Sub1 method14666() {
		return (aClass185_Sub1_9388 != null ? aClass185_Sub1_9388.method15349() : null);
	}

	final void method14667(int i) {
		method14836(i, true);
	}

	public int method3169() {
		return 4;
	}

	final void method14668() {
		if (anInt9424 != 4) {
			method14642();
			method14788(false);
			method14682(false);
			method14684(false);
			method14620(false);
			method14670(-2);
			method14687(1);
			method14625((byte) 0);
			anInt9424 = 4;
		}
	}

	void method14669() {
		if (aBool9367 && anInt9369 >= 0)
			OpenGL.glEnable(2912);
		else
			OpenGL.glDisable(2912);
	}

	final void method14670(int i) {
		method14836(i, true);
	}

	long method14671(int i, int i_283_, int[] is, int[] is_284_) {
		if (aBool9405) {
			if (aLongArray9329[anInt9441] != 0L) {
				OpenGL.glDeleteSync(aLongArray9329[anInt9441]);
				aLongArray9329[anInt9441] = 0L;
			}
			OpenGL.glBindBufferARB(35051, anIntArray9438[anInt9441]);
			long l = OpenGL.glMapBufferARB(35051, 35000);
			if (is != null) {
				int i_285_ = 0;
				for (int i_286_ = i_283_ - 1; i_286_ >= 0; i_286_--) {
					for (int i_287_ = 0; i_287_ < i; i_287_++)
						is[i_285_++] = anUnsafe9291.getInt(l + (long) ((i_286_ * i + i_287_) * 4));
				}
				if (OpenGL.glUnmapBufferARB(35051)) {
					/* empty */
				}
				OpenGL.glBindBufferARB(35051, 0);
				l = 0L;
			}
			if (++anInt9441 >= 3)
				anInt9441 = 0;
			return l;
		}
		if (aClass148_9430 == null)
			method14629(i, i_283_);
		if (aClass148_9435 == null)
			aClass148_9435 = method3376(0, 0, aClass168_1938.method2875(), aClass168_1938.method2874(), true);
		else
			((Class148_Sub2) aClass148_9435).method14534(0, 0, aClass168_1938.method2875(), aClass168_1938.method2874(), 0, 0, true);
		method3353(aClass168_Sub1_9378, 480844934);
		method3076(1, -16777216);
		aClass148_9435.method2438(anInt1945 * 1970564341, anInt1937 * 1216763507, anInt1946 * -750425387, anInt1915 * -733304105);
		aClass148_9430.method2432(0, 0, i, i_283_, is, is_284_, 0, i);
		method3047(aClass168_Sub1_9378, (short) -12501);
		return 0L;
	}

	final void method14672(int i, boolean bool, boolean bool_288_) {
		if (i != anInt9347 || aBool9376 != aBool9375) {
			Class126_Sub2 class126_sub2 = null;
			byte i_289_ = 0;
			byte i_290_ = 0;
			int i_291_ = 0;
			byte i_292_ = aBool9375 ? (byte) 3 : (byte) 0;
			byte i_293_ = 0;
			if (i >= 0) {
				Class177 class177 = aClass172_1916.method2895(i, -440550182);
				if (class177.aBool1881) {
					class126_sub2 = aClass154_9382.method2528(class177);
					if (class177.aByte1885 != 0 || class177.aByte1886 != 0)
						method14699(((float) (anInt9436 % 128000) / 1000.0F * (float) class177.aByte1885 / 64.0F % 1.0F), ((float) (anInt9436 % 128000) / 1000.0F * (float) class177.aByte1886 / 64.0F % 1.0F), 0.0F);
					else
						method14826();
					if (!aBool9375) {
						i_290_ = class177.aByte1906;
						i_291_ = class177.anInt1865 * -2058069491;
						i_292_ = class177.aByte1905;
					}
					i_289_ = class177.aByte1870;
				} else
					method14826();
				if (class177.aClass593_1884 == Class593.aClass593_7812)
					i_293_ = class177.aByte1889;
			} else
				method14826();
			method14625(i_293_);
			aClass120_9429.method2069(i_292_, i_290_, i_291_, bool, bool_288_);
			if (!aClass120_9429.method2070(class126_sub2, i_289_)) {
				method14711(class126_sub2);
				method14785(i_289_);
			}
			aBool9376 = aBool9375;
			anInt9347 = i;
		}
		anInt9424 &= ~0x7;
	}

	final void method14673(int i) {
		if (anInt9285 != i) {
			OpenGL.glActiveTexture(33984 + i);
			anInt9285 = i;
		}
	}

	final synchronized void method14674(int i) {
		Class523_Sub24 class523_sub24 = new Class523_Sub24(i);
		aClass708_9298.method14236(class523_sub24, -1890511590);
	}

	public boolean method3070() {
		return true;
	}

	final int method14675(int i) {
		if (i == 1)
			return 7681;
		if (i == 0)
			return 8448;
		if (i == 2)
			return 34165;
		if (i == 3)
			return 260;
		if (i == 4)
			return 34023;
		throw new IllegalArgumentException();
	}

	final void method14676(int i, int i_294_) {
		if (anInt9285 == 0) {
			boolean bool = false;
			if (anInt9399 != i) {
				OpenGL.glTexEnvi(8960, 34161, i);
				anInt9399 = i;
				bool = true;
			}
			if (anInt9383 != i_294_) {
				OpenGL.glTexEnvi(8960, 34162, i_294_);
				anInt9383 = i_294_;
				bool = true;
			}
			if (bool)
				anInt9424 &= ~0x1d;
		} else {
			OpenGL.glTexEnvi(8960, 34161, i);
			OpenGL.glTexEnvi(8960, 34162, i_294_);
		}
	}

	final void method14677(int i, int i_295_, int i_296_) {
		OpenGL.glTexEnvi(8960, 34176 + i, i_295_);
		OpenGL.glTexEnvi(8960, 34192 + i, i_296_);
	}

	final void method14678(int i, int i_297_, int i_298_) {
		OpenGL.glTexEnvi(8960, 34184 + i, i_297_);
		OpenGL.glTexEnvi(8960, 34200 + i, i_298_);
	}

	final void method14679(int i) {
		aFloatArray9427[0] = (float) (i & 0xff0000) / 1.671168E7F;
		aFloatArray9427[1] = (float) (i & 0xff00) / 65280.0F;
		aFloatArray9427[2] = (float) (i & 0xff) / 255.0F;
		aFloatArray9427[3] = (float) (i >>> 24) / 255.0F;
		OpenGL.glTexEnvfv(8960, 8705, aFloatArray9427, 0);
	}

	public final void method3210(int i, int i_299_, int i_300_, int i_301_) {
		if (anInt9253 < i)
			anInt9253 = i;
		if (anInt9361 > i_300_)
			anInt9361 = i_300_;
		if (anInt9338 < i_299_)
			anInt9338 = i_299_;
		if (anInt9263 > i_301_)
			anInt9263 = i_301_;
		OpenGL.glEnable(3089);
		method14635();
	}

	void method14680() {
		int i = aClass168_1938.method2875();
		int i_302_ = aClass168_1938.method2874();
		aClass441_9273.method7098(0.0F, (float) i, 0.0F, (float) i_302_, -1.0F, 1.0F);
		method3067();
		method14641();
		method3071();
	}

	public final void method3316(int i, int i_303_, int i_304_) {
		if (anInt9368 != i || anInt9369 != i_303_ || anInt9261 != i_304_) {
			anInt9368 = i;
			anInt9369 = i_303_;
			anInt9261 = i_304_;
			method14651();
			method14650();
		}
	}

	final void method14681(Class441 class441) {
		OpenGL.glPushMatrix();
		OpenGL.glMultMatrixf(class441.aFloatArray4916, 0);
	}

	final void method14682(boolean bool) {
		if (bool != aBool9349) {
			aBool9349 = bool;
			method14623();
			anInt9424 &= ~0x7;
		}
	}

	final void method14683(int i) {
		if (anInt9442 != i) {
			anInt9442 = i;
			method14689();
		}
	}

	public boolean method3421() {
		return true;
	}

	final void method14684(boolean bool) {
		if (bool != aBool9312) {
			aBool9312 = bool;
			method14686();
			anInt9424 &= ~0x1f;
		}
	}

	public Interface23 method3233(int i, int i_305_) {
		return new Class523_Sub27_Sub3(this, Class158.aClass158_1750, Class170.aClass170_1827, i, i_305_);
	}

	final void method14685() {
		OpenGL.glDepthMask(aBool9403 && aBool9351);
	}

	final void method14686() {
		if (aBool9312 && aBool9339)
			OpenGL.glEnable(2929);
		else
			OpenGL.glDisable(2929);
	}

	final void method14687(int i) {
		if (anInt9305 != i) {
			int i_306_;
			boolean bool;
			boolean bool_307_;
			boolean bool_308_;
			if (i == 1) {
				i_306_ = 1;
				bool = true;
				bool_307_ = true;
				bool_308_ = true;
			} else if (i == 2) {
				i_306_ = 2;
				bool = true;
				bool_307_ = false;
				bool_308_ = true;
			} else if (i == 128) {
				i_306_ = 3;
				bool = true;
				bool_307_ = true;
				bool_308_ = true;
			} else if (i == 3) {
				i_306_ = 0;
				bool = true;
				bool_307_ = true;
				bool_308_ = false;
			} else {
				i_306_ = 0;
				bool = true;
				bool_307_ = false;
				bool_308_ = false;
			}
			if (bool != aBool9323) {
				OpenGL.glColorMask(bool, bool, bool, true);
				aBool9323 = bool;
			}
			if (bool_307_ != aBool9310) {
				aBool9310 = bool_307_;
				method14690();
			}
			if (bool_308_ != aBool9308) {
				aBool9308 = bool_308_;
				method14688();
			}
			if (i_306_ != anInt9306) {
				anInt9306 = i_306_;
				method14689();
			}
			anInt9305 = i;
			anInt9424 &= ~0x1c;
		}
	}

	final void method14688() {
		if (aBool9308)
			OpenGL.glEnable(3042);
		else
			OpenGL.glDisable(3042);
	}

	final void method14689() {
		if (aBool9330) {
			int i = 0;
			int i_309_ = 0;
			if (anInt9442 == 0) {
				i = 0;
				i_309_ = 0;
			} else if (anInt9442 == 1) {
				i = 1;
				i_309_ = 0;
			} else if (anInt9442 == 2) {
				i = 1;
				i_309_ = 1;
			} else if (anInt9442 == 3) {
				i = 0;
				i_309_ = 1;
			}
			if (anInt9306 == 1)
				OpenGL.glBlendFuncSeparate(770, 771, i, i_309_);
			else if (anInt9306 == 2)
				OpenGL.glBlendFuncSeparate(1, 1, i, i_309_);
			else if (anInt9306 == 3)
				OpenGL.glBlendFuncSeparate(774, 1, i, i_309_);
			else if (anInt9306 == 0)
				OpenGL.glBlendFuncSeparate(1, 0, i, i_309_);
		} else if (anInt9306 == 1) {
			OpenGL.glEnable(3042);
			OpenGL.glBlendFunc(770, 771);
		} else if (anInt9306 == 2) {
			OpenGL.glEnable(3042);
			OpenGL.glBlendFunc(1, 1);
		} else if (anInt9306 == 3) {
			OpenGL.glEnable(3042);
			OpenGL.glBlendFunc(774, 1);
		} else
			OpenGL.glDisable(3042);
	}

	public final void method3143(int i, int i_310_, int i_311_) {
		if (anInt9368 != i || anInt9369 != i_310_ || anInt9261 != i_311_) {
			anInt9368 = i;
			anInt9369 = i_310_;
			anInt9261 = i_311_;
			method14651();
			method14650();
		}
	}

	final void method14690() {
		if (aBool9310)
			OpenGL.glEnable(3008);
		else
			OpenGL.glDisable(3008);
		OpenGL.glAlphaFunc(516, (float) (aByte9311 & 0xff) / 255.0F);
		if (anInt9381 > 0) {
			if (aByte9311 == 0)
				OpenGL.glDisable(32926);
			else
				OpenGL.glEnable(32926);
		}
	}

	final void method14691() {
		if (anInt9335 != 2) {
			anInt9335 = 2;
			method14644(aClass441_9292.aFloatArray4916);
			method14713();
			method14633();
			method14634();
			anInt9424 &= ~0x7;
		}
	}

	public final int method3025() {
		return anInt9293 + anInt9275 + anInt9324;
	}

	public void method3330(int i, int i_312_, float f, int i_313_, int i_314_, float f_315_, int i_316_, int i_317_, float f_318_, int i_319_, int i_320_, int i_321_, int i_322_) {
		method14716();
		method14687(i_322_);
		OpenGL.glBegin(4);
		OpenGL.glColor4ub((byte) (i_319_ >> 16), (byte) (i_319_ >> 8), (byte) i_319_, (byte) (i_319_ >> 24));
		OpenGL.glVertex3f((float) i + 0.35F, (float) i_312_ + 0.35F, f);
		OpenGL.glColor4ub((byte) (i_320_ >> 16), (byte) (i_320_ >> 8), (byte) i_320_, (byte) (i_320_ >> 24));
		OpenGL.glVertex3f((float) i_313_ + 0.35F, (float) i_314_ + 0.35F, f_315_);
		OpenGL.glColor4ub((byte) (i_321_ >> 16), (byte) (i_321_ >> 8), (byte) i_321_, (byte) (i_321_ >> 24));
		OpenGL.glVertex3f((float) i_316_ + 0.35F, (float) i_317_ + 0.35F, f_318_);
		OpenGL.glEnd();
	}

	final synchronized void method14692(int i, int i_323_) {
		Class523_Sub24 class523_sub24 = new Class523_Sub24(i_323_);
		class523_sub24.aLong7065 = (long) i * 2947252533757437993L;
		aClass708_9296.method14236(class523_sub24, -2098695465);
	}

	final synchronized void method14693(int i, int i_324_) {
		Class523_Sub24 class523_sub24 = new Class523_Sub24(i_324_);
		class523_sub24.aLong7065 = (long) i * 2947252533757437993L;
		aClass708_9297.method14236(class523_sub24, 400184646);
	}

	final synchronized void method14694(int i, int i_325_) {
		Class523_Sub24 class523_sub24 = new Class523_Sub24(i_325_);
		class523_sub24.aLong7065 = (long) i * 2947252533757437993L;
		aClass708_9299.method14236(class523_sub24, -226156138);
	}

	final synchronized void method14695(int i, int i_326_) {
		Class523_Sub24 class523_sub24 = new Class523_Sub24(i_326_);
		class523_sub24.aLong7065 = (long) i * 2947252533757437993L;
		aClass708_9299.method14236(class523_sub24, 164141462);
	}

	final synchronized void method14696(long l) {
		Class523 class523 = new Class523();
		class523.aLong7065 = l * 2947252533757437993L;
		aClass708_9385.method14236(class523, -1165747370);
	}

	final synchronized void method14697(int i, int i_327_) {
		Class523_Sub24 class523_sub24 = new Class523_Sub24(i_327_);
		class523_sub24.aLong7065 = (long) i * 2947252533757437993L;
		aClass708_9297.method14236(class523_sub24, -325926160);
	}

	public int method3094(int i, int i_328_, int i_329_, int i_330_, int i_331_, int i_332_) {
		int i_333_ = 0;
		float f = (aClass441_9365.aFloatArray4916[14] + aClass441_9365.aFloatArray4916[2] * (float) i + aClass441_9365.aFloatArray4916[6] * (float) i_328_ + aClass441_9365.aFloatArray4916[10] * (float) i_329_);
		float f_334_ = (aClass441_9365.aFloatArray4916[14] + aClass441_9365.aFloatArray4916[2] * (float) i_330_ + aClass441_9365.aFloatArray4916[6] * (float) i_331_ + aClass441_9365.aFloatArray4916[10] * (float) i_332_);
		float f_335_ = (aClass441_9365.aFloatArray4916[15] + aClass441_9365.aFloatArray4916[3] * (float) i + aClass441_9365.aFloatArray4916[7] * (float) i_328_ + aClass441_9365.aFloatArray4916[11] * (float) i_329_);
		float f_336_ = (aClass441_9365.aFloatArray4916[15] + aClass441_9365.aFloatArray4916[3] * (float) i_330_ + aClass441_9365.aFloatArray4916[7] * (float) i_331_ + aClass441_9365.aFloatArray4916[11] * (float) i_332_);
		if (f < -f_335_ && f_334_ < -f_336_)
			i_333_ |= 0x10;
		else if (f > f_335_ && f_334_ > f_336_)
			i_333_ |= 0x20;
		float f_337_ = (aClass441_9365.aFloatArray4916[12] + aClass441_9365.aFloatArray4916[0] * (float) i + aClass441_9365.aFloatArray4916[4] * (float) i_328_ + aClass441_9365.aFloatArray4916[8] * (float) i_329_);
		float f_338_ = (aClass441_9365.aFloatArray4916[12] + aClass441_9365.aFloatArray4916[0] * (float) i_330_ + aClass441_9365.aFloatArray4916[4] * (float) i_331_ + aClass441_9365.aFloatArray4916[8] * (float) i_332_);
		if (f_337_ < -f_335_ && f_338_ < -f_336_)
			i_333_ |= 0x1;
		if (f_337_ > f_335_ && f_338_ > f_336_)
			i_333_ |= 0x2;
		float f_339_ = (aClass441_9365.aFloatArray4916[13] + aClass441_9365.aFloatArray4916[1] * (float) i + aClass441_9365.aFloatArray4916[5] * (float) i_328_ + aClass441_9365.aFloatArray4916[9] * (float) i_329_);
		float f_340_ = (aClass441_9365.aFloatArray4916[13] + aClass441_9365.aFloatArray4916[1] * (float) i_330_ + aClass441_9365.aFloatArray4916[5] * (float) i_331_ + aClass441_9365.aFloatArray4916[9] * (float) i_332_);
		if (f_339_ < -f_335_ && f_340_ < -f_336_)
			i_333_ |= 0x4;
		if (f_339_ > f_335_ && f_340_ > f_336_)
			i_333_ |= 0x8;
		return i_333_;
	}

	static int method14698(Class158 class158) {
		switch (class158.anInt1742 * 178485697) {
		case 4:
			return 6407;
		case 9:
			return 6402;
		case 8:
			return 6408;
		case 6:
			return 6406;
		case 7:
			return 6410;
		default:
			throw new IllegalStateException();
		case 5:
			return 6409;
		}
	}

	public Interface23 method3366(int i, int i_341_, int i_342_) {
		return new Class523_Sub27_Sub3(this, Class158.aClass158_1750, Class170.aClass170_1827, i, i_341_, i_342_);
	}

	final void method14699(float f, float f_343_, float f_344_) {
		OpenGL.glMatrixMode(5890);
		if (aBool9384)
			OpenGL.glLoadIdentity();
		OpenGL.glTranslatef(f, f_343_, f_344_);
		OpenGL.glMatrixMode(5888);
		aBool9384 = true;
	}

	final void method14700() {
		if (aBool9308)
			OpenGL.glEnable(3042);
		else
			OpenGL.glDisable(3042);
	}

	void method3159(int i, int i_345_) throws Exception_Sub4 {
		try {
			aClass168_Sub2_1939.method15400();
		} catch (Exception exception) {
			/* empty */
		}
		if (anInterface25_1923 != null)
			anInterface25_1923.method20(1751276052);
	}

	public void method3219() {
		OpenGL.glFinish();
	}

	public void method3283() {
		OpenGL.glFinish();
	}

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

	public void method3408(int i, int i_346_, int i_347_, int i_348_, int i_349_, int i_350_) {
		float f = (float) i + 0.35F;
		float f_351_ = (float) i_346_ + 0.35F;
		float f_352_ = f + (float) i_347_;
		float f_353_ = f_351_ + (float) i_348_;
		method14716();
		method14687(i_350_);
		OpenGL.glColor4ub((byte) (i_349_ >> 16), (byte) (i_349_ >> 8), (byte) i_349_, (byte) (i_349_ >> 24));
		if (aBool9401)
			OpenGL.glDisable(32925);
		OpenGL.glBegin(7);
		OpenGL.glVertex2f(f, f_351_);
		OpenGL.glVertex2f(f, f_353_);
		OpenGL.glVertex2f(f_352_, f_353_);
		OpenGL.glVertex2f(f_352_, f_351_);
		OpenGL.glEnd();
		if (aBool9401)
			OpenGL.glEnable(32925);
	}

	public Class185 method3395(int i) {
		return aBool9407 ? new Class185_Sub1_Sub2(this, i) : null;
	}

	public final synchronized void method3165(int i) {
		int i_354_ = 0;
		i &= 0x7fffffff;
		while (!aClass708_9296.method14237((byte) 104)) {
			Class523_Sub24 class523_sub24 = (Class523_Sub24) aClass708_9296.method14293(2044019062);
			anIntArray9303[i_354_++] = (int) (class523_sub24.aLong7065 * 1055205983951172633L);
			anInt9293 -= class523_sub24.anInt10542 * -677457577;
			if (i_354_ == 1000) {
				OpenGL.glDeleteBuffersARB(i_354_, anIntArray9303, 0);
				i_354_ = 0;
			}
		}
		if (i_354_ > 0) {
			OpenGL.glDeleteBuffersARB(i_354_, anIntArray9303, 0);
			i_354_ = 0;
		}
		while (!aClass708_9297.method14237((byte) 104)) {
			Class523_Sub24 class523_sub24 = (Class523_Sub24) aClass708_9297.method14293(2017798595);
			anIntArray9303[i_354_++] = (int) (class523_sub24.aLong7065 * 1055205983951172633L);
			anInt9275 -= class523_sub24.anInt10542 * -677457577;
			if (i_354_ == 1000) {
				OpenGL.glDeleteTextures(i_354_, anIntArray9303, 0);
				i_354_ = 0;
			}
		}
		if (i_354_ > 0) {
			OpenGL.glDeleteTextures(i_354_, anIntArray9303, 0);
			i_354_ = 0;
		}
		while (!aClass708_9298.method14237((byte) 104)) {
			Class523_Sub24 class523_sub24 = (Class523_Sub24) aClass708_9298.method14293(2026743375);
			anIntArray9303[i_354_++] = class523_sub24.anInt10542 * -677457577;
			if (i_354_ == 1000) {
				OpenGL.glDeleteFramebuffersEXT(i_354_, anIntArray9303, 0);
				i_354_ = 0;
			}
		}
		if (i_354_ > 0) {
			OpenGL.glDeleteFramebuffersEXT(i_354_, anIntArray9303, 0);
			i_354_ = 0;
		}
		while (!aClass708_9299.method14237((byte) 104)) {
			Class523_Sub24 class523_sub24 = (Class523_Sub24) aClass708_9299.method14293(2037904541);
			anIntArray9303[i_354_++] = (int) (class523_sub24.aLong7065 * 1055205983951172633L);
			anInt9324 -= class523_sub24.anInt10542 * -677457577;
			if (i_354_ == 1000) {
				OpenGL.glDeleteRenderbuffersEXT(i_354_, anIntArray9303, 0);
				i_354_ = 0;
			}
		}
		if (i_354_ > 0) {
			OpenGL.glDeleteRenderbuffersEXT(i_354_, anIntArray9303, 0);
			boolean bool = false;
		}
		while (!aClass708_9295.method14237((byte) 104)) {
			Class523_Sub24 class523_sub24 = (Class523_Sub24) aClass708_9295.method14293(1969792358);
			OpenGL.glDeleteLists((int) (class523_sub24.aLong7065 * 1055205983951172633L), class523_sub24.anInt10542 * -677457577);
		}
		while (!aClass708_9301.method14237((byte) 104)) {
			Class523 class523 = aClass708_9301.method14293(2132402545);
			OpenGL.glDeleteProgramARB((int) (class523.aLong7065 * 1055205983951172633L));
		}
		while (!aClass708_9385.method14237((byte) 104)) {
			Class523 class523 = aClass708_9385.method14293(2132076815);
			OpenGL.glDeleteShader((int) (class523.aLong7065 * 1055205983951172633L));
		}
		while (!aClass708_9295.method14237((byte) 104)) {
			Class523_Sub24 class523_sub24 = (Class523_Sub24) aClass708_9295.method14293(1950701280);
			OpenGL.glDeleteLists((int) (class523_sub24.aLong7065 * 1055205983951172633L), class523_sub24.anInt10542 * -677457577);
		}
		aClass154_9382.method2531();
		if (method3025() > 100663296 && TimeUtils.getCurrentTimeMilliseconds(1516375036) > aLong9302 + 60000L) {
			System.gc();
			aLong9302 = TimeUtils.getCurrentTimeMilliseconds(1516375036);
		}
		anInt9436 = i;
	}

	public final void method3121(int i, float f, float f_355_, float f_356_, float f_357_, float f_358_) {
		boolean bool = anInt9355 != i;
		if (bool || aFloat9343 != f || aFloat9250 != f_355_) {
			anInt9355 = i;
			aFloat9343 = f;
			aFloat9250 = f_355_;
			if (bool) {
				aFloat9356 = (float) (anInt9355 & 0xff0000) / 1.671168E7F;
				aFloat9357 = (float) (anInt9355 & 0xff00) / 65280.0F;
				aFloat9268 = (float) (anInt9355 & 0xff) / 255.0F;
				method14647();
			}
			method14765();
		}
		if (aFloatArray9439[0] != f_356_ || aFloatArray9439[1] != f_357_ || aFloatArray9439[2] != f_358_) {
			aFloatArray9439[0] = f_356_;
			aFloatArray9439[1] = f_357_;
			aFloatArray9439[2] = f_358_;
			aFloatArray9396[0] = -f_356_;
			aFloatArray9396[1] = -f_357_;
			aFloatArray9396[2] = -f_358_;
			float f_359_ = (float) (1.0 / Math.sqrt((double) (f_356_ * f_356_ + f_357_ * f_357_ + f_358_ * f_358_)));
			aFloatArray9277[0] = f_356_ * f_359_;
			aFloatArray9277[1] = f_357_ * f_359_;
			aFloatArray9277[2] = f_358_ * f_359_;
			aFloatArray9354[0] = -aFloatArray9277[0];
			aFloatArray9354[1] = -aFloatArray9277[1];
			aFloatArray9354[2] = -aFloatArray9277[2];
			method14658();
			anInt9372 = (int) (f_356_ * 256.0F / f_357_);
			anInt9366 = (int) (f_358_ * 256.0F / f_357_);
		}
	}

	public final int method3167() {
		return anInt9293 + anInt9275 + anInt9324;
	}

	public final int method3168() {
		return anInt9293 + anInt9275 + anInt9324;
	}

	public final int method3187() {
		return anInt9293 + anInt9275 + anInt9324;
	}

	public boolean method3170() {
		return true;
	}

	public void method3364(float f, float f_360_, float f_361_, float[] fs) {
		float f_362_ = (aClass441_9365.aFloatArray4916[14] + aClass441_9365.aFloatArray4916[2] * f + aClass441_9365.aFloatArray4916[6] * f_360_ + aClass441_9365.aFloatArray4916[10] * f_361_);
		float f_363_ = (aClass441_9365.aFloatArray4916[15] + aClass441_9365.aFloatArray4916[3] * f + aClass441_9365.aFloatArray4916[7] * f_360_ + aClass441_9365.aFloatArray4916[11] * f_361_);
		if (f_362_ < -f_363_ || f_362_ > f_363_) {
			float[] fs_364_ = fs;
			float[] fs_365_ = fs;
			fs[2] = Float.NaN;
			fs_365_[1] = Float.NaN;
			fs_364_[0] = Float.NaN;
		} else {
			float f_366_ = (aClass441_9365.aFloatArray4916[12] + aClass441_9365.aFloatArray4916[0] * f + aClass441_9365.aFloatArray4916[4] * f_360_ + aClass441_9365.aFloatArray4916[8] * f_361_);
			if (f_366_ < -f_363_ || f_366_ > f_363_) {
				float[] fs_367_ = fs;
				float[] fs_368_ = fs;
				fs[2] = Float.NaN;
				fs_368_[1] = Float.NaN;
				fs_367_[0] = Float.NaN;
			} else {
				float f_369_ = (aClass441_9365.aFloatArray4916[13] + aClass441_9365.aFloatArray4916[1] * f + aClass441_9365.aFloatArray4916[5] * f_360_ + aClass441_9365.aFloatArray4916[9] * f_361_);
				if (f_369_ < -f_363_ || f_369_ > f_363_) {
					float[] fs_370_ = fs;
					float[] fs_371_ = fs;
					fs[2] = Float.NaN;
					fs_371_[1] = Float.NaN;
					fs_370_[0] = Float.NaN;
				} else {
					float f_372_ = (aClass441_9316.aFloatArray4916[14] + aClass441_9316.aFloatArray4916[2] * f + aClass441_9316.aFloatArray4916[6] * f_360_ + aClass441_9316.aFloatArray4916[10] * f_361_);
					fs[0] = aFloat9274 + aFloat9363 * f_366_ / f_363_;
					fs[1] = aFloat9284 + aFloat9326 * f_369_ / f_363_;
					fs[2] = f_372_;
				}
			}
		}
	}

	public boolean method3172() {
		return true;
	}

	public boolean method3173() {
		return true;
	}

	public boolean method3174() {
		return true;
	}

	final void method14701(float f, float f_373_) {
		aFloat9373 = f;
		aFloat9374 = f_373_;
		method14651();
	}

	public boolean method3198() {
		return true;
	}

	final void method14702(float[] fs) {
		float[] fs_374_ = new float[16];
		System.arraycopy(fs, 0, fs_374_, 0, 16);
		fs_374_[1] = -fs_374_[1];
		fs_374_[5] = -fs_374_[5];
		fs_374_[9] = -fs_374_[9];
		fs_374_[13] = -fs_374_[13];
		OpenGL.glMatrixMode(5889);
		OpenGL.glLoadMatrixf(fs_374_, 0);
		OpenGL.glMatrixMode(5888);
	}

	void method14703(int i, int i_375_) {
		method3066();
		method3161(i, i_375_, -1781037260);
		if (aBool9405) {
			aClass148_9430 = method3136(i, i_375_, true, true);
			aClass168_Sub1_9378 = method3248();
			aClass168_Sub1_9378.method14424(0, aClass148_9430.method2430());
			OpenGL.glGenBuffersARB(3, anIntArray9438, 0);
			for (int i_376_ = 0; i_376_ < 3; i_376_++) {
				OpenGL.glBindBufferARB(35051, anIntArray9438[i_376_]);
				OpenGL.glBufferDataARBa(35051, i * i_375_ * 4, 0L, 35041);
				OpenGL.glBindBufferARB(35051, 0);
			}
		} else {
			aClass148_9430 = method3136(i, i_375_, true, true);
			aClass168_Sub1_9378 = method3248();
			aClass168_Sub1_9378.method14424(0, aClass148_9430.method2430());
		}
	}

	public boolean method3179() {
		return true;
	}

	public boolean method3180() {
		return false;
	}

	public final Class441 method3125() {
		return new Class441(aClass441_9292);
	}

	public boolean method3097() {
		return true;
	}

	public String method3234() {
		String string = "Caps: 2:";
		String string_377_ = ":";
		string = new StringBuilder().append(string).append(anInt9381).append(string_377_).toString();
		string = new StringBuilder().append(string).append(anInt9418).append(string_377_).toString();
		string = new StringBuilder().append(string).append(anInt9241).append(string_377_).toString();
		string = new StringBuilder().append(string).append(anInt9278).append(string_377_).toString();
		string = new StringBuilder().append(string).append(anInt9397).append(string_377_).toString();
		string = new StringBuilder().append(string).append(aFloat9420).append(string_377_).toString();
		string = new StringBuilder().append(string).append(aFloat9419).append(string_377_).toString();
		string = new StringBuilder().append(string).append(aBool9393 ? 1 : 0).append(string_377_).toString();
		string = new StringBuilder().append(string).append(aBool9391 ? 1 : 0).append(string_377_).toString();
		string = new StringBuilder().append(string).append(aBool9318 ? 1 : 0).append(string_377_).toString();
		string = new StringBuilder().append(string).append(aBool9320 ? 1 : 0).append(string_377_).toString();
		string = new StringBuilder().append(string).append(aBool9404 ? 1 : 0).append(string_377_).toString();
		string = new StringBuilder().append(string).append(aBool9401 ? 1 : 0).append(string_377_).toString();
		string = new StringBuilder().append(string).append(aBool9412 ? 1 : 0).append(string_377_).toString();
		string = new StringBuilder().append(string).append(aBool9414 ? 1 : 0).append(string_377_).toString();
		string = new StringBuilder().append(string).append(aBool9413 ? 1 : 0).append(string_377_).toString();
		string = new StringBuilder().append(string).append(aBool9315 ? 1 : 0).append(string_377_).toString();
		string = new StringBuilder().append(string).append(aBool9325 ? 1 : 0).append(string_377_).toString();
		string = new StringBuilder().append(string).append(aBool9409 ? 1 : 0).append(string_377_).toString();
		string = new StringBuilder().append(string).append(aBool9407 ? 1 : 0).append(string_377_).toString();
		string = new StringBuilder().append(string).append(aBool9408 ? 1 : 0).append(string_377_).toString();
		string = new StringBuilder().append(string).append(aBool9411 ? 1 : 0).append(string_377_).toString();
		string = new StringBuilder().append(string).append(aBool9398 ? 1 : 0).append(string_377_).toString();
		string = new StringBuilder().append(string).append(aBool9259 ? 1 : 0).append(string_377_).toString();
		string = new StringBuilder().append(string).append(aBool9400 ? 1 : 0).append(string_377_).toString();
		string = new StringBuilder().append(string).append(aBool9410 ? 1 : 0).append(string_377_).toString();
		string = new StringBuilder().append(string).append(aBool9416 ? 1 : 0).append(string_377_).toString();
		string = new StringBuilder().append(string).append(aBool9330 ? 1 : 0).toString();
		return string;
	}

	void method14704() {
		int i = 0;
		while (!anOpenGL9272.method1669()) {
			if (i++ > 5)
				throw new RuntimeException("");
			Class653.method10656(1000L);
		}
	}

	void method14705() {
		method14624();
	}

	public void method3386(int i, int i_378_, int i_379_, int i_380_, int i_381_, int i_382_) {
		method14716();
		method14687(i_382_);
		float f = (float) i_379_ - (float) i;
		float f_383_ = (float) i_380_ - (float) i_378_;
		if (f == 0.0F && f_383_ == 0.0F)
			f = 1.0F;
		else {
			float f_384_ = (float) (1.0 / Math.sqrt((double) (f * f + f_383_ * f_383_)));
			f *= f_384_;
			f_383_ *= f_384_;
		}
		OpenGL.glColor4ub((byte) (i_381_ >> 16), (byte) (i_381_ >> 8), (byte) i_381_, (byte) (i_381_ >> 24));
		OpenGL.glBegin(1);
		OpenGL.glVertex2f((float) i + 0.35F, (float) i_378_ + 0.35F);
		OpenGL.glVertex2f((float) i_379_ + f + 0.35F, (float) i_380_ + f_383_ + 0.35F);
		OpenGL.glEnd();
	}

	public void method3251(boolean bool) {
		/* empty */
	}

	public void method3192(float f, float f_385_) {
		aFloat9327 = f;
		aFloat9379 = f_385_;
		method14634();
	}

	public void method3189(boolean bool) {
		/* empty */
	}

	public void method3176(boolean bool) {
		/* empty */
	}

	public boolean method3205() {
		return true;
	}

	final void method14706(boolean bool) {
		if (bool != aBool9328) {
			aBool9328 = bool;
			method14623();
		}
	}

	public Class168_Sub1 method3022() {
		return new Class168_Sub1_Sub3(this);
	}

	public void method3194() {
		if (aBool9416 && aClass168_1938 != null) {
			int i = anInt9253;
			int i_386_ = anInt9361;
			int i_387_ = anInt9338;
			int i_388_ = anInt9263;
			method3071();
			int i_389_ = anInt9344;
			int i_390_ = anInt9345;
			int i_391_ = anInt9346;
			int i_392_ = anInt9360;
			method3067();
			OpenGL.glReadBuffer(1028);
			OpenGL.glDrawBuffer(1029);
			method14641();
			method14788(false);
			method14682(false);
			method14684(false);
			method14620(false);
			method14711(null);
			method14670(-2);
			method14785(1);
			method14687(0);
			OpenGL.glMatrixMode(5889);
			OpenGL.glLoadIdentity();
			OpenGL.glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
			OpenGL.glMatrixMode(5888);
			OpenGL.glLoadIdentity();
			OpenGL.glRasterPos2i(0, 0);
			OpenGL.glCopyPixels(0, 0, aClass168_1938.method2875(), aClass168_1938.method2874(), 6144);
			OpenGL.glFlush();
			OpenGL.glReadBuffer(1029);
			OpenGL.glDrawBuffer(1029);
			method3378(i, i_387_, i_386_, i_388_);
			method3208(i_389_, i_390_, i_391_, i_392_);
		}
	}

	public void method3195() {
		if (aBool9416 && aClass168_1938 != null) {
			int i = anInt9253;
			int i_393_ = anInt9361;
			int i_394_ = anInt9338;
			int i_395_ = anInt9263;
			method3071();
			int i_396_ = anInt9344;
			int i_397_ = anInt9345;
			int i_398_ = anInt9346;
			int i_399_ = anInt9360;
			method3067();
			OpenGL.glReadBuffer(1028);
			OpenGL.glDrawBuffer(1029);
			method14641();
			method14788(false);
			method14682(false);
			method14684(false);
			method14620(false);
			method14711(null);
			method14670(-2);
			method14785(1);
			method14687(0);
			OpenGL.glMatrixMode(5889);
			OpenGL.glLoadIdentity();
			OpenGL.glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
			OpenGL.glMatrixMode(5888);
			OpenGL.glLoadIdentity();
			OpenGL.glRasterPos2i(0, 0);
			OpenGL.glCopyPixels(0, 0, aClass168_1938.method2875(), aClass168_1938.method2874(), 6144);
			OpenGL.glFlush();
			OpenGL.glReadBuffer(1029);
			OpenGL.glDrawBuffer(1029);
			method3378(i, i_394_, i_393_, i_395_);
			method3208(i_396_, i_397_, i_398_, i_399_);
		}
	}

	public boolean method3252() {
		return aBool9405;
	}

	public boolean method3202() {
		return aBool9405;
	}

	public boolean method3065() {
		if (aBool9405 && aLongArray9329[anInt9319] != 0L)
			return false;
		return true;
	}

	public Class523_Sub8 method3258(int i) {
		Class523_Sub8_Sub2 class523_sub8_sub2 = new Class523_Sub8_Sub2(i);
		aClass708_9290.method14236(class523_sub8_sub2, 774711495);
		return class523_sub8_sub2;
	}

	public final void method3285(int[] is) {
		is[0] = anInt9253;
		is[1] = anInt9338;
		is[2] = anInt9361;
		is[3] = anInt9263;
	}

	public final Class441 method3307() {
		return new Class441(aClass441_9292);
	}

	Class178_Sub1(Canvas canvas, Class172 class172, Interface25 interface25, Interface46 interface46, Interface48 interface48, Interface45 interface45, int i) {
		super(class172, interface25, interface46, interface48, interface45);
		aClass435_9283 = new Class435();
		anInt9286 = 8;
		anInt9287 = 3;
		aBool9288 = false;
		aClass708_9290 = new Class708();
		anUnsafe9291 = null;
		aClass708_9295 = new Class708();
		aClass708_9296 = new Class708();
		aClass708_9297 = new Class708();
		aClass708_9298 = new Class708();
		aClass708_9299 = new Class708();
		aClass708_9301 = new Class708();
		aClass708_9385 = new Class708();
		anInt9314 = 2;
		aClass435_9233 = new Class435();
		aClass441_9316 = new Class441();
		aClass441_9317 = new Class441();
		aClass441_9292 = new Class441();
		aClass441_9273 = new Class441();
		aClass441_9365 = new Class441();
		aFloatArrayArray9415 = new float[6][4];
		aFloatArray9322 = new float[4];
		aFloat9327 = 0.0F;
		aFloat9379 = 1.0F;
		aFloat9340 = 0.0F;
		aFloat9313 = -1.0F;
		aClass435_9331 = new Class435();
		aClass441_9332 = new Class441();
		aClass441_9333 = new Class441();
		aFloatArray9334 = new float[16];
		aBool9351 = true;
		aBool9339 = true;
		anInt9338 = 0;
		anInt9263 = 0;
		anInt9253 = 0;
		anInt9361 = 0;
		anInt9342 = 0;
		anInt9437 = 0;
		aFloatArray9439 = new float[4];
		aFloatArray9396 = new float[4];
		aFloatArray9277 = new float[4];
		aFloatArray9354 = new float[4];
		anInt9355 = -1;
		aFloat9356 = 1.0F;
		aFloat9357 = 1.0F;
		aFloat9268 = 1.0F;
		aFloat9343 = -1.0F;
		aFloat9250 = -1.0F;
		aClass523_Sub20Array9395 = new Class523_Sub20[anInt9348];
		anInt9368 = -1;
		anInt9369 = -1;
		anInt9261 = 0;
		aFloat9373 = 1.0F;
		aFloat9374 = 0.0F;
		aBool9376 = false;
		anInt9399 = 8448;
		anInt9383 = 8448;
		aFloat9419 = -1.0F;
		aFloat9420 = -1.0F;
		aClass167_Sub3Array9358 = new Class167_Sub3[8];
		aClass167_Sub3Array9422 = new Class167_Sub3[8];
		aClass523_Sub34_Sub1_9321 = new Class523_Sub34_Sub1(8192);
		anIntArray9294 = new int[1];
		anIntArray9431 = new int[1];
		anIntArray9432 = new int[1];
		aByteArray9433 = new byte[16384];
		aClass148_9435 = null;
		aClass148_9430 = null;
		aClass168_Sub1_9378 = null;
		anIntArray9438 = new int[3];
		aLongArray9329 = new long[3];
		anIntArray9440 = new int[3];
		anInt9441 = 0;
		anInt9319 = 0;
		try {
			try {
				Field field = sun.misc.Unsafe.class.getDeclaredField("theUnsafe");
				field.setAccessible(true);
				anUnsafe9291 = (Unsafe) field.get(null);
			} catch (Exception exception) {
				/* empty */
			}
			anInt9381 = i;
			Class523_Sub24.method16142(1240490682).method383("jaclib", 2106472487);
			Class523_Sub24.method16142(1961379560).method383("jaggl", 2106472487);
			anOpenGL9272 = new OpenGL();
			long l = anOpenGL9272.init(canvas, 8, 8, 8, 24, 0, anInt9381);
			if (l == 0L)
				throw new RuntimeException("");
			method14628();
			int i_400_ = method14614();
			if (i_400_ != 0)
				throw new RuntimeException("");
			if (aBool9318 && aBool9398) {
				String string = System.getProperty("java.version");
				int i_401_ = string.indexOf('_');
				if (i_401_ > -1)
					string = string.substring(0, i_401_);
				i_401_ = string.indexOf('.');
				if (i_401_ > -1) {
					i_401_ = string.indexOf('.', i_401_ + 1);
					if (i_401_ > -1)
						string = string.substring(0, i_401_);
				}
				try {
					int i_402_ = (int) (Float.parseFloat(string) * 100.0F);
					if (i_402_ >= 170) {
						aBool9398 = false;
						aBool9401 = false;
						aBool9402 = false;
					}
				} catch (NumberFormatException numberformatexception) {
					aBool9398 = false;
					aBool9401 = false;
					aBool9402 = false;
				}
			}
			anInt9418 = aBool9393 ? 33639 : 5121;
			aBool9391 = aString9390.indexOf("radeon") != -1;
			boolean bool = aString9350.indexOf("intel") != -1;
			boolean bool_403_ = false;
			boolean bool_404_ = false;
			int i_405_ = 0;
			if (aBool9391 || bool) {
				String[] strings = Class194_Sub13.method15512(aString9390.replace('/', ' '), ' ', (byte) -21);
				int i_406_ = 0;
				for (/**/; i_406_ < strings.length; i_406_++) {
					String string = strings[i_406_];
					try {
						if (string.length() <= 0)
							continue;
						if (string.charAt(0) == 'x' && string.length() >= 3 && Class516.method8619(string.substring(1, 3), 1695842396)) {
							string = string.substring(1);
							bool_404_ = true;
						}
						if (string.equals("hd")) {
							bool_403_ = true;
							continue;
						}
						if (string.startsWith("hd")) {
							string = string.substring(2);
							bool_403_ = true;
						}
						if (string.length() < 4 || !Class516.method8619(string.substring(0, 4), 1695842396))
							continue;
						i_405_ = JS5Client.method15856(string.substring(0, 4), (byte) 8);
					} catch (Exception exception) {
						continue;
					}
					break;
				}
			}
			if (anInt9381 != 0 && bool && !bool_403_)
				throw new RuntimeException_Sub3("");
			if (aBool9391 || bool) {
				if (bool) {
					if (!bool_403_) {
						aBool9398 = false;
						aBool9401 = false;
						aBool9402 = false;
					}
				} else {
					if (!bool_404_ && !bool_403_) {
						if (i_405_ >= 7000 && i_405_ <= 7999)
							aBool9320 = false;
						if (i_405_ >= 7000 && i_405_ <= 9250)
							aBool9325 = false;
					}
					if (!bool_403_ || i_405_ < 4000)
						aBool9410 = false;
					aBool9409 &= anOpenGL9272.method1668("GL_ARB_half_float_pixel");
					aBool9404 = aBool9320;
				}
			}
			aBool9416 = !aString9350.equals("s3 graphics");
			if (aBool9320) {
				try {
					int[] is = new int[1];
					OpenGL.glGenBuffersARB(1, is, 0);
				} catch (Throwable throwable) {
					throw new RuntimeException("");
				}
			}
			Class226.method4166(false, true, 240723773);
			aBool9288 = true;
			aClass154_9382 = new Class154(this, anInterface25_1923);
			method14615();
			aClass156_9364 = new Class156(this);
			aClass141_9276 = new Class141(this);
			if (!aClass141_9276.method2289()) {
				aClass141_9276.method2314();
				aClass141_9276 = null;
			} else {
				aClass523_Sub17_Sub3_9417 = new Class523_Sub17_Sub3(this);
				if (!aClass523_Sub17_Sub3_9417.method17947()) {
					aClass523_Sub17_Sub3_9417.method16015();
					aClass523_Sub17_Sub3_9417 = null;
				}
				aClass523_Sub17_Sub1_9341 = new Class523_Sub17_Sub1(this);
				if (!aClass523_Sub17_Sub1_9341.method17806()) {
					aClass523_Sub17_Sub1_9341.method16015();
					aClass523_Sub17_Sub1_9341 = null;
				}
				aClass523_Sub17_Sub2_9279 = new Class523_Sub17_Sub2(this);
				if (!aClass523_Sub17_Sub2_9279.method17867()) {
					aClass523_Sub17_Sub2_9279.method16015();
					aClass523_Sub17_Sub2_9279 = null;
				}
			}
			method3042(canvas, new Class168_Sub2_Sub3(this, canvas, l), -52737753);
			method3044(canvas, -1603476382);
			if (aBool9318) {
				int i_407_ = canvas.getLocation().x;
				int i_408_ = canvas.getLocation().y;
				canvas.setLocation(i_407_ + 1, i_408_);
				canvas.setLocation(i_407_, i_408_);
			}
			aClass120_9429 = new Class120(this);
			method14616();
			method3054();
			if (aClass141_9276 != null) {
				method14653();
				method14656();
			}
		} catch (Throwable throwable) {
			throwable.printStackTrace();
			method3024(1035531391);
			if (throwable instanceof OutOfMemoryError)
				throw (OutOfMemoryError) throwable;
			if (throwable instanceof RuntimeException_Sub3)
				throw (RuntimeException_Sub3) throwable;
			throw new RuntimeException("");
		}
	}

	public int method3407() {
		if (aBool9405) {
			if (aLongArray9329[anInt9441] == 0L)
				return -1;
			int i = OpenGL.glClientWaitSync(aLongArray9329[anInt9441], 0, 0);
			if (i == 37149) {
				method3060();
				return -1;
			}
			return i != 37147 ? anIntArray9440[anInt9441] : -1;
		}
		return -1;
	}

	public int method3294() {
		if (aBool9405) {
			if (aLongArray9329[anInt9441] == 0L)
				return -1;
			int i = OpenGL.glClientWaitSync(aLongArray9329[anInt9441], 0, 0);
			if (i == 37149) {
				method3060();
				return -1;
			}
			return i != 37147 ? anIntArray9440[anInt9441] : -1;
		}
		return -1;
	}

	public void method3466(int i, int i_409_, int i_410_) {
		method3186();
		if (aClass168_Sub1_9378 == null)
			method14629(i_409_, i_410_);
		if (aClass148_9435 == null)
			aClass148_9435 = method3376(0, 0, aClass168_1938.method2875(), aClass168_1938.method2874(), true);
		else
			((Class148_Sub2) aClass148_9435).method14534(0, 0, aClass168_1938.method2875(), aClass168_1938.method2874(), 0, 0, true);
		method3353(aClass168_Sub1_9378, -1491751218);
		method3076(1, -16777216);
		aClass148_9435.method2438(anInt1945 * 1970564341, anInt1937 * 1216763507, anInt1946 * -750425387, anInt1915 * -733304105);
		OpenGL.glBindBufferARB(35051, anIntArray9438[anInt9319]);
		OpenGL.glReadPixelsub(0, 0, anInt1942 * 799761325, anInt1943 * -2022726959, 32993, 5121, null, 0);
		OpenGL.glBindBufferARB(35051, 0);
		method3047(aClass168_Sub1_9378, (short) -23926);
		aLongArray9329[anInt9319] = OpenGL.glFenceSync(37143, 0);
		anIntArray9440[anInt9319] = i;
		if (++anInt9319 >= 3)
			anInt9319 = 0;
		method3108();
	}

	public void method3211(int i, int i_411_, int i_412_) {
		method3186();
		if (aClass168_Sub1_9378 == null)
			method14629(i_411_, i_412_);
		if (aClass148_9435 == null)
			aClass148_9435 = method3376(0, 0, aClass168_1938.method2875(), aClass168_1938.method2874(), true);
		else
			((Class148_Sub2) aClass148_9435).method14534(0, 0, aClass168_1938.method2875(), aClass168_1938.method2874(), 0, 0, true);
		method3353(aClass168_Sub1_9378, -623440439);
		method3076(1, -16777216);
		aClass148_9435.method2438(anInt1945 * 1970564341, anInt1937 * 1216763507, anInt1946 * -750425387, anInt1915 * -733304105);
		OpenGL.glBindBufferARB(35051, anIntArray9438[anInt9319]);
		OpenGL.glReadPixelsub(0, 0, anInt1942 * 799761325, anInt1943 * -2022726959, 32993, 5121, null, 0);
		OpenGL.glBindBufferARB(35051, 0);
		method3047(aClass168_Sub1_9378, (short) -18873);
		aLongArray9329[anInt9319] = OpenGL.glFenceSync(37143, 0);
		anIntArray9440[anInt9319] = i;
		if (++anInt9319 >= 3)
			anInt9319 = 0;
		method3108();
	}

	public void method3088(int i, int i_413_, int i_414_) {
		method3186();
		if (aClass168_Sub1_9378 == null)
			method14629(i_413_, i_414_);
		if (aClass148_9435 == null)
			aClass148_9435 = method3376(0, 0, aClass168_1938.method2875(), aClass168_1938.method2874(), true);
		else
			((Class148_Sub2) aClass148_9435).method14534(0, 0, aClass168_1938.method2875(), aClass168_1938.method2874(), 0, 0, true);
		method3353(aClass168_Sub1_9378, 1646420866);
		method3076(1, -16777216);
		aClass148_9435.method2438(anInt1945 * 1970564341, anInt1937 * 1216763507, anInt1946 * -750425387, anInt1915 * -733304105);
		OpenGL.glBindBufferARB(35051, anIntArray9438[anInt9319]);
		OpenGL.glReadPixelsub(0, 0, anInt1942 * 799761325, anInt1943 * -2022726959, 32993, 5121, null, 0);
		OpenGL.glBindBufferARB(35051, 0);
		method3047(aClass168_Sub1_9378, (short) -17304);
		aLongArray9329[anInt9319] = OpenGL.glFenceSync(37143, 0);
		anIntArray9440[anInt9319] = i;
		if (++anInt9319 >= 3)
			anInt9319 = 0;
		method3108();
	}

	public void method3185() {
		for (int i = 0; i < 3; i++) {
			if (aLongArray9329[i] != 0L) {
				OpenGL.glDeleteSync(aLongArray9329[i]);
				aLongArray9329[i] = 0L;
			}
		}
		anInt9319 = 0;
		anInt9441 = 0;
	}

	final void method14707() {
		if (anInt9335 != 1) {
			anInt9335 = 1;
			method14622();
			method14633();
			method14634();
			OpenGL.glMatrixMode(5888);
			OpenGL.glLoadIdentity();
			anInt9424 &= ~0x18;
		}
	}

	final Interface18 method14708(int i, byte[] is, int i_415_, boolean bool) {
		if (aBool9320 && (!bool || aBool9404))
			return new Class135_Sub2(this, i, is, i_415_, bool);
		return new Class130_Sub1(this, i, is, i_415_);
	}

	public void method3216(long l) {
		if (OpenGL.glUnmapBufferARB(35051)) {
			/* empty */
		}
		OpenGL.glBindBufferARB(35051, 0);
	}

	public void method3217(int i, int i_416_, int[] is, int[] is_417_) {
		method14627(i, i_416_, is, is_417_);
	}

	final void method14709(float[] fs) {
		float[] fs_418_ = new float[16];
		System.arraycopy(fs, 0, fs_418_, 0, 16);
		fs_418_[1] = -fs_418_[1];
		fs_418_[5] = -fs_418_[5];
		fs_418_[9] = -fs_418_[9];
		fs_418_[13] = -fs_418_[13];
		OpenGL.glMatrixMode(5889);
		OpenGL.glLoadMatrixf(fs_418_, 0);
		OpenGL.glMatrixMode(5888);
	}

	public int[] method3020(int i, int i_419_, int i_420_, int i_421_) {
		if (aClass168_1938 != null) {
			int[] is = new int[i_420_ * i_421_];
			int i_422_ = aClass168_1938.method2874();
			for (int i_423_ = 0; i_423_ < i_421_; i_423_++)
				OpenGL.glReadPixelsi(i, i_422_ - i_419_ - i_423_ - 1, i_420_, 1, 32993, anInt9418, is, i_423_ * i_420_);
			return is;
		}
		return null;
	}

	final void method3424(float f, float f_424_, float f_425_, float f_426_, float f_427_, float f_428_) {
		Class523_Sub17_Sub3.aFloat11597 = f;
		Class523_Sub17_Sub3.aFloat11596 = f_424_;
		Class523_Sub17_Sub3.aFloat11595 = f_425_;
	}

	public void method3344() {
		anInt9344 = 0;
		anInt9345 = 0;
		anInt9346 = aClass168_1938.method2875();
		anInt9360 = aClass168_1938.method2874();
		method14633();
	}

	public void method3222(int i, int i_429_, int i_430_, int i_431_) {
		anInt9344 = i;
		anInt9345 = i_429_;
		anInt9346 = i_430_;
		anInt9360 = i_431_;
		method14633();
	}

	long method14710(int i, int i_432_, int[] is, int[] is_433_) {
		if (aBool9405) {
			if (aLongArray9329[anInt9441] != 0L) {
				OpenGL.glDeleteSync(aLongArray9329[anInt9441]);
				aLongArray9329[anInt9441] = 0L;
			}
			OpenGL.glBindBufferARB(35051, anIntArray9438[anInt9441]);
			long l = OpenGL.glMapBufferARB(35051, 35000);
			if (is != null) {
				int i_434_ = 0;
				for (int i_435_ = i_432_ - 1; i_435_ >= 0; i_435_--) {
					for (int i_436_ = 0; i_436_ < i; i_436_++)
						is[i_434_++] = anUnsafe9291.getInt(l + (long) ((i_435_ * i + i_436_) * 4));
				}
				if (OpenGL.glUnmapBufferARB(35051)) {
					/* empty */
				}
				OpenGL.glBindBufferARB(35051, 0);
				l = 0L;
			}
			if (++anInt9441 >= 3)
				anInt9441 = 0;
			return l;
		}
		if (aClass148_9430 == null)
			method14629(i, i_432_);
		if (aClass148_9435 == null)
			aClass148_9435 = method3376(0, 0, aClass168_1938.method2875(), aClass168_1938.method2874(), true);
		else
			((Class148_Sub2) aClass148_9435).method14534(0, 0, aClass168_1938.method2875(), aClass168_1938.method2874(), 0, 0, true);
		method3353(aClass168_Sub1_9378, -1436766602);
		method3076(1, -16777216);
		aClass148_9435.method2438(anInt1945 * 1970564341, anInt1937 * 1216763507, anInt1946 * -750425387, anInt1915 * -733304105);
		aClass148_9430.method2432(0, 0, i, i_432_, is, is_433_, 0, i);
		method3047(aClass168_Sub1_9378, (short) -3371);
		return 0L;
	}

	public void method3224(int[] is) {
		is[0] = anInt9344;
		is[1] = anInt9345;
		is[2] = anInt9346;
		is[3] = anInt9360;
	}

	public void method3225(int[] is) {
		is[0] = anInt9344;
		is[1] = anInt9345;
		is[2] = anInt9346;
		is[3] = anInt9360;
	}

	public void method3335(float f, float f_437_) {
		aFloat9327 = f;
		aFloat9379 = f_437_;
		method14634();
	}

	public void method3118() {
		for (int i = 0; i < 3; i++) {
			if (aLongArray9329[i] != 0L) {
				OpenGL.glDeleteSync(aLongArray9329[i]);
				aLongArray9329[i] = 0L;
			}
		}
		anInt9319 = 0;
		anInt9441 = 0;
	}

	public final void method3228(int i, int i_438_, int i_439_, int i_440_) {
		if (aClass168_1938 != null) {
			if (i < 0)
				i = 0;
			if (i_439_ > aClass168_1938.method2875())
				i_439_ = aClass168_1938.method2875();
			if (i_438_ < 0)
				i_438_ = 0;
			if (i_440_ > aClass168_1938.method2874())
				i_440_ = aClass168_1938.method2874();
			anInt9253 = i;
			anInt9338 = i_438_;
			anInt9361 = i_439_;
			anInt9263 = i_440_;
			OpenGL.glEnable(3089);
			method14635();
		}
	}

	public void method3218() {
		if (aBool9405) {
			aClass148_9435 = null;
			if (aClass168_Sub1_9378 != null) {
				aClass168_Sub1_9378.method131();
				aClass168_Sub1_9378 = null;
			}
			OpenGL.glDeleteBuffersARB(3, anIntArray9438, 0);
			for (int i = 0; i < 3; i++) {
				anIntArray9438[i] = 0;
				if (aLongArray9329[i] != 0L) {
					OpenGL.glDeleteSync(aLongArray9329[i]);
					aLongArray9329[i] = 0L;
				}
			}
		} else {
			aClass168_Sub1_9378 = null;
			aClass148_9430 = null;
			aClass148_9435 = null;
		}
	}

	public final void method3230(int i, int i_441_, int i_442_, int i_443_) {
		if (anInt9253 < i)
			anInt9253 = i;
		if (anInt9361 > i_442_)
			anInt9361 = i_442_;
		if (anInt9338 < i_441_)
			anInt9338 = i_441_;
		if (anInt9263 > i_443_)
			anInt9263 = i_443_;
		OpenGL.glEnable(3089);
		method14635();
	}

	public void method3101() {
		if (aBool9405) {
			aClass148_9435 = null;
			if (aClass168_Sub1_9378 != null) {
				aClass168_Sub1_9378.method131();
				aClass168_Sub1_9378 = null;
			}
			OpenGL.glDeleteBuffersARB(3, anIntArray9438, 0);
			for (int i = 0; i < 3; i++) {
				anIntArray9438[i] = 0;
				if (aLongArray9329[i] != 0L) {
					OpenGL.glDeleteSync(aLongArray9329[i]);
					aLongArray9329[i] = 0L;
				}
			}
		} else {
			aClass168_Sub1_9378 = null;
			aClass148_9430 = null;
			aClass148_9435 = null;
		}
	}

	public final void method3236(int[] is) {
		is[0] = anInt9253;
		is[1] = anInt9338;
		is[2] = anInt9361;
		is[3] = anInt9263;
	}

	public void method3175() {
		aBool9375 = false;
	}

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

	public void method3129(int i, int i_444_, int i_445_, int i_446_, int i_447_, int i_448_) {
		float f = (float) i + 0.35F;
		float f_449_ = (float) i_444_ + 0.35F;
		float f_450_ = f + (float) i_445_ - 1.0F;
		float f_451_ = f_449_ + (float) i_446_ - 1.0F;
		method14716();
		method14687(i_448_);
		OpenGL.glColor4ub((byte) (i_447_ >> 16), (byte) (i_447_ >> 8), (byte) i_447_, (byte) (i_447_ >> 24));
		if (aBool9401)
			OpenGL.glDisable(32925);
		OpenGL.glBegin(2);
		OpenGL.glVertex2f(f, f_449_);
		OpenGL.glVertex2f(f, f_451_);
		OpenGL.glVertex2f(f_450_, f_451_);
		OpenGL.glVertex2f(f_450_, f_449_);
		OpenGL.glEnd();
		if (aBool9401)
			OpenGL.glEnable(32925);
	}

	public final void method3043(int[] is) {
		is[0] = anInt9253;
		is[1] = anInt9338;
		is[2] = anInt9361;
		is[3] = anInt9263;
	}

	final void method14711(Class126 class126) {
		Class126 class126_452_ = aClass126Array9386[anInt9285];
		if (class126_452_ != class126) {
			if (class126 != null) {
				if (class126_452_ != null) {
					if (class126.anInt1538 != class126_452_.anInt1538) {
						OpenGL.glDisable(class126_452_.anInt1538);
						OpenGL.glEnable(class126.anInt1538);
					}
				} else
					OpenGL.glEnable(class126.anInt1538);
				OpenGL.glBindTexture(class126.anInt1538, class126.anInt1537);
			} else
				OpenGL.glDisable(class126_452_.anInt1538);
			aClass126Array9386[anInt9285] = class126;
		}
		anInt9424 &= ~0x11;
	}

	public void method3238(int i, int i_453_, int i_454_, int i_455_, int i_456_, int i_457_) {
		float f = (float) i + 0.35F;
		float f_458_ = (float) i_453_ + 0.35F;
		float f_459_ = f + (float) i_454_;
		float f_460_ = f_458_ + (float) i_455_;
		method14716();
		method14687(i_457_);
		OpenGL.glColor4ub((byte) (i_456_ >> 16), (byte) (i_456_ >> 8), (byte) i_456_, (byte) (i_456_ >> 24));
		if (aBool9401)
			OpenGL.glDisable(32925);
		OpenGL.glBegin(7);
		OpenGL.glVertex2f(f, f_458_);
		OpenGL.glVertex2f(f, f_460_);
		OpenGL.glVertex2f(f_459_, f_460_);
		OpenGL.glVertex2f(f_459_, f_458_);
		OpenGL.glEnd();
		if (aBool9401)
			OpenGL.glEnable(32925);
	}

	public void method3239(int i, int i_461_, int i_462_, int i_463_, int i_464_, int i_465_) {
		float f = (float) i + 0.35F;
		float f_466_ = (float) i_461_ + 0.35F;
		float f_467_ = f + (float) i_462_;
		float f_468_ = f_466_ + (float) i_463_;
		method14716();
		method14687(i_465_);
		OpenGL.glColor4ub((byte) (i_464_ >> 16), (byte) (i_464_ >> 8), (byte) i_464_, (byte) (i_464_ >> 24));
		if (aBool9401)
			OpenGL.glDisable(32925);
		OpenGL.glBegin(7);
		OpenGL.glVertex2f(f, f_466_);
		OpenGL.glVertex2f(f, f_468_);
		OpenGL.glVertex2f(f_467_, f_468_);
		OpenGL.glVertex2f(f_467_, f_466_);
		OpenGL.glEnd();
		if (aBool9401)
			OpenGL.glEnable(32925);
	}

	void method14712(int i) {
		anInt9314 = i;
		if (anInt9314 == 1)
			OpenGL.glDisable(2884);
		else {
			OpenGL.glEnable(2884);
			if (anInt9314 == 2)
				OpenGL.glCullFace(1029);
			else if (anInt9314 == 3)
				OpenGL.glCullFace(1028);
		}
	}

	public boolean method3336() {
		return (aClass523_Sub17_Sub1_9341 != null && aClass523_Sub17_Sub1_9341.method16010());
	}

	public String method3182() {
		String string = "Caps: 2:";
		String string_469_ = ":";
		string = new StringBuilder().append(string).append(anInt9381).append(string_469_).toString();
		string = new StringBuilder().append(string).append(anInt9418).append(string_469_).toString();
		string = new StringBuilder().append(string).append(anInt9241).append(string_469_).toString();
		string = new StringBuilder().append(string).append(anInt9278).append(string_469_).toString();
		string = new StringBuilder().append(string).append(anInt9397).append(string_469_).toString();
		string = new StringBuilder().append(string).append(aFloat9420).append(string_469_).toString();
		string = new StringBuilder().append(string).append(aFloat9419).append(string_469_).toString();
		string = new StringBuilder().append(string).append(aBool9393 ? 1 : 0).append(string_469_).toString();
		string = new StringBuilder().append(string).append(aBool9391 ? 1 : 0).append(string_469_).toString();
		string = new StringBuilder().append(string).append(aBool9318 ? 1 : 0).append(string_469_).toString();
		string = new StringBuilder().append(string).append(aBool9320 ? 1 : 0).append(string_469_).toString();
		string = new StringBuilder().append(string).append(aBool9404 ? 1 : 0).append(string_469_).toString();
		string = new StringBuilder().append(string).append(aBool9401 ? 1 : 0).append(string_469_).toString();
		string = new StringBuilder().append(string).append(aBool9412 ? 1 : 0).append(string_469_).toString();
		string = new StringBuilder().append(string).append(aBool9414 ? 1 : 0).append(string_469_).toString();
		string = new StringBuilder().append(string).append(aBool9413 ? 1 : 0).append(string_469_).toString();
		string = new StringBuilder().append(string).append(aBool9315 ? 1 : 0).append(string_469_).toString();
		string = new StringBuilder().append(string).append(aBool9325 ? 1 : 0).append(string_469_).toString();
		string = new StringBuilder().append(string).append(aBool9409 ? 1 : 0).append(string_469_).toString();
		string = new StringBuilder().append(string).append(aBool9407 ? 1 : 0).append(string_469_).toString();
		string = new StringBuilder().append(string).append(aBool9408 ? 1 : 0).append(string_469_).toString();
		string = new StringBuilder().append(string).append(aBool9411 ? 1 : 0).append(string_469_).toString();
		string = new StringBuilder().append(string).append(aBool9398 ? 1 : 0).append(string_469_).toString();
		string = new StringBuilder().append(string).append(aBool9259 ? 1 : 0).append(string_469_).toString();
		string = new StringBuilder().append(string).append(aBool9400 ? 1 : 0).append(string_469_).toString();
		string = new StringBuilder().append(string).append(aBool9410 ? 1 : 0).append(string_469_).toString();
		string = new StringBuilder().append(string).append(aBool9416 ? 1 : 0).append(string_469_).toString();
		string = new StringBuilder().append(string).append(aBool9330 ? 1 : 0).toString();
		return string;
	}

	void method3221(int i, int i_470_) throws Exception_Sub4 {
		try {
			aClass168_Sub2_1939.method15400();
		} catch (Exception exception) {
			/* empty */
		}
		if (anInterface25_1923 != null)
			anInterface25_1923.method20(1843805793);
	}

	final void method14713() {
		OpenGL.glLoadIdentity();
		OpenGL.glMultMatrixf(aClass441_9316.aFloatArray4916, 0);
		if (aBool9376)
			aClass120_9429.aClass117_Sub8_1481.method14414();
		method14658();
		method14719();
	}

	public void method3245(int i, int i_471_, int i_472_, int i_473_, int i_474_, int i_475_, int i_476_, int i_477_, int i_478_) {
		if (i != i_472_ || i_471_ != i_473_) {
			method14716();
			method14687(i_475_);
			float f = (float) i_472_ - (float) i;
			float f_479_ = (float) i_473_ - (float) i_471_;
			float f_480_ = (float) (1.0 / Math.sqrt((double) (f * f + f_479_ * f_479_)));
			f *= f_480_;
			f_479_ *= f_480_;
			OpenGL.glColor4ub((byte) (i_474_ >> 16), (byte) (i_474_ >> 8), (byte) i_474_, (byte) (i_474_ >> 24));
			i_478_ %= i_477_ + i_476_;
			float f_481_ = f * (float) i_476_;
			float f_482_ = f_479_ * (float) i_476_;
			float f_483_ = 0.0F;
			float f_484_ = 0.0F;
			float f_485_ = f_481_;
			float f_486_ = f_482_;
			if (i_478_ > i_476_) {
				f_483_ = f * (float) (i_476_ + i_477_ - i_478_);
				f_484_ = f_479_ * (float) (i_476_ + i_477_ - i_478_);
			} else {
				f_485_ = f * (float) (i_476_ - i_478_);
				f_486_ = f_479_ * (float) (i_476_ - i_478_);
			}
			float f_487_ = (float) i + 0.35F + f_483_;
			float f_488_ = (float) i_471_ + 0.35F + f_484_;
			float f_489_ = f * (float) i_477_;
			float f_490_ = f_479_ * (float) i_477_;
			for (;;) {
				if (i_472_ > i) {
					if (f_487_ > (float) i_472_ + 0.35F)
						break;
					if (f_487_ + f_485_ > (float) i_472_)
						f_485_ = (float) i_472_ - f_487_;
				} else {
					if (f_487_ < (float) i_472_ + 0.35F)
						break;
					if (f_487_ + f_485_ < (float) i_472_)
						f_485_ = (float) i_472_ - f_487_;
				}
				if (i_473_ > i_471_) {
					if (f_488_ > (float) i_473_ + 0.35F)
						break;
					if (f_488_ + f_486_ > (float) i_473_)
						f_486_ = (float) i_473_ - f_488_;
				} else {
					if (f_488_ < (float) i_473_ + 0.35F)
						break;
					if (f_488_ + f_486_ < (float) i_473_)
						f_486_ = (float) i_473_ - f_488_;
				}
				OpenGL.glBegin(1);
				OpenGL.glVertex2f(f_487_, f_488_);
				OpenGL.glVertex2f(f_487_ + f_485_, f_488_ + f_486_);
				OpenGL.glEnd();
				f_487_ += f_489_ + f_485_;
				f_488_ += f_490_ + f_486_;
				f_485_ = f_481_;
				f_486_ = f_482_;
			}
		}
	}

	boolean method14714() {
		if (aClass523_Sub17_Sub2_9279 != null) {
			if (!aClass523_Sub17_Sub2_9279.method16010()) {
				if (aClass141_9276.method2306(aClass523_Sub17_Sub2_9279))
					aClass154_9382.method2532();
				else
					return false;
			}
			return true;
		}
		return false;
	}

	public void method3426(int i, int i_491_, int i_492_, int i_493_, int i_494_, int i_495_, Class145 class145, int i_496_, int i_497_) {
		Class145_Sub3 class145_sub3 = (Class145_Sub3) class145;
		Class126_Sub2_Sub1 class126_sub2_sub1 = class145_sub3.aClass126_Sub2_Sub1_9842;
		method14738();
		method14711(class145_sub3.aClass126_Sub2_Sub1_9842);
		method14687(i_495_);
		method14676(7681, 8448);
		method14677(0, 34167, 768);
		float f = (class126_sub2_sub1.aFloat11357 / (float) class126_sub2_sub1.anInt11354);
		float f_498_ = (class126_sub2_sub1.aFloat11356 / (float) class126_sub2_sub1.anInt11355);
		float f_499_ = (float) i_492_ - (float) i;
		float f_500_ = (float) i_493_ - (float) i_491_;
		float f_501_ = (float) (1.0 / Math.sqrt((double) (f_499_ * f_499_ + f_500_ * f_500_)));
		f_499_ *= f_501_;
		f_500_ *= f_501_;
		OpenGL.glColor4ub((byte) (i_494_ >> 16), (byte) (i_494_ >> 8), (byte) i_494_, (byte) (i_494_ >> 24));
		OpenGL.glBegin(1);
		OpenGL.glTexCoord2f(f * (float) (i - i_496_), f_498_ * (float) (i_491_ - i_497_));
		OpenGL.glVertex2f((float) i + 0.35F, (float) i_491_ + 0.35F);
		OpenGL.glTexCoord2f(f * (float) (i_492_ - i_496_), f_498_ * (float) (i_493_ - i_497_));
		OpenGL.glVertex2f((float) i_492_ + f_499_ + 0.35F, (float) i_493_ + f_500_ + 0.35F);
		OpenGL.glEnd();
		method14677(0, 5890, 768);
	}

	public void method3303(int i, int i_502_, int i_503_, int i_504_, int i_505_, int i_506_, Class145 class145, int i_507_, int i_508_) {
		Class145_Sub3 class145_sub3 = (Class145_Sub3) class145;
		Class126_Sub2_Sub1 class126_sub2_sub1 = class145_sub3.aClass126_Sub2_Sub1_9842;
		method14738();
		method14711(class145_sub3.aClass126_Sub2_Sub1_9842);
		method14687(i_506_);
		method14676(7681, 8448);
		method14677(0, 34167, 768);
		float f = (class126_sub2_sub1.aFloat11357 / (float) class126_sub2_sub1.anInt11354);
		float f_509_ = (class126_sub2_sub1.aFloat11356 / (float) class126_sub2_sub1.anInt11355);
		float f_510_ = (float) i_503_ - (float) i;
		float f_511_ = (float) i_504_ - (float) i_502_;
		float f_512_ = (float) (1.0 / Math.sqrt((double) (f_510_ * f_510_ + f_511_ * f_511_)));
		f_510_ *= f_512_;
		f_511_ *= f_512_;
		OpenGL.glColor4ub((byte) (i_505_ >> 16), (byte) (i_505_ >> 8), (byte) i_505_, (byte) (i_505_ >> 24));
		OpenGL.glBegin(1);
		OpenGL.glTexCoord2f(f * (float) (i - i_507_), f_509_ * (float) (i_502_ - i_508_));
		OpenGL.glVertex2f((float) i + 0.35F, (float) i_502_ + 0.35F);
		OpenGL.glTexCoord2f(f * (float) (i_503_ - i_507_), f_509_ * (float) (i_504_ - i_508_));
		OpenGL.glVertex2f((float) i_503_ + f_510_ + 0.35F, (float) i_504_ + f_511_ + 0.35F);
		OpenGL.glEnd();
		method14677(0, 5890, 768);
	}

	public void method3249(int i, int i_513_, int i_514_, int i_515_, int i_516_, int i_517_, Class145 class145, int i_518_, int i_519_) {
		Class145_Sub3 class145_sub3 = (Class145_Sub3) class145;
		Class126_Sub2_Sub1 class126_sub2_sub1 = class145_sub3.aClass126_Sub2_Sub1_9842;
		method14738();
		method14711(class145_sub3.aClass126_Sub2_Sub1_9842);
		method14687(i_517_);
		method14676(7681, 8448);
		method14677(0, 34167, 768);
		float f = (class126_sub2_sub1.aFloat11357 / (float) class126_sub2_sub1.anInt11354);
		float f_520_ = (class126_sub2_sub1.aFloat11356 / (float) class126_sub2_sub1.anInt11355);
		float f_521_ = (float) i_514_ - (float) i;
		float f_522_ = (float) i_515_ - (float) i_513_;
		float f_523_ = (float) (1.0 / Math.sqrt((double) (f_521_ * f_521_ + f_522_ * f_522_)));
		f_521_ *= f_523_;
		f_522_ *= f_523_;
		OpenGL.glColor4ub((byte) (i_516_ >> 16), (byte) (i_516_ >> 8), (byte) i_516_, (byte) (i_516_ >> 24));
		OpenGL.glBegin(1);
		OpenGL.glTexCoord2f(f * (float) (i - i_518_), f_520_ * (float) (i_513_ - i_519_));
		OpenGL.glVertex2f((float) i + 0.35F, (float) i_513_ + 0.35F);
		OpenGL.glTexCoord2f(f * (float) (i_514_ - i_518_), f_520_ * (float) (i_515_ - i_519_));
		OpenGL.glVertex2f((float) i_514_ + f_521_ + 0.35F, (float) i_515_ + f_522_ + 0.35F);
		OpenGL.glEnd();
		method14677(0, 5890, 768);
	}

	public void method3037(int i, int i_524_, int i_525_, int i_526_, int i_527_, int i_528_, int i_529_) {
		OpenGL.glLineWidth((float) i_528_);
		method3089(i, i_524_, i_525_, i_526_, i_527_, i_529_);
		OpenGL.glLineWidth(1.0F);
	}

	boolean method3229(int i, int i_530_, int i_531_, int i_532_, Class435 class435, Class430 class430) {
		Class441 class441 = aClass441_9332;
		class441.method7090(class435);
		class441.method7089(aClass441_9365);
		return class430.method6786(i, i_530_, i_531_, i_532_, class441, aFloat9274, aFloat9284, aFloat9363, aFloat9326);
	}

	boolean method3123(int i, int i_533_, int i_534_, int i_535_, Class435 class435, Class430 class430) {
		Class441 class441 = aClass441_9332;
		class441.method7090(class435);
		class441.method7089(aClass441_9365);
		return class430.method6786(i, i_533_, i_534_, i_535_, class441, aFloat9274, aFloat9284, aFloat9363, aFloat9326);
	}

	public void method3096(Class435 class435, Class180 class180, Class430 class430) {
		Class441 class441 = aClass441_9332;
		class441.method7090(class435);
		class441.method7089(aClass441_9365);
		class180.method3531(class430, aClass441_9292, class441, aFloat9274, aFloat9284, aFloat9363, aFloat9326);
	}

	public void method3254(Class435 class435, Class180 class180, Class430 class430) {
		Class441 class441 = aClass441_9332;
		class441.method7090(class435);
		class441.method7089(aClass441_9365);
		class180.method3531(class430, aClass441_9292, class441, aFloat9274, aFloat9284, aFloat9363, aFloat9326);
	}

	public void method3255(Class435 class435, Class180 class180, Class430 class430) {
		Class441 class441 = aClass441_9332;
		class441.method7090(class435);
		class441.method7089(aClass441_9365);
		class180.method3531(class430, aClass441_9292, class441, aFloat9274, aFloat9284, aFloat9363, aFloat9326);
	}

	public Class523_Sub8 method3078(int i) {
		Class523_Sub8_Sub2 class523_sub8_sub2 = new Class523_Sub8_Sub2(i);
		aClass708_9290.method14236(class523_sub8_sub2, -895728017);
		return class523_sub8_sub2;
	}

	public Class523_Sub8 method3257(int i) {
		Class523_Sub8_Sub2 class523_sub8_sub2 = new Class523_Sub8_Sub2(i);
		aClass708_9290.method14236(class523_sub8_sub2, -598521215);
		return class523_sub8_sub2;
	}

	final void method14715() {
		if (aBool9312 && aBool9339)
			OpenGL.glEnable(2929);
		else
			OpenGL.glDisable(2929);
	}

	public Class523_Sub8 method3259(int i) {
		Class523_Sub8_Sub2 class523_sub8_sub2 = new Class523_Sub8_Sub2(i);
		aClass708_9290.method14236(class523_sub8_sub2, 367372437);
		return class523_sub8_sub2;
	}

	public Class148 method3278(int i, int i_536_, boolean bool, boolean bool_537_) {
		return new Class148_Sub2(this, i, i_536_, bool);
	}

	public Class148 method3261(int i, int i_538_, boolean bool, boolean bool_539_) {
		return new Class148_Sub2(this, i, i_538_, bool);
	}

	public Class148 method3338(int i, int i_540_, boolean bool, boolean bool_541_) {
		return new Class148_Sub2(this, i, i_540_, bool);
	}

	final void method14716() {
		if (anInt9424 != 1) {
			method14642();
			method14788(false);
			method14682(false);
			method14684(false);
			method14620(false);
			method14711(null);
			method14670(-2);
			method14785(1);
			method14625((byte) 0);
			anInt9424 = 1;
		}
	}

	public Class148 method3264(int[] is, int i, int i_542_, int i_543_, int i_544_, boolean bool) {
		return new Class148_Sub2(this, i_543_, i_544_, is, i, i_542_);
	}

	public Class148 method3265(Class175 class175, boolean bool) {
		int[] is = class175.method2959(false);
		Class148 class148 = method3103(is, 0, class175.method2944(), class175.method2944(), class175.method2945(), -1840145960);
		class148.method2426(class175.method2946(), class175.method2948(), class175.method2984(), class175.method2949());
		return class148;
	}

	public boolean method3350() {
		return true;
	}

	public void method3142() {
		if (aBool9416 && aClass168_1938 != null) {
			int i = anInt9253;
			int i_545_ = anInt9361;
			int i_546_ = anInt9338;
			int i_547_ = anInt9263;
			method3071();
			int i_548_ = anInt9344;
			int i_549_ = anInt9345;
			int i_550_ = anInt9346;
			int i_551_ = anInt9360;
			method3067();
			OpenGL.glReadBuffer(1028);
			OpenGL.glDrawBuffer(1029);
			method14641();
			method14788(false);
			method14682(false);
			method14684(false);
			method14620(false);
			method14711(null);
			method14670(-2);
			method14785(1);
			method14687(0);
			OpenGL.glMatrixMode(5889);
			OpenGL.glLoadIdentity();
			OpenGL.glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
			OpenGL.glMatrixMode(5888);
			OpenGL.glLoadIdentity();
			OpenGL.glRasterPos2i(0, 0);
			OpenGL.glCopyPixels(0, 0, aClass168_1938.method2875(), aClass168_1938.method2874(), 6144);
			OpenGL.glFlush();
			OpenGL.glReadBuffer(1029);
			OpenGL.glDrawBuffer(1029);
			method3378(i, i_546_, i_545_, i_547_);
			method3208(i_548_, i_549_, i_550_, i_551_);
		}
	}

	public Class145 method3268(int i, int i_552_, int[] is, int[] is_553_) {
		return Class145_Sub3.method15485(this, i, i_552_, is, is_553_);
	}

	public void method3269(int i, Class145 class145, int i_554_, int i_555_) {
		Class145_Sub3 class145_sub3 = (Class145_Sub3) class145;
		Class126_Sub2_Sub1 class126_sub2_sub1 = class145_sub3.aClass126_Sub2_Sub1_9842;
		method14738();
		method14711(class145_sub3.aClass126_Sub2_Sub1_9842);
		method14687(1);
		method14676(7681, 8448);
		method14677(0, 34167, 768);
		float f = (class126_sub2_sub1.aFloat11357 / (float) class126_sub2_sub1.anInt11354);
		float f_556_ = (class126_sub2_sub1.aFloat11356 / (float) class126_sub2_sub1.anInt11355);
		OpenGL.glColor4ub((byte) (i >> 16), (byte) (i >> 8), (byte) i, (byte) (i >> 24));
		OpenGL.glBegin(7);
		OpenGL.glTexCoord2f(f * (float) (anInt9253 - i_554_), f_556_ * (float) (anInt9338 - i_555_));
		OpenGL.glVertex2i(anInt9253, anInt9338);
		OpenGL.glTexCoord2f(f * (float) (anInt9253 - i_554_), f_556_ * (float) (anInt9263 - i_555_));
		OpenGL.glVertex2i(anInt9253, anInt9263);
		OpenGL.glTexCoord2f(f * (float) (anInt9361 - i_554_), f_556_ * (float) (anInt9263 - i_555_));
		OpenGL.glVertex2i(anInt9361, anInt9263);
		OpenGL.glTexCoord2f(f * (float) (anInt9361 - i_554_), f_556_ * (float) (anInt9338 - i_555_));
		OpenGL.glVertex2i(anInt9361, anInt9338);
		OpenGL.glEnd();
		method14677(0, 5890, 768);
	}

	public void method3270(int i, Class145 class145, int i_557_, int i_558_) {
		Class145_Sub3 class145_sub3 = (Class145_Sub3) class145;
		Class126_Sub2_Sub1 class126_sub2_sub1 = class145_sub3.aClass126_Sub2_Sub1_9842;
		method14738();
		method14711(class145_sub3.aClass126_Sub2_Sub1_9842);
		method14687(1);
		method14676(7681, 8448);
		method14677(0, 34167, 768);
		float f = (class126_sub2_sub1.aFloat11357 / (float) class126_sub2_sub1.anInt11354);
		float f_559_ = (class126_sub2_sub1.aFloat11356 / (float) class126_sub2_sub1.anInt11355);
		OpenGL.glColor4ub((byte) (i >> 16), (byte) (i >> 8), (byte) i, (byte) (i >> 24));
		OpenGL.glBegin(7);
		OpenGL.glTexCoord2f(f * (float) (anInt9253 - i_557_), f_559_ * (float) (anInt9338 - i_558_));
		OpenGL.glVertex2i(anInt9253, anInt9338);
		OpenGL.glTexCoord2f(f * (float) (anInt9253 - i_557_), f_559_ * (float) (anInt9263 - i_558_));
		OpenGL.glVertex2i(anInt9253, anInt9263);
		OpenGL.glTexCoord2f(f * (float) (anInt9361 - i_557_), f_559_ * (float) (anInt9263 - i_558_));
		OpenGL.glVertex2i(anInt9361, anInt9263);
		OpenGL.glTexCoord2f(f * (float) (anInt9361 - i_557_), f_559_ * (float) (anInt9338 - i_558_));
		OpenGL.glVertex2i(anInt9361, anInt9338);
		OpenGL.glEnd();
		method14677(0, 5890, 768);
	}

	final Interface15 method14717(int i, byte[] is, int i_560_, boolean bool) {
		if (aBool9320 && (!bool || aBool9404))
			return new Class135_Sub1(this, i, is, i_560_, bool);
		return new Class130_Sub2(this, i, is, i_560_);
	}

	public boolean method3171() {
		return true;
	}

	void method3190(int i, int i_561_, int i_562_, int i_563_, int i_564_) {
		method14716();
		method14687(i_564_);
		float f = (float) i + 0.35F;
		float f_565_ = (float) i_561_ + 0.35F;
		OpenGL.glColor4ub((byte) (i_563_ >> 16), (byte) (i_563_ >> 8), (byte) i_563_, (byte) (i_563_ >> 24));
		OpenGL.glBegin(1);
		OpenGL.glVertex2f(f, f_565_);
		OpenGL.glVertex2f(f, f_565_ + (float) i_562_);
		OpenGL.glEnd();
	}

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

	static int method14718(Class158 class158, Class170 class170) {
		if (class170 == Class170.aClass170_1822) {
			switch (class158.anInt1742 * 178485697) {
			case 6:
				return 6406;
			case 7:
				return 6410;
			case 5:
				return 6409;
			case 8:
				return 6408;
			case 4:
				return 6407;
			default:
				throw new IllegalArgumentException();
			}
		}
		if (class170 == Class170.aClass170_1826) {
			switch (class158.anInt1742 * 178485697) {
			case 8:
				return 32859;
			case 9:
				return 33189;
			case 6:
				return 32830;
			case 5:
				return 32834;
			case 4:
				return 32852;
			default:
				throw new IllegalArgumentException();
			case 7:
				return 36219;
			}
		}
		if (class170 == Class170.aClass170_1827) {
			switch (class158.anInt1742 * 178485697) {
			case 9:
				return 33190;
			default:
				throw new IllegalArgumentException();
			}
		}
		if (class170 == Class170.aClass170_1832) {
			switch (class158.anInt1742 * 178485697) {
			case 7:
				return 34847;
			default:
				throw new IllegalArgumentException();
			case 6:
				return 34844;
			case 5:
				return 34846;
			case 4:
				return 34843;
			case 8:
				return 34842;
			}
		}
		if (class170 == Class170.aClass170_1825) {
			switch (class158.anInt1742 * 178485697) {
			case 5:
				return 34840;
			case 8:
				return 34836;
			case 4:
				return 34837;
			case 6:
				return 34838;
			default:
				throw new IllegalArgumentException();
			case 7:
				return 34841;
			}
		}
		throw new IllegalArgumentException();
	}

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

	public Class167 method3166(Class179 class179, int i, int i_566_, int i_567_, int i_568_) {
		return new Class167_Sub3(this, class179, i, i_567_, i_568_, i_566_);
	}

	public Class167 method3246(Class179 class179, int i, int i_569_, int i_570_, int i_571_) {
		return new Class167_Sub3(this, class179, i, i_570_, i_571_, i_569_);
	}

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

	public Interface23 method3049(int i, int i_573_, int i_574_) {
		return new Class523_Sub27_Sub3(this, Class158.aClass158_1750, Class170.aClass170_1827, i, i_573_, i_574_);
	}

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

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

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

	public Class142 method3081(int i, int i_578_, int[][] is, int[][] is_579_, int i_580_, int i_581_, int i_582_) {
		return new Class142_Sub2(this, i_581_, i_582_, i, i_578_, is, is_579_, i_580_);
	}

	public Class142 method3367(int i, int i_583_, int[][] is, int[][] is_584_, int i_585_, int i_586_, int i_587_) {
		return new Class142_Sub2(this, i_586_, i_587_, i, i_583_, is, is_584_, i_585_);
	}

	public Class142 method3312(int i, int i_588_, int[][] is, int[][] is_589_, int i_590_, int i_591_, int i_592_) {
		return new Class142_Sub2(this, i_591_, i_592_, i, i_588_, is, is_589_, i_590_);
	}

	public Class441 method3446() {
		return aClass441_9281;
	}

	public boolean method3017() {
		return (aClass523_Sub17_Sub3_9417 != null && (anInt9381 <= 1 || aBool9402));
	}

	public Class441 method3052() {
		return aClass441_9281;
	}

	public Class435 method3464() {
		return aClass435_9283;
	}

	public Class435 method3291() {
		return aClass435_9283;
	}

	void method14719() {
		int i;
		for (i = 0; i < anInt9237; i++) {
			Class523_Sub20 class523_sub20 = aClass523_Sub20Array9395[i];
			int i_593_ = 16386 + i;
			aFloatArray9428[0] = (float) class523_sub20.method16062(2131811589);
			aFloatArray9428[1] = (float) class523_sub20.method16091(-220924932);
			aFloatArray9428[2] = (float) class523_sub20.method16065(1895698201);
			aFloatArray9428[3] = 1.0F;
			OpenGL.glLightfv(i_593_, 4611, aFloatArray9428, 0);
			int i_594_ = class523_sub20.method16067(856453637);
			float f = class523_sub20.method16068((byte) 0) / 255.0F;
			aFloatArray9428[0] = (float) (i_594_ >> 16 & 0xff) * f;
			aFloatArray9428[1] = (float) (i_594_ >> 8 & 0xff) * f;
			aFloatArray9428[2] = (float) (i_594_ & 0xff) * f;
			OpenGL.glLightfv(i_593_, 4609, aFloatArray9428, 0);
			OpenGL.glLightf(i_593_, 4617, (1.0F / (float) (class523_sub20.method16066(-1879460461) * class523_sub20.method16066(-1879460461))));
			OpenGL.glEnable(i_593_);
		}
		for (/**/; i < anInt9352; i++)
			OpenGL.glDisable(16386 + i);
		anInt9352 = anInt9237;
	}

	public int method3292() {
		return 4;
	}

	public void method3295(int i, Class523_Sub20[] class523_sub20s) {
		for (int i_595_ = 0; i_595_ < i; i_595_++)
			aClass523_Sub20Array9395[i_595_] = class523_sub20s[i_595_];
		anInt9237 = i;
		if (anInt9335 != 1)
			method14719();
	}

	public boolean method3029() {
		return (aClass523_Sub17_Sub2_9279 != null && aClass523_Sub17_Sub2_9279.method16010());
	}

	final void method14720(byte i) {
		if (aByte9311 != i) {
			aByte9311 = i;
			if (i == 0) {
				method14683(2);
				method14687(1);
			} else {
				method14683(3);
				method14687(3);
			}
			method14690();
		}
	}

	public final void method3247(Class435 class435) {
		aClass435_9233.method6803(class435);
		aClass441_9316.method7090(aClass435_9233);
		aClass435_9331.method6803(class435);
		aClass435_9331.method6857();
		aClass441_9317.method7090(aClass435_9331);
		method14789();
		if (anInt9335 != 1)
			method14713();
	}

	public boolean method3084() {
		return true;
	}

	public Class435 method3064() {
		return new Class435(aClass435_9233);
	}

	public boolean method3139() {
		return (aClass523_Sub17_Sub1_9341 != null && aClass523_Sub17_Sub1_9341.method16010());
	}

	public Class435 method3302() {
		return new Class435(aClass435_9233);
	}

	void method3073() {
		for (Class523 class523 = aClass708_9290.method14240(1904978576); class523 != null; class523 = aClass708_9290.method14244((byte) 3))
			((Class523_Sub8_Sub2) class523).method17875();
		if (aClass141_9276 != null)
			aClass141_9276.method2314();
		if (aBool9288) {
			Class305.method5552(false, true, (byte) 0);
			aBool9288 = false;
		}
	}

	public final void method3304(Class441 class441) {
		aClass441_9292.method7086(class441);
		method14789();
		method14622();
	}

	public final boolean method3329() {
		if (aClass141_9276 == null)
			return false;
		return aClass141_9276.method2290();
	}

	public void method3212(float f, float f_596_, float f_597_, float[] fs) {
		float f_598_ = (aClass441_9365.aFloatArray4916[14] + aClass441_9365.aFloatArray4916[2] * f + aClass441_9365.aFloatArray4916[6] * f_596_ + aClass441_9365.aFloatArray4916[10] * f_597_);
		float f_599_ = (aClass441_9365.aFloatArray4916[15] + aClass441_9365.aFloatArray4916[3] * f + aClass441_9365.aFloatArray4916[7] * f_596_ + aClass441_9365.aFloatArray4916[11] * f_597_);
		if (f_598_ < -f_599_ || f_598_ > f_599_) {
			float[] fs_600_ = fs;
			float[] fs_601_ = fs;
			fs[2] = Float.NaN;
			fs_601_[1] = Float.NaN;
			fs_600_[0] = Float.NaN;
		} else {
			float f_602_ = (aClass441_9365.aFloatArray4916[12] + aClass441_9365.aFloatArray4916[0] * f + aClass441_9365.aFloatArray4916[4] * f_596_ + aClass441_9365.aFloatArray4916[8] * f_597_);
			if (f_602_ < -f_599_ || f_602_ > f_599_) {
				float[] fs_603_ = fs;
				float[] fs_604_ = fs;
				fs[2] = Float.NaN;
				fs_604_[1] = Float.NaN;
				fs_603_[0] = Float.NaN;
			} else {
				float f_605_ = (aClass441_9365.aFloatArray4916[13] + aClass441_9365.aFloatArray4916[1] * f + aClass441_9365.aFloatArray4916[5] * f_596_ + aClass441_9365.aFloatArray4916[9] * f_597_);
				if (f_605_ < -f_599_ || f_605_ > f_599_) {
					float[] fs_606_ = fs;
					float[] fs_607_ = fs;
					fs[2] = Float.NaN;
					fs_607_[1] = Float.NaN;
					fs_606_[0] = Float.NaN;
				} else {
					float f_608_ = (aClass441_9316.aFloatArray4916[14] + aClass441_9316.aFloatArray4916[2] * f + aClass441_9316.aFloatArray4916[6] * f_596_ + aClass441_9316.aFloatArray4916[10] * f_597_);
					fs[0] = aFloat9274 + aFloat9363 * f_602_ / f_599_;
					fs[1] = aFloat9284 + aFloat9326 * f_605_ / f_599_;
					fs[2] = f_608_;
				}
			}
		}
	}

	final synchronized void method14721(int i) {
		Class523 class523 = new Class523();
		class523.aLong7065 = (long) i * 2947252533757437993L;
		aClass708_9301.method14236(class523, -1312715692);
	}

	public final Class441 method3308() {
		return new Class441(aClass441_9292);
	}

	public boolean method3177() {
		return aBool9401 && (!method3146() || aBool9402);
	}

	public final void method3310(float f) {
		if (aFloat9359 != f) {
			aFloat9359 = f;
			method14647();
		}
	}

	public final void method3226(float f) {
		if (aFloat9359 != f) {
			aFloat9359 = f;
			method14647();
		}
	}

	final Interface18 method14722(int i, byte[] is, int i_609_, boolean bool) {
		if (aBool9320 && (!bool || aBool9404))
			return new Class135_Sub2(this, i, is, i_609_, bool);
		return new Class130_Sub1(this, i, is, i_609_);
	}

	public final void method3313(int i, float f, float f_610_, float f_611_, float f_612_, float f_613_) {
		boolean bool = anInt9355 != i;
		if (bool || aFloat9343 != f || aFloat9250 != f_610_) {
			anInt9355 = i;
			aFloat9343 = f;
			aFloat9250 = f_610_;
			if (bool) {
				aFloat9356 = (float) (anInt9355 & 0xff0000) / 1.671168E7F;
				aFloat9357 = (float) (anInt9355 & 0xff00) / 65280.0F;
				aFloat9268 = (float) (anInt9355 & 0xff) / 255.0F;
				method14647();
			}
			method14765();
		}
		if (aFloatArray9439[0] != f_611_ || aFloatArray9439[1] != f_612_ || aFloatArray9439[2] != f_613_) {
			aFloatArray9439[0] = f_611_;
			aFloatArray9439[1] = f_612_;
			aFloatArray9439[2] = f_613_;
			aFloatArray9396[0] = -f_611_;
			aFloatArray9396[1] = -f_612_;
			aFloatArray9396[2] = -f_613_;
			float f_614_ = (float) (1.0 / Math.sqrt((double) (f_611_ * f_611_ + f_612_ * f_612_ + f_613_ * f_613_)));
			aFloatArray9277[0] = f_611_ * f_614_;
			aFloatArray9277[1] = f_612_ * f_614_;
			aFloatArray9277[2] = f_613_ * f_614_;
			aFloatArray9354[0] = -aFloatArray9277[0];
			aFloatArray9354[1] = -aFloatArray9277[1];
			aFloatArray9354[2] = -aFloatArray9277[2];
			method14658();
			anInt9372 = (int) (f_611_ * 256.0F / f_612_);
			anInt9366 = (int) (f_613_ * 256.0F / f_612_);
		}
	}

	public Class435 method3201() {
		return new Class435(aClass435_9233);
	}

	public final void method3315(int i, float f, float f_615_, float f_616_, float f_617_, float f_618_) {
		boolean bool = anInt9355 != i;
		if (bool || aFloat9343 != f || aFloat9250 != f_615_) {
			anInt9355 = i;
			aFloat9343 = f;
			aFloat9250 = f_615_;
			if (bool) {
				aFloat9356 = (float) (anInt9355 & 0xff0000) / 1.671168E7F;
				aFloat9357 = (float) (anInt9355 & 0xff00) / 65280.0F;
				aFloat9268 = (float) (anInt9355 & 0xff) / 255.0F;
				method14647();
			}
			method14765();
		}
		if (aFloatArray9439[0] != f_616_ || aFloatArray9439[1] != f_617_ || aFloatArray9439[2] != f_618_) {
			aFloatArray9439[0] = f_616_;
			aFloatArray9439[1] = f_617_;
			aFloatArray9439[2] = f_618_;
			aFloatArray9396[0] = -f_616_;
			aFloatArray9396[1] = -f_617_;
			aFloatArray9396[2] = -f_618_;
			float f_619_ = (float) (1.0 / Math.sqrt((double) (f_616_ * f_616_ + f_617_ * f_617_ + f_618_ * f_618_)));
			aFloatArray9277[0] = f_616_ * f_619_;
			aFloatArray9277[1] = f_617_ * f_619_;
			aFloatArray9277[2] = f_618_ * f_619_;
			aFloatArray9354[0] = -aFloatArray9277[0];
			aFloatArray9354[1] = -aFloatArray9277[1];
			aFloatArray9354[2] = -aFloatArray9277[2];
			method14658();
			anInt9372 = (int) (f_616_ * 256.0F / f_617_);
			anInt9366 = (int) (f_618_ * 256.0F / f_617_);
		}
	}

	public boolean method3181() {
		return false;
	}

	public final void method3232(int i, int i_620_, int i_621_) {
		if (anInt9368 != i || anInt9369 != i_620_ || anInt9261 != i_621_) {
			anInt9368 = i;
			anInt9369 = i_620_;
			anInt9261 = i_621_;
			method14651();
			method14650();
		}
	}

	final void method14723() {
		if (aBool9310)
			OpenGL.glEnable(3008);
		else
			OpenGL.glDisable(3008);
		OpenGL.glAlphaFunc(516, (float) (aByte9311 & 0xff) / 255.0F);
		if (anInt9381 > 0) {
			if (aByte9311 == 0)
				OpenGL.glDisable(32926);
			else
				OpenGL.glEnable(32926);
		}
	}

	public Class185 method3319(Class185 class185, Class185 class185_622_, float f, Class185 class185_623_) {
		if (class185 != null && class185_622_ != null && aBool9407 && aBool9398) {
			Class185_Sub1_Sub1 class185_sub1_sub1 = null;
			Class185_Sub1 class185_sub1 = (Class185_Sub1) class185;
			Class185_Sub1 class185_sub1_624_ = (Class185_Sub1) class185_622_;
			Class126_Sub1 class126_sub1 = class185_sub1.method15349();
			Class126_Sub1 class126_sub1_625_ = class185_sub1_624_.method15349();
			if (class126_sub1 != null && class126_sub1_625_ != null) {
				int i = (class126_sub1.anInt8888 > class126_sub1_625_.anInt8888 ? class126_sub1.anInt8888 : class126_sub1_625_.anInt8888);
				if (class185 != class185_623_ && class185_622_ != class185_623_ && class185_623_ instanceof Class185_Sub1_Sub1) {
					Class185_Sub1_Sub1 class185_sub1_sub1_626_ = (Class185_Sub1_Sub1) class185_623_;
					if (class185_sub1_sub1_626_.method17761() == i)
						class185_sub1_sub1 = class185_sub1_sub1_626_;
				}
				if (class185_sub1_sub1 == null)
					class185_sub1_sub1 = new Class185_Sub1_Sub1(this, i);
				if (class185_sub1_sub1.method17763(class126_sub1, class126_sub1_625_, f))
					return class185_sub1_sub1;
			}
		}
		return f < 0.5F ? class185 : class185_622_;
	}

	public Class185 method3305(Class185 class185, Class185 class185_627_, float f, Class185 class185_628_) {
		if (class185 != null && class185_627_ != null && aBool9407 && aBool9398) {
			Class185_Sub1_Sub1 class185_sub1_sub1 = null;
			Class185_Sub1 class185_sub1 = (Class185_Sub1) class185;
			Class185_Sub1 class185_sub1_629_ = (Class185_Sub1) class185_627_;
			Class126_Sub1 class126_sub1 = class185_sub1.method15349();
			Class126_Sub1 class126_sub1_630_ = class185_sub1_629_.method15349();
			if (class126_sub1 != null && class126_sub1_630_ != null) {
				int i = (class126_sub1.anInt8888 > class126_sub1_630_.anInt8888 ? class126_sub1.anInt8888 : class126_sub1_630_.anInt8888);
				if (class185 != class185_628_ && class185_627_ != class185_628_ && class185_628_ instanceof Class185_Sub1_Sub1) {
					Class185_Sub1_Sub1 class185_sub1_sub1_631_ = (Class185_Sub1_Sub1) class185_628_;
					if (class185_sub1_sub1_631_.method17761() == i)
						class185_sub1_sub1 = class185_sub1_sub1_631_;
				}
				if (class185_sub1_sub1 == null)
					class185_sub1_sub1 = new Class185_Sub1_Sub1(this, i);
				if (class185_sub1_sub1.method17763(class126_sub1, class126_sub1_630_, f))
					return class185_sub1_sub1;
			}
		}
		return f < 0.5F ? class185 : class185_627_;
	}

	public final void method3321(Class185 class185) {
		aClass185_Sub1_9388 = (Class185_Sub1) class185;
	}

	final void method14724() {
		OpenGL.glPopMatrix();
	}

	public void method3191(boolean bool) {
		/* empty */
	}

	public final void method3151(int i, int i_632_, int i_633_, int i_634_) {
		if (aClass141_9276 != null)
			aClass141_9276.method2293(i, i_632_, i_633_, i_634_);
	}

	public final void method3325(int i, int i_635_, int i_636_, int i_637_) {
		if (aClass141_9276 != null)
			aClass141_9276.method2293(i, i_635_, i_636_, i_637_);
	}

	final void method14725(boolean bool) {
		if (bool != aBool9328) {
			aBool9328 = bool;
			method14623();
		}
	}

	public final void method3327(int i, int i_638_) {
		if (aClass141_9276 != null)
			aClass141_9276.method2294(i, i_638_);
	}

	public final void method3383(Class185 class185) {
		aClass185_Sub1_9388 = (Class185_Sub1) class185;
	}

	public void method3384(int i, int i_639_, int i_640_, int i_641_, int i_642_, int i_643_) {
		method14716();
		method14687(i_643_);
		float f = (float) i_640_ - (float) i;
		float f_644_ = (float) i_641_ - (float) i_639_;
		if (f == 0.0F && f_644_ == 0.0F)
			f = 1.0F;
		else {
			float f_645_ = (float) (1.0 / Math.sqrt((double) (f * f + f_644_ * f_644_)));
			f *= f_645_;
			f_644_ *= f_645_;
		}
		OpenGL.glColor4ub((byte) (i_642_ >> 16), (byte) (i_642_ >> 8), (byte) i_642_, (byte) (i_642_ >> 24));
		OpenGL.glBegin(1);
		OpenGL.glVertex2f((float) i + 0.35F, (float) i_639_ + 0.35F);
		OpenGL.glVertex2f((float) i_640_ + f + 0.35F, (float) i_641_ + f_644_ + 0.35F);
		OpenGL.glEnd();
	}

	public final boolean method3457() {
		if (aClass141_9276 == null)
			return false;
		return aClass141_9276.method2290();
	}

	public final boolean method3331() {
		if (aClass141_9276 == null)
			return false;
		return aClass141_9276.method2290();
	}

	public final boolean method3332() {
		if (aClass141_9276 == null)
			return false;
		return aClass141_9276.method2290();
	}

	public boolean method3333() {
		return (aClass523_Sub17_Sub1_9341 != null && aClass523_Sub17_Sub1_9341.method16010());
	}

	public boolean method3262() {
		return (aClass523_Sub17_Sub1_9341 != null && aClass523_Sub17_Sub1_9341.method16010());
	}

	void method3087(int i, int i_646_, int i_647_, int i_648_, int i_649_) {
		method14716();
		method14687(i_649_);
		float f = (float) i + 0.35F;
		float f_650_ = (float) i_646_ + 0.35F;
		OpenGL.glColor4ub((byte) (i_648_ >> 16), (byte) (i_648_ >> 8), (byte) i_648_, (byte) (i_648_ >> 24));
		OpenGL.glBegin(1);
		OpenGL.glVertex2f(f, f_650_);
		OpenGL.glVertex2f(f + (float) i_647_, f_650_);
		OpenGL.glEnd();
	}

	public final boolean method3214() {
		return (aClass523_Sub17_Sub3_9417 != null && aClass523_Sub17_Sub3_9417.method16010());
	}

	public void method3337(float f, float f_651_, float f_652_, float f_653_, float f_654_) {
		Class523_Sub17_Sub1.aFloat11406 = f;
		Class523_Sub17_Sub1.aFloat11402 = f_651_;
		Class523_Sub17_Sub1.aFloat11403 = f_652_;
		Class523_Sub17_Sub1.aFloat11401 = f_653_;
		Class523_Sub17_Sub1.aFloat11405 = f_654_;
	}

	public void method3400(float f, float f_655_, float f_656_, float f_657_, float f_658_) {
		Class523_Sub17_Sub1.aFloat11406 = f;
		Class523_Sub17_Sub1.aFloat11402 = f_655_;
		Class523_Sub17_Sub1.aFloat11403 = f_656_;
		Class523_Sub17_Sub1.aFloat11401 = f_657_;
		Class523_Sub17_Sub1.aFloat11405 = f_658_;
	}

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

	public Class150 method3369() {
		int i = -1;
		if (aString9350.indexOf("nvidia") != -1)
			i = 4318;
		else if (aString9350.indexOf("intel") != -1)
			i = 32902;
		else if (aString9350.indexOf("ati") != -1)
			i = 4098;
		return new Class150(i, "OpenGL", anInt9392, aString9390, 0L, false);
	}

	public boolean method3253() {
		return (aClass523_Sub17_Sub2_9279 != null && aClass523_Sub17_Sub2_9279.method16010());
	}

	public boolean method3317() {
		return (aClass523_Sub17_Sub2_9279 != null && aClass523_Sub17_Sub2_9279.method16010());
	}

	public boolean method3343() {
		return (aClass523_Sub17_Sub2_9279 != null && aClass523_Sub17_Sub2_9279.method16010());
	}

	public final boolean method3213() {
		if (aClass523_Sub17_Sub3_9417 != null) {
			if (!aClass523_Sub17_Sub3_9417.method16010()) {
				if (aClass141_9276.method2306(aClass523_Sub17_Sub3_9417))
					aClass154_9382.method2532();
				else
					return false;
			}
			return true;
		}
		return false;
	}

	public final boolean method3345() {
		if (aClass523_Sub17_Sub3_9417 != null) {
			if (!aClass523_Sub17_Sub3_9417.method16010()) {
				if (aClass141_9276.method2306(aClass523_Sub17_Sub3_9417))
					aClass154_9382.method2532();
				else
					return false;
			}
			return true;
		}
		return false;
	}

	public final void method3346() {
		if (aClass523_Sub17_Sub3_9417 != null && aClass523_Sub17_Sub3_9417.method16010()) {
			aClass141_9276.method2305(aClass523_Sub17_Sub3_9417);
			aClass154_9382.method2532();
		}
	}

	public final void method3347() {
		if (aClass523_Sub17_Sub3_9417 != null && aClass523_Sub17_Sub3_9417.method16010()) {
			aClass141_9276.method2305(aClass523_Sub17_Sub3_9417);
			aClass154_9382.method2532();
		}
	}

	public final boolean method3348() {
		return (aClass523_Sub17_Sub3_9417 != null && aClass523_Sub17_Sub3_9417.method16010());
	}

	public void method3472(int i, int i_659_) {
		int i_660_ = 0;
		if ((i & 0x1) != 0) {
			OpenGL.glClearColor((float) (i_659_ & 0xff0000) / 1.671168E7F, (float) (i_659_ & 0xff00) / 65280.0F, (float) (i_659_ & 0xff) / 255.0F, (float) (i_659_ >>> 24) / 255.0F);
			i_660_ = 16384;
		}
		if ((i & 0x2) != 0) {
			method14620(true);
			i_660_ |= 0x100;
		}
		if ((i & 0x4) != 0)
			i_660_ |= 0x400;
		OpenGL.glClear(i_660_);
	}

	public final boolean method3106() {
		return (aClass523_Sub17_Sub3_9417 != null && aClass523_Sub17_Sub3_9417.method16010());
	}

	public void method3271(int i, Class145 class145, int i_661_, int i_662_) {
		Class145_Sub3 class145_sub3 = (Class145_Sub3) class145;
		Class126_Sub2_Sub1 class126_sub2_sub1 = class145_sub3.aClass126_Sub2_Sub1_9842;
		method14738();
		method14711(class145_sub3.aClass126_Sub2_Sub1_9842);
		method14687(1);
		method14676(7681, 8448);
		method14677(0, 34167, 768);
		float f = (class126_sub2_sub1.aFloat11357 / (float) class126_sub2_sub1.anInt11354);
		float f_663_ = (class126_sub2_sub1.aFloat11356 / (float) class126_sub2_sub1.anInt11355);
		OpenGL.glColor4ub((byte) (i >> 16), (byte) (i >> 8), (byte) i, (byte) (i >> 24));
		OpenGL.glBegin(7);
		OpenGL.glTexCoord2f(f * (float) (anInt9253 - i_661_), f_663_ * (float) (anInt9338 - i_662_));
		OpenGL.glVertex2i(anInt9253, anInt9338);
		OpenGL.glTexCoord2f(f * (float) (anInt9253 - i_661_), f_663_ * (float) (anInt9263 - i_662_));
		OpenGL.glVertex2i(anInt9253, anInt9263);
		OpenGL.glTexCoord2f(f * (float) (anInt9361 - i_661_), f_663_ * (float) (anInt9263 - i_662_));
		OpenGL.glVertex2i(anInt9361, anInt9263);
		OpenGL.glTexCoord2f(f * (float) (anInt9361 - i_661_), f_663_ * (float) (anInt9338 - i_662_));
		OpenGL.glVertex2i(anInt9361, anInt9338);
		OpenGL.glEnd();
		method14677(0, 5890, 768);
	}

	public void method3352(int i, Class163 class163) {
		anInt9228 = i;
		aClass163_9377 = class163;
		aBool9375 = true;
	}

	public void method3250(int i, Class163 class163) {
		if (!aBool9375)
			throw new RuntimeException("");
		anInt9228 = i;
		aClass163_9377 = class163;
		if (aBool9376) {
			aClass120_9429.aClass117_Sub8_1481.method14414();
			aClass120_9429.aClass117_Sub8_1481.method14415();
		}
	}

	public final void method3135(Class185 class185) {
		aClass185_Sub1_9388 = (Class185_Sub1) class185;
	}

	public void method3355() {
		aBool9375 = false;
	}

	public final void method3062(int i, int i_664_) {
		if (aClass141_9276 != null)
			aClass141_9276.method2294(i, i_664_);
	}

	public void method3357(int i, int i_665_, float f, int i_666_, int i_667_, float f_668_, int i_669_, int i_670_, float f_671_, int i_672_, int i_673_, int i_674_, int i_675_) {
		method14716();
		method14687(i_675_);
		OpenGL.glBegin(4);
		OpenGL.glColor4ub((byte) (i_672_ >> 16), (byte) (i_672_ >> 8), (byte) i_672_, (byte) (i_672_ >> 24));
		OpenGL.glVertex3f((float) i + 0.35F, (float) i_665_ + 0.35F, f);
		OpenGL.glColor4ub((byte) (i_673_ >> 16), (byte) (i_673_ >> 8), (byte) i_673_, (byte) (i_673_ >> 24));
		OpenGL.glVertex3f((float) i_666_ + 0.35F, (float) i_667_ + 0.35F, f_668_);
		OpenGL.glColor4ub((byte) (i_674_ >> 16), (byte) (i_674_ >> 8), (byte) i_674_, (byte) (i_674_ >> 24));
		OpenGL.glVertex3f((float) i_669_ + 0.35F, (float) i_670_ + 0.35F, f_671_);
		OpenGL.glEnd();
	}

	public void method3360(int i, int i_676_, float f, int i_677_, int i_678_, float f_679_, int i_680_, int i_681_, float f_682_, int i_683_, int i_684_, int i_685_, int i_686_) {
		method14716();
		method14687(i_686_);
		OpenGL.glBegin(4);
		OpenGL.glColor4ub((byte) (i_683_ >> 16), (byte) (i_683_ >> 8), (byte) i_683_, (byte) (i_683_ >> 24));
		OpenGL.glVertex3f((float) i + 0.35F, (float) i_676_ + 0.35F, f);
		OpenGL.glColor4ub((byte) (i_684_ >> 16), (byte) (i_684_ >> 8), (byte) i_684_, (byte) (i_684_ >> 24));
		OpenGL.glVertex3f((float) i_677_ + 0.35F, (float) i_678_ + 0.35F, f_679_);
		OpenGL.glColor4ub((byte) (i_685_ >> 16), (byte) (i_685_ >> 8), (byte) i_685_, (byte) (i_685_ >> 24));
		OpenGL.glVertex3f((float) i_680_ + 0.35F, (float) i_681_ + 0.35F, f_682_);
		OpenGL.glEnd();
	}

	public void method3359(float f, float f_687_, float f_688_, float[] fs) {
		float f_689_ = (aClass441_9365.aFloatArray4916[15] + aClass441_9365.aFloatArray4916[3] * f + aClass441_9365.aFloatArray4916[7] * f_687_ + aClass441_9365.aFloatArray4916[11] * f_688_);
		float f_690_ = (aClass441_9365.aFloatArray4916[12] + aClass441_9365.aFloatArray4916[0] * f + aClass441_9365.aFloatArray4916[4] * f_687_ + aClass441_9365.aFloatArray4916[8] * f_688_);
		float f_691_ = (aClass441_9365.aFloatArray4916[13] + aClass441_9365.aFloatArray4916[1] * f + aClass441_9365.aFloatArray4916[5] * f_687_ + aClass441_9365.aFloatArray4916[9] * f_688_);
		float f_692_ = (aClass441_9316.aFloatArray4916[14] + aClass441_9316.aFloatArray4916[2] * f + aClass441_9316.aFloatArray4916[6] * f_687_ + aClass441_9316.aFloatArray4916[10] * f_688_);
		fs[0] = aFloat9274 + aFloat9363 * f_690_ / f_689_;
		fs[1] = aFloat9284 + aFloat9326 * f_691_ / f_689_;
		fs[2] = f_692_;
	}

	final void method14726(Class131 class131, Class131 class131_693_, Class131 class131_694_, Class131 class131_695_) {
		if (class131 != null) {
			method14662(class131.anInterface15_1558);
			OpenGL.glVertexPointer(class131.aByte1557, class131.aShort1556, anInterface15_9254.method82(), (anInterface15_9254.method83() + (long) class131.aByte1555));
			OpenGL.glEnableClientState(32884);
		} else
			OpenGL.glDisableClientState(32884);
		if (class131_693_ != null) {
			method14662(class131_693_.anInterface15_1558);
			OpenGL.glNormalPointer(class131_693_.aShort1556, anInterface15_9254.method82(), (anInterface15_9254.method83() + (long) class131_693_.aByte1555));
			OpenGL.glEnableClientState(32885);
		} else
			OpenGL.glDisableClientState(32885);
		if (class131_694_ != null) {
			method14662(class131_694_.anInterface15_1558);
			OpenGL.glColorPointer(class131_694_.aByte1557, class131_694_.aShort1556, anInterface15_9254.method82(), (anInterface15_9254.method83() + (long) class131_694_.aByte1555));
			OpenGL.glEnableClientState(32886);
		} else
			OpenGL.glDisableClientState(32886);
		if (class131_695_ != null) {
			method14662(class131_695_.anInterface15_1558);
			OpenGL.glTexCoordPointer(class131_695_.aByte1557, class131_695_.aShort1556, anInterface15_9254.method82(), (anInterface15_9254.method83() + (long) class131_695_.aByte1555));
			OpenGL.glEnableClientState(32888);
		} else
			OpenGL.glDisableClientState(32888);
	}

	public void method3188(boolean bool) {
		/* empty */
	}

	public void method3362(float f, float f_696_, float f_697_, float[] fs) {
		float f_698_ = (aClass441_9365.aFloatArray4916[14] + aClass441_9365.aFloatArray4916[2] * f + aClass441_9365.aFloatArray4916[6] * f_696_ + aClass441_9365.aFloatArray4916[10] * f_697_);
		float f_699_ = (aClass441_9365.aFloatArray4916[15] + aClass441_9365.aFloatArray4916[3] * f + aClass441_9365.aFloatArray4916[7] * f_696_ + aClass441_9365.aFloatArray4916[11] * f_697_);
		if (f_698_ < -f_699_ || f_698_ > f_699_) {
			float[] fs_700_ = fs;
			float[] fs_701_ = fs;
			fs[2] = Float.NaN;
			fs_701_[1] = Float.NaN;
			fs_700_[0] = Float.NaN;
		} else {
			float f_702_ = (aClass441_9365.aFloatArray4916[12] + aClass441_9365.aFloatArray4916[0] * f + aClass441_9365.aFloatArray4916[4] * f_696_ + aClass441_9365.aFloatArray4916[8] * f_697_);
			if (f_702_ < -f_699_ || f_702_ > f_699_) {
				float[] fs_703_ = fs;
				float[] fs_704_ = fs;
				fs[2] = Float.NaN;
				fs_704_[1] = Float.NaN;
				fs_703_[0] = Float.NaN;
			} else {
				float f_705_ = (aClass441_9365.aFloatArray4916[13] + aClass441_9365.aFloatArray4916[1] * f + aClass441_9365.aFloatArray4916[5] * f_696_ + aClass441_9365.aFloatArray4916[9] * f_697_);
				if (f_705_ < -f_699_ || f_705_ > f_699_) {
					float[] fs_706_ = fs;
					float[] fs_707_ = fs;
					fs[2] = Float.NaN;
					fs_707_[1] = Float.NaN;
					fs_706_[0] = Float.NaN;
				} else {
					float f_708_ = (aClass441_9316.aFloatArray4916[14] + aClass441_9316.aFloatArray4916[2] * f + aClass441_9316.aFloatArray4916[6] * f_696_ + aClass441_9316.aFloatArray4916[10] * f_697_);
					fs[0] = aFloat9274 + aFloat9363 * f_702_ / f_699_;
					fs[1] = aFloat9284 + aFloat9326 * f_705_ / f_699_;
					fs[2] = f_708_;
				}
			}
		}
	}

	public void method3318(float f, float f_709_, float f_710_, float[] fs) {
		float f_711_ = (aClass441_9365.aFloatArray4916[14] + aClass441_9365.aFloatArray4916[2] * f + aClass441_9365.aFloatArray4916[6] * f_709_ + aClass441_9365.aFloatArray4916[10] * f_710_);
		float f_712_ = (aClass441_9365.aFloatArray4916[15] + aClass441_9365.aFloatArray4916[3] * f + aClass441_9365.aFloatArray4916[7] * f_709_ + aClass441_9365.aFloatArray4916[11] * f_710_);
		if (f_711_ < -f_712_ || f_711_ > f_712_) {
			float[] fs_713_ = fs;
			float[] fs_714_ = fs;
			fs[2] = Float.NaN;
			fs_714_[1] = Float.NaN;
			fs_713_[0] = Float.NaN;
		} else {
			float f_715_ = (aClass441_9365.aFloatArray4916[12] + aClass441_9365.aFloatArray4916[0] * f + aClass441_9365.aFloatArray4916[4] * f_709_ + aClass441_9365.aFloatArray4916[8] * f_710_);
			if (f_715_ < -f_712_ || f_715_ > f_712_) {
				float[] fs_716_ = fs;
				float[] fs_717_ = fs;
				fs[2] = Float.NaN;
				fs_717_[1] = Float.NaN;
				fs_716_[0] = Float.NaN;
			} else {
				float f_718_ = (aClass441_9365.aFloatArray4916[13] + aClass441_9365.aFloatArray4916[1] * f + aClass441_9365.aFloatArray4916[5] * f_709_ + aClass441_9365.aFloatArray4916[9] * f_710_);
				if (f_718_ < -f_712_ || f_718_ > f_712_) {
					float[] fs_719_ = fs;
					float[] fs_720_ = fs;
					fs[2] = Float.NaN;
					fs_720_[1] = Float.NaN;
					fs_719_[0] = Float.NaN;
				} else {
					float f_721_ = (aClass441_9316.aFloatArray4916[14] + aClass441_9316.aFloatArray4916[2] * f + aClass441_9316.aFloatArray4916[6] * f_709_ + aClass441_9316.aFloatArray4916[10] * f_710_);
					fs[0] = aFloat9274 + aFloat9363 * f_715_ / f_712_;
					fs[1] = aFloat9284 + aFloat9326 * f_718_ / f_712_;
					fs[2] = f_721_;
				}
			}
		}
	}

	final void method14727(float f, float f_722_, float f_723_, float f_724_) {
		aFloatArray9427[0] = f;
		aFloatArray9427[1] = f_722_;
		aFloatArray9427[2] = f_723_;
		aFloatArray9427[3] = f_724_;
		OpenGL.glTexEnvfv(8960, 8705, aFloatArray9427, 0);
	}

	public Interface23 method3365(int i, int i_725_, int i_726_) {
		return new Class523_Sub27_Sub3(this, Class158.aClass158_1750, Class170.aClass170_1827, i, i_725_, i_726_);
	}

	final synchronized void method14728(long l) {
		Class523 class523 = new Class523();
		class523.aLong7065 = l * 2947252533757437993L;
		aClass708_9385.method14236(class523, -1971435465);
	}

	public void method3296(int i, Class523_Sub20[] class523_sub20s) {
		for (int i_727_ = 0; i_727_ < i; i_727_++)
			aClass523_Sub20Array9395[i_727_] = class523_sub20s[i_727_];
		anInt9237 = i;
		if (anInt9335 != 1)
			method14719();
	}

	void method14729() {
		int i = 0;
		while (!anOpenGL9272.method1669()) {
			if (i++ > 5)
				throw new RuntimeException("");
			Class653.method10656(1000L);
		}
	}

	void method14730() {
		int i = 0;
		while (!anOpenGL9272.method1669()) {
			if (i++ > 5)
				throw new RuntimeException("");
			Class653.method10656(1000L);
		}
	}

	void method14731() {
		int i = 0;
		while (!anOpenGL9272.method1669()) {
			if (i++ > 5)
				throw new RuntimeException("");
			Class653.method10656(1000L);
		}
	}

	int method14732() {
		int i = 0;
		aString9350 = OpenGL.glGetString(7936).toLowerCase();
		aString9390 = OpenGL.glGetString(7937).toLowerCase();
		if (aString9350.indexOf("microsoft") != -1)
			i |= 0x1;
		if (aString9350.indexOf("brian paul") != -1 || aString9350.indexOf("mesa") != -1)
			i |= 0x1;
		String string = OpenGL.glGetString(7938);
		String[] strings = Class194_Sub13.method15512(string.replace('.', ' '), ' ', (byte) -24);
		if (strings.length >= 2) {
			try {
				int i_728_ = JS5Client.method15856(strings[0], (byte) 99);
				int i_729_ = JS5Client.method15856(strings[1], (byte) 82);
				anInt9392 = i_728_ * 10 + i_729_;
			} catch (NumberFormatException numberformatexception) {
				i |= 0x4;
			}
		} else
			i |= 0x4;
		if (anInt9392 < 12)
			i |= 0x2;
		if (!anOpenGL9272.method1668("GL_ARB_multitexture"))
			i |= 0x8;
		if (!anOpenGL9272.method1668("GL_ARB_texture_env_combine"))
			i |= 0x20;
		int[] is = new int[1];
		OpenGL.glGetIntegerv(34018, is, 0);
		anInt9241 = is[0];
		OpenGL.glGetIntegerv(34929, is, 0);
		anInt9278 = is[0];
		OpenGL.glGetIntegerv(34930, is, 0);
		anInt9397 = is[0];
		if (anInt9241 < 2 || anInt9278 < 2 || anInt9397 < 2)
			i |= 0x10;
		aBool9393 = Stream.method1704();
		aBool9320 = anOpenGL9272.method1668("GL_ARB_vertex_buffer_object");
		aBool9401 = anOpenGL9272.method1668("GL_ARB_multisample");
		aBool9412 = anOpenGL9272.method1668("GL_ARB_vertex_program");
		aBool9414 = anOpenGL9272.method1668("GL_ARB_fragment_program");
		aBool9413 = anOpenGL9272.method1668("GL_ARB_vertex_shader");
		aBool9315 = anOpenGL9272.method1668("GL_ARB_fragment_shader");
		aBool9325 = anOpenGL9272.method1668("GL_EXT_texture3D");
		aBool9409 = anOpenGL9272.method1668("GL_ARB_texture_rectangle");
		aBool9407 = anOpenGL9272.method1668("GL_ARB_texture_cube_map");
		aBool9408 = anOpenGL9272.method1668("GL_ARB_seamless_cube_map");
		aBool9410 = anOpenGL9272.method1668("GL_ARB_texture_float");
		aBool9411 = anOpenGL9272.method1668("GL_ARB_texture_non_power_of_two");
		aBool9398 = anOpenGL9272.method1668("GL_EXT_framebuffer_object");
		aBool9259 = anOpenGL9272.method1668("GL_EXT_framebuffer_blit");
		aBool9400 = anOpenGL9272.method1668("GL_EXT_framebuffer_multisample");
		aBool9402 = aBool9259 & aBool9400;
		aBool9330 = anOpenGL9272.method1668("GL_EXT_blend_func_separate");
		aBool9405 = (anUnsafe9291 != null && (anInt9392 >= 32 || anOpenGL9272.method1668("GL_ARB_sync")));
		aBool9318 = Class509.aString5723.startsWith("mac");
		OpenGL.glGetFloatv(2834, aFloatArray9427, 0);
		aFloat9420 = aFloatArray9427[0];
		aFloat9419 = aFloatArray9427[1];
		return i != 0 ? i : 0;
	}

	void method14733() {
		aClass126Array9386 = new Class126[anInt9241];
		aClass126_Sub2_9387 = new Class126_Sub2(this, 3553, Class158.aClass158_1743, Class170.aClass170_1822, 1, 1);
		new Class126_Sub2(this, 3553, Class158.aClass158_1743, Class170.aClass170_1822, 1, 1);
		new Class126_Sub2(this, 3553, Class158.aClass158_1743, Class170.aClass170_1822, 1, 1);
		for (int i = 0; i < 8; i++) {
			aClass167_Sub3Array9358[i] = new Class167_Sub3(this);
			aClass167_Sub3Array9422[i] = new Class167_Sub3(this);
		}
		if (aBool9398) {
			aClass168_Sub1_Sub3_9423 = new Class168_Sub1_Sub3(this);
			new Class168_Sub1_Sub3(this);
		}
	}

	void method14734() {
		aClass126Array9386 = new Class126[anInt9241];
		aClass126_Sub2_9387 = new Class126_Sub2(this, 3553, Class158.aClass158_1743, Class170.aClass170_1822, 1, 1);
		new Class126_Sub2(this, 3553, Class158.aClass158_1743, Class170.aClass170_1822, 1, 1);
		new Class126_Sub2(this, 3553, Class158.aClass158_1743, Class170.aClass170_1822, 1, 1);
		for (int i = 0; i < 8; i++) {
			aClass167_Sub3Array9358[i] = new Class167_Sub3(this);
			aClass167_Sub3Array9422[i] = new Class167_Sub3(this);
		}
		if (aBool9398) {
			aClass168_Sub1_Sub3_9423 = new Class168_Sub1_Sub3(this);
			new Class168_Sub1_Sub3(this);
		}
	}

	final void method14735(float f, float f_730_) {
		aFloat9373 = f;
		aFloat9374 = f_730_;
		method14651();
	}

	public Class150 method3368() {
		int i = -1;
		if (aString9350.indexOf("nvidia") != -1)
			i = 4318;
		else if (aString9350.indexOf("intel") != -1)
			i = 32902;
		else if (aString9350.indexOf("ati") != -1)
			i = 4098;
		return new Class150(i, "OpenGL", anInt9392, aString9390, 0L, false);
	}

	public final synchronized void method3163(int i) {
		int i_731_ = 0;
		i &= 0x7fffffff;
		while (!aClass708_9296.method14237((byte) 104)) {
			Class523_Sub24 class523_sub24 = (Class523_Sub24) aClass708_9296.method14293(2037993453);
			anIntArray9303[i_731_++] = (int) (class523_sub24.aLong7065 * 1055205983951172633L);
			anInt9293 -= class523_sub24.anInt10542 * -677457577;
			if (i_731_ == 1000) {
				OpenGL.glDeleteBuffersARB(i_731_, anIntArray9303, 0);
				i_731_ = 0;
			}
		}
		if (i_731_ > 0) {
			OpenGL.glDeleteBuffersARB(i_731_, anIntArray9303, 0);
			i_731_ = 0;
		}
		while (!aClass708_9297.method14237((byte) 104)) {
			Class523_Sub24 class523_sub24 = (Class523_Sub24) aClass708_9297.method14293(1939664496);
			anIntArray9303[i_731_++] = (int) (class523_sub24.aLong7065 * 1055205983951172633L);
			anInt9275 -= class523_sub24.anInt10542 * -677457577;
			if (i_731_ == 1000) {
				OpenGL.glDeleteTextures(i_731_, anIntArray9303, 0);
				i_731_ = 0;
			}
		}
		if (i_731_ > 0) {
			OpenGL.glDeleteTextures(i_731_, anIntArray9303, 0);
			i_731_ = 0;
		}
		while (!aClass708_9298.method14237((byte) 104)) {
			Class523_Sub24 class523_sub24 = (Class523_Sub24) aClass708_9298.method14293(2106545867);
			anIntArray9303[i_731_++] = class523_sub24.anInt10542 * -677457577;
			if (i_731_ == 1000) {
				OpenGL.glDeleteFramebuffersEXT(i_731_, anIntArray9303, 0);
				i_731_ = 0;
			}
		}
		if (i_731_ > 0) {
			OpenGL.glDeleteFramebuffersEXT(i_731_, anIntArray9303, 0);
			i_731_ = 0;
		}
		while (!aClass708_9299.method14237((byte) 104)) {
			Class523_Sub24 class523_sub24 = (Class523_Sub24) aClass708_9299.method14293(2056461232);
			anIntArray9303[i_731_++] = (int) (class523_sub24.aLong7065 * 1055205983951172633L);
			anInt9324 -= class523_sub24.anInt10542 * -677457577;
			if (i_731_ == 1000) {
				OpenGL.glDeleteRenderbuffersEXT(i_731_, anIntArray9303, 0);
				i_731_ = 0;
			}
		}
		if (i_731_ > 0) {
			OpenGL.glDeleteRenderbuffersEXT(i_731_, anIntArray9303, 0);
			boolean bool = false;
		}
		while (!aClass708_9295.method14237((byte) 104)) {
			Class523_Sub24 class523_sub24 = (Class523_Sub24) aClass708_9295.method14293(1964474168);
			OpenGL.glDeleteLists((int) (class523_sub24.aLong7065 * 1055205983951172633L), class523_sub24.anInt10542 * -677457577);
		}
		while (!aClass708_9301.method14237((byte) 104)) {
			Class523 class523 = aClass708_9301.method14293(2034702388);
			OpenGL.glDeleteProgramARB((int) (class523.aLong7065 * 1055205983951172633L));
		}
		while (!aClass708_9385.method14237((byte) 104)) {
			Class523 class523 = aClass708_9385.method14293(2089434455);
			OpenGL.glDeleteShader((int) (class523.aLong7065 * 1055205983951172633L));
		}
		while (!aClass708_9295.method14237((byte) 104)) {
			Class523_Sub24 class523_sub24 = (Class523_Sub24) aClass708_9295.method14293(2041726056);
			OpenGL.glDeleteLists((int) (class523_sub24.aLong7065 * 1055205983951172633L), class523_sub24.anInt10542 * -677457577);
		}
		aClass154_9382.method2531();
		if (method3025() > 100663296 && TimeUtils.getCurrentTimeMilliseconds(1516375036) > aLong9302 + 60000L) {
			System.gc();
			aLong9302 = TimeUtils.getCurrentTimeMilliseconds(1516375036);
		}
		anInt9436 = i;
	}

	public final boolean method3146() {
		return (aClass523_Sub17_Sub3_9417 != null && aClass523_Sub17_Sub3_9417.method16010());
	}

	public Class150 method3443() {
		int i = -1;
		if (aString9350.indexOf("nvidia") != -1)
			i = 4318;
		else if (aString9350.indexOf("intel") != -1)
			i = 32902;
		else if (aString9350.indexOf("ati") != -1)
			i = 4098;
		return new Class150(i, "OpenGL", anInt9392, aString9390, 0L, false);
	}

	public Class150 method3372() {
		int i = -1;
		if (aString9350.indexOf("nvidia") != -1)
			i = 4318;
		else if (aString9350.indexOf("intel") != -1)
			i = 32902;
		else if (aString9350.indexOf("ati") != -1)
			i = 4098;
		return new Class150(i, "OpenGL", anInt9392, aString9390, 0L, false);
	}

	final void method14736() {
		OpenGL.glLoadIdentity();
		OpenGL.glMultMatrixf(aClass441_9316.aFloatArray4916, 0);
		if (aBool9376)
			aClass120_9429.aClass117_Sub8_1481.method14414();
		method14658();
		method14719();
	}

	public boolean method3374() {
		return true;
	}

	boolean method14737() {
		return aClass120_9429.method2068(3);
	}

	public boolean method3375() {
		return true;
	}

	final void method14738() {
		if (anInt9424 != 2) {
			method14642();
			method14788(false);
			method14682(false);
			method14684(false);
			method14620(false);
			method14670(-2);
			method14625((byte) 0);
			anInt9424 = 2;
		}
	}

	void method14739(int i) {
		anInt9314 = i;
		if (anInt9314 == 1)
			OpenGL.glDisable(2884);
		else {
			OpenGL.glEnable(2884);
			if (anInt9314 == 2)
				OpenGL.glCullFace(1029);
			else if (anInt9314 == 3)
				OpenGL.glCullFace(1028);
		}
	}

	public Interface22 method3050(int i, int i_732_, Class158 class158, Class170 class170, int i_733_) {
		return new Class523_Sub27_Sub3(this, class158, class170, i, i_732_, i_733_);
	}

	public Interface23 method3051(int i, int i_734_) {
		return new Class523_Sub27_Sub3(this, Class158.aClass158_1750, Class170.aClass170_1827, i, i_734_);
	}

	public final void method3075(int[] is) {
		is[0] = anInt9253;
		is[1] = anInt9338;
		is[2] = anInt9361;
		is[3] = anInt9263;
	}

	void method14740() {
		int i = aClass168_1938.method2875();
		int i_735_ = aClass168_1938.method2874();
		aClass441_9273.method7098(0.0F, (float) i, 0.0F, (float) i_735_, -1.0F, 1.0F);
		method3067();
		method14641();
		method3071();
	}

	void method14741() {
		int i = aClass168_1938.method2875();
		int i_736_ = aClass168_1938.method2874();
		aClass441_9273.method7098(0.0F, (float) i, 0.0F, (float) i_736_, -1.0F, 1.0F);
		method3067();
		method14641();
		method3071();
	}

	public final void method3326(int i, int i_737_) {
		if (aClass141_9276 != null)
			aClass141_9276.method2294(i, i_737_);
	}

	final void method14742(Class131 class131, Class131 class131_738_, Class131 class131_739_, Class131 class131_740_) {
		if (class131 != null) {
			method14662(class131.anInterface15_1558);
			OpenGL.glVertexPointer(class131.aByte1557, class131.aShort1556, anInterface15_9254.method82(), (anInterface15_9254.method83() + (long) class131.aByte1555));
			OpenGL.glEnableClientState(32884);
		} else
			OpenGL.glDisableClientState(32884);
		if (class131_738_ != null) {
			method14662(class131_738_.anInterface15_1558);
			OpenGL.glNormalPointer(class131_738_.aShort1556, anInterface15_9254.method82(), (anInterface15_9254.method83() + (long) class131_738_.aByte1555));
			OpenGL.glEnableClientState(32885);
		} else
			OpenGL.glDisableClientState(32885);
		if (class131_739_ != null) {
			method14662(class131_739_.anInterface15_1558);
			OpenGL.glColorPointer(class131_739_.aByte1557, class131_739_.aShort1556, anInterface15_9254.method82(), (anInterface15_9254.method83() + (long) class131_739_.aByte1555));
			OpenGL.glEnableClientState(32886);
		} else
			OpenGL.glDisableClientState(32886);
		if (class131_740_ != null) {
			method14662(class131_740_.anInterface15_1558);
			OpenGL.glTexCoordPointer(class131_740_.aByte1557, class131_740_.aShort1556, anInterface15_9254.method82(), (anInterface15_9254.method83() + (long) class131_740_.aByte1555));
			OpenGL.glEnableClientState(32888);
		} else
			OpenGL.glDisableClientState(32888);
	}

	long method14743(int i, int i_741_, int[] is, int[] is_742_) {
		if (aBool9405) {
			if (aLongArray9329[anInt9441] != 0L) {
				OpenGL.glDeleteSync(aLongArray9329[anInt9441]);
				aLongArray9329[anInt9441] = 0L;
			}
			OpenGL.glBindBufferARB(35051, anIntArray9438[anInt9441]);
			long l = OpenGL.glMapBufferARB(35051, 35000);
			if (is != null) {
				int i_743_ = 0;
				for (int i_744_ = i_741_ - 1; i_744_ >= 0; i_744_--) {
					for (int i_745_ = 0; i_745_ < i; i_745_++)
						is[i_743_++] = anUnsafe9291.getInt(l + (long) ((i_744_ * i + i_745_) * 4));
				}
				if (OpenGL.glUnmapBufferARB(35051)) {
					/* empty */
				}
				OpenGL.glBindBufferARB(35051, 0);
				l = 0L;
			}
			if (++anInt9441 >= 3)
				anInt9441 = 0;
			return l;
		}
		if (aClass148_9430 == null)
			method14629(i, i_741_);
		if (aClass148_9435 == null)
			aClass148_9435 = method3376(0, 0, aClass168_1938.method2875(), aClass168_1938.method2874(), true);
		else
			((Class148_Sub2) aClass148_9435).method14534(0, 0, aClass168_1938.method2875(), aClass168_1938.method2874(), 0, 0, true);
		method3353(aClass168_Sub1_9378, -1437540134);
		method3076(1, -16777216);
		aClass148_9435.method2438(anInt1945 * 1970564341, anInt1937 * 1216763507, anInt1946 * -750425387, anInt1915 * -733304105);
		aClass148_9430.method2432(0, 0, i, i_741_, is, is_742_, 0, i);
		method3047(aClass168_Sub1_9378, (short) -22625);
		return 0L;
	}

	public void method3427(int i, int i_746_, int i_747_, int i_748_, int i_749_, int i_750_, int i_751_, int i_752_, int i_753_) {
		if (i != i_747_ || i_746_ != i_748_) {
			method14716();
			method14687(i_750_);
			float f = (float) i_747_ - (float) i;
			float f_754_ = (float) i_748_ - (float) i_746_;
			float f_755_ = (float) (1.0 / Math.sqrt((double) (f * f + f_754_ * f_754_)));
			f *= f_755_;
			f_754_ *= f_755_;
			OpenGL.glColor4ub((byte) (i_749_ >> 16), (byte) (i_749_ >> 8), (byte) i_749_, (byte) (i_749_ >> 24));
			i_753_ %= i_752_ + i_751_;
			float f_756_ = f * (float) i_751_;
			float f_757_ = f_754_ * (float) i_751_;
			float f_758_ = 0.0F;
			float f_759_ = 0.0F;
			float f_760_ = f_756_;
			float f_761_ = f_757_;
			if (i_753_ > i_751_) {
				f_758_ = f * (float) (i_751_ + i_752_ - i_753_);
				f_759_ = f_754_ * (float) (i_751_ + i_752_ - i_753_);
			} else {
				f_760_ = f * (float) (i_751_ - i_753_);
				f_761_ = f_754_ * (float) (i_751_ - i_753_);
			}
			float f_762_ = (float) i + 0.35F + f_758_;
			float f_763_ = (float) i_746_ + 0.35F + f_759_;
			float f_764_ = f * (float) i_752_;
			float f_765_ = f_754_ * (float) i_752_;
			for (;;) {
				if (i_747_ > i) {
					if (f_762_ > (float) i_747_ + 0.35F)
						break;
					if (f_762_ + f_760_ > (float) i_747_)
						f_760_ = (float) i_747_ - f_762_;
				} else {
					if (f_762_ < (float) i_747_ + 0.35F)
						break;
					if (f_762_ + f_760_ < (float) i_747_)
						f_760_ = (float) i_747_ - f_762_;
				}
				if (i_748_ > i_746_) {
					if (f_763_ > (float) i_748_ + 0.35F)
						break;
					if (f_763_ + f_761_ > (float) i_748_)
						f_761_ = (float) i_748_ - f_763_;
				} else {
					if (f_763_ < (float) i_748_ + 0.35F)
						break;
					if (f_763_ + f_761_ < (float) i_748_)
						f_761_ = (float) i_748_ - f_763_;
				}
				OpenGL.glBegin(1);
				OpenGL.glVertex2f(f_762_, f_763_);
				OpenGL.glVertex2f(f_762_ + f_760_, f_763_ + f_761_);
				OpenGL.glEnd();
				f_762_ += f_764_ + f_760_;
				f_763_ += f_765_ + f_761_;
				f_760_ = f_756_;
				f_761_ = f_757_;
			}
		}
	}

	final void method14744(int i) {
		if (anInt9285 != i) {
			OpenGL.glActiveTexture(33984 + i);
			anInt9285 = i;
		}
	}

	public Class148 method3091(Class175 class175, boolean bool) {
		int[] is = class175.method2959(false);
		Class148 class148 = method3103(is, 0, class175.method2944(), class175.method2944(), class175.method2945(), -1846973584);
		class148.method2426(class175.method2946(), class175.method2948(), class175.method2984(), class175.method2949());
		return class148;
	}

	public void method3379(int i, int i_766_) {
		int i_767_ = 0;
		if ((i & 0x1) != 0) {
			OpenGL.glClearColor((float) (i_766_ & 0xff0000) / 1.671168E7F, (float) (i_766_ & 0xff00) / 65280.0F, (float) (i_766_ & 0xff) / 255.0F, (float) (i_766_ >>> 24) / 255.0F);
			i_767_ = 16384;
		}
		if ((i & 0x2) != 0) {
			method14620(true);
			i_767_ |= 0x100;
		}
		if ((i & 0x4) != 0)
			i_767_ |= 0x400;
		OpenGL.glClear(i_767_);
	}

	public void method3334(int i, int i_768_) {
		int i_769_ = 0;
		if ((i & 0x1) != 0) {
			OpenGL.glClearColor((float) (i_768_ & 0xff0000) / 1.671168E7F, (float) (i_768_ & 0xff00) / 65280.0F, (float) (i_768_ & 0xff) / 255.0F, (float) (i_768_ >>> 24) / 255.0F);
			i_769_ = 16384;
		}
		if ((i & 0x2) != 0) {
			method14620(true);
			i_769_ |= 0x100;
		}
		if ((i & 0x4) != 0)
			i_769_ |= 0x400;
		OpenGL.glClear(i_769_);
	}

	public void method3390(Class523_Sub8 class523_sub8) {
		aNativeHeap9289 = ((Class523_Sub8_Sub2) class523_sub8).aNativeHeap11469;
		if (anInterface15_9426 == null) {
			Class523_Sub34_Sub1 class523_sub34_sub1 = new Class523_Sub34_Sub1(80);
			if (aBool9393) {
				class523_sub34_sub1.method18112(-1.0F);
				class523_sub34_sub1.method18112(-1.0F);
				class523_sub34_sub1.method18112(0.0F);
				class523_sub34_sub1.method18112(0.0F);
				class523_sub34_sub1.method18112(0.0F);
				class523_sub34_sub1.method18112(-1.0F);
				class523_sub34_sub1.method18112(1.0F);
				class523_sub34_sub1.method18112(0.0F);
				class523_sub34_sub1.method18112(0.0F);
				class523_sub34_sub1.method18112(1.0F);
				class523_sub34_sub1.method18112(1.0F);
				class523_sub34_sub1.method18112(1.0F);
				class523_sub34_sub1.method18112(0.0F);
				class523_sub34_sub1.method18112(1.0F);
				class523_sub34_sub1.method18112(1.0F);
				class523_sub34_sub1.method18112(1.0F);
				class523_sub34_sub1.method18112(-1.0F);
				class523_sub34_sub1.method18112(0.0F);
				class523_sub34_sub1.method18112(1.0F);
				class523_sub34_sub1.method18112(0.0F);
			} else {
				class523_sub34_sub1.method18110(-1.0F);
				class523_sub34_sub1.method18110(-1.0F);
				class523_sub34_sub1.method18110(0.0F);
				class523_sub34_sub1.method18110(0.0F);
				class523_sub34_sub1.method18110(0.0F);
				class523_sub34_sub1.method18110(-1.0F);
				class523_sub34_sub1.method18110(1.0F);
				class523_sub34_sub1.method18110(0.0F);
				class523_sub34_sub1.method18110(0.0F);
				class523_sub34_sub1.method18110(1.0F);
				class523_sub34_sub1.method18110(1.0F);
				class523_sub34_sub1.method18110(1.0F);
				class523_sub34_sub1.method18110(0.0F);
				class523_sub34_sub1.method18110(1.0F);
				class523_sub34_sub1.method18110(1.0F);
				class523_sub34_sub1.method18110(1.0F);
				class523_sub34_sub1.method18110(-1.0F);
				class523_sub34_sub1.method18110(0.0F);
				class523_sub34_sub1.method18110(1.0F);
				class523_sub34_sub1.method18110(0.0F);
			}
			anInterface15_9426 = method14717(20, class523_sub34_sub1.buffer, class523_sub34_sub1.offset * 2349011, false);
			aClass131_9370 = new Class131(anInterface15_9426, 5126, 3, 0);
			aClass131_9425 = new Class131(anInterface15_9426, 5126, 2, 12);
			aClass121_9280.method2079(this);
		}
	}

	void method3382(int i, int i_770_, int i_771_, int i_772_, int i_773_) {
		if (i_771_ < 0)
			i_771_ = -i_771_;
		if (i + i_771_ >= anInt9253 && i - i_771_ <= anInt9361 && i_770_ + i_771_ >= anInt9338 && i_770_ - i_771_ <= anInt9263) {
			method14716();
			method14687(i_773_);
			OpenGL.glColor4ub((byte) (i_772_ >> 16), (byte) (i_772_ >> 8), (byte) i_772_, (byte) (i_772_ >> 24));
			float f = (float) i + 0.35F;
			float f_774_ = (float) i_770_ + 0.35F;
			int i_775_ = i_771_ << 1;
			if ((float) i_775_ < aFloat9420) {
				OpenGL.glBegin(7);
				OpenGL.glVertex2f(f + 1.0F, f_774_ + 1.0F);
				OpenGL.glVertex2f(f + 1.0F, f_774_ - 1.0F);
				OpenGL.glVertex2f(f - 1.0F, f_774_ - 1.0F);
				OpenGL.glVertex2f(f - 1.0F, f_774_ + 1.0F);
				OpenGL.glEnd();
			} else if ((float) i_775_ <= aFloat9419) {
				OpenGL.glEnable(2832);
				OpenGL.glPointSize((float) i_775_);
				OpenGL.glBegin(0);
				OpenGL.glVertex2f(f, f_774_);
				OpenGL.glEnd();
				OpenGL.glDisable(2832);
			} else {
				OpenGL.glBegin(6);
				OpenGL.glVertex2f(f, f_774_);
				int i_776_ = 262144 / (6 * i_771_);
				if (i_776_ <= 64)
					i_776_ = 64;
				else if (i_776_ > 512)
					i_776_ = 512;
				i_776_ = Class375.method6383(i_776_, 189765723);
				OpenGL.glVertex2f(f + (float) i_771_, f_774_);
				for (int i_777_ = 16384 - i_776_; i_777_ > 0; i_777_ -= i_776_)
					OpenGL.glVertex2f(f + (Class153.aFloatArray1730[i_777_] * (float) i_771_), f_774_ + (Class153.aFloatArray1731[i_777_]) * (float) i_771_);
				OpenGL.glVertex2f(f + (float) i_771_, f_774_);
				OpenGL.glEnd();
			}
		}
	}

	void method3140(int i, int i_778_, int i_779_, int i_780_, int i_781_) {
		if (i_779_ < 0)
			i_779_ = -i_779_;
		if (i + i_779_ >= anInt9253 && i - i_779_ <= anInt9361 && i_778_ + i_779_ >= anInt9338 && i_778_ - i_779_ <= anInt9263) {
			method14716();
			method14687(i_781_);
			OpenGL.glColor4ub((byte) (i_780_ >> 16), (byte) (i_780_ >> 8), (byte) i_780_, (byte) (i_780_ >> 24));
			float f = (float) i + 0.35F;
			float f_782_ = (float) i_778_ + 0.35F;
			int i_783_ = i_779_ << 1;
			if ((float) i_783_ < aFloat9420) {
				OpenGL.glBegin(7);
				OpenGL.glVertex2f(f + 1.0F, f_782_ + 1.0F);
				OpenGL.glVertex2f(f + 1.0F, f_782_ - 1.0F);
				OpenGL.glVertex2f(f - 1.0F, f_782_ - 1.0F);
				OpenGL.glVertex2f(f - 1.0F, f_782_ + 1.0F);
				OpenGL.glEnd();
			} else if ((float) i_783_ <= aFloat9419) {
				OpenGL.glEnable(2832);
				OpenGL.glPointSize((float) i_783_);
				OpenGL.glBegin(0);
				OpenGL.glVertex2f(f, f_782_);
				OpenGL.glEnd();
				OpenGL.glDisable(2832);
			} else {
				OpenGL.glBegin(6);
				OpenGL.glVertex2f(f, f_782_);
				int i_784_ = 262144 / (6 * i_779_);
				if (i_784_ <= 64)
					i_784_ = 64;
				else if (i_784_ > 512)
					i_784_ = 512;
				i_784_ = Class375.method6383(i_784_, 189765723);
				OpenGL.glVertex2f(f + (float) i_779_, f_782_);
				for (int i_785_ = 16384 - i_784_; i_785_ > 0; i_785_ -= i_784_)
					OpenGL.glVertex2f(f + (Class153.aFloatArray1730[i_785_] * (float) i_779_), f_782_ + (Class153.aFloatArray1731[i_785_]) * (float) i_779_);
				OpenGL.glVertex2f(f + (float) i_779_, f_782_);
				OpenGL.glEnd();
			}
		}
	}

	public long method3215(int i, int i_786_) {
		return method14627(i, i_786_, null, null);
	}

	public Class148 method3263(int[] is, int i, int i_787_, int i_788_, int i_789_, boolean bool) {
		return new Class148_Sub2(this, i_788_, i_789_, is, i, i_787_);
	}

	public final void method3227(int i, int i_790_, int i_791_, int i_792_) {
		if (aClass168_1938 != null) {
			if (i < 0)
				i = 0;
			if (i_791_ > aClass168_1938.method2875())
				i_791_ = aClass168_1938.method2875();
			if (i_790_ < 0)
				i_790_ = 0;
			if (i_792_ > aClass168_1938.method2874())
				i_792_ = aClass168_1938.method2874();
			anInt9253 = i;
			anInt9338 = i_790_;
			anInt9361 = i_791_;
			anInt9263 = i_792_;
			OpenGL.glEnable(3089);
			method14635();
		}
	}

	public void method3162(int i, int i_793_, int i_794_, int i_795_, int i_796_, int i_797_, Class145 class145, int i_798_, int i_799_, int i_800_, int i_801_, int i_802_) {
		if (i != i_794_ || i_793_ != i_795_) {
			Class145_Sub3 class145_sub3 = (Class145_Sub3) class145;
			Class126_Sub2_Sub1 class126_sub2_sub1 = class145_sub3.aClass126_Sub2_Sub1_9842;
			method14738();
			method14711(class145_sub3.aClass126_Sub2_Sub1_9842);
			method14687(i_797_);
			method14676(7681, 8448);
			method14677(0, 34167, 768);
			float f = (class126_sub2_sub1.aFloat11357 / (float) class126_sub2_sub1.anInt11354);
			float f_803_ = (class126_sub2_sub1.aFloat11356 / (float) class126_sub2_sub1.anInt11355);
			float f_804_ = (float) i_794_ - (float) i;
			float f_805_ = (float) i_795_ - (float) i_793_;
			float f_806_ = (float) (1.0 / Math.sqrt((double) (f_804_ * f_804_ + f_805_ * f_805_)));
			f_804_ *= f_806_;
			f_805_ *= f_806_;
			OpenGL.glColor4ub((byte) (i_796_ >> 16), (byte) (i_796_ >> 8), (byte) i_796_, (byte) (i_796_ >> 24));
			i_802_ %= i_801_ + i_800_;
			float f_807_ = f_804_ * (float) i_800_;
			float f_808_ = f_805_ * (float) i_800_;
			float f_809_ = 0.0F;
			float f_810_ = 0.0F;
			float f_811_ = f_807_;
			float f_812_ = f_808_;
			if (i_802_ > i_800_) {
				f_809_ = f_804_ * (float) (i_800_ + i_801_ - i_802_);
				f_810_ = f_805_ * (float) (i_800_ + i_801_ - i_802_);
			} else {
				f_811_ = f_804_ * (float) (i_800_ - i_802_);
				f_812_ = f_805_ * (float) (i_800_ - i_802_);
			}
			float f_813_ = (float) i + 0.35F + f_809_;
			float f_814_ = (float) i_793_ + 0.35F + f_810_;
			float f_815_ = f_804_ * (float) i_801_;
			float f_816_ = f_805_ * (float) i_801_;
			for (;;) {
				if (i_794_ > i) {
					if (f_813_ > (float) i_794_ + 0.35F)
						break;
					if (f_813_ + f_811_ > (float) i_794_)
						f_811_ = (float) i_794_ - f_813_;
				} else {
					if (f_813_ < (float) i_794_ + 0.35F)
						break;
					if (f_813_ + f_811_ < (float) i_794_)
						f_811_ = (float) i_794_ - f_813_;
				}
				if (i_795_ > i_793_) {
					if (f_814_ > (float) i_795_ + 0.35F)
						break;
					if (f_814_ + f_812_ > (float) i_795_)
						f_812_ = (float) i_795_ - f_814_;
				} else {
					if (f_814_ < (float) i_795_ + 0.35F)
						break;
					if (f_814_ + f_812_ < (float) i_795_)
						f_812_ = (float) i_795_ - f_814_;
				}
				OpenGL.glBegin(1);
				OpenGL.glTexCoord2f(f * (f_813_ - (float) i_798_), f_803_ * (f_814_ - (float) i_799_));
				OpenGL.glVertex2f(f_813_, f_814_);
				OpenGL.glTexCoord2f(f * (f_813_ + f_811_ - (float) i_798_), f_803_ * (f_814_ + f_812_ - (float) i_799_));
				OpenGL.glVertex2f(f_813_ + f_811_, f_814_ + f_812_);
				OpenGL.glEnd();
				f_813_ += f_815_ + f_811_;
				f_814_ += f_816_ + f_812_;
				f_811_ = f_807_;
				f_812_ = f_808_;
			}
			method14677(0, 5890, 768);
		}
	}

	static int method14745(Class158 class158) {
		switch (class158.anInt1742 * 178485697) {
		case 4:
			return 6407;
		case 9:
			return 6402;
		case 8:
			return 6408;
		case 6:
			return 6406;
		case 7:
			return 6410;
		default:
			throw new IllegalStateException();
		case 5:
			return 6409;
		}
	}

	public final void method3231(int[] is) {
		is[0] = anInt9253;
		is[1] = anInt9338;
		is[2] = anInt9361;
		is[3] = anInt9263;
	}

	public void method3066() {
		if (aBool9405) {
			aClass148_9435 = null;
			if (aClass168_Sub1_9378 != null) {
				aClass168_Sub1_9378.method131();
				aClass168_Sub1_9378 = null;
			}
			OpenGL.glDeleteBuffersARB(3, anIntArray9438, 0);
			for (int i = 0; i < 3; i++) {
				anIntArray9438[i] = 0;
				if (aLongArray9329[i] != 0L) {
					OpenGL.glDeleteSync(aLongArray9329[i]);
					aLongArray9329[i] = 0L;
				}
			}
		} else {
			aClass168_Sub1_9378 = null;
			aClass148_9430 = null;
			aClass148_9435 = null;
		}
	}

	public void method3391(Class171 class171) {
		aClass121_9280.method2080(this, class171);
	}

	public final void method3392() {
		if (aClass168_1938 != null) {
			anInt9253 = 0;
			anInt9338 = 0;
			anInt9361 = aClass168_1938.method2875();
			anInt9263 = aClass168_1938.method2874();
			OpenGL.glDisable(3089);
		}
	}

	final void method14746(int i, int i_817_) {
		anInt9342 = i;
		anInt9437 = i_817_;
		method14633();
		method14635();
	}

	final void method14747(int i, int i_818_) {
		anInt9342 = i;
		anInt9437 = i_818_;
		method14633();
		method14635();
	}

	final void method14748() {
		if (aClass168_1938 != null) {
			int i;
			int i_819_;
			int i_820_;
			int i_821_;
			if (anInt9335 == 2) {
				i = anInt9344;
				i_819_ = anInt9345;
				i_820_ = anInt9346;
				i_821_ = anInt9360;
			} else {
				i = 0;
				i_819_ = 0;
				i_820_ = aClass168_1938.method2875();
				i_821_ = aClass168_1938.method2874();
			}
			if (i_820_ < 1)
				i_820_ = 1;
			if (i_821_ < 1)
				i_821_ = 1;
			OpenGL.glViewport(anInt9342 + i, (anInt9437 + aClass168_1938.method2874() - i_819_ - i_821_), i_820_, i_821_);
			aFloat9363 = (float) anInt9346 / 2.0F;
			aFloat9326 = (float) anInt9360 / 2.0F;
			aFloat9274 = (float) anInt9344 + aFloat9363;
			aFloat9284 = (float) anInt9345 + aFloat9326;
		}
	}

	final void method14749() {
		if (aClass168_1938 != null) {
			int i;
			int i_822_;
			int i_823_;
			int i_824_;
			if (anInt9335 == 2) {
				i = anInt9344;
				i_822_ = anInt9345;
				i_823_ = anInt9346;
				i_824_ = anInt9360;
			} else {
				i = 0;
				i_822_ = 0;
				i_823_ = aClass168_1938.method2875();
				i_824_ = aClass168_1938.method2874();
			}
			if (i_823_ < 1)
				i_823_ = 1;
			if (i_824_ < 1)
				i_824_ = 1;
			OpenGL.glViewport(anInt9342 + i, (anInt9437 + aClass168_1938.method2874() - i_822_ - i_824_), i_823_, i_824_);
			aFloat9363 = (float) anInt9346 / 2.0F;
			aFloat9326 = (float) anInt9360 / 2.0F;
			aFloat9274 = (float) anInt9344 + aFloat9363;
			aFloat9284 = (float) anInt9345 + aFloat9326;
		}
	}

	final void method14750() {
		if (anInt9335 == 2)
			OpenGL.glDepthRange(aFloat9327, aFloat9379);
		else
			OpenGL.glDepthRange(0.0F, 1.0F);
	}

	final void method14751() {
		if (anInt9335 == 2)
			OpenGL.glDepthRange(aFloat9327, aFloat9379);
		else
			OpenGL.glDepthRange(0.0F, 1.0F);
	}

	final void method14752() {
		if (aClass168_1938 != null && anInt9253 < anInt9361 && anInt9338 < anInt9263)
			OpenGL.glScissor(anInt9342 + anInt9253, (anInt9437 + aClass168_1938.method2874() - anInt9263), anInt9361 - anInt9253, anInt9263 - anInt9338);
		else
			OpenGL.glScissor(0, 0, 0, 0);
	}

	public String method3184() {
		String string = "Caps: 2:";
		String string_825_ = ":";
		string = new StringBuilder().append(string).append(anInt9381).append(string_825_).toString();
		string = new StringBuilder().append(string).append(anInt9418).append(string_825_).toString();
		string = new StringBuilder().append(string).append(anInt9241).append(string_825_).toString();
		string = new StringBuilder().append(string).append(anInt9278).append(string_825_).toString();
		string = new StringBuilder().append(string).append(anInt9397).append(string_825_).toString();
		string = new StringBuilder().append(string).append(aFloat9420).append(string_825_).toString();
		string = new StringBuilder().append(string).append(aFloat9419).append(string_825_).toString();
		string = new StringBuilder().append(string).append(aBool9393 ? 1 : 0).append(string_825_).toString();
		string = new StringBuilder().append(string).append(aBool9391 ? 1 : 0).append(string_825_).toString();
		string = new StringBuilder().append(string).append(aBool9318 ? 1 : 0).append(string_825_).toString();
		string = new StringBuilder().append(string).append(aBool9320 ? 1 : 0).append(string_825_).toString();
		string = new StringBuilder().append(string).append(aBool9404 ? 1 : 0).append(string_825_).toString();
		string = new StringBuilder().append(string).append(aBool9401 ? 1 : 0).append(string_825_).toString();
		string = new StringBuilder().append(string).append(aBool9412 ? 1 : 0).append(string_825_).toString();
		string = new StringBuilder().append(string).append(aBool9414 ? 1 : 0).append(string_825_).toString();
		string = new StringBuilder().append(string).append(aBool9413 ? 1 : 0).append(string_825_).toString();
		string = new StringBuilder().append(string).append(aBool9315 ? 1 : 0).append(string_825_).toString();
		string = new StringBuilder().append(string).append(aBool9325 ? 1 : 0).append(string_825_).toString();
		string = new StringBuilder().append(string).append(aBool9409 ? 1 : 0).append(string_825_).toString();
		string = new StringBuilder().append(string).append(aBool9407 ? 1 : 0).append(string_825_).toString();
		string = new StringBuilder().append(string).append(aBool9408 ? 1 : 0).append(string_825_).toString();
		string = new StringBuilder().append(string).append(aBool9411 ? 1 : 0).append(string_825_).toString();
		string = new StringBuilder().append(string).append(aBool9398 ? 1 : 0).append(string_825_).toString();
		string = new StringBuilder().append(string).append(aBool9259 ? 1 : 0).append(string_825_).toString();
		string = new StringBuilder().append(string).append(aBool9400 ? 1 : 0).append(string_825_).toString();
		string = new StringBuilder().append(string).append(aBool9410 ? 1 : 0).append(string_825_).toString();
		string = new StringBuilder().append(string).append(aBool9416 ? 1 : 0).append(string_825_).toString();
		string = new StringBuilder().append(string).append(aBool9330 ? 1 : 0).toString();
		return string;
	}

	final void method14753(Class441 class441) {
		OpenGL.glPushMatrix();
		OpenGL.glMultMatrixf(class441.aFloatArray4916, 0);
	}

	final void method14754(Class441 class441) {
		OpenGL.glPushMatrix();
		OpenGL.glMultMatrixf(class441.aFloatArray4916, 0);
	}

	final void method14755(Class441 class441) {
		OpenGL.glPushMatrix();
		OpenGL.glMultMatrixf(class441.aFloatArray4916, 0);
	}

	final void method14756(Class441 class441) {
		OpenGL.glPushMatrix();
		OpenGL.glMultMatrixf(class441.aFloatArray4916, 0);
	}

	final void method14757(int i) {
		if (i == 1)
			method14676(7681, 7681);
		else if (i == 0)
			method14676(8448, 8448);
		else if (i == 2)
			method14676(34165, 7681);
		else if (i == 3)
			method14676(260, 8448);
		else if (i == 4)
			method14676(34023, 34023);
	}

	final void method14758(Class441 class441) {
		OpenGL.glPushMatrix();
		OpenGL.glMultMatrixf(class441.aFloatArray4916, 0);
	}

	final void method14759() {
		OpenGL.glPopMatrix();
	}

	final void method14760() {
		OpenGL.glPopMatrix();
	}

	public void method3040(float f, float f_826_, float f_827_, float[] fs) {
		float f_828_ = (aClass441_9365.aFloatArray4916[15] + aClass441_9365.aFloatArray4916[3] * f + aClass441_9365.aFloatArray4916[7] * f_826_ + aClass441_9365.aFloatArray4916[11] * f_827_);
		float f_829_ = (aClass441_9365.aFloatArray4916[12] + aClass441_9365.aFloatArray4916[0] * f + aClass441_9365.aFloatArray4916[4] * f_826_ + aClass441_9365.aFloatArray4916[8] * f_827_);
		float f_830_ = (aClass441_9365.aFloatArray4916[13] + aClass441_9365.aFloatArray4916[1] * f + aClass441_9365.aFloatArray4916[5] * f_826_ + aClass441_9365.aFloatArray4916[9] * f_827_);
		float f_831_ = (aClass441_9316.aFloatArray4916[14] + aClass441_9316.aFloatArray4916[2] * f + aClass441_9316.aFloatArray4916[6] * f_826_ + aClass441_9316.aFloatArray4916[10] * f_827_);
		fs[0] = aFloat9274 + aFloat9363 * f_829_ / f_828_;
		fs[1] = aFloat9284 + aFloat9326 * f_830_ / f_828_;
		fs[2] = f_831_;
	}

	final void method14761() {
		OpenGL.glPopMatrix();
	}

	final void method14762() {
		OpenGL.glLoadIdentity();
		OpenGL.glMultMatrixf(aClass441_9316.aFloatArray4916, 0);
		if (aBool9376)
			aClass120_9429.aClass117_Sub8_1481.method14414();
		method14658();
		method14719();
	}

	final void method14763() {
		OpenGL.glLoadIdentity();
		OpenGL.glMultMatrixf(aClass441_9316.aFloatArray4916, 0);
		if (aBool9376)
			aClass120_9429.aClass117_Sub8_1481.method14414();
		method14658();
		method14719();
	}

	public boolean method3031() {
		return true;
	}

	final void method14764() {
		OpenGL.glLoadIdentity();
		OpenGL.glMultMatrixf(aClass441_9316.aFloatArray4916, 0);
		if (aBool9376)
			aClass120_9429.aClass117_Sub8_1481.method14414();
		method14658();
		method14719();
	}

	void method14765() {
		aFloatArray9427[0] = aFloat9343 * aFloat9356;
		aFloatArray9427[1] = aFloat9343 * aFloat9357;
		aFloatArray9427[2] = aFloat9343 * aFloat9268;
		aFloatArray9427[3] = 1.0F;
		OpenGL.glLightfv(16384, 4609, aFloatArray9427, 0);
		aFloatArray9427[0] = -aFloat9250 * aFloat9356;
		aFloatArray9427[1] = -aFloat9250 * aFloat9357;
		aFloatArray9427[2] = -aFloat9250 * aFloat9268;
		aFloatArray9427[3] = 1.0F;
		OpenGL.glLightfv(16385, 4609, aFloatArray9427, 0);
	}

	final void method14766() {
		if (aBool9308)
			OpenGL.glEnable(3042);
		else
			OpenGL.glDisable(3042);
	}

	final void method14767() {
		if (anInt9335 != 2) {
			anInt9335 = 2;
			method14644(aClass441_9292.aFloatArray4916);
			method14713();
			method14633();
			method14634();
			anInt9424 &= ~0x7;
		}
	}

	public int[] method3320() {
		int[] is = new int[1];
		OpenGL.glGetIntegerv(34466, is, 0);
		int i = is[0];
		if (i == 0)
			return null;
		int[] is_832_ = new int[i];
		OpenGL.glGetIntegerv(34467, is_832_, 0);
		return is_832_;
	}

	final void method14768() {
		aFloat9313 = aClass441_9292.method7105();
		aFloat9340 = aClass441_9292.method7104();
		method14651();
		if (anInt9335 == 2)
			method14644(aClass441_9292.aFloatArray4916);
		else if (anInt9335 == 1)
			method14644(aClass441_9273.aFloatArray4916);
	}

	final void method14769() {
		aClass441_9365.method7086(aClass441_9316);
		aClass441_9365.method7089(aClass441_9292);
		aClass441_9365.method7114(aFloatArrayArray9415[0]);
		aClass441_9365.method7111(aFloatArrayArray9415[1]);
		aClass441_9365.method7106(aFloatArrayArray9415[2]);
		aClass441_9365.method7107(aFloatArrayArray9415[3]);
		aClass441_9365.method7123(aFloatArrayArray9415[4]);
		aClass441_9365.method7184(aFloatArrayArray9415[5]);
	}

	final void method14770() {
		if (aBool9384) {
			OpenGL.glMatrixMode(5890);
			OpenGL.glLoadIdentity();
			OpenGL.glMatrixMode(5888);
			aBool9384 = false;
		}
	}

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

	public boolean method3030() {
		return (aClass523_Sub17_Sub3_9417 != null && (anInt9381 <= 1 || aBool9402));
	}

	final void method14771(float[] fs) {
		float[] fs_833_ = new float[16];
		System.arraycopy(fs, 0, fs_833_, 0, 16);
		fs_833_[1] = -fs_833_[1];
		fs_833_[5] = -fs_833_[5];
		fs_833_[9] = -fs_833_[9];
		fs_833_[13] = -fs_833_[13];
		OpenGL.glMatrixMode(5889);
		OpenGL.glLoadMatrixf(fs_833_, 0);
		OpenGL.glMatrixMode(5888);
	}

	void method14772() {
		int i;
		for (i = 0; i < anInt9237; i++) {
			Class523_Sub20 class523_sub20 = aClass523_Sub20Array9395[i];
			int i_834_ = 16386 + i;
			aFloatArray9428[0] = (float) class523_sub20.method16062(2131811589);
			aFloatArray9428[1] = (float) class523_sub20.method16091(-1077806012);
			aFloatArray9428[2] = (float) class523_sub20.method16065(1846945049);
			aFloatArray9428[3] = 1.0F;
			OpenGL.glLightfv(i_834_, 4611, aFloatArray9428, 0);
			int i_835_ = class523_sub20.method16067(856453637);
			float f = class523_sub20.method16068((byte) 0) / 255.0F;
			aFloatArray9428[0] = (float) (i_835_ >> 16 & 0xff) * f;
			aFloatArray9428[1] = (float) (i_835_ >> 8 & 0xff) * f;
			aFloatArray9428[2] = (float) (i_835_ & 0xff) * f;
			OpenGL.glLightfv(i_834_, 4609, aFloatArray9428, 0);
			OpenGL.glLightf(i_834_, 4617, (1.0F / (float) (class523_sub20.method16066(-1879460461) * class523_sub20.method16066(-1879460461))));
			OpenGL.glEnable(i_834_);
		}
		for (/**/; i < anInt9352; i++)
			OpenGL.glDisable(16386 + i);
		anInt9352 = anInt9237;
	}

	void method14773() {
		int i;
		for (i = 0; i < anInt9237; i++) {
			Class523_Sub20 class523_sub20 = aClass523_Sub20Array9395[i];
			int i_836_ = 16386 + i;
			aFloatArray9428[0] = (float) class523_sub20.method16062(2131811589);
			aFloatArray9428[1] = (float) class523_sub20.method16091(1135792241);
			aFloatArray9428[2] = (float) class523_sub20.method16065(2034904396);
			aFloatArray9428[3] = 1.0F;
			OpenGL.glLightfv(i_836_, 4611, aFloatArray9428, 0);
			int i_837_ = class523_sub20.method16067(856453637);
			float f = class523_sub20.method16068((byte) 0) / 255.0F;
			aFloatArray9428[0] = (float) (i_837_ >> 16 & 0xff) * f;
			aFloatArray9428[1] = (float) (i_837_ >> 8 & 0xff) * f;
			aFloatArray9428[2] = (float) (i_837_ & 0xff) * f;
			OpenGL.glLightfv(i_836_, 4609, aFloatArray9428, 0);
			OpenGL.glLightf(i_836_, 4617, (1.0F / (float) (class523_sub20.method16066(-1879460461) * class523_sub20.method16066(-1879460461))));
			OpenGL.glEnable(i_836_);
		}
		for (/**/; i < anInt9352; i++)
			OpenGL.glDisable(16386 + i);
		anInt9352 = anInt9237;
	}

	public Class168_Sub1 method3248() {
		return new Class168_Sub1_Sub3(this);
	}

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

	final void method14774(float f, float f_838_) {
		aFloat9373 = f;
		aFloat9374 = f_838_;
		method14651();
	}

	public final void method3349(int i, int i_839_, int i_840_) {
		if (anInt9368 != i || anInt9369 != i_839_ || anInt9261 != i_840_) {
			anInt9368 = i;
			anInt9369 = i_839_;
			anInt9261 = i_840_;
			method14651();
			method14650();
		}
	}

	void method14775() {
		aFloatArray9427[0] = aFloat9359 * aFloat9356;
		aFloatArray9427[1] = aFloat9359 * aFloat9357;
		aFloatArray9427[2] = aFloat9359 * aFloat9268;
		aFloatArray9427[3] = 1.0F;
		OpenGL.glLightModelfv(2899, aFloatArray9427, 0);
	}

	void method14776() {
		aFloatArray9427[0] = aFloat9359 * aFloat9356;
		aFloatArray9427[1] = aFloat9359 * aFloat9357;
		aFloatArray9427[2] = aFloat9359 * aFloat9268;
		aFloatArray9427[3] = 1.0F;
		OpenGL.glLightModelfv(2899, aFloatArray9427, 0);
	}

	void method14777() {
		aFloatArray9427[0] = aFloat9359 * aFloat9356;
		aFloatArray9427[1] = aFloat9359 * aFloat9357;
		aFloatArray9427[2] = aFloat9359 * aFloat9268;
		aFloatArray9427[3] = 1.0F;
		OpenGL.glLightModelfv(2899, aFloatArray9427, 0);
	}

	void method14778() {
		aFloatArray9427[0] = aFloat9343 * aFloat9356;
		aFloatArray9427[1] = aFloat9343 * aFloat9357;
		aFloatArray9427[2] = aFloat9343 * aFloat9268;
		aFloatArray9427[3] = 1.0F;
		OpenGL.glLightfv(16384, 4609, aFloatArray9427, 0);
		aFloatArray9427[0] = -aFloat9250 * aFloat9356;
		aFloatArray9427[1] = -aFloat9250 * aFloat9357;
		aFloatArray9427[2] = -aFloat9250 * aFloat9268;
		aFloatArray9427[3] = 1.0F;
		OpenGL.glLightfv(16385, 4609, aFloatArray9427, 0);
	}

	void method14779() {
		aFloatArray9427[0] = aFloat9343 * aFloat9356;
		aFloatArray9427[1] = aFloat9343 * aFloat9357;
		aFloatArray9427[2] = aFloat9343 * aFloat9268;
		aFloatArray9427[3] = 1.0F;
		OpenGL.glLightfv(16384, 4609, aFloatArray9427, 0);
		aFloatArray9427[0] = -aFloat9250 * aFloat9356;
		aFloatArray9427[1] = -aFloat9250 * aFloat9357;
		aFloatArray9427[2] = -aFloat9250 * aFloat9268;
		aFloatArray9427[3] = 1.0F;
		OpenGL.glLightfv(16385, 4609, aFloatArray9427, 0);
	}

	public void method3060() {
		for (int i = 0; i < 3; i++) {
			if (aLongArray9329[i] != 0L) {
				OpenGL.glDeleteSync(aLongArray9329[i]);
				aLongArray9329[i] = 0L;
			}
		}
		anInt9319 = 0;
		anInt9441 = 0;
	}

	void method14780() {
		OpenGL.glLightfv(16384, 4611, aFloatArray9277, 0);
		OpenGL.glLightfv(16385, 4611, aFloatArray9354, 0);
	}

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

	void method14781() {
		if (aBool9367 && anInt9369 >= 0)
			OpenGL.glEnable(2912);
		else
			OpenGL.glDisable(2912);
	}

	public boolean method3371() {
		return true;
	}

	public final int method3034() {
		return anInt9293 + anInt9275 + anInt9324;
	}

	public Class185 method3396(int i) {
		return aBool9407 ? new Class185_Sub1_Sub2(this, i) : null;
	}

	final void method14782() {
		if (aBool9384) {
			OpenGL.glMatrixMode(5890);
			OpenGL.glLoadIdentity();
			OpenGL.glMatrixMode(5888);
			aBool9384 = false;
		}
	}

	final Class126_Sub1 method14783() {
		return (aClass185_Sub1_9388 != null ? aClass185_Sub1_9388.method15349() : null);
	}

	final Class126_Sub1 method14784() {
		return (aClass185_Sub1_9388 != null ? aClass185_Sub1_9388.method15349() : null);
	}

	final void method14785(int i) {
		if (i == 1)
			method14676(7681, 7681);
		else if (i == 0)
			method14676(8448, 8448);
		else if (i == 2)
			method14676(34165, 7681);
		else if (i == 3)
			method14676(260, 8448);
		else if (i == 4)
			method14676(34023, 34023);
	}

	boolean method14786() {
		if (aClass523_Sub17_Sub2_9279 != null) {
			if (!aClass523_Sub17_Sub2_9279.method16010()) {
				if (aClass141_9276.method2306(aClass523_Sub17_Sub2_9279))
					aClass154_9382.method2532();
				else
					return false;
			}
			return true;
		}
		return false;
	}

	final synchronized void method14787(int i) {
		Class523 class523 = new Class523();
		class523.aLong7065 = (long) i * 2947252533757437993L;
		aClass708_9301.method14236(class523, -51948167);
	}

	public void method3397(Class165 class165, float f, Class165 class165_841_, float f_842_, Class165 class165_843_, float f_844_) {
		int i = 0;
		if (class165_843_ == null && f_844_ > 0.0F)
			f_844_ = 0.0F;
		if (class165_841_ == null && f_842_ > 0.0F) {
			class165_841_ = class165_843_;
			class165_843_ = null;
			f_842_ = f_844_;
			f_844_ = 0.0F;
		}
		if (class165 == null && f > 0.0F) {
			class165 = class165_841_;
			class165_841_ = class165_843_;
			class165_843_ = null;
			f = f_842_;
			f_842_ = f_844_;
			f_844_ = 0.0F;
		}
		Class523_Sub17_Sub2.aClass165_Sub1Array11465[0] = (Class165_Sub1) class165;
		Class523_Sub17_Sub2.aFloatArray11461[0] = f;
		if (f > 0.0F)
			i++;
		Class523_Sub17_Sub2.aClass165_Sub1Array11465[1] = (Class165_Sub1) class165_841_;
		Class523_Sub17_Sub2.aFloatArray11461[1] = f_842_;
		if (f_842_ > 0.0F)
			i++;
		Class523_Sub17_Sub2.aClass165_Sub1Array11465[2] = (Class165_Sub1) class165_843_;
		Class523_Sub17_Sub2.aFloatArray11461[2] = f_844_;
		if (f_844_ > 0.0F)
			i++;
		Class523_Sub17_Sub2.anInt11456 = i;
		Class523_Sub17_Sub2.aFloat11455 = 1.0F - (f + f_842_ + f_844_);
	}

	final void method14788(boolean bool) {
		if (bool != aBool9367) {
			aBool9367 = bool;
			method14650();
			anInt9424 &= ~0x1f;
		}
	}

	public Class168_Sub1 method3399() {
		return new Class168_Sub1_Sub3(this);
	}

	public Class168_Sub1 method3028() {
		return new Class168_Sub1_Sub3(this);
	}

	public void method3323() {
		aBool9375 = false;
	}

	final void method14789() {
		aClass441_9365.method7086(aClass441_9316);
		aClass441_9365.method7089(aClass441_9292);
		aClass441_9365.method7114(aFloatArrayArray9415[0]);
		aClass441_9365.method7111(aFloatArrayArray9415[1]);
		aClass441_9365.method7106(aFloatArrayArray9415[2]);
		aClass441_9365.method7107(aFloatArrayArray9415[3]);
		aClass441_9365.method7123(aFloatArrayArray9415[4]);
		aClass441_9365.method7184(aFloatArrayArray9415[5]);
	}

	public Interface23 method3403(int i, int i_845_) {
		return new Class523_Sub27_Sub3(this, Class158.aClass158_1750, Class170.aClass170_1827, i, i_845_);
	}

	public Class148 method3102(int[] is, int i, int i_846_, int i_847_, int i_848_, boolean bool) {
		return new Class148_Sub2(this, i_847_, i_848_, is, i, i_846_);
	}

	final Interface18 method14790(int i, byte[] is, int i_849_, boolean bool) {
		if (aBool9320 && (!bool || aBool9404))
			return new Class135_Sub2(this, i, is, i_849_, bool);
		return new Class130_Sub1(this, i, is, i_849_);
	}

	public Class148 method3280(int i, int i_850_, int i_851_, int i_852_, boolean bool) {
		return new Class148_Sub2(this, i, i_850_, i_851_, i_852_);
	}

	final Interface15 method14791(int i, byte[] is, int i_853_, boolean bool) {
		if (aBool9320 && (!bool || aBool9404))
			return new Class135_Sub1(this, i, is, i_853_, bool);
		return new Class130_Sub2(this, i, is, i_853_);
	}

	final void method14792(Interface18 interface18) {
		if (anInterface18_9232 != interface18) {
			if (aBool9320)
				OpenGL.glBindBufferARB(34963, interface18.method1());
			anInterface18_9232 = interface18;
		}
	}

	final Interface15 method14793(int i, Buffer buffer, int i_854_, boolean bool) {
		if (aBool9320 && (!bool || aBool9404))
			return new Class135_Sub1(this, i, buffer, i_854_, bool);
		return new Class130_Sub2(this, i, buffer);
	}

	final Interface15 method14794(int i, Buffer buffer, int i_855_, boolean bool) {
		if (aBool9320 && (!bool || aBool9404))
			return new Class135_Sub1(this, i, buffer, i_855_, bool);
		return new Class130_Sub2(this, i, buffer);
	}

	final void method14795(Interface15 interface15) {
		if (anInterface15_9254 != interface15) {
			if (aBool9320)
				OpenGL.glBindBufferARB(34962, interface15.method1());
			anInterface15_9254 = interface15;
		}
	}

	final void method14796(Interface15 interface15) {
		if (anInterface15_9254 != interface15) {
			if (aBool9320)
				OpenGL.glBindBufferARB(34962, interface15.method1());
			anInterface15_9254 = interface15;
		}
	}

	final void method14797(Interface15 interface15) {
		if (anInterface15_9254 != interface15) {
			if (aBool9320)
				OpenGL.glBindBufferARB(34962, interface15.method1());
			anInterface15_9254 = interface15;
		}
	}

	public void method3284(int i, int i_856_, int i_857_, int i_858_, int i_859_, int i_860_) {
		float f = (float) i + 0.35F;
		float f_861_ = (float) i_856_ + 0.35F;
		float f_862_ = f + (float) i_857_ - 1.0F;
		float f_863_ = f_861_ + (float) i_858_ - 1.0F;
		method14716();
		method14687(i_860_);
		OpenGL.glColor4ub((byte) (i_859_ >> 16), (byte) (i_859_ >> 8), (byte) i_859_, (byte) (i_859_ >> 24));
		if (aBool9401)
			OpenGL.glDisable(32925);
		OpenGL.glBegin(2);
		OpenGL.glVertex2f(f, f_861_);
		OpenGL.glVertex2f(f, f_863_);
		OpenGL.glVertex2f(f_862_, f_863_);
		OpenGL.glVertex2f(f_862_, f_861_);
		OpenGL.glEnd();
		if (aBool9401)
			OpenGL.glEnable(32925);
	}

	final void method14798(Interface18 interface18) {
		if (anInterface18_9232 != interface18) {
			if (aBool9320)
				OpenGL.glBindBufferARB(34963, interface18.method1());
			anInterface18_9232 = interface18;
		}
	}

	final void method14799(Interface18 interface18) {
		if (anInterface18_9232 != interface18) {
			if (aBool9320)
				OpenGL.glBindBufferARB(34963, interface18.method1());
			anInterface18_9232 = interface18;
		}
	}

	final void method14800(Interface18 interface18) {
		if (anInterface18_9232 != interface18) {
			if (aBool9320)
				OpenGL.glBindBufferARB(34963, interface18.method1());
			anInterface18_9232 = interface18;
		}
	}

	void method3158(int i, int i_864_) throws Exception_Sub4 {
		try {
			aClass168_Sub2_1939.method15400();
		} catch (Exception exception) {
			/* empty */
		}
		if (anInterface25_1923 != null)
			anInterface25_1923.method20(2102233776);
	}

	public final synchronized void method3428(int i) {
		int i_865_ = 0;
		i &= 0x7fffffff;
		while (!aClass708_9296.method14237((byte) 104)) {
			Class523_Sub24 class523_sub24 = (Class523_Sub24) aClass708_9296.method14293(2056548683);
			anIntArray9303[i_865_++] = (int) (class523_sub24.aLong7065 * 1055205983951172633L);
			anInt9293 -= class523_sub24.anInt10542 * -677457577;
			if (i_865_ == 1000) {
				OpenGL.glDeleteBuffersARB(i_865_, anIntArray9303, 0);
				i_865_ = 0;
			}
		}
		if (i_865_ > 0) {
			OpenGL.glDeleteBuffersARB(i_865_, anIntArray9303, 0);
			i_865_ = 0;
		}
		while (!aClass708_9297.method14237((byte) 104)) {
			Class523_Sub24 class523_sub24 = (Class523_Sub24) aClass708_9297.method14293(1938906467);
			anIntArray9303[i_865_++] = (int) (class523_sub24.aLong7065 * 1055205983951172633L);
			anInt9275 -= class523_sub24.anInt10542 * -677457577;
			if (i_865_ == 1000) {
				OpenGL.glDeleteTextures(i_865_, anIntArray9303, 0);
				i_865_ = 0;
			}
		}
		if (i_865_ > 0) {
			OpenGL.glDeleteTextures(i_865_, anIntArray9303, 0);
			i_865_ = 0;
		}
		while (!aClass708_9298.method14237((byte) 104)) {
			Class523_Sub24 class523_sub24 = (Class523_Sub24) aClass708_9298.method14293(2085095270);
			anIntArray9303[i_865_++] = class523_sub24.anInt10542 * -677457577;
			if (i_865_ == 1000) {
				OpenGL.glDeleteFramebuffersEXT(i_865_, anIntArray9303, 0);
				i_865_ = 0;
			}
		}
		if (i_865_ > 0) {
			OpenGL.glDeleteFramebuffersEXT(i_865_, anIntArray9303, 0);
			i_865_ = 0;
		}
		while (!aClass708_9299.method14237((byte) 104)) {
			Class523_Sub24 class523_sub24 = (Class523_Sub24) aClass708_9299.method14293(2025597813);
			anIntArray9303[i_865_++] = (int) (class523_sub24.aLong7065 * 1055205983951172633L);
			anInt9324 -= class523_sub24.anInt10542 * -677457577;
			if (i_865_ == 1000) {
				OpenGL.glDeleteRenderbuffersEXT(i_865_, anIntArray9303, 0);
				i_865_ = 0;
			}
		}
		if (i_865_ > 0) {
			OpenGL.glDeleteRenderbuffersEXT(i_865_, anIntArray9303, 0);
			boolean bool = false;
		}
		while (!aClass708_9295.method14237((byte) 104)) {
			Class523_Sub24 class523_sub24 = (Class523_Sub24) aClass708_9295.method14293(2025485833);
			OpenGL.glDeleteLists((int) (class523_sub24.aLong7065 * 1055205983951172633L), class523_sub24.anInt10542 * -677457577);
		}
		while (!aClass708_9301.method14237((byte) 104)) {
			Class523 class523 = aClass708_9301.method14293(2031438067);
			OpenGL.glDeleteProgramARB((int) (class523.aLong7065 * 1055205983951172633L));
		}
		while (!aClass708_9385.method14237((byte) 104)) {
			Class523 class523 = aClass708_9385.method14293(2015583697);
			OpenGL.glDeleteShader((int) (class523.aLong7065 * 1055205983951172633L));
		}
		while (!aClass708_9295.method14237((byte) 104)) {
			Class523_Sub24 class523_sub24 = (Class523_Sub24) aClass708_9295.method14293(2091303884);
			OpenGL.glDeleteLists((int) (class523_sub24.aLong7065 * 1055205983951172633L), class523_sub24.anInt10542 * -677457577);
		}
		aClass154_9382.method2531();
		if (method3025() > 100663296 && TimeUtils.getCurrentTimeMilliseconds(1516375036) > aLong9302 + 60000L) {
			System.gc();
			aLong9302 = TimeUtils.getCurrentTimeMilliseconds(1516375036);
		}
		anInt9436 = i;
	}

	final void method14801(Class131 class131, Class131 class131_866_, Class131 class131_867_, Class131 class131_868_) {
		if (class131 != null) {
			method14662(class131.anInterface15_1558);
			OpenGL.glVertexPointer(class131.aByte1557, class131.aShort1556, anInterface15_9254.method82(), (anInterface15_9254.method83() + (long) class131.aByte1555));
			OpenGL.glEnableClientState(32884);
		} else
			OpenGL.glDisableClientState(32884);
		if (class131_866_ != null) {
			method14662(class131_866_.anInterface15_1558);
			OpenGL.glNormalPointer(class131_866_.aShort1556, anInterface15_9254.method82(), (anInterface15_9254.method83() + (long) class131_866_.aByte1555));
			OpenGL.glEnableClientState(32885);
		} else
			OpenGL.glDisableClientState(32885);
		if (class131_867_ != null) {
			method14662(class131_867_.anInterface15_1558);
			OpenGL.glColorPointer(class131_867_.aByte1557, class131_867_.aShort1556, anInterface15_9254.method82(), (anInterface15_9254.method83() + (long) class131_867_.aByte1555));
			OpenGL.glEnableClientState(32886);
		} else
			OpenGL.glDisableClientState(32886);
		if (class131_868_ != null) {
			method14662(class131_868_.anInterface15_1558);
			OpenGL.glTexCoordPointer(class131_868_.aByte1557, class131_868_.aShort1556, anInterface15_9254.method82(), (anInterface15_9254.method83() + (long) class131_868_.aByte1555));
			OpenGL.glEnableClientState(32888);
		} else
			OpenGL.glDisableClientState(32888);
	}

	final void method14802(int i, int i_869_, int i_870_) {
		OpenGL.glDrawArrays(i, i_869_, i_870_);
	}

	final void method14803(int i, int i_871_, int i_872_) {
		OpenGL.glDrawArrays(i, i_871_, i_872_);
	}

	final void method14804(Interface18 interface18, int i, int i_873_, int i_874_) {
		method14626(interface18);
		OpenGL.glDrawElements(i, i_874_, 5123, interface18.method2() + (long) (i_873_ * 2));
	}

	void method14805() {
		OpenGL.glLightfv(16384, 4611, aFloatArray9277, 0);
		OpenGL.glLightfv(16385, 4611, aFloatArray9354, 0);
	}

	final void method14806() {
		if (anInt9424 != 2) {
			method14642();
			method14788(false);
			method14682(false);
			method14684(false);
			method14620(false);
			method14670(-2);
			method14625((byte) 0);
			anInt9424 = 2;
		}
	}

	public void method3076(int i, int i_875_) {
		int i_876_ = 0;
		if ((i & 0x1) != 0) {
			OpenGL.glClearColor((float) (i_875_ & 0xff0000) / 1.671168E7F, (float) (i_875_ & 0xff00) / 65280.0F, (float) (i_875_ & 0xff) / 255.0F, (float) (i_875_ >>> 24) / 255.0F);
			i_876_ = 16384;
		}
		if ((i & 0x2) != 0) {
			method14620(true);
			i_876_ |= 0x100;
		}
		if ((i & 0x4) != 0)
			i_876_ |= 0x400;
		OpenGL.glClear(i_876_);
	}

	final void method14807() {
		if (anInt9424 != 4) {
			method14642();
			method14788(false);
			method14682(false);
			method14684(false);
			method14620(false);
			method14670(-2);
			method14687(1);
			method14625((byte) 0);
			anInt9424 = 4;
		}
	}

	final void method14808() {
		if (anInt9424 != 4) {
			method14642();
			method14788(false);
			method14682(false);
			method14684(false);
			method14620(false);
			method14670(-2);
			method14687(1);
			method14625((byte) 0);
			anInt9424 = 4;
		}
	}

	final void method14809() {
		if (anInt9424 != 4) {
			method14642();
			method14788(false);
			method14682(false);
			method14684(false);
			method14620(false);
			method14670(-2);
			method14687(1);
			method14625((byte) 0);
			anInt9424 = 4;
		}
	}

	public final void method3363(Class185 class185) {
		aClass185_Sub1_9388 = (Class185_Sub1) class185;
	}

	final void method14810(int i) {
		method14836(i, true);
	}

	final void method14811(int i, boolean bool) {
		method14672(i, bool, true);
	}

	final void method14812(int i, boolean bool, boolean bool_877_) {
		if (i != anInt9347 || aBool9376 != aBool9375) {
			Class126_Sub2 class126_sub2 = null;
			byte i_878_ = 0;
			byte i_879_ = 0;
			int i_880_ = 0;
			byte i_881_ = aBool9375 ? (byte) 3 : (byte) 0;
			byte i_882_ = 0;
			if (i >= 0) {
				Class177 class177 = aClass172_1916.method2895(i, -567191849);
				if (class177.aBool1881) {
					class126_sub2 = aClass154_9382.method2528(class177);
					if (class177.aByte1885 != 0 || class177.aByte1886 != 0)
						method14699(((float) (anInt9436 % 128000) / 1000.0F * (float) class177.aByte1885 / 64.0F % 1.0F), ((float) (anInt9436 % 128000) / 1000.0F * (float) class177.aByte1886 / 64.0F % 1.0F), 0.0F);
					else
						method14826();
					if (!aBool9375) {
						i_879_ = class177.aByte1906;
						i_880_ = class177.anInt1865 * -2058069491;
						i_881_ = class177.aByte1905;
					}
					i_878_ = class177.aByte1870;
				} else
					method14826();
				if (class177.aClass593_1884 == Class593.aClass593_7812)
					i_882_ = class177.aByte1889;
			} else
				method14826();
			method14625(i_882_);
			aClass120_9429.method2069(i_881_, i_879_, i_880_, bool, bool_877_);
			if (!aClass120_9429.method2070(class126_sub2, i_878_)) {
				method14711(class126_sub2);
				method14785(i_878_);
			}
			aBool9376 = aBool9375;
			anInt9347 = i;
		}
		anInt9424 &= ~0x7;
	}

	final void method14813() {
		if (anInt9335 != 2) {
			anInt9335 = 2;
			method14644(aClass441_9292.aFloatArray4916);
			method14713();
			method14633();
			method14634();
			anInt9424 &= ~0x7;
		}
	}

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

	final void method14814(Class126 class126) {
		Class126 class126_883_ = aClass126Array9386[anInt9285];
		if (class126_883_ != class126) {
			if (class126 != null) {
				if (class126_883_ != null) {
					if (class126.anInt1538 != class126_883_.anInt1538) {
						OpenGL.glDisable(class126_883_.anInt1538);
						OpenGL.glEnable(class126.anInt1538);
					}
				} else
					OpenGL.glEnable(class126.anInt1538);
				OpenGL.glBindTexture(class126.anInt1538, class126.anInt1537);
			} else
				OpenGL.glDisable(class126_883_.anInt1538);
			aClass126Array9386[anInt9285] = class126;
		}
		anInt9424 &= ~0x11;
	}

	final void method14815(int i) {
		if (i == 1)
			method14676(7681, 7681);
		else if (i == 0)
			method14676(8448, 8448);
		else if (i == 2)
			method14676(34165, 7681);
		else if (i == 3)
			method14676(260, 8448);
		else if (i == 4)
			method14676(34023, 34023);
	}

	Class168_Sub2 method3048(Canvas canvas, int i, int i_884_) {
		return new Class168_Sub2_Sub3(this, canvas);
	}

	final int method14816(int i) {
		if (i == 1)
			return 7681;
		if (i == 0)
			return 8448;
		if (i == 2)
			return 34165;
		if (i == 3)
			return 260;
		if (i == 4)
			return 34023;
		throw new IllegalArgumentException();
	}

	public boolean method3057() {
		return true;
	}

	final void method14817(int i, int i_885_) {
		if (anInt9285 == 0) {
			boolean bool = false;
			if (anInt9399 != i) {
				OpenGL.glTexEnvi(8960, 34161, i);
				anInt9399 = i;
				bool = true;
			}
			if (anInt9383 != i_885_) {
				OpenGL.glTexEnvi(8960, 34162, i_885_);
				anInt9383 = i_885_;
				bool = true;
			}
			if (bool)
				anInt9424 &= ~0x1d;
		} else {
			OpenGL.glTexEnvi(8960, 34161, i);
			OpenGL.glTexEnvi(8960, 34162, i_885_);
		}
	}

	final void method14818(int i, int i_886_, int i_887_) {
		OpenGL.glTexEnvi(8960, 34184 + i, i_886_);
		OpenGL.glTexEnvi(8960, 34200 + i, i_887_);
	}

	final void method14819(int i, int i_888_, int i_889_) {
		OpenGL.glTexEnvi(8960, 34184 + i, i_888_);
		OpenGL.glTexEnvi(8960, 34200 + i, i_889_);
	}

	final void method14820(int i) {
		aFloatArray9427[0] = (float) (i & 0xff0000) / 1.671168E7F;
		aFloatArray9427[1] = (float) (i & 0xff00) / 65280.0F;
		aFloatArray9427[2] = (float) (i & 0xff) / 255.0F;
		aFloatArray9427[3] = (float) (i >>> 24) / 255.0F;
		OpenGL.glTexEnvfv(8960, 8705, aFloatArray9427, 0);
	}

	final void method14821(int i) {
		aFloatArray9427[0] = (float) (i & 0xff0000) / 1.671168E7F;
		aFloatArray9427[1] = (float) (i & 0xff00) / 65280.0F;
		aFloatArray9427[2] = (float) (i & 0xff) / 255.0F;
		aFloatArray9427[3] = (float) (i >>> 24) / 255.0F;
		OpenGL.glTexEnvfv(8960, 8705, aFloatArray9427, 0);
	}

	final void method14822(int i) {
		aFloatArray9427[0] = (float) (i & 0xff0000) / 1.671168E7F;
		aFloatArray9427[1] = (float) (i & 0xff00) / 65280.0F;
		aFloatArray9427[2] = (float) (i & 0xff) / 255.0F;
		aFloatArray9427[3] = (float) (i >>> 24) / 255.0F;
		OpenGL.glTexEnvfv(8960, 8705, aFloatArray9427, 0);
	}

	public boolean method3032() {
		return aBool9401 && (!method3146() || aBool9402);
	}

	final void method14823(float f, float f_890_, float f_891_, float f_892_) {
		aFloatArray9427[0] = f;
		aFloatArray9427[1] = f_890_;
		aFloatArray9427[2] = f_891_;
		aFloatArray9427[3] = f_892_;
		OpenGL.glTexEnvfv(8960, 8705, aFloatArray9427, 0);
	}

	public void method3398(float f, float f_893_, float f_894_, float f_895_, float f_896_) {
		Class523_Sub17_Sub1.aFloat11406 = f;
		Class523_Sub17_Sub1.aFloat11402 = f_893_;
		Class523_Sub17_Sub1.aFloat11403 = f_894_;
		Class523_Sub17_Sub1.aFloat11401 = f_895_;
		Class523_Sub17_Sub1.aFloat11405 = f_896_;
	}

	final void method14824(Class441 class441) {
		OpenGL.glLoadMatrixf(class441.aFloatArray4916, 0);
	}

	final void method14825() {
		if (aBool9384) {
			OpenGL.glMatrixMode(5890);
			OpenGL.glLoadIdentity();
			OpenGL.glMatrixMode(5888);
			aBool9384 = false;
		}
	}

	final void method14826() {
		if (aBool9384) {
			OpenGL.glMatrixMode(5890);
			OpenGL.glLoadIdentity();
			OpenGL.glMatrixMode(5888);
			aBool9384 = false;
		}
	}

	final void method14827() {
		if (aBool9384) {
			OpenGL.glMatrixMode(5890);
			OpenGL.glLoadIdentity();
			OpenGL.glMatrixMode(5888);
			aBool9384 = false;
		}
	}

	final void method14828() {
		if (aBool9384) {
			OpenGL.glMatrixMode(5890);
			OpenGL.glLoadIdentity();
			OpenGL.glMatrixMode(5888);
			aBool9384 = false;
		}
	}

	public Class150 method3370() {
		int i = -1;
		if (aString9350.indexOf("nvidia") != -1)
			i = 4318;
		else if (aString9350.indexOf("intel") != -1)
			i = 32902;
		else if (aString9350.indexOf("ati") != -1)
			i = 4098;
		return new Class150(i, "OpenGL", anInt9392, aString9390, 0L, false);
	}

	final void method14829(boolean bool) {
		if (bool != aBool9367) {
			aBool9367 = bool;
			method14650();
			anInt9424 &= ~0x1f;
		}
	}

	final void method14830(boolean bool) {
		if (bool != aBool9349) {
			aBool9349 = bool;
			method14623();
			anInt9424 &= ~0x7;
		}
	}

	final void method14831() {
		OpenGL.glPushMatrix();
	}

	public void method3069(int[] is) {
		is[0] = anInt9344;
		is[1] = anInt9345;
		is[2] = anInt9346;
		is[3] = anInt9360;
	}

	final void method14832(boolean bool) {
		if (bool != aBool9328) {
			aBool9328 = bool;
			method14623();
		}
	}

	final void method14833(Interface18 interface18, int i, int i_897_, int i_898_) {
		method14626(interface18);
		OpenGL.glDrawElements(i, i_898_, 5123, interface18.method2() + (long) (i_897_ * 2));
	}

	final void method14834(boolean bool) {
		if (bool != aBool9312) {
			aBool9312 = bool;
			method14686();
			anInt9424 &= ~0x1f;
		}
	}

	final void method14835() {
		OpenGL.glDepthMask(aBool9403 && aBool9351);
	}

	public Class441 method3288() {
		return aClass441_9281;
	}

	final void method14836(int i, boolean bool) {
		method14672(i, bool, true);
	}

	final void method14837() {
		if (aBool9312 && aBool9339)
			OpenGL.glEnable(2929);
		else
			OpenGL.glDisable(2929);
	}

	final void method14838(int i) {
		if (anInt9305 != i) {
			int i_899_;
			boolean bool;
			boolean bool_900_;
			boolean bool_901_;
			if (i == 1) {
				i_899_ = 1;
				bool = true;
				bool_900_ = true;
				bool_901_ = true;
			} else if (i == 2) {
				i_899_ = 2;
				bool = true;
				bool_900_ = false;
				bool_901_ = true;
			} else if (i == 128) {
				i_899_ = 3;
				bool = true;
				bool_900_ = true;
				bool_901_ = true;
			} else if (i == 3) {
				i_899_ = 0;
				bool = true;
				bool_900_ = true;
				bool_901_ = false;
			} else {
				i_899_ = 0;
				bool = true;
				bool_900_ = false;
				bool_901_ = false;
			}
			if (bool != aBool9323) {
				OpenGL.glColorMask(bool, bool, bool, true);
				aBool9323 = bool;
			}
			if (bool_900_ != aBool9310) {
				aBool9310 = bool_900_;
				method14690();
			}
			if (bool_901_ != aBool9308) {
				aBool9308 = bool_901_;
				method14688();
			}
			if (i_899_ != anInt9306) {
				anInt9306 = i_899_;
				method14689();
			}
			anInt9305 = i;
			anInt9424 &= ~0x1c;
		}
	}

	final void method14839(int i) {
		if (anInt9305 != i) {
			int i_902_;
			boolean bool;
			boolean bool_903_;
			boolean bool_904_;
			if (i == 1) {
				i_902_ = 1;
				bool = true;
				bool_903_ = true;
				bool_904_ = true;
			} else if (i == 2) {
				i_902_ = 2;
				bool = true;
				bool_903_ = false;
				bool_904_ = true;
			} else if (i == 128) {
				i_902_ = 3;
				bool = true;
				bool_903_ = true;
				bool_904_ = true;
			} else if (i == 3) {
				i_902_ = 0;
				bool = true;
				bool_903_ = true;
				bool_904_ = false;
			} else {
				i_902_ = 0;
				bool = true;
				bool_903_ = false;
				bool_904_ = false;
			}
			if (bool != aBool9323) {
				OpenGL.glColorMask(bool, bool, bool, true);
				aBool9323 = bool;
			}
			if (bool_903_ != aBool9310) {
				aBool9310 = bool_903_;
				method14690();
			}
			if (bool_904_ != aBool9308) {
				aBool9308 = bool_904_;
				method14688();
			}
			if (i_902_ != anInt9306) {
				anInt9306 = i_902_;
				method14689();
			}
			anInt9305 = i;
			anInt9424 &= ~0x1c;
		}
	}

	final void method14840() {
		if (aBool9308)
			OpenGL.glEnable(3042);
		else
			OpenGL.glDisable(3042);
	}

	final Interface15 method14841(int i, Buffer buffer, int i_905_, boolean bool) {
		if (aBool9320 && (!bool || aBool9404))
			return new Class135_Sub1(this, i, buffer, i_905_, bool);
		return new Class130_Sub2(this, i, buffer);
	}

	final void method14842() {
		if (aBool9308)
			OpenGL.glEnable(3042);
		else
			OpenGL.glDisable(3042);
	}

	final void method14843() {
		if (aBool9312 && aBool9339)
			OpenGL.glEnable(2929);
		else
			OpenGL.glDisable(2929);
	}

	final void method14844() {
		if (aBool9330) {
			int i = 0;
			int i_906_ = 0;
			if (anInt9442 == 0) {
				i = 0;
				i_906_ = 0;
			} else if (anInt9442 == 1) {
				i = 1;
				i_906_ = 0;
			} else if (anInt9442 == 2) {
				i = 1;
				i_906_ = 1;
			} else if (anInt9442 == 3) {
				i = 0;
				i_906_ = 1;
			}
			if (anInt9306 == 1)
				OpenGL.glBlendFuncSeparate(770, 771, i, i_906_);
			else if (anInt9306 == 2)
				OpenGL.glBlendFuncSeparate(1, 1, i, i_906_);
			else if (anInt9306 == 3)
				OpenGL.glBlendFuncSeparate(774, 1, i, i_906_);
			else if (anInt9306 == 0)
				OpenGL.glBlendFuncSeparate(1, 0, i, i_906_);
		} else if (anInt9306 == 1) {
			OpenGL.glEnable(3042);
			OpenGL.glBlendFunc(770, 771);
		} else if (anInt9306 == 2) {
			OpenGL.glEnable(3042);
			OpenGL.glBlendFunc(1, 1);
		} else if (anInt9306 == 3) {
			OpenGL.glEnable(3042);
			OpenGL.glBlendFunc(774, 1);
		} else
			OpenGL.glDisable(3042);
	}

	final void method14845() {
		if (aBool9330) {
			int i = 0;
			int i_907_ = 0;
			if (anInt9442 == 0) {
				i = 0;
				i_907_ = 0;
			} else if (anInt9442 == 1) {
				i = 1;
				i_907_ = 0;
			} else if (anInt9442 == 2) {
				i = 1;
				i_907_ = 1;
			} else if (anInt9442 == 3) {
				i = 0;
				i_907_ = 1;
			}
			if (anInt9306 == 1)
				OpenGL.glBlendFuncSeparate(770, 771, i, i_907_);
			else if (anInt9306 == 2)
				OpenGL.glBlendFuncSeparate(1, 1, i, i_907_);
			else if (anInt9306 == 3)
				OpenGL.glBlendFuncSeparate(774, 1, i, i_907_);
			else if (anInt9306 == 0)
				OpenGL.glBlendFuncSeparate(1, 0, i, i_907_);
		} else if (anInt9306 == 1) {
			OpenGL.glEnable(3042);
			OpenGL.glBlendFunc(770, 771);
		} else if (anInt9306 == 2) {
			OpenGL.glEnable(3042);
			OpenGL.glBlendFunc(1, 1);
		} else if (anInt9306 == 3) {
			OpenGL.glEnable(3042);
			OpenGL.glBlendFunc(774, 1);
		} else
			OpenGL.glDisable(3042);
	}

	final void method14846(int i) {
		if (anInt9442 != i) {
			anInt9442 = i;
			method14689();
		}
	}

	final void method14847() {
		if (aBool9310)
			OpenGL.glEnable(3008);
		else
			OpenGL.glDisable(3008);
		OpenGL.glAlphaFunc(516, (float) (aByte9311 & 0xff) / 255.0F);
		if (anInt9381 > 0) {
			if (aByte9311 == 0)
				OpenGL.glDisable(32926);
			else
				OpenGL.glEnable(32926);
		}
	}

	final void method14848() {
		if (aBool9310)
			OpenGL.glEnable(3008);
		else
			OpenGL.glDisable(3008);
		OpenGL.glAlphaFunc(516, (float) (aByte9311 & 0xff) / 255.0F);
		if (anInt9381 > 0) {
			if (aByte9311 == 0)
				OpenGL.glDisable(32926);
			else
				OpenGL.glEnable(32926);
		}
	}

	public void method3153(float f, float f_908_, float f_909_, float[] fs) {
		float f_910_ = (aClass441_9365.aFloatArray4916[15] + aClass441_9365.aFloatArray4916[3] * f + aClass441_9365.aFloatArray4916[7] * f_908_ + aClass441_9365.aFloatArray4916[11] * f_909_);
		float f_911_ = (aClass441_9365.aFloatArray4916[12] + aClass441_9365.aFloatArray4916[0] * f + aClass441_9365.aFloatArray4916[4] * f_908_ + aClass441_9365.aFloatArray4916[8] * f_909_);
		float f_912_ = (aClass441_9365.aFloatArray4916[13] + aClass441_9365.aFloatArray4916[1] * f + aClass441_9365.aFloatArray4916[5] * f_908_ + aClass441_9365.aFloatArray4916[9] * f_909_);
		float f_913_ = (aClass441_9316.aFloatArray4916[14] + aClass441_9316.aFloatArray4916[2] * f + aClass441_9316.aFloatArray4916[6] * f_908_ + aClass441_9316.aFloatArray4916[10] * f_909_);
		fs[0] = aFloat9274 + aFloat9363 * f_911_ / f_910_;
		fs[1] = aFloat9284 + aFloat9326 * f_912_ / f_910_;
		fs[2] = f_913_;
	}

	final void method14849() {
		if (aBool9310)
			OpenGL.glEnable(3008);
		else
			OpenGL.glDisable(3008);
		OpenGL.glAlphaFunc(516, (float) (aByte9311 & 0xff) / 255.0F);
		if (anInt9381 > 0) {
			if (aByte9311 == 0)
				OpenGL.glDisable(32926);
			else
				OpenGL.glEnable(32926);
		}
	}

	final void method14850() {
		if (aBool9310)
			OpenGL.glEnable(3008);
		else
			OpenGL.glDisable(3008);
		OpenGL.glAlphaFunc(516, (float) (aByte9311 & 0xff) / 255.0F);
		if (anInt9381 > 0) {
			if (aByte9311 == 0)
				OpenGL.glDisable(32926);
			else
				OpenGL.glEnable(32926);
		}
	}

	public void method3272(int i, int i_914_, int i_915_, int i_916_, int i_917_, int i_918_) {
		float f = (float) i + 0.35F;
		float f_919_ = (float) i_914_ + 0.35F;
		float f_920_ = f + (float) i_915_ - 1.0F;
		float f_921_ = f_919_ + (float) i_916_ - 1.0F;
		method14716();
		method14687(i_918_);
		OpenGL.glColor4ub((byte) (i_917_ >> 16), (byte) (i_917_ >> 8), (byte) i_917_, (byte) (i_917_ >> 24));
		if (aBool9401)
			OpenGL.glDisable(32925);
		OpenGL.glBegin(2);
		OpenGL.glVertex2f(f, f_919_);
		OpenGL.glVertex2f(f, f_921_);
		OpenGL.glVertex2f(f_920_, f_921_);
		OpenGL.glVertex2f(f_920_, f_919_);
		OpenGL.glEnd();
		if (aBool9401)
			OpenGL.glEnable(32925);
	}

	final void method14851(byte i) {
		if (aByte9311 != i) {
			aByte9311 = i;
			if (i == 0) {
				method14683(2);
				method14687(1);
			} else {
				method14683(3);
				method14687(3);
			}
			method14690();
		}
	}

	final void method14852(byte i) {
		if (aByte9311 != i) {
			aByte9311 = i;
			if (i == 0) {
				method14683(2);
				method14687(1);
			} else {
				method14683(3);
				method14687(3);
			}
			method14690();
		}
	}

	final void method14853(byte i) {
		if (aByte9311 != i) {
			aByte9311 = i;
			if (i == 0) {
				method14683(2);
				method14687(1);
			} else {
				method14683(3);
				method14687(3);
			}
			method14690();
		}
	}

	final synchronized void method14854(int i, int i_922_) {
		Class523_Sub24 class523_sub24 = new Class523_Sub24(i_922_);
		class523_sub24.aLong7065 = (long) i * 2947252533757437993L;
		aClass708_9296.method14236(class523_sub24, 310252924);
	}

	public final void method3300(Class435 class435) {
		aClass435_9233.method6803(class435);
		aClass441_9316.method7090(aClass435_9233);
		aClass435_9331.method6803(class435);
		aClass435_9331.method6857();
		aClass441_9317.method7090(aClass435_9331);
		method14789();
		if (anInt9335 != 1)
			method14713();
	}

	final synchronized void method14855(int i, int i_923_) {
		Class523_Sub24 class523_sub24 = new Class523_Sub24(i_923_);
		class523_sub24.aLong7065 = (long) i * 2947252533757437993L;
		aClass708_9297.method14236(class523_sub24, 511893207);
	}

	final synchronized void method14856(int i, int i_924_) {
		Class523_Sub24 class523_sub24 = new Class523_Sub24(i_924_);
		class523_sub24.aLong7065 = (long) i * 2947252533757437993L;
		aClass708_9297.method14236(class523_sub24, -1375596980);
	}

	public void method3223(int i, int i_925_, int i_926_, int i_927_) {
		anInt9344 = i;
		anInt9345 = i_925_;
		anInt9346 = i_926_;
		anInt9360 = i_927_;
		method14633();
	}

	public final void method3361(float f) {
		if (aFloat9359 != f) {
			aFloat9359 = f;
			method14647();
		}
	}

	public int[] method3418() {
		int[] is = new int[1];
		OpenGL.glGetIntegerv(34466, is, 0);
		int i = is[0];
		if (i == 0)
			return null;
		int[] is_928_ = new int[i];
		OpenGL.glGetIntegerv(34467, is_928_, 0);
		return is_928_;
	}

	final void method14857(float f, float f_929_, float f_930_, float f_931_) {
		aFloatArray9427[0] = f;
		aFloatArray9427[1] = f_929_;
		aFloatArray9427[2] = f_930_;
		aFloatArray9427[3] = f_931_;
		OpenGL.glTexEnvfv(8960, 8705, aFloatArray9427, 0);
	}

	void method14858(int i) {
		anInt9314 = i;
		if (anInt9314 == 1)
			OpenGL.glDisable(2884);
		else {
			OpenGL.glEnable(2884);
			if (anInt9314 == 2)
				OpenGL.glCullFace(1029);
			else if (anInt9314 == 3)
				OpenGL.glCullFace(1028);
		}
	}

	void method14859(int i) {
		anInt9314 = i;
		if (anInt9314 == 1)
			OpenGL.glDisable(2884);
		else {
			OpenGL.glEnable(2884);
			if (anInt9314 == 2)
				OpenGL.glCullFace(1029);
			else if (anInt9314 == 3)
				OpenGL.glCullFace(1028);
		}
	}

	void method14860(int i) {
		anInt9314 = i;
		if (anInt9314 == 1)
			OpenGL.glDisable(2884);
		else {
			OpenGL.glEnable(2884);
			if (anInt9314 == 2)
				OpenGL.glCullFace(1029);
			else if (anInt9314 == 3)
				OpenGL.glCullFace(1028);
		}
	}

	void method14861(int i, int i_932_) {
		method3066();
		method3161(i, i_932_, -553778042);
		if (aBool9405) {
			aClass148_9430 = method3136(i, i_932_, true, true);
			aClass168_Sub1_9378 = method3248();
			aClass168_Sub1_9378.method14424(0, aClass148_9430.method2430());
			OpenGL.glGenBuffersARB(3, anIntArray9438, 0);
			for (int i_933_ = 0; i_933_ < 3; i_933_++) {
				OpenGL.glBindBufferARB(35051, anIntArray9438[i_933_]);
				OpenGL.glBufferDataARBa(35051, i * i_932_ * 4, 0L, 35041);
				OpenGL.glBindBufferARB(35051, 0);
			}
		} else {
			aClass148_9430 = method3136(i, i_932_, true, true);
			aClass168_Sub1_9378 = method3248();
			aClass168_Sub1_9378.method14424(0, aClass148_9430.method2430());
		}
	}

	public boolean method3351() {
		return true;
	}

	static int method14862(Class158 class158, Class170 class170) {
		if (class170 == Class170.aClass170_1822) {
			switch (class158.anInt1742 * 178485697) {
			case 6:
				return 6406;
			case 7:
				return 6410;
			case 5:
				return 6409;
			case 8:
				return 6408;
			case 4:
				return 6407;
			default:
				throw new IllegalArgumentException();
			}
		}
		if (class170 == Class170.aClass170_1826) {
			switch (class158.anInt1742 * 178485697) {
			case 8:
				return 32859;
			case 9:
				return 33189;
			case 6:
				return 32830;
			case 5:
				return 32834;
			case 4:
				return 32852;
			default:
				throw new IllegalArgumentException();
			case 7:
				return 36219;
			}
		}
		if (class170 == Class170.aClass170_1827) {
			switch (class158.anInt1742 * 178485697) {
			case 9:
				return 33190;
			default:
				throw new IllegalArgumentException();
			}
		}
		if (class170 == Class170.aClass170_1832) {
			switch (class158.anInt1742 * 178485697) {
			case 7:
				return 34847;
			default:
				throw new IllegalArgumentException();
			case 6:
				return 34844;
			case 5:
				return 34846;
			case 4:
				return 34843;
			case 8:
				return 34842;
			}
		}
		if (class170 == Class170.aClass170_1825) {
			switch (class158.anInt1742 * 178485697) {
			case 5:
				return 34840;
			case 8:
				return 34836;
			case 4:
				return 34837;
			case 6:
				return 34838;
			default:
				throw new IllegalArgumentException();
			case 7:
				return 34841;
			}
		}
		throw new IllegalArgumentException();
	}

	static int method14863(Class158 class158, Class170 class170) {
		if (class170 == Class170.aClass170_1822) {
			switch (class158.anInt1742 * 178485697) {
			case 6:
				return 6406;
			case 7:
				return 6410;
			case 5:
				return 6409;
			case 8:
				return 6408;
			case 4:
				return 6407;
			default:
				throw new IllegalArgumentException();
			}
		}
		if (class170 == Class170.aClass170_1826) {
			switch (class158.anInt1742 * 178485697) {
			case 8:
				return 32859;
			case 9:
				return 33189;
			case 6:
				return 32830;
			case 5:
				return 32834;
			case 4:
				return 32852;
			default:
				throw new IllegalArgumentException();
			case 7:
				return 36219;
			}
		}
		if (class170 == Class170.aClass170_1827) {
			switch (class158.anInt1742 * 178485697) {
			case 9:
				return 33190;
			default:
				throw new IllegalArgumentException();
			}
		}
		if (class170 == Class170.aClass170_1832) {
			switch (class158.anInt1742 * 178485697) {
			case 7:
				return 34847;
			default:
				throw new IllegalArgumentException();
			case 6:
				return 34844;
			case 5:
				return 34846;
			case 4:
				return 34843;
			case 8:
				return 34842;
			}
		}
		if (class170 == Class170.aClass170_1825) {
			switch (class158.anInt1742 * 178485697) {
			case 5:
				return 34840;
			case 8:
				return 34836;
			case 4:
				return 34837;
			case 6:
				return 34838;
			default:
				throw new IllegalArgumentException();
			case 7:
				return 34841;
			}
		}
		throw new IllegalArgumentException();
	}

	public boolean method3420() {
		return true;
	}

	public void method3256(int i, Class163 class163) {
		anInt9228 = i;
		aClass163_9377 = class163;
		aBool9375 = true;
	}

	public boolean method3100() {
		return true;
	}

	public Interface22 method3440(int i, int i_934_, Class158 class158, Class170 class170, int i_935_) {
		return new Class523_Sub27_Sub3(this, class158, class170, i, i_934_, i_935_);
	}

	public Interface22 method3441(int i, int i_936_, Class158 class158, Class170 class170, int i_937_) {
		return new Class523_Sub27_Sub3(this, class158, class170, i, i_936_, i_937_);
	}

	final void method3465(float f, float f_938_, float f_939_, float f_940_, float f_941_, float f_942_) {
		Class523_Sub17_Sub3.aFloat11597 = f;
		Class523_Sub17_Sub3.aFloat11596 = f_938_;
		Class523_Sub17_Sub3.aFloat11595 = f_939_;
	}

	public int method3388(int i, int i_943_, int i_944_, int i_945_, int i_946_, int i_947_) {
		int i_948_ = 0;
		float f = (aClass441_9365.aFloatArray4916[14] + aClass441_9365.aFloatArray4916[2] * (float) i + aClass441_9365.aFloatArray4916[6] * (float) i_943_ + aClass441_9365.aFloatArray4916[10] * (float) i_944_);
		float f_949_ = (aClass441_9365.aFloatArray4916[14] + aClass441_9365.aFloatArray4916[2] * (float) i_945_ + aClass441_9365.aFloatArray4916[6] * (float) i_946_ + aClass441_9365.aFloatArray4916[10] * (float) i_947_);
		float f_950_ = (aClass441_9365.aFloatArray4916[15] + aClass441_9365.aFloatArray4916[3] * (float) i + aClass441_9365.aFloatArray4916[7] * (float) i_943_ + aClass441_9365.aFloatArray4916[11] * (float) i_944_);
		float f_951_ = (aClass441_9365.aFloatArray4916[15] + aClass441_9365.aFloatArray4916[3] * (float) i_945_ + aClass441_9365.aFloatArray4916[7] * (float) i_946_ + aClass441_9365.aFloatArray4916[11] * (float) i_947_);
		if (f < -f_950_ && f_949_ < -f_951_)
			i_948_ |= 0x10;
		else if (f > f_950_ && f_949_ > f_951_)
			i_948_ |= 0x20;
		float f_952_ = (aClass441_9365.aFloatArray4916[12] + aClass441_9365.aFloatArray4916[0] * (float) i + aClass441_9365.aFloatArray4916[4] * (float) i_943_ + aClass441_9365.aFloatArray4916[8] * (float) i_944_);
		float f_953_ = (aClass441_9365.aFloatArray4916[12] + aClass441_9365.aFloatArray4916[0] * (float) i_945_ + aClass441_9365.aFloatArray4916[4] * (float) i_946_ + aClass441_9365.aFloatArray4916[8] * (float) i_947_);
		if (f_952_ < -f_950_ && f_953_ < -f_951_)
			i_948_ |= 0x1;
		if (f_952_ > f_950_ && f_953_ > f_951_)
			i_948_ |= 0x2;
		float f_954_ = (aClass441_9365.aFloatArray4916[13] + aClass441_9365.aFloatArray4916[1] * (float) i + aClass441_9365.aFloatArray4916[5] * (float) i_943_ + aClass441_9365.aFloatArray4916[9] * (float) i_944_);
		float f_955_ = (aClass441_9365.aFloatArray4916[13] + aClass441_9365.aFloatArray4916[1] * (float) i_945_ + aClass441_9365.aFloatArray4916[5] * (float) i_946_ + aClass441_9365.aFloatArray4916[9] * (float) i_947_);
		if (f_954_ < -f_950_ && f_955_ < -f_951_)
			i_948_ |= 0x4;
		if (f_954_ > f_950_ && f_955_ > f_951_)
			i_948_ |= 0x8;
		return i_948_;
	}

	public Class435 method3301() {
		return new Class435(aClass435_9233);
	}

	public final void method3358(Class435 class435) {
		aClass435_9233.method6803(class435);
		aClass441_9316.method7090(aClass435_9233);
		aClass435_9331.method6803(class435);
		aClass435_9331.method6857();
		aClass441_9317.method7090(aClass435_9331);
		method14789();
		if (anInt9335 != 1)
			method14713();
	}
}
