/* Class288 - Decompiled by JODE
 * Visit http://jode.sourceforge.net/
 */
import java.util.Arrays;

public final class Class288 {
	public static Class288 aClass288_4284 = new Class288();
	public float[] aFloatArray4285;

	public boolean method5742(Object object) {
		if (!(object instanceof Class288))
			return false;
		Class288 class288_0_ = (Class288) object;
		for (int i = 0; i < 16; i++) {
			if (aFloatArray4285[i] != class288_0_.aFloatArray4285[i])
				return false;
		}
		return true;
	}

	public void method5743() {
		float f = 1.0F / method5843();
		float f_1_ = (aFloatArray4285[5] * aFloatArray4285[10] * aFloatArray4285[15] - aFloatArray4285[5] * aFloatArray4285[11] * aFloatArray4285[14] - aFloatArray4285[6] * aFloatArray4285[9] * aFloatArray4285[15] + aFloatArray4285[6] * aFloatArray4285[11] * aFloatArray4285[13] + aFloatArray4285[7] * aFloatArray4285[9] * aFloatArray4285[14] - (aFloatArray4285[7] * aFloatArray4285[10] * aFloatArray4285[13])) * f;
		float f_2_ = (-aFloatArray4285[1] * aFloatArray4285[10] * aFloatArray4285[15] + aFloatArray4285[1] * aFloatArray4285[11] * aFloatArray4285[14] + aFloatArray4285[2] * aFloatArray4285[9] * aFloatArray4285[15] - aFloatArray4285[2] * aFloatArray4285[11] * aFloatArray4285[13] - aFloatArray4285[3] * aFloatArray4285[9] * aFloatArray4285[14] + (aFloatArray4285[3] * aFloatArray4285[10] * aFloatArray4285[13])) * f;
		float f_3_ = ((aFloatArray4285[1] * aFloatArray4285[6] * aFloatArray4285[15] - aFloatArray4285[1] * aFloatArray4285[7] * aFloatArray4285[14] - aFloatArray4285[2] * aFloatArray4285[5] * aFloatArray4285[15] + aFloatArray4285[2] * aFloatArray4285[7] * aFloatArray4285[13] + aFloatArray4285[3] * aFloatArray4285[5] * aFloatArray4285[14] - (aFloatArray4285[3] * aFloatArray4285[6] * aFloatArray4285[13])) * f);
		float f_4_ = ((-aFloatArray4285[1] * aFloatArray4285[6] * aFloatArray4285[11] + aFloatArray4285[1] * aFloatArray4285[7] * aFloatArray4285[10] + aFloatArray4285[2] * aFloatArray4285[5] * aFloatArray4285[11] - aFloatArray4285[2] * aFloatArray4285[7] * aFloatArray4285[9] - aFloatArray4285[3] * aFloatArray4285[5] * aFloatArray4285[10] + aFloatArray4285[3] * aFloatArray4285[6] * aFloatArray4285[9]) * f);
		float f_5_ = (-aFloatArray4285[4] * aFloatArray4285[10] * aFloatArray4285[15] + aFloatArray4285[4] * aFloatArray4285[11] * aFloatArray4285[14] + aFloatArray4285[6] * aFloatArray4285[8] * aFloatArray4285[15] - aFloatArray4285[6] * aFloatArray4285[11] * aFloatArray4285[12] - aFloatArray4285[7] * aFloatArray4285[8] * aFloatArray4285[14] + (aFloatArray4285[7] * aFloatArray4285[10] * aFloatArray4285[12])) * f;
		float f_6_ = (aFloatArray4285[0] * aFloatArray4285[10] * aFloatArray4285[15] - aFloatArray4285[0] * aFloatArray4285[11] * aFloatArray4285[14] - aFloatArray4285[2] * aFloatArray4285[8] * aFloatArray4285[15] + aFloatArray4285[2] * aFloatArray4285[11] * aFloatArray4285[12] + aFloatArray4285[3] * aFloatArray4285[8] * aFloatArray4285[14] - (aFloatArray4285[3] * aFloatArray4285[10] * aFloatArray4285[12])) * f;
		float f_7_ = ((-aFloatArray4285[0] * aFloatArray4285[6] * aFloatArray4285[15] + aFloatArray4285[0] * aFloatArray4285[7] * aFloatArray4285[14] + aFloatArray4285[2] * aFloatArray4285[4] * aFloatArray4285[15] - aFloatArray4285[2] * aFloatArray4285[7] * aFloatArray4285[12] - aFloatArray4285[3] * aFloatArray4285[4] * aFloatArray4285[14] + (aFloatArray4285[3] * aFloatArray4285[6] * aFloatArray4285[12])) * f);
		float f_8_ = ((aFloatArray4285[0] * aFloatArray4285[6] * aFloatArray4285[11] - aFloatArray4285[0] * aFloatArray4285[7] * aFloatArray4285[10] - aFloatArray4285[2] * aFloatArray4285[4] * aFloatArray4285[11] + aFloatArray4285[2] * aFloatArray4285[7] * aFloatArray4285[8] + aFloatArray4285[3] * aFloatArray4285[4] * aFloatArray4285[10] - aFloatArray4285[3] * aFloatArray4285[6] * aFloatArray4285[8]) * f);
		float f_9_ = (aFloatArray4285[4] * aFloatArray4285[9] * aFloatArray4285[15] - aFloatArray4285[4] * aFloatArray4285[11] * aFloatArray4285[13] - aFloatArray4285[5] * aFloatArray4285[8] * aFloatArray4285[15] + aFloatArray4285[5] * aFloatArray4285[11] * aFloatArray4285[12] + aFloatArray4285[7] * aFloatArray4285[8] * aFloatArray4285[13] - (aFloatArray4285[7] * aFloatArray4285[9] * aFloatArray4285[12])) * f;
		float f_10_ = (-aFloatArray4285[0] * aFloatArray4285[9] * aFloatArray4285[15] + aFloatArray4285[0] * aFloatArray4285[11] * aFloatArray4285[13] + aFloatArray4285[1] * aFloatArray4285[8] * aFloatArray4285[15] - aFloatArray4285[1] * aFloatArray4285[11] * aFloatArray4285[12] - aFloatArray4285[3] * aFloatArray4285[8] * aFloatArray4285[13] + (aFloatArray4285[3] * aFloatArray4285[9] * aFloatArray4285[12])) * f;
		float f_11_ = ((aFloatArray4285[0] * aFloatArray4285[5] * aFloatArray4285[15] - aFloatArray4285[0] * aFloatArray4285[7] * aFloatArray4285[13] - aFloatArray4285[1] * aFloatArray4285[4] * aFloatArray4285[15] + aFloatArray4285[1] * aFloatArray4285[7] * aFloatArray4285[12] + aFloatArray4285[3] * aFloatArray4285[4] * aFloatArray4285[13] - (aFloatArray4285[3] * aFloatArray4285[5] * aFloatArray4285[12])) * f);
		float f_12_ = ((-aFloatArray4285[0] * aFloatArray4285[5] * aFloatArray4285[11] + aFloatArray4285[0] * aFloatArray4285[7] * aFloatArray4285[9] + aFloatArray4285[1] * aFloatArray4285[4] * aFloatArray4285[11] - aFloatArray4285[1] * aFloatArray4285[7] * aFloatArray4285[8] - aFloatArray4285[3] * aFloatArray4285[4] * aFloatArray4285[9] + aFloatArray4285[3] * aFloatArray4285[5] * aFloatArray4285[8]) * f);
		float f_13_ = (-aFloatArray4285[4] * aFloatArray4285[9] * aFloatArray4285[14] + aFloatArray4285[4] * aFloatArray4285[10] * aFloatArray4285[13] + aFloatArray4285[5] * aFloatArray4285[8] * aFloatArray4285[14] - aFloatArray4285[5] * aFloatArray4285[10] * aFloatArray4285[12] - aFloatArray4285[6] * aFloatArray4285[8] * aFloatArray4285[13] + (aFloatArray4285[6] * aFloatArray4285[9] * aFloatArray4285[12])) * f;
		float f_14_ = (aFloatArray4285[0] * aFloatArray4285[9] * aFloatArray4285[14] - aFloatArray4285[0] * aFloatArray4285[10] * aFloatArray4285[13] - aFloatArray4285[1] * aFloatArray4285[8] * aFloatArray4285[14] + aFloatArray4285[1] * aFloatArray4285[10] * aFloatArray4285[12] + aFloatArray4285[2] * aFloatArray4285[8] * aFloatArray4285[13] - (aFloatArray4285[2] * aFloatArray4285[9] * aFloatArray4285[12])) * f;
		float f_15_ = ((-aFloatArray4285[0] * aFloatArray4285[5] * aFloatArray4285[14] + aFloatArray4285[0] * aFloatArray4285[6] * aFloatArray4285[13] + aFloatArray4285[1] * aFloatArray4285[4] * aFloatArray4285[14] - aFloatArray4285[1] * aFloatArray4285[6] * aFloatArray4285[12] - aFloatArray4285[2] * aFloatArray4285[4] * aFloatArray4285[13] + (aFloatArray4285[2] * aFloatArray4285[5] * aFloatArray4285[12])) * f);
		float f_16_ = ((aFloatArray4285[0] * aFloatArray4285[5] * aFloatArray4285[10] - aFloatArray4285[0] * aFloatArray4285[6] * aFloatArray4285[9] - aFloatArray4285[1] * aFloatArray4285[4] * aFloatArray4285[10] + aFloatArray4285[1] * aFloatArray4285[6] * aFloatArray4285[8] + aFloatArray4285[2] * aFloatArray4285[4] * aFloatArray4285[9] - aFloatArray4285[2] * aFloatArray4285[5] * aFloatArray4285[8]) * f);
		aFloatArray4285[0] = f_1_;
		aFloatArray4285[1] = f_2_;
		aFloatArray4285[2] = f_3_;
		aFloatArray4285[3] = f_4_;
		aFloatArray4285[4] = f_5_;
		aFloatArray4285[5] = f_6_;
		aFloatArray4285[6] = f_7_;
		aFloatArray4285[7] = f_8_;
		aFloatArray4285[8] = f_9_;
		aFloatArray4285[9] = f_10_;
		aFloatArray4285[10] = f_11_;
		aFloatArray4285[11] = f_12_;
		aFloatArray4285[12] = f_13_;
		aFloatArray4285[13] = f_14_;
		aFloatArray4285[14] = f_15_;
		aFloatArray4285[15] = f_16_;
	}

	public void method5744() {
		aFloatArray4285[0] = 1.0F;
		aFloatArray4285[1] = 0.0F;
		aFloatArray4285[2] = 0.0F;
		aFloatArray4285[3] = 0.0F;
		aFloatArray4285[4] = 0.0F;
		aFloatArray4285[5] = 1.0F;
		aFloatArray4285[6] = 0.0F;
		aFloatArray4285[7] = 0.0F;
		aFloatArray4285[8] = 0.0F;
		aFloatArray4285[9] = 0.0F;
		aFloatArray4285[10] = 1.0F;
		aFloatArray4285[11] = 0.0F;
		aFloatArray4285[12] = 0.0F;
		aFloatArray4285[13] = 0.0F;
		aFloatArray4285[14] = 0.0F;
		aFloatArray4285[15] = 1.0F;
	}

	public void method5745(float f, float f_17_, float f_18_, float f_19_, float f_20_, float f_21_, float f_22_, float f_23_) {
		aFloatArray4285[0] = f_18_ * 2.0F / f_22_;
		aFloatArray4285[1] = 0.0F;
		aFloatArray4285[2] = 0.0F;
		aFloatArray4285[3] = 0.0F;
		aFloatArray4285[4] = 0.0F;
		aFloatArray4285[5] = f_19_ * 2.0F / f_23_;
		aFloatArray4285[6] = 0.0F;
		aFloatArray4285[7] = 0.0F;
		aFloatArray4285[8] = 2.0F * f / f_22_ - 1.0F;
		aFloatArray4285[9] = 2.0F * f_17_ / f_23_ - 1.0F;
		aFloatArray4285[10] = (f_21_ + f_20_) / (f_21_ - f_20_);
		aFloatArray4285[11] = 1.0F;
		aFloatArray4285[12] = 0.0F;
		aFloatArray4285[13] = 0.0F;
		aFloatArray4285[14] = 2.0F * f_21_ * f_20_ / (f_20_ - f_21_);
		aFloatArray4285[15] = 0.0F;
	}

	public void method5746(Class288 class288_24_) {
		System.arraycopy(class288_24_.aFloatArray4285, 0, aFloatArray4285, 0, 11);
		aFloatArray4285[3] = 0.0F;
		aFloatArray4285[7] = 0.0F;
		aFloatArray4285[11] = 0.0F;
		aFloatArray4285[12] = 0.0F;
		aFloatArray4285[13] = 0.0F;
		aFloatArray4285[14] = 0.0F;
		aFloatArray4285[15] = 1.0F;
	}

	public void method5747(float f, float f_25_, float f_26_) {
		method5757(-10000.0F / f_26_, 10000.0F / f_26_, -10000.0F / f_26_, 10000.0F / f_26_, f, f_25_);
	}

	public float[] method5748(float[] fs) {
		System.arraycopy(aFloatArray4285, 0, fs, 0, 16);
		return fs;
	}

	public boolean method5749(Object object) {
		if (!(object instanceof Class288))
			return false;
		Class288 class288_27_ = (Class288) object;
		for (int i = 0; i < 16; i++) {
			if (aFloatArray4285[i] != class288_27_.aFloatArray4285[i])
				return false;
		}
		return true;
	}

	public float[] method5750(float[] fs) {
		float f = aFloatArray4285[3] - aFloatArray4285[2];
		float f_28_ = aFloatArray4285[7] - aFloatArray4285[6];
		float f_29_ = aFloatArray4285[11] - aFloatArray4285[10];
		double d = Math.sqrt((double) (f * f + f_28_ * f_28_ + f_29_ * f_29_));
		fs[0] = (float) ((double) f / d);
		fs[1] = (float) ((double) f_28_ / d);
		fs[2] = (float) ((double) f_29_ / d);
		fs[3] = (float) ((double) (aFloatArray4285[15] - aFloatArray4285[14]) / d);
		return fs;
	}

