Class286_Sub3(OpenGlToolkit var_ha_Sub2, Class83 class83) {
	super(var_ha_Sub2);
	do {
	    try {
		aClass83_6227 = class83;
		if (!((OpenGlToolkit) ((Class286) this).aHa_Sub2_3684).aBoolean7841
		    || (((OpenGlToolkit) ((Class286) this).aHa_Sub2_3684).anInt7795
			< 2))
		    break;
		aClass171_6220
		    = (Class50.method459
		       (34336, ((Class286) this).aHa_Sub2_3684,
			"!!ARBvp1.0\nOPTION  ARB_position_invariant;\nATTRIB  iPos         = vertex.position;\nATTRIB  iColour      = vertex.color;\nATTRIB  iTexCoord    = vertex.texcoord[0];\nOUTPUT  oColour      = result.color;\nOUTPUT  oTexCoord0   = result.texcoord[0];\nOUTPUT  oTexCoord1   = result.texcoord[1];\nOUTPUT  oFogCoord    = result.fogcoord;\nPARAM   time         = program.local[65];\nPARAM   turbulence   = program.local[64];\nPARAM   lightAmbient = program.local[66]; \nPARAM   pMatrix[4]   = { state.matrix.projection };\nPARAM   mvMatrix[4]  = { state.matrix.modelview };\nPARAM   ivMatrix[4]  = { state.matrix.texture[1] };\nPARAM   texMatrix[4]  = { state.matrix.texture[0] };\nPARAM   fNoise[64]   = { program.local[0..63] };\nTEMP    noise, viewPos, worldPos, texCoord;\nADDRESS noiseAddr;\nDP4   viewPos.x, mvMatrix[0], iPos;\nDP4   viewPos.y, mvMatrix[1], iPos;\nDP4   viewPos.z, mvMatrix[2], iPos;\nDP4   viewPos.w, mvMatrix[3], iPos;\nMOV   oFogCoord.x, -viewPos.z;\nDP4   worldPos.x, ivMatrix[0], viewPos;\nDP4   worldPos.y, ivMatrix[1], viewPos;\nDP4   worldPos.z, ivMatrix[2], viewPos;\nDP4   worldPos.w, ivMatrix[3], viewPos;\nADD   noise.x, worldPos.x, worldPos.z;SUB   noise.y, worldPos.z, worldPos.x;MUL   noise, noise, 0.0001220703125;\nFRC   noise, noise;\nMUL   noise, noise, 64;\nARL   noiseAddr.x, noise.x;\nMOV   noise.x, fNoise[noiseAddr.x].x;\nARL   noiseAddr.x, noise.y;\nMOV   noise.y, fNoise[noiseAddr.x].y;\nMUL   noise, noise, turbulence.x;\nDP4   texCoord.x, texMatrix[0], iTexCoord;\nDP4   texCoord.y, texMatrix[1], iTexCoord;\nADD   oTexCoord0.xy, texCoord, noise;\nMOV   oTexCoord0.z, 0;\nMOV   oTexCoord0.w, 1;\nMUL   oTexCoord1.xy, texCoord, 0.125;\nMOV   oTexCoord1.zw, time.xxxw;\nMUL   oColour.xyz, iColour, lightAmbient;\nMOV   oColour.w, iColour.w;\nEND",
			false));
		if (aClass171_6220 != null) {
		    int[][] is
			= GameBuffer.method3413(4, 3, 64, 4, 256,
							 true, 0, 0.4F, false);
		    int[][] is_5_
			= GameBuffer.method3413(4, 3, 64, 4, 256,
							 true, 8, 0.4F, false);
		    aFloatArray6218 = new float[32768];
		    int i = 0;
		    for (int i_6_ = 0; (i_6_ ^ 0xffffffff) > -257; i_6_++) {
			int[] is_7_ = is[i_6_];
			int[] is_8_ = is_5_[i_6_];
			for (int i_9_ = 0; i_9_ < 64; i_9_++) {
			    aFloatArray6218[i++]
				= (float) is_7_[i_9_] / 4096.0F;
			    aFloatArray6218[i++]
				= (float) is_8_[i_9_] / 4096.0F;
			}
		    }
		    method2149(-25);
		}
	    } catch (RuntimeException runtimeexception) {
		throw Class348_Sub17.method2929(runtimeexception,
						("em.<init>("
						 + (var_ha_Sub2 != null
						    ? "{...}" : "null")
						 + ','
						 + (class83 != null ? "{...}"
						    : "null")
						 + ')'));
	    }
	    break;
	} while (false);
    }