/* Class87_Sub2_Sub2 - Decompiled by JODE
 * Visit http://jode.sourceforge.net/
 */
import java.awt.Canvas;

import jaclib.memory.Stream;

import jaggl.MapBuffer;
import jaggl.OpenGL;

public final class Class87_Sub2_Sub2 extends Class87_Sub2
{
    boolean aBool10984;
    Class420 aClass420_10985 = new Class420();
    Class420 aClass420_10986 = new Class420();
    Class420 aClass420_10987 = new Class420();
    int anInt10988;
    Class420 aClass420_10989;
    Class420 aClass420_10990;
    Class420 aClass420_10991;
    long aLong10992;
    float[] aFloatArray10993;
    boolean aBool10994;
    boolean aBool10995;
    boolean aBool10996;
    boolean aBool10997;
    boolean aBool10998;
    Class231_Sub2 aClass231_Sub2_10999;
    int[] anIntArray11000;
    OpenGL anOpenGL11001;
    String aString11002;
    String aString11003;
    int[] anIntArray11004;
    Class118_Sub1 aClass118_Sub1_11005;
    boolean aBool11006;
    boolean aBool11007;
    boolean aBool11008;
    Class420 aClass420_11009 = new Class420();
    int anInt11010;
    float[] aFloatArray11011;
    Class231_Sub1[] aClass231_Sub1Array11012;
    int anInt11013;
    