	public void method5751() {
		float f = 1.0F / method5843();
		float f_30_ = (aFloatArray4285[5] * aFloatArray4285[10] * aFloatArray4285[15] - aFloatArray4285[5] * aFloatArray4285[11] * aFloatArray4285[14] - aFloatArray4285[6] * aFloatArray4285[9] * aFloatArray4285[15] + aFloatArray4285[6] * aFloatArray4285[11] * aFloatArray4285[13] + aFloatArray4285[7] * aFloatArray4285[9] * aFloatArray4285[14] - (aFloatArray4285[7] * aFloatArray4285[10] * aFloatArray4285[13])) * f;
		float f_31_ = (-aFloatArray4285[1] * aFloatArray4285[10] * aFloatArray4285[15] + aFloatArray4285[1] * aFloatArray4285[11] * aFloatArray4285[14] + aFloatArray4285[2] * aFloatArray4285[9] * aFloatArray4285[15] - aFloatArray4285[2] * aFloatArray4285[11] * aFloatArray4285[13] - aFloatArray4285[3] * aFloatArray4285[9] * aFloatArray4285[14] + (aFloatArray4285[3] * aFloatArray4285[10] * aFloatArray4285[13])) * f;
		float f_32_ = ((aFloatArray4285[1] * aFloatArray4285[6] * aFloatArray4285[15] - aFloatArray4285[1] * aFloatArray4285[7] * aFloatArray4285[14] - aFloatArray4285[2] * aFloatArray4285[5] * aFloatArray4285[15] + aFloatArray4285[2] * aFloatArray4285[7] * aFloatArray4285[13] + aFloatArray4285[3] * aFloatArray4285[5] * aFloatArray4285[14] - (aFloatArray4285[3] * aFloatArray4285[6] * aFloatArray4285[13])) * f);
		float f_33_ = ((-aFloatArray4285[1] * aFloatArray4285[6] * aFloatArray4285[11] + aFloatArray4285[1] * aFloatArray4285[7] * aFloatArray4285[10] + aFloatArray4285[2] * aFloatArray4285[5] * aFloatArray4285[11] - aFloatArray4285[2] * aFloatArray4285[7] * aFloatArray4285[9] - aFloatArray4285[3] * aFloatArray4285[5] * aFloatArray4285[10] + aFloatArray4285[3] * aFloatArray4285[6] * aFloatArray4285[9]) * f);
		float f_34_ = (-aFloatArray4285[4] * aFloatArray4285[10] * aFloatArray4285[15] + aFloatArray4285[4] * aFloatArray4285[11] * aFloatArray4285[14] + aFloatArray4285[6] * aFloatArray4285[8] * aFloatArray4285[15] - aFloatArray4285[6] * aFloatArray4285[11] * aFloatArray4285[12] - aFloatArray4285[7] * aFloatArray4285[8] * aFloatArray4285[14] + (aFloatArray4285[7] * aFloatArray4285[10] * aFloatArray4285[12])) * f;
		float f_35_ = (aFloatArray4285[0] * aFloatArray4285[10] * aFloatArray4285[15] - aFloatArray4285[0] * aFloatArray4285[11] * aFloatArray4285[14] - aFloatArray4285[2] * aFloatArray4285[8] * aFloatArray4285[15] + aFloatArray4285[2] * aFloatArray4285[11] * aFloatArray4285[12] + aFloatArray4285[3] * aFloatArray4285[8] * aFloatArray4285[14] - (aFloatArray4285[3] * aFloatArray4285[10] * aFloatArray4285[12])) * f;
		float f_36_ = ((-aFloatArray4285[0] * aFloatArray4285[6] * aFloatArray4285[15] + aFloatArray4285[0] * aFloatArray4285[7] * aFloatArray4285[14] + aFloatArray4285[2] * aFloatArray4285[4] * aFloatArray4285[15] - aFloatArray4285[2] * aFloatArray4285[7] * aFloatArray4285[12] - aFloatArray4285[3] * aFloatArray4285[4] * aFloatArray4285[14] + (aFloatArray4285[3] * aFloatArray4285[6] * aFloatArray4285[12])) * f);
		float f_37_ = ((aFloatArray4285[0] * aFloatArray4285[6] * aFloatArray4285[11] - aFloatArray4285[0] * aFloatArray4285[7] * aFloatArray4285[10] - aFloatArray4285[2] * aFloatArray4285[4] * aFloatArray4285[11] + aFloatArray4285[2] * aFloatArray4285[7] * aFloatArray4285[8] + aFloatArray4285[3] * aFloatArray4285[4] * aFloatArray4285[10] - aFloatArray4285[3] * aFloatArray4285[6] * aFloatArray4285[8]) * f);
		float f_38_ = (aFloatArray4285[4] * aFloatArray4285[9] * aFloatArray4285[15] - aFloatArray4285[4] * aFloatArray4285[11] * aFloatArray4285[13] - aFloatArray4285[5] * aFloatArray4285[8] * aFloatArray4285[15] + aFloatArray4285[5] * aFloatArray4285[11] * aFloatArray4285[12] + aFloatArray4285[7] * aFloatArray4285[8] * aFloatArray4285[13] - (aFloatArray4285[7] * aFloatArray4285[9] * aFloatArray4285[12])) * f;
		float f_39_ = (-aFloatArray4285[0] * aFloatArray4285[9] * aFloatArray4285[15] + aFloatArray4285[0] * aFloatArray4285[11] * aFloatArray4285[13] + aFloatArray4285[1] * aFloatArray4285[8] * aFloatArray4285[15] - aFloatArray4285[1] * aFloatArray4285[11] * aFloatArray4285[12] - aFloatArray4285[3] * aFloatArray4285[8] * aFloatArray4285[13] + (aFloatArray4285[3] * aFloatArray4285[9] * aFloatArray4285[12])) * f;
		float f_40_ = ((aFloatArray4285[0] * aFloatArray4285[5] * aFloatArray4285[15] - aFloatArray4285[0] * aFloatArray4285[7] * aFloatArray4285[13] - aFloatArray4285[1] * aFloatArray4285[4] * aFloatArray4285[15] + aFloatArray4285[1] * aFloatArray4285[7] * aFloatArray4285[12] + aFloatArray4285[3] * aFloatArray4285[4] * aFloatArray4285[13] - (aFloatArray4285[3] * aFloatArray4285[5] * aFloatArray4285[12])) * f);
		float f_41_ = ((-aFloatArray4285[0] * aFloatArray4285[5] * aFloatArray4285[11] + aFloatArray4285[0] * aFloatArray4285[7] * aFloatArray4285[9] + aFloatArray4285[1] * aFloatArray4285[4] * aFloatArray4285[11] - aFloatArray4285[1] * aFloatArray4285[7] * aFloatArray4285[8] - aFloatArray4285[3] * aFloatArray4285[4] * aFloatArray4285[9] + aFloatArray4285[3] * aFloatArray4285[5] * aFloatArray4285[8]) * f);
		float f_42_ = (-aFloatArray4285[4] * aFloatArray4285[9] * aFloatArray4285[14] + aFloatArray4285[4] * aFloatArray4285[10] * aFloatArray4285[13] + aFloatArray4285[5] * aFloatArray4285[8] * aFloatArray4285[14] - aFloatArray4285[5] * aFloatArray4285[10] * aFloatArray4285[12] - aFloatArray4285[6] * aFloatArray4285[8] * aFloatArray4285[13] + (aFloatArray4285[6] * aFloatArray4285[9] * aFloatArray4285[12])) * f;
		float f_43_ = (aFloatArray4285[0] * aFloatArray4285[9] * aFloatArray4285[14] - aFloatArray4285[0] * aFloatArray4285[10] * aFloatArray4285[13] - aFloatArray4285[1] * aFloatArray4285[8] * aFloatArray4285[14] + aFloatArray4285[1] * aFloatArray4285[10] * aFloatArray4285[12] + aFloatArray4285[2] * aFloatArray4285[8] * aFloatArray4285[13] - (aFloatArray4285[2] * aFloatArray4285[9] * aFloatArray4285[12])) * f;
		float f_44_ = ((-aFloatArray4285[0] * aFloatArray4285[5] * aFloatArray4285[14] + aFloatArray4285[0] * aFloatArray4285[6] * aFloatArray4285[13] + aFloatArray4285[1] * aFloatArray4285[4] * aFloatArray4285[14] - aFloatArray4285[1] * aFloatArray4285[6] * aFloatArray4285[12] - aFloatArray4285[2] * aFloatArray4285[4] * aFloatArray4285[13] + (aFloatArray4285[2] * aFloatArray4285[5] * aFloatArray4285[12])) * f);
		float f_45_ = ((aFloatArray4285[0] * aFloatArray4285[5] * aFloatArray4285[10] - aFloatArray4285[0] * aFloatArray4285[6] * aFloatArray4285[9] - aFloatArray4285[1] * aFloatArray4285[4] * aFloatArray4285[10] + aFloatArray4285[1] * aFloatArray4285[6] * aFloatArray4285[8] + aFloatArray4285[2] * aFloatArray4285[4] * aFloatArray4285[9] - aFloatArray4285[2] * aFloatArray4285[5] * aFloatArray4285[8]) * f);
		aFloatArray4285[0] = f_30_;
		aFloatArray4285[1] = f_31_;
		aFloatArray4285[2] = f_32_;
		aFloatArray4285[3] = f_33_;
		aFloatArray4285[4] = f_34_;
		aFloatArray4285[5] = f_35_;
		aFloatArray4285[6] = f_36_;
		aFloatArray4285[7] = f_37_;
		aFloatArray4285[8] = f_38_;
		aFloatArray4285[9] = f_39_;
		aFloatArray4285[10] = f_40_;
		aFloatArray4285[11] = f_41_;
		aFloatArray4285[12] = f_42_;
		aFloatArray4285[13] = f_43_;
		aFloatArray4285[14] = f_44_;
		aFloatArray4285[15] = f_45_;
	}

	public void method5752(float f, float f_46_, float f_47_, float f_48_) {
		aFloatArray4285[0] = f;
		aFloatArray4285[1] = 0.0F;
		aFloatArray4285[2] = 0.0F;
		aFloatArray4285[3] = 0.0F;
		aFloatArray4285[4] = 0.0F;
		aFloatArray4285[5] = f_46_;
		aFloatArray4285[6] = 0.0F;
		aFloatArray4285[7] = 0.0F;
		aFloatArray4285[8] = 0.0F;
		aFloatArray4285[9] = 0.0F;
		aFloatArray4285[10] = f_47_;
		aFloatArray4285[11] = 0.0F;
		aFloatArray4285[12] = 0.0F;
		aFloatArray4285[13] = 0.0F;
		aFloatArray4285[14] = 0.0F;
		aFloatArray4285[15] = f_48_;
	}

	public float[] method5753(float[] fs) {
		System.arraycopy(aFloatArray4285, 0, fs, 0, 16);
		fs[3] = 0.0F;
		fs[7] = 0.0F;
		fs[11] = 0.0F;
		fs[12] = 0.0F;
		fs[13] = 0.0F;
		fs[14] = 0.0F;
		fs[15] = 1.0F;
		return fs;
	}

	public void method5754(float f, float f_49_, float f_50_, float[] fs) {
		fs[0] = (aFloatArray4285[0] * f + aFloatArray4285[4] * f_49_ + aFloatArray4285[8] * f_50_ + aFloatArray4285[12]);
		fs[1] = (aFloatArray4285[1] * f + aFloatArray4285[5] * f_49_ + aFloatArray4285[9] * f_50_ + aFloatArray4285[13]);
		fs[2] = (aFloatArray4285[2] * f + aFloatArray4285[6] * f_49_ + aFloatArray4285[10] * f_50_ + aFloatArray4285[14]);
		if (fs.length > 3)
			fs[3] = (aFloatArray4285[3] * f + aFloatArray4285[7] * f_49_ + aFloatArray4285[11] * f_50_ + aFloatArray4285[15]);
	}

	public void method5755(float[] fs) {
		float f = fs[0];
		float f_51_ = fs[1];
		float f_52_ = fs[2];
		fs[0] = (aFloatArray4285[0] * f + aFloatArray4285[4] * f_51_ + aFloatArray4285[8] * f_52_ + aFloatArray4285[12]);
		fs[1] = (aFloatArray4285[1] * f + aFloatArray4285[5] * f_51_ + aFloatArray4285[9] * f_52_ + aFloatArray4285[13]);
		fs[2] = (aFloatArray4285[2] * f + aFloatArray4285[6] * f_51_ + aFloatArray4285[10] * f_52_ + aFloatArray4285[14]);
	}

	public void method5756(Class346 class346) {
		aFloatArray4285[0] = ((Class346) class346).aFloat5412;
		aFloatArray4285[1] = ((Class346) class346).aFloat5416;
		aFloatArray4285[2] = ((Class346) class346).aFloat5413;
		aFloatArray4285[3] = 0.0F;
		aFloatArray4285[4] = ((Class346) class346).aFloat5420;
		aFloatArray4285[5] = ((Class346) class346).aFloat5415;
		aFloatArray4285[6] = ((Class346) class346).aFloat5414;
		aFloatArray4285[7] = 0.0F;
		aFloatArray4285[8] = ((Class346) class346).aFloat5417;
		aFloatArray4285[9] = ((Class346) class346).aFloat5418;
		aFloatArray4285[10] = ((Class346) class346).aFloat5419;
		aFloatArray4285[11] = 0.0F;
		aFloatArray4285[12] = ((Class346) class346).aFloat5411;
		aFloatArray4285[13] = ((Class346) class346).aFloat5421;
		aFloatArray4285[14] = ((Class346) class346).aFloat5422;
		aFloatArray4285[15] = 1.0F;
	}

	public void method5757(float f, float f_53_, float f_54_, float f_55_, float f_56_, float f_57_) {
		aFloatArray4285[0] = 2.0F / (f_53_ - f);
		aFloatArray4285[1] = 0.0F;
		aFloatArray4285[2] = 0.0F;
		aFloatArray4285[3] = 0.0F;
		aFloatArray4285[4] = 0.0F;
		aFloatArray4285[5] = 2.0F / (f_55_ - f_54_);
		aFloatArray4285[6] = 0.0F;
		aFloatArray4285[7] = 0.0F;
		aFloatArray4285[8] = 0.0F;
		aFloatArray4285[9] = 0.0F;
		aFloatArray4285[10] = 2.0F / (f_57_ - f_56_);
		aFloatArray4285[11] = 0.0F;
		aFloatArray4285[12] = -(f_53_ + f) / (f_53_ - f);
		aFloatArray4285[13] = -(f_55_ + f_54_) / (f_55_ - f_54_);
		aFloatArray4285[14] = -(f_57_ + f_56_) / (f_57_ - f_56_);
		aFloatArray4285[15] = 1.0F;
	}

	public void method5758(float f, float f_58_, float f_59_, float f_60_) {
		float f_61_ = (float) (Math.tan((double) (f_59_ / 2.0F)) * (double) f);
		float f_62_ = (float) (Math.tan((double) (f_60_ / 2.0F)) * (double) f);
		method5790(-f_61_, f_61_, -f_62_, f_62_, f, f_58_);
	}

	public Class288() {
		aFloatArray4285 = new float[16];
		method5744();
	}

	public void method5759(Class288 class288_63_) {
		System.arraycopy(class288_63_.aFloatArray4285, 0, aFloatArray4285, 0, 16);
	}

	public void method5760(float f, float f_64_, float f_65_, float f_66_, float f_67_, float f_68_, float f_69_, float f_70_) {
		aFloatArray4285[0] = f_65_ * 2.0F / f_69_;
		aFloatArray4285[1] = 0.0F;
		aFloatArray4285[2] = 0.0F;
		aFloatArray4285[3] = 0.0F;
		aFloatArray4285[4] = 0.0F;
		aFloatArray4285[5] = f_66_ * 2.0F / f_70_;
		aFloatArray4285[6] = 0.0F;
		aFloatArray4285[7] = 0.0F;
		aFloatArray4285[8] = 2.0F * f / f_69_ - 1.0F;
		aFloatArray4285[9] = 2.0F * f_64_ / f_70_ - 1.0F;
		aFloatArray4285[10] = (f_68_ + f_67_) / (f_68_ - f_67_);
		aFloatArray4285[11] = 1.0F;
		aFloatArray4285[12] = 0.0F;
		aFloatArray4285[13] = 0.0F;
		aFloatArray4285[14] = 2.0F * f_68_ * f_67_ / (f_67_ - f_68_);
		aFloatArray4285[15] = 0.0F;
	}

	public void method5761(float f, float f_71_, float f_72_, float f_73_, float f_74_, float f_75_, float f_76_, float f_77_, float f_78_) {
		method5757(-(f * f_78_) / f_72_, f_78_ * (f_76_ - f) / f_72_, -(f_71_ * f_78_) / f_73_, f_78_ * (f_77_ - f_71_) / f_73_, f_74_, f_75_);
	}

	public float method5762() {
		return (-(aFloatArray4285[15] + aFloatArray4285[14]) / (aFloatArray4285[11] + aFloatArray4285[10]));
	}

	public float[] method5763(float[] fs) {
		float f = aFloatArray4285[3] + aFloatArray4285[2];
		float f_79_ = aFloatArray4285[7] + aFloatArray4285[6];
		float f_80_ = aFloatArray4285[11] + aFloatArray4285[10];
		double d = Math.sqrt((double) (f * f + f_79_ * f_79_ + f_80_ * f_80_));
		fs[0] = (float) ((double) f / d);
		fs[1] = (float) ((double) f_79_ / d);
		fs[2] = (float) ((double) f_80_ / d);
		fs[3] = (float) ((double) (aFloatArray4285[15] + aFloatArray4285[14]) / d);
		return fs;
	}

	float method5764() {
		return ((aFloatArray4285[0] * aFloatArray4285[5] * aFloatArray4285[10] * aFloatArray4285[15]) - (aFloatArray4285[0] * aFloatArray4285[5] * aFloatArray4285[11] * aFloatArray4285[14]) - (aFloatArray4285[0] * aFloatArray4285[6] * aFloatArray4285[9] * aFloatArray4285[15]) + (aFloatArray4285[0] * aFloatArray4285[6] * aFloatArray4285[11] * aFloatArray4285[13]) + (aFloatArray4285[0] * aFloatArray4285[7] * aFloatArray4285[9] * aFloatArray4285[14]) - (aFloatArray4285[0] * aFloatArray4285[7] * aFloatArray4285[10] * aFloatArray4285[13]) - (aFloatArray4285[1] * aFloatArray4285[4] * aFloatArray4285[10] * aFloatArray4285[15]) + (aFloatArray4285[1] * aFloatArray4285[4] * aFloatArray4285[11] * aFloatArray4285[14]) + (aFloatArray4285[1] * aFloatArray4285[6] * aFloatArray4285[8] * aFloatArray4285[15]) - (aFloatArray4285[1] * aFloatArray4285[6] * aFloatArray4285[11] * aFloatArray4285[12]) - (aFloatArray4285[1] * aFloatArray4285[7] * aFloatArray4285[8] * aFloatArray4285[14]) + (aFloatArray4285[1] * aFloatArray4285[7] * aFloatArray4285[10] * aFloatArray4285[12]) + (aFloatArray4285[2] * aFloatArray4285[4] * aFloatArray4285[9] * aFloatArray4285[15]) - (aFloatArray4285[2] * aFloatArray4285[4] * aFloatArray4285[11] * aFloatArray4285[13]) - (aFloatArray4285[2] * aFloatArray4285[5] * aFloatArray4285[8] * aFloatArray4285[15]) + (aFloatArray4285[2] * aFloatArray4285[5] * aFloatArray4285[11] * aFloatArray4285[12]) + (aFloatArray4285[2] * aFloatArray4285[7] * aFloatArray4285[8] * aFloatArray4285[13]) - (aFloatArray4285[2] * aFloatArray4285[7] * aFloatArray4285[9] * aFloatArray4285[12]) - (aFloatArray4285[3] * aFloatArray4285[4] * aFloatArray4285[9] * aFloatArray4285[14]) + (aFloatArray4285[3] * aFloatArray4285[4] * aFloatArray4285[10] * aFloatArray4285[13]) + (aFloatArray4285[3] * aFloatArray4285[5] * aFloatArray4285[8] * aFloatArray4285[14]) - (aFloatArray4285[3] * aFloatArray4285[5] * aFloatArray4285[10] * aFloatArray4285[12]) - (aFloatArray4285[3] * aFloatArray4285[6] * aFloatArray4285[8] * aFloatArray4285[13]) + (aFloatArray4285[3] * aFloatArray4285[6] * aFloatArray4285[9] * aFloatArray4285[12]));
	}

	public float[] method5765(float[] fs) {
		float f = aFloatArray4285[3] - aFloatArray4285[0];
		float f_81_ = aFloatArray4285[7] - aFloatArray4285[4];
		float f_82_ = aFloatArray4285[11] - aFloatArray4285[8];
		double d = Math.sqrt((double) (f * f + f_81_ * f_81_ + f_82_ * f_82_));
		fs[0] = (float) ((double) f / d);
		fs[1] = (float) ((double) f_81_ / d);
		fs[2] = (float) ((double) f_82_ / d);
		fs[3] = (float) ((double) (aFloatArray4285[15] - aFloatArray4285[12]) / d);
		return fs;
	}

	public float[] method5766(float[] fs) {
		float f = aFloatArray4285[3] + aFloatArray4285[1];
		float f_83_ = aFloatArray4285[7] + aFloatArray4285[5];
		float f_84_ = aFloatArray4285[11] + aFloatArray4285[9];
		double d = Math.sqrt((double) (f * f + f_83_ * f_83_ + f_84_ * f_84_));
		fs[0] = (float) ((double) f / d);
		fs[1] = (float) ((double) f_83_ / d);
		fs[2] = (float) ((double) f_84_ / d);
		fs[3] = (float) ((double) (aFloatArray4285[15] + aFloatArray4285[13]) / d);
		return fs;
	}

	public float method5767() {
		return ((aFloatArray4285[14] - aFloatArray4285[15]) / (aFloatArray4285[11] - aFloatArray4285[10]));
	}

	public void method5768(Class288 class288_85_) {
		System.arraycopy(class288_85_.aFloatArray4285, 0, aFloatArray4285, 0, 16);
	}

	public float[] method5769(float[] fs) {
		float f = aFloatArray4285[3] - aFloatArray4285[2];
		float f_86_ = aFloatArray4285[7] - aFloatArray4285[6];
		float f_87_ = aFloatArray4285[11] - aFloatArray4285[10];
		double d = Math.sqrt((double) (f * f + f_86_ * f_86_ + f_87_ * f_87_));
		fs[0] = (float) ((double) f / d);
		fs[1] = (float) ((double) f_86_ / d);
		fs[2] = (float) ((double) f_87_ / d);
		fs[3] = (float) ((double) (aFloatArray4285[15] - aFloatArray4285[14]) / d);
		return fs;
	}

	public int method5770() {
		int i = 1;
		i = 31 * i + Arrays.hashCode(aFloatArray4285);
		return i;
	}

	public float[] method5771(float[] fs) {
		System.arraycopy(aFloatArray4285, 0, fs, 0, 16);
		return fs;
	}

	public void method5772(Class288 class288_88_) {
		System.arraycopy(class288_88_.aFloatArray4285, 0, aFloatArray4285, 0, 11);
		aFloatArray4285[3] = 0.0F;
		aFloatArray4285[7] = 0.0F;
		aFloatArray4285[11] = 0.0F;
		aFloatArray4285[12] = 0.0F;
		aFloatArray4285[13] = 0.0F;
		aFloatArray4285[14] = 0.0F;
		aFloatArray4285[15] = 1.0F;
	}

	public float[] method5773(float[] fs) {
		fs[0] = aFloatArray4285[0];
		fs[1] = aFloatArray4285[1];
		fs[2] = aFloatArray4285[2];
		fs[3] = aFloatArray4285[4];
		fs[4] = aFloatArray4285[5];
		fs[5] = aFloatArray4285[6];
		fs[6] = aFloatArray4285[8];
		fs[7] = aFloatArray4285[9];
		fs[8] = aFloatArray4285[10];
		return fs;
	}

	public float[] method5774(float[] fs) {
		fs[0] = aFloatArray4285[0];
		fs[1] = aFloatArray4285[4];
		fs[2] = aFloatArray4285[8];
		fs[3] = aFloatArray4285[12];
		fs[4] = aFloatArray4285[1];
		fs[5] = aFloatArray4285[5];
		fs[6] = aFloatArray4285[9];
		fs[7] = aFloatArray4285[13];
		fs[8] = aFloatArray4285[2];
		fs[9] = aFloatArray4285[6];
		fs[10] = aFloatArray4285[10];
		fs[11] = aFloatArray4285[14];
		fs[12] = aFloatArray4285[3];
		fs[13] = aFloatArray4285[7];
		fs[14] = aFloatArray4285[11];
		fs[15] = aFloatArray4285[15];
		return fs;
	}

	public float[] method5775(float[] fs) {
		fs[0] = aFloatArray4285[0];
		fs[1] = aFloatArray4285[1];
		fs[2] = aFloatArray4285[4];
		fs[3] = aFloatArray4285[5];
		fs[4] = aFloatArray4285[8];
		fs[5] = aFloatArray4285[9];
		fs[6] = aFloatArray4285[12];
		fs[7] = aFloatArray4285[13];
		return fs;
	}

	public float[] method5776(float[] fs) {
		fs[0] = aFloatArray4285[0];
		fs[1] = aFloatArray4285[4];
		fs[2] = aFloatArray4285[8];
		fs[3] = aFloatArray4285[12];
		fs[4] = aFloatArray4285[1];
		fs[5] = aFloatArray4285[5];
		fs[6] = aFloatArray4285[9];
		fs[7] = aFloatArray4285[13];
		return fs;
	}

	public float[] method5777(float[] fs) {
		float f = aFloatArray4285[3] + aFloatArray4285[0];
		float f_89_ = aFloatArray4285[7] + aFloatArray4285[4];
		float f_90_ = aFloatArray4285[11] + aFloatArray4285[8];
		double d = Math.sqrt((double) (f * f + f_89_ * f_89_ + f_90_ * f_90_));
		fs[0] = (float) ((double) f / d);
		fs[1] = (float) ((double) f_89_ / d);
		fs[2] = (float) ((double) f_90_ / d);
		fs[3] = (float) ((double) (aFloatArray4285[15] + aFloatArray4285[12]) / d);
		return fs;
	}

	public void method5778(int i, int i_91_, int i_92_, float f, float f_93_, float f_94_) {
		if (i != 0) {
			float f_95_ = Class340.aFloatArray5386[i & 0x3fff];
			float f_96_ = Class340.aFloatArray5387[i & 0x3fff];
			aFloatArray4285[0] = f_95_ * (float) i_91_;
			aFloatArray4285[5] = f_95_ * (float) i_92_;
			aFloatArray4285[1] = f_96_ * (float) i_91_;
			aFloatArray4285[4] = -f_96_ * (float) i_92_;
			aFloatArray4285[10] = 1.0F;
			float[] fs = aFloatArray4285;
			float[] fs_97_ = aFloatArray4285;
			float[] fs_98_ = aFloatArray4285;
			aFloatArray4285[9] = 0.0F;
			fs_98_[8] = 0.0F;
			fs_97_[6] = 0.0F;
			fs[2] = 0.0F;
		} else {
			aFloatArray4285[0] = (float) i_91_;
			aFloatArray4285[5] = (float) i_92_;
			aFloatArray4285[10] = 1.0F;
			float[] fs = aFloatArray4285;
			float[] fs_99_ = aFloatArray4285;
			float[] fs_100_ = aFloatArray4285;
			float[] fs_101_ = aFloatArray4285;
			float[] fs_102_ = aFloatArray4285;
			aFloatArray4285[9] = 0.0F;
			fs_102_[8] = 0.0F;
			fs_101_[6] = 0.0F;
			fs_100_[4] = 0.0F;
			fs_99_[2] = 0.0F;
			fs[1] = 0.0F;
		}
		float[] fs = aFloatArray4285;
		float[] fs_103_ = aFloatArray4285;
		aFloatArray4285[11] = 0.0F;
		fs_103_[7] = 0.0F;
		fs[3] = 0.0F;
		aFloatArray4285[15] = 1.0F;
		aFloatArray4285[12] = f;
		aFloatArray4285[13] = f_93_;
		aFloatArray4285[14] = f_94_;
	}

	public String toString() {
		StringBuilder stringbuilder = new StringBuilder();
		for (int i = 0; i < 4; i++) {
			for (int i_104_ = 0; i_104_ < 4; i_104_++) {
				if (i_104_ > 0)
					stringbuilder.append("\t");
				stringbuilder.append(aFloatArray4285[i * 4 + i_104_]);
			}
			stringbuilder.append("\n");
		}
		return stringbuilder.toString();
	}

	public int hashCode() {
		int i = 1;
		i = 31 * i + Arrays.hashCode(aFloatArray4285);
		return i;
	}

	public void method5779() {
		aFloatArray4285[0] = 1.0F;
		aFloatArray4285[1] = 0.0F;
		aFloatArray4285[2] = 0.0F;
		aFloatArray4285[3] = 0.0F;
		aFloatArray4285[4] = 0.0F;
		aFloatArray4285[5] = 1.0F;
		aFloatArray4285[6] = 0.0F;
		aFloatArray4285[7] = 0.0F;
		aFloatArray4285[8] = 0.0F;
		aFloatArray4285[9] = 0.0F;
		aFloatArray4285[10] = 1.0F;
		aFloatArray4285[11] = 0.0F;
		aFloatArray4285[12] = 0.0F;
		aFloatArray4285[13] = 0.0F;
		aFloatArray4285[14] = 0.0F;
		aFloatArray4285[15] = 1.0F;
	}

	public boolean method5780() {
		return (aFloatArray4285[0] == 1.0F && aFloatArray4285[1] == 0.0F && aFloatArray4285[2] == 0.0F && aFloatArray4285[3] == 0.0F && aFloatArray4285[4] == 0.0F && aFloatArray4285[5] == 1.0F && aFloatArray4285[6] == 0.0F && aFloatArray4285[7] == 0.0F && aFloatArray4285[8] == 0.0F && aFloatArray4285[9] == 0.0F && aFloatArray4285[10] == 1.0F && aFloatArray4285[11] == 0.0F && aFloatArray4285[12] == 0.0F && aFloatArray4285[13] == 0.0F && aFloatArray4285[14] == 0.0F && aFloatArray4285[15] == 1.0F);
	}

	public float[] method5781(float[] fs) {
		float f = aFloatArray4285[3] + aFloatArray4285[2];
		float f_105_ = aFloatArray4285[7] + aFloatArray4285[6];
		float f_106_ = aFloatArray4285[11] + aFloatArray4285[10];
		double d = Math.sqrt((double) (f * f + f_105_ * f_105_ + f_106_ * f_106_));
		fs[0] = (float) ((double) f / d);
		fs[1] = (float) ((double) f_105_ / d);
		fs[2] = (float) ((double) f_106_ / d);
		fs[3] = (float) ((double) (aFloatArray4285[15] + aFloatArray4285[14]) / d);
		return fs;
	}

	public boolean method5782(Object object) {
		if (!(object instanceof Class288))
			return false;
		Class288 class288_107_ = (Class288) object;
		for (int i = 0; i < 16; i++) {
			if (aFloatArray4285[i] != class288_107_.aFloatArray4285[i])
				return false;
		}
		return true;
	}

	public String method5783() {
		StringBuilder stringbuilder = new StringBuilder();
		for (int i = 0; i < 4; i++) {
			for (int i_108_ = 0; i_108_ < 4; i_108_++) {
				if (i_108_ > 0)
					stringbuilder.append("\t");
				stringbuilder.append(aFloatArray4285[i * 4 + i_108_]);
			}
			stringbuilder.append("\n");
		}
		return stringbuilder.toString();
	}

	public void method5784() {
		aFloatArray4285[0] = 1.0F;
		aFloatArray4285[1] = 0.0F;
		aFloatArray4285[2] = 0.0F;
		aFloatArray4285[3] = 0.0F;
		aFloatArray4285[4] = 0.0F;
		aFloatArray4285[5] = 1.0F;
		aFloatArray4285[6] = 0.0F;
		aFloatArray4285[7] = 0.0F;
		aFloatArray4285[8] = 0.0F;
		aFloatArray4285[9] = 0.0F;
		aFloatArray4285[10] = 1.0F;
		aFloatArray4285[11] = 0.0F;
		aFloatArray4285[12] = 0.0F;
		aFloatArray4285[13] = 0.0F;
		aFloatArray4285[14] = 0.0F;
		aFloatArray4285[15] = 1.0F;
	}

	public void method5785() {
		float f = aFloatArray4285[0];
		float f_109_ = aFloatArray4285[4];
		float f_110_ = aFloatArray4285[8];
		float f_111_ = aFloatArray4285[12];
		float f_112_ = aFloatArray4285[1];
		float f_113_ = aFloatArray4285[5];
		float f_114_ = aFloatArray4285[9];
		float f_115_ = aFloatArray4285[13];
		float f_116_ = aFloatArray4285[2];
		float f_117_ = aFloatArray4285[6];
		float f_118_ = aFloatArray4285[10];
		float f_119_ = aFloatArray4285[14];
		float f_120_ = aFloatArray4285[3];
		float f_121_ = aFloatArray4285[7];
		float f_122_ = aFloatArray4285[11];
		float f_123_ = aFloatArray4285[15];
		aFloatArray4285[0] = f;
		aFloatArray4285[1] = f_109_;
		aFloatArray4285[2] = f_110_;
		aFloatArray4285[3] = f_111_;
		aFloatArray4285[4] = f_112_;
		aFloatArray4285[5] = f_113_;
		aFloatArray4285[6] = f_114_;
		aFloatArray4285[7] = f_115_;
		aFloatArray4285[8] = f_116_;
		aFloatArray4285[9] = f_117_;
		aFloatArray4285[10] = f_118_;
		aFloatArray4285[11] = f_119_;
		aFloatArray4285[12] = f_120_;
		aFloatArray4285[13] = f_121_;
		aFloatArray4285[14] = f_122_;
		aFloatArray4285[15] = f_123_;
	}

	public void method5786(Class288 class288_124_) {
		System.arraycopy(class288_124_.aFloatArray4285, 0, aFloatArray4285, 0, 11);
		aFloatArray4285[3] = 0.0F;
		aFloatArray4285[7] = 0.0F;
		aFloatArray4285[11] = 0.0F;
		aFloatArray4285[12] = 0.0F;
		aFloatArray4285[13] = 0.0F;
		aFloatArray4285[14] = 0.0F;
		aFloatArray4285[15] = 1.0F;
	}