    public final synchronized void method2081(int i) {
	int i_0_ = 0;
	i &= 0x7fffffff;
	while (!((Class87_Sub2_Sub2) this).aClass420_10986
		    .method7467(1297434434)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub2_Sub2) this)
				      .aClass420_10986.method7458(-1173893393);
	    ((Class87_Sub2_Sub2) this).anIntArray11004[i_0_++]
		= (int) (class243_sub9.aLong3905 * -3545590250604181279L);
	    anInt9227 -= class243_sub9.anInt8679 * 1627367037;
	    if (i_0_ == 1000) {
		OpenGL.glDeleteBuffersARB(i_0_, (((Class87_Sub2_Sub2) this)
						 .anIntArray11004), 0);
		i_0_ = 0;
	    }
	}
	if (i_0_ > 0) {
	    OpenGL.glDeleteBuffersARB(i_0_, (((Class87_Sub2_Sub2) this)
					     .anIntArray11004), 0);
	    i_0_ = 0;
	}
	while (!((Class87_Sub2_Sub2) this).aClass420_10987
		    .method7467(1642679872)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub2_Sub2) this)
				      .aClass420_10987.method7458(-1788894307);
	    ((Class87_Sub2_Sub2) this).anIntArray11004[i_0_++]
		= (int) (class243_sub9.aLong3905 * -3545590250604181279L);
	    anInt9146 -= class243_sub9.anInt8679 * 1627367037;
	    if (i_0_ == 1000) {
		OpenGL.glDeleteTextures(i_0_, (((Class87_Sub2_Sub2) this)
					       .anIntArray11004), 0);
		i_0_ = 0;
	    }
	}
	if (i_0_ > 0) {
	    OpenGL.glDeleteTextures(i_0_,
				    ((Class87_Sub2_Sub2) this).anIntArray11004,
				    0);
	    i_0_ = 0;
	}
	while (!((Class87_Sub2_Sub2) this).aClass420_11009
		    .method7467(1607436825)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub2_Sub2) this)
				      .aClass420_11009.method7458(-334337125);
	    ((Class87_Sub2_Sub2) this).anIntArray11004[i_0_++]
		= class243_sub9.anInt8679 * 1627367037;
	    if (i_0_ == 1000) {
		OpenGL.glDeleteFramebuffersEXT(i_0_,
					       (((Class87_Sub2_Sub2) this)
						.anIntArray11004),
					       0);
		i_0_ = 0;
	    }
	}
	if (i_0_ > 0) {
	    OpenGL.glDeleteFramebuffersEXT(i_0_, (((Class87_Sub2_Sub2) this)
						  .anIntArray11004), 0);
	    i_0_ = 0;
	}
	while (!((Class87_Sub2_Sub2) this).aClass420_10989
		    .method7467(-271764013)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub2_Sub2) this)
				      .aClass420_10989.method7458(-1439667676);
	    ((Class87_Sub2_Sub2) this).anIntArray11004[i_0_++]
		= (int) (class243_sub9.aLong3905 * -3545590250604181279L);
	    anInt9148 -= class243_sub9.anInt8679 * 1627367037;
	    if (i_0_ == 1000) {
		OpenGL.glDeleteRenderbuffersEXT(i_0_,
						(((Class87_Sub2_Sub2) this)
						 .anIntArray11004),
						0);
		i_0_ = 0;
	    }
	}
	if (i_0_ > 0) {
	    OpenGL.glDeleteRenderbuffersEXT(i_0_, (((Class87_Sub2_Sub2) this)
						   .anIntArray11004), 0);
	    boolean bool = false;
	}
	while (!((Class87_Sub2_Sub2) this).aClass420_10985
		    .method7467(1786857270)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub2_Sub2) this)
				      .aClass420_10985.method7458(-1305587603);
	    OpenGL.glDeleteLists((int) (class243_sub9.aLong3905
					* -3545590250604181279L),
				 class243_sub9.anInt8679 * 1627367037);
	}
	while (!((Class87_Sub2_Sub2) this).aClass420_10990
		    .method7467(409644861)) {
	    Class243 class243 = ((Class87_Sub2_Sub2) this).aClass420_10990
				    .method7458(-84063499);
	    OpenGL.glDeleteProgram((int) (class243.aLong3905
					  * -3545590250604181279L));
	}
	while (!((Class87_Sub2_Sub2) this).aClass420_10991
		    .method7467(1644755174)) {
	    Class243 class243 = ((Class87_Sub2_Sub2) this).aClass420_10991
				    .method7458(-21128414);
	    OpenGL.glDeleteShader((int) (class243.aLong3905
					 * -3545590250604181279L));
	}
	while (!((Class87_Sub2_Sub2) this).aClass420_10985
		    .method7467(1871358777)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub2_Sub2) this)
				      .aClass420_10985.method7458(-442068425);
	    OpenGL.glDeleteLists((int) (class243_sub9.aLong3905
					* -3545590250604181279L),
				 class243_sub9.anInt8679 * 1627367037);
	}
	if (method2082() > 100663296
	    && (Class46.method1238(1002651316)
		> ((Class87_Sub2_Sub2) this).aLong10992 + 60000L)) {
	    System.gc();
	    ((Class87_Sub2_Sub2) this).aLong10992
		= Class46.method1238(627517185);
	}
	super.method2081(i);
    }
    
    public Class37 method15303(String string) {
	byte[] is = method17477(string);
	if (is == null)
	    return null;
	Class45 class45 = method15305(is);
	return new Class37_Sub2(this, class45);
    }
    
    public boolean method15416() {
	return ((Class87_Sub2_Sub2) this).aBool11008;
    }
    
    public boolean method15301() {
	return ((Class87_Sub2_Sub2) this).aBool10998;
    }
    
    Class87_Sub2_Sub2(OpenGL opengl, Canvas canvas, long l, Class106 class106,
		      Interface7 interface7, Class272 class272, int i) {
	super(class106, interface7, class272, i, 1);
	((Class87_Sub2_Sub2) this).aClass420_10989 = new Class420();
	((Class87_Sub2_Sub2) this).aClass420_10990 = new Class420();
	((Class87_Sub2_Sub2) this).aClass420_10991 = new Class420();
	((Class87_Sub2_Sub2) this).anIntArray11004 = new int[1000];
	((Class87_Sub2_Sub2) this).aClass231_Sub1Array11012
	    = new Class231_Sub1[16];
	new MapBuffer();
	new MapBuffer();
	((Class87_Sub2_Sub2) this).aFloatArray10993 = new float[4];
	((Class87_Sub2_Sub2) this).aFloatArray11011 = new float[16];
	int[] is = new int[1];
	try {
	    ((Class87_Sub2_Sub2) this).anOpenGL11001 = opengl;
	    ((Class87_Sub2_Sub2) this).anOpenGL11001.method3729();
	    ((Class87_Sub2_Sub2) this).aString11002
		= OpenGL.glGetString(7936).toLowerCase();
	    ((Class87_Sub2_Sub2) this).aString11003
		= OpenGL.glGetString(7937).toLowerCase();
	    if ((((Class87_Sub2_Sub2) this).aString11002.indexOf("microsoft")
		 != -1)
		|| ((Class87_Sub2_Sub2) this).aString11002
		       .indexOf("brian paul") != -1
		|| (((Class87_Sub2_Sub2) this).aString11002.indexOf("mesa")
		    != -1))
		throw new RuntimeException("");
	    String string = OpenGL.glGetString(7938);
	    String[] strings = Class295.method5926(string.replace('.', ' '),
						   ' ', 232099374);
	    if (strings.length >= 2) {
		try {
		    int i_1_ = Class240.method4874(strings[0], 493450712);
		    int i_2_ = Class240.method4874(strings[1], -164026928);
		    ((Class87_Sub2_Sub2) this).anInt11013 = i_1_ * 10 + i_2_;
		} catch (NumberFormatException numberformatexception) {
		    throw new RuntimeException("");
		}
	    } else
		throw new RuntimeException("");
	    if (((Class87_Sub2_Sub2) this).anInt11013 < 12)
		throw new RuntimeException("");
	    OpenGL.glGetIntegerv(34018, is, 0);
	    anInt9276 = is[0];
	    if (anInt9276 < 2)
		throw new RuntimeException("");
	    anInt9277 = 8;
	    ((Class87_Sub2_Sub2) this).aBool10996
		= ((Class87_Sub2_Sub2) this).anOpenGL11001
		      .method3728("GL_ARB_vertex_buffer_object");
	    aBool9281 = ((Class87_Sub2_Sub2) this).anOpenGL11001
			    .method3728("GL_ARB_multisample");
	    ((Class87_Sub2_Sub2) this).aBool10997
		= ((Class87_Sub2_Sub2) this).anOpenGL11001
		      .method3728("GL_ARB_texture_rectangle");
	    ((Class87_Sub2_Sub2) this).anOpenGL11001
		.method3728("GL_ARB_texture_cube_map");
	    ((Class87_Sub2_Sub2) this).aBool11007
		= ((Class87_Sub2_Sub2) this).anOpenGL11001
		      .method3728("GL_ARB_texture_non_power_of_two");
	    aBool9163 = true;
	    ((Class87_Sub2_Sub2) this).aBool11008
		= ((Class87_Sub2_Sub2) this).anOpenGL11001
		      .method3728("GL_ARB_vertex_shader");
	    ((Class87_Sub2_Sub2) this).anOpenGL11001
		.method3728("GL_ARB_vertex_program");
	    ((Class87_Sub2_Sub2) this).aBool10998
		= ((Class87_Sub2_Sub2) this).anOpenGL11001
		      .method3728("GL_ARB_fragment_shader");
	    ((Class87_Sub2_Sub2) this).anOpenGL11001
		.method3728("GL_ARB_fragment_program");
	    ((Class87_Sub2_Sub2) this).anOpenGL11001
		.method3728("GL_EXT_framebuffer_object");
	    ((Class87_Sub2_Sub2) this).anIntArray11000 = new int[anInt9276];
	    aBool9278 = ((Class87_Sub2_Sub2) this).anOpenGL11001
			    .method3728("GL_EXT_framebuffer_object");
	    aBool9279 = ((Class87_Sub2_Sub2) this).anOpenGL11001
			    .method3728("GL_EXT_framebuffer_blit");
	    aBool9178 = ((Class87_Sub2_Sub2) this).anOpenGL11001
			    .method3728("GL_EXT_framebuffer_multisample");
	    if (!method15416() || !method15301()) {
		if (!((Class87_Sub2_Sub2) this).anOpenGL11001
			 .method3728("GL_ARB_multitexture"))
		    throw new RuntimeException("");
		if (!((Class87_Sub2_Sub2) this).anOpenGL11001
			 .method3728("GL_ARB_texture_env_combine"))
		    throw new RuntimeException("");
	    }
	    ((Class87_Sub2_Sub2) this).anInt11010
		= Stream.method3943() ? 33639 : 5121;
	    if (((Class87_Sub2_Sub2) this).aString11003.indexOf("radeon")
		!= -1) {
		int i_3_ = 0;
		boolean bool = false;
		boolean bool_4_ = false;
		String[] strings_5_
		    = Class295.method5926(((Class87_Sub2_Sub2) this)
					      .aString11003.replace('/', ' '),
					  ' ', -1739395754);
		for (int i_6_ = 0; i_6_ < strings_5_.length; i_6_++) {
		    String string_7_ = strings_5_[i_6_];
		    try {
			if (string_7_.length() <= 0)
			    continue;
			if (string_7_.charAt(0) == 'x'
			    && string_7_.length() >= 3
			    && Class498.method11287(string_7_.substring(1, 3),
						    -297533557)) {
			    string_7_ = string_7_.substring(1);
			    bool_4_ = true;
			}
			if (string_7_.equals("hd")) {
			    bool = true;
			    continue;
			}
			if (string_7_.startsWith("hd")) {
			    string_7_ = string_7_.substring(2);
			    bool = true;
			}
			if (string_7_.length() < 4
			    || !Class498.method11287(string_7_.substring(0, 4),
						     1733894683))
			    continue;
			i_3_ = Class240.method4874(string_7_.substring(0, 4),
						   -527532885);
		    } catch (Exception exception) {
			continue;
		    }
		    break;
		}
		if (!bool_4_ && !bool) {
		    if (i_3_ >= 7000 && i_3_ <= 7999)
			((Class87_Sub2_Sub2) this).aBool10996 = false;
		    if (i_3_ >= 7000 && i_3_ <= 9250)
			aBool9163 = false;
		}
		((Class87_Sub2_Sub2) this).aBool10997
		    &= ((Class87_Sub2_Sub2) this).anOpenGL11001
			   .method3728("GL_ARB_half_float_pixel");
	    }
	    if (((Class87_Sub2_Sub2) this).aString11002.indexOf("intel")
		== -1) {
		/* empty */
	    }
	    if (((Class87_Sub2_Sub2) this).aBool10996) {
		try {
		    int[] is_8_ = new int[1];
		    OpenGL.glGenBuffersARB(1, is_8_, 0);
		} catch (Throwable throwable) {
		    throw new RuntimeException("");
		}
	    }
	    method2457(canvas, new Class169_Sub1_Sub2_Sub1(this, canvas, l),
		       -1875927384);
	    method2098(canvas, (byte) -43);
	    method15446(32768, false);
	    method15446(32768, false);
	} catch (Throwable throwable) {
	    throwable.printStackTrace();
	    method2240(1352912982);
	    if (throwable instanceof OutOfMemoryError)
		throw (OutOfMemoryError) throwable;
	    throw new RuntimeException("");
	}
    }
    
    byte[] method17477(String string) {
	return method15304("gl", string);
    }
    
    public Class174 method2075() {
	int i = -1;
	if (((Class87_Sub2_Sub2) this).aString11002.indexOf("nvidia") != -1)
	    i = 4318;
	else if (((Class87_Sub2_Sub2) this).aString11002.indexOf("intel")
		 != -1)
	    i = 32902;
	else if (((Class87_Sub2_Sub2) this).aString11002.indexOf("ati") != -1)
	    i = 4098;
	return new Class174(i, method15302() ? "OpenGL FF" : "OpenGL",
			    ((Class87_Sub2_Sub2) this).anInt11013,
			    ((Class87_Sub2_Sub2) this).aString11003, 0L);
    }
    
    void method2077(int i, int i_9_) throws Exception_Sub6 {
	aClass169_Sub1_976.method15840();
	if (anInterface7_991 != null)
	    anInterface7_991.method36((byte) 34);
    }
    
    public void method2078() {
	OpenGL.glFinish();
    }
    
    void method2080() {
	super.method2080();
	if (((Class87_Sub2_Sub2) this).anOpenGL11001 != null) {
	    ((Class87_Sub2_Sub2) this).anOpenGL11001.method3730();
	    ((Class87_Sub2_Sub2) this).anOpenGL11001.release();
	    ((Class87_Sub2_Sub2) this).anOpenGL11001 = null;
	}
    }
    
    public float method15389() {
	return 0.0F;
    }
    
    void method15434() {
	if (aBool9260 && aBool9184 && anInt9169 >= 0)
	    OpenGL.glEnable(2912);
	else
	    OpenGL.glDisable(2912);
    }
    
    public float method15466() {
	return 0.0F;
    }
    
    public Interface5 method2318(int i, int i_10_, Class173 class173,
				 Class90 class90, int i_11_) {
	return new Class228(this, class173, class90, i, i_10_, i_11_);
    }
    
    Class367 method15671(Class378[] class378s) {
	return new Class367_Sub1(class378s);
    }
    
    public Interface4 method2251(int i, int i_12_, int i_13_) {
	return new Class228(this, Class173.aClass173_2129,
			    Class90.aClass90_1043, i, i_12_, i_13_);
    }
    
    public int[] method2242(int i, int i_14_, int i_15_, int i_16_) {
	int[] is = new int[i_15_ * i_16_];
	int i_17_ = aClass169_993.method3836();
	for (int i_18_ = 0; i_18_ < i_16_; i_18_++)
	    OpenGL.glReadPixelsi(i, i_17_ - i_14_ - i_18_ - 1, i_15_, 1, 32993,
				 ((Class87_Sub2_Sub2) this).anInt11010, is,
				 i_18_ * i_15_);
	return is;
    }
    
    public void method2108() {
	if (aClass169_993 != null) {
	    int i = aClass169_993.method3826();
	    int i_19_ = aClass169_993.method3836();
	    if (i > 0 || i_19_ > 0) {
		int i_20_ = anInt9195;
		int i_21_ = anInt9168;
		int i_22_ = anInt9197;
		int i_23_ = anInt9198;
		method2331();
		int i_24_ = anInt9176;
		int i_25_ = anInt9190;
		int i_26_ = anInt9253;
		int i_27_ = anInt9202;
		method2112();
		OpenGL.glReadBuffer(1028);
		OpenGL.glDrawBuffer(1029);
		method15351();
		method15438(false);
		method15363(false);
		method15358(false);
		method15554(false);
		method15448(null);
		method15380(1);
		method15674(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, i, i_19_, 6144);
		OpenGL.glFlush();
		OpenGL.glReadBuffer(1029);
		OpenGL.glDrawBuffer(1029);
		method2113(i_24_, i_26_, i_25_, i_27_);
		method2110(i_20_, i_21_, i_22_, i_23_);
	    }
	}
    }
    
    public final void method15440(Class311 class311, int i, int i_28_) {
	int i_29_;
	int i_30_;
	if (class311 == Class311.aClass311_4592) {
	    i_29_ = 1;
	    i_30_ = i_28_ * 2;
	} else if (class311 == Class311.aClass311_4589) {
	    i_29_ = 3;
	    i_30_ = i_28_ + 1;
	} else if (class311 == Class311.aClass311_4588) {
	    i_29_ = 4;
	    i_30_ = i_28_ * 3;
	} else if (class311 == Class311.aClass311_4590) {
	    i_29_ = 6;
	    i_30_ = i_28_ + 2;
	} else if (class311 == Class311.aClass311_4593) {
	    i_29_ = 5;
	    i_30_ = i_28_ + 2;
	} else {
	    i_29_ = 0;
	    i_30_ = i_28_;
	}
	OpenGL.glDrawArrays(i_29_, i, i_30_);
    }
    
    public void method2117(int i, int i_31_) {
	int i_32_ = 0;
	if ((i & 0x1) != 0) {
	    OpenGL.glClearColor((float) (i_31_ & 0xff0000) / 1.671168E7F,
				(float) (i_31_ & 0xff00) / 65280.0F,
				(float) (i_31_ & 0xff) / 255.0F,
				(float) (i_31_ >>> 24) / 255.0F);
	    i_32_ = 16384;
	}
	if ((i & 0x2) != 0) {
	    method15554(true);
	    i_32_ |= 0x100;
	}
	if ((i & 0x4) != 0)
	    i_32_ |= 0x400;
	OpenGL.glClear(i_32_);
    }
    
    void method15338() {
	if (aClass169_993 != null)
	    OpenGL.glViewport(anInt9149 + anInt9195,
			      (anInt9272 + aClass169_993.method3836()
			       - anInt9168 - anInt9198),
			      anInt9197, anInt9198);
	OpenGL.glDepthRange(aFloat9244, aFloat9182);
    }
    
    void method15339() {
	if (aClass169_993 != null) {
	    int i = anInt9149 + anInt9176;
	    int i_33_ = anInt9272 + aClass169_993.method3836() - anInt9202;
	    int i_34_ = anInt9190 - anInt9176;
	    int i_35_ = anInt9202 - anInt9253;
	    if (i_34_ < 0)
		i_34_ = 0;
	    if (i_35_ < 0)
		i_35_ = 0;
	    OpenGL.glScissor(i, i_33_, i_34_, i_35_);
	}
    }
    
    public Class103 method2218(Class103 class103, Class103 class103_36_,
			       float f, Class103 class103_37_) {
	return f < 0.5F ? class103 : class103_36_;
    }
    
    void method15677() {
	if (aBool9298 && !aBool9222)
	    OpenGL.glEnable(2896);
	else
	    OpenGL.glDisable(2896);
    }
    
    public void method15350(Class276 class276) {
	float[] fs = class276.aFloatArray4141;
	fs[1] = -fs[1];
	fs[5] = -fs[5];
	fs[9] = -fs[9];
	fs[13] = -fs[13];
    }
    
    void method15401() {
	int i = 0;
	int i_38_ = 0;
	if (anInt9255 == 0) {
	    i = 0;
	    i_38_ = 0;
	} else if (anInt9255 == 1) {
	    i = 1;
	    i_38_ = 0;
	} else if (anInt9255 == 2) {
	    i = 1;
	    i_38_ = 1;
	}
	if (aClass375_9267 == Class375.aClass375_5583)
	    OpenGL.glBlendFuncSeparate(770, 771, i, i_38_);
	else if (aClass375_9267 == Class375.aClass375_5582)
	    OpenGL.glBlendFuncSeparate(1, 1, i, i_38_);
	else if (aClass375_9267 == Class375.aClass375_5580)
	    OpenGL.glBlendFuncSeparate(774, 1, i, i_38_);
    }
    
    public void method15537(Class367 class367) {
	Class378[] class378s = class367.aClass378Array5533;
	int i = 0;
	boolean bool = false;
	boolean bool_39_ = false;
	boolean bool_40_ = false;
	for (int i_41_ = 0; i_41_ < class378s.length; i_41_++) {
	    Class378 class378 = class378s[i_41_];
	    Class231_Sub1 class231_sub1
		= ((Class87_Sub2_Sub2) this).aClass231_Sub1Array11012[i_41_];
	    int i_42_ = 0;
	    int i_43_ = class231_sub1.method16564();
	    long l = class231_sub1.method4646();
	    class231_sub1.method4647();
	    for (int i_44_ = 0; i_44_ < class378.method7008(); i_44_++) {
		Class379 class379 = class378.method7013(i_44_);
		switch (class379.anInt5612) {
		default:
		    break;
		case 4:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(4, 5126, i_43_, l + (long) i_42_);
		    break;
		case 6:
		    OpenGL.glVertexPointer(3, 5126, i_43_, l + (long) i_42_);
		    bool_40_ = true;
		    break;
		case 2:
		    OpenGL.glNormalPointer(5126, i_43_, l + (long) i_42_);
		    bool_39_ = true;
		    break;
		case 5:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(1, 5126, i_43_, l + (long) i_42_);
		    break;
		case 11:
		    OpenGL.glColorPointer(4, 5121, i_43_, l + (long) i_42_);
		    bool = true;
		    break;
		case 7:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(3, 5126, i_43_, l + (long) i_42_);
		    break;
		case 3:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(2, 5126, i_43_, l + (long) i_42_);
		}
		i_42_ += class379.anInt5606;
	    }
	}
	if (((Class87_Sub2_Sub2) this).aBool11006 != bool_40_) {
	    if (bool_40_)
		OpenGL.glEnableClientState(32884);
	    else
		OpenGL.glDisableClientState(32884);
	    ((Class87_Sub2_Sub2) this).aBool11006 = bool_40_;
	}
	if (((Class87_Sub2_Sub2) this).aBool10994 != bool_39_) {
	    if (bool_39_)
		OpenGL.glEnableClientState(32885);
	    else
		OpenGL.glDisableClientState(32885);
	    ((Class87_Sub2_Sub2) this).aBool10994 = bool_39_;
	}
	if (((Class87_Sub2_Sub2) this).aBool10995 != bool) {
	    if (bool)
		OpenGL.glEnableClientState(32886);
	    else
		OpenGL.glDisableClientState(32886);
	    ((Class87_Sub2_Sub2) this).aBool10995 = bool;
	}
	if (((Class87_Sub2_Sub2) this).anInt10988 < i) {
	    for (int i_45_ = ((Class87_Sub2_Sub2) this).anInt10988; i_45_ < i;
		 i_45_++) {
		OpenGL.glClientActiveTexture(33984 + i_45_);
		OpenGL.glEnableClientState(32888);
	    }
	    ((Class87_Sub2_Sub2) this).anInt10988 = i;
	} else if (((Class87_Sub2_Sub2) this).anInt10988 > i) {
	    for (int i_46_ = i; i_46_ < ((Class87_Sub2_Sub2) this).anInt10988;
		 i_46_++) {
		OpenGL.glClientActiveTexture(33984 + i_46_);
		OpenGL.glDisableClientState(32888);
	    }
	    ((Class87_Sub2_Sub2) this).anInt10988 = i;
	}
    }
    
    void method15505() {
	OpenGL.glDepthFunc(515);
	OpenGL.glEnable(2884);
	OpenGL.glCullFace(1029);
	OpenGL.glClearDepth(1.0F);
	OpenGL.glAlphaFunc(516, 0.0F);
	OpenGL.glPolygonMode(1028, 6914);
	for (int i = anInt9276 - 1; i >= 0; i--) {
	    OpenGL.glActiveTexture(33984 + i);
	    OpenGL.glTexEnvi(8960, 8704, 34160);
	    OpenGL.glTexEnvi(8960, 34161, 8448);
	    OpenGL.glTexEnvi(8960, 34178, 34166);
	    OpenGL.glTexEnvi(8960, 34162, 8448);
	    OpenGL.glTexEnvi(8960, 34186, 34166);
	}
	OpenGL.glTexEnvi(8960, 34186, 34168);
	OpenGL.glShadeModel(7425);
	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_47_ = 16384 + i;
	    OpenGL.glLightfv(i_47_, 4608, fs, 0);
	    OpenGL.glLightf(i_47_, 4615, 0.0F);
	    OpenGL.glLightf(i_47_, 4616, 0.0F);
	}
	OpenGL.glFogf(2914, 0.95F);
	OpenGL.glFogi(2917, 9729);
	OpenGL.glHint(3156, 4353);
	((Class87_Sub2_Sub2) this).anOpenGL11001.setSwapInterval(0);
	super.method15598();
    }
    
    final synchronized void method17478(int i, int i_48_) {
	Class243_Sub9 class243_sub9 = new Class243_Sub9(i_48_);
	class243_sub9.aLong3905 = (long) i * 7863879224277138209L;
	((Class87_Sub2_Sub2) this).aClass420_10989.method7495(class243_sub9,
							      -1902360315);
    }
    
    void method15365() {
	((Class87_Sub2_Sub2) this).aFloatArray10993[0]
	    = aFloat9193 * aFloat9154;
	((Class87_Sub2_Sub2) this).aFloatArray10993[1]
	    = aFloat9193 * aFloat9213;
	((Class87_Sub2_Sub2) this).aFloatArray10993[2]
	    = aFloat9193 * aFloat9214;
	((Class87_Sub2_Sub2) this).aFloatArray10993[3] = 1.0F;
	OpenGL.glLightfv(16384, 4609,
			 ((Class87_Sub2_Sub2) this).aFloatArray10993, 0);
	((Class87_Sub2_Sub2) this).aFloatArray10993[0]
	    = -aFloat9217 * aFloat9154;
	((Class87_Sub2_Sub2) this).aFloatArray10993[1]
	    = -aFloat9217 * aFloat9213;
	((Class87_Sub2_Sub2) this).aFloatArray10993[2]
	    = -aFloat9217 * aFloat9214;
	((Class87_Sub2_Sub2) this).aFloatArray10993[3] = 1.0F;
	OpenGL.glLightfv(16385, 4609,
			 ((Class87_Sub2_Sub2) this).aFloatArray10993, 0);
    }
    
    Interface45 method15429(Class173 class173, Class90 class90, int i,
			    int i_49_) {
	if (((Class87_Sub2_Sub2) this).aBool11007
	    || (Class192.method4113(i, 853150123)
		&& Class192.method4113(i_49_, 1298238330)))
	    return new Class220_Sub4(this, class173, class90, i, i_49_);
	if (((Class87_Sub2_Sub2) this).aBool10997)
	    return new Class220_Sub2(this, class173, class90, i, i_49_);
	return new Class220_Sub4(this, class173, class90,
				 Class251.method5028(i, (short) 851),
				 Class251.method5028(i_49_, (short) 851));
    }
    
    void method15586() {
	((Class87_Sub2_Sub2) this).aFloatArray10993[0]
	    = aFloat9193 * aFloat9154;
	((Class87_Sub2_Sub2) this).aFloatArray10993[1]
	    = aFloat9193 * aFloat9213;
	((Class87_Sub2_Sub2) this).aFloatArray10993[2]
	    = aFloat9193 * aFloat9214;
	((Class87_Sub2_Sub2) this).aFloatArray10993[3] = 1.0F;
	OpenGL.glLightfv(16384, 4609,
			 ((Class87_Sub2_Sub2) this).aFloatArray10993, 0);
	((Class87_Sub2_Sub2) this).aFloatArray10993[0]
	    = -aFloat9217 * aFloat9154;
	((Class87_Sub2_Sub2) this).aFloatArray10993[1]
	    = -aFloat9217 * aFloat9213;
	((Class87_Sub2_Sub2) this).aFloatArray10993[2]
	    = -aFloat9217 * aFloat9214;
	((Class87_Sub2_Sub2) this).aFloatArray10993[3] = 1.0F;
	OpenGL.glLightfv(16385, 4609,
			 ((Class87_Sub2_Sub2) this).aFloatArray10993, 0);
    }
    
    void method15367() {
	/* empty */
    }
    
    static final int method17479(Class90 class90) {
	switch (class90.anInt1046 * -295509) {
	case 6:
	    return 5124;
	case 8:
	    return 5125;
	case 3:
	    return 5120;
	case 4:
	    return 5126;
	default:
	    return 5121;
	case 2:
	    return 5123;
	case 5:
	    return 5122;
	case 1:
	    return 5131;
	case 0:
	    return 5121;
	}
    }
    
    boolean method15371(Class173 class173, Class90 class90) {
	return true;
    }
    
    final Interface31 method15666(boolean bool) {
	return new Class231_Sub2(this, Class90.aClass90_1042, bool);
    }
    
    Interface40 method15441(Class173 class173, Class90 class90, int i,
			    int i_50_) {
	return method15454(class173, class90, i, i_50_);
    }
    
    Interface40 method15376(int i, int i_51_, boolean bool, int[] is,
			    int i_52_, int i_53_) {
	if (((Class87_Sub2_Sub2) this).aBool11007
	    || (Class192.method4113(i, 1713983386)
		&& Class192.method4113(i_51_, 1896203948)))
	    return new Class220_Sub4(this, i, i_51_, bool, is, i_52_, i_53_);
	if (((Class87_Sub2_Sub2) this).aBool10997)
	    return new Class220_Sub2(this, i, i_51_, is, i_52_, i_53_);
	Class220_Sub4 class220_sub4
	    = new Class220_Sub4(this, Class173.aClass173_2131,
				Class90.aClass90_1040,
				Class251.method5028(i, (short) 851),
				Class251.method5028(i_51_, (short) 851));
	class220_sub4.method238(0, 0, i, i_51_, is, i_52_, i_53_);
	return class220_sub4;
    }
    
    Interface40 method15442(Class173 class173, int i, int i_54_, boolean bool,
			    byte[] is, int i_55_, int i_56_) {
	if (((Class87_Sub2_Sub2) this).aBool11007
	    || (Class192.method4113(i, 518663006)
		&& Class192.method4113(i_54_, 929150730)))
	    return new Class220_Sub4(this, class173, i, i_54_, bool, is, i_55_,
				     i_56_);
	if (((Class87_Sub2_Sub2) this).aBool10997)
	    return new Class220_Sub2(this, class173, i, i_54_, is, i_55_,
				     i_56_);
	Class220_Sub4 class220_sub4
	    = new Class220_Sub4(this, class173, Class90.aClass90_1040,
				Class251.method5028(i, (short) 851),
				Class251.method5028(i_54_, (short) 851));
	class220_sub4.method239(0, 0, i, i_54_, is, class173, i_55_, i_56_);
	return class220_sub4;
    }
    
    Interface40 method15640(Class173 class173, int i, int i_57_, boolean bool,
			    float[] fs, int i_58_, int i_59_) {
	if (((Class87_Sub2_Sub2) this).aBool11007
	    || (Class192.method4113(i, 2061904647)
		&& Class192.method4113(i_57_, 1630750505)))
	    return new Class220_Sub4(this, class173, i, i_57_, bool, fs, i_58_,
				     i_59_);
	if (((Class87_Sub2_Sub2) this).aBool10997)
	    return new Class220_Sub2(this, class173, i, i_57_, fs, i_58_,
				     i_59_);
	Class220_Sub4 class220_sub4
	    = new Class220_Sub4(this, class173, Class90.aClass90_1045,
				Class251.method5028(i, (short) 851),
				Class251.method5028(i_57_, (short) 851));
	class220_sub4.method16733(0, 0, i, i_57_, fs, class173, i_58_, i_59_);
	return class220_sub4;
    }
    
    Interface45 method15454(Class173 class173, Class90 class90, int i,
			    int i_60_) {
	if (((Class87_Sub2_Sub2) this).aBool11007
	    || (Class192.method4113(i, 2087727772)
		&& Class192.method4113(i_60_, 1385588928)))
	    return new Class220_Sub4(this, class173, class90, i, i_60_);
	if (((Class87_Sub2_Sub2) this).aBool10997)
	    return new Class220_Sub2(this, class173, class90, i, i_60_);
	return new Class220_Sub4(this, class173, class90,
				 Class251.method5028(i, (short) 851),
				 Class251.method5028(i_60_, (short) 851));
    }
    
    Interface32 method15377(int i, boolean bool, int[][] is) {
	return new Class220_Sub1(this, i, bool, is);
    }
    
    void method15652(int i) {
	OpenGL.glColorMask((i & 0x1) != 0, (i & 0x2) != 0, (i & 0x4) != 0,
			   (i & 0x8) != 0);
    }
    
    public void method15510() {
	int i = ((Class87_Sub2_Sub2) this).anIntArray11000[anInt9225];
	if (i != 0) {
	    ((Class87_Sub2_Sub2) this).anIntArray11000[anInt9225] = 0;
	    OpenGL.glBindTexture(i, 0);
	    OpenGL.glDisable(i);
	}
    }
    
    void method15392() {
	OpenGL.glMatrixMode(5890);
	if (aClass366Array9228[anInt9225] != Class366.aClass366_5527)
	    OpenGL.glLoadMatrixf
		(aClass276Array9265[anInt9225]
		     .method5481(((Class87_Sub2_Sub2) this).aFloatArray11011),
		 0);
	else
	    OpenGL.glLoadIdentity();
	OpenGL.glMatrixMode(5888);
    }
    
    public final synchronized void method2419(int i) {
	int i_61_ = 0;
	i &= 0x7fffffff;
	while (!((Class87_Sub2_Sub2) this).aClass420_10986
		    .method7467(1939199609)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub2_Sub2) this)
				      .aClass420_10986.method7458(-1245213250);
	    ((Class87_Sub2_Sub2) this).anIntArray11004[i_61_++]
		= (int) (class243_sub9.aLong3905 * -3545590250604181279L);
	    anInt9227 -= class243_sub9.anInt8679 * 1627367037;
	    if (i_61_ == 1000) {
		OpenGL.glDeleteBuffersARB(i_61_, (((Class87_Sub2_Sub2) this)
						  .anIntArray11004), 0);
		i_61_ = 0;
	    }
	}
	if (i_61_ > 0) {
	    OpenGL.glDeleteBuffersARB(i_61_, (((Class87_Sub2_Sub2) this)
					      .anIntArray11004), 0);
	    i_61_ = 0;
	}
	while (!((Class87_Sub2_Sub2) this).aClass420_10987
		    .method7467(-65096352)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub2_Sub2) this)
				      .aClass420_10987.method7458(-2138151778);
	    ((Class87_Sub2_Sub2) this).anIntArray11004[i_61_++]
		= (int) (class243_sub9.aLong3905 * -3545590250604181279L);
	    anInt9146 -= class243_sub9.anInt8679 * 1627367037;
	    if (i_61_ == 1000) {
		OpenGL.glDeleteTextures(i_61_, (((Class87_Sub2_Sub2) this)
						.anIntArray11004), 0);
		i_61_ = 0;
	    }
	}
	if (i_61_ > 0) {
	    OpenGL.glDeleteTextures(i_61_,
				    ((Class87_Sub2_Sub2) this).anIntArray11004,
				    0);
	    i_61_ = 0;
	}
	while (!((Class87_Sub2_Sub2) this).aClass420_11009
		    .method7467(853489197)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub2_Sub2) this)
				      .aClass420_11009.method7458(-705988162);
	    ((Class87_Sub2_Sub2) this).anIntArray11004[i_61_++]
		= class243_sub9.anInt8679 * 1627367037;
	    if (i_61_ == 1000) {
		OpenGL.glDeleteFramebuffersEXT(i_61_,
					       (((Class87_Sub2_Sub2) this)
						.anIntArray11004),
					       0);
		i_61_ = 0;
	    }
	}
	if (i_61_ > 0) {
	    OpenGL.glDeleteFramebuffersEXT(i_61_, (((Class87_Sub2_Sub2) this)
						   .anIntArray11004), 0);
	    i_61_ = 0;
	}
	while (!((Class87_Sub2_Sub2) this).aClass420_10989
		    .method7467(1431101242)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub2_Sub2) this)
				      .aClass420_10989.method7458(-1354304473);
	    ((Class87_Sub2_Sub2) this).anIntArray11004[i_61_++]
		= (int) (class243_sub9.aLong3905 * -3545590250604181279L);
	    anInt9148 -= class243_sub9.anInt8679 * 1627367037;
	    if (i_61_ == 1000) {
		OpenGL.glDeleteRenderbuffersEXT(i_61_,
						(((Class87_Sub2_Sub2) this)
						 .anIntArray11004),
						0);
		i_61_ = 0;
	    }
	}
	if (i_61_ > 0) {
	    OpenGL.glDeleteRenderbuffersEXT(i_61_, (((Class87_Sub2_Sub2) this)
						    .anIntArray11004), 0);
	    boolean bool = false;
	}
	while (!((Class87_Sub2_Sub2) this).aClass420_10985
		    .method7467(-222989823)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub2_Sub2) this)
				      .aClass420_10985.method7458(-2112994558);
	    OpenGL.glDeleteLists((int) (class243_sub9.aLong3905
					* -3545590250604181279L),
				 class243_sub9.anInt8679 * 1627367037);
	}
	while (!((Class87_Sub2_Sub2) this).aClass420_10990
		    .method7467(573095932)) {
	    Class243 class243 = ((Class87_Sub2_Sub2) this).aClass420_10990
				    .method7458(-2028010462);
	    OpenGL.glDeleteProgram((int) (class243.aLong3905
					  * -3545590250604181279L));
	}
	while (!((Class87_Sub2_Sub2) this).aClass420_10991
		    .method7467(1711480538)) {
	    Class243 class243 = ((Class87_Sub2_Sub2) this).aClass420_10991
				    .method7458(28278091);
	    OpenGL.glDeleteShader((int) (class243.aLong3905
					 * -3545590250604181279L));
	}
	while (!((Class87_Sub2_Sub2) this).aClass420_10985
		    .method7467(2034280812)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub2_Sub2) this)
				      .aClass420_10985.method7458(25601688);
	    OpenGL.glDeleteLists((int) (class243_sub9.aLong3905
					* -3545590250604181279L),
				 class243_sub9.anInt8679 * 1627367037);
	}
	if (method2082() > 100663296
	    && (Class46.method1238(17677519)
		> ((Class87_Sub2_Sub2) this).aLong10992 + 60000L)) {
	    System.gc();
	    ((Class87_Sub2_Sub2) this).aLong10992
		= Class46.method1238(2074039931);
	}
	super.method2081(i);
    }
    
    public void method15574(Class367 class367) {
	Class378[] class378s = class367.aClass378Array5533;
	int i = 0;
	boolean bool = false;
	boolean bool_62_ = false;
	boolean bool_63_ = false;
	for (int i_64_ = 0; i_64_ < class378s.length; i_64_++) {
	    Class378 class378 = class378s[i_64_];
	    Class231_Sub1 class231_sub1
		= ((Class87_Sub2_Sub2) this).aClass231_Sub1Array11012[i_64_];
	    int i_65_ = 0;
	    int i_66_ = class231_sub1.method16564();
	    long l = class231_sub1.method4646();
	    class231_sub1.method4647();
	    for (int i_67_ = 0; i_67_ < class378.method7008(); i_67_++) {
		Class379 class379 = class378.method7013(i_67_);
		switch (class379.anInt5612) {
		default:
		    break;
		case 4:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(4, 5126, i_66_, l + (long) i_65_);
		    break;
		case 6:
		    OpenGL.glVertexPointer(3, 5126, i_66_, l + (long) i_65_);
		    bool_63_ = true;
		    break;
		case 2:
		    OpenGL.glNormalPointer(5126, i_66_, l + (long) i_65_);
		    bool_62_ = true;
		    break;
		case 5:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(1, 5126, i_66_, l + (long) i_65_);
		    break;
		case 11:
		    OpenGL.glColorPointer(4, 5121, i_66_, l + (long) i_65_);
		    bool = true;
		    break;
		case 7:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(3, 5126, i_66_, l + (long) i_65_);
		    break;
		case 3:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(2, 5126, i_66_, l + (long) i_65_);
		}
		i_65_ += class379.anInt5606;
	    }
	}
	if (((Class87_Sub2_Sub2) this).aBool11006 != bool_63_) {
	    if (bool_63_)
		OpenGL.glEnableClientState(32884);
	    else
		OpenGL.glDisableClientState(32884);
	    ((Class87_Sub2_Sub2) this).aBool11006 = bool_63_;
	}
	if (((Class87_Sub2_Sub2) this).aBool10994 != bool_62_) {
	    if (bool_62_)
		OpenGL.glEnableClientState(32885);
	    else
		OpenGL.glDisableClientState(32885);
	    ((Class87_Sub2_Sub2) this).aBool10994 = bool_62_;
	}
	if (((Class87_Sub2_Sub2) this).aBool10995 != bool) {
	    if (bool)
		OpenGL.glEnableClientState(32886);
	    else
		OpenGL.glDisableClientState(32886);
	    ((Class87_Sub2_Sub2) this).aBool10995 = bool;
	}
	if (((Class87_Sub2_Sub2) this).anInt10988 < i) {
	    for (int i_68_ = ((Class87_Sub2_Sub2) this).anInt10988; i_68_ < i;
		 i_68_++) {
		OpenGL.glClientActiveTexture(33984 + i_68_);
		OpenGL.glEnableClientState(32888);
	    }
	    ((Class87_Sub2_Sub2) this).anInt10988 = i;
	} else if (((Class87_Sub2_Sub2) this).anInt10988 > i) {
	    for (int i_69_ = i; i_69_ < ((Class87_Sub2_Sub2) this).anInt10988;
		 i_69_++) {
		OpenGL.glClientActiveTexture(33984 + i_69_);
		OpenGL.glDisableClientState(32888);
	    }
	    ((Class87_Sub2_Sub2) this).anInt10988 = i;
	}
    }
    
    void method15397() {
	OpenGL.glTexEnvi(8960, 34162,
			 method17480(aClass391Array9206[anInt9225]));
    }
    
    final void method15383(int i, Class385 class385, boolean bool,
			   boolean bool_70_) {
	OpenGL.glTexEnvi(8960, 34176 + i, method17481(class385));
	if (bool)
	    OpenGL.glTexEnvi(8960, 34192 + i, bool_70_ ? 771 : 770);
	else
	    OpenGL.glTexEnvi(8960, 34192 + i, bool_70_ ? 769 : 768);
    }
    
    final void method15385(int i, Class385 class385, boolean bool) {
	OpenGL.glTexEnvi(8960, 34184 + i, method17481(class385));
	OpenGL.glTexEnvi(8960, 34200 + i, bool ? 771 : 770);
    }
    
    public Class37 method15488(String string) {
	byte[] is = method17477(string);
	if (is == null)
	    return null;
	Class45 class45 = method15305(is);
	return new Class37_Sub2(this, class45);
    }
    
    static final int method17480(Class391 class391) {
	if (class391 == Class391.aClass391_5687)
	    return 7681;
	if (class391 == Class391.aClass391_5686)
	    return 8448;
	if (class391 == Class391.aClass391_5689)
	    return 34165;
	if (class391 == Class391.aClass391_5685)
	    return 260;
	if (class391 == Class391.aClass391_5688)
	    return 34023;
	throw new IllegalArgumentException();
    }
    
    static final int method17481(Class385 class385) {
	if (class385 == Class385.aClass385_5636)
	    return 5890;
	if (class385 == Class385.aClass385_5637)
	    return 34167;
	if (class385 == Class385.aClass385_5635)
	    return 34168;
	if (class385 == Class385.aClass385_5638)
	    return 34166;
	throw new IllegalArgumentException();
    }
    
    void method15399(int i) {
	OpenGL.glColorMask((i & 0x1) != 0, (i & 0x2) != 0, (i & 0x4) != 0,
			   (i & 0x8) != 0);
    }
    
    final Interface31 method15408(boolean bool) {
	return new Class231_Sub2(this, Class90.aClass90_1042, bool);
    }
    
    Interface38 method15378(Class173 class173, int i, int i_71_, int i_72_,
			    boolean bool, byte[] is) {
	return new Class220_Sub3(this, class173, i, i_71_, i_72_, bool, is);
    }
    
    void method15318() {
	if (aBool9282)
	    OpenGL.glEnable(3042);
	else
	    OpenGL.glDisable(3042);
    }
    
    void method15406() {
	if (aBool9260 && aBool9184 && anInt9169 >= 0)
	    OpenGL.glEnable(2912);
	else
	    OpenGL.glDisable(2912);
    }
    
    void method15531() {
	if (aClass169_993 != null) {
	    int i = anInt9149 + anInt9176;
	    int i_73_ = anInt9272 + aClass169_993.method3836() - anInt9202;
	    int i_74_ = anInt9190 - anInt9176;
	    int i_75_ = anInt9202 - anInt9253;
	    if (i_74_ < 0)
		i_74_ = 0;
	    if (i_75_ < 0)
		i_75_ = 0;
	    OpenGL.glScissor(i, i_73_, i_74_, i_75_);
	}
    }
    
    void method15461(boolean bool) {
	if (bool)
	    OpenGL.glEnable(32925);
	else
	    OpenGL.glDisable(32925);
    }
    
    final Interface36 method15436(boolean bool) {
	return new Class231_Sub1(this, bool);
    }
    
    void method15658() {
	int i = 0;
	int i_76_ = 0;
	if (anInt9255 == 0) {
	    i = 0;
	    i_76_ = 0;
	} else if (anInt9255 == 1) {
	    i = 1;
	    i_76_ = 0;
	} else if (anInt9255 == 2) {
	    i = 1;
	    i_76_ = 1;
	}
	if (aClass375_9267 == Class375.aClass375_5583)
	    OpenGL.glBlendFuncSeparate(770, 771, i, i_76_);
	else if (aClass375_9267 == Class375.aClass375_5582)
	    OpenGL.glBlendFuncSeparate(1, 1, i, i_76_);
	else if (aClass375_9267 == Class375.aClass375_5580)
	    OpenGL.glBlendFuncSeparate(774, 1, i, i_76_);
    }
    
    Class367 method15410(Class378[] class378s) {
	return new Class367_Sub1(class378s);
    }
    
    public void method15412(int i, Interface36 interface36) {
	((Class87_Sub2_Sub2) this).aClass231_Sub1Array11012[i]
	    = (Class231_Sub1) interface36;
    }
    
    void method15692(Interface31 interface31) {
	((Class87_Sub2_Sub2) this).aClass231_Sub2_10999
	    = (Class231_Sub2) interface31;
	((Class87_Sub2_Sub2) this).aClass231_Sub2_10999.method4647();
    }
    
    public void method15411(Class367 class367) {
	Class378[] class378s = class367.aClass378Array5533;
	int i = 0;
	boolean bool = false;
	boolean bool_77_ = false;
	boolean bool_78_ = false;
	for (int i_79_ = 0; i_79_ < class378s.length; i_79_++) {
	    Class378 class378 = class378s[i_79_];
	    Class231_Sub1 class231_sub1
		= ((Class87_Sub2_Sub2) this).aClass231_Sub1Array11012[i_79_];
	    int i_80_ = 0;
	    int i_81_ = class231_sub1.method16564();
	    long l = class231_sub1.method4646();
	    class231_sub1.method4647();
	    for (int i_82_ = 0; i_82_ < class378.method7008(); i_82_++) {
		Class379 class379 = class378.method7013(i_82_);
		switch (class379.anInt5612) {
		default:
		    break;
		case 4:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(4, 5126, i_81_, l + (long) i_80_);
		    break;
		case 6:
		    OpenGL.glVertexPointer(3, 5126, i_81_, l + (long) i_80_);
		    bool_78_ = true;
		    break;
		case 2:
		    OpenGL.glNormalPointer(5126, i_81_, l + (long) i_80_);
		    bool_77_ = true;
		    break;
		case 5:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(1, 5126, i_81_, l + (long) i_80_);
		    break;
		case 11:
		    OpenGL.glColorPointer(4, 5121, i_81_, l + (long) i_80_);
		    bool = true;
		    break;
		case 7:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(3, 5126, i_81_, l + (long) i_80_);
		    break;
		case 3:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(2, 5126, i_81_, l + (long) i_80_);
		}
		i_80_ += class379.anInt5606;
	    }
	}
	if (((Class87_Sub2_Sub2) this).aBool11006 != bool_78_) {
	    if (bool_78_)
		OpenGL.glEnableClientState(32884);
	    else
		OpenGL.glDisableClientState(32884);
	    ((Class87_Sub2_Sub2) this).aBool11006 = bool_78_;
	}
	if (((Class87_Sub2_Sub2) this).aBool10994 != bool_77_) {
	    if (bool_77_)
		OpenGL.glEnableClientState(32885);
	    else
		OpenGL.glDisableClientState(32885);
	    ((Class87_Sub2_Sub2) this).aBool10994 = bool_77_;
	}
	if (((Class87_Sub2_Sub2) this).aBool10995 != bool) {
	    if (bool)
		OpenGL.glEnableClientState(32886);
	    else
		OpenGL.glDisableClientState(32886);
	    ((Class87_Sub2_Sub2) this).aBool10995 = bool;
	}
	if (((Class87_Sub2_Sub2) this).anInt10988 < i) {
	    for (int i_83_ = ((Class87_Sub2_Sub2) this).anInt10988; i_83_ < i;
		 i_83_++) {
		OpenGL.glClientActiveTexture(33984 + i_83_);
		OpenGL.glEnableClientState(32888);
	    }
	    ((Class87_Sub2_Sub2) this).anInt10988 = i;
	} else if (((Class87_Sub2_Sub2) this).anInt10988 > i) {
	    for (int i_84_ = i; i_84_ < ((Class87_Sub2_Sub2) this).anInt10988;
		 i_84_++) {
		OpenGL.glClientActiveTexture(33984 + i_84_);
		OpenGL.glDisableClientState(32888);
	    }
	    ((Class87_Sub2_Sub2) this).anInt10988 = i;
	}
    }
    
    void method2315(int i, int i_85_) throws Exception_Sub6 {
	aClass169_Sub1_976.method15840();
	if (anInterface7_991 != null)
	    anInterface7_991.method36((byte) 78);
    }
    
    final void method15420(Interface31 interface31, Class311 class311, int i,
			   int i_86_, int i_87_, int i_88_) {
	int i_89_;
	int i_90_;
	if (class311 == Class311.aClass311_4592) {
	    i_89_ = 1;
	    i_90_ = i_88_ * 2;
	} else if (class311 == Class311.aClass311_4589) {
	    i_89_ = 3;
	    i_90_ = i_88_ + 1;
	} else if (class311 == Class311.aClass311_4588) {
	    i_89_ = 4;
	    i_90_ = i_88_ * 3;
	} else if (class311 == Class311.aClass311_4590) {
	    i_89_ = 6;
	    i_90_ = i_88_ + 2;
	} else if (class311 == Class311.aClass311_4593) {
	    i_89_ = 5;
	    i_90_ = i_88_ + 2;
	} else {
	    i_89_ = 0;
	    i_90_ = i_88_;
	}
	Class90 class90 = interface31.method189();
	Class231_Sub2 class231_sub2 = (Class231_Sub2) interface31;
	class231_sub2.method4647();
	OpenGL.glDrawElements(i_89_, i_90_, method17479(class90),
			      (class231_sub2.method4646()
			       + (long) (i_87_ * (class90.anInt1047
						  * -2141494347))));
    }
    
    void method15364() {
	((Class87_Sub2_Sub2) this).aFloatArray10993[0]
	    = aFloat9145 * aFloat9154;
	((Class87_Sub2_Sub2) this).aFloatArray10993[1]
	    = aFloat9145 * aFloat9213;
	((Class87_Sub2_Sub2) this).aFloatArray10993[2]
	    = aFloat9145 * aFloat9214;
	((Class87_Sub2_Sub2) this).aFloatArray10993[3] = 1.0F;
	OpenGL.glLightModelfv(2899,
			      ((Class87_Sub2_Sub2) this).aFloatArray10993, 0);
    }
    
    void method15532() {
	if (aClass169_993 != null) {
	    int i = anInt9149 + anInt9176;
	    int i_91_ = anInt9272 + aClass169_993.method3836() - anInt9202;
	    int i_92_ = anInt9190 - anInt9176;
	    int i_93_ = anInt9202 - anInt9253;
	    if (i_92_ < 0)
		i_92_ = 0;
	    if (i_93_ < 0)
		i_93_ = 0;
	    OpenGL.glScissor(i, i_91_, i_92_, i_93_);
	}
    }
    
    final void method15621(int i, Class385 class385, boolean bool,
			   boolean bool_94_) {
	OpenGL.glTexEnvi(8960, 34176 + i, method17481(class385));
	if (bool)
	    OpenGL.glTexEnvi(8960, 34192 + i, bool_94_ ? 771 : 770);
	else
	    OpenGL.glTexEnvi(8960, 34192 + i, bool_94_ ? 769 : 768);
    }
    
    final synchronized void method17482(int i, int i_95_) {
	Class243_Sub9 class243_sub9 = new Class243_Sub9(i_95_);
	class243_sub9.aLong3905 = (long) i * 7863879224277138209L;
	((Class87_Sub2_Sub2) this).aClass420_10987.method7495(class243_sub9,
							      642074795);
    }
    
    final synchronized void method17483(int i) {
	Class243_Sub9 class243_sub9 = new Class243_Sub9(i);
	((Class87_Sub2_Sub2) this).aClass420_11009.method7495(class243_sub9,
							      -1870575054);
    }
    
    void method15529() {
	if (aBool9298 && !aBool9222)
	    OpenGL.glEnable(2896);
	else
	    OpenGL.glDisable(2896);
    }
    
    final void method15626(int i, Class385 class385, boolean bool) {
	OpenGL.glTexEnvi(8960, 34184 + i, method17481(class385));
	OpenGL.glTexEnvi(8960, 34200 + i, bool ? 771 : 770);
    }
    
    final Interface31 method15667(boolean bool) {
	return new Class231_Sub2(this, Class90.aClass90_1042, bool);
    }
    
    void method15504() {
	OpenGL.glDepthFunc(515);
	OpenGL.glEnable(2884);
	OpenGL.glCullFace(1029);
	OpenGL.glClearDepth(1.0F);
	OpenGL.glAlphaFunc(516, 0.0F);
	OpenGL.glPolygonMode(1028, 6914);
	for (int i = anInt9276 - 1; i >= 0; i--) {
	    OpenGL.glActiveTexture(33984 + i);
	    OpenGL.glTexEnvi(8960, 8704, 34160);
	    OpenGL.glTexEnvi(8960, 34161, 8448);
	    OpenGL.glTexEnvi(8960, 34178, 34166);
	    OpenGL.glTexEnvi(8960, 34162, 8448);
	    OpenGL.glTexEnvi(8960, 34186, 34166);
	}
	OpenGL.glTexEnvi(8960, 34186, 34168);
	OpenGL.glShadeModel(7425);
	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_96_ = 16384 + i;
	    OpenGL.glLightfv(i_96_, 4608, fs, 0);
	    OpenGL.glLightf(i_96_, 4615, 0.0F);
	    OpenGL.glLightf(i_96_, 4616, 0.0F);
	}
	OpenGL.glFogf(2914, 0.95F);
	OpenGL.glFogi(2917, 9729);
	OpenGL.glHint(3156, 4353);
	((Class87_Sub2_Sub2) this).anOpenGL11001.setSwapInterval(0);
	super.method15598();
    }
    
    static int method17484(Class173 class173) {
	switch (class173.anInt2137 * -598663847) {
	case 4:
	    return 6408;
	case 6:
	    return 6410;
	default:
	    throw new IllegalStateException();
	case 7:
	    return 6402;
	case 9:
	    return 6406;
	case 0:
	    return 6409;
	case 1:
	    return 6407;
	}
    }
    
    static int method17485(Class173 class173, Class90 class90) {
	if (class90 == Class90.aClass90_1040) {
	    switch (class173.anInt2137 * -598663847) {
	    case 1:
		return 6407;
	    default:
		throw new IllegalArgumentException();
	    case 9:
		return 6406;
	    case 5:
		return 33779;
	    case 2:
		return 33777;
	    case 4:
		return 6408;
	    case 0:
		return 6409;
	    case 6:
		return 6410;
	    }
	}
	if (class90 == Class90.aClass90_1042) {
	    switch (class173.anInt2137 * -598663847) {
	    case 6:
		return 36219;
	    default:
		throw new IllegalArgumentException();
	    case 0:
		return 32834;
	    case 1:
		return 32852;
	    case 4:
		return 32859;
	    case 9:
		return 32830;
	    case 7:
		return 33189;
	    }
	}
	if (class90 == Class90.aClass90_1043) {
	    switch (class173.anInt2137 * -598663847) {
	    case 7:
		return 33190;
	    default:
		throw new IllegalArgumentException();
	    }
	}
	if (class90 == Class90.aClass90_1044) {
	    switch (class173.anInt2137 * -598663847) {
	    case 0:
		return 34846;
	    case 9:
		return 34844;
	    case 4:
		return 34842;
	    case 6:
		return 34847;
	    default:
		throw new IllegalArgumentException();
	    case 1:
		return 34843;
	    }
	}
	if (class90 == Class90.aClass90_1045) {
	    switch (class173.anInt2137 * -598663847) {
	    case 1:
		return 34837;
	    default:
		throw new IllegalArgumentException();
	    case 9:
		return 34838;
	    case 0:
		return 34840;
	    case 4:
		return 34836;
	    case 6:
		return 34841;
	    }
	}
	throw new IllegalArgumentException();
    }
    
    public void method2196(boolean bool) {
	/* empty */
    }
    
    void method15424(int i) {
	if (!((Class87_Sub2_Sub2) this).aBool10984)
	    OpenGL.glPolygonMode(1028, (i & 0x2) != 0 ? 6913 : 6914);
    }
    
    public Class174 method2322() {
	int i = -1;
	if (((Class87_Sub2_Sub2) this).aString11002.indexOf("nvidia") != -1)
	    i = 4318;
	else if (((Class87_Sub2_Sub2) this).aString11002.indexOf("intel")
		 != -1)
	    i = 32902;
	else if (((Class87_Sub2_Sub2) this).aString11002.indexOf("ati") != -1)
	    i = 4098;
	return new Class174(i, method15302() ? "OpenGL FF" : "OpenGL",
			    ((Class87_Sub2_Sub2) this).anInt11013,
			    ((Class87_Sub2_Sub2) this).aString11003, 0L);
    }
    
    public Class174 method2198() {
	int i = -1;
	if (((Class87_Sub2_Sub2) this).aString11002.indexOf("nvidia") != -1)
	    i = 4318;
	else if (((Class87_Sub2_Sub2) this).aString11002.indexOf("intel")
		 != -1)
	    i = 32902;
	else if (((Class87_Sub2_Sub2) this).aString11002.indexOf("ati") != -1)
	    i = 4098;
	return new Class174(i, method15302() ? "OpenGL FF" : "OpenGL",
			    ((Class87_Sub2_Sub2) this).anInt11013,
			    ((Class87_Sub2_Sub2) this).aString11003, 0L);
    }
    
    public Class174 method2220() {
	int i = -1;
	if (((Class87_Sub2_Sub2) this).aString11002.indexOf("nvidia") != -1)
	    i = 4318;
	else if (((Class87_Sub2_Sub2) this).aString11002.indexOf("intel")
		 != -1)
	    i = 32902;
	else if (((Class87_Sub2_Sub2) this).aString11002.indexOf("ati") != -1)
	    i = 4098;
	return new Class174(i, method15302() ? "OpenGL FF" : "OpenGL",
			    ((Class87_Sub2_Sub2) this).anInt11013,
			    ((Class87_Sub2_Sub2) this).aString11003, 0L);
    }
    
    void method2146(int i, int i_97_) throws Exception_Sub6 {
	aClass169_Sub1_976.method15840();
	if (anInterface7_991 != null)
	    anInterface7_991.method36((byte) 57);
    }
    
    final Interface36 method15670(boolean bool) {
	return new Class231_Sub1(this, bool);
    }
    
    final void method15349() {
	((Class87_Sub2_Sub2) this).aFloatArray10993[0]
	    = (float) (anInt9231 & 0xff0000) / 1.671168E7F;
	((Class87_Sub2_Sub2) this).aFloatArray10993[1]
	    = (float) (anInt9231 & 0xff00) / 65280.0F;
	((Class87_Sub2_Sub2) this).aFloatArray10993[2]
	    = (float) (anInt9231 & 0xff) / 255.0F;
	((Class87_Sub2_Sub2) this).aFloatArray10993[3]
	    = (float) (anInt9231 >>> 24) / 255.0F;
	OpenGL.glTexEnvfv(8960, 8705,
			  ((Class87_Sub2_Sub2) this).aFloatArray10993, 0);
    }
    
    void method2203(int i, int i_98_) throws Exception_Sub6 {
	aClass169_Sub1_976.method15840();
	if (anInterface7_991 != null)
	    anInterface7_991.method36((byte) 43);
    }
    
    void method2390(int i, int i_99_) throws Exception_Sub6 {
	aClass169_Sub1_976.method15840();
	if (anInterface7_991 != null)
	    anInterface7_991.method36((byte) 12);
    }
    
    public void method2127() {
	OpenGL.glFinish();
    }
    
    void method15598() {
	OpenGL.glDepthFunc(515);
	OpenGL.glEnable(2884);
	OpenGL.glCullFace(1029);
	OpenGL.glClearDepth(1.0F);
	OpenGL.glAlphaFunc(516, 0.0F);
	OpenGL.glPolygonMode(1028, 6914);
	for (int i = anInt9276 - 1; i >= 0; i--) {
	    OpenGL.glActiveTexture(33984 + i);
	    OpenGL.glTexEnvi(8960, 8704, 34160);
	    OpenGL.glTexEnvi(8960, 34161, 8448);
	    OpenGL.glTexEnvi(8960, 34178, 34166);
	    OpenGL.glTexEnvi(8960, 34162, 8448);
	    OpenGL.glTexEnvi(8960, 34186, 34166);
	}
	OpenGL.glTexEnvi(8960, 34186, 34168);
	OpenGL.glShadeModel(7425);
	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_100_ = 16384 + i;
	    OpenGL.glLightfv(i_100_, 4608, fs, 0);
	    OpenGL.glLightf(i_100_, 4615, 0.0F);
	    OpenGL.glLightf(i_100_, 4616, 0.0F);
	}
	OpenGL.glFogf(2914, 0.95F);
	OpenGL.glFogi(2917, 9729);
	OpenGL.glHint(3156, 4353);
	((Class87_Sub2_Sub2) this).anOpenGL11001.setSwapInterval(0);
	super.method15598();
    }
    
    public void method2223(boolean bool) {
	/* empty */
    }
    
    public void method2224(boolean bool) {
	/* empty */
    }
    
    Class169_Sub1 method2297(Canvas canvas, int i, int i_101_) {
	return new Class169_Sub1_Sub2_Sub1(this, canvas);
    }
    
    public int[] method2226(int i, int i_102_, int i_103_, int i_104_) {
	int[] is = new int[i_103_ * i_104_];
	int i_105_ = aClass169_993.method3836();
	for (int i_106_ = 0; i_106_ < i_104_; i_106_++)
	    OpenGL.glReadPixelsi(i, i_105_ - i_102_ - i_106_ - 1, i_103_, 1,
				 32993, ((Class87_Sub2_Sub2) this).anInt11010,
				 is, i_106_ * i_103_);
	return is;
    }
    
    public void method2227() {
	if (aClass169_993 != null) {
	    int i = aClass169_993.method3826();
	    int i_107_ = aClass169_993.method3836();
	    if (i > 0 || i_107_ > 0) {
		int i_108_ = anInt9195;
		int i_109_ = anInt9168;
		int i_110_ = anInt9197;
		int i_111_ = anInt9198;
		method2331();
		int i_112_ = anInt9176;
		int i_113_ = anInt9190;
		int i_114_ = anInt9253;
		int i_115_ = anInt9202;
		method2112();
		OpenGL.glReadBuffer(1028);
		OpenGL.glDrawBuffer(1029);
		method15351();
		method15438(false);
		method15363(false);
		method15358(false);
		method15554(false);
		method15448(null);
		method15380(1);
		method15674(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, i, i_107_, 6144);
		OpenGL.glFlush();
		OpenGL.glReadBuffer(1029);
		OpenGL.glDrawBuffer(1029);
		method2113(i_112_, i_114_, i_113_, i_115_);
		method2110(i_108_, i_109_, i_110_, i_111_);
	    }
	}
    }
    
    public void method2364(int i, int i_116_) {
	int i_117_ = 0;
	if ((i & 0x1) != 0) {
	    OpenGL.glClearColor((float) (i_116_ & 0xff0000) / 1.671168E7F,
				(float) (i_116_ & 0xff00) / 65280.0F,
				(float) (i_116_ & 0xff) / 255.0F,
				(float) (i_116_ >>> 24) / 255.0F);
	    i_117_ = 16384;
	}
	if ((i & 0x2) != 0) {
	    method15554(true);
	    i_117_ |= 0x100;
	}
	if ((i & 0x4) != 0)
	    i_117_ |= 0x400;
	OpenGL.glClear(i_117_);
    }
    
    public void method2249(int i, int i_118_) {
	int i_119_ = 0;
	if ((i & 0x1) != 0) {
	    OpenGL.glClearColor((float) (i_118_ & 0xff0000) / 1.671168E7F,
				(float) (i_118_ & 0xff00) / 65280.0F,
				(float) (i_118_ & 0xff) / 255.0F,
				(float) (i_118_ >>> 24) / 255.0F);
	    i_119_ = 16384;
	}
	if ((i & 0x2) != 0) {
	    method15554(true);
	    i_119_ |= 0x100;
	}
	if ((i & 0x4) != 0)
	    i_119_ |= 0x400;
	OpenGL.glClear(i_119_);
    }
    
    public void method2250(int i, int i_120_) {
	int i_121_ = 0;
	if ((i & 0x1) != 0) {
	    OpenGL.glClearColor((float) (i_120_ & 0xff0000) / 1.671168E7F,
				(float) (i_120_ & 0xff00) / 65280.0F,
				(float) (i_120_ & 0xff) / 255.0F,
				(float) (i_120_ >>> 24) / 255.0F);
	    i_121_ = 16384;
	}
	if ((i & 0x2) != 0) {
	    method15554(true);
	    i_121_ |= 0x100;
	}
	if ((i & 0x4) != 0)
	    i_121_ |= 0x400;
	OpenGL.glClear(i_121_);
    }
    
    public void method2479(int i, int i_122_) {
	int i_123_ = 0;
	if ((i & 0x1) != 0) {
	    OpenGL.glClearColor((float) (i_122_ & 0xff0000) / 1.671168E7F,
				(float) (i_122_ & 0xff00) / 65280.0F,
				(float) (i_122_ & 0xff) / 255.0F,
				(float) (i_122_ >>> 24) / 255.0F);
	    i_123_ = 16384;
	}
	if ((i & 0x2) != 0) {
	    method15554(true);
	    i_123_ |= 0x100;
	}
	if ((i & 0x4) != 0)
	    i_123_ |= 0x400;
	OpenGL.glClear(i_123_);
    }
    
    public Class103 method2214(Class103 class103, Class103 class103_124_,
			       float f, Class103 class103_125_) {
	return f < 0.5F ? class103 : class103_124_;
    }
    
    public Class103 method2352(Class103 class103, Class103 class103_126_,
			       float f, Class103 class103_127_) {
	return f < 0.5F ? class103 : class103_126_;
    }
    
    void method2202(int i, int i_128_) throws Exception_Sub6 {
	aClass169_Sub1_976.method15840();
	if (anInterface7_991 != null)
	    anInterface7_991.method36((byte) 103);
    }
    
    public Class169_Sub2 method2396() {
	return new Class169_Sub2_Sub3_Sub1(this);
    }
    
    Interface45 method15609(Class173 class173, Class90 class90, int i,
			    int i_129_) {
	if (((Class87_Sub2_Sub2) this).aBool11007
	    || (Class192.method4113(i, 1941003100)
		&& Class192.method4113(i_129_, 101661536)))
	    return new Class220_Sub4(this, class173, class90, i, i_129_);
	if (((Class87_Sub2_Sub2) this).aBool10997)
	    return new Class220_Sub2(this, class173, class90, i, i_129_);
	return new Class220_Sub4(this, class173, class90,
				 Class251.method5028(i, (short) 851),
				 Class251.method5028(i_129_, (short) 851));
    }
    
    public Interface4 method2415(int i, int i_130_, int i_131_) {
	return new Class228(this, Class173.aClass173_2129,
			    Class90.aClass90_1043, i, i_130_, i_131_);
    }
    
    public Interface5 method2416(int i, int i_132_, Class173 class173,
				 Class90 class90, int i_133_) {
	return new Class228(this, class173, class90, i, i_132_, i_133_);
    }
    
    public void method15676(Class367 class367) {
	Class378[] class378s = class367.aClass378Array5533;
	int i = 0;
	boolean bool = false;
	boolean bool_134_ = false;
	boolean bool_135_ = false;
	for (int i_136_ = 0; i_136_ < class378s.length; i_136_++) {
	    Class378 class378 = class378s[i_136_];
	    Class231_Sub1 class231_sub1
		= ((Class87_Sub2_Sub2) this).aClass231_Sub1Array11012[i_136_];
	    int i_137_ = 0;
	    int i_138_ = class231_sub1.method16564();
	    long l = class231_sub1.method4646();
	    class231_sub1.method4647();
	    for (int i_139_ = 0; i_139_ < class378.method7008(); i_139_++) {
		Class379 class379 = class378.method7013(i_139_);
		switch (class379.anInt5612) {
		default:
		    break;
		case 4:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(4, 5126, i_138_,
					     l + (long) i_137_);
		    break;
		case 6:
		    OpenGL.glVertexPointer(3, 5126, i_138_, l + (long) i_137_);
		    bool_135_ = true;
		    break;
		case 2:
		    OpenGL.glNormalPointer(5126, i_138_, l + (long) i_137_);
		    bool_134_ = true;
		    break;
		case 5:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(1, 5126, i_138_,
					     l + (long) i_137_);
		    break;
		case 11:
		    OpenGL.glColorPointer(4, 5121, i_138_, l + (long) i_137_);
		    bool = true;
		    break;
		case 7:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(3, 5126, i_138_,
					     l + (long) i_137_);
		    break;
		case 3:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(2, 5126, i_138_,
					     l + (long) i_137_);
		}
		i_137_ += class379.anInt5606;
	    }
	}
	if (((Class87_Sub2_Sub2) this).aBool11006 != bool_135_) {
	    if (bool_135_)
		OpenGL.glEnableClientState(32884);
	    else
		OpenGL.glDisableClientState(32884);
	    ((Class87_Sub2_Sub2) this).aBool11006 = bool_135_;
	}
	if (((Class87_Sub2_Sub2) this).aBool10994 != bool_134_) {
	    if (bool_134_)
		OpenGL.glEnableClientState(32885);
	    else
		OpenGL.glDisableClientState(32885);
	    ((Class87_Sub2_Sub2) this).aBool10994 = bool_134_;
	}
	if (((Class87_Sub2_Sub2) this).aBool10995 != bool) {
	    if (bool)
		OpenGL.glEnableClientState(32886);
	    else
		OpenGL.glDisableClientState(32886);
	    ((Class87_Sub2_Sub2) this).aBool10995 = bool;
	}
	if (((Class87_Sub2_Sub2) this).anInt10988 < i) {
	    for (int i_140_ = ((Class87_Sub2_Sub2) this).anInt10988;
		 i_140_ < i; i_140_++) {
		OpenGL.glClientActiveTexture(33984 + i_140_);
		OpenGL.glEnableClientState(32888);
	    }
	    ((Class87_Sub2_Sub2) this).anInt10988 = i;
	} else if (((Class87_Sub2_Sub2) this).anInt10988 > i) {
	    for (int i_141_ = i;
		 i_141_ < ((Class87_Sub2_Sub2) this).anInt10988; i_141_++) {
		OpenGL.glClientActiveTexture(33984 + i_141_);
		OpenGL.glDisableClientState(32888);
	    }
	    ((Class87_Sub2_Sub2) this).anInt10988 = i;
	}
    }
    
    public Class169_Sub2 method2163() {
	return new Class169_Sub2_Sub3_Sub1(this);
    }
    
    static final int method17486(Class385 class385) {
	if (class385 == Class385.aClass385_5636)
	    return 5890;
	if (class385 == Class385.aClass385_5637)
	    return 34167;
	if (class385 == Class385.aClass385_5635)
	    return 34168;
	if (class385 == Class385.aClass385_5638)
	    return 34166;
	throw new IllegalArgumentException();
    }
    
    public final synchronized void method2132(int i) {
	int i_142_ = 0;
	i &= 0x7fffffff;
	while (!((Class87_Sub2_Sub2) this).aClass420_10986
		    .method7467(1007763059)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub2_Sub2) this)
				      .aClass420_10986.method7458(-1684848499);
	    ((Class87_Sub2_Sub2) this).anIntArray11004[i_142_++]
		= (int) (class243_sub9.aLong3905 * -3545590250604181279L);
	    anInt9227 -= class243_sub9.anInt8679 * 1627367037;
	    if (i_142_ == 1000) {
		OpenGL.glDeleteBuffersARB(i_142_, (((Class87_Sub2_Sub2) this)
						   .anIntArray11004), 0);
		i_142_ = 0;
	    }
	}
	if (i_142_ > 0) {
	    OpenGL.glDeleteBuffersARB(i_142_, (((Class87_Sub2_Sub2) this)
					       .anIntArray11004), 0);
	    i_142_ = 0;
	}
	while (!((Class87_Sub2_Sub2) this).aClass420_10987
		    .method7467(82252620)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub2_Sub2) this)
				      .aClass420_10987.method7458(-424287499);
	    ((Class87_Sub2_Sub2) this).anIntArray11004[i_142_++]
		= (int) (class243_sub9.aLong3905 * -3545590250604181279L);
	    anInt9146 -= class243_sub9.anInt8679 * 1627367037;
	    if (i_142_ == 1000) {
		OpenGL.glDeleteTextures(i_142_, (((Class87_Sub2_Sub2) this)
						 .anIntArray11004), 0);
		i_142_ = 0;
	    }
	}
	if (i_142_ > 0) {
	    OpenGL.glDeleteTextures(i_142_,
				    ((Class87_Sub2_Sub2) this).anIntArray11004,
				    0);
	    i_142_ = 0;
	}
	while (!((Class87_Sub2_Sub2) this).aClass420_11009
		    .method7467(280883395)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub2_Sub2) this)
				      .aClass420_11009.method7458(-663030092);
	    ((Class87_Sub2_Sub2) this).anIntArray11004[i_142_++]
		= class243_sub9.anInt8679 * 1627367037;
	    if (i_142_ == 1000) {
		OpenGL.glDeleteFramebuffersEXT(i_142_,
					       (((Class87_Sub2_Sub2) this)
						.anIntArray11004),
					       0);
		i_142_ = 0;
	    }
	}
	if (i_142_ > 0) {
	    OpenGL.glDeleteFramebuffersEXT(i_142_, (((Class87_Sub2_Sub2) this)
						    .anIntArray11004), 0);
	    i_142_ = 0;
	}
	while (!((Class87_Sub2_Sub2) this).aClass420_10989
		    .method7467(1451725735)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub2_Sub2) this)
				      .aClass420_10989.method7458(-507926114);
	    ((Class87_Sub2_Sub2) this).anIntArray11004[i_142_++]
		= (int) (class243_sub9.aLong3905 * -3545590250604181279L);
	    anInt9148 -= class243_sub9.anInt8679 * 1627367037;
	    if (i_142_ == 1000) {
		OpenGL.glDeleteRenderbuffersEXT(i_142_,
						(((Class87_Sub2_Sub2) this)
						 .anIntArray11004),
						0);
		i_142_ = 0;
	    }
	}
	if (i_142_ > 0) {
	    OpenGL.glDeleteRenderbuffersEXT(i_142_, (((Class87_Sub2_Sub2) this)
						     .anIntArray11004), 0);
	    boolean bool = false;
	}
	while (!((Class87_Sub2_Sub2) this).aClass420_10985
		    .method7467(2070255350)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub2_Sub2) this)
				      .aClass420_10985.method7458(-1228700413);
	    OpenGL.glDeleteLists((int) (class243_sub9.aLong3905
					* -3545590250604181279L),
				 class243_sub9.anInt8679 * 1627367037);
	}
	while (!((Class87_Sub2_Sub2) this).aClass420_10990
		    .method7467(1798325985)) {
	    Class243 class243 = ((Class87_Sub2_Sub2) this).aClass420_10990
				    .method7458(-1151416970);
	    OpenGL.glDeleteProgram((int) (class243.aLong3905
					  * -3545590250604181279L));
	}
	while (!((Class87_Sub2_Sub2) this).aClass420_10991
		    .method7467(-356502330)) {
	    Class243 class243 = ((Class87_Sub2_Sub2) this).aClass420_10991
				    .method7458(-1842864451);
	    OpenGL.glDeleteShader((int) (class243.aLong3905
					 * -3545590250604181279L));
	}
	while (!((Class87_Sub2_Sub2) this).aClass420_10985
		    .method7467(-169057942)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub2_Sub2) this)
				      .aClass420_10985.method7458(-1185915548);
	    OpenGL.glDeleteLists((int) (class243_sub9.aLong3905
					* -3545590250604181279L),
				 class243_sub9.anInt8679 * 1627367037);
	}
	if (method2082() > 100663296
	    && (Class46.method1238(1822346825)
		> ((Class87_Sub2_Sub2) this).aLong10992 + 60000L)) {
	    System.gc();
	    ((Class87_Sub2_Sub2) this).aLong10992
		= Class46.method1238(-1287910896);
	}
	super.method2081(i);
    }
    
    void method15665() {
	if (aBool9260 && aBool9184 && anInt9169 >= 0)
	    OpenGL.glEnable(2912);
	else
	    OpenGL.glDisable(2912);
    }
    
    public boolean method15482() {
	return ((Class87_Sub2_Sub2) this).aBool11008;
    }
    
    boolean method15497(Class173 class173, Class90 class90) {
	return true;
    }
    
    final synchronized void method17487(int i, int i_143_) {
	Class243_Sub9 class243_sub9 = new Class243_Sub9(i_143_);
	class243_sub9.aLong3905 = (long) i * 7863879224277138209L;
	((Class87_Sub2_Sub2) this).aClass420_10986.method7495(class243_sub9,
							      -1777572142);
    }
    
    public boolean method15484() {
	return ((Class87_Sub2_Sub2) this).aBool10998;
    }
    
    public Class37 method15489(String string) {
	byte[] is = method17477(string);
	if (is == null)
	    return null;
	Class45 class45 = method15305(is);
	return new Class37_Sub2(this, class45);
    }
    
    final synchronized void method17488(int i) {
	Class243 class243 = new Class243();
	class243.aLong3905 = (long) i * 7863879224277138209L;
	((Class87_Sub2_Sub2) this).aClass420_10990.method7495(class243,
							      -2005706605);
    }
    
    public void method15495(Class276 class276, Class276 class276_144_,
			    Class276 class276_145_) {
	OpenGL.glMatrixMode(5888);
	aClass276_9187.method5457(class276, class276_144_);
	OpenGL.glLoadMatrixf(aClass276_9187.aFloatArray4141, 0);
	OpenGL.glMatrixMode(5889);
	OpenGL.glLoadMatrixf(class276_145_.aFloatArray4141, 0);
    }
    
    public void method15496(Class276 class276, Class276 class276_146_,
			    Class276 class276_147_) {
	OpenGL.glMatrixMode(5888);
	aClass276_9187.method5457(class276, class276_146_);
	OpenGL.glLoadMatrixf(aClass276_9187.aFloatArray4141, 0);
	OpenGL.glMatrixMode(5889);
	OpenGL.glLoadMatrixf(class276_147_.aFloatArray4141, 0);
    }
    
    boolean method15372(Class173 class173, Class90 class90) {
	return aBool9163;
    }
    
    public Interface5 method2417(int i, int i_148_, Class173 class173,
				 Class90 class90, int i_149_) {
	return new Class228(this, class173, class90, i, i_148_, i_149_);
    }
    
    Interface32 method15464(int i, boolean bool, int[][] is) {
	return new Class220_Sub1(this, i, bool, is);
    }
    
    void method15642() {
	OpenGL.glMatrixMode(5890);
	if (aClass366Array9228[anInt9225] != Class366.aClass366_5527)
	    OpenGL.glLoadMatrixf
		(aClass276Array9265[anInt9225]
		     .method5481(((Class87_Sub2_Sub2) this).aFloatArray11011),
		 0);
	else
	    OpenGL.glLoadIdentity();
	OpenGL.glMatrixMode(5888);
    }
    
    public final void method15419(Class311 class311, int i, int i_150_) {
	int i_151_;
	int i_152_;
	if (class311 == Class311.aClass311_4592) {
	    i_151_ = 1;
	    i_152_ = i_150_ * 2;
	} else if (class311 == Class311.aClass311_4589) {
	    i_151_ = 3;
	    i_152_ = i_150_ + 1;
	} else if (class311 == Class311.aClass311_4588) {
	    i_151_ = 4;
	    i_152_ = i_150_ * 3;
	} else if (class311 == Class311.aClass311_4590) {
	    i_151_ = 6;
	    i_152_ = i_150_ + 2;
	} else if (class311 == Class311.aClass311_4593) {
	    i_151_ = 5;
	    i_152_ = i_150_ + 2;
	} else {
	    i_151_ = 0;
	    i_152_ = i_150_;
	}
	OpenGL.glDrawArrays(i_151_, i, i_152_);
    }
    
    void method15587() {
	OpenGL.glMatrixMode(5888);
	OpenGL.glLoadMatrixf(aClass276_9230.aFloatArray4141, 0);
	OpenGL.glLightfv(16384, 4611, aFloatArray9207, 0);
	OpenGL.glLightfv(16385, 4611, aFloatArray9208, 0);
    }
    
    void method15530() {
	if (aClass169_993 != null)
	    OpenGL.glViewport(anInt9149 + anInt9195,
			      (anInt9272 + aClass169_993.method3836()
			       - anInt9168 - anInt9198),
			      anInt9197, anInt9198);
	OpenGL.glDepthRange(aFloat9244, aFloat9182);
    }
    
    public boolean method15483() {
	return ((Class87_Sub2_Sub2) this).aBool10998;
    }
    
    public Interface4 method2385(int i, int i_153_) {
	return new Class228(this, Class173.aClass173_2129,
			    Class90.aClass90_1043, i, i_153_);
    }
    
    void method15697(Interface31 interface31) {
	((Class87_Sub2_Sub2) this).aClass231_Sub2_10999
	    = (Class231_Sub2) interface31;
	((Class87_Sub2_Sub2) this).aClass231_Sub2_10999.method4647();
    }
    
    public void method15555(Class276 class276) {
	float[] fs = class276.aFloatArray4141;
	fs[1] = -fs[1];
	fs[5] = -fs[5];
	fs[9] = -fs[9];
	fs[13] = -fs[13];
    }
    
    void method15576() {
	if (aBool9203)
	    OpenGL.glEnable(2929);
	else
	    OpenGL.glDisable(2929);
    }
    
    void method15581() {
	if (aBool9203)
	    OpenGL.glEnable(2929);
	else
	    OpenGL.glDisable(2929);
    }
    
    void method15375() {
	if (aBool9203)
	    OpenGL.glEnable(2929);
	else
	    OpenGL.glDisable(2929);
    }
    
    void method15334() {
	OpenGL.glDepthMask(aBool9201 && aBool9180);
    }
    
    void method15577() {
	OpenGL.glDepthMask(aBool9201 && aBool9180);
    }
    
    public Interface5 method2418(int i, int i_154_, Class173 class173,
				 Class90 class90, int i_155_) {
	return new Class228(this, class173, class90, i, i_154_, i_155_);
    }
    
    Interface40 method15400(Class173 class173, Class90 class90, int i,
			    int i_156_) {
	return method15454(class173, class90, i, i_156_);
    }
    
    static int method17489(Class173 class173, Class90 class90) {
	if (class90 == Class90.aClass90_1040) {
	    switch (class173.anInt2137 * -598663847) {
	    case 1:
		return 6407;
	    default:
		throw new IllegalArgumentException();
	    case 9:
		return 6406;
	    case 5:
		return 33779;
	    case 2:
		return 33777;
	    case 4:
		return 6408;
	    case 0:
		return 6409;
	    case 6:
		return 6410;
	    }
	}
	if (class90 == Class90.aClass90_1042) {
	    switch (class173.anInt2137 * -598663847) {
	    case 6:
		return 36219;
	    default:
		throw new IllegalArgumentException();
	    case 0:
		return 32834;
	    case 1:
		return 32852;
	    case 4:
		return 32859;
	    case 9:
		return 32830;
	    case 7:
		return 33189;
	    }
	}
	if (class90 == Class90.aClass90_1043) {
	    switch (class173.anInt2137 * -598663847) {
	    case 7:
		return 33190;
	    default:
		throw new IllegalArgumentException();
	    }
	}
	if (class90 == Class90.aClass90_1044) {
	    switch (class173.anInt2137 * -598663847) {
	    case 0:
		return 34846;
	    case 9:
		return 34844;
	    case 4:
		return 34842;
	    case 6:
		return 34847;
	    default:
		throw new IllegalArgumentException();
	    case 1:
		return 34843;
	    }
	}
	if (class90 == Class90.aClass90_1045) {
	    switch (class173.anInt2137 * -598663847) {
	    case 1:
		return 34837;
	    default:
		throw new IllegalArgumentException();
	    case 9:
		return 34838;
	    case 0:
		return 34840;
	    case 4:
		return 34836;
	    case 6:
		return 34841;
	    }
	}
	throw new IllegalArgumentException();
    }
    
    void method15437() {
	((Class87_Sub2_Sub2) this).aFloatArray10993[0]
	    = aFloat9145 * aFloat9154;
	((Class87_Sub2_Sub2) this).aFloatArray10993[1]
	    = aFloat9145 * aFloat9213;
	((Class87_Sub2_Sub2) this).aFloatArray10993[2]
	    = aFloat9145 * aFloat9214;
	((Class87_Sub2_Sub2) this).aFloatArray10993[3] = 1.0F;
	OpenGL.glLightModelfv(2899,
			      ((Class87_Sub2_Sub2) this).aFloatArray10993, 0);
    }
    
    void method15615() {
	if (aBool9298 && !aBool9222)
	    OpenGL.glEnable(2896);
	else
	    OpenGL.glDisable(2896);
    }
    
    void method15594() {
	OpenGL.glMatrixMode(5888);
	OpenGL.glLoadMatrixf(aClass276_9230.aFloatArray4141, 0);
	int i;
	for (i = 0; i < anInt9220; i++) {
	    Class243_Sub42 class243_sub42 = aClass243_Sub42Array9218[i];
	    int i_157_ = class243_sub42.method16341(-674593923);
	    int i_158_ = 16386 + i;
	    float f = class243_sub42.method16337(-770989167) / 255.0F;
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[0]
		= (float) class243_sub42.method16334(1141430223);
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[1]
		= (float) class243_sub42.method16335(490100194);
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[2]
		= (float) class243_sub42.method16336(-1158629699);
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[3] = 1.0F;
	    OpenGL.glLightfv(i_158_, 4611,
			     ((Class87_Sub2_Sub2) this).aFloatArray10993, 0);
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[0]
		= (float) (i_157_ >> 16 & 0xff) * f;
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[1]
		= (float) (i_157_ >> 8 & 0xff) * f;
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[2]
		= (float) (i_157_ & 0xff) * f;
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[3] = 1.0F;
	    OpenGL.glLightfv(i_158_, 4609,
			     ((Class87_Sub2_Sub2) this).aFloatArray10993, 0);
	    OpenGL.glLightf(i_158_, 4617,
			    (1.0F
			     / (float) (class243_sub42.method16345(-117934955)
					* class243_sub42
					      .method16345(-117934955))));
	    OpenGL.glEnable(i_158_);
	}
	for (/**/; i < anInt9219; i++)
	    OpenGL.glDisable(16386 + i);
    }
    
    void method15481() {
	((Class87_Sub2_Sub2) this).aFloatArray10993[0]
	    = aFloat9193 * aFloat9154;
	((Class87_Sub2_Sub2) this).aFloatArray10993[1]
	    = aFloat9193 * aFloat9213;
	((Class87_Sub2_Sub2) this).aFloatArray10993[2]
	    = aFloat9193 * aFloat9214;
	((Class87_Sub2_Sub2) this).aFloatArray10993[3] = 1.0F;
	OpenGL.glLightfv(16384, 4609,
			 ((Class87_Sub2_Sub2) this).aFloatArray10993, 0);
	((Class87_Sub2_Sub2) this).aFloatArray10993[0]
	    = -aFloat9217 * aFloat9154;
	((Class87_Sub2_Sub2) this).aFloatArray10993[1]
	    = -aFloat9217 * aFloat9213;
	((Class87_Sub2_Sub2) this).aFloatArray10993[2]
	    = -aFloat9217 * aFloat9214;
	((Class87_Sub2_Sub2) this).aFloatArray10993[3] = 1.0F;
	OpenGL.glLightfv(16385, 4609,
			 ((Class87_Sub2_Sub2) this).aFloatArray10993, 0);
    }
    
    void method15564() {
	((Class87_Sub2_Sub2) this).aFloatArray10993[0]
	    = aFloat9193 * aFloat9154;
	((Class87_Sub2_Sub2) this).aFloatArray10993[1]
	    = aFloat9193 * aFloat9213;
	((Class87_Sub2_Sub2) this).aFloatArray10993[2]
	    = aFloat9193 * aFloat9214;
	((Class87_Sub2_Sub2) this).aFloatArray10993[3] = 1.0F;
	OpenGL.glLightfv(16384, 4609,
			 ((Class87_Sub2_Sub2) this).aFloatArray10993, 0);
	((Class87_Sub2_Sub2) this).aFloatArray10993[0]
	    = -aFloat9217 * aFloat9154;
	((Class87_Sub2_Sub2) this).aFloatArray10993[1]
	    = -aFloat9217 * aFloat9213;
	((Class87_Sub2_Sub2) this).aFloatArray10993[2]
	    = -aFloat9217 * aFloat9214;
	((Class87_Sub2_Sub2) this).aFloatArray10993[3] = 1.0F;
	OpenGL.glLightfv(16385, 4609,
			 ((Class87_Sub2_Sub2) this).aFloatArray10993, 0);
    }
    
    public boolean method15601() {
	return ((Class87_Sub2_Sub2) this).aBool11008;
    }
    
    final synchronized void method17490(int i) {
	Class243 class243 = new Class243();
	class243.aLong3905 = (long) i * 7863879224277138209L;
	((Class87_Sub2_Sub2) this).aClass420_10990.method7495(class243,
							      -586477887);
    }
    
    void method15588() {
	/* empty */
    }
    
    void method15649() {
	OpenGL.glTexEnvi(8960, 34162,
			 method17480(aClass391Array9206[anInt9225]));
    }
    
    void method15414() {
	OpenGL.glMatrixMode(5888);
	OpenGL.glLoadMatrixf(aClass276_9230.aFloatArray4141, 0);
	int i;
	for (i = 0; i < anInt9220; i++) {
	    Class243_Sub42 class243_sub42 = aClass243_Sub42Array9218[i];
	    int i_159_ = class243_sub42.method16341(-1378087337);
	    int i_160_ = 16386 + i;
	    float f = class243_sub42.method16337(-2048969771) / 255.0F;
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[0]
		= (float) class243_sub42.method16334(1141430223);
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[1]
		= (float) class243_sub42.method16335(490100194);
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[2]
		= (float) class243_sub42.method16336(-1158629699);
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[3] = 1.0F;
	    OpenGL.glLightfv(i_160_, 4611,
			     ((Class87_Sub2_Sub2) this).aFloatArray10993, 0);
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[0]
		= (float) (i_159_ >> 16 & 0xff) * f;
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[1]
		= (float) (i_159_ >> 8 & 0xff) * f;
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[2]
		= (float) (i_159_ & 0xff) * f;
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[3] = 1.0F;
	    OpenGL.glLightfv(i_160_, 4609,
			     ((Class87_Sub2_Sub2) this).aFloatArray10993, 0);
	    OpenGL.glLightf(i_160_, 4617,
			    (1.0F
			     / (float) (class243_sub42.method16345(-117934955)
					* class243_sub42
					      .method16345(-117934955))));
	    OpenGL.glEnable(i_160_);
	}
	for (/**/; i < anInt9219; i++)
	    OpenGL.glDisable(16386 + i);
    }
    
    void method15557() {
	OpenGL.glMatrixMode(5888);
	OpenGL.glLoadMatrixf(aClass276_9230.aFloatArray4141, 0);
	int i;
	for (i = 0; i < anInt9220; i++) {
	    Class243_Sub42 class243_sub42 = aClass243_Sub42Array9218[i];
	    int i_161_ = class243_sub42.method16341(-1595358704);
	    int i_162_ = 16386 + i;
	    float f = class243_sub42.method16337(-1279323324) / 255.0F;
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[0]
		= (float) class243_sub42.method16334(1141430223);
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[1]
		= (float) class243_sub42.method16335(490100194);
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[2]
		= (float) class243_sub42.method16336(-1158629699);
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[3] = 1.0F;
	    OpenGL.glLightfv(i_162_, 4611,
			     ((Class87_Sub2_Sub2) this).aFloatArray10993, 0);
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[0]
		= (float) (i_161_ >> 16 & 0xff) * f;
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[1]
		= (float) (i_161_ >> 8 & 0xff) * f;
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[2]
		= (float) (i_161_ & 0xff) * f;
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[3] = 1.0F;
	    OpenGL.glLightfv(i_162_, 4609,
			     ((Class87_Sub2_Sub2) this).aFloatArray10993, 0);
	    OpenGL.glLightf(i_162_, 4617,
			    (1.0F
			     / (float) (class243_sub42.method16345(-117934955)
					* class243_sub42
					      .method16345(-117934955))));
	    OpenGL.glEnable(i_162_);
	}
	for (/**/; i < anInt9219; i++)
	    OpenGL.glDisable(16386 + i);
    }
    
    boolean method15596(Class173 class173, Class90 class90) {
	return aBool9163;
    }
    
    boolean method15327(Class173 class173, Class90 class90) {
	return aBool9163;
    }
    
    Interface40 method15337(Class173 class173, Class90 class90, int i,
			    int i_163_) {
	return method15454(class173, class90, i, i_163_);
    }
    
    Interface40 method15603(Class173 class173, Class90 class90, int i,
			    int i_164_) {
	return method15454(class173, class90, i, i_164_);
    }
    
    boolean method15458(Class173 class173, Class90 class90) {
	return true;
    }
    
    Interface40 method15672(Class173 class173, Class90 class90, int i,
			    int i_165_) {
	return method15454(class173, class90, i, i_165_);
    }
    
    void method15393() {
	OpenGL.glActiveTexture(33984 + anInt9225);
    }
    
    Interface40 method15605(Class173 class173, int i, int i_166_, boolean bool,
			    byte[] is, int i_167_, int i_168_) {
	if (((Class87_Sub2_Sub2) this).aBool11007
	    || (Class192.method4113(i, 2079559173)
		&& Class192.method4113(i_166_, 564983494)))
	    return new Class220_Sub4(this, class173, i, i_166_, bool, is,
				     i_167_, i_168_);
	if (((Class87_Sub2_Sub2) this).aBool10997)
	    return new Class220_Sub2(this, class173, i, i_166_, is, i_167_,
				     i_168_);
	Class220_Sub4 class220_sub4
	    = new Class220_Sub4(this, class173, Class90.aClass90_1040,
				Class251.method5028(i, (short) 851),
				Class251.method5028(i_166_, (short) 851));
	class220_sub4.method239(0, 0, i, i_166_, is, class173, i_167_, i_168_);
	return class220_sub4;
    }
    
    Interface40 method15321(int i, int i_169_, boolean bool, int[] is,
			    int i_170_, int i_171_) {
	if (((Class87_Sub2_Sub2) this).aBool11007
	    || (Class192.method4113(i, 1801165246)
		&& Class192.method4113(i_169_, 1038884801)))
	    return new Class220_Sub4(this, i, i_169_, bool, is, i_170_,
				     i_171_);
	if (((Class87_Sub2_Sub2) this).aBool10997)
	    return new Class220_Sub2(this, i, i_169_, is, i_170_, i_171_);
	Class220_Sub4 class220_sub4
	    = new Class220_Sub4(this, Class173.aClass173_2131,
				Class90.aClass90_1040,
				Class251.method5028(i, (short) 851),
				Class251.method5028(i_169_, (short) 851));
	class220_sub4.method238(0, 0, i, i_169_, is, i_170_, i_171_);
	return class220_sub4;
    }
    
    Interface40 method15633(int i, int i_172_, boolean bool, int[] is,
			    int i_173_, int i_174_) {
	if (((Class87_Sub2_Sub2) this).aBool11007
	    || (Class192.method4113(i, 1888708780)
		&& Class192.method4113(i_172_, 413474552)))
	    return new Class220_Sub4(this, i, i_172_, bool, is, i_173_,
				     i_174_);
	if (((Class87_Sub2_Sub2) this).aBool10997)
	    return new Class220_Sub2(this, i, i_172_, is, i_173_, i_174_);
	Class220_Sub4 class220_sub4
	    = new Class220_Sub4(this, Class173.aClass173_2131,
				Class90.aClass90_1040,
				Class251.method5028(i, (short) 851),
				Class251.method5028(i_172_, (short) 851));
	class220_sub4.method238(0, 0, i, i_172_, is, i_173_, i_174_);
	return class220_sub4;
    }
    
    Interface32 method15608(int i, boolean bool, int[][] is) {
	return new Class220_Sub1(this, i, bool, is);
    }
    
    void method15700(Interface31 interface31) {
	((Class87_Sub2_Sub2) this).aClass231_Sub2_10999
	    = (Class231_Sub2) interface31;
	((Class87_Sub2_Sub2) this).aClass231_Sub2_10999.method4647();
    }
    
    void method15589() {
	if (aBool9205) {
	    OpenGL.glEnable(16384);
	    OpenGL.glEnable(16385);
	} else {
	    OpenGL.glDisable(16384);
	    OpenGL.glDisable(16385);
	}
    }
    
    void method15663() {
	aFloat9130 = aFloat9186 - (float) anInt9263;
	aFloat9264 = aFloat9130 - (float) anInt9169;
	if (aFloat9264 < aFloat9185)
	    aFloat9264 = aFloat9185;
	if (aBool9153) {
	    OpenGL.glFogf(2915, aFloat9264);
	    OpenGL.glFogf(2916, aFloat9130);
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[0]
		= (float) (anInt9147 & 0xff0000) / 1.671168E7F;
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[1]
		= (float) (anInt9147 & 0xff00) / 65280.0F;
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[2]
		= (float) (anInt9147 & 0xff) / 255.0F;
	    OpenGL.glFogfv(2918, ((Class87_Sub2_Sub2) this).aFloatArray10993,
			   0);
	}
    }
    
    Interface45 method15432(Class173 class173, Class90 class90, int i,
			    int i_175_) {
	if (((Class87_Sub2_Sub2) this).aBool11007
	    || (Class192.method4113(i, 1051006764)
		&& Class192.method4113(i_175_, 264449131)))
	    return new Class220_Sub4(this, class173, class90, i, i_175_);
	if (((Class87_Sub2_Sub2) this).aBool10997)
	    return new Class220_Sub2(this, class173, class90, i, i_175_);
	return new Class220_Sub4(this, class173, class90,
				 Class251.method5028(i, (short) 851),
				 Class251.method5028(i_175_, (short) 851));
    }
    
    Interface45 method15610(Class173 class173, Class90 class90, int i,
			    int i_176_) {
	if (((Class87_Sub2_Sub2) this).aBool11007
	    || (Class192.method4113(i, 484837239)
		&& Class192.method4113(i_176_, 430725375)))
	    return new Class220_Sub4(this, class173, class90, i, i_176_);
	if (((Class87_Sub2_Sub2) this).aBool10997)
	    return new Class220_Sub2(this, class173, class90, i, i_176_);
	return new Class220_Sub4(this, class173, class90,
				 Class251.method5028(i, (short) 851),
				 Class251.method5028(i_176_, (short) 851));
    }
    
    byte[] method17491(String string) {
	return method15304("gl", string);
    }
    
    Interface45 method15317(Class173 class173, Class90 class90, int i,
			    int i_177_) {
	if (((Class87_Sub2_Sub2) this).aBool11007
	    || (Class192.method4113(i, 1527314580)
		&& Class192.method4113(i_177_, 72921481)))
	    return new Class220_Sub4(this, class173, class90, i, i_177_);
	if (((Class87_Sub2_Sub2) this).aBool10997)
	    return new Class220_Sub2(this, class173, class90, i, i_177_);
	return new Class220_Sub4(this, class173, class90,
				 Class251.method5028(i, (short) 851),
				 Class251.method5028(i_177_, (short) 851));
    }
    
    public void method15612() {
	int i = ((Class87_Sub2_Sub2) this).anIntArray11000[anInt9225];
	if (i != 0) {
	    ((Class87_Sub2_Sub2) this).anIntArray11000[anInt9225] = 0;
	    OpenGL.glBindTexture(i, 0);
	    OpenGL.glDisable(i);
	}
    }
    
    final synchronized void method17492(long l) {
	Class243 class243 = new Class243();
	class243.aLong3905 = l * 7863879224277138209L;
	((Class87_Sub2_Sub2) this).aClass420_10991.method7495(class243,
							      545825923);
    }
    
    final void method15624(int i, Class385 class385, boolean bool) {
	OpenGL.glTexEnvi(8960, 34184 + i, method17481(class385));
	OpenGL.glTexEnvi(8960, 34200 + i, bool ? 771 : 770);
    }
    
    final void method15625(int i, Class385 class385, boolean bool) {
	OpenGL.glTexEnvi(8960, 34184 + i, method17481(class385));
	OpenGL.glTexEnvi(8960, 34200 + i, bool ? 771 : 770);
    }
    
    static int method17493(Class173 class173) {
	switch (class173.anInt2137 * -598663847) {
	case 4:
	    return 6408;
	case 6:
	    return 6410;
	default:
	    throw new IllegalStateException();
	case 7:
	    return 6402;
	case 9:
	    return 6406;
	case 0:
	    return 6409;
	case 1:
	    return 6407;
	}
    }
    
    void method15360() {
	OpenGL.glDepthMask(aBool9201 && aBool9180);
    }
    
    final void method15449() {
	((Class87_Sub2_Sub2) this).aFloatArray10993[0]
	    = (float) (anInt9231 & 0xff0000) / 1.671168E7F;
	((Class87_Sub2_Sub2) this).aFloatArray10993[1]
	    = (float) (anInt9231 & 0xff00) / 65280.0F;
	((Class87_Sub2_Sub2) this).aFloatArray10993[2]
	    = (float) (anInt9231 & 0xff) / 255.0F;
	((Class87_Sub2_Sub2) this).aFloatArray10993[3]
	    = (float) (anInt9231 >>> 24) / 255.0F;
	OpenGL.glTexEnvfv(8960, 8705,
			  ((Class87_Sub2_Sub2) this).aFloatArray10993, 0);
    }
    
    final void method15465() {
	((Class87_Sub2_Sub2) this).aFloatArray10993[0]
	    = (float) (anInt9231 & 0xff0000) / 1.671168E7F;
	((Class87_Sub2_Sub2) this).aFloatArray10993[1]
	    = (float) (anInt9231 & 0xff00) / 65280.0F;
	((Class87_Sub2_Sub2) this).aFloatArray10993[2]
	    = (float) (anInt9231 & 0xff) / 255.0F;
	((Class87_Sub2_Sub2) this).aFloatArray10993[3]
	    = (float) (anInt9231 >>> 24) / 255.0F;
	OpenGL.glTexEnvfv(8960, 8705,
			  ((Class87_Sub2_Sub2) this).aFloatArray10993, 0);
    }
    
    final void method15641() {
	((Class87_Sub2_Sub2) this).aFloatArray10993[0]
	    = (float) (anInt9231 & 0xff0000) / 1.671168E7F;
	((Class87_Sub2_Sub2) this).aFloatArray10993[1]
	    = (float) (anInt9231 & 0xff00) / 65280.0F;
	((Class87_Sub2_Sub2) this).aFloatArray10993[2]
	    = (float) (anInt9231 & 0xff) / 255.0F;
	((Class87_Sub2_Sub2) this).aFloatArray10993[3]
	    = (float) (anInt9231 >>> 24) / 255.0F;
	OpenGL.glTexEnvfv(8960, 8705,
			  ((Class87_Sub2_Sub2) this).aFloatArray10993, 0);
    }
    
    void method15582() {
	OpenGL.glDepthFunc(515);
	OpenGL.glEnable(2884);
	OpenGL.glCullFace(1029);
	OpenGL.glClearDepth(1.0F);
	OpenGL.glAlphaFunc(516, 0.0F);
	OpenGL.glPolygonMode(1028, 6914);
	for (int i = anInt9276 - 1; i >= 0; i--) {
	    OpenGL.glActiveTexture(33984 + i);
	    OpenGL.glTexEnvi(8960, 8704, 34160);
	    OpenGL.glTexEnvi(8960, 34161, 8448);
	    OpenGL.glTexEnvi(8960, 34178, 34166);
	    OpenGL.glTexEnvi(8960, 34162, 8448);
	    OpenGL.glTexEnvi(8960, 34186, 34166);
	}
	OpenGL.glTexEnvi(8960, 34186, 34168);
	OpenGL.glShadeModel(7425);
	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_178_ = 16384 + i;
	    OpenGL.glLightfv(i_178_, 4608, fs, 0);
	    OpenGL.glLightf(i_178_, 4615, 0.0F);
	    OpenGL.glLightf(i_178_, 4616, 0.0F);
	}
	OpenGL.glFogf(2914, 0.95F);
	OpenGL.glFogi(2917, 9729);
	OpenGL.glHint(3156, 4353);
	((Class87_Sub2_Sub2) this).anOpenGL11001.setSwapInterval(0);
	super.method15598();
    }
    
    void method15643() {
	OpenGL.glMatrixMode(5890);
	if (aClass366Array9228[anInt9225] != Class366.aClass366_5527)
	    OpenGL.glLoadMatrixf
		(aClass276Array9265[anInt9225]
		     .method5481(((Class87_Sub2_Sub2) this).aFloatArray11011),
		 0);
	else
	    OpenGL.glLoadIdentity();
	OpenGL.glMatrixMode(5888);
    }
    
    void method15373() {
	OpenGL.glMatrixMode(5890);
	if (aClass366Array9228[anInt9225] != Class366.aClass366_5527)
	    OpenGL.glLoadMatrixf
		(aClass276Array9265[anInt9225]
		     .method5481(((Class87_Sub2_Sub2) this).aFloatArray11011),
		 0);
	else
	    OpenGL.glLoadIdentity();
	OpenGL.glMatrixMode(5888);
    }
    
    void method15645() {
	OpenGL.glActiveTexture(33984 + anInt9225);
    }
    
    void method15646() {
	OpenGL.glActiveTexture(33984 + anInt9225);
    }
    
    void method15647() {
	OpenGL.glTexEnvi(8960, 34161,
			 method17480(aClass391Array9229[anInt9225]));
    }
    
    void method15359() {
	OpenGL.glTexEnvi(8960, 34162,
			 method17480(aClass391Array9206[anInt9225]));
    }
    
    static final int method17494(Class90 class90) {
	switch (class90.anInt1046 * -295509) {
	case 6:
	    return 5124;
	case 8:
	    return 5125;
	case 3:
	    return 5120;
	case 4:
	    return 5126;
	default:
	    return 5121;
	case 2:
	    return 5123;
	case 5:
	    return 5122;
	case 1:
	    return 5131;
	case 0:
	    return 5121;
	}
    }
    
    void method15698(Interface31 interface31) {
	((Class87_Sub2_Sub2) this).aClass231_Sub2_10999
	    = (Class231_Sub2) interface31;
	((Class87_Sub2_Sub2) this).aClass231_Sub2_10999.method4647();
    }
    
    public void method15306(Class276 class276, Class276 class276_179_,
			    Class276 class276_180_) {
	OpenGL.glMatrixMode(5888);
	aClass276_9187.method5457(class276, class276_179_);
	OpenGL.glLoadMatrixf(aClass276_9187.aFloatArray4141, 0);
	OpenGL.glMatrixMode(5889);
	OpenGL.glLoadMatrixf(class276_180_.aFloatArray4141, 0);
    }
    
    void method15653(int i) {
	OpenGL.glColorMask((i & 0x1) != 0, (i & 0x2) != 0, (i & 0x4) != 0,
			   (i & 0x8) != 0);
    }
    
    void method15657(int i) {
	OpenGL.glColorMask((i & 0x1) != 0, (i & 0x2) != 0, (i & 0x4) != 0,
			   (i & 0x8) != 0);
    }
    
    void method15520() {
	if (aBool9269)
	    OpenGL.glEnable(3008);
	else
	    OpenGL.glDisable(3008);
    }
    
    void method15655() {
	if (aBool9269)
	    OpenGL.glEnable(3008);
	else
	    OpenGL.glDisable(3008);
    }
    
    void method2206() {
	super.method2080();
	if (((Class87_Sub2_Sub2) this).anOpenGL11001 != null) {
	    ((Class87_Sub2_Sub2) this).anOpenGL11001.method3730();
	    ((Class87_Sub2_Sub2) this).anOpenGL11001.release();
	    ((Class87_Sub2_Sub2) this).anOpenGL11001 = null;
	}
    }
    
    void method15460() {
	int i = 0;
	int i_181_ = 0;
	if (anInt9255 == 0) {
	    i = 0;
	    i_181_ = 0;
	} else if (anInt9255 == 1) {
	    i = 1;
	    i_181_ = 0;
	} else if (anInt9255 == 2) {
	    i = 1;
	    i_181_ = 1;
	}
	if (aClass375_9267 == Class375.aClass375_5583)
	    OpenGL.glBlendFuncSeparate(770, 771, i, i_181_);
	else if (aClass375_9267 == Class375.aClass375_5582)
	    OpenGL.glBlendFuncSeparate(1, 1, i, i_181_);
	else if (aClass375_9267 == Class375.aClass375_5580)
	    OpenGL.glBlendFuncSeparate(774, 1, i, i_181_);
    }
    
    final void method15391() {
	((Class87_Sub2_Sub2) this).aFloatArray10993[0]
	    = (float) (anInt9231 & 0xff0000) / 1.671168E7F;
	((Class87_Sub2_Sub2) this).aFloatArray10993[1]
	    = (float) (anInt9231 & 0xff00) / 65280.0F;
	((Class87_Sub2_Sub2) this).aFloatArray10993[2]
	    = (float) (anInt9231 & 0xff) / 255.0F;
	((Class87_Sub2_Sub2) this).aFloatArray10993[3]
	    = (float) (anInt9231 >>> 24) / 255.0F;
	OpenGL.glTexEnvfv(8960, 8705,
			  ((Class87_Sub2_Sub2) this).aFloatArray10993, 0);
    }
    
    void method15659() {
	if (aBool9282)
	    OpenGL.glEnable(3042);
	else
	    OpenGL.glDisable(3042);
    }
    
    void method15660() {
	if (aBool9282)
	    OpenGL.glEnable(3042);
	else
	    OpenGL.glDisable(3042);
    }
    
    Class367 method15690(Class378[] class378s) {
	return new Class367_Sub1(class378s);
    }
    
    void method15664() {
	aFloat9130 = aFloat9186 - (float) anInt9263;
	aFloat9264 = aFloat9130 - (float) anInt9169;
	if (aFloat9264 < aFloat9185)
	    aFloat9264 = aFloat9185;
	if (aBool9153) {
	    OpenGL.glFogf(2915, aFloat9264);
	    OpenGL.glFogf(2916, aFloat9130);
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[0]
		= (float) (anInt9147 & 0xff0000) / 1.671168E7F;
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[1]
		= (float) (anInt9147 & 0xff00) / 65280.0F;
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[2]
		= (float) (anInt9147 & 0xff) / 255.0F;
	    OpenGL.glFogfv(2918, ((Class87_Sub2_Sub2) this).aFloatArray10993,
			   0);
	}
    }
    
    public Class169_Sub2 method2395() {
	return new Class169_Sub2_Sub3_Sub1(this);
    }
    
    void method15450() {
	if (aBool9205) {
	    OpenGL.glEnable(16384);
	    OpenGL.glEnable(16385);
	} else {
	    OpenGL.glDisable(16384);
	    OpenGL.glDisable(16385);
	}
    }
    
    final synchronized void method17495(long l) {
	Class243 class243 = new Class243();
	class243.aLong3905 = l * 7863879224277138209L;
	((Class87_Sub2_Sub2) this).aClass420_10991.method7495(class243,
							      1162024208);
    }
    
    final Interface31 method15604(boolean bool) {
	return new Class231_Sub2(this, Class90.aClass90_1042, bool);
    }
    
    void method15656() {
	if (aBool9269)
	    OpenGL.glEnable(3008);
	else
	    OpenGL.glDisable(3008);
    }
    
    final Interface36 method15668(boolean bool) {
	return new Class231_Sub1(this, bool);
    }
    
    final Interface36 method15669(boolean bool) {
	return new Class231_Sub1(this, bool);
    }
    
    void method15547(int i) {
	if (!((Class87_Sub2_Sub2) this).aBool10984)
	    OpenGL.glPolygonMode(1028, (i & 0x2) != 0 ? 6913 : 6914);
    }
    
    void method15340() {
	if (aBool9175)
	    OpenGL.glEnable(3089);
	else
	    OpenGL.glDisable(3089);
    }
    
    public final void method15421(Class311 class311, int i, int i_182_,
				  int i_183_, int i_184_) {
	int i_185_;
	int i_186_;
	if (class311 == Class311.aClass311_4592) {
	    i_185_ = 1;
	    i_186_ = i_184_ * 2;
	} else if (class311 == Class311.aClass311_4589) {
	    i_185_ = 3;
	    i_186_ = i_184_ + 1;
	} else if (class311 == Class311.aClass311_4588) {
	    i_185_ = 4;
	    i_186_ = i_184_ * 3;
	} else if (class311 == Class311.aClass311_4590) {
	    i_185_ = 6;
	    i_186_ = i_184_ + 2;
	} else if (class311 == Class311.aClass311_4593) {
	    i_185_ = 5;
	    i_186_ = i_184_ + 2;
	} else {
	    i_185_ = 0;
	    i_186_ = i_184_;
	}
	Class90 class90
	    = ((Class87_Sub2_Sub2) this).aClass231_Sub2_10999.method189();
	OpenGL.glDrawElements(i_185_, i_186_, method17479(class90),
			      (((Class87_Sub2_Sub2) this)
				   .aClass231_Sub2_10999.method4646()
			       + (long) (i_183_ * (class90.anInt1047
						   * -2141494347))));
    }
    
    void method15648() {
	OpenGL.glTexEnvi(8960, 34162,
			 method17480(aClass391Array9206[anInt9225]));
    }
    
    Class169_Sub1 method2102(Canvas canvas, int i, int i_187_) {
	return new Class169_Sub1_Sub2_Sub1(this, canvas);
    }
    
    public void method15675(Class367 class367) {
	Class378[] class378s = class367.aClass378Array5533;
	int i = 0;
	boolean bool = false;
	boolean bool_188_ = false;
	boolean bool_189_ = false;
	for (int i_190_ = 0; i_190_ < class378s.length; i_190_++) {
	    Class378 class378 = class378s[i_190_];
	    Class231_Sub1 class231_sub1
		= ((Class87_Sub2_Sub2) this).aClass231_Sub1Array11012[i_190_];
	    int i_191_ = 0;
	    int i_192_ = class231_sub1.method16564();
	    long l = class231_sub1.method4646();
	    class231_sub1.method4647();
	    for (int i_193_ = 0; i_193_ < class378.method7008(); i_193_++) {
		Class379 class379 = class378.method7013(i_193_);
		switch (class379.anInt5612) {
		default:
		    break;
		case 4:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(4, 5126, i_192_,
					     l + (long) i_191_);
		    break;
		case 6:
		    OpenGL.glVertexPointer(3, 5126, i_192_, l + (long) i_191_);
		    bool_189_ = true;
		    break;
		case 2:
		    OpenGL.glNormalPointer(5126, i_192_, l + (long) i_191_);
		    bool_188_ = true;
		    break;
		case 5:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(1, 5126, i_192_,
					     l + (long) i_191_);
		    break;
		case 11:
		    OpenGL.glColorPointer(4, 5121, i_192_, l + (long) i_191_);
		    bool = true;
		    break;
		case 7:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(3, 5126, i_192_,
					     l + (long) i_191_);
		    break;
		case 3:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(2, 5126, i_192_,
					     l + (long) i_191_);
		}
		i_191_ += class379.anInt5606;
	    }
	}
	if (((Class87_Sub2_Sub2) this).aBool11006 != bool_189_) {
	    if (bool_189_)
		OpenGL.glEnableClientState(32884);
	    else
		OpenGL.glDisableClientState(32884);
	    ((Class87_Sub2_Sub2) this).aBool11006 = bool_189_;
	}
	if (((Class87_Sub2_Sub2) this).aBool10994 != bool_188_) {
	    if (bool_188_)
		OpenGL.glEnableClientState(32885);
	    else
		OpenGL.glDisableClientState(32885);
	    ((Class87_Sub2_Sub2) this).aBool10994 = bool_188_;
	}
	if (((Class87_Sub2_Sub2) this).aBool10995 != bool) {
	    if (bool)
		OpenGL.glEnableClientState(32886);
	    else
		OpenGL.glDisableClientState(32886);
	    ((Class87_Sub2_Sub2) this).aBool10995 = bool;
	}
	if (((Class87_Sub2_Sub2) this).anInt10988 < i) {
	    for (int i_194_ = ((Class87_Sub2_Sub2) this).anInt10988;
		 i_194_ < i; i_194_++) {
		OpenGL.glClientActiveTexture(33984 + i_194_);
		OpenGL.glEnableClientState(32888);
	    }
	    ((Class87_Sub2_Sub2) this).anInt10988 = i;
	} else if (((Class87_Sub2_Sub2) this).anInt10988 > i) {
	    for (int i_195_ = i;
		 i_195_ < ((Class87_Sub2_Sub2) this).anInt10988; i_195_++) {
		OpenGL.glClientActiveTexture(33984 + i_195_);
		OpenGL.glDisableClientState(32888);
	    }
	    ((Class87_Sub2_Sub2) this).anInt10988 = i;
	}
    }
    
    public void method15312(Class367 class367) {
	Class378[] class378s = class367.aClass378Array5533;
	int i = 0;
	boolean bool = false;
	boolean bool_196_ = false;
	boolean bool_197_ = false;
	for (int i_198_ = 0; i_198_ < class378s.length; i_198_++) {
	    Class378 class378 = class378s[i_198_];
	    Class231_Sub1 class231_sub1
		= ((Class87_Sub2_Sub2) this).aClass231_Sub1Array11012[i_198_];
	    int i_199_ = 0;
	    int i_200_ = class231_sub1.method16564();
	    long l = class231_sub1.method4646();
	    class231_sub1.method4647();
	    for (int i_201_ = 0; i_201_ < class378.method7008(); i_201_++) {
		Class379 class379 = class378.method7013(i_201_);
		switch (class379.anInt5612) {
		default:
		    break;
		case 4:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(4, 5126, i_200_,
					     l + (long) i_199_);
		    break;
		case 6:
		    OpenGL.glVertexPointer(3, 5126, i_200_, l + (long) i_199_);
		    bool_197_ = true;
		    break;
		case 2:
		    OpenGL.glNormalPointer(5126, i_200_, l + (long) i_199_);
		    bool_196_ = true;
		    break;
		case 5:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(1, 5126, i_200_,
					     l + (long) i_199_);
		    break;
		case 11:
		    OpenGL.glColorPointer(4, 5121, i_200_, l + (long) i_199_);
		    bool = true;
		    break;
		case 7:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(3, 5126, i_200_,
					     l + (long) i_199_);
		    break;
		case 3:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(2, 5126, i_200_,
					     l + (long) i_199_);
		}
		i_199_ += class379.anInt5606;
	    }
	}
	if (((Class87_Sub2_Sub2) this).aBool11006 != bool_197_) {
	    if (bool_197_)
		OpenGL.glEnableClientState(32884);
	    else
		OpenGL.glDisableClientState(32884);
	    ((Class87_Sub2_Sub2) this).aBool11006 = bool_197_;
	}
	if (((Class87_Sub2_Sub2) this).aBool10994 != bool_196_) {
	    if (bool_196_)
		OpenGL.glEnableClientState(32885);
	    else
		OpenGL.glDisableClientState(32885);
	    ((Class87_Sub2_Sub2) this).aBool10994 = bool_196_;
	}
	if (((Class87_Sub2_Sub2) this).aBool10995 != bool) {
	    if (bool)
		OpenGL.glEnableClientState(32886);
	    else
		OpenGL.glDisableClientState(32886);
	    ((Class87_Sub2_Sub2) this).aBool10995 = bool;
	}
	if (((Class87_Sub2_Sub2) this).anInt10988 < i) {
	    for (int i_202_ = ((Class87_Sub2_Sub2) this).anInt10988;
		 i_202_ < i; i_202_++) {
		OpenGL.glClientActiveTexture(33984 + i_202_);
		OpenGL.glEnableClientState(32888);
	    }
	    ((Class87_Sub2_Sub2) this).anInt10988 = i;
	} else if (((Class87_Sub2_Sub2) this).anInt10988 > i) {
	    for (int i_203_ = i;
		 i_203_ < ((Class87_Sub2_Sub2) this).anInt10988; i_203_++) {
		OpenGL.glClientActiveTexture(33984 + i_203_);
		OpenGL.glDisableClientState(32888);
	    }
	    ((Class87_Sub2_Sub2) this).anInt10988 = i;
	}
    }
    
    public Class37 method15490(String string) {
	byte[] is = method17477(string);
	if (is == null)
	    return null;
	Class45 class45 = method15305(is);
	return new Class37_Sub2(this, class45);
    }
    
    public void method15644(int i, Interface36 interface36) {
	((Class87_Sub2_Sub2) this).aClass231_Sub1Array11012[i]
	    = (Class231_Sub1) interface36;
    }
    
    public void method15678(int i, Interface36 interface36) {
	((Class87_Sub2_Sub2) this).aClass231_Sub1Array11012[i]
	    = (Class231_Sub1) interface36;
    }
    
    public final void method15681(Class311 class311, int i, int i_204_) {
	int i_205_;
	int i_206_;
	if (class311 == Class311.aClass311_4592) {
	    i_205_ = 1;
	    i_206_ = i_204_ * 2;
	} else if (class311 == Class311.aClass311_4589) {
	    i_205_ = 3;
	    i_206_ = i_204_ + 1;
	} else if (class311 == Class311.aClass311_4588) {
	    i_205_ = 4;
	    i_206_ = i_204_ * 3;
	} else if (class311 == Class311.aClass311_4590) {
	    i_205_ = 6;
	    i_206_ = i_204_ + 2;
	} else if (class311 == Class311.aClass311_4593) {
	    i_205_ = 5;
	    i_206_ = i_204_ + 2;
	} else {
	    i_205_ = 0;
	    i_206_ = i_204_;
	}
	OpenGL.glDrawArrays(i_205_, i, i_206_);
    }
    
    final synchronized void method17496(int i) {
	Class243 class243 = new Class243();
	class243.aLong3905 = (long) i * 7863879224277138209L;
	((Class87_Sub2_Sub2) this).aClass420_10990.method7495(class243,
							      370553256);
    }
    
    public final void method15324(Class311 class311, int i, int i_207_) {
	int i_208_;
	int i_209_;
	if (class311 == Class311.aClass311_4592) {
	    i_208_ = 1;
	    i_209_ = i_207_ * 2;
	} else if (class311 == Class311.aClass311_4589) {
	    i_208_ = 3;
	    i_209_ = i_207_ + 1;
	} else if (class311 == Class311.aClass311_4588) {
	    i_208_ = 4;
	    i_209_ = i_207_ * 3;
	} else if (class311 == Class311.aClass311_4590) {
	    i_208_ = 6;
	    i_209_ = i_207_ + 2;
	} else if (class311 == Class311.aClass311_4593) {
	    i_208_ = 5;
	    i_209_ = i_207_ + 2;
	} else {
	    i_208_ = 0;
	    i_209_ = i_207_;
	}
	OpenGL.glDrawArrays(i_208_, i, i_209_);
    }
    
    final void method15683(Interface31 interface31, Class311 class311, int i,
			   int i_210_, int i_211_, int i_212_) {
	int i_213_;
	int i_214_;
	if (class311 == Class311.aClass311_4592) {
	    i_213_ = 1;
	    i_214_ = i_212_ * 2;
	} else if (class311 == Class311.aClass311_4589) {
	    i_213_ = 3;
	    i_214_ = i_212_ + 1;
	} else if (class311 == Class311.aClass311_4588) {
	    i_213_ = 4;
	    i_214_ = i_212_ * 3;
	} else if (class311 == Class311.aClass311_4590) {
	    i_213_ = 6;
	    i_214_ = i_212_ + 2;
	} else if (class311 == Class311.aClass311_4593) {
	    i_213_ = 5;
	    i_214_ = i_212_ + 2;
	} else {
	    i_213_ = 0;
	    i_214_ = i_212_;
	}
	Class90 class90 = interface31.method189();
	Class231_Sub2 class231_sub2 = (Class231_Sub2) interface31;
	class231_sub2.method4647();
	OpenGL.glDrawElements(i_213_, i_214_, method17479(class90),
			      (class231_sub2.method4646()
			       + (long) (i_211_ * (class90.anInt1047
						   * -2141494347))));
    }
    
    public final void method15684(Class311 class311, int i, int i_215_,
				  int i_216_, int i_217_) {
	int i_218_;
	int i_219_;
	if (class311 == Class311.aClass311_4592) {
	    i_218_ = 1;
	    i_219_ = i_217_ * 2;
	} else if (class311 == Class311.aClass311_4589) {
	    i_218_ = 3;
	    i_219_ = i_217_ + 1;
	} else if (class311 == Class311.aClass311_4588) {
	    i_218_ = 4;
	    i_219_ = i_217_ * 3;
	} else if (class311 == Class311.aClass311_4590) {
	    i_218_ = 6;
	    i_219_ = i_217_ + 2;
	} else if (class311 == Class311.aClass311_4593) {
	    i_218_ = 5;
	    i_219_ = i_217_ + 2;
	} else {
	    i_218_ = 0;
	    i_219_ = i_217_;
	}
	Class90 class90
	    = ((Class87_Sub2_Sub2) this).aClass231_Sub2_10999.method189();
	OpenGL.glDrawElements(i_218_, i_219_, method17479(class90),
			      (((Class87_Sub2_Sub2) this)
				   .aClass231_Sub2_10999.method4646()
			       + (long) (i_216_ * (class90.anInt1047
						   * -2141494347))));
    }
    
    public final void method15415(Class311 class311, int i, int i_220_,
				  int i_221_, int i_222_) {
	int i_223_;
	int i_224_;
	if (class311 == Class311.aClass311_4592) {
	    i_223_ = 1;
	    i_224_ = i_222_ * 2;
	} else if (class311 == Class311.aClass311_4589) {
	    i_223_ = 3;
	    i_224_ = i_222_ + 1;
	} else if (class311 == Class311.aClass311_4588) {
	    i_223_ = 4;
	    i_224_ = i_222_ * 3;
	} else if (class311 == Class311.aClass311_4590) {
	    i_223_ = 6;
	    i_224_ = i_222_ + 2;
	} else if (class311 == Class311.aClass311_4593) {
	    i_223_ = 5;
	    i_224_ = i_222_ + 2;
	} else {
	    i_223_ = 0;
	    i_224_ = i_222_;
	}
	Class90 class90
	    = ((Class87_Sub2_Sub2) this).aClass231_Sub2_10999.method189();
	OpenGL.glDrawElements(i_223_, i_224_, method17479(class90),
			      (((Class87_Sub2_Sub2) this)
				   .aClass231_Sub2_10999.method4646()
			       + (long) (i_221_ * (class90.anInt1047
						   * -2141494347))));
    }
    
    public final void method15503(Class311 class311, int i, int i_225_,
				  int i_226_, int i_227_) {
	int i_228_;
	int i_229_;
	if (class311 == Class311.aClass311_4592) {
	    i_228_ = 1;
	    i_229_ = i_227_ * 2;
	} else if (class311 == Class311.aClass311_4589) {
	    i_228_ = 3;
	    i_229_ = i_227_ + 1;
	} else if (class311 == Class311.aClass311_4588) {
	    i_228_ = 4;
	    i_229_ = i_227_ * 3;
	} else if (class311 == Class311.aClass311_4590) {
	    i_228_ = 6;
	    i_229_ = i_227_ + 2;
	} else if (class311 == Class311.aClass311_4593) {
	    i_228_ = 5;
	    i_229_ = i_227_ + 2;
	} else {
	    i_228_ = 0;
	    i_229_ = i_227_;
	}
	Class90 class90
	    = ((Class87_Sub2_Sub2) this).aClass231_Sub2_10999.method189();
	OpenGL.glDrawElements(i_228_, i_229_, method17479(class90),
			      (((Class87_Sub2_Sub2) this)
				   .aClass231_Sub2_10999.method4646()
			       + (long) (i_226_ * (class90.anInt1047
						   * -2141494347))));
    }
    
    void method15689() {
	if (aBool9175)
	    OpenGL.glEnable(3089);
	else
	    OpenGL.glDisable(3089);
    }
    
    void method15462() {
	if (aBool9175)
	    OpenGL.glEnable(3089);
	else
	    OpenGL.glDisable(3089);
    }
    
    Interface45 method15611(Class173 class173, Class90 class90, int i,
			    int i_230_) {
	if (((Class87_Sub2_Sub2) this).aBool11007
	    || (Class192.method4113(i, 2034900311)
		&& Class192.method4113(i_230_, 614537301)))
	    return new Class220_Sub4(this, class173, class90, i, i_230_);
	if (((Class87_Sub2_Sub2) this).aBool10997)
	    return new Class220_Sub2(this, class173, class90, i, i_230_);
	return new Class220_Sub4(this, class173, class90,
				 Class251.method5028(i, (short) 851),
				 Class251.method5028(i_230_, (short) 851));
    }
    
    boolean method15691(Class173 class173, Class90 class90) {
	return true;
    }
    
    void method15394() {
	OpenGL.glTexEnvi(8960, 34161,
			 method17480(aClass391Array9229[anInt9225]));
    }
    
    Interface40 method15455(Class173 class173, int i, int i_231_, boolean bool,
			    float[] fs, int i_232_, int i_233_) {
	if (((Class87_Sub2_Sub2) this).aBool11007
	    || (Class192.method4113(i, 2140397278)
		&& Class192.method4113(i_231_, 788693773)))
	    return new Class220_Sub4(this, class173, i, i_231_, bool, fs,
				     i_232_, i_233_);
	if (((Class87_Sub2_Sub2) this).aBool10997)
	    return new Class220_Sub2(this, class173, i, i_231_, fs, i_232_,
				     i_233_);
	Class220_Sub4 class220_sub4
	    = new Class220_Sub4(this, class173, Class90.aClass90_1045,
				Class251.method5028(i, (short) 851),
				Class251.method5028(i_231_, (short) 851));
	class220_sub4.method16733(0, 0, i, i_231_, fs, class173, i_232_,
				  i_233_);
	return class220_sub4;
    }
    
    Interface38 method15459(Class173 class173, int i, int i_234_, int i_235_,
			    boolean bool, byte[] is) {
	return new Class220_Sub3(this, class173, i, i_234_, i_235_, bool, is);
    }
    
    void method15694(boolean bool) {
	if (bool)
	    OpenGL.glEnable(32925);
	else
	    OpenGL.glDisable(32925);
    }
    
    void method15695(boolean bool) {
	if (bool)
	    OpenGL.glEnable(32925);
	else
	    OpenGL.glDisable(32925);
    }
    
    void method15696(boolean bool) {
	if (bool)
	    OpenGL.glEnable(32925);
	else
	    OpenGL.glDisable(32925);
    }
    
    public Interface4 method2105(int i, int i_236_) {
	return new Class228(this, Class173.aClass173_2129,
			    Class90.aClass90_1043, i, i_236_);
    }
    
    void method15366() {
	OpenGL.glMatrixMode(5888);
	OpenGL.glLoadMatrixf(aClass276_9230.aFloatArray4141, 0);
	OpenGL.glLightfv(16384, 4611, aFloatArray9207, 0);
	OpenGL.glLightfv(16385, 4611, aFloatArray9208, 0);
    }
    
    void method15699(Interface31 interface31) {
	((Class87_Sub2_Sub2) this).aClass231_Sub2_10999
	    = (Class231_Sub2) interface31;
	((Class87_Sub2_Sub2) this).aClass231_Sub2_10999.method4647();
    }
    
    void method15568() {
	if (aBool9203)
	    OpenGL.glEnable(2929);
	else
	    OpenGL.glDisable(2929);
    }
    
    void method15701(int i) {
	if (!((Class87_Sub2_Sub2) this).aBool10984)
	    OpenGL.glPolygonMode(1028, (i & 0x2) != 0 ? 6913 : 6914);
    }
    
    void method15583() {
	((Class87_Sub2_Sub2) this).aFloatArray10993[0]
	    = aFloat9145 * aFloat9154;
	((Class87_Sub2_Sub2) this).aFloatArray10993[1]
	    = aFloat9145 * aFloat9213;
	((Class87_Sub2_Sub2) this).aFloatArray10993[2]
	    = aFloat9145 * aFloat9214;
	((Class87_Sub2_Sub2) this).aFloatArray10993[3] = 1.0F;
	OpenGL.glLightModelfv(2899,
			      ((Class87_Sub2_Sub2) this).aFloatArray10993, 0);
    }
    
    byte[] method17497(String string) {
	return method15304("gl", string);
    }
    
    void method15405() {
	aFloat9130 = aFloat9186 - (float) anInt9263;
	aFloat9264 = aFloat9130 - (float) anInt9169;
	if (aFloat9264 < aFloat9185)
	    aFloat9264 = aFloat9185;
	if (aBool9153) {
	    OpenGL.glFogf(2915, aFloat9264);
	    OpenGL.glFogf(2916, aFloat9130);
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[0]
		= (float) (anInt9147 & 0xff0000) / 1.671168E7F;
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[1]
		= (float) (anInt9147 & 0xff00) / 65280.0F;
	    ((Class87_Sub2_Sub2) this).aFloatArray10993[2]
		= (float) (anInt9147 & 0xff) / 255.0F;
	    OpenGL.glFogfv(2918, ((Class87_Sub2_Sub2) this).aFloatArray10993,
			   0);
	}
    }
    
    byte[] method17498(String string) {
	return method15304("gl", string);
    }
    
    static final int method17499(Class391 class391) {
	if (class391 == Class391.aClass391_5687)
	    return 7681;
	if (class391 == Class391.aClass391_5686)
	    return 8448;
	if (class391 == Class391.aClass391_5689)
	    return 34165;
	if (class391 == Class391.aClass391_5685)
	    return 260;
	if (class391 == Class391.aClass391_5688)
	    return 34023;
	throw new IllegalArgumentException();
    }
    
    Interface40 method15602(Class173 class173, Class90 class90, int i,
			    int i_237_) {
	return method15454(class173, class90, i, i_237_);
    }
    
    static final int method17500(Class385 class385) {
	if (class385 == Class385.aClass385_5636)
	    return 5890;
	if (class385 == Class385.aClass385_5637)
	    return 34167;
	if (class385 == Class385.aClass385_5635)
	    return 34168;
	if (class385 == Class385.aClass385_5638)
	    return 34166;
	throw new IllegalArgumentException();
    }
    
    final synchronized void method17501(int i, int i_238_) {
	Class243_Sub9 class243_sub9 = new Class243_Sub9(i_238_);
	class243_sub9.aLong3905 = (long) i * 7863879224277138209L;
	((Class87_Sub2_Sub2) this).aClass420_10986.method7495(class243_sub9,
							      41917076);
    }
    
    final synchronized void method17502(int i) {
	Class243_Sub9 class243_sub9 = new Class243_Sub9(i);
	((Class87_Sub2_Sub2) this).aClass420_11009.method7495(class243_sub9,
							      1457170767);
    }
    
    final synchronized void method17503(int i) {
	Class243_Sub9 class243_sub9 = new Class243_Sub9(i);
	((Class87_Sub2_Sub2) this).aClass420_11009.method7495(class243_sub9,
							      221673700);
    }
    
    final synchronized void method17504(int i, int i_239_) {
	Class243_Sub9 class243_sub9 = new Class243_Sub9(i_239_);
	class243_sub9.aLong3905 = (long) i * 7863879224277138209L;
	((Class87_Sub2_Sub2) this).aClass420_10989.method7495(class243_sub9,
							      1429118760);
    }
    
    void method15433() {
	if (aBool9269)
	    OpenGL.glEnable(3008);
	else
	    OpenGL.glDisable(3008);
    }
    
    void method15425() {
	if (aClass169_993 != null)
	    OpenGL.glViewport(anInt9149 + anInt9195,
			      (anInt9272 + aClass169_993.method3836()
			       - anInt9168 - anInt9198),
			      anInt9197, anInt9198);
	OpenGL.glDepthRange(aFloat9244, aFloat9182);
    }
    
    public void method15413(Class276 class276) {
	float[] fs = class276.aFloatArray4141;
	fs[1] = -fs[1];
	fs[5] = -fs[5];
	fs[9] = -fs[9];
	fs[13] = -fs[13];
    }
    
    final synchronized void method17505(int i) {
	Class243 class243 = new Class243();
	class243.aLong3905 = (long) i * 7863879224277138209L;
	((Class87_Sub2_Sub2) this).aClass420_10990.method7495(class243,
							      1587285455);
    }
    
    static final int method17506(Class90 class90) {
	switch (class90.anInt1046 * -295509) {
	case 6:
	    return 5124;
	case 8:
	    return 5125;
	case 3:
	    return 5120;
	case 4:
	    return 5126;
	default:
	    return 5121;
	case 2:
	    return 5123;
	case 5:
	    return 5122;
	case 1:
	    return 5131;
	case 0:
	    return 5121;
	}
    }
    
    void method15409() {
	if (aBool9298 && !aBool9222)
	    OpenGL.glEnable(2896);
	else
	    OpenGL.glDisable(2896);
    }
    
    static int method17507(Class173 class173) {
	switch (class173.anInt2137 * -598663847) {
	case 4:
	    return 6408;
	case 6:
	    return 6410;
	default:
	    throw new IllegalStateException();
	case 7:
	    return 6402;
	case 9:
	    return 6406;
	case 0:
	    return 6409;
	case 1:
	    return 6407;
	}
    }
    
    public void method15332(Class276 class276, Class276 class276_240_,
			    Class276 class276_241_) {
	OpenGL.glMatrixMode(5888);
	aClass276_9187.method5457(class276, class276_240_);
	OpenGL.glLoadMatrixf(aClass276_9187.aFloatArray4141, 0);
	OpenGL.glMatrixMode(5889);
	OpenGL.glLoadMatrixf(class276_241_.aFloatArray4141, 0);
    }
    
    static int method17508(Class173 class173, Class90 class90) {
	if (class90 == Class90.aClass90_1040) {
	    switch (class173.anInt2137 * -598663847) {
	    case 1:
		return 6407;
	    default:
		throw new IllegalArgumentException();
	    case 9:
		return 6406;
	    case 5:
		return 33779;
	    case 2:
		return 33777;
	    case 4:
		return 6408;
	    case 0:
		return 6409;
	    case 6:
		return 6410;
	    }
	}
	if (class90 == Class90.aClass90_1042) {
	    switch (class173.anInt2137 * -598663847) {
	    case 6:
		return 36219;
	    default:
		throw new IllegalArgumentException();
	    case 0:
		return 32834;
	    case 1:
		return 32852;
	    case 4:
		return 32859;
	    case 9:
		return 32830;
	    case 7:
		return 33189;
	    }
	}
	if (class90 == Class90.aClass90_1043) {
	    switch (class173.anInt2137 * -598663847) {
	    case 7:
		return 33190;
	    default:
		throw new IllegalArgumentException();
	    }
	}
	if (class90 == Class90.aClass90_1044) {
	    switch (class173.anInt2137 * -598663847) {
	    case 0:
		return 34846;
	    case 9:
		return 34844;
	    case 4:
		return 34842;
	    case 6:
		return 34847;
	    default:
		throw new IllegalArgumentException();
	    case 1:
		return 34843;
	    }
	}
	if (class90 == Class90.aClass90_1045) {
	    switch (class173.anInt2137 * -598663847) {
	    case 1:
		return 34837;
	    default:
		throw new IllegalArgumentException();
	    case 9:
		return 34838;
	    case 0:
		return 34840;
	    case 4:
		return 34836;
	    case 6:
		return 34841;
	    }
	}
	throw new IllegalArgumentException();
    }
    
    static int method17509(Class173 class173, Class90 class90) {
	if (class90 == Class90.aClass90_1040) {
	    switch (class173.anInt2137 * -598663847) {
	    case 1:
		return 6407;
	    default:
		throw new IllegalArgumentException();
	    case 9:
		return 6406;
	    case 5:
		return 33779;
	    case 2:
		return 33777;
	    case 4:
		return 6408;
	    case 0:
		return 6409;
	    case 6:
		return 6410;
	    }
	}
	if (class90 == Class90.aClass90_1042) {
	    switch (class173.anInt2137 * -598663847) {
	    case 6:
		return 36219;
	    default:
		throw new IllegalArgumentException();
	    case 0:
		return 32834;
	    case 1:
		return 32852;
	    case 4:
		return 32859;
	    case 9:
		return 32830;
	    case 7:
		return 33189;
	    }
	}
	if (class90 == Class90.aClass90_1043) {
	    switch (class173.anInt2137 * -598663847) {
	    case 7:
		return 33190;
	    default:
		throw new IllegalArgumentException();
	    }
	}
	if (class90 == Class90.aClass90_1044) {
	    switch (class173.anInt2137 * -598663847) {
	    case 0:
		return 34846;
	    case 9:
		return 34844;
	    case 4:
		return 34842;
	    case 6:
		return 34847;
	    default:
		throw new IllegalArgumentException();
	    case 1:
		return 34843;
	    }
	}
	if (class90 == Class90.aClass90_1045) {
	    switch (class173.anInt2137 * -598663847) {
	    case 1:
		return 34837;
	    default:
		throw new IllegalArgumentException();
	    case 9:
		return 34838;
	    case 0:
		return 34840;
	    case 4:
		return 34836;
	    case 6:
		return 34841;
	    }
	}
	throw new IllegalArgumentException();
    }
    
    static int method17510(Class173 class173, Class90 class90) {
	if (class90 == Class90.aClass90_1040) {
	    switch (class173.anInt2137 * -598663847) {
	    case 1:
		return 6407;
	    default:
		throw new IllegalArgumentException();
	    case 9:
		return 6406;
	    case 5:
		return 33779;
	    case 2:
		return 33777;
	    case 4:
		return 6408;
	    case 0:
		return 6409;
	    case 6:
		return 6410;
	    }
	}
	if (class90 == Class90.aClass90_1042) {
	    switch (class173.anInt2137 * -598663847) {
	    case 6:
		return 36219;
	    default:
		throw new IllegalArgumentException();
	    case 0:
		return 32834;
	    case 1:
		return 32852;
	    case 4:
		return 32859;
	    case 9:
		return 32830;
	    case 7:
		return 33189;
	    }
	}
	if (class90 == Class90.aClass90_1043) {
	    switch (class173.anInt2137 * -598663847) {
	    case 7:
		return 33190;
	    default:
		throw new IllegalArgumentException();
	    }
	}
	if (class90 == Class90.aClass90_1044) {
	    switch (class173.anInt2137 * -598663847) {
	    case 0:
		return 34846;
	    case 9:
		return 34844;
	    case 4:
		return 34842;
	    case 6:
		return 34847;
	    default:
		throw new IllegalArgumentException();
	    case 1:
		return 34843;
	    }
	}
	if (class90 == Class90.aClass90_1045) {
	    switch (class173.anInt2137 * -598663847) {
	    case 1:
		return 34837;
	    default:
		throw new IllegalArgumentException();
	    case 9:
		return 34838;
	    case 0:
		return 34840;
	    case 4:
		return 34836;
	    case 6:
		return 34841;
	    }
	}
	throw new IllegalArgumentException();
    }
    
    void method15584() {
	((Class87_Sub2_Sub2) this).aFloatArray10993[0]
	    = aFloat9145 * aFloat9154;
	((Class87_Sub2_Sub2) this).aFloatArray10993[1]
	    = aFloat9145 * aFloat9213;
	((Class87_Sub2_Sub2) this).aFloatArray10993[2]
	    = aFloat9145 * aFloat9214;
	((Class87_Sub2_Sub2) this).aFloatArray10993[3] = 1.0F;
	OpenGL.glLightModelfv(2899,
			      ((Class87_Sub2_Sub2) this).aFloatArray10993, 0);
    }
}