	public void method5787(Class288 class288_125_, Class288 class288_126_) {
		float f = ((class288_125_.aFloatArray4285[0] * class288_126_.aFloatArray4285[0]) + (class288_125_.aFloatArray4285[1] * class288_126_.aFloatArray4285[4]) + (class288_125_.aFloatArray4285[2] * class288_126_.aFloatArray4285[8]) + (class288_125_.aFloatArray4285[3] * class288_126_.aFloatArray4285[12]));
		float f_127_ = ((class288_125_.aFloatArray4285[0] * class288_126_.aFloatArray4285[1]) + (class288_125_.aFloatArray4285[1] * class288_126_.aFloatArray4285[5]) + (class288_125_.aFloatArray4285[2] * class288_126_.aFloatArray4285[9]) + (class288_125_.aFloatArray4285[3] * class288_126_.aFloatArray4285[13]));
		float f_128_ = ((class288_125_.aFloatArray4285[0] * class288_126_.aFloatArray4285[2]) + (class288_125_.aFloatArray4285[1] * class288_126_.aFloatArray4285[6]) + (class288_125_.aFloatArray4285[2] * class288_126_.aFloatArray4285[10]) + (class288_125_.aFloatArray4285[3] * class288_126_.aFloatArray4285[14]));
		float f_129_ = ((class288_125_.aFloatArray4285[0] * class288_126_.aFloatArray4285[3]) + (class288_125_.aFloatArray4285[1] * class288_126_.aFloatArray4285[7]) + (class288_125_.aFloatArray4285[2] * class288_126_.aFloatArray4285[11]) + (class288_125_.aFloatArray4285[3] * class288_126_.aFloatArray4285[15]));
		float f_130_ = ((class288_125_.aFloatArray4285[4] * class288_126_.aFloatArray4285[0]) + (class288_125_.aFloatArray4285[5] * class288_126_.aFloatArray4285[4]) + (class288_125_.aFloatArray4285[6] * class288_126_.aFloatArray4285[8]) + (class288_125_.aFloatArray4285[7] * class288_126_.aFloatArray4285[12]));
		float f_131_ = ((class288_125_.aFloatArray4285[4] * class288_126_.aFloatArray4285[1]) + (class288_125_.aFloatArray4285[5] * class288_126_.aFloatArray4285[5]) + (class288_125_.aFloatArray4285[6] * class288_126_.aFloatArray4285[9]) + (class288_125_.aFloatArray4285[7] * class288_126_.aFloatArray4285[13]));
		float f_132_ = ((class288_125_.aFloatArray4285[4] * class288_126_.aFloatArray4285[2]) + (class288_125_.aFloatArray4285[5] * class288_126_.aFloatArray4285[6]) + (class288_125_.aFloatArray4285[6] * class288_126_.aFloatArray4285[10]) + (class288_125_.aFloatArray4285[7] * class288_126_.aFloatArray4285[14]));
		float f_133_ = ((class288_125_.aFloatArray4285[4] * class288_126_.aFloatArray4285[3]) + (class288_125_.aFloatArray4285[5] * class288_126_.aFloatArray4285[7]) + (class288_125_.aFloatArray4285[6] * class288_126_.aFloatArray4285[11]) + (class288_125_.aFloatArray4285[7] * class288_126_.aFloatArray4285[15]));
		float f_134_ = ((class288_125_.aFloatArray4285[8] * class288_126_.aFloatArray4285[0]) + (class288_125_.aFloatArray4285[9] * class288_126_.aFloatArray4285[4]) + (class288_125_.aFloatArray4285[10] * class288_126_.aFloatArray4285[8]) + (class288_125_.aFloatArray4285[11] * class288_126_.aFloatArray4285[12]));
		float f_135_ = ((class288_125_.aFloatArray4285[8] * class288_126_.aFloatArray4285[1]) + (class288_125_.aFloatArray4285[9] * class288_126_.aFloatArray4285[5]) + (class288_125_.aFloatArray4285[10] * class288_126_.aFloatArray4285[9]) + (class288_125_.aFloatArray4285[11] * class288_126_.aFloatArray4285[13]));
		float f_136_ = ((class288_125_.aFloatArray4285[8] * class288_126_.aFloatArray4285[2]) + (class288_125_.aFloatArray4285[9] * class288_126_.aFloatArray4285[6]) + (class288_125_.aFloatArray4285[10] * class288_126_.aFloatArray4285[10]) + (class288_125_.aFloatArray4285[11] * class288_126_.aFloatArray4285[14]));
		float f_137_ = ((class288_125_.aFloatArray4285[8] * class288_126_.aFloatArray4285[3]) + (class288_125_.aFloatArray4285[9] * class288_126_.aFloatArray4285[7]) + (class288_125_.aFloatArray4285[10] * class288_126_.aFloatArray4285[11]) + (class288_125_.aFloatArray4285[11] * class288_126_.aFloatArray4285[15]));
		float f_138_ = ((class288_125_.aFloatArray4285[12] * class288_126_.aFloatArray4285[0]) + (class288_125_.aFloatArray4285[13] * class288_126_.aFloatArray4285[4]) + (class288_125_.aFloatArray4285[14] * class288_126_.aFloatArray4285[8]) + (class288_125_.aFloatArray4285[15] * class288_126_.aFloatArray4285[12]));
		float f_139_ = ((class288_125_.aFloatArray4285[12] * class288_126_.aFloatArray4285[1]) + (class288_125_.aFloatArray4285[13] * class288_126_.aFloatArray4285[5]) + (class288_125_.aFloatArray4285[14] * class288_126_.aFloatArray4285[9]) + (class288_125_.aFloatArray4285[15] * class288_126_.aFloatArray4285[13]));
		float f_140_ = ((class288_125_.aFloatArray4285[12] * class288_126_.aFloatArray4285[2]) + (class288_125_.aFloatArray4285[13] * class288_126_.aFloatArray4285[6]) + (class288_125_.aFloatArray4285[14] * class288_126_.aFloatArray4285[10]) + (class288_125_.aFloatArray4285[15] * class288_126_.aFloatArray4285[14]));
		float f_141_ = ((class288_125_.aFloatArray4285[12] * class288_126_.aFloatArray4285[3]) + (class288_125_.aFloatArray4285[13] * class288_126_.aFloatArray4285[7]) + (class288_125_.aFloatArray4285[14] * class288_126_.aFloatArray4285[11]) + (class288_125_.aFloatArray4285[15] * class288_126_.aFloatArray4285[15]));
		aFloatArray4285[0] = f;
		aFloatArray4285[1] = f_127_;
		aFloatArray4285[2] = f_128_;
		aFloatArray4285[3] = f_129_;
		aFloatArray4285[4] = f_130_;
		aFloatArray4285[5] = f_131_;
		aFloatArray4285[6] = f_132_;
		aFloatArray4285[7] = f_133_;
		aFloatArray4285[8] = f_134_;
		aFloatArray4285[9] = f_135_;
		aFloatArray4285[10] = f_136_;
		aFloatArray4285[11] = f_137_;
		aFloatArray4285[12] = f_138_;
		aFloatArray4285[13] = f_139_;
		aFloatArray4285[14] = f_140_;
		aFloatArray4285[15] = f_141_;
	}

	public void method5788(Class288 class288_142_) {
		System.arraycopy(class288_142_.aFloatArray4285, 0, aFloatArray4285, 0, 11);
		aFloatArray4285[3] = 0.0F;
		aFloatArray4285[7] = 0.0F;
		aFloatArray4285[11] = 0.0F;
		aFloatArray4285[12] = 0.0F;
		aFloatArray4285[13] = 0.0F;
		aFloatArray4285[14] = 0.0F;
		aFloatArray4285[15] = 1.0F;
	}

	public void method5789(Class288 class288_143_) {
		System.arraycopy(class288_143_.aFloatArray4285, 0, aFloatArray4285, 0, 11);
		aFloatArray4285[3] = 0.0F;
		aFloatArray4285[7] = 0.0F;
		aFloatArray4285[11] = 0.0F;
		aFloatArray4285[12] = 0.0F;
		aFloatArray4285[13] = 0.0F;
		aFloatArray4285[14] = 0.0F;
		aFloatArray4285[15] = 1.0F;
	}

	void method5790(float f, float f_144_, float f_145_, float f_146_, float f_147_, float f_148_) {
		aFloatArray4285[0] = 2.0F * f_147_ / (f_144_ - f);
		aFloatArray4285[1] = 0.0F;
		aFloatArray4285[2] = 0.0F;
		aFloatArray4285[3] = 0.0F;
		aFloatArray4285[4] = 0.0F;
		aFloatArray4285[5] = 2.0F * f_147_ / (f_146_ - f_145_);
		aFloatArray4285[6] = 0.0F;
		aFloatArray4285[7] = 0.0F;
		aFloatArray4285[8] = (f_144_ + f) / (f_144_ - f);
		aFloatArray4285[9] = (f_146_ + f_145_) / (f_146_ - f_145_);
		aFloatArray4285[10] = (f_148_ + f_147_) / (f_148_ - f_147_);
		aFloatArray4285[11] = 1.0F;
		aFloatArray4285[12] = 0.0F;
		aFloatArray4285[13] = 0.0F;
		aFloatArray4285[14] = -(2.0F * f_148_ * f_147_) / (f_148_ - f_147_);
		aFloatArray4285[15] = 0.0F;
	}

	public void method5791(float f, float f_149_, float f_150_) {
		method5757(-10000.0F / f_150_, 10000.0F / f_150_, -10000.0F / f_150_, 10000.0F / f_150_, f, f_149_);
	}

	public float[] method5792(float[] fs) {
		fs[0] = aFloatArray4285[0];
		fs[1] = aFloatArray4285[4];
		fs[2] = aFloatArray4285[8];
		fs[3] = aFloatArray4285[12];
		fs[4] = aFloatArray4285[1];
		fs[5] = aFloatArray4285[5];
		fs[6] = aFloatArray4285[9];
		fs[7] = aFloatArray4285[13];
		return fs;
	}

	public void method5793(Class288 class288_151_) {
		System.arraycopy(class288_151_.aFloatArray4285, 0, aFloatArray4285, 0, 11);
		aFloatArray4285[3] = 0.0F;
		aFloatArray4285[7] = 0.0F;
		aFloatArray4285[11] = 0.0F;
		aFloatArray4285[12] = 0.0F;
		aFloatArray4285[13] = 0.0F;
		aFloatArray4285[14] = 0.0F;
		aFloatArray4285[15] = 1.0F;
	}

	public void method5794(Class288 class288_152_, Class288 class288_153_) {
		float f = ((class288_152_.aFloatArray4285[0] * class288_153_.aFloatArray4285[0]) + (class288_152_.aFloatArray4285[1] * class288_153_.aFloatArray4285[4]) + (class288_152_.aFloatArray4285[2] * class288_153_.aFloatArray4285[8]) + (class288_152_.aFloatArray4285[3] * class288_153_.aFloatArray4285[12]));
		float f_154_ = ((class288_152_.aFloatArray4285[0] * class288_153_.aFloatArray4285[1]) + (class288_152_.aFloatArray4285[1] * class288_153_.aFloatArray4285[5]) + (class288_152_.aFloatArray4285[2] * class288_153_.aFloatArray4285[9]) + (class288_152_.aFloatArray4285[3] * class288_153_.aFloatArray4285[13]));
		float f_155_ = ((class288_152_.aFloatArray4285[0] * class288_153_.aFloatArray4285[2]) + (class288_152_.aFloatArray4285[1] * class288_153_.aFloatArray4285[6]) + (class288_152_.aFloatArray4285[2] * class288_153_.aFloatArray4285[10]) + (class288_152_.aFloatArray4285[3] * class288_153_.aFloatArray4285[14]));
		float f_156_ = ((class288_152_.aFloatArray4285[0] * class288_153_.aFloatArray4285[3]) + (class288_152_.aFloatArray4285[1] * class288_153_.aFloatArray4285[7]) + (class288_152_.aFloatArray4285[2] * class288_153_.aFloatArray4285[11]) + (class288_152_.aFloatArray4285[3] * class288_153_.aFloatArray4285[15]));
		float f_157_ = ((class288_152_.aFloatArray4285[4] * class288_153_.aFloatArray4285[0]) + (class288_152_.aFloatArray4285[5] * class288_153_.aFloatArray4285[4]) + (class288_152_.aFloatArray4285[6] * class288_153_.aFloatArray4285[8]) + (class288_152_.aFloatArray4285[7] * class288_153_.aFloatArray4285[12]));
		float f_158_ = ((class288_152_.aFloatArray4285[4] * class288_153_.aFloatArray4285[1]) + (class288_152_.aFloatArray4285[5] * class288_153_.aFloatArray4285[5]) + (class288_152_.aFloatArray4285[6] * class288_153_.aFloatArray4285[9]) + (class288_152_.aFloatArray4285[7] * class288_153_.aFloatArray4285[13]));
		float f_159_ = ((class288_152_.aFloatArray4285[4] * class288_153_.aFloatArray4285[2]) + (class288_152_.aFloatArray4285[5] * class288_153_.aFloatArray4285[6]) + (class288_152_.aFloatArray4285[6] * class288_153_.aFloatArray4285[10]) + (class288_152_.aFloatArray4285[7] * class288_153_.aFloatArray4285[14]));
		float f_160_ = ((class288_152_.aFloatArray4285[4] * class288_153_.aFloatArray4285[3]) + (class288_152_.aFloatArray4285[5] * class288_153_.aFloatArray4285[7]) + (class288_152_.aFloatArray4285[6] * class288_153_.aFloatArray4285[11]) + (class288_152_.aFloatArray4285[7] * class288_153_.aFloatArray4285[15]));
		float f_161_ = ((class288_152_.aFloatArray4285[8] * class288_153_.aFloatArray4285[0]) + (class288_152_.aFloatArray4285[9] * class288_153_.aFloatArray4285[4]) + (class288_152_.aFloatArray4285[10] * class288_153_.aFloatArray4285[8]) + (class288_152_.aFloatArray4285[11] * class288_153_.aFloatArray4285[12]));
		float f_162_ = ((class288_152_.aFloatArray4285[8] * class288_153_.aFloatArray4285[1]) + (class288_152_.aFloatArray4285[9] * class288_153_.aFloatArray4285[5]) + (class288_152_.aFloatArray4285[10] * class288_153_.aFloatArray4285[9]) + (class288_152_.aFloatArray4285[11] * class288_153_.aFloatArray4285[13]));
		float f_163_ = ((class288_152_.aFloatArray4285[8] * class288_153_.aFloatArray4285[2]) + (class288_152_.aFloatArray4285[9] * class288_153_.aFloatArray4285[6]) + (class288_152_.aFloatArray4285[10] * class288_153_.aFloatArray4285[10]) + (class288_152_.aFloatArray4285[11] * class288_153_.aFloatArray4285[14]));
		float f_164_ = ((class288_152_.aFloatArray4285[8] * class288_153_.aFloatArray4285[3]) + (class288_152_.aFloatArray4285[9] * class288_153_.aFloatArray4285[7]) + (class288_152_.aFloatArray4285[10] * class288_153_.aFloatArray4285[11]) + (class288_152_.aFloatArray4285[11] * class288_153_.aFloatArray4285[15]));
		float f_165_ = ((class288_152_.aFloatArray4285[12] * class288_153_.aFloatArray4285[0]) + (class288_152_.aFloatArray4285[13] * class288_153_.aFloatArray4285[4]) + (class288_152_.aFloatArray4285[14] * class288_153_.aFloatArray4285[8]) + (class288_152_.aFloatArray4285[15] * class288_153_.aFloatArray4285[12]));
		float f_166_ = ((class288_152_.aFloatArray4285[12] * class288_153_.aFloatArray4285[1]) + (class288_152_.aFloatArray4285[13] * class288_153_.aFloatArray4285[5]) + (class288_152_.aFloatArray4285[14] * class288_153_.aFloatArray4285[9]) + (class288_152_.aFloatArray4285[15] * class288_153_.aFloatArray4285[13]));
		float f_167_ = ((class288_152_.aFloatArray4285[12] * class288_153_.aFloatArray4285[2]) + (class288_152_.aFloatArray4285[13] * class288_153_.aFloatArray4285[6]) + (class288_152_.aFloatArray4285[14] * class288_153_.aFloatArray4285[10]) + (class288_152_.aFloatArray4285[15] * class288_153_.aFloatArray4285[14]));
		float f_168_ = ((class288_152_.aFloatArray4285[12] * class288_153_.aFloatArray4285[3]) + (class288_152_.aFloatArray4285[13] * class288_153_.aFloatArray4285[7]) + (class288_152_.aFloatArray4285[14] * class288_153_.aFloatArray4285[11]) + (class288_152_.aFloatArray4285[15] * class288_153_.aFloatArray4285[15]));
		aFloatArray4285[0] = f;
		aFloatArray4285[1] = f_154_;
		aFloatArray4285[2] = f_155_;
		aFloatArray4285[3] = f_156_;
		aFloatArray4285[4] = f_157_;
		aFloatArray4285[5] = f_158_;
		aFloatArray4285[6] = f_159_;
		aFloatArray4285[7] = f_160_;
		aFloatArray4285[8] = f_161_;
		aFloatArray4285[9] = f_162_;
		aFloatArray4285[10] = f_163_;
		aFloatArray4285[11] = f_164_;
		aFloatArray4285[12] = f_165_;
		aFloatArray4285[13] = f_166_;
		aFloatArray4285[14] = f_167_;
		aFloatArray4285[15] = f_168_;
	}

	public void method5795(Class288 class288_169_, Class288 class288_170_) {
		float f = ((class288_169_.aFloatArray4285[0] * class288_170_.aFloatArray4285[0]) + (class288_169_.aFloatArray4285[1] * class288_170_.aFloatArray4285[4]) + (class288_169_.aFloatArray4285[2] * class288_170_.aFloatArray4285[8]) + (class288_169_.aFloatArray4285[3] * class288_170_.aFloatArray4285[12]));
		float f_171_ = ((class288_169_.aFloatArray4285[0] * class288_170_.aFloatArray4285[1]) + (class288_169_.aFloatArray4285[1] * class288_170_.aFloatArray4285[5]) + (class288_169_.aFloatArray4285[2] * class288_170_.aFloatArray4285[9]) + (class288_169_.aFloatArray4285[3] * class288_170_.aFloatArray4285[13]));
		float f_172_ = ((class288_169_.aFloatArray4285[0] * class288_170_.aFloatArray4285[2]) + (class288_169_.aFloatArray4285[1] * class288_170_.aFloatArray4285[6]) + (class288_169_.aFloatArray4285[2] * class288_170_.aFloatArray4285[10]) + (class288_169_.aFloatArray4285[3] * class288_170_.aFloatArray4285[14]));
		float f_173_ = ((class288_169_.aFloatArray4285[0] * class288_170_.aFloatArray4285[3]) + (class288_169_.aFloatArray4285[1] * class288_170_.aFloatArray4285[7]) + (class288_169_.aFloatArray4285[2] * class288_170_.aFloatArray4285[11]) + (class288_169_.aFloatArray4285[3] * class288_170_.aFloatArray4285[15]));
		float f_174_ = ((class288_169_.aFloatArray4285[4] * class288_170_.aFloatArray4285[0]) + (class288_169_.aFloatArray4285[5] * class288_170_.aFloatArray4285[4]) + (class288_169_.aFloatArray4285[6] * class288_170_.aFloatArray4285[8]) + (class288_169_.aFloatArray4285[7] * class288_170_.aFloatArray4285[12]));
		float f_175_ = ((class288_169_.aFloatArray4285[4] * class288_170_.aFloatArray4285[1]) + (class288_169_.aFloatArray4285[5] * class288_170_.aFloatArray4285[5]) + (class288_169_.aFloatArray4285[6] * class288_170_.aFloatArray4285[9]) + (class288_169_.aFloatArray4285[7] * class288_170_.aFloatArray4285[13]));
		float f_176_ = ((class288_169_.aFloatArray4285[4] * class288_170_.aFloatArray4285[2]) + (class288_169_.aFloatArray4285[5] * class288_170_.aFloatArray4285[6]) + (class288_169_.aFloatArray4285[6] * class288_170_.aFloatArray4285[10]) + (class288_169_.aFloatArray4285[7] * class288_170_.aFloatArray4285[14]));
		float f_177_ = ((class288_169_.aFloatArray4285[4] * class288_170_.aFloatArray4285[3]) + (class288_169_.aFloatArray4285[5] * class288_170_.aFloatArray4285[7]) + (class288_169_.aFloatArray4285[6] * class288_170_.aFloatArray4285[11]) + (class288_169_.aFloatArray4285[7] * class288_170_.aFloatArray4285[15]));
		float f_178_ = ((class288_169_.aFloatArray4285[8] * class288_170_.aFloatArray4285[0]) + (class288_169_.aFloatArray4285[9] * class288_170_.aFloatArray4285[4]) + (class288_169_.aFloatArray4285[10] * class288_170_.aFloatArray4285[8]) + (class288_169_.aFloatArray4285[11] * class288_170_.aFloatArray4285[12]));
		float f_179_ = ((class288_169_.aFloatArray4285[8] * class288_170_.aFloatArray4285[1]) + (class288_169_.aFloatArray4285[9] * class288_170_.aFloatArray4285[5]) + (class288_169_.aFloatArray4285[10] * class288_170_.aFloatArray4285[9]) + (class288_169_.aFloatArray4285[11] * class288_170_.aFloatArray4285[13]));
		float f_180_ = ((class288_169_.aFloatArray4285[8] * class288_170_.aFloatArray4285[2]) + (class288_169_.aFloatArray4285[9] * class288_170_.aFloatArray4285[6]) + (class288_169_.aFloatArray4285[10] * class288_170_.aFloatArray4285[10]) + (class288_169_.aFloatArray4285[11] * class288_170_.aFloatArray4285[14]));
		float f_181_ = ((class288_169_.aFloatArray4285[8] * class288_170_.aFloatArray4285[3]) + (class288_169_.aFloatArray4285[9] * class288_170_.aFloatArray4285[7]) + (class288_169_.aFloatArray4285[10] * class288_170_.aFloatArray4285[11]) + (class288_169_.aFloatArray4285[11] * class288_170_.aFloatArray4285[15]));
		float f_182_ = ((class288_169_.aFloatArray4285[12] * class288_170_.aFloatArray4285[0]) + (class288_169_.aFloatArray4285[13] * class288_170_.aFloatArray4285[4]) + (class288_169_.aFloatArray4285[14] * class288_170_.aFloatArray4285[8]) + (class288_169_.aFloatArray4285[15] * class288_170_.aFloatArray4285[12]));
		float f_183_ = ((class288_169_.aFloatArray4285[12] * class288_170_.aFloatArray4285[1]) + (class288_169_.aFloatArray4285[13] * class288_170_.aFloatArray4285[5]) + (class288_169_.aFloatArray4285[14] * class288_170_.aFloatArray4285[9]) + (class288_169_.aFloatArray4285[15] * class288_170_.aFloatArray4285[13]));
		float f_184_ = ((class288_169_.aFloatArray4285[12] * class288_170_.aFloatArray4285[2]) + (class288_169_.aFloatArray4285[13] * class288_170_.aFloatArray4285[6]) + (class288_169_.aFloatArray4285[14] * class288_170_.aFloatArray4285[10]) + (class288_169_.aFloatArray4285[15] * class288_170_.aFloatArray4285[14]));
		float f_185_ = ((class288_169_.aFloatArray4285[12] * class288_170_.aFloatArray4285[3]) + (class288_169_.aFloatArray4285[13] * class288_170_.aFloatArray4285[7]) + (class288_169_.aFloatArray4285[14] * class288_170_.aFloatArray4285[11]) + (class288_169_.aFloatArray4285[15] * class288_170_.aFloatArray4285[15]));
		aFloatArray4285[0] = f;
		aFloatArray4285[1] = f_171_;
		aFloatArray4285[2] = f_172_;
		aFloatArray4285[3] = f_173_;
		aFloatArray4285[4] = f_174_;
		aFloatArray4285[5] = f_175_;
		aFloatArray4285[6] = f_176_;
		aFloatArray4285[7] = f_177_;
		aFloatArray4285[8] = f_178_;
		aFloatArray4285[9] = f_179_;
		aFloatArray4285[10] = f_180_;
		aFloatArray4285[11] = f_181_;
		aFloatArray4285[12] = f_182_;
		aFloatArray4285[13] = f_183_;
		aFloatArray4285[14] = f_184_;
		aFloatArray4285[15] = f_185_;
	}

	public void method5796(Class288 class288_186_) {
		float f = (aFloatArray4285[0] * class288_186_.aFloatArray4285[0] + aFloatArray4285[1] * class288_186_.aFloatArray4285[4] + aFloatArray4285[2] * class288_186_.aFloatArray4285[8] + aFloatArray4285[3] * class288_186_.aFloatArray4285[12]);
		float f_187_ = (aFloatArray4285[0] * class288_186_.aFloatArray4285[1] + aFloatArray4285[1] * class288_186_.aFloatArray4285[5] + aFloatArray4285[2] * class288_186_.aFloatArray4285[9] + aFloatArray4285[3] * class288_186_.aFloatArray4285[13]);
		float f_188_ = (aFloatArray4285[0] * class288_186_.aFloatArray4285[2] + aFloatArray4285[1] * class288_186_.aFloatArray4285[6] + aFloatArray4285[2] * class288_186_.aFloatArray4285[10] + aFloatArray4285[3] * class288_186_.aFloatArray4285[14]);
		float f_189_ = (aFloatArray4285[0] * class288_186_.aFloatArray4285[3] + aFloatArray4285[1] * class288_186_.aFloatArray4285[7] + aFloatArray4285[2] * class288_186_.aFloatArray4285[11] + aFloatArray4285[3] * class288_186_.aFloatArray4285[15]);
		float f_190_ = (aFloatArray4285[4] * class288_186_.aFloatArray4285[0] + aFloatArray4285[5] * class288_186_.aFloatArray4285[4] + aFloatArray4285[6] * class288_186_.aFloatArray4285[8] + aFloatArray4285[7] * class288_186_.aFloatArray4285[12]);
		float f_191_ = (aFloatArray4285[4] * class288_186_.aFloatArray4285[1] + aFloatArray4285[5] * class288_186_.aFloatArray4285[5] + aFloatArray4285[6] * class288_186_.aFloatArray4285[9] + aFloatArray4285[7] * class288_186_.aFloatArray4285[13]);
		float f_192_ = (aFloatArray4285[4] * class288_186_.aFloatArray4285[2] + aFloatArray4285[5] * class288_186_.aFloatArray4285[6] + aFloatArray4285[6] * class288_186_.aFloatArray4285[10] + aFloatArray4285[7] * class288_186_.aFloatArray4285[14]);
		float f_193_ = (aFloatArray4285[4] * class288_186_.aFloatArray4285[3] + aFloatArray4285[5] * class288_186_.aFloatArray4285[7] + aFloatArray4285[6] * class288_186_.aFloatArray4285[11] + aFloatArray4285[7] * class288_186_.aFloatArray4285[15]);
		float f_194_ = (aFloatArray4285[8] * class288_186_.aFloatArray4285[0] + aFloatArray4285[9] * class288_186_.aFloatArray4285[4] + aFloatArray4285[10] * class288_186_.aFloatArray4285[8] + aFloatArray4285[11] * class288_186_.aFloatArray4285[12]);
		float f_195_ = (aFloatArray4285[8] * class288_186_.aFloatArray4285[1] + aFloatArray4285[9] * class288_186_.aFloatArray4285[5] + aFloatArray4285[10] * class288_186_.aFloatArray4285[9] + aFloatArray4285[11] * class288_186_.aFloatArray4285[13]);
		float f_196_ = (aFloatArray4285[8] * class288_186_.aFloatArray4285[2] + aFloatArray4285[9] * class288_186_.aFloatArray4285[6] + aFloatArray4285[10] * class288_186_.aFloatArray4285[10] + aFloatArray4285[11] * class288_186_.aFloatArray4285[14]);
		float f_197_ = (aFloatArray4285[8] * class288_186_.aFloatArray4285[3] + aFloatArray4285[9] * class288_186_.aFloatArray4285[7] + aFloatArray4285[10] * class288_186_.aFloatArray4285[11] + aFloatArray4285[11] * class288_186_.aFloatArray4285[15]);
		float f_198_ = (aFloatArray4285[12] * class288_186_.aFloatArray4285[0] + aFloatArray4285[13] * class288_186_.aFloatArray4285[4] + aFloatArray4285[14] * class288_186_.aFloatArray4285[8] + aFloatArray4285[15] * class288_186_.aFloatArray4285[12]);
		float f_199_ = (aFloatArray4285[12] * class288_186_.aFloatArray4285[1] + aFloatArray4285[13] * class288_186_.aFloatArray4285[5] + aFloatArray4285[14] * class288_186_.aFloatArray4285[9] + aFloatArray4285[15] * class288_186_.aFloatArray4285[13]);
		float f_200_ = (aFloatArray4285[12] * class288_186_.aFloatArray4285[2] + aFloatArray4285[13] * class288_186_.aFloatArray4285[6] + aFloatArray4285[14] * class288_186_.aFloatArray4285[10] + aFloatArray4285[15] * class288_186_.aFloatArray4285[14]);
		float f_201_ = (aFloatArray4285[12] * class288_186_.aFloatArray4285[3] + aFloatArray4285[13] * class288_186_.aFloatArray4285[7] + aFloatArray4285[14] * class288_186_.aFloatArray4285[11] + aFloatArray4285[15] * class288_186_.aFloatArray4285[15]);
		aFloatArray4285[0] = f;
		aFloatArray4285[1] = f_187_;
		aFloatArray4285[2] = f_188_;
		aFloatArray4285[3] = f_189_;
		aFloatArray4285[4] = f_190_;
		aFloatArray4285[5] = f_191_;
		aFloatArray4285[6] = f_192_;
		aFloatArray4285[7] = f_193_;
		aFloatArray4285[8] = f_194_;
		aFloatArray4285[9] = f_195_;
		aFloatArray4285[10] = f_196_;
		aFloatArray4285[11] = f_197_;
		aFloatArray4285[12] = f_198_;
		aFloatArray4285[13] = f_199_;
		aFloatArray4285[14] = f_200_;
		aFloatArray4285[15] = f_201_;
	}

	public void method5797(Class346 class346) {
		aFloatArray4285[0] = ((Class346) class346).aFloat5412;
		aFloatArray4285[1] = ((Class346) class346).aFloat5416;
		aFloatArray4285[2] = ((Class346) class346).aFloat5413;
		aFloatArray4285[3] = 0.0F;
		aFloatArray4285[4] = ((Class346) class346).aFloat5420;
		aFloatArray4285[5] = ((Class346) class346).aFloat5415;
		aFloatArray4285[6] = ((Class346) class346).aFloat5414;
		aFloatArray4285[7] = 0.0F;
		aFloatArray4285[8] = ((Class346) class346).aFloat5417;
		aFloatArray4285[9] = ((Class346) class346).aFloat5418;
		aFloatArray4285[10] = ((Class346) class346).aFloat5419;
		aFloatArray4285[11] = 0.0F;
		aFloatArray4285[12] = ((Class346) class346).aFloat5411;
		aFloatArray4285[13] = ((Class346) class346).aFloat5421;
		aFloatArray4285[14] = ((Class346) class346).aFloat5422;
		aFloatArray4285[15] = 1.0F;
	}

	public boolean equals(Object object) {
		if (!(object instanceof Class288))
			return false;
		Class288 class288_202_ = (Class288) object;
		for (int i = 0; i < 16; i++) {
			if (aFloatArray4285[i] != class288_202_.aFloatArray4285[i])
				return false;
		}
		return true;
	}

	public float[] method5798(float[] fs) {
		float f = aFloatArray4285[3] - aFloatArray4285[0];
		float f_203_ = aFloatArray4285[7] - aFloatArray4285[4];
		float f_204_ = aFloatArray4285[11] - aFloatArray4285[8];
		double d = Math.sqrt((double) (f * f + f_203_ * f_203_ + f_204_ * f_204_));
		fs[0] = (float) ((double) f / d);
		fs[1] = (float) ((double) f_203_ / d);
		fs[2] = (float) ((double) f_204_ / d);
		fs[3] = (float) ((double) (aFloatArray4285[15] - aFloatArray4285[12]) / d);
		return fs;
	}

	public void method5799() {
		float f = 1.0F / method5843();
		float f_205_ = (aFloatArray4285[5] * aFloatArray4285[10] * aFloatArray4285[15] - aFloatArray4285[5] * aFloatArray4285[11] * aFloatArray4285[14] - aFloatArray4285[6] * aFloatArray4285[9] * aFloatArray4285[15] + aFloatArray4285[6] * aFloatArray4285[11] * aFloatArray4285[13] + aFloatArray4285[7] * aFloatArray4285[9] * aFloatArray4285[14] - (aFloatArray4285[7] * aFloatArray4285[10] * aFloatArray4285[13])) * f;
		float f_206_ = (-aFloatArray4285[1] * aFloatArray4285[10] * aFloatArray4285[15] + aFloatArray4285[1] * aFloatArray4285[11] * aFloatArray4285[14] + aFloatArray4285[2] * aFloatArray4285[9] * aFloatArray4285[15] - aFloatArray4285[2] * aFloatArray4285[11] * aFloatArray4285[13] - aFloatArray4285[3] * aFloatArray4285[9] * aFloatArray4285[14] + (aFloatArray4285[3] * aFloatArray4285[10] * aFloatArray4285[13])) * f;
		float f_207_ = ((aFloatArray4285[1] * aFloatArray4285[6] * aFloatArray4285[15] - aFloatArray4285[1] * aFloatArray4285[7] * aFloatArray4285[14] - aFloatArray4285[2] * aFloatArray4285[5] * aFloatArray4285[15] + aFloatArray4285[2] * aFloatArray4285[7] * aFloatArray4285[13] + aFloatArray4285[3] * aFloatArray4285[5] * aFloatArray4285[14] - (aFloatArray4285[3] * aFloatArray4285[6] * aFloatArray4285[13])) * f);
		float f_208_ = ((-aFloatArray4285[1] * aFloatArray4285[6] * aFloatArray4285[11] + aFloatArray4285[1] * aFloatArray4285[7] * aFloatArray4285[10] + aFloatArray4285[2] * aFloatArray4285[5] * aFloatArray4285[11] - aFloatArray4285[2] * aFloatArray4285[7] * aFloatArray4285[9] - aFloatArray4285[3] * aFloatArray4285[5] * aFloatArray4285[10] + aFloatArray4285[3] * aFloatArray4285[6] * aFloatArray4285[9]) * f);
		float f_209_ = (-aFloatArray4285[4] * aFloatArray4285[10] * aFloatArray4285[15] + aFloatArray4285[4] * aFloatArray4285[11] * aFloatArray4285[14] + aFloatArray4285[6] * aFloatArray4285[8] * aFloatArray4285[15] - aFloatArray4285[6] * aFloatArray4285[11] * aFloatArray4285[12] - aFloatArray4285[7] * aFloatArray4285[8] * aFloatArray4285[14] + (aFloatArray4285[7] * aFloatArray4285[10] * aFloatArray4285[12])) * f;
		float f_210_ = (aFloatArray4285[0] * aFloatArray4285[10] * aFloatArray4285[15] - aFloatArray4285[0] * aFloatArray4285[11] * aFloatArray4285[14] - aFloatArray4285[2] * aFloatArray4285[8] * aFloatArray4285[15] + aFloatArray4285[2] * aFloatArray4285[11] * aFloatArray4285[12] + aFloatArray4285[3] * aFloatArray4285[8] * aFloatArray4285[14] - (aFloatArray4285[3] * aFloatArray4285[10] * aFloatArray4285[12])) * f;
		float f_211_ = ((-aFloatArray4285[0] * aFloatArray4285[6] * aFloatArray4285[15] + aFloatArray4285[0] * aFloatArray4285[7] * aFloatArray4285[14] + aFloatArray4285[2] * aFloatArray4285[4] * aFloatArray4285[15] - aFloatArray4285[2] * aFloatArray4285[7] * aFloatArray4285[12] - aFloatArray4285[3] * aFloatArray4285[4] * aFloatArray4285[14] + (aFloatArray4285[3] * aFloatArray4285[6] * aFloatArray4285[12])) * f);
		float f_212_ = ((aFloatArray4285[0] * aFloatArray4285[6] * aFloatArray4285[11] - aFloatArray4285[0] * aFloatArray4285[7] * aFloatArray4285[10] - aFloatArray4285[2] * aFloatArray4285[4] * aFloatArray4285[11] + aFloatArray4285[2] * aFloatArray4285[7] * aFloatArray4285[8] + aFloatArray4285[3] * aFloatArray4285[4] * aFloatArray4285[10] - aFloatArray4285[3] * aFloatArray4285[6] * aFloatArray4285[8]) * f);
		float f_213_ = (aFloatArray4285[4] * aFloatArray4285[9] * aFloatArray4285[15] - aFloatArray4285[4] * aFloatArray4285[11] * aFloatArray4285[13] - aFloatArray4285[5] * aFloatArray4285[8] * aFloatArray4285[15] + aFloatArray4285[5] * aFloatArray4285[11] * aFloatArray4285[12] + aFloatArray4285[7] * aFloatArray4285[8] * aFloatArray4285[13] - (aFloatArray4285[7] * aFloatArray4285[9] * aFloatArray4285[12])) * f;
		float f_214_ = (-aFloatArray4285[0] * aFloatArray4285[9] * aFloatArray4285[15] + aFloatArray4285[0] * aFloatArray4285[11] * aFloatArray4285[13] + aFloatArray4285[1] * aFloatArray4285[8] * aFloatArray4285[15] - aFloatArray4285[1] * aFloatArray4285[11] * aFloatArray4285[12] - aFloatArray4285[3] * aFloatArray4285[8] * aFloatArray4285[13] + (aFloatArray4285[3] * aFloatArray4285[9] * aFloatArray4285[12])) * f;
		float f_215_ = ((aFloatArray4285[0] * aFloatArray4285[5] * aFloatArray4285[15] - aFloatArray4285[0] * aFloatArray4285[7] * aFloatArray4285[13] - aFloatArray4285[1] * aFloatArray4285[4] * aFloatArray4285[15] + aFloatArray4285[1] * aFloatArray4285[7] * aFloatArray4285[12] + aFloatArray4285[3] * aFloatArray4285[4] * aFloatArray4285[13] - (aFloatArray4285[3] * aFloatArray4285[5] * aFloatArray4285[12])) * f);
		float f_216_ = ((-aFloatArray4285[0] * aFloatArray4285[5] * aFloatArray4285[11] + aFloatArray4285[0] * aFloatArray4285[7] * aFloatArray4285[9] + aFloatArray4285[1] * aFloatArray4285[4] * aFloatArray4285[11] - aFloatArray4285[1] * aFloatArray4285[7] * aFloatArray4285[8] - aFloatArray4285[3] * aFloatArray4285[4] * aFloatArray4285[9] + aFloatArray4285[3] * aFloatArray4285[5] * aFloatArray4285[8]) * f);
		float f_217_ = (-aFloatArray4285[4] * aFloatArray4285[9] * aFloatArray4285[14] + aFloatArray4285[4] * aFloatArray4285[10] * aFloatArray4285[13] + aFloatArray4285[5] * aFloatArray4285[8] * aFloatArray4285[14] - aFloatArray4285[5] * aFloatArray4285[10] * aFloatArray4285[12] - aFloatArray4285[6] * aFloatArray4285[8] * aFloatArray4285[13] + (aFloatArray4285[6] * aFloatArray4285[9] * aFloatArray4285[12])) * f;
		float f_218_ = (aFloatArray4285[0] * aFloatArray4285[9] * aFloatArray4285[14] - aFloatArray4285[0] * aFloatArray4285[10] * aFloatArray4285[13] - aFloatArray4285[1] * aFloatArray4285[8] * aFloatArray4285[14] + aFloatArray4285[1] * aFloatArray4285[10] * aFloatArray4285[12] + aFloatArray4285[2] * aFloatArray4285[8] * aFloatArray4285[13] - (aFloatArray4285[2] * aFloatArray4285[9] * aFloatArray4285[12])) * f;
		float f_219_ = ((-aFloatArray4285[0] * aFloatArray4285[5] * aFloatArray4285[14] + aFloatArray4285[0] * aFloatArray4285[6] * aFloatArray4285[13] + aFloatArray4285[1] * aFloatArray4285[4] * aFloatArray4285[14] - aFloatArray4285[1] * aFloatArray4285[6] * aFloatArray4285[12] - aFloatArray4285[2] * aFloatArray4285[4] * aFloatArray4285[13] + (aFloatArray4285[2] * aFloatArray4285[5] * aFloatArray4285[12])) * f);
		float f_220_ = ((aFloatArray4285[0] * aFloatArray4285[5] * aFloatArray4285[10] - aFloatArray4285[0] * aFloatArray4285[6] * aFloatArray4285[9] - aFloatArray4285[1] * aFloatArray4285[4] * aFloatArray4285[10] + aFloatArray4285[1] * aFloatArray4285[6] * aFloatArray4285[8] + aFloatArray4285[2] * aFloatArray4285[4] * aFloatArray4285[9] - aFloatArray4285[2] * aFloatArray4285[5] * aFloatArray4285[8]) * f);
		aFloatArray4285[0] = f_205_;
		aFloatArray4285[1] = f_206_;
		aFloatArray4285[2] = f_207_;
		aFloatArray4285[3] = f_208_;
		aFloatArray4285[4] = f_209_;
		aFloatArray4285[5] = f_210_;
		aFloatArray4285[6] = f_211_;
		aFloatArray4285[7] = f_212_;
		aFloatArray4285[8] = f_213_;
		aFloatArray4285[9] = f_214_;
		aFloatArray4285[10] = f_215_;
		aFloatArray4285[11] = f_216_;
		aFloatArray4285[12] = f_217_;
		aFloatArray4285[13] = f_218_;
		aFloatArray4285[14] = f_219_;
		aFloatArray4285[15] = f_220_;
	}

	public void method5800(float f, float f_221_, float f_222_, float f_223_, float f_224_, float f_225_, float f_226_, float f_227_, float f_228_) {
		method5757(-(f * f_228_) / f_222_, f_228_ * (f_226_ - f) / f_222_, -(f_221_ * f_228_) / f_223_, f_228_ * (f_227_ - f_221_) / f_223_, f_224_, f_225_);
	}

	public void method5801(float f, float f_229_, float f_230_, float f_231_) {
		aFloatArray4285[0] = f;
		aFloatArray4285[1] = 0.0F;
		aFloatArray4285[2] = 0.0F;
		aFloatArray4285[3] = 0.0F;
		aFloatArray4285[4] = 0.0F;
		aFloatArray4285[5] = f_229_;
		aFloatArray4285[6] = 0.0F;
		aFloatArray4285[7] = 0.0F;
		aFloatArray4285[8] = 0.0F;
		aFloatArray4285[9] = 0.0F;
		aFloatArray4285[10] = f_230_;
		aFloatArray4285[11] = 0.0F;
		aFloatArray4285[12] = 0.0F;
		aFloatArray4285[13] = 0.0F;
		aFloatArray4285[14] = 0.0F;
		aFloatArray4285[15] = f_231_;
	}

	public Class288(Class288 class288_232_) {
		aFloatArray4285 = new float[16];
		method5825(class288_232_);
	}

	public boolean method5802() {
		return (aFloatArray4285[0] == 1.0F && aFloatArray4285[1] == 0.0F && aFloatArray4285[2] == 0.0F && aFloatArray4285[3] == 0.0F && aFloatArray4285[4] == 0.0F && aFloatArray4285[5] == 1.0F && aFloatArray4285[6] == 0.0F && aFloatArray4285[7] == 0.0F && aFloatArray4285[8] == 0.0F && aFloatArray4285[9] == 0.0F && aFloatArray4285[10] == 1.0F && aFloatArray4285[11] == 0.0F && aFloatArray4285[12] == 0.0F && aFloatArray4285[13] == 0.0F && aFloatArray4285[14] == 0.0F && aFloatArray4285[15] == 1.0F);
	}

	public boolean method5803() {
		return (aFloatArray4285[0] == 1.0F && aFloatArray4285[1] == 0.0F && aFloatArray4285[2] == 0.0F && aFloatArray4285[3] == 0.0F && aFloatArray4285[4] == 0.0F && aFloatArray4285[5] == 1.0F && aFloatArray4285[6] == 0.0F && aFloatArray4285[7] == 0.0F && aFloatArray4285[8] == 0.0F && aFloatArray4285[9] == 0.0F && aFloatArray4285[10] == 1.0F && aFloatArray4285[11] == 0.0F && aFloatArray4285[12] == 0.0F && aFloatArray4285[13] == 0.0F && aFloatArray4285[14] == 0.0F && aFloatArray4285[15] == 1.0F);
	}

	public void method5804(float f, float f_233_, float f_234_, float[] fs) {
		fs[0] = (aFloatArray4285[0] * f + aFloatArray4285[4] * f_233_ + aFloatArray4285[8] * f_234_ + aFloatArray4285[12]);
		fs[1] = (aFloatArray4285[1] * f + aFloatArray4285[5] * f_233_ + aFloatArray4285[9] * f_234_ + aFloatArray4285[13]);
		fs[2] = (aFloatArray4285[2] * f + aFloatArray4285[6] * f_233_ + aFloatArray4285[10] * f_234_ + aFloatArray4285[14]);
		if (fs.length > 3)
			fs[3] = (aFloatArray4285[3] * f + aFloatArray4285[7] * f_233_ + aFloatArray4285[11] * f_234_ + aFloatArray4285[15]);
	}

	public void method5805(float f, float f_235_, float f_236_, float[] fs) {
		fs[0] = (aFloatArray4285[0] * f + aFloatArray4285[4] * f_235_ + aFloatArray4285[8] * f_236_ + aFloatArray4285[12]);
		fs[1] = (aFloatArray4285[1] * f + aFloatArray4285[5] * f_235_ + aFloatArray4285[9] * f_236_ + aFloatArray4285[13]);
		fs[2] = (aFloatArray4285[2] * f + aFloatArray4285[6] * f_235_ + aFloatArray4285[10] * f_236_ + aFloatArray4285[14]);
		if (fs.length > 3)
			fs[3] = (aFloatArray4285[3] * f + aFloatArray4285[7] * f_235_ + aFloatArray4285[11] * f_236_ + aFloatArray4285[15]);
	}

	public void method5806(float f, float f_237_, float f_238_, float[] fs) {
		fs[0] = (aFloatArray4285[0] * f + aFloatArray4285[4] * f_237_ + aFloatArray4285[8] * f_238_);
		fs[1] = (aFloatArray4285[1] * f + aFloatArray4285[5] * f_237_ + aFloatArray4285[9] * f_238_);
		fs[2] = (aFloatArray4285[2] * f + aFloatArray4285[6] * f_237_ + aFloatArray4285[10] * f_238_);
		if (fs.length > 3)
			fs[3] = (aFloatArray4285[3] * f + aFloatArray4285[7] * f_237_ + aFloatArray4285[11] * f_238_);
	}

	public void method5807(float f, float f_239_, float f_240_, float[] fs) {
		fs[0] = (aFloatArray4285[0] * f + aFloatArray4285[4] * f_239_ + aFloatArray4285[8] * f_240_);
		fs[1] = (aFloatArray4285[1] * f + aFloatArray4285[5] * f_239_ + aFloatArray4285[9] * f_240_);
		fs[2] = (aFloatArray4285[2] * f + aFloatArray4285[6] * f_239_ + aFloatArray4285[10] * f_240_);
		if (fs.length > 3)
			fs[3] = (aFloatArray4285[3] * f + aFloatArray4285[7] * f_239_ + aFloatArray4285[11] * f_240_);
	}

	public void method5808(float f, float f_241_, float f_242_, float f_243_) {
		float f_244_ = (float) (Math.tan((double) (f_242_ / 2.0F)) * (double) f);
		float f_245_ = (float) (Math.tan((double) (f_243_ / 2.0F)) * (double) f);
		method5790(-f_244_, f_244_, -f_245_, f_245_, f, f_241_);
	}

	public float[] method5809(float[] fs) {
		System.arraycopy(aFloatArray4285, 0, fs, 0, 16);
		fs[3] = 0.0F;
		fs[7] = 0.0F;
		fs[11] = 0.0F;
		fs[12] = 0.0F;
		fs[13] = 0.0F;
		fs[14] = 0.0F;
		fs[15] = 1.0F;
		return fs;
	}

	public void method5810(float f, float f_246_, float f_247_, float f_248_) {
		float f_249_ = (float) (Math.tan((double) (f_247_ / 2.0F)) * (double) f);
		float f_250_ = (float) (Math.tan((double) (f_248_ / 2.0F)) * (double) f);
		method5790(-f_249_, f_249_, -f_250_, f_250_, f, f_246_);
	}

	public float method5811() {
		return ((aFloatArray4285[14] - aFloatArray4285[15]) / (aFloatArray4285[11] - aFloatArray4285[10]));
	}

	void method5812(float f, float f_251_, float f_252_, float f_253_, float f_254_, float f_255_) {
		aFloatArray4285[0] = 2.0F * f_254_ / (f_251_ - f);
		aFloatArray4285[1] = 0.0F;
		aFloatArray4285[2] = 0.0F;
		aFloatArray4285[3] = 0.0F;
		aFloatArray4285[4] = 0.0F;
		aFloatArray4285[5] = 2.0F * f_254_ / (f_253_ - f_252_);
		aFloatArray4285[6] = 0.0F;
		aFloatArray4285[7] = 0.0F;
		aFloatArray4285[8] = (f_251_ + f) / (f_251_ - f);
		aFloatArray4285[9] = (f_253_ + f_252_) / (f_253_ - f_252_);
		aFloatArray4285[10] = (f_255_ + f_254_) / (f_255_ - f_254_);
		aFloatArray4285[11] = 1.0F;
		aFloatArray4285[12] = 0.0F;
		aFloatArray4285[13] = 0.0F;
		aFloatArray4285[14] = -(2.0F * f_255_ * f_254_) / (f_255_ - f_254_);
		aFloatArray4285[15] = 0.0F;
	}

	void method5813(float f, float f_256_, float f_257_, float f_258_, float f_259_, float f_260_) {
		aFloatArray4285[0] = 2.0F * f_259_ / (f_256_ - f);
		aFloatArray4285[1] = 0.0F;
		aFloatArray4285[2] = 0.0F;
		aFloatArray4285[3] = 0.0F;
		aFloatArray4285[4] = 0.0F;
		aFloatArray4285[5] = 2.0F * f_259_ / (f_258_ - f_257_);
		aFloatArray4285[6] = 0.0F;
		aFloatArray4285[7] = 0.0F;
		aFloatArray4285[8] = (f_256_ + f) / (f_256_ - f);
		aFloatArray4285[9] = (f_258_ + f_257_) / (f_258_ - f_257_);
		aFloatArray4285[10] = (f_260_ + f_259_) / (f_260_ - f_259_);
		aFloatArray4285[11] = 1.0F;
		aFloatArray4285[12] = 0.0F;
		aFloatArray4285[13] = 0.0F;
		aFloatArray4285[14] = -(2.0F * f_260_ * f_259_) / (f_260_ - f_259_);
		aFloatArray4285[15] = 0.0F;
	}

	public void method5814(float f, float f_261_, float f_262_, float f_263_, float f_264_, float f_265_, float f_266_, float f_267_) {
		aFloatArray4285[0] = f_262_ * 2.0F / f_266_;
		aFloatArray4285[1] = 0.0F;
		aFloatArray4285[2] = 0.0F;
		aFloatArray4285[3] = 0.0F;
		aFloatArray4285[4] = 0.0F;
		aFloatArray4285[5] = f_263_ * 2.0F / f_267_;
		aFloatArray4285[6] = 0.0F;
		aFloatArray4285[7] = 0.0F;
		aFloatArray4285[8] = 2.0F * f / f_266_ - 1.0F;
		aFloatArray4285[9] = 2.0F * f_261_ / f_267_ - 1.0F;
		aFloatArray4285[10] = (f_265_ + f_264_) / (f_265_ - f_264_);
		aFloatArray4285[11] = 1.0F;
		aFloatArray4285[12] = 0.0F;
		aFloatArray4285[13] = 0.0F;
		aFloatArray4285[14] = 2.0F * f_265_ * f_264_ / (f_264_ - f_265_);
		aFloatArray4285[15] = 0.0F;
	}

	public float[] method5815(float[] fs) {
		float f = aFloatArray4285[3] - aFloatArray4285[1];
		float f_268_ = aFloatArray4285[7] - aFloatArray4285[5];
		float f_269_ = aFloatArray4285[11] - aFloatArray4285[9];
		double d = Math.sqrt((double) (f * f + f_268_ * f_268_ + f_269_ * f_269_));
		fs[0] = (float) ((double) f / d);
		fs[1] = (float) ((double) f_268_ / d);
		fs[2] = (float) ((double) f_269_ / d);
		fs[3] = (float) ((double) (aFloatArray4285[15] - aFloatArray4285[13]) / d);
		return fs;
	}

	public float[] method5816(float[] fs) {
		float f = aFloatArray4285[3] - aFloatArray4285[1];
		float f_270_ = aFloatArray4285[7] - aFloatArray4285[5];
		float f_271_ = aFloatArray4285[11] - aFloatArray4285[9];
		double d = Math.sqrt((double) (f * f + f_270_ * f_270_ + f_271_ * f_271_));
		fs[0] = (float) ((double) f / d);
		fs[1] = (float) ((double) f_270_ / d);
		fs[2] = (float) ((double) f_271_ / d);
		fs[3] = (float) ((double) (aFloatArray4285[15] - aFloatArray4285[13]) / d);
		return fs;
	}

	public void method5817(float f, float f_272_, float f_273_, float f_274_, float f_275_, float f_276_, float f_277_, float f_278_, float f_279_) {
		method5757(-(f * f_279_) / f_273_, f_279_ * (f_277_ - f) / f_273_, -(f_272_ * f_279_) / f_274_, f_279_ * (f_278_ - f_272_) / f_274_, f_275_, f_276_);
	}

	public float method5818() {
		return (-(aFloatArray4285[15] + aFloatArray4285[14]) / (aFloatArray4285[11] + aFloatArray4285[10]));
	}

	public float method5819() {
		return (-(aFloatArray4285[15] + aFloatArray4285[14]) / (aFloatArray4285[11] + aFloatArray4285[10]));
	}

	public float[] method5820(float[] fs) {
		fs[0] = aFloatArray4285[0];
		fs[1] = aFloatArray4285[1];
		fs[2] = aFloatArray4285[2];
		fs[3] = aFloatArray4285[4];
		fs[4] = aFloatArray4285[5];
		fs[5] = aFloatArray4285[6];
		fs[6] = aFloatArray4285[8];
		fs[7] = aFloatArray4285[9];
		fs[8] = aFloatArray4285[10];
		return fs;
	}

	public float[] method5821(float[] fs) {
		float f = aFloatArray4285[3] + aFloatArray4285[0];
		float f_280_ = aFloatArray4285[7] + aFloatArray4285[4];
		float f_281_ = aFloatArray4285[11] + aFloatArray4285[8];
		double d = Math.sqrt((double) (f * f + f_280_ * f_280_ + f_281_ * f_281_));
		fs[0] = (float) ((double) f / d);
		fs[1] = (float) ((double) f_280_ / d);
		fs[2] = (float) ((double) f_281_ / d);
		fs[3] = (float) ((double) (aFloatArray4285[15] + aFloatArray4285[12]) / d);
		return fs;
	}

	public float[] method5822(float[] fs) {
		float f = aFloatArray4285[3] + aFloatArray4285[0];
		float f_282_ = aFloatArray4285[7] + aFloatArray4285[4];
		float f_283_ = aFloatArray4285[11] + aFloatArray4285[8];
		double d = Math.sqrt((double) (f * f + f_282_ * f_282_ + f_283_ * f_283_));
		fs[0] = (float) ((double) f / d);
		fs[1] = (float) ((double) f_282_ / d);
		fs[2] = (float) ((double) f_283_ / d);
		fs[3] = (float) ((double) (aFloatArray4285[15] + aFloatArray4285[12]) / d);
		return fs;
	}

	public float[] method5823(float[] fs) {
		float f = aFloatArray4285[3] + aFloatArray4285[0];
		float f_284_ = aFloatArray4285[7] + aFloatArray4285[4];
		float f_285_ = aFloatArray4285[11] + aFloatArray4285[8];
		double d = Math.sqrt((double) (f * f + f_284_ * f_284_ + f_285_ * f_285_));
		fs[0] = (float) ((double) f / d);
		fs[1] = (float) ((double) f_284_ / d);
		fs[2] = (float) ((double) f_285_ / d);
		fs[3] = (float) ((double) (aFloatArray4285[15] + aFloatArray4285[12]) / d);
		return fs;
	}

	public boolean method5824() {
		return (aFloatArray4285[0] == 1.0F && aFloatArray4285[1] == 0.0F && aFloatArray4285[2] == 0.0F && aFloatArray4285[3] == 0.0F && aFloatArray4285[4] == 0.0F && aFloatArray4285[5] == 1.0F && aFloatArray4285[6] == 0.0F && aFloatArray4285[7] == 0.0F && aFloatArray4285[8] == 0.0F && aFloatArray4285[9] == 0.0F && aFloatArray4285[10] == 1.0F && aFloatArray4285[11] == 0.0F && aFloatArray4285[12] == 0.0F && aFloatArray4285[13] == 0.0F && aFloatArray4285[14] == 0.0F && aFloatArray4285[15] == 1.0F);
	}

	public void method5825(Class288 class288_286_) {
		System.arraycopy(class288_286_.aFloatArray4285, 0, aFloatArray4285, 0, 16);
	}

	public float[] method5826(float[] fs) {
		fs[0] = aFloatArray4285[0];
		fs[1] = aFloatArray4285[4];
		fs[2] = aFloatArray4285[8];
		fs[3] = aFloatArray4285[12];
		fs[4] = aFloatArray4285[1];
		fs[5] = aFloatArray4285[5];
		fs[6] = aFloatArray4285[9];
		fs[7] = aFloatArray4285[13];
		fs[8] = aFloatArray4285[2];
		fs[9] = aFloatArray4285[6];
		fs[10] = aFloatArray4285[10];
		fs[11] = aFloatArray4285[14];
		fs[12] = aFloatArray4285[3];
		fs[13] = aFloatArray4285[7];
		fs[14] = aFloatArray4285[11];
		fs[15] = aFloatArray4285[15];
		return fs;
	}

	public float[] method5827(float[] fs) {
		float f = aFloatArray4285[3] + aFloatArray4285[2];
		float f_287_ = aFloatArray4285[7] + aFloatArray4285[6];
		float f_288_ = aFloatArray4285[11] + aFloatArray4285[10];
		double d = Math.sqrt((double) (f * f + f_287_ * f_287_ + f_288_ * f_288_));
		fs[0] = (float) ((double) f / d);
		fs[1] = (float) ((double) f_287_ / d);
		fs[2] = (float) ((double) f_288_ / d);
		fs[3] = (float) ((double) (aFloatArray4285[15] + aFloatArray4285[14]) / d);
		return fs;
	}

	public void method5828(int i, int i_289_, int i_290_, float f, float f_291_, float f_292_) {
		if (i != 0) {
			float f_293_ = Class340.aFloatArray5386[i & 0x3fff];
			float f_294_ = Class340.aFloatArray5387[i & 0x3fff];
			aFloatArray4285[0] = f_293_ * (float) i_289_;
			aFloatArray4285[5] = f_293_ * (float) i_290_;
			aFloatArray4285[1] = f_294_ * (float) i_289_;
			aFloatArray4285[4] = -f_294_ * (float) i_290_;
			aFloatArray4285[10] = 1.0F;
			float[] fs = aFloatArray4285;
			float[] fs_295_ = aFloatArray4285;
			float[] fs_296_ = aFloatArray4285;
			aFloatArray4285[9] = 0.0F;
			fs_296_[8] = 0.0F;
			fs_295_[6] = 0.0F;
			fs[2] = 0.0F;
		} else {
			aFloatArray4285[0] = (float) i_289_;
			aFloatArray4285[5] = (float) i_290_;
			aFloatArray4285[10] = 1.0F;
			float[] fs = aFloatArray4285;
			float[] fs_297_ = aFloatArray4285;
			float[] fs_298_ = aFloatArray4285;
			float[] fs_299_ = aFloatArray4285;
			float[] fs_300_ = aFloatArray4285;
			aFloatArray4285[9] = 0.0F;
			fs_300_[8] = 0.0F;
			fs_299_[6] = 0.0F;
			fs_298_[4] = 0.0F;
			fs_297_[2] = 0.0F;
			fs[1] = 0.0F;
		}
		float[] fs = aFloatArray4285;
		float[] fs_301_ = aFloatArray4285;
		aFloatArray4285[11] = 0.0F;
		fs_301_[7] = 0.0F;
		fs[3] = 0.0F;
		aFloatArray4285[15] = 1.0F;
		aFloatArray4285[12] = f;
		aFloatArray4285[13] = f_291_;
		aFloatArray4285[14] = f_292_;
	}

	public float[] method5829(float[] fs) {
		float f = aFloatArray4285[3] + aFloatArray4285[2];
		float f_302_ = aFloatArray4285[7] + aFloatArray4285[6];
		float f_303_ = aFloatArray4285[11] + aFloatArray4285[10];
		double d = Math.sqrt((double) (f * f + f_302_ * f_302_ + f_303_ * f_303_));
		fs[0] = (float) ((double) f / d);
		fs[1] = (float) ((double) f_302_ / d);
		fs[2] = (float) ((double) f_303_ / d);
		fs[3] = (float) ((double) (aFloatArray4285[15] + aFloatArray4285[14]) / d);
		return fs;
	}

	public float[] method5830(float[] fs) {
		float f = aFloatArray4285[3] + aFloatArray4285[2];
		float f_304_ = aFloatArray4285[7] + aFloatArray4285[6];
		float f_305_ = aFloatArray4285[11] + aFloatArray4285[10];
		double d = Math.sqrt((double) (f * f + f_304_ * f_304_ + f_305_ * f_305_));
		fs[0] = (float) ((double) f / d);
		fs[1] = (float) ((double) f_304_ / d);
		fs[2] = (float) ((double) f_305_ / d);
		fs[3] = (float) ((double) (aFloatArray4285[15] + aFloatArray4285[14]) / d);
		return fs;
	}

	public void method5831(float f, float f_306_, float f_307_, float f_308_) {
		float f_309_ = (float) (Math.tan((double) (f_307_ / 2.0F)) * (double) f);
		float f_310_ = (float) (Math.tan((double) (f_308_ / 2.0F)) * (double) f);
		method5790(-f_309_, f_309_, -f_310_, f_310_, f, f_306_);
	}

	public void method5832() {
		float f = aFloatArray4285[0];
		float f_311_ = aFloatArray4285[4];
		float f_312_ = aFloatArray4285[8];
		float f_313_ = aFloatArray4285[12];
		float f_314_ = aFloatArray4285[1];
		float f_315_ = aFloatArray4285[5];
		float f_316_ = aFloatArray4285[9];
		float f_317_ = aFloatArray4285[13];
		float f_318_ = aFloatArray4285[2];
		float f_319_ = aFloatArray4285[6];
		float f_320_ = aFloatArray4285[10];
		float f_321_ = aFloatArray4285[14];
		float f_322_ = aFloatArray4285[3];
		float f_323_ = aFloatArray4285[7];
		float f_324_ = aFloatArray4285[11];
		float f_325_ = aFloatArray4285[15];
		aFloatArray4285[0] = f;
		aFloatArray4285[1] = f_311_;
		aFloatArray4285[2] = f_312_;
		aFloatArray4285[3] = f_313_;
		aFloatArray4285[4] = f_314_;
		aFloatArray4285[5] = f_315_;
		aFloatArray4285[6] = f_316_;
		aFloatArray4285[7] = f_317_;
		aFloatArray4285[8] = f_318_;
		aFloatArray4285[9] = f_319_;
		aFloatArray4285[10] = f_320_;
		aFloatArray4285[11] = f_321_;
		aFloatArray4285[12] = f_322_;
		aFloatArray4285[13] = f_323_;
		aFloatArray4285[14] = f_324_;
		aFloatArray4285[15] = f_325_;
	}

	public float[] method5833(float[] fs) {
		System.arraycopy(aFloatArray4285, 0, fs, 0, 16);
		return fs;
	}

	public float[] method5834(float[] fs) {
		System.arraycopy(aFloatArray4285, 0, fs, 0, 16);
		return fs;
	}

	public void method5835(Class288 class288_326_) {
		float f = (aFloatArray4285[0] * class288_326_.aFloatArray4285[0] + aFloatArray4285[1] * class288_326_.aFloatArray4285[4] + aFloatArray4285[2] * class288_326_.aFloatArray4285[8] + aFloatArray4285[3] * class288_326_.aFloatArray4285[12]);
		float f_327_ = (aFloatArray4285[0] * class288_326_.aFloatArray4285[1] + aFloatArray4285[1] * class288_326_.aFloatArray4285[5] + aFloatArray4285[2] * class288_326_.aFloatArray4285[9] + aFloatArray4285[3] * class288_326_.aFloatArray4285[13]);
		float f_328_ = (aFloatArray4285[0] * class288_326_.aFloatArray4285[2] + aFloatArray4285[1] * class288_326_.aFloatArray4285[6] + aFloatArray4285[2] * class288_326_.aFloatArray4285[10] + aFloatArray4285[3] * class288_326_.aFloatArray4285[14]);
		float f_329_ = (aFloatArray4285[0] * class288_326_.aFloatArray4285[3] + aFloatArray4285[1] * class288_326_.aFloatArray4285[7] + aFloatArray4285[2] * class288_326_.aFloatArray4285[11] + aFloatArray4285[3] * class288_326_.aFloatArray4285[15]);
		float f_330_ = (aFloatArray4285[4] * class288_326_.aFloatArray4285[0] + aFloatArray4285[5] * class288_326_.aFloatArray4285[4] + aFloatArray4285[6] * class288_326_.aFloatArray4285[8] + aFloatArray4285[7] * class288_326_.aFloatArray4285[12]);
		float f_331_ = (aFloatArray4285[4] * class288_326_.aFloatArray4285[1] + aFloatArray4285[5] * class288_326_.aFloatArray4285[5] + aFloatArray4285[6] * class288_326_.aFloatArray4285[9] + aFloatArray4285[7] * class288_326_.aFloatArray4285[13]);
		float f_332_ = (aFloatArray4285[4] * class288_326_.aFloatArray4285[2] + aFloatArray4285[5] * class288_326_.aFloatArray4285[6] + aFloatArray4285[6] * class288_326_.aFloatArray4285[10] + aFloatArray4285[7] * class288_326_.aFloatArray4285[14]);
		float f_333_ = (aFloatArray4285[4] * class288_326_.aFloatArray4285[3] + aFloatArray4285[5] * class288_326_.aFloatArray4285[7] + aFloatArray4285[6] * class288_326_.aFloatArray4285[11] + aFloatArray4285[7] * class288_326_.aFloatArray4285[15]);
		float f_334_ = (aFloatArray4285[8] * class288_326_.aFloatArray4285[0] + aFloatArray4285[9] * class288_326_.aFloatArray4285[4] + aFloatArray4285[10] * class288_326_.aFloatArray4285[8] + aFloatArray4285[11] * class288_326_.aFloatArray4285[12]);
		float f_335_ = (aFloatArray4285[8] * class288_326_.aFloatArray4285[1] + aFloatArray4285[9] * class288_326_.aFloatArray4285[5] + aFloatArray4285[10] * class288_326_.aFloatArray4285[9] + aFloatArray4285[11] * class288_326_.aFloatArray4285[13]);
		float f_336_ = (aFloatArray4285[8] * class288_326_.aFloatArray4285[2] + aFloatArray4285[9] * class288_326_.aFloatArray4285[6] + aFloatArray4285[10] * class288_326_.aFloatArray4285[10] + aFloatArray4285[11] * class288_326_.aFloatArray4285[14]);
		float f_337_ = (aFloatArray4285[8] * class288_326_.aFloatArray4285[3] + aFloatArray4285[9] * class288_326_.aFloatArray4285[7] + aFloatArray4285[10] * class288_326_.aFloatArray4285[11] + aFloatArray4285[11] * class288_326_.aFloatArray4285[15]);
		float f_338_ = (aFloatArray4285[12] * class288_326_.aFloatArray4285[0] + aFloatArray4285[13] * class288_326_.aFloatArray4285[4] + aFloatArray4285[14] * class288_326_.aFloatArray4285[8] + aFloatArray4285[15] * class288_326_.aFloatArray4285[12]);
		float f_339_ = (aFloatArray4285[12] * class288_326_.aFloatArray4285[1] + aFloatArray4285[13] * class288_326_.aFloatArray4285[5] + aFloatArray4285[14] * class288_326_.aFloatArray4285[9] + aFloatArray4285[15] * class288_326_.aFloatArray4285[13]);
		float f_340_ = (aFloatArray4285[12] * class288_326_.aFloatArray4285[2] + aFloatArray4285[13] * class288_326_.aFloatArray4285[6] + aFloatArray4285[14] * class288_326_.aFloatArray4285[10] + aFloatArray4285[15] * class288_326_.aFloatArray4285[14]);
		float f_341_ = (aFloatArray4285[12] * class288_326_.aFloatArray4285[3] + aFloatArray4285[13] * class288_326_.aFloatArray4285[7] + aFloatArray4285[14] * class288_326_.aFloatArray4285[11] + aFloatArray4285[15] * class288_326_.aFloatArray4285[15]);
		aFloatArray4285[0] = f;
		aFloatArray4285[1] = f_327_;
		aFloatArray4285[2] = f_328_;
		aFloatArray4285[3] = f_329_;
		aFloatArray4285[4] = f_330_;
		aFloatArray4285[5] = f_331_;
		aFloatArray4285[6] = f_332_;
		aFloatArray4285[7] = f_333_;
		aFloatArray4285[8] = f_334_;
		aFloatArray4285[9] = f_335_;
		aFloatArray4285[10] = f_336_;
		aFloatArray4285[11] = f_337_;
		aFloatArray4285[12] = f_338_;
		aFloatArray4285[13] = f_339_;
		aFloatArray4285[14] = f_340_;
		aFloatArray4285[15] = f_341_;
	}

	public float[] method5836(float[] fs) {
		float f = aFloatArray4285[3] - aFloatArray4285[1];
		float f_342_ = aFloatArray4285[7] - aFloatArray4285[5];
		float f_343_ = aFloatArray4285[11] - aFloatArray4285[9];
		double d = Math.sqrt((double) (f * f + f_342_ * f_342_ + f_343_ * f_343_));
		fs[0] = (float) ((double) f / d);
		fs[1] = (float) ((double) f_342_ / d);
		fs[2] = (float) ((double) f_343_ / d);
		fs[3] = (float) ((double) (aFloatArray4285[15] - aFloatArray4285[13]) / d);
		return fs;
	}

	public float[] method5837(float[] fs) {
		fs[0] = aFloatArray4285[0];
		fs[1] = aFloatArray4285[1];
		fs[2] = 0.0F;
		fs[3] = 0.0F;
		fs[4] = aFloatArray4285[4];
		fs[5] = aFloatArray4285[5];
		fs[6] = 0.0F;
		fs[7] = 0.0F;
		fs[8] = aFloatArray4285[12];
		fs[9] = aFloatArray4285[13];
		fs[10] = aFloatArray4285[14];
		fs[11] = 0.0F;
		fs[12] = 0.0F;
		fs[13] = 0.0F;
		fs[14] = 0.0F;
		fs[15] = 1.0F;
		return fs;
	}

	public float[] method5838(float[] fs) {
		System.arraycopy(aFloatArray4285, 0, fs, 0, 16);
		fs[3] = 0.0F;
		fs[7] = 0.0F;
		fs[11] = 0.0F;
		fs[12] = 0.0F;
		fs[13] = 0.0F;
		fs[14] = 0.0F;
		fs[15] = 1.0F;
		return fs;
	}

	public float[] method5839(float[] fs) {
		fs[0] = aFloatArray4285[0];
		fs[1] = aFloatArray4285[1];
		fs[2] = aFloatArray4285[2];
		fs[3] = aFloatArray4285[4];
		fs[4] = aFloatArray4285[5];
		fs[5] = aFloatArray4285[6];
		fs[6] = aFloatArray4285[8];
		fs[7] = aFloatArray4285[9];
		fs[8] = aFloatArray4285[10];
		return fs;
	}

	public float[] method5840(float[] fs) {
		System.arraycopy(aFloatArray4285, 0, fs, 0, 16);
		fs[3] = 0.0F;
		fs[7] = 0.0F;
		fs[11] = 0.0F;
		fs[12] = 0.0F;
		fs[13] = 0.0F;
		fs[14] = 0.0F;
		fs[15] = 1.0F;
		return fs;
	}

	public float[] method5841(float[] fs) {
		fs[0] = aFloatArray4285[0];
		fs[1] = aFloatArray4285[4];
		fs[2] = aFloatArray4285[8];
		fs[3] = aFloatArray4285[12];
		fs[4] = aFloatArray4285[1];
		fs[5] = aFloatArray4285[5];
		fs[6] = aFloatArray4285[9];
		fs[7] = aFloatArray4285[13];
		fs[8] = aFloatArray4285[2];
		fs[9] = aFloatArray4285[6];
		fs[10] = aFloatArray4285[10];
		fs[11] = aFloatArray4285[14];
		fs[12] = aFloatArray4285[3];
		fs[13] = aFloatArray4285[7];
		fs[14] = aFloatArray4285[11];
		fs[15] = aFloatArray4285[15];
		return fs;
	}

	public float[] method5842(float[] fs) {
		fs[0] = aFloatArray4285[0];
		fs[1] = aFloatArray4285[4];
		fs[2] = aFloatArray4285[8];
		fs[3] = aFloatArray4285[12];
		fs[4] = aFloatArray4285[1];
		fs[5] = aFloatArray4285[5];
		fs[6] = aFloatArray4285[9];
		fs[7] = aFloatArray4285[13];
		fs[8] = aFloatArray4285[2];
		fs[9] = aFloatArray4285[6];
		fs[10] = aFloatArray4285[10];
		fs[11] = aFloatArray4285[14];
		fs[12] = aFloatArray4285[3];
		fs[13] = aFloatArray4285[7];
		fs[14] = aFloatArray4285[11];
		fs[15] = aFloatArray4285[15];
		return fs;
	}

	float method5843() {
		return ((aFloatArray4285[0] * aFloatArray4285[5] * aFloatArray4285[10] * aFloatArray4285[15]) - (aFloatArray4285[0] * aFloatArray4285[5] * aFloatArray4285[11] * aFloatArray4285[14]) - (aFloatArray4285[0] * aFloatArray4285[6] * aFloatArray4285[9] * aFloatArray4285[15]) + (aFloatArray4285[0] * aFloatArray4285[6] * aFloatArray4285[11] * aFloatArray4285[13]) + (aFloatArray4285[0] * aFloatArray4285[7] * aFloatArray4285[9] * aFloatArray4285[14]) - (aFloatArray4285[0] * aFloatArray4285[7] * aFloatArray4285[10] * aFloatArray4285[13]) - (aFloatArray4285[1] * aFloatArray4285[4] * aFloatArray4285[10] * aFloatArray4285[15]) + (aFloatArray4285[1] * aFloatArray4285[4] * aFloatArray4285[11] * aFloatArray4285[14]) + (aFloatArray4285[1] * aFloatArray4285[6] * aFloatArray4285[8] * aFloatArray4285[15]) - (aFloatArray4285[1] * aFloatArray4285[6] * aFloatArray4285[11] * aFloatArray4285[12]) - (aFloatArray4285[1] * aFloatArray4285[7] * aFloatArray4285[8] * aFloatArray4285[14]) + (aFloatArray4285[1] * aFloatArray4285[7] * aFloatArray4285[10] * aFloatArray4285[12]) + (aFloatArray4285[2] * aFloatArray4285[4] * aFloatArray4285[9] * aFloatArray4285[15]) - (aFloatArray4285[2] * aFloatArray4285[4] * aFloatArray4285[11] * aFloatArray4285[13]) - (aFloatArray4285[2] * aFloatArray4285[5] * aFloatArray4285[8] * aFloatArray4285[15]) + (aFloatArray4285[2] * aFloatArray4285[5] * aFloatArray4285[11] * aFloatArray4285[12]) + (aFloatArray4285[2] * aFloatArray4285[7] * aFloatArray4285[8] * aFloatArray4285[13]) - (aFloatArray4285[2] * aFloatArray4285[7] * aFloatArray4285[9] * aFloatArray4285[12]) - (aFloatArray4285[3] * aFloatArray4285[4] * aFloatArray4285[9] * aFloatArray4285[14]) + (aFloatArray4285[3] * aFloatArray4285[4] * aFloatArray4285[10] * aFloatArray4285[13]) + (aFloatArray4285[3] * aFloatArray4285[5] * aFloatArray4285[8] * aFloatArray4285[14]) - (aFloatArray4285[3] * aFloatArray4285[5] * aFloatArray4285[10] * aFloatArray4285[12]) - (aFloatArray4285[3] * aFloatArray4285[6] * aFloatArray4285[8] * aFloatArray4285[13]) + (aFloatArray4285[3] * aFloatArray4285[6] * aFloatArray4285[9] * aFloatArray4285[12]));
	}

	public float[] method5844(float[] fs) {
		fs[0] = aFloatArray4285[0];
		fs[1] = aFloatArray4285[1];
		fs[2] = aFloatArray4285[4];
		fs[3] = aFloatArray4285[5];
		fs[4] = aFloatArray4285[8];
		fs[5] = aFloatArray4285[9];
		fs[6] = aFloatArray4285[12];
		fs[7] = aFloatArray4285[13];
		return fs;
	}

	public float[] method5845(float[] fs) {
		fs[0] = aFloatArray4285[0];
		fs[1] = aFloatArray4285[1];
		fs[2] = aFloatArray4285[4];
		fs[3] = aFloatArray4285[5];
		fs[4] = aFloatArray4285[8];
		fs[5] = aFloatArray4285[9];
		fs[6] = aFloatArray4285[12];
		fs[7] = aFloatArray4285[13];
		return fs;
	}

	public void method5846(Class346 class346) {
		aFloatArray4285[0] = ((Class346) class346).aFloat5412;
		aFloatArray4285[1] = ((Class346) class346).aFloat5416;
		aFloatArray4285[2] = ((Class346) class346).aFloat5413;
		aFloatArray4285[3] = 0.0F;
		aFloatArray4285[4] = ((Class346) class346).aFloat5420;
		aFloatArray4285[5] = ((Class346) class346).aFloat5415;
		aFloatArray4285[6] = ((Class346) class346).aFloat5414;
		aFloatArray4285[7] = 0.0F;
		aFloatArray4285[8] = ((Class346) class346).aFloat5417;
		aFloatArray4285[9] = ((Class346) class346).aFloat5418;
		aFloatArray4285[10] = ((Class346) class346).aFloat5419;
		aFloatArray4285[11] = 0.0F;
		aFloatArray4285[12] = ((Class346) class346).aFloat5411;
		aFloatArray4285[13] = ((Class346) class346).aFloat5421;
		aFloatArray4285[14] = ((Class346) class346).aFloat5422;
		aFloatArray4285[15] = 1.0F;
	}

	public float[] method5847(float[] fs) {
		fs[0] = aFloatArray4285[0];
		fs[1] = aFloatArray4285[4];
		fs[2] = aFloatArray4285[8];
		fs[3] = aFloatArray4285[12];
		fs[4] = aFloatArray4285[1];
		fs[5] = aFloatArray4285[5];
		fs[6] = aFloatArray4285[9];
		fs[7] = aFloatArray4285[13];
		return fs;
	}

	public float[] method5848(float[] fs) {
		fs[0] = aFloatArray4285[0];
		fs[1] = aFloatArray4285[1];
		fs[2] = 0.0F;
		fs[3] = 0.0F;
		fs[4] = aFloatArray4285[4];
		fs[5] = aFloatArray4285[5];
		fs[6] = 0.0F;
		fs[7] = 0.0F;
		fs[8] = aFloatArray4285[12];
		fs[9] = aFloatArray4285[13];
		fs[10] = aFloatArray4285[14];
		fs[11] = 0.0F;
		fs[12] = 0.0F;
		fs[13] = 0.0F;
		fs[14] = 0.0F;
		fs[15] = 1.0F;
		return fs;
	}

	public float[] method5849(float[] fs) {
		fs[0] = aFloatArray4285[0];
		fs[1] = aFloatArray4285[1];
		fs[2] = 0.0F;
		fs[3] = 0.0F;
		fs[4] = aFloatArray4285[4];
		fs[5] = aFloatArray4285[5];
		fs[6] = 0.0F;
		fs[7] = 0.0F;
		fs[8] = aFloatArray4285[12];
		fs[9] = aFloatArray4285[13];
		fs[10] = aFloatArray4285[14];
		fs[11] = 0.0F;
		fs[12] = 0.0F;
		fs[13] = 0.0F;
		fs[14] = 0.0F;
		fs[15] = 1.0F;
		return fs;
	}

	public void method5850(Class288 class288_344_) {
		System.arraycopy(class288_344_.aFloatArray4285, 0, aFloatArray4285, 0, 11);
		aFloatArray4285[3] = 0.0F;
		aFloatArray4285[7] = 0.0F;
		aFloatArray4285[11] = 0.0F;
		aFloatArray4285[12] = 0.0F;
		aFloatArray4285[13] = 0.0F;
		aFloatArray4285[14] = 0.0F;
		aFloatArray4285[15] = 1.0F;
	}

	public void method5851(int i, int i_345_, int i_346_, float f, float f_347_, float f_348_) {
		if (i != 0) {
			float f_349_ = Class340.aFloatArray5386[i & 0x3fff];
			float f_350_ = Class340.aFloatArray5387[i & 0x3fff];
			aFloatArray4285[0] = f_349_ * (float) i_345_;
			aFloatArray4285[5] = f_349_ * (float) i_346_;
			aFloatArray4285[1] = f_350_ * (float) i_345_;
			aFloatArray4285[4] = -f_350_ * (float) i_346_;
			aFloatArray4285[10] = 1.0F;
			float[] fs = aFloatArray4285;
			float[] fs_351_ = aFloatArray4285;
			float[] fs_352_ = aFloatArray4285;
			aFloatArray4285[9] = 0.0F;
			fs_352_[8] = 0.0F;
			fs_351_[6] = 0.0F;
			fs[2] = 0.0F;
		} else {
			aFloatArray4285[0] = (float) i_345_;
			aFloatArray4285[5] = (float) i_346_;
			aFloatArray4285[10] = 1.0F;
			float[] fs = aFloatArray4285;
			float[] fs_353_ = aFloatArray4285;
			float[] fs_354_ = aFloatArray4285;
			float[] fs_355_ = aFloatArray4285;
			float[] fs_356_ = aFloatArray4285;
			aFloatArray4285[9] = 0.0F;
			fs_356_[8] = 0.0F;
			fs_355_[6] = 0.0F;
			fs_354_[4] = 0.0F;
			fs_353_[2] = 0.0F;
			fs[1] = 0.0F;
		}
		float[] fs = aFloatArray4285;
		float[] fs_357_ = aFloatArray4285;
		aFloatArray4285[11] = 0.0F;
		fs_357_[7] = 0.0F;
		fs[3] = 0.0F;
		aFloatArray4285[15] = 1.0F;
		aFloatArray4285[12] = f;
		aFloatArray4285[13] = f_347_;
		aFloatArray4285[14] = f_348_;
	}

	public void method5852(int i, int i_358_, int i_359_, float f, float f_360_, float f_361_) {
		if (i != 0) {
			float f_362_ = Class340.aFloatArray5386[i & 0x3fff];
			float f_363_ = Class340.aFloatArray5387[i & 0x3fff];
			aFloatArray4285[0] = f_362_ * (float) i_358_;
			aFloatArray4285[5] = f_362_ * (float) i_359_;
			aFloatArray4285[1] = f_363_ * (float) i_358_;
			aFloatArray4285[4] = -f_363_ * (float) i_359_;
			aFloatArray4285[10] = 1.0F;
			float[] fs = aFloatArray4285;
			float[] fs_364_ = aFloatArray4285;
			float[] fs_365_ = aFloatArray4285;
			aFloatArray4285[9] = 0.0F;
			fs_365_[8] = 0.0F;
			fs_364_[6] = 0.0F;
			fs[2] = 0.0F;
		} else {
			aFloatArray4285[0] = (float) i_358_;
			aFloatArray4285[5] = (float) i_359_;
			aFloatArray4285[10] = 1.0F;
			float[] fs = aFloatArray4285;
			float[] fs_366_ = aFloatArray4285;
			float[] fs_367_ = aFloatArray4285;
			float[] fs_368_ = aFloatArray4285;
			float[] fs_369_ = aFloatArray4285;
			aFloatArray4285[9] = 0.0F;
			fs_369_[8] = 0.0F;
			fs_368_[6] = 0.0F;
			fs_367_[4] = 0.0F;
			fs_366_[2] = 0.0F;
			fs[1] = 0.0F;
		}
		float[] fs = aFloatArray4285;
		float[] fs_370_ = aFloatArray4285;
		aFloatArray4285[11] = 0.0F;
		fs_370_[7] = 0.0F;
		fs[3] = 0.0F;
		aFloatArray4285[15] = 1.0F;
		aFloatArray4285[12] = f;
		aFloatArray4285[13] = f_360_;
		aFloatArray4285[14] = f_361_;
	}

	public void method5853(float f, float f_371_, float f_372_, float[] fs) {
		fs[0] = (aFloatArray4285[0] * f + aFloatArray4285[4] * f_371_ + aFloatArray4285[8] * f_372_);
		fs[1] = (aFloatArray4285[1] * f + aFloatArray4285[5] * f_371_ + aFloatArray4285[9] * f_372_);
		fs[2] = (aFloatArray4285[2] * f + aFloatArray4285[6] * f_371_ + aFloatArray4285[10] * f_372_);
		if (fs.length > 3)
			fs[3] = (aFloatArray4285[3] * f + aFloatArray4285[7] * f_371_ + aFloatArray4285[11] * f_372_);
	}
}
