import java.util.Arrays;

public final class Class317 {

   public static Class317 aClass317_3999 = new Class317();
   public float[] aFloatArray4000 = new float[16];


   public float[] method5608(float[] var1) {
      float var2 = this.aFloatArray4000[3] - this.aFloatArray4000[2];
      float var3 = this.aFloatArray4000[7] - this.aFloatArray4000[6];
      float var4 = this.aFloatArray4000[11] - this.aFloatArray4000[10];
      double var5 = Math.sqrt((double)(var2 * var2 + var3 * var3 + var4 * var4));
      var1[0] = (float)((double)var2 / var5);
      var1[1] = (float)((double)var3 / var5);
      var1[2] = (float)((double)var4 / var5);
      var1[3] = (float)((double)(this.aFloatArray4000[15] - this.aFloatArray4000[14]) / var5);
      return var1;
   }

   public Class317(Class317 var1) {
      this.method5609(var1);
   }

   public Class317() {
      this.method5733();
   }

   public void method5609(Class317 var1) {
      System.arraycopy(var1.aFloatArray4000, 0, this.aFloatArray4000, 0, 16);
   }

   public void method5610(Class317 var1) {
      System.arraycopy(var1.aFloatArray4000, 0, this.aFloatArray4000, 0, 11);
      this.aFloatArray4000[3] = 0.0F;
      this.aFloatArray4000[7] = 0.0F;
      this.aFloatArray4000[11] = 0.0F;
      this.aFloatArray4000[12] = 0.0F;
      this.aFloatArray4000[13] = 0.0F;
      this.aFloatArray4000[14] = 0.0F;
      this.aFloatArray4000[15] = 1.0F;
   }

   public void method5611(Class317 var1, Class317 var2) {
      float var3 = var1.aFloatArray4000[0] * var2.aFloatArray4000[0] + var1.aFloatArray4000[1] * var2.aFloatArray4000[4] + var1.aFloatArray4000[2] * var2.aFloatArray4000[8] + var1.aFloatArray4000[3] * var2.aFloatArray4000[12];
      float var4 = var1.aFloatArray4000[0] * var2.aFloatArray4000[1] + var1.aFloatArray4000[1] * var2.aFloatArray4000[5] + var1.aFloatArray4000[2] * var2.aFloatArray4000[9] + var1.aFloatArray4000[3] * var2.aFloatArray4000[13];
      float var5 = var1.aFloatArray4000[0] * var2.aFloatArray4000[2] + var1.aFloatArray4000[1] * var2.aFloatArray4000[6] + var1.aFloatArray4000[2] * var2.aFloatArray4000[10] + var1.aFloatArray4000[3] * var2.aFloatArray4000[14];
      float var6 = var1.aFloatArray4000[0] * var2.aFloatArray4000[3] + var1.aFloatArray4000[1] * var2.aFloatArray4000[7] + var1.aFloatArray4000[2] * var2.aFloatArray4000[11] + var1.aFloatArray4000[3] * var2.aFloatArray4000[15];
      float var7 = var1.aFloatArray4000[4] * var2.aFloatArray4000[0] + var1.aFloatArray4000[5] * var2.aFloatArray4000[4] + var1.aFloatArray4000[6] * var2.aFloatArray4000[8] + var1.aFloatArray4000[7] * var2.aFloatArray4000[12];
      float var8 = var1.aFloatArray4000[4] * var2.aFloatArray4000[1] + var1.aFloatArray4000[5] * var2.aFloatArray4000[5] + var1.aFloatArray4000[6] * var2.aFloatArray4000[9] + var1.aFloatArray4000[7] * var2.aFloatArray4000[13];
      float var9 = var1.aFloatArray4000[4] * var2.aFloatArray4000[2] + var1.aFloatArray4000[5] * var2.aFloatArray4000[6] + var1.aFloatArray4000[6] * var2.aFloatArray4000[10] + var1.aFloatArray4000[7] * var2.aFloatArray4000[14];
      float var10 = var1.aFloatArray4000[4] * var2.aFloatArray4000[3] + var1.aFloatArray4000[5] * var2.aFloatArray4000[7] + var1.aFloatArray4000[6] * var2.aFloatArray4000[11] + var1.aFloatArray4000[7] * var2.aFloatArray4000[15];
      float var11 = var1.aFloatArray4000[8] * var2.aFloatArray4000[0] + var1.aFloatArray4000[9] * var2.aFloatArray4000[4] + var1.aFloatArray4000[10] * var2.aFloatArray4000[8] + var1.aFloatArray4000[11] * var2.aFloatArray4000[12];
      float var12 = var1.aFloatArray4000[8] * var2.aFloatArray4000[1] + var1.aFloatArray4000[9] * var2.aFloatArray4000[5] + var1.aFloatArray4000[10] * var2.aFloatArray4000[9] + var1.aFloatArray4000[11] * var2.aFloatArray4000[13];
      float var13 = var1.aFloatArray4000[8] * var2.aFloatArray4000[2] + var1.aFloatArray4000[9] * var2.aFloatArray4000[6] + var1.aFloatArray4000[10] * var2.aFloatArray4000[10] + var1.aFloatArray4000[11] * var2.aFloatArray4000[14];
      float var14 = var1.aFloatArray4000[8] * var2.aFloatArray4000[3] + var1.aFloatArray4000[9] * var2.aFloatArray4000[7] + var1.aFloatArray4000[10] * var2.aFloatArray4000[11] + var1.aFloatArray4000[11] * var2.aFloatArray4000[15];
      float var15 = var1.aFloatArray4000[12] * var2.aFloatArray4000[0] + var1.aFloatArray4000[13] * var2.aFloatArray4000[4] + var1.aFloatArray4000[14] * var2.aFloatArray4000[8] + var1.aFloatArray4000[15] * var2.aFloatArray4000[12];
      float var16 = var1.aFloatArray4000[12] * var2.aFloatArray4000[1] + var1.aFloatArray4000[13] * var2.aFloatArray4000[5] + var1.aFloatArray4000[14] * var2.aFloatArray4000[9] + var1.aFloatArray4000[15] * var2.aFloatArray4000[13];
      float var17 = var1.aFloatArray4000[12] * var2.aFloatArray4000[2] + var1.aFloatArray4000[13] * var2.aFloatArray4000[6] + var1.aFloatArray4000[14] * var2.aFloatArray4000[10] + var1.aFloatArray4000[15] * var2.aFloatArray4000[14];
      float var18 = var1.aFloatArray4000[12] * var2.aFloatArray4000[3] + var1.aFloatArray4000[13] * var2.aFloatArray4000[7] + var1.aFloatArray4000[14] * var2.aFloatArray4000[11] + var1.aFloatArray4000[15] * var2.aFloatArray4000[15];
      this.aFloatArray4000[0] = var3;
      this.aFloatArray4000[1] = var4;
      this.aFloatArray4000[2] = var5;
      this.aFloatArray4000[3] = var6;
      this.aFloatArray4000[4] = var7;
      this.aFloatArray4000[5] = var8;
      this.aFloatArray4000[6] = var9;
      this.aFloatArray4000[7] = var10;
      this.aFloatArray4000[8] = var11;
      this.aFloatArray4000[9] = var12;
      this.aFloatArray4000[10] = var13;
      this.aFloatArray4000[11] = var14;
      this.aFloatArray4000[12] = var15;
      this.aFloatArray4000[13] = var16;
      this.aFloatArray4000[14] = var17;
      this.aFloatArray4000[15] = var18;
   }

   public void method5612(Class317 var1) {
      float var2 = this.aFloatArray4000[0] * var1.aFloatArray4000[0] + this.aFloatArray4000[1] * var1.aFloatArray4000[4] + this.aFloatArray4000[2] * var1.aFloatArray4000[8] + this.aFloatArray4000[3] * var1.aFloatArray4000[12];
      float var3 = this.aFloatArray4000[0] * var1.aFloatArray4000[1] + this.aFloatArray4000[1] * var1.aFloatArray4000[5] + this.aFloatArray4000[2] * var1.aFloatArray4000[9] + this.aFloatArray4000[3] * var1.aFloatArray4000[13];
      float var4 = this.aFloatArray4000[0] * var1.aFloatArray4000[2] + this.aFloatArray4000[1] * var1.aFloatArray4000[6] + this.aFloatArray4000[2] * var1.aFloatArray4000[10] + this.aFloatArray4000[3] * var1.aFloatArray4000[14];
      float var5 = this.aFloatArray4000[0] * var1.aFloatArray4000[3] + this.aFloatArray4000[1] * var1.aFloatArray4000[7] + this.aFloatArray4000[2] * var1.aFloatArray4000[11] + this.aFloatArray4000[3] * var1.aFloatArray4000[15];
      float var6 = this.aFloatArray4000[4] * var1.aFloatArray4000[0] + this.aFloatArray4000[5] * var1.aFloatArray4000[4] + this.aFloatArray4000[6] * var1.aFloatArray4000[8] + this.aFloatArray4000[7] * var1.aFloatArray4000[12];
      float var7 = this.aFloatArray4000[4] * var1.aFloatArray4000[1] + this.aFloatArray4000[5] * var1.aFloatArray4000[5] + this.aFloatArray4000[6] * var1.aFloatArray4000[9] + this.aFloatArray4000[7] * var1.aFloatArray4000[13];
      float var8 = this.aFloatArray4000[4] * var1.aFloatArray4000[2] + this.aFloatArray4000[5] * var1.aFloatArray4000[6] + this.aFloatArray4000[6] * var1.aFloatArray4000[10] + this.aFloatArray4000[7] * var1.aFloatArray4000[14];
      float var9 = this.aFloatArray4000[4] * var1.aFloatArray4000[3] + this.aFloatArray4000[5] * var1.aFloatArray4000[7] + this.aFloatArray4000[6] * var1.aFloatArray4000[11] + this.aFloatArray4000[7] * var1.aFloatArray4000[15];
      float var10 = this.aFloatArray4000[8] * var1.aFloatArray4000[0] + this.aFloatArray4000[9] * var1.aFloatArray4000[4] + this.aFloatArray4000[10] * var1.aFloatArray4000[8] + this.aFloatArray4000[11] * var1.aFloatArray4000[12];
      float var11 = this.aFloatArray4000[8] * var1.aFloatArray4000[1] + this.aFloatArray4000[9] * var1.aFloatArray4000[5] + this.aFloatArray4000[10] * var1.aFloatArray4000[9] + this.aFloatArray4000[11] * var1.aFloatArray4000[13];
      float var12 = this.aFloatArray4000[8] * var1.aFloatArray4000[2] + this.aFloatArray4000[9] * var1.aFloatArray4000[6] + this.aFloatArray4000[10] * var1.aFloatArray4000[10] + this.aFloatArray4000[11] * var1.aFloatArray4000[14];
      float var13 = this.aFloatArray4000[8] * var1.aFloatArray4000[3] + this.aFloatArray4000[9] * var1.aFloatArray4000[7] + this.aFloatArray4000[10] * var1.aFloatArray4000[11] + this.aFloatArray4000[11] * var1.aFloatArray4000[15];
      float var14 = this.aFloatArray4000[12] * var1.aFloatArray4000[0] + this.aFloatArray4000[13] * var1.aFloatArray4000[4] + this.aFloatArray4000[14] * var1.aFloatArray4000[8] + this.aFloatArray4000[15] * var1.aFloatArray4000[12];
      float var15 = this.aFloatArray4000[12] * var1.aFloatArray4000[1] + this.aFloatArray4000[13] * var1.aFloatArray4000[5] + this.aFloatArray4000[14] * var1.aFloatArray4000[9] + this.aFloatArray4000[15] * var1.aFloatArray4000[13];
      float var16 = this.aFloatArray4000[12] * var1.aFloatArray4000[2] + this.aFloatArray4000[13] * var1.aFloatArray4000[6] + this.aFloatArray4000[14] * var1.aFloatArray4000[10] + this.aFloatArray4000[15] * var1.aFloatArray4000[14];
      float var17 = this.aFloatArray4000[12] * var1.aFloatArray4000[3] + this.aFloatArray4000[13] * var1.aFloatArray4000[7] + this.aFloatArray4000[14] * var1.aFloatArray4000[11] + this.aFloatArray4000[15] * var1.aFloatArray4000[15];
      this.aFloatArray4000[0] = var2;
      this.aFloatArray4000[1] = var3;
      this.aFloatArray4000[2] = var4;
      this.aFloatArray4000[3] = var5;
      this.aFloatArray4000[4] = var6;
      this.aFloatArray4000[5] = var7;
      this.aFloatArray4000[6] = var8;
      this.aFloatArray4000[7] = var9;
      this.aFloatArray4000[8] = var10;
      this.aFloatArray4000[9] = var11;
      this.aFloatArray4000[10] = var12;
      this.aFloatArray4000[11] = var13;
      this.aFloatArray4000[12] = var14;
      this.aFloatArray4000[13] = var15;
      this.aFloatArray4000[14] = var16;
      this.aFloatArray4000[15] = var17;
   }

   public void method5613(Class328 var1) {
      this.aFloatArray4000[0] = var1.aFloat4066;
      this.aFloatArray4000[1] = var1.aFloat4070;
      this.aFloatArray4000[2] = var1.aFloat4068;
      this.aFloatArray4000[3] = 0.0F;
      this.aFloatArray4000[4] = var1.aFloat4069;
      this.aFloatArray4000[5] = var1.aFloat4065;
      this.aFloatArray4000[6] = var1.aFloat4071;
      this.aFloatArray4000[7] = 0.0F;
      this.aFloatArray4000[8] = var1.aFloat4072;
      this.aFloatArray4000[9] = var1.aFloat4076;
      this.aFloatArray4000[10] = var1.aFloat4073;
      this.aFloatArray4000[11] = 0.0F;
      this.aFloatArray4000[12] = var1.aFloat4075;
      this.aFloatArray4000[13] = var1.aFloat4077;
      this.aFloatArray4000[14] = var1.aFloat4067;
      this.aFloatArray4000[15] = 1.0F;
   }

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

   public void method5615(float var1, float var2, float var3, float[] var4) {
      var4[0] = this.aFloatArray4000[0] * var1 + this.aFloatArray4000[4] * var2 + this.aFloatArray4000[8] * var3;
      var4[1] = this.aFloatArray4000[1] * var1 + this.aFloatArray4000[5] * var2 + this.aFloatArray4000[9] * var3;
      var4[2] = this.aFloatArray4000[2] * var1 + this.aFloatArray4000[6] * var2 + this.aFloatArray4000[10] * var3;
      if(var4.length > 3) {
         var4[3] = this.aFloatArray4000[3] * var1 + this.aFloatArray4000[7] * var2 + this.aFloatArray4000[11] * var3;
      }

   }

   public void method5616(float var1, float var2, float var3, float var4) {
      this.aFloatArray4000[0] = var1;
      this.aFloatArray4000[1] = 0.0F;
      this.aFloatArray4000[2] = 0.0F;
      this.aFloatArray4000[3] = 0.0F;
      this.aFloatArray4000[4] = 0.0F;
      this.aFloatArray4000[5] = var2;
      this.aFloatArray4000[6] = 0.0F;
      this.aFloatArray4000[7] = 0.0F;
      this.aFloatArray4000[8] = 0.0F;
      this.aFloatArray4000[9] = 0.0F;
      this.aFloatArray4000[10] = var3;
      this.aFloatArray4000[11] = 0.0F;
      this.aFloatArray4000[12] = 0.0F;
      this.aFloatArray4000[13] = 0.0F;
      this.aFloatArray4000[14] = 0.0F;
      this.aFloatArray4000[15] = var4;
   }

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

   public void method5618(float var1, float var2, float var3, float[] var4) {
      var4[0] = this.aFloatArray4000[0] * var1 + this.aFloatArray4000[4] * var2 + this.aFloatArray4000[8] * var3 + this.aFloatArray4000[12];
      var4[1] = this.aFloatArray4000[1] * var1 + this.aFloatArray4000[5] * var2 + this.aFloatArray4000[9] * var3 + this.aFloatArray4000[13];
      var4[2] = this.aFloatArray4000[2] * var1 + this.aFloatArray4000[6] * var2 + this.aFloatArray4000[10] * var3 + this.aFloatArray4000[14];
      if(var4.length > 3) {
         var4[3] = this.aFloatArray4000[3] * var1 + this.aFloatArray4000[7] * var2 + this.aFloatArray4000[11] * var3 + this.aFloatArray4000[15];
      }

   }

   public void method5619(float[] var1) {
      float var2 = var1[0];
      float var3 = var1[1];
      float var4 = var1[2];
      var1[0] = this.aFloatArray4000[0] * var2 + this.aFloatArray4000[4] * var3 + this.aFloatArray4000[8] * var4 + this.aFloatArray4000[12];
      var1[1] = this.aFloatArray4000[1] * var2 + this.aFloatArray4000[5] * var3 + this.aFloatArray4000[9] * var4 + this.aFloatArray4000[13];
      var1[2] = this.aFloatArray4000[2] * var2 + this.aFloatArray4000[6] * var3 + this.aFloatArray4000[10] * var4 + this.aFloatArray4000[14];
   }

   public float[] method5620(float[] var1) {
      float var2 = this.aFloatArray4000[3] + this.aFloatArray4000[1];
      float var3 = this.aFloatArray4000[7] + this.aFloatArray4000[5];
      float var4 = this.aFloatArray4000[11] + this.aFloatArray4000[9];
      double var5 = Math.sqrt((double)(var2 * var2 + var3 * var3 + var4 * var4));
      var1[0] = (float)((double)var2 / var5);
      var1[1] = (float)((double)var3 / var5);
      var1[2] = (float)((double)var4 / var5);
      var1[3] = (float)((double)(this.aFloatArray4000[15] + this.aFloatArray4000[13]) / var5);
      return var1;
   }

   public float method5621() {
      return -(this.aFloatArray4000[15] + this.aFloatArray4000[14]) / (this.aFloatArray4000[11] + this.aFloatArray4000[10]);
   }

   public void method5622(float var1, float var2, float var3, float var4) {
      float var5 = (float)(Math.tan((double)(var3 / 2.0F)) * (double)var1);
      float var6 = (float)(Math.tan((double)(var4 / 2.0F)) * (double)var1);
      this.method5624(-var5, var5, -var6, var6, var1, var2);
   }

   public void method5623(float var1, float var2, float var3) {
      this.method5703(-10000.0F / var3, 10000.0F / var3, -10000.0F / var3, 10000.0F / var3, var1, var2);
   }

   void method5624(float var1, float var2, float var3, float var4, float var5, float var6) {
      this.aFloatArray4000[0] = 2.0F * var5 / (var2 - var1);
      this.aFloatArray4000[1] = 0.0F;
      this.aFloatArray4000[2] = 0.0F;
      this.aFloatArray4000[3] = 0.0F;
      this.aFloatArray4000[4] = 0.0F;
      this.aFloatArray4000[5] = 2.0F * var5 / (var4 - var3);
      this.aFloatArray4000[6] = 0.0F;
      this.aFloatArray4000[7] = 0.0F;
      this.aFloatArray4000[8] = (var2 + var1) / (var2 - var1);
      this.aFloatArray4000[9] = (var4 + var3) / (var4 - var3);
      this.aFloatArray4000[10] = (var6 + var5) / (var6 - var5);
      this.aFloatArray4000[11] = 1.0F;
      this.aFloatArray4000[12] = 0.0F;
      this.aFloatArray4000[13] = 0.0F;
      this.aFloatArray4000[14] = -(2.0F * var6 * var5) / (var6 - var5);
      this.aFloatArray4000[15] = 0.0F;
   }

   public void method5625(float var1, float var2, float var3, float var4, float var5, float var6, float var7, float var8) {
      this.aFloatArray4000[0] = var3 * 2.0F / var7;
      this.aFloatArray4000[1] = 0.0F;
      this.aFloatArray4000[2] = 0.0F;
      this.aFloatArray4000[3] = 0.0F;
      this.aFloatArray4000[4] = 0.0F;
      this.aFloatArray4000[5] = var4 * 2.0F / var8;
      this.aFloatArray4000[6] = 0.0F;
      this.aFloatArray4000[7] = 0.0F;
      this.aFloatArray4000[8] = 2.0F * var1 / var7 - 1.0F;
      this.aFloatArray4000[9] = 2.0F * var2 / var8 - 1.0F;
      this.aFloatArray4000[10] = (var6 + var5) / (var6 - var5);
      this.aFloatArray4000[11] = 1.0F;
      this.aFloatArray4000[12] = 0.0F;
      this.aFloatArray4000[13] = 0.0F;
      this.aFloatArray4000[14] = 2.0F * var6 * var5 / (var5 - var6);
      this.aFloatArray4000[15] = 0.0F;
   }

   public void method5626(float var1, float var2, float var3, float var4, float var5, float var6, float var7, float var8, float var9) {
      this.method5703(-(var1 * var9) / var3, var9 * (var7 - var1) / var3, -(var2 * var9) / var4, var9 * (var8 - var2) / var4, var5, var6);
   }

   public void method5627() {
      float var1 = this.aFloatArray4000[0];
      float var2 = this.aFloatArray4000[4];
      float var3 = this.aFloatArray4000[8];
      float var4 = this.aFloatArray4000[12];
      float var5 = this.aFloatArray4000[1];
      float var6 = this.aFloatArray4000[5];
      float var7 = this.aFloatArray4000[9];
      float var8 = this.aFloatArray4000[13];
      float var9 = this.aFloatArray4000[2];
      float var10 = this.aFloatArray4000[6];
      float var11 = this.aFloatArray4000[10];
      float var12 = this.aFloatArray4000[14];
      float var13 = this.aFloatArray4000[3];
      float var14 = this.aFloatArray4000[7];
      float var15 = this.aFloatArray4000[11];
      float var16 = this.aFloatArray4000[15];
      this.aFloatArray4000[0] = var1;
      this.aFloatArray4000[1] = var2;
      this.aFloatArray4000[2] = var3;
      this.aFloatArray4000[3] = var4;
      this.aFloatArray4000[4] = var5;
      this.aFloatArray4000[5] = var6;
      this.aFloatArray4000[6] = var7;
      this.aFloatArray4000[7] = var8;
      this.aFloatArray4000[8] = var9;
      this.aFloatArray4000[9] = var10;
      this.aFloatArray4000[10] = var11;
      this.aFloatArray4000[11] = var12;
      this.aFloatArray4000[12] = var13;
      this.aFloatArray4000[13] = var14;
      this.aFloatArray4000[14] = var15;
      this.aFloatArray4000[15] = var16;
   }

   public float method5628() {
      return (this.aFloatArray4000[14] - this.aFloatArray4000[15]) / (this.aFloatArray4000[11] - this.aFloatArray4000[10]);
   }

   public float[] method5629(float[] var1) {
      float var2 = this.aFloatArray4000[3] + this.aFloatArray4000[0];
      float var3 = this.aFloatArray4000[7] + this.aFloatArray4000[4];
      float var4 = this.aFloatArray4000[11] + this.aFloatArray4000[8];
      double var5 = Math.sqrt((double)(var2 * var2 + var3 * var3 + var4 * var4));
      var1[0] = (float)((double)var2 / var5);
      var1[1] = (float)((double)var3 / var5);
      var1[2] = (float)((double)var4 / var5);
      var1[3] = (float)((double)(this.aFloatArray4000[15] + this.aFloatArray4000[12]) / var5);
      return var1;
   }

   public float[] method5630(float[] var1) {
      float var2 = this.aFloatArray4000[3] - this.aFloatArray4000[0];
      float var3 = this.aFloatArray4000[7] - this.aFloatArray4000[4];
      float var4 = this.aFloatArray4000[11] - this.aFloatArray4000[8];
      double var5 = Math.sqrt((double)(var2 * var2 + var3 * var3 + var4 * var4));
      var1[0] = (float)((double)var2 / var5);
      var1[1] = (float)((double)var3 / var5);
      var1[2] = (float)((double)var4 / var5);
      var1[3] = (float)((double)(this.aFloatArray4000[15] - this.aFloatArray4000[12]) / var5);
      return var1;
   }

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

   public float[] method5632(float[] var1) {
      float var2 = this.aFloatArray4000[3] - this.aFloatArray4000[1];
      float var3 = this.aFloatArray4000[7] - this.aFloatArray4000[5];
      float var4 = this.aFloatArray4000[11] - this.aFloatArray4000[9];
      double var5 = Math.sqrt((double)(var2 * var2 + var3 * var3 + var4 * var4));
      var1[0] = (float)((double)var2 / var5);
      var1[1] = (float)((double)var3 / var5);
      var1[2] = (float)((double)var4 / var5);
      var1[3] = (float)((double)(this.aFloatArray4000[15] - this.aFloatArray4000[13]) / var5);
      return var1;
   }

   public float[] method5633(float[] var1) {
      float var2 = this.aFloatArray4000[3] + this.aFloatArray4000[2];
      float var3 = this.aFloatArray4000[7] + this.aFloatArray4000[6];
      float var4 = this.aFloatArray4000[11] + this.aFloatArray4000[10];
      double var5 = Math.sqrt((double)(var2 * var2 + var3 * var3 + var4 * var4));
      var1[0] = (float)((double)var2 / var5);
      var1[1] = (float)((double)var3 / var5);
      var1[2] = (float)((double)var4 / var5);
      var1[3] = (float)((double)(this.aFloatArray4000[15] + this.aFloatArray4000[14]) / var5);
      return var1;
   }

   void method5634(float var1, float var2, float var3, float var4, float var5, float var6) {
      this.aFloatArray4000[0] = 2.0F * var5 / (var2 - var1);
      this.aFloatArray4000[1] = 0.0F;
      this.aFloatArray4000[2] = 0.0F;
      this.aFloatArray4000[3] = 0.0F;
      this.aFloatArray4000[4] = 0.0F;
      this.aFloatArray4000[5] = 2.0F * var5 / (var4 - var3);
      this.aFloatArray4000[6] = 0.0F;
      this.aFloatArray4000[7] = 0.0F;
      this.aFloatArray4000[8] = (var2 + var1) / (var2 - var1);
      this.aFloatArray4000[9] = (var4 + var3) / (var4 - var3);
      this.aFloatArray4000[10] = (var6 + var5) / (var6 - var5);
      this.aFloatArray4000[11] = 1.0F;
      this.aFloatArray4000[12] = 0.0F;
      this.aFloatArray4000[13] = 0.0F;
      this.aFloatArray4000[14] = -(2.0F * var6 * var5) / (var6 - var5);
      this.aFloatArray4000[15] = 0.0F;
   }

   public void method5635(float var1, float var2, float var3, float var4, float var5, float var6, float var7, float var8, float var9) {
      this.method5703(-(var1 * var9) / var3, var9 * (var7 - var1) / var3, -(var2 * var9) / var4, var9 * (var8 - var2) / var4, var5, var6);
   }

   public float[] method5636(float[] var1) {
      System.arraycopy(this.aFloatArray4000, 0, var1, 0, 16);
      return var1;
   }

   public float[] method5637(float[] var1) {
      System.arraycopy(this.aFloatArray4000, 0, var1, 0, 16);
      var1[3] = 0.0F;
      var1[7] = 0.0F;
      var1[11] = 0.0F;
      var1[12] = 0.0F;
      var1[13] = 0.0F;
      var1[14] = 0.0F;
      var1[15] = 1.0F;
      return var1;
   }

   public void method5638(Class328 var1) {
      this.aFloatArray4000[0] = var1.aFloat4066;
      this.aFloatArray4000[1] = var1.aFloat4070;
      this.aFloatArray4000[2] = var1.aFloat4068;
      this.aFloatArray4000[3] = 0.0F;
      this.aFloatArray4000[4] = var1.aFloat4069;
      this.aFloatArray4000[5] = var1.aFloat4065;
      this.aFloatArray4000[6] = var1.aFloat4071;
      this.aFloatArray4000[7] = 0.0F;
      this.aFloatArray4000[8] = var1.aFloat4072;
      this.aFloatArray4000[9] = var1.aFloat4076;
      this.aFloatArray4000[10] = var1.aFloat4073;
      this.aFloatArray4000[11] = 0.0F;
      this.aFloatArray4000[12] = var1.aFloat4075;
      this.aFloatArray4000[13] = var1.aFloat4077;
      this.aFloatArray4000[14] = var1.aFloat4067;
      this.aFloatArray4000[15] = 1.0F;
   }

   public float[] method5639(float[] var1) {
      var1[0] = this.aFloatArray4000[0];
      var1[1] = this.aFloatArray4000[4];
      var1[2] = this.aFloatArray4000[8];
      var1[3] = this.aFloatArray4000[12];
      var1[4] = this.aFloatArray4000[1];
      var1[5] = this.aFloatArray4000[5];
      var1[6] = this.aFloatArray4000[9];
      var1[7] = this.aFloatArray4000[13];
      var1[8] = this.aFloatArray4000[2];
      var1[9] = this.aFloatArray4000[6];
      var1[10] = this.aFloatArray4000[10];
      var1[11] = this.aFloatArray4000[14];
      var1[12] = this.aFloatArray4000[3];
      var1[13] = this.aFloatArray4000[7];
      var1[14] = this.aFloatArray4000[11];
      var1[15] = this.aFloatArray4000[15];
      return var1;
   }

   public float[] method5640(float[] var1) {
      var1[0] = this.aFloatArray4000[0];
      var1[1] = this.aFloatArray4000[1];
      var1[2] = this.aFloatArray4000[4];
      var1[3] = this.aFloatArray4000[5];
      var1[4] = this.aFloatArray4000[8];
      var1[5] = this.aFloatArray4000[9];
      var1[6] = this.aFloatArray4000[12];
      var1[7] = this.aFloatArray4000[13];
      return var1;
   }

   public float[] method5641(float[] var1) {
      var1[0] = this.aFloatArray4000[0];
      var1[1] = this.aFloatArray4000[4];
      var1[2] = this.aFloatArray4000[8];
      var1[3] = this.aFloatArray4000[12];
      var1[4] = this.aFloatArray4000[1];
      var1[5] = this.aFloatArray4000[5];
      var1[6] = this.aFloatArray4000[9];
      var1[7] = this.aFloatArray4000[13];
      return var1;
   }

   public float[] method5642(float[] var1) {
      var1[0] = this.aFloatArray4000[0];
      var1[1] = this.aFloatArray4000[1];
      var1[2] = 0.0F;
      var1[3] = 0.0F;
      var1[4] = this.aFloatArray4000[4];
      var1[5] = this.aFloatArray4000[5];
      var1[6] = 0.0F;
      var1[7] = 0.0F;
      var1[8] = this.aFloatArray4000[12];
      var1[9] = this.aFloatArray4000[13];
      var1[10] = this.aFloatArray4000[14];
      var1[11] = 0.0F;
      var1[12] = 0.0F;
      var1[13] = 0.0F;
      var1[14] = 0.0F;
      var1[15] = 1.0F;
      return var1;
   }

   public void method5643(int var1, int var2, int var3, float var4, float var5, float var6) {
      float[] var9;
      float[] var10;
      float[] var11;
      float[] var12;
      float[] var13;
      if(var1 != 0) {
         float var7 = Class322.aFloatArray4023[var1 & 16383];
         float var8 = Class322.aFloatArray4024[var1 & 16383];
         this.aFloatArray4000[0] = var7 * (float)var2;
         this.aFloatArray4000[5] = var7 * (float)var3;
         this.aFloatArray4000[1] = var8 * (float)var2;
         this.aFloatArray4000[4] = -var8 * (float)var3;
         this.aFloatArray4000[10] = 1.0F;
         var9 = this.aFloatArray4000;
         var10 = this.aFloatArray4000;
         var11 = this.aFloatArray4000;
         this.aFloatArray4000[9] = 0.0F;
         var11[8] = 0.0F;
         var10[6] = 0.0F;
         var9[2] = 0.0F;
      } else {
         this.aFloatArray4000[0] = (float)var2;
         this.aFloatArray4000[5] = (float)var3;
         this.aFloatArray4000[10] = 1.0F;
         var12 = this.aFloatArray4000;
         var13 = this.aFloatArray4000;
         var9 = this.aFloatArray4000;
         var10 = this.aFloatArray4000;
         var11 = this.aFloatArray4000;
         this.aFloatArray4000[9] = 0.0F;
         var11[8] = 0.0F;
         var10[6] = 0.0F;
         var9[4] = 0.0F;
         var13[2] = 0.0F;
         var12[1] = 0.0F;
      }

      var12 = this.aFloatArray4000;
      var13 = this.aFloatArray4000;
      this.aFloatArray4000[11] = 0.0F;
      var13[7] = 0.0F;
      var12[3] = 0.0F;
      this.aFloatArray4000[15] = 1.0F;
      this.aFloatArray4000[12] = var4;
      this.aFloatArray4000[13] = var5;
      this.aFloatArray4000[14] = var6;
   }

   public String toString() {
      StringBuilder var1 = new StringBuilder();

      for(int var2 = 0; var2 < 4; ++var2) {
         for(int var3 = 0; var3 < 4; ++var3) {
            if(var3 > 0) {
               var1.append("\t");
            }

            var1.append(this.aFloatArray4000[var2 * 4 + var3]);
         }

         var1.append("\n");
      }

      return var1.toString();
   }

   public int hashCode() {
      byte var1 = 1;
      int var2 = 31 * var1 + Arrays.hashCode(this.aFloatArray4000);
      return var2;
   }

   public void method5644() {
      float var1 = 1.0F / this.method5614();
      float var2 = (this.aFloatArray4000[5] * this.aFloatArray4000[10] * this.aFloatArray4000[15] - this.aFloatArray4000[5] * this.aFloatArray4000[11] * this.aFloatArray4000[14] - this.aFloatArray4000[6] * this.aFloatArray4000[9] * this.aFloatArray4000[15] + this.aFloatArray4000[6] * this.aFloatArray4000[11] * this.aFloatArray4000[13] + this.aFloatArray4000[7] * this.aFloatArray4000[9] * this.aFloatArray4000[14] - this.aFloatArray4000[7] * this.aFloatArray4000[10] * this.aFloatArray4000[13]) * var1;
      float var3 = (-this.aFloatArray4000[1] * this.aFloatArray4000[10] * this.aFloatArray4000[15] + this.aFloatArray4000[1] * this.aFloatArray4000[11] * this.aFloatArray4000[14] + this.aFloatArray4000[2] * this.aFloatArray4000[9] * this.aFloatArray4000[15] - this.aFloatArray4000[2] * this.aFloatArray4000[11] * this.aFloatArray4000[13] - this.aFloatArray4000[3] * this.aFloatArray4000[9] * this.aFloatArray4000[14] + this.aFloatArray4000[3] * this.aFloatArray4000[10] * this.aFloatArray4000[13]) * var1;
      float var4 = (this.aFloatArray4000[1] * this.aFloatArray4000[6] * this.aFloatArray4000[15] - this.aFloatArray4000[1] * this.aFloatArray4000[7] * this.aFloatArray4000[14] - this.aFloatArray4000[2] * this.aFloatArray4000[5] * this.aFloatArray4000[15] + this.aFloatArray4000[2] * this.aFloatArray4000[7] * this.aFloatArray4000[13] + this.aFloatArray4000[3] * this.aFloatArray4000[5] * this.aFloatArray4000[14] - this.aFloatArray4000[3] * this.aFloatArray4000[6] * this.aFloatArray4000[13]) * var1;
      float var5 = (-this.aFloatArray4000[1] * this.aFloatArray4000[6] * this.aFloatArray4000[11] + this.aFloatArray4000[1] * this.aFloatArray4000[7] * this.aFloatArray4000[10] + this.aFloatArray4000[2] * this.aFloatArray4000[5] * this.aFloatArray4000[11] - this.aFloatArray4000[2] * this.aFloatArray4000[7] * this.aFloatArray4000[9] - this.aFloatArray4000[3] * this.aFloatArray4000[5] * this.aFloatArray4000[10] + this.aFloatArray4000[3] * this.aFloatArray4000[6] * this.aFloatArray4000[9]) * var1;
      float var6 = (-this.aFloatArray4000[4] * this.aFloatArray4000[10] * this.aFloatArray4000[15] + this.aFloatArray4000[4] * this.aFloatArray4000[11] * this.aFloatArray4000[14] + this.aFloatArray4000[6] * this.aFloatArray4000[8] * this.aFloatArray4000[15] - this.aFloatArray4000[6] * this.aFloatArray4000[11] * this.aFloatArray4000[12] - this.aFloatArray4000[7] * this.aFloatArray4000[8] * this.aFloatArray4000[14] + this.aFloatArray4000[7] * this.aFloatArray4000[10] * this.aFloatArray4000[12]) * var1;
      float var7 = (this.aFloatArray4000[0] * this.aFloatArray4000[10] * this.aFloatArray4000[15] - this.aFloatArray4000[0] * this.aFloatArray4000[11] * this.aFloatArray4000[14] - this.aFloatArray4000[2] * this.aFloatArray4000[8] * this.aFloatArray4000[15] + this.aFloatArray4000[2] * this.aFloatArray4000[11] * this.aFloatArray4000[12] + this.aFloatArray4000[3] * this.aFloatArray4000[8] * this.aFloatArray4000[14] - this.aFloatArray4000[3] * this.aFloatArray4000[10] * this.aFloatArray4000[12]) * var1;
      float var8 = (-this.aFloatArray4000[0] * this.aFloatArray4000[6] * this.aFloatArray4000[15] + this.aFloatArray4000[0] * this.aFloatArray4000[7] * this.aFloatArray4000[14] + this.aFloatArray4000[2] * this.aFloatArray4000[4] * this.aFloatArray4000[15] - this.aFloatArray4000[2] * this.aFloatArray4000[7] * this.aFloatArray4000[12] - this.aFloatArray4000[3] * this.aFloatArray4000[4] * this.aFloatArray4000[14] + this.aFloatArray4000[3] * this.aFloatArray4000[6] * this.aFloatArray4000[12]) * var1;
      float var9 = (this.aFloatArray4000[0] * this.aFloatArray4000[6] * this.aFloatArray4000[11] - this.aFloatArray4000[0] * this.aFloatArray4000[7] * this.aFloatArray4000[10] - this.aFloatArray4000[2] * this.aFloatArray4000[4] * this.aFloatArray4000[11] + this.aFloatArray4000[2] * this.aFloatArray4000[7] * this.aFloatArray4000[8] + this.aFloatArray4000[3] * this.aFloatArray4000[4] * this.aFloatArray4000[10] - this.aFloatArray4000[3] * this.aFloatArray4000[6] * this.aFloatArray4000[8]) * var1;
      float var10 = (this.aFloatArray4000[4] * this.aFloatArray4000[9] * this.aFloatArray4000[15] - this.aFloatArray4000[4] * this.aFloatArray4000[11] * this.aFloatArray4000[13] - this.aFloatArray4000[5] * this.aFloatArray4000[8] * this.aFloatArray4000[15] + this.aFloatArray4000[5] * this.aFloatArray4000[11] * this.aFloatArray4000[12] + this.aFloatArray4000[7] * this.aFloatArray4000[8] * this.aFloatArray4000[13] - this.aFloatArray4000[7] * this.aFloatArray4000[9] * this.aFloatArray4000[12]) * var1;
      float var11 = (-this.aFloatArray4000[0] * this.aFloatArray4000[9] * this.aFloatArray4000[15] + this.aFloatArray4000[0] * this.aFloatArray4000[11] * this.aFloatArray4000[13] + this.aFloatArray4000[1] * this.aFloatArray4000[8] * this.aFloatArray4000[15] - this.aFloatArray4000[1] * this.aFloatArray4000[11] * this.aFloatArray4000[12] - this.aFloatArray4000[3] * this.aFloatArray4000[8] * this.aFloatArray4000[13] + this.aFloatArray4000[3] * this.aFloatArray4000[9] * this.aFloatArray4000[12]) * var1;
      float var12 = (this.aFloatArray4000[0] * this.aFloatArray4000[5] * this.aFloatArray4000[15] - this.aFloatArray4000[0] * this.aFloatArray4000[7] * this.aFloatArray4000[13] - this.aFloatArray4000[1] * this.aFloatArray4000[4] * this.aFloatArray4000[15] + this.aFloatArray4000[1] * this.aFloatArray4000[7] * this.aFloatArray4000[12] + this.aFloatArray4000[3] * this.aFloatArray4000[4] * this.aFloatArray4000[13] - this.aFloatArray4000[3] * this.aFloatArray4000[5] * this.aFloatArray4000[12]) * var1;
      float var13 = (-this.aFloatArray4000[0] * this.aFloatArray4000[5] * this.aFloatArray4000[11] + this.aFloatArray4000[0] * this.aFloatArray4000[7] * this.aFloatArray4000[9] + this.aFloatArray4000[1] * this.aFloatArray4000[4] * this.aFloatArray4000[11] - this.aFloatArray4000[1] * this.aFloatArray4000[7] * this.aFloatArray4000[8] - this.aFloatArray4000[3] * this.aFloatArray4000[4] * this.aFloatArray4000[9] + this.aFloatArray4000[3] * this.aFloatArray4000[5] * this.aFloatArray4000[8]) * var1;
      float var14 = (-this.aFloatArray4000[4] * this.aFloatArray4000[9] * this.aFloatArray4000[14] + this.aFloatArray4000[4] * this.aFloatArray4000[10] * this.aFloatArray4000[13] + this.aFloatArray4000[5] * this.aFloatArray4000[8] * this.aFloatArray4000[14] - this.aFloatArray4000[5] * this.aFloatArray4000[10] * this.aFloatArray4000[12] - this.aFloatArray4000[6] * this.aFloatArray4000[8] * this.aFloatArray4000[13] + this.aFloatArray4000[6] * this.aFloatArray4000[9] * this.aFloatArray4000[12]) * var1;
      float var15 = (this.aFloatArray4000[0] * this.aFloatArray4000[9] * this.aFloatArray4000[14] - this.aFloatArray4000[0] * this.aFloatArray4000[10] * this.aFloatArray4000[13] - this.aFloatArray4000[1] * this.aFloatArray4000[8] * this.aFloatArray4000[14] + this.aFloatArray4000[1] * this.aFloatArray4000[10] * this.aFloatArray4000[12] + this.aFloatArray4000[2] * this.aFloatArray4000[8] * this.aFloatArray4000[13] - this.aFloatArray4000[2] * this.aFloatArray4000[9] * this.aFloatArray4000[12]) * var1;
      float var16 = (-this.aFloatArray4000[0] * this.aFloatArray4000[5] * this.aFloatArray4000[14] + this.aFloatArray4000[0] * this.aFloatArray4000[6] * this.aFloatArray4000[13] + this.aFloatArray4000[1] * this.aFloatArray4000[4] * this.aFloatArray4000[14] - this.aFloatArray4000[1] * this.aFloatArray4000[6] * this.aFloatArray4000[12] - this.aFloatArray4000[2] * this.aFloatArray4000[4] * this.aFloatArray4000[13] + this.aFloatArray4000[2] * this.aFloatArray4000[5] * this.aFloatArray4000[12]) * var1;
      float var17 = (this.aFloatArray4000[0] * this.aFloatArray4000[5] * this.aFloatArray4000[10] - this.aFloatArray4000[0] * this.aFloatArray4000[6] * this.aFloatArray4000[9] - this.aFloatArray4000[1] * this.aFloatArray4000[4] * this.aFloatArray4000[10] + this.aFloatArray4000[1] * this.aFloatArray4000[6] * this.aFloatArray4000[8] + this.aFloatArray4000[2] * this.aFloatArray4000[4] * this.aFloatArray4000[9] - this.aFloatArray4000[2] * this.aFloatArray4000[5] * this.aFloatArray4000[8]) * var1;
      this.aFloatArray4000[0] = var2;
      this.aFloatArray4000[1] = var3;
      this.aFloatArray4000[2] = var4;
      this.aFloatArray4000[3] = var5;
      this.aFloatArray4000[4] = var6;
      this.aFloatArray4000[5] = var7;
      this.aFloatArray4000[6] = var8;
      this.aFloatArray4000[7] = var9;
      this.aFloatArray4000[8] = var10;
      this.aFloatArray4000[9] = var11;
      this.aFloatArray4000[10] = var12;
      this.aFloatArray4000[11] = var13;
      this.aFloatArray4000[12] = var14;
      this.aFloatArray4000[13] = var15;
      this.aFloatArray4000[14] = var16;
      this.aFloatArray4000[15] = var17;
   }

   public boolean equals(Object var1) {
      if(!(var1 instanceof Class317)) {
         return false;
      } else {
         Class317 var2 = (Class317)var1;

         for(int var3 = 0; var3 < 16; ++var3) {
            if(this.aFloatArray4000[var3] != var2.aFloatArray4000[var3]) {
               return false;
            }
         }

         return true;
      }
   }

   public String method5645() {
      StringBuilder var1 = new StringBuilder();

      for(int var2 = 0; var2 < 4; ++var2) {
         for(int var3 = 0; var3 < 4; ++var3) {
            if(var3 > 0) {
               var1.append("\t");
            }

            var1.append(this.aFloatArray4000[var2 * 4 + var3]);
         }

         var1.append("\n");
      }

      return var1.toString();
   }

   public String method5646() {
      StringBuilder var1 = new StringBuilder();

      for(int var2 = 0; var2 < 4; ++var2) {
         for(int var3 = 0; var3 < 4; ++var3) {
            if(var3 > 0) {
               var1.append("\t");
            }

            var1.append(this.aFloatArray4000[var2 * 4 + var3]);
         }

         var1.append("\n");
      }

      return var1.toString();
   }

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

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

   public boolean method5649(Object var1) {
      if(!(var1 instanceof Class317)) {
         return false;
      } else {
         Class317 var2 = (Class317)var1;

         for(int var3 = 0; var3 < 16; ++var3) {
            if(this.aFloatArray4000[var3] != var2.aFloatArray4000[var3]) {
               return false;
            }
         }

         return true;
      }
   }

   public void method5650(float var1, float var2, float var3, float[] var4) {
      var4[0] = this.aFloatArray4000[0] * var1 + this.aFloatArray4000[4] * var2 + this.aFloatArray4000[8] * var3;
      var4[1] = this.aFloatArray4000[1] * var1 + this.aFloatArray4000[5] * var2 + this.aFloatArray4000[9] * var3;
      var4[2] = this.aFloatArray4000[2] * var1 + this.aFloatArray4000[6] * var2 + this.aFloatArray4000[10] * var3;
      if(var4.length > 3) {
         var4[3] = this.aFloatArray4000[3] * var1 + this.aFloatArray4000[7] * var2 + this.aFloatArray4000[11] * var3;
      }

   }

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

   public void method5652(float var1, float var2, float var3, float var4, float var5, float var6) {
      this.aFloatArray4000[0] = 2.0F / (var2 - var1);
      this.aFloatArray4000[1] = 0.0F;
      this.aFloatArray4000[2] = 0.0F;
      this.aFloatArray4000[3] = 0.0F;
      this.aFloatArray4000[4] = 0.0F;
      this.aFloatArray4000[5] = 2.0F / (var4 - var3);
      this.aFloatArray4000[6] = 0.0F;
      this.aFloatArray4000[7] = 0.0F;
      this.aFloatArray4000[8] = 0.0F;
      this.aFloatArray4000[9] = 0.0F;
      this.aFloatArray4000[10] = 2.0F / (var6 - var5);
      this.aFloatArray4000[11] = 0.0F;
      this.aFloatArray4000[12] = -(var2 + var1) / (var2 - var1);
      this.aFloatArray4000[13] = -(var4 + var3) / (var4 - var3);
      this.aFloatArray4000[14] = -(var6 + var5) / (var6 - var5);
      this.aFloatArray4000[15] = 1.0F;
   }

   public void method5653(Class317 var1) {
      System.arraycopy(var1.aFloatArray4000, 0, this.aFloatArray4000, 0, 16);
   }

   public void method5654(Class317 var1) {
      System.arraycopy(var1.aFloatArray4000, 0, this.aFloatArray4000, 0, 16);
   }

   public void method5655(Class317 var1) {
      System.arraycopy(var1.aFloatArray4000, 0, this.aFloatArray4000, 0, 16);
   }

   public void method5656(Class317 var1) {
      System.arraycopy(var1.aFloatArray4000, 0, this.aFloatArray4000, 0, 11);
      this.aFloatArray4000[3] = 0.0F;
      this.aFloatArray4000[7] = 0.0F;
      this.aFloatArray4000[11] = 0.0F;
      this.aFloatArray4000[12] = 0.0F;
      this.aFloatArray4000[13] = 0.0F;
      this.aFloatArray4000[14] = 0.0F;
      this.aFloatArray4000[15] = 1.0F;
   }

   public void method5657(Class317 var1) {
      System.arraycopy(var1.aFloatArray4000, 0, this.aFloatArray4000, 0, 11);
      this.aFloatArray4000[3] = 0.0F;
      this.aFloatArray4000[7] = 0.0F;
      this.aFloatArray4000[11] = 0.0F;
      this.aFloatArray4000[12] = 0.0F;
      this.aFloatArray4000[13] = 0.0F;
      this.aFloatArray4000[14] = 0.0F;
      this.aFloatArray4000[15] = 1.0F;
   }

   public void method5658(Class317 var1) {
      System.arraycopy(var1.aFloatArray4000, 0, this.aFloatArray4000, 0, 11);
      this.aFloatArray4000[3] = 0.0F;
      this.aFloatArray4000[7] = 0.0F;
      this.aFloatArray4000[11] = 0.0F;
      this.aFloatArray4000[12] = 0.0F;
      this.aFloatArray4000[13] = 0.0F;
      this.aFloatArray4000[14] = 0.0F;
      this.aFloatArray4000[15] = 1.0F;
   }

   public void method5659(Class317 var1, Class317 var2) {
      float var3 = var1.aFloatArray4000[0] * var2.aFloatArray4000[0] + var1.aFloatArray4000[1] * var2.aFloatArray4000[4] + var1.aFloatArray4000[2] * var2.aFloatArray4000[8] + var1.aFloatArray4000[3] * var2.aFloatArray4000[12];
      float var4 = var1.aFloatArray4000[0] * var2.aFloatArray4000[1] + var1.aFloatArray4000[1] * var2.aFloatArray4000[5] + var1.aFloatArray4000[2] * var2.aFloatArray4000[9] + var1.aFloatArray4000[3] * var2.aFloatArray4000[13];
      float var5 = var1.aFloatArray4000[0] * var2.aFloatArray4000[2] + var1.aFloatArray4000[1] * var2.aFloatArray4000[6] + var1.aFloatArray4000[2] * var2.aFloatArray4000[10] + var1.aFloatArray4000[3] * var2.aFloatArray4000[14];
      float var6 = var1.aFloatArray4000[0] * var2.aFloatArray4000[3] + var1.aFloatArray4000[1] * var2.aFloatArray4000[7] + var1.aFloatArray4000[2] * var2.aFloatArray4000[11] + var1.aFloatArray4000[3] * var2.aFloatArray4000[15];
      float var7 = var1.aFloatArray4000[4] * var2.aFloatArray4000[0] + var1.aFloatArray4000[5] * var2.aFloatArray4000[4] + var1.aFloatArray4000[6] * var2.aFloatArray4000[8] + var1.aFloatArray4000[7] * var2.aFloatArray4000[12];
      float var8 = var1.aFloatArray4000[4] * var2.aFloatArray4000[1] + var1.aFloatArray4000[5] * var2.aFloatArray4000[5] + var1.aFloatArray4000[6] * var2.aFloatArray4000[9] + var1.aFloatArray4000[7] * var2.aFloatArray4000[13];
      float var9 = var1.aFloatArray4000[4] * var2.aFloatArray4000[2] + var1.aFloatArray4000[5] * var2.aFloatArray4000[6] + var1.aFloatArray4000[6] * var2.aFloatArray4000[10] + var1.aFloatArray4000[7] * var2.aFloatArray4000[14];
      float var10 = var1.aFloatArray4000[4] * var2.aFloatArray4000[3] + var1.aFloatArray4000[5] * var2.aFloatArray4000[7] + var1.aFloatArray4000[6] * var2.aFloatArray4000[11] + var1.aFloatArray4000[7] * var2.aFloatArray4000[15];
      float var11 = var1.aFloatArray4000[8] * var2.aFloatArray4000[0] + var1.aFloatArray4000[9] * var2.aFloatArray4000[4] + var1.aFloatArray4000[10] * var2.aFloatArray4000[8] + var1.aFloatArray4000[11] * var2.aFloatArray4000[12];
      float var12 = var1.aFloatArray4000[8] * var2.aFloatArray4000[1] + var1.aFloatArray4000[9] * var2.aFloatArray4000[5] + var1.aFloatArray4000[10] * var2.aFloatArray4000[9] + var1.aFloatArray4000[11] * var2.aFloatArray4000[13];
      float var13 = var1.aFloatArray4000[8] * var2.aFloatArray4000[2] + var1.aFloatArray4000[9] * var2.aFloatArray4000[6] + var1.aFloatArray4000[10] * var2.aFloatArray4000[10] + var1.aFloatArray4000[11] * var2.aFloatArray4000[14];
      float var14 = var1.aFloatArray4000[8] * var2.aFloatArray4000[3] + var1.aFloatArray4000[9] * var2.aFloatArray4000[7] + var1.aFloatArray4000[10] * var2.aFloatArray4000[11] + var1.aFloatArray4000[11] * var2.aFloatArray4000[15];
      float var15 = var1.aFloatArray4000[12] * var2.aFloatArray4000[0] + var1.aFloatArray4000[13] * var2.aFloatArray4000[4] + var1.aFloatArray4000[14] * var2.aFloatArray4000[8] + var1.aFloatArray4000[15] * var2.aFloatArray4000[12];
      float var16 = var1.aFloatArray4000[12] * var2.aFloatArray4000[1] + var1.aFloatArray4000[13] * var2.aFloatArray4000[5] + var1.aFloatArray4000[14] * var2.aFloatArray4000[9] + var1.aFloatArray4000[15] * var2.aFloatArray4000[13];
      float var17 = var1.aFloatArray4000[12] * var2.aFloatArray4000[2] + var1.aFloatArray4000[13] * var2.aFloatArray4000[6] + var1.aFloatArray4000[14] * var2.aFloatArray4000[10] + var1.aFloatArray4000[15] * var2.aFloatArray4000[14];
      float var18 = var1.aFloatArray4000[12] * var2.aFloatArray4000[3] + var1.aFloatArray4000[13] * var2.aFloatArray4000[7] + var1.aFloatArray4000[14] * var2.aFloatArray4000[11] + var1.aFloatArray4000[15] * var2.aFloatArray4000[15];
      this.aFloatArray4000[0] = var3;
      this.aFloatArray4000[1] = var4;
      this.aFloatArray4000[2] = var5;
      this.aFloatArray4000[3] = var6;
      this.aFloatArray4000[4] = var7;
      this.aFloatArray4000[5] = var8;
      this.aFloatArray4000[6] = var9;
      this.aFloatArray4000[7] = var10;
      this.aFloatArray4000[8] = var11;
      this.aFloatArray4000[9] = var12;
      this.aFloatArray4000[10] = var13;
      this.aFloatArray4000[11] = var14;
      this.aFloatArray4000[12] = var15;
      this.aFloatArray4000[13] = var16;
      this.aFloatArray4000[14] = var17;
      this.aFloatArray4000[15] = var18;
   }

   public void method5660(Class317 var1, Class317 var2) {
      float var3 = var1.aFloatArray4000[0] * var2.aFloatArray4000[0] + var1.aFloatArray4000[1] * var2.aFloatArray4000[4] + var1.aFloatArray4000[2] * var2.aFloatArray4000[8] + var1.aFloatArray4000[3] * var2.aFloatArray4000[12];
      float var4 = var1.aFloatArray4000[0] * var2.aFloatArray4000[1] + var1.aFloatArray4000[1] * var2.aFloatArray4000[5] + var1.aFloatArray4000[2] * var2.aFloatArray4000[9] + var1.aFloatArray4000[3] * var2.aFloatArray4000[13];
      float var5 = var1.aFloatArray4000[0] * var2.aFloatArray4000[2] + var1.aFloatArray4000[1] * var2.aFloatArray4000[6] + var1.aFloatArray4000[2] * var2.aFloatArray4000[10] + var1.aFloatArray4000[3] * var2.aFloatArray4000[14];
      float var6 = var1.aFloatArray4000[0] * var2.aFloatArray4000[3] + var1.aFloatArray4000[1] * var2.aFloatArray4000[7] + var1.aFloatArray4000[2] * var2.aFloatArray4000[11] + var1.aFloatArray4000[3] * var2.aFloatArray4000[15];
      float var7 = var1.aFloatArray4000[4] * var2.aFloatArray4000[0] + var1.aFloatArray4000[5] * var2.aFloatArray4000[4] + var1.aFloatArray4000[6] * var2.aFloatArray4000[8] + var1.aFloatArray4000[7] * var2.aFloatArray4000[12];
      float var8 = var1.aFloatArray4000[4] * var2.aFloatArray4000[1] + var1.aFloatArray4000[5] * var2.aFloatArray4000[5] + var1.aFloatArray4000[6] * var2.aFloatArray4000[9] + var1.aFloatArray4000[7] * var2.aFloatArray4000[13];
      float var9 = var1.aFloatArray4000[4] * var2.aFloatArray4000[2] + var1.aFloatArray4000[5] * var2.aFloatArray4000[6] + var1.aFloatArray4000[6] * var2.aFloatArray4000[10] + var1.aFloatArray4000[7] * var2.aFloatArray4000[14];
      float var10 = var1.aFloatArray4000[4] * var2.aFloatArray4000[3] + var1.aFloatArray4000[5] * var2.aFloatArray4000[7] + var1.aFloatArray4000[6] * var2.aFloatArray4000[11] + var1.aFloatArray4000[7] * var2.aFloatArray4000[15];
      float var11 = var1.aFloatArray4000[8] * var2.aFloatArray4000[0] + var1.aFloatArray4000[9] * var2.aFloatArray4000[4] + var1.aFloatArray4000[10] * var2.aFloatArray4000[8] + var1.aFloatArray4000[11] * var2.aFloatArray4000[12];
      float var12 = var1.aFloatArray4000[8] * var2.aFloatArray4000[1] + var1.aFloatArray4000[9] * var2.aFloatArray4000[5] + var1.aFloatArray4000[10] * var2.aFloatArray4000[9] + var1.aFloatArray4000[11] * var2.aFloatArray4000[13];
      float var13 = var1.aFloatArray4000[8] * var2.aFloatArray4000[2] + var1.aFloatArray4000[9] * var2.aFloatArray4000[6] + var1.aFloatArray4000[10] * var2.aFloatArray4000[10] + var1.aFloatArray4000[11] * var2.aFloatArray4000[14];
      float var14 = var1.aFloatArray4000[8] * var2.aFloatArray4000[3] + var1.aFloatArray4000[9] * var2.aFloatArray4000[7] + var1.aFloatArray4000[10] * var2.aFloatArray4000[11] + var1.aFloatArray4000[11] * var2.aFloatArray4000[15];
      float var15 = var1.aFloatArray4000[12] * var2.aFloatArray4000[0] + var1.aFloatArray4000[13] * var2.aFloatArray4000[4] + var1.aFloatArray4000[14] * var2.aFloatArray4000[8] + var1.aFloatArray4000[15] * var2.aFloatArray4000[12];
      float var16 = var1.aFloatArray4000[12] * var2.aFloatArray4000[1] + var1.aFloatArray4000[13] * var2.aFloatArray4000[5] + var1.aFloatArray4000[14] * var2.aFloatArray4000[9] + var1.aFloatArray4000[15] * var2.aFloatArray4000[13];
      float var17 = var1.aFloatArray4000[12] * var2.aFloatArray4000[2] + var1.aFloatArray4000[13] * var2.aFloatArray4000[6] + var1.aFloatArray4000[14] * var2.aFloatArray4000[10] + var1.aFloatArray4000[15] * var2.aFloatArray4000[14];
      float var18 = var1.aFloatArray4000[12] * var2.aFloatArray4000[3] + var1.aFloatArray4000[13] * var2.aFloatArray4000[7] + var1.aFloatArray4000[14] * var2.aFloatArray4000[11] + var1.aFloatArray4000[15] * var2.aFloatArray4000[15];
      this.aFloatArray4000[0] = var3;
      this.aFloatArray4000[1] = var4;
      this.aFloatArray4000[2] = var5;
      this.aFloatArray4000[3] = var6;
      this.aFloatArray4000[4] = var7;
      this.aFloatArray4000[5] = var8;
      this.aFloatArray4000[6] = var9;
      this.aFloatArray4000[7] = var10;
      this.aFloatArray4000[8] = var11;
      this.aFloatArray4000[9] = var12;
      this.aFloatArray4000[10] = var13;
      this.aFloatArray4000[11] = var14;
      this.aFloatArray4000[12] = var15;
      this.aFloatArray4000[13] = var16;
      this.aFloatArray4000[14] = var17;
      this.aFloatArray4000[15] = var18;
   }

   public void method5661(Class317 var1) {
      float var2 = this.aFloatArray4000[0] * var1.aFloatArray4000[0] + this.aFloatArray4000[1] * var1.aFloatArray4000[4] + this.aFloatArray4000[2] * var1.aFloatArray4000[8] + this.aFloatArray4000[3] * var1.aFloatArray4000[12];
      float var3 = this.aFloatArray4000[0] * var1.aFloatArray4000[1] + this.aFloatArray4000[1] * var1.aFloatArray4000[5] + this.aFloatArray4000[2] * var1.aFloatArray4000[9] + this.aFloatArray4000[3] * var1.aFloatArray4000[13];
      float var4 = this.aFloatArray4000[0] * var1.aFloatArray4000[2] + this.aFloatArray4000[1] * var1.aFloatArray4000[6] + this.aFloatArray4000[2] * var1.aFloatArray4000[10] + this.aFloatArray4000[3] * var1.aFloatArray4000[14];
      float var5 = this.aFloatArray4000[0] * var1.aFloatArray4000[3] + this.aFloatArray4000[1] * var1.aFloatArray4000[7] + this.aFloatArray4000[2] * var1.aFloatArray4000[11] + this.aFloatArray4000[3] * var1.aFloatArray4000[15];
      float var6 = this.aFloatArray4000[4] * var1.aFloatArray4000[0] + this.aFloatArray4000[5] * var1.aFloatArray4000[4] + this.aFloatArray4000[6] * var1.aFloatArray4000[8] + this.aFloatArray4000[7] * var1.aFloatArray4000[12];
      float var7 = this.aFloatArray4000[4] * var1.aFloatArray4000[1] + this.aFloatArray4000[5] * var1.aFloatArray4000[5] + this.aFloatArray4000[6] * var1.aFloatArray4000[9] + this.aFloatArray4000[7] * var1.aFloatArray4000[13];
      float var8 = this.aFloatArray4000[4] * var1.aFloatArray4000[2] + this.aFloatArray4000[5] * var1.aFloatArray4000[6] + this.aFloatArray4000[6] * var1.aFloatArray4000[10] + this.aFloatArray4000[7] * var1.aFloatArray4000[14];
      float var9 = this.aFloatArray4000[4] * var1.aFloatArray4000[3] + this.aFloatArray4000[5] * var1.aFloatArray4000[7] + this.aFloatArray4000[6] * var1.aFloatArray4000[11] + this.aFloatArray4000[7] * var1.aFloatArray4000[15];
      float var10 = this.aFloatArray4000[8] * var1.aFloatArray4000[0] + this.aFloatArray4000[9] * var1.aFloatArray4000[4] + this.aFloatArray4000[10] * var1.aFloatArray4000[8] + this.aFloatArray4000[11] * var1.aFloatArray4000[12];
      float var11 = this.aFloatArray4000[8] * var1.aFloatArray4000[1] + this.aFloatArray4000[9] * var1.aFloatArray4000[5] + this.aFloatArray4000[10] * var1.aFloatArray4000[9] + this.aFloatArray4000[11] * var1.aFloatArray4000[13];
      float var12 = this.aFloatArray4000[8] * var1.aFloatArray4000[2] + this.aFloatArray4000[9] * var1.aFloatArray4000[6] + this.aFloatArray4000[10] * var1.aFloatArray4000[10] + this.aFloatArray4000[11] * var1.aFloatArray4000[14];
      float var13 = this.aFloatArray4000[8] * var1.aFloatArray4000[3] + this.aFloatArray4000[9] * var1.aFloatArray4000[7] + this.aFloatArray4000[10] * var1.aFloatArray4000[11] + this.aFloatArray4000[11] * var1.aFloatArray4000[15];
      float var14 = this.aFloatArray4000[12] * var1.aFloatArray4000[0] + this.aFloatArray4000[13] * var1.aFloatArray4000[4] + this.aFloatArray4000[14] * var1.aFloatArray4000[8] + this.aFloatArray4000[15] * var1.aFloatArray4000[12];
      float var15 = this.aFloatArray4000[12] * var1.aFloatArray4000[1] + this.aFloatArray4000[13] * var1.aFloatArray4000[5] + this.aFloatArray4000[14] * var1.aFloatArray4000[9] + this.aFloatArray4000[15] * var1.aFloatArray4000[13];
      float var16 = this.aFloatArray4000[12] * var1.aFloatArray4000[2] + this.aFloatArray4000[13] * var1.aFloatArray4000[6] + this.aFloatArray4000[14] * var1.aFloatArray4000[10] + this.aFloatArray4000[15] * var1.aFloatArray4000[14];
      float var17 = this.aFloatArray4000[12] * var1.aFloatArray4000[3] + this.aFloatArray4000[13] * var1.aFloatArray4000[7] + this.aFloatArray4000[14] * var1.aFloatArray4000[11] + this.aFloatArray4000[15] * var1.aFloatArray4000[15];
      this.aFloatArray4000[0] = var2;
      this.aFloatArray4000[1] = var3;
      this.aFloatArray4000[2] = var4;
      this.aFloatArray4000[3] = var5;
      this.aFloatArray4000[4] = var6;
      this.aFloatArray4000[5] = var7;
      this.aFloatArray4000[6] = var8;
      this.aFloatArray4000[7] = var9;
      this.aFloatArray4000[8] = var10;
      this.aFloatArray4000[9] = var11;
      this.aFloatArray4000[10] = var12;
      this.aFloatArray4000[11] = var13;
      this.aFloatArray4000[12] = var14;
      this.aFloatArray4000[13] = var15;
      this.aFloatArray4000[14] = var16;
      this.aFloatArray4000[15] = var17;
   }

   public void method5662(Class328 var1) {
      this.aFloatArray4000[0] = var1.aFloat4066;
      this.aFloatArray4000[1] = var1.aFloat4070;
      this.aFloatArray4000[2] = var1.aFloat4068;
      this.aFloatArray4000[3] = 0.0F;
      this.aFloatArray4000[4] = var1.aFloat4069;
      this.aFloatArray4000[5] = var1.aFloat4065;
      this.aFloatArray4000[6] = var1.aFloat4071;
      this.aFloatArray4000[7] = 0.0F;
      this.aFloatArray4000[8] = var1.aFloat4072;
      this.aFloatArray4000[9] = var1.aFloat4076;
      this.aFloatArray4000[10] = var1.aFloat4073;
      this.aFloatArray4000[11] = 0.0F;
      this.aFloatArray4000[12] = var1.aFloat4075;
      this.aFloatArray4000[13] = var1.aFloat4077;
      this.aFloatArray4000[14] = var1.aFloat4067;
      this.aFloatArray4000[15] = 1.0F;
   }

   public void method5663(Class328 var1) {
      this.aFloatArray4000[0] = var1.aFloat4066;
      this.aFloatArray4000[1] = var1.aFloat4070;
      this.aFloatArray4000[2] = var1.aFloat4068;
      this.aFloatArray4000[3] = 0.0F;
      this.aFloatArray4000[4] = var1.aFloat4069;
      this.aFloatArray4000[5] = var1.aFloat4065;
      this.aFloatArray4000[6] = var1.aFloat4071;
      this.aFloatArray4000[7] = 0.0F;
      this.aFloatArray4000[8] = var1.aFloat4072;
      this.aFloatArray4000[9] = var1.aFloat4076;
      this.aFloatArray4000[10] = var1.aFloat4073;
      this.aFloatArray4000[11] = 0.0F;
      this.aFloatArray4000[12] = var1.aFloat4075;
      this.aFloatArray4000[13] = var1.aFloat4077;
      this.aFloatArray4000[14] = var1.aFloat4067;
      this.aFloatArray4000[15] = 1.0F;
   }

   public void method5664(Class328 var1) {
      this.aFloatArray4000[0] = var1.aFloat4066;
      this.aFloatArray4000[1] = var1.aFloat4070;
      this.aFloatArray4000[2] = var1.aFloat4068;
      this.aFloatArray4000[3] = 0.0F;
      this.aFloatArray4000[4] = var1.aFloat4069;
      this.aFloatArray4000[5] = var1.aFloat4065;
      this.aFloatArray4000[6] = var1.aFloat4071;
      this.aFloatArray4000[7] = 0.0F;
      this.aFloatArray4000[8] = var1.aFloat4072;
      this.aFloatArray4000[9] = var1.aFloat4076;
      this.aFloatArray4000[10] = var1.aFloat4073;
      this.aFloatArray4000[11] = 0.0F;
      this.aFloatArray4000[12] = var1.aFloat4075;
      this.aFloatArray4000[13] = var1.aFloat4077;
      this.aFloatArray4000[14] = var1.aFloat4067;
      this.aFloatArray4000[15] = 1.0F;
   }

   public void method5665(Class328 var1) {
      this.aFloatArray4000[0] = var1.aFloat4066;
      this.aFloatArray4000[1] = var1.aFloat4070;
      this.aFloatArray4000[2] = var1.aFloat4068;
      this.aFloatArray4000[3] = 0.0F;
      this.aFloatArray4000[4] = var1.aFloat4069;
      this.aFloatArray4000[5] = var1.aFloat4065;
      this.aFloatArray4000[6] = var1.aFloat4071;
      this.aFloatArray4000[7] = 0.0F;
      this.aFloatArray4000[8] = var1.aFloat4072;
      this.aFloatArray4000[9] = var1.aFloat4076;
      this.aFloatArray4000[10] = var1.aFloat4073;
      this.aFloatArray4000[11] = 0.0F;
      this.aFloatArray4000[12] = var1.aFloat4075;
      this.aFloatArray4000[13] = var1.aFloat4077;
      this.aFloatArray4000[14] = var1.aFloat4067;
      this.aFloatArray4000[15] = 1.0F;
   }

   public float method5666() {
      return -(this.aFloatArray4000[15] + this.aFloatArray4000[14]) / (this.aFloatArray4000[11] + this.aFloatArray4000[10]);
   }

   public void method5667(float var1, float var2, float var3, float var4, float var5, float var6) {
      this.aFloatArray4000[0] = 2.0F / (var2 - var1);
      this.aFloatArray4000[1] = 0.0F;
      this.aFloatArray4000[2] = 0.0F;
      this.aFloatArray4000[3] = 0.0F;
      this.aFloatArray4000[4] = 0.0F;
      this.aFloatArray4000[5] = 2.0F / (var4 - var3);
      this.aFloatArray4000[6] = 0.0F;
      this.aFloatArray4000[7] = 0.0F;
      this.aFloatArray4000[8] = 0.0F;
      this.aFloatArray4000[9] = 0.0F;
      this.aFloatArray4000[10] = 2.0F / (var6 - var5);
      this.aFloatArray4000[11] = 0.0F;
      this.aFloatArray4000[12] = -(var2 + var1) / (var2 - var1);
      this.aFloatArray4000[13] = -(var4 + var3) / (var4 - var3);
      this.aFloatArray4000[14] = -(var6 + var5) / (var6 - var5);
      this.aFloatArray4000[15] = 1.0F;
   }

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

   public void method5669() {
      float var1 = 1.0F / this.method5614();
      float var2 = (this.aFloatArray4000[5] * this.aFloatArray4000[10] * this.aFloatArray4000[15] - this.aFloatArray4000[5] * this.aFloatArray4000[11] * this.aFloatArray4000[14] - this.aFloatArray4000[6] * this.aFloatArray4000[9] * this.aFloatArray4000[15] + this.aFloatArray4000[6] * this.aFloatArray4000[11] * this.aFloatArray4000[13] + this.aFloatArray4000[7] * this.aFloatArray4000[9] * this.aFloatArray4000[14] - this.aFloatArray4000[7] * this.aFloatArray4000[10] * this.aFloatArray4000[13]) * var1;
      float var3 = (-this.aFloatArray4000[1] * this.aFloatArray4000[10] * this.aFloatArray4000[15] + this.aFloatArray4000[1] * this.aFloatArray4000[11] * this.aFloatArray4000[14] + this.aFloatArray4000[2] * this.aFloatArray4000[9] * this.aFloatArray4000[15] - this.aFloatArray4000[2] * this.aFloatArray4000[11] * this.aFloatArray4000[13] - this.aFloatArray4000[3] * this.aFloatArray4000[9] * this.aFloatArray4000[14] + this.aFloatArray4000[3] * this.aFloatArray4000[10] * this.aFloatArray4000[13]) * var1;
      float var4 = (this.aFloatArray4000[1] * this.aFloatArray4000[6] * this.aFloatArray4000[15] - this.aFloatArray4000[1] * this.aFloatArray4000[7] * this.aFloatArray4000[14] - this.aFloatArray4000[2] * this.aFloatArray4000[5] * this.aFloatArray4000[15] + this.aFloatArray4000[2] * this.aFloatArray4000[7] * this.aFloatArray4000[13] + this.aFloatArray4000[3] * this.aFloatArray4000[5] * this.aFloatArray4000[14] - this.aFloatArray4000[3] * this.aFloatArray4000[6] * this.aFloatArray4000[13]) * var1;
      float var5 = (-this.aFloatArray4000[1] * this.aFloatArray4000[6] * this.aFloatArray4000[11] + this.aFloatArray4000[1] * this.aFloatArray4000[7] * this.aFloatArray4000[10] + this.aFloatArray4000[2] * this.aFloatArray4000[5] * this.aFloatArray4000[11] - this.aFloatArray4000[2] * this.aFloatArray4000[7] * this.aFloatArray4000[9] - this.aFloatArray4000[3] * this.aFloatArray4000[5] * this.aFloatArray4000[10] + this.aFloatArray4000[3] * this.aFloatArray4000[6] * this.aFloatArray4000[9]) * var1;
      float var6 = (-this.aFloatArray4000[4] * this.aFloatArray4000[10] * this.aFloatArray4000[15] + this.aFloatArray4000[4] * this.aFloatArray4000[11] * this.aFloatArray4000[14] + this.aFloatArray4000[6] * this.aFloatArray4000[8] * this.aFloatArray4000[15] - this.aFloatArray4000[6] * this.aFloatArray4000[11] * this.aFloatArray4000[12] - this.aFloatArray4000[7] * this.aFloatArray4000[8] * this.aFloatArray4000[14] + this.aFloatArray4000[7] * this.aFloatArray4000[10] * this.aFloatArray4000[12]) * var1;
      float var7 = (this.aFloatArray4000[0] * this.aFloatArray4000[10] * this.aFloatArray4000[15] - this.aFloatArray4000[0] * this.aFloatArray4000[11] * this.aFloatArray4000[14] - this.aFloatArray4000[2] * this.aFloatArray4000[8] * this.aFloatArray4000[15] + this.aFloatArray4000[2] * this.aFloatArray4000[11] * this.aFloatArray4000[12] + this.aFloatArray4000[3] * this.aFloatArray4000[8] * this.aFloatArray4000[14] - this.aFloatArray4000[3] * this.aFloatArray4000[10] * this.aFloatArray4000[12]) * var1;
      float var8 = (-this.aFloatArray4000[0] * this.aFloatArray4000[6] * this.aFloatArray4000[15] + this.aFloatArray4000[0] * this.aFloatArray4000[7] * this.aFloatArray4000[14] + this.aFloatArray4000[2] * this.aFloatArray4000[4] * this.aFloatArray4000[15] - this.aFloatArray4000[2] * this.aFloatArray4000[7] * this.aFloatArray4000[12] - this.aFloatArray4000[3] * this.aFloatArray4000[4] * this.aFloatArray4000[14] + this.aFloatArray4000[3] * this.aFloatArray4000[6] * this.aFloatArray4000[12]) * var1;
      float var9 = (this.aFloatArray4000[0] * this.aFloatArray4000[6] * this.aFloatArray4000[11] - this.aFloatArray4000[0] * this.aFloatArray4000[7] * this.aFloatArray4000[10] - this.aFloatArray4000[2] * this.aFloatArray4000[4] * this.aFloatArray4000[11] + this.aFloatArray4000[2] * this.aFloatArray4000[7] * this.aFloatArray4000[8] + this.aFloatArray4000[3] * this.aFloatArray4000[4] * this.aFloatArray4000[10] - this.aFloatArray4000[3] * this.aFloatArray4000[6] * this.aFloatArray4000[8]) * var1;
      float var10 = (this.aFloatArray4000[4] * this.aFloatArray4000[9] * this.aFloatArray4000[15] - this.aFloatArray4000[4] * this.aFloatArray4000[11] * this.aFloatArray4000[13] - this.aFloatArray4000[5] * this.aFloatArray4000[8] * this.aFloatArray4000[15] + this.aFloatArray4000[5] * this.aFloatArray4000[11] * this.aFloatArray4000[12] + this.aFloatArray4000[7] * this.aFloatArray4000[8] * this.aFloatArray4000[13] - this.aFloatArray4000[7] * this.aFloatArray4000[9] * this.aFloatArray4000[12]) * var1;
      float var11 = (-this.aFloatArray4000[0] * this.aFloatArray4000[9] * this.aFloatArray4000[15] + this.aFloatArray4000[0] * this.aFloatArray4000[11] * this.aFloatArray4000[13] + this.aFloatArray4000[1] * this.aFloatArray4000[8] * this.aFloatArray4000[15] - this.aFloatArray4000[1] * this.aFloatArray4000[11] * this.aFloatArray4000[12] - this.aFloatArray4000[3] * this.aFloatArray4000[8] * this.aFloatArray4000[13] + this.aFloatArray4000[3] * this.aFloatArray4000[9] * this.aFloatArray4000[12]) * var1;
      float var12 = (this.aFloatArray4000[0] * this.aFloatArray4000[5] * this.aFloatArray4000[15] - this.aFloatArray4000[0] * this.aFloatArray4000[7] * this.aFloatArray4000[13] - this.aFloatArray4000[1] * this.aFloatArray4000[4] * this.aFloatArray4000[15] + this.aFloatArray4000[1] * this.aFloatArray4000[7] * this.aFloatArray4000[12] + this.aFloatArray4000[3] * this.aFloatArray4000[4] * this.aFloatArray4000[13] - this.aFloatArray4000[3] * this.aFloatArray4000[5] * this.aFloatArray4000[12]) * var1;
      float var13 = (-this.aFloatArray4000[0] * this.aFloatArray4000[5] * this.aFloatArray4000[11] + this.aFloatArray4000[0] * this.aFloatArray4000[7] * this.aFloatArray4000[9] + this.aFloatArray4000[1] * this.aFloatArray4000[4] * this.aFloatArray4000[11] - this.aFloatArray4000[1] * this.aFloatArray4000[7] * this.aFloatArray4000[8] - this.aFloatArray4000[3] * this.aFloatArray4000[4] * this.aFloatArray4000[9] + this.aFloatArray4000[3] * this.aFloatArray4000[5] * this.aFloatArray4000[8]) * var1;
      float var14 = (-this.aFloatArray4000[4] * this.aFloatArray4000[9] * this.aFloatArray4000[14] + this.aFloatArray4000[4] * this.aFloatArray4000[10] * this.aFloatArray4000[13] + this.aFloatArray4000[5] * this.aFloatArray4000[8] * this.aFloatArray4000[14] - this.aFloatArray4000[5] * this.aFloatArray4000[10] * this.aFloatArray4000[12] - this.aFloatArray4000[6] * this.aFloatArray4000[8] * this.aFloatArray4000[13] + this.aFloatArray4000[6] * this.aFloatArray4000[9] * this.aFloatArray4000[12]) * var1;
      float var15 = (this.aFloatArray4000[0] * this.aFloatArray4000[9] * this.aFloatArray4000[14] - this.aFloatArray4000[0] * this.aFloatArray4000[10] * this.aFloatArray4000[13] - this.aFloatArray4000[1] * this.aFloatArray4000[8] * this.aFloatArray4000[14] + this.aFloatArray4000[1] * this.aFloatArray4000[10] * this.aFloatArray4000[12] + this.aFloatArray4000[2] * this.aFloatArray4000[8] * this.aFloatArray4000[13] - this.aFloatArray4000[2] * this.aFloatArray4000[9] * this.aFloatArray4000[12]) * var1;
      float var16 = (-this.aFloatArray4000[0] * this.aFloatArray4000[5] * this.aFloatArray4000[14] + this.aFloatArray4000[0] * this.aFloatArray4000[6] * this.aFloatArray4000[13] + this.aFloatArray4000[1] * this.aFloatArray4000[4] * this.aFloatArray4000[14] - this.aFloatArray4000[1] * this.aFloatArray4000[6] * this.aFloatArray4000[12] - this.aFloatArray4000[2] * this.aFloatArray4000[4] * this.aFloatArray4000[13] + this.aFloatArray4000[2] * this.aFloatArray4000[5] * this.aFloatArray4000[12]) * var1;
      float var17 = (this.aFloatArray4000[0] * this.aFloatArray4000[5] * this.aFloatArray4000[10] - this.aFloatArray4000[0] * this.aFloatArray4000[6] * this.aFloatArray4000[9] - this.aFloatArray4000[1] * this.aFloatArray4000[4] * this.aFloatArray4000[10] + this.aFloatArray4000[1] * this.aFloatArray4000[6] * this.aFloatArray4000[8] + this.aFloatArray4000[2] * this.aFloatArray4000[4] * this.aFloatArray4000[9] - this.aFloatArray4000[2] * this.aFloatArray4000[5] * this.aFloatArray4000[8]) * var1;
      this.aFloatArray4000[0] = var2;
      this.aFloatArray4000[1] = var3;
      this.aFloatArray4000[2] = var4;
      this.aFloatArray4000[3] = var5;
      this.aFloatArray4000[4] = var6;
      this.aFloatArray4000[5] = var7;
      this.aFloatArray4000[6] = var8;
      this.aFloatArray4000[7] = var9;
      this.aFloatArray4000[8] = var10;
      this.aFloatArray4000[9] = var11;
      this.aFloatArray4000[10] = var12;
      this.aFloatArray4000[11] = var13;
      this.aFloatArray4000[12] = var14;
      this.aFloatArray4000[13] = var15;
      this.aFloatArray4000[14] = var16;
      this.aFloatArray4000[15] = var17;
   }

   public void method5670() {
      float var1 = 1.0F / this.method5614();
      float var2 = (this.aFloatArray4000[5] * this.aFloatArray4000[10] * this.aFloatArray4000[15] - this.aFloatArray4000[5] * this.aFloatArray4000[11] * this.aFloatArray4000[14] - this.aFloatArray4000[6] * this.aFloatArray4000[9] * this.aFloatArray4000[15] + this.aFloatArray4000[6] * this.aFloatArray4000[11] * this.aFloatArray4000[13] + this.aFloatArray4000[7] * this.aFloatArray4000[9] * this.aFloatArray4000[14] - this.aFloatArray4000[7] * this.aFloatArray4000[10] * this.aFloatArray4000[13]) * var1;
      float var3 = (-this.aFloatArray4000[1] * this.aFloatArray4000[10] * this.aFloatArray4000[15] + this.aFloatArray4000[1] * this.aFloatArray4000[11] * this.aFloatArray4000[14] + this.aFloatArray4000[2] * this.aFloatArray4000[9] * this.aFloatArray4000[15] - this.aFloatArray4000[2] * this.aFloatArray4000[11] * this.aFloatArray4000[13] - this.aFloatArray4000[3] * this.aFloatArray4000[9] * this.aFloatArray4000[14] + this.aFloatArray4000[3] * this.aFloatArray4000[10] * this.aFloatArray4000[13]) * var1;
      float var4 = (this.aFloatArray4000[1] * this.aFloatArray4000[6] * this.aFloatArray4000[15] - this.aFloatArray4000[1] * this.aFloatArray4000[7] * this.aFloatArray4000[14] - this.aFloatArray4000[2] * this.aFloatArray4000[5] * this.aFloatArray4000[15] + this.aFloatArray4000[2] * this.aFloatArray4000[7] * this.aFloatArray4000[13] + this.aFloatArray4000[3] * this.aFloatArray4000[5] * this.aFloatArray4000[14] - this.aFloatArray4000[3] * this.aFloatArray4000[6] * this.aFloatArray4000[13]) * var1;
      float var5 = (-this.aFloatArray4000[1] * this.aFloatArray4000[6] * this.aFloatArray4000[11] + this.aFloatArray4000[1] * this.aFloatArray4000[7] * this.aFloatArray4000[10] + this.aFloatArray4000[2] * this.aFloatArray4000[5] * this.aFloatArray4000[11] - this.aFloatArray4000[2] * this.aFloatArray4000[7] * this.aFloatArray4000[9] - this.aFloatArray4000[3] * this.aFloatArray4000[5] * this.aFloatArray4000[10] + this.aFloatArray4000[3] * this.aFloatArray4000[6] * this.aFloatArray4000[9]) * var1;
      float var6 = (-this.aFloatArray4000[4] * this.aFloatArray4000[10] * this.aFloatArray4000[15] + this.aFloatArray4000[4] * this.aFloatArray4000[11] * this.aFloatArray4000[14] + this.aFloatArray4000[6] * this.aFloatArray4000[8] * this.aFloatArray4000[15] - this.aFloatArray4000[6] * this.aFloatArray4000[11] * this.aFloatArray4000[12] - this.aFloatArray4000[7] * this.aFloatArray4000[8] * this.aFloatArray4000[14] + this.aFloatArray4000[7] * this.aFloatArray4000[10] * this.aFloatArray4000[12]) * var1;
      float var7 = (this.aFloatArray4000[0] * this.aFloatArray4000[10] * this.aFloatArray4000[15] - this.aFloatArray4000[0] * this.aFloatArray4000[11] * this.aFloatArray4000[14] - this.aFloatArray4000[2] * this.aFloatArray4000[8] * this.aFloatArray4000[15] + this.aFloatArray4000[2] * this.aFloatArray4000[11] * this.aFloatArray4000[12] + this.aFloatArray4000[3] * this.aFloatArray4000[8] * this.aFloatArray4000[14] - this.aFloatArray4000[3] * this.aFloatArray4000[10] * this.aFloatArray4000[12]) * var1;
      float var8 = (-this.aFloatArray4000[0] * this.aFloatArray4000[6] * this.aFloatArray4000[15] + this.aFloatArray4000[0] * this.aFloatArray4000[7] * this.aFloatArray4000[14] + this.aFloatArray4000[2] * this.aFloatArray4000[4] * this.aFloatArray4000[15] - this.aFloatArray4000[2] * this.aFloatArray4000[7] * this.aFloatArray4000[12] - this.aFloatArray4000[3] * this.aFloatArray4000[4] * this.aFloatArray4000[14] + this.aFloatArray4000[3] * this.aFloatArray4000[6] * this.aFloatArray4000[12]) * var1;
      float var9 = (this.aFloatArray4000[0] * this.aFloatArray4000[6] * this.aFloatArray4000[11] - this.aFloatArray4000[0] * this.aFloatArray4000[7] * this.aFloatArray4000[10] - this.aFloatArray4000[2] * this.aFloatArray4000[4] * this.aFloatArray4000[11] + this.aFloatArray4000[2] * this.aFloatArray4000[7] * this.aFloatArray4000[8] + this.aFloatArray4000[3] * this.aFloatArray4000[4] * this.aFloatArray4000[10] - this.aFloatArray4000[3] * this.aFloatArray4000[6] * this.aFloatArray4000[8]) * var1;
      float var10 = (this.aFloatArray4000[4] * this.aFloatArray4000[9] * this.aFloatArray4000[15] - this.aFloatArray4000[4] * this.aFloatArray4000[11] * this.aFloatArray4000[13] - this.aFloatArray4000[5] * this.aFloatArray4000[8] * this.aFloatArray4000[15] + this.aFloatArray4000[5] * this.aFloatArray4000[11] * this.aFloatArray4000[12] + this.aFloatArray4000[7] * this.aFloatArray4000[8] * this.aFloatArray4000[13] - this.aFloatArray4000[7] * this.aFloatArray4000[9] * this.aFloatArray4000[12]) * var1;
      float var11 = (-this.aFloatArray4000[0] * this.aFloatArray4000[9] * this.aFloatArray4000[15] + this.aFloatArray4000[0] * this.aFloatArray4000[11] * this.aFloatArray4000[13] + this.aFloatArray4000[1] * this.aFloatArray4000[8] * this.aFloatArray4000[15] - this.aFloatArray4000[1] * this.aFloatArray4000[11] * this.aFloatArray4000[12] - this.aFloatArray4000[3] * this.aFloatArray4000[8] * this.aFloatArray4000[13] + this.aFloatArray4000[3] * this.aFloatArray4000[9] * this.aFloatArray4000[12]) * var1;
      float var12 = (this.aFloatArray4000[0] * this.aFloatArray4000[5] * this.aFloatArray4000[15] - this.aFloatArray4000[0] * this.aFloatArray4000[7] * this.aFloatArray4000[13] - this.aFloatArray4000[1] * this.aFloatArray4000[4] * this.aFloatArray4000[15] + this.aFloatArray4000[1] * this.aFloatArray4000[7] * this.aFloatArray4000[12] + this.aFloatArray4000[3] * this.aFloatArray4000[4] * this.aFloatArray4000[13] - this.aFloatArray4000[3] * this.aFloatArray4000[5] * this.aFloatArray4000[12]) * var1;
      float var13 = (-this.aFloatArray4000[0] * this.aFloatArray4000[5] * this.aFloatArray4000[11] + this.aFloatArray4000[0] * this.aFloatArray4000[7] * this.aFloatArray4000[9] + this.aFloatArray4000[1] * this.aFloatArray4000[4] * this.aFloatArray4000[11] - this.aFloatArray4000[1] * this.aFloatArray4000[7] * this.aFloatArray4000[8] - this.aFloatArray4000[3] * this.aFloatArray4000[4] * this.aFloatArray4000[9] + this.aFloatArray4000[3] * this.aFloatArray4000[5] * this.aFloatArray4000[8]) * var1;
      float var14 = (-this.aFloatArray4000[4] * this.aFloatArray4000[9] * this.aFloatArray4000[14] + this.aFloatArray4000[4] * this.aFloatArray4000[10] * this.aFloatArray4000[13] + this.aFloatArray4000[5] * this.aFloatArray4000[8] * this.aFloatArray4000[14] - this.aFloatArray4000[5] * this.aFloatArray4000[10] * this.aFloatArray4000[12] - this.aFloatArray4000[6] * this.aFloatArray4000[8] * this.aFloatArray4000[13] + this.aFloatArray4000[6] * this.aFloatArray4000[9] * this.aFloatArray4000[12]) * var1;
      float var15 = (this.aFloatArray4000[0] * this.aFloatArray4000[9] * this.aFloatArray4000[14] - this.aFloatArray4000[0] * this.aFloatArray4000[10] * this.aFloatArray4000[13] - this.aFloatArray4000[1] * this.aFloatArray4000[8] * this.aFloatArray4000[14] + this.aFloatArray4000[1] * this.aFloatArray4000[10] * this.aFloatArray4000[12] + this.aFloatArray4000[2] * this.aFloatArray4000[8] * this.aFloatArray4000[13] - this.aFloatArray4000[2] * this.aFloatArray4000[9] * this.aFloatArray4000[12]) * var1;
      float var16 = (-this.aFloatArray4000[0] * this.aFloatArray4000[5] * this.aFloatArray4000[14] + this.aFloatArray4000[0] * this.aFloatArray4000[6] * this.aFloatArray4000[13] + this.aFloatArray4000[1] * this.aFloatArray4000[4] * this.aFloatArray4000[14] - this.aFloatArray4000[1] * this.aFloatArray4000[6] * this.aFloatArray4000[12] - this.aFloatArray4000[2] * this.aFloatArray4000[4] * this.aFloatArray4000[13] + this.aFloatArray4000[2] * this.aFloatArray4000[5] * this.aFloatArray4000[12]) * var1;
      float var17 = (this.aFloatArray4000[0] * this.aFloatArray4000[5] * this.aFloatArray4000[10] - this.aFloatArray4000[0] * this.aFloatArray4000[6] * this.aFloatArray4000[9] - this.aFloatArray4000[1] * this.aFloatArray4000[4] * this.aFloatArray4000[10] + this.aFloatArray4000[1] * this.aFloatArray4000[6] * this.aFloatArray4000[8] + this.aFloatArray4000[2] * this.aFloatArray4000[4] * this.aFloatArray4000[9] - this.aFloatArray4000[2] * this.aFloatArray4000[5] * this.aFloatArray4000[8]) * var1;
      this.aFloatArray4000[0] = var2;
      this.aFloatArray4000[1] = var3;
      this.aFloatArray4000[2] = var4;
      this.aFloatArray4000[3] = var5;
      this.aFloatArray4000[4] = var6;
      this.aFloatArray4000[5] = var7;
      this.aFloatArray4000[6] = var8;
      this.aFloatArray4000[7] = var9;
      this.aFloatArray4000[8] = var10;
      this.aFloatArray4000[9] = var11;
      this.aFloatArray4000[10] = var12;
      this.aFloatArray4000[11] = var13;
      this.aFloatArray4000[12] = var14;
      this.aFloatArray4000[13] = var15;
      this.aFloatArray4000[14] = var16;
      this.aFloatArray4000[15] = var17;
   }

   public float[] method5671(float[] var1) {
      float var2 = this.aFloatArray4000[3] - this.aFloatArray4000[2];
      float var3 = this.aFloatArray4000[7] - this.aFloatArray4000[6];
      float var4 = this.aFloatArray4000[11] - this.aFloatArray4000[10];
      double var5 = Math.sqrt((double)(var2 * var2 + var3 * var3 + var4 * var4));
      var1[0] = (float)((double)var2 / var5);
      var1[1] = (float)((double)var3 / var5);
      var1[2] = (float)((double)var4 / var5);
      var1[3] = (float)((double)(this.aFloatArray4000[15] - this.aFloatArray4000[14]) / var5);
      return var1;
   }

   public float[] method5672(float[] var1) {
      float var2 = this.aFloatArray4000[3] - this.aFloatArray4000[1];
      float var3 = this.aFloatArray4000[7] - this.aFloatArray4000[5];
      float var4 = this.aFloatArray4000[11] - this.aFloatArray4000[9];
      double var5 = Math.sqrt((double)(var2 * var2 + var3 * var3 + var4 * var4));
      var1[0] = (float)((double)var2 / var5);
      var1[1] = (float)((double)var3 / var5);
      var1[2] = (float)((double)var4 / var5);
      var1[3] = (float)((double)(this.aFloatArray4000[15] - this.aFloatArray4000[13]) / var5);
      return var1;
   }

   public void method5673(float var1, float var2, float var3, float var4) {
      this.aFloatArray4000[0] = var1;
      this.aFloatArray4000[1] = 0.0F;
      this.aFloatArray4000[2] = 0.0F;
      this.aFloatArray4000[3] = 0.0F;
      this.aFloatArray4000[4] = 0.0F;
      this.aFloatArray4000[5] = var2;
      this.aFloatArray4000[6] = 0.0F;
      this.aFloatArray4000[7] = 0.0F;
      this.aFloatArray4000[8] = 0.0F;
      this.aFloatArray4000[9] = 0.0F;
      this.aFloatArray4000[10] = var3;
      this.aFloatArray4000[11] = 0.0F;
      this.aFloatArray4000[12] = 0.0F;
      this.aFloatArray4000[13] = 0.0F;
      this.aFloatArray4000[14] = 0.0F;
      this.aFloatArray4000[15] = var4;
   }

   public float[] method5674(float[] var1) {
      var1[0] = this.aFloatArray4000[0];
      var1[1] = this.aFloatArray4000[1];
      var1[2] = this.aFloatArray4000[4];
      var1[3] = this.aFloatArray4000[5];
      var1[4] = this.aFloatArray4000[8];
      var1[5] = this.aFloatArray4000[9];
      var1[6] = this.aFloatArray4000[12];
      var1[7] = this.aFloatArray4000[13];
      return var1;
   }

   public void method5675(float var1, float var2, float var3, float[] var4) {
      var4[0] = this.aFloatArray4000[0] * var1 + this.aFloatArray4000[4] * var2 + this.aFloatArray4000[8] * var3 + this.aFloatArray4000[12];
      var4[1] = this.aFloatArray4000[1] * var1 + this.aFloatArray4000[5] * var2 + this.aFloatArray4000[9] * var3 + this.aFloatArray4000[13];
      var4[2] = this.aFloatArray4000[2] * var1 + this.aFloatArray4000[6] * var2 + this.aFloatArray4000[10] * var3 + this.aFloatArray4000[14];
      if(var4.length > 3) {
         var4[3] = this.aFloatArray4000[3] * var1 + this.aFloatArray4000[7] * var2 + this.aFloatArray4000[11] * var3 + this.aFloatArray4000[15];
      }

   }

   public void method5676(float var1, float var2, float var3) {
      this.method5703(-10000.0F / var3, 10000.0F / var3, -10000.0F / var3, 10000.0F / var3, var1, var2);
   }

   public void method5677(float var1, float var2, float var3, float[] var4) {
      var4[0] = this.aFloatArray4000[0] * var1 + this.aFloatArray4000[4] * var2 + this.aFloatArray4000[8] * var3 + this.aFloatArray4000[12];
      var4[1] = this.aFloatArray4000[1] * var1 + this.aFloatArray4000[5] * var2 + this.aFloatArray4000[9] * var3 + this.aFloatArray4000[13];
      var4[2] = this.aFloatArray4000[2] * var1 + this.aFloatArray4000[6] * var2 + this.aFloatArray4000[10] * var3 + this.aFloatArray4000[14];
      if(var4.length > 3) {
         var4[3] = this.aFloatArray4000[3] * var1 + this.aFloatArray4000[7] * var2 + this.aFloatArray4000[11] * var3 + this.aFloatArray4000[15];
      }

   }

   public void method5678(float[] var1) {
      float var2 = var1[0];
      float var3 = var1[1];
      float var4 = var1[2];
      var1[0] = this.aFloatArray4000[0] * var2 + this.aFloatArray4000[4] * var3 + this.aFloatArray4000[8] * var4 + this.aFloatArray4000[12];
      var1[1] = this.aFloatArray4000[1] * var2 + this.aFloatArray4000[5] * var3 + this.aFloatArray4000[9] * var4 + this.aFloatArray4000[13];
      var1[2] = this.aFloatArray4000[2] * var2 + this.aFloatArray4000[6] * var3 + this.aFloatArray4000[10] * var4 + this.aFloatArray4000[14];
   }

   public void method5679(float var1, float var2, float var3, float[] var4) {
      var4[0] = this.aFloatArray4000[0] * var1 + this.aFloatArray4000[4] * var2 + this.aFloatArray4000[8] * var3;
      var4[1] = this.aFloatArray4000[1] * var1 + this.aFloatArray4000[5] * var2 + this.aFloatArray4000[9] * var3;
      var4[2] = this.aFloatArray4000[2] * var1 + this.aFloatArray4000[6] * var2 + this.aFloatArray4000[10] * var3;
      if(var4.length > 3) {
         var4[3] = this.aFloatArray4000[3] * var1 + this.aFloatArray4000[7] * var2 + this.aFloatArray4000[11] * var3;
      }

   }

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

   public void method5681(float var1, float var2, float var3) {
      this.method5703(-10000.0F / var3, 10000.0F / var3, -10000.0F / var3, 10000.0F / var3, var1, var2);
   }

   public void method5682(float var1, float var2, float var3, float var4, float var5, float var6) {
      this.aFloatArray4000[0] = 2.0F / (var2 - var1);
      this.aFloatArray4000[1] = 0.0F;
      this.aFloatArray4000[2] = 0.0F;
      this.aFloatArray4000[3] = 0.0F;
      this.aFloatArray4000[4] = 0.0F;
      this.aFloatArray4000[5] = 2.0F / (var4 - var3);
      this.aFloatArray4000[6] = 0.0F;
      this.aFloatArray4000[7] = 0.0F;
      this.aFloatArray4000[8] = 0.0F;
      this.aFloatArray4000[9] = 0.0F;
      this.aFloatArray4000[10] = 2.0F / (var6 - var5);
      this.aFloatArray4000[11] = 0.0F;
      this.aFloatArray4000[12] = -(var2 + var1) / (var2 - var1);
      this.aFloatArray4000[13] = -(var4 + var3) / (var4 - var3);
      this.aFloatArray4000[14] = -(var6 + var5) / (var6 - var5);
      this.aFloatArray4000[15] = 1.0F;
   }

   public float[] method5683(float[] var1) {
      float var2 = this.aFloatArray4000[3] - this.aFloatArray4000[0];
      float var3 = this.aFloatArray4000[7] - this.aFloatArray4000[4];
      float var4 = this.aFloatArray4000[11] - this.aFloatArray4000[8];
      double var5 = Math.sqrt((double)(var2 * var2 + var3 * var3 + var4 * var4));
      var1[0] = (float)((double)var2 / var5);
      var1[1] = (float)((double)var3 / var5);
      var1[2] = (float)((double)var4 / var5);
      var1[3] = (float)((double)(this.aFloatArray4000[15] - this.aFloatArray4000[12]) / var5);
      return var1;
   }

   void method5684(float var1, float var2, float var3, float var4, float var5, float var6) {
      this.aFloatArray4000[0] = 2.0F * var5 / (var2 - var1);
      this.aFloatArray4000[1] = 0.0F;
      this.aFloatArray4000[2] = 0.0F;
      this.aFloatArray4000[3] = 0.0F;
      this.aFloatArray4000[4] = 0.0F;
      this.aFloatArray4000[5] = 2.0F * var5 / (var4 - var3);
      this.aFloatArray4000[6] = 0.0F;
      this.aFloatArray4000[7] = 0.0F;
      this.aFloatArray4000[8] = (var2 + var1) / (var2 - var1);
      this.aFloatArray4000[9] = (var4 + var3) / (var4 - var3);
      this.aFloatArray4000[10] = (var6 + var5) / (var6 - var5);
      this.aFloatArray4000[11] = 1.0F;
      this.aFloatArray4000[12] = 0.0F;
      this.aFloatArray4000[13] = 0.0F;
      this.aFloatArray4000[14] = -(2.0F * var6 * var5) / (var6 - var5);
      this.aFloatArray4000[15] = 0.0F;
   }

   public void method5685(float var1, float var2, float var3, float var4) {
      float var5 = (float)(Math.tan((double)(var3 / 2.0F)) * (double)var1);
      float var6 = (float)(Math.tan((double)(var4 / 2.0F)) * (double)var1);
      this.method5624(-var5, var5, -var6, var6, var1, var2);
   }

   public void method5686(float var1, float var2, float var3, float var4) {
      float var5 = (float)(Math.tan((double)(var3 / 2.0F)) * (double)var1);
      float var6 = (float)(Math.tan((double)(var4 / 2.0F)) * (double)var1);
      this.method5624(-var5, var5, -var6, var6, var1, var2);
   }

   public float method5687() {
      return -(this.aFloatArray4000[15] + this.aFloatArray4000[14]) / (this.aFloatArray4000[11] + this.aFloatArray4000[10]);
   }

   public void method5688(float var1, float var2, float var3, float var4, float var5, float var6) {
      this.aFloatArray4000[0] = 2.0F / (var2 - var1);
      this.aFloatArray4000[1] = 0.0F;
      this.aFloatArray4000[2] = 0.0F;
      this.aFloatArray4000[3] = 0.0F;
      this.aFloatArray4000[4] = 0.0F;
      this.aFloatArray4000[5] = 2.0F / (var4 - var3);
      this.aFloatArray4000[6] = 0.0F;
      this.aFloatArray4000[7] = 0.0F;
      this.aFloatArray4000[8] = 0.0F;
      this.aFloatArray4000[9] = 0.0F;
      this.aFloatArray4000[10] = 2.0F / (var6 - var5);
      this.aFloatArray4000[11] = 0.0F;
      this.aFloatArray4000[12] = -(var2 + var1) / (var2 - var1);
      this.aFloatArray4000[13] = -(var4 + var3) / (var4 - var3);
      this.aFloatArray4000[14] = -(var6 + var5) / (var6 - var5);
      this.aFloatArray4000[15] = 1.0F;
   }

   public void method5689() {
      float var1 = this.aFloatArray4000[0];
      float var2 = this.aFloatArray4000[4];
      float var3 = this.aFloatArray4000[8];
      float var4 = this.aFloatArray4000[12];
      float var5 = this.aFloatArray4000[1];
      float var6 = this.aFloatArray4000[5];
      float var7 = this.aFloatArray4000[9];
      float var8 = this.aFloatArray4000[13];
      float var9 = this.aFloatArray4000[2];
      float var10 = this.aFloatArray4000[6];
      float var11 = this.aFloatArray4000[10];
      float var12 = this.aFloatArray4000[14];
      float var13 = this.aFloatArray4000[3];
      float var14 = this.aFloatArray4000[7];
      float var15 = this.aFloatArray4000[11];
      float var16 = this.aFloatArray4000[15];
      this.aFloatArray4000[0] = var1;
      this.aFloatArray4000[1] = var2;
      this.aFloatArray4000[2] = var3;
      this.aFloatArray4000[3] = var4;
      this.aFloatArray4000[4] = var5;
      this.aFloatArray4000[5] = var6;
      this.aFloatArray4000[6] = var7;
      this.aFloatArray4000[7] = var8;
      this.aFloatArray4000[8] = var9;
      this.aFloatArray4000[9] = var10;
      this.aFloatArray4000[10] = var11;
      this.aFloatArray4000[11] = var12;
      this.aFloatArray4000[12] = var13;
      this.aFloatArray4000[13] = var14;
      this.aFloatArray4000[14] = var15;
      this.aFloatArray4000[15] = var16;
   }

   void method5690(float var1, float var2, float var3, float var4, float var5, float var6) {
      this.aFloatArray4000[0] = 2.0F * var5 / (var2 - var1);
      this.aFloatArray4000[1] = 0.0F;
      this.aFloatArray4000[2] = 0.0F;
      this.aFloatArray4000[3] = 0.0F;
      this.aFloatArray4000[4] = 0.0F;
      this.aFloatArray4000[5] = 2.0F * var5 / (var4 - var3);
      this.aFloatArray4000[6] = 0.0F;
      this.aFloatArray4000[7] = 0.0F;
      this.aFloatArray4000[8] = (var2 + var1) / (var2 - var1);
      this.aFloatArray4000[9] = (var4 + var3) / (var4 - var3);
      this.aFloatArray4000[10] = (var6 + var5) / (var6 - var5);
      this.aFloatArray4000[11] = 1.0F;
      this.aFloatArray4000[12] = 0.0F;
      this.aFloatArray4000[13] = 0.0F;
      this.aFloatArray4000[14] = -(2.0F * var6 * var5) / (var6 - var5);
      this.aFloatArray4000[15] = 0.0F;
   }

   void method5691(float var1, float var2, float var3, float var4, float var5, float var6) {
      this.aFloatArray4000[0] = 2.0F * var5 / (var2 - var1);
      this.aFloatArray4000[1] = 0.0F;
      this.aFloatArray4000[2] = 0.0F;
      this.aFloatArray4000[3] = 0.0F;
      this.aFloatArray4000[4] = 0.0F;
      this.aFloatArray4000[5] = 2.0F * var5 / (var4 - var3);
      this.aFloatArray4000[6] = 0.0F;
      this.aFloatArray4000[7] = 0.0F;
      this.aFloatArray4000[8] = (var2 + var1) / (var2 - var1);
      this.aFloatArray4000[9] = (var4 + var3) / (var4 - var3);
      this.aFloatArray4000[10] = (var6 + var5) / (var6 - var5);
      this.aFloatArray4000[11] = 1.0F;
      this.aFloatArray4000[12] = 0.0F;
      this.aFloatArray4000[13] = 0.0F;
      this.aFloatArray4000[14] = -(2.0F * var6 * var5) / (var6 - var5);
      this.aFloatArray4000[15] = 0.0F;
   }

   public float[] method5692(float[] var1) {
      float var2 = this.aFloatArray4000[3] + this.aFloatArray4000[0];
      float var3 = this.aFloatArray4000[7] + this.aFloatArray4000[4];
      float var4 = this.aFloatArray4000[11] + this.aFloatArray4000[8];
      double var5 = Math.sqrt((double)(var2 * var2 + var3 * var3 + var4 * var4));
      var1[0] = (float)((double)var2 / var5);
      var1[1] = (float)((double)var3 / var5);
      var1[2] = (float)((double)var4 / var5);
      var1[3] = (float)((double)(this.aFloatArray4000[15] + this.aFloatArray4000[12]) / var5);
      return var1;
   }

   public void method5693(float var1, float var2, float var3, float var4) {
      this.aFloatArray4000[0] = var1;
      this.aFloatArray4000[1] = 0.0F;
      this.aFloatArray4000[2] = 0.0F;
      this.aFloatArray4000[3] = 0.0F;
      this.aFloatArray4000[4] = 0.0F;
      this.aFloatArray4000[5] = var2;
      this.aFloatArray4000[6] = 0.0F;
      this.aFloatArray4000[7] = 0.0F;
      this.aFloatArray4000[8] = 0.0F;
      this.aFloatArray4000[9] = 0.0F;
      this.aFloatArray4000[10] = var3;
      this.aFloatArray4000[11] = 0.0F;
      this.aFloatArray4000[12] = 0.0F;
      this.aFloatArray4000[13] = 0.0F;
      this.aFloatArray4000[14] = 0.0F;
      this.aFloatArray4000[15] = var4;
   }

   public void method5694(float var1, float var2, float var3, float var4, float var5, float var6, float var7, float var8, float var9) {
      this.method5703(-(var1 * var9) / var3, var9 * (var7 - var1) / var3, -(var2 * var9) / var4, var9 * (var8 - var2) / var4, var5, var6);
   }

   public void method5695(Class328 var1) {
      this.aFloatArray4000[0] = var1.aFloat4066;
      this.aFloatArray4000[1] = var1.aFloat4070;
      this.aFloatArray4000[2] = var1.aFloat4068;
      this.aFloatArray4000[3] = 0.0F;
      this.aFloatArray4000[4] = var1.aFloat4069;
      this.aFloatArray4000[5] = var1.aFloat4065;
      this.aFloatArray4000[6] = var1.aFloat4071;
      this.aFloatArray4000[7] = 0.0F;
      this.aFloatArray4000[8] = var1.aFloat4072;
      this.aFloatArray4000[9] = var1.aFloat4076;
      this.aFloatArray4000[10] = var1.aFloat4073;
      this.aFloatArray4000[11] = 0.0F;
      this.aFloatArray4000[12] = var1.aFloat4075;
      this.aFloatArray4000[13] = var1.aFloat4077;
      this.aFloatArray4000[14] = var1.aFloat4067;
      this.aFloatArray4000[15] = 1.0F;
   }

   public void method5696(float var1, float var2, float var3, float var4, float var5, float var6, float var7, float var8, float var9) {
      this.method5703(-(var1 * var9) / var3, var9 * (var7 - var1) / var3, -(var2 * var9) / var4, var9 * (var8 - var2) / var4, var5, var6);
   }

   public boolean method5697(Object var1) {
      if(!(var1 instanceof Class317)) {
         return false;
      } else {
         Class317 var2 = (Class317)var1;

         for(int var3 = 0; var3 < 16; ++var3) {
            if(this.aFloatArray4000[var3] != var2.aFloatArray4000[var3]) {
               return false;
            }
         }

         return true;
      }
   }

   public void method5698(float var1, float var2, float var3, float[] var4) {
      var4[0] = this.aFloatArray4000[0] * var1 + this.aFloatArray4000[4] * var2 + this.aFloatArray4000[8] * var3 + this.aFloatArray4000[12];
      var4[1] = this.aFloatArray4000[1] * var1 + this.aFloatArray4000[5] * var2 + this.aFloatArray4000[9] * var3 + this.aFloatArray4000[13];
      var4[2] = this.aFloatArray4000[2] * var1 + this.aFloatArray4000[6] * var2 + this.aFloatArray4000[10] * var3 + this.aFloatArray4000[14];
      if(var4.length > 3) {
         var4[3] = this.aFloatArray4000[3] * var1 + this.aFloatArray4000[7] * var2 + this.aFloatArray4000[11] * var3 + this.aFloatArray4000[15];
      }

   }

   public float method5699() {
      return (this.aFloatArray4000[14] - this.aFloatArray4000[15]) / (this.aFloatArray4000[11] - this.aFloatArray4000[10]);
   }

   public float method5700() {
      return (this.aFloatArray4000[14] - this.aFloatArray4000[15]) / (this.aFloatArray4000[11] - this.aFloatArray4000[10]);
   }

   public float method5701() {
      return -(this.aFloatArray4000[15] + this.aFloatArray4000[14]) / (this.aFloatArray4000[11] + this.aFloatArray4000[10]);
   }

   public void method5702() {
      float var1 = this.aFloatArray4000[0];
      float var2 = this.aFloatArray4000[4];
      float var3 = this.aFloatArray4000[8];
      float var4 = this.aFloatArray4000[12];
      float var5 = this.aFloatArray4000[1];
      float var6 = this.aFloatArray4000[5];
      float var7 = this.aFloatArray4000[9];
      float var8 = this.aFloatArray4000[13];
      float var9 = this.aFloatArray4000[2];
      float var10 = this.aFloatArray4000[6];
      float var11 = this.aFloatArray4000[10];
      float var12 = this.aFloatArray4000[14];
      float var13 = this.aFloatArray4000[3];
      float var14 = this.aFloatArray4000[7];
      float var15 = this.aFloatArray4000[11];
      float var16 = this.aFloatArray4000[15];
      this.aFloatArray4000[0] = var1;
      this.aFloatArray4000[1] = var2;
      this.aFloatArray4000[2] = var3;
      this.aFloatArray4000[3] = var4;
      this.aFloatArray4000[4] = var5;
      this.aFloatArray4000[5] = var6;
      this.aFloatArray4000[6] = var7;
      this.aFloatArray4000[7] = var8;
      this.aFloatArray4000[8] = var9;
      this.aFloatArray4000[9] = var10;
      this.aFloatArray4000[10] = var11;
      this.aFloatArray4000[11] = var12;
      this.aFloatArray4000[12] = var13;
      this.aFloatArray4000[13] = var14;
      this.aFloatArray4000[14] = var15;
      this.aFloatArray4000[15] = var16;
   }

   public void method5703(float var1, float var2, float var3, float var4, float var5, float var6) {
      this.aFloatArray4000[0] = 2.0F / (var2 - var1);
      this.aFloatArray4000[1] = 0.0F;
      this.aFloatArray4000[2] = 0.0F;
      this.aFloatArray4000[3] = 0.0F;
      this.aFloatArray4000[4] = 0.0F;
      this.aFloatArray4000[5] = 2.0F / (var4 - var3);
      this.aFloatArray4000[6] = 0.0F;
      this.aFloatArray4000[7] = 0.0F;
      this.aFloatArray4000[8] = 0.0F;
      this.aFloatArray4000[9] = 0.0F;
      this.aFloatArray4000[10] = 2.0F / (var6 - var5);
      this.aFloatArray4000[11] = 0.0F;
      this.aFloatArray4000[12] = -(var2 + var1) / (var2 - var1);
      this.aFloatArray4000[13] = -(var4 + var3) / (var4 - var3);
      this.aFloatArray4000[14] = -(var6 + var5) / (var6 - var5);
      this.aFloatArray4000[15] = 1.0F;
   }

   public float[] method5704(float[] var1) {
      float var2 = this.aFloatArray4000[3] + this.aFloatArray4000[1];
      float var3 = this.aFloatArray4000[7] + this.aFloatArray4000[5];
      float var4 = this.aFloatArray4000[11] + this.aFloatArray4000[9];
      double var5 = Math.sqrt((double)(var2 * var2 + var3 * var3 + var4 * var4));
      var1[0] = (float)((double)var2 / var5);
      var1[1] = (float)((double)var3 / var5);
      var1[2] = (float)((double)var4 / var5);
      var1[3] = (float)((double)(this.aFloatArray4000[15] + this.aFloatArray4000[13]) / var5);
      return var1;
   }

   public float[] method5705(float[] var1) {
      float var2 = this.aFloatArray4000[3] + this.aFloatArray4000[1];
      float var3 = this.aFloatArray4000[7] + this.aFloatArray4000[5];
      float var4 = this.aFloatArray4000[11] + this.aFloatArray4000[9];
      double var5 = Math.sqrt((double)(var2 * var2 + var3 * var3 + var4 * var4));
      var1[0] = (float)((double)var2 / var5);
      var1[1] = (float)((double)var3 / var5);
      var1[2] = (float)((double)var4 / var5);
      var1[3] = (float)((double)(this.aFloatArray4000[15] + this.aFloatArray4000[13]) / var5);
      return var1;
   }

   public float[] method5706(float[] var1) {
      float var2 = this.aFloatArray4000[3] - this.aFloatArray4000[1];
      float var3 = this.aFloatArray4000[7] - this.aFloatArray4000[5];
      float var4 = this.aFloatArray4000[11] - this.aFloatArray4000[9];
      double var5 = Math.sqrt((double)(var2 * var2 + var3 * var3 + var4 * var4));
      var1[0] = (float)((double)var2 / var5);
      var1[1] = (float)((double)var3 / var5);
      var1[2] = (float)((double)var4 / var5);
      var1[3] = (float)((double)(this.aFloatArray4000[15] - this.aFloatArray4000[13]) / var5);
      return var1;
   }

   public float[] method5707(float[] var1) {
      float var2 = this.aFloatArray4000[3] + this.aFloatArray4000[0];
      float var3 = this.aFloatArray4000[7] + this.aFloatArray4000[4];
      float var4 = this.aFloatArray4000[11] + this.aFloatArray4000[8];
      double var5 = Math.sqrt((double)(var2 * var2 + var3 * var3 + var4 * var4));
      var1[0] = (float)((double)var2 / var5);
      var1[1] = (float)((double)var3 / var5);
      var1[2] = (float)((double)var4 / var5);
      var1[3] = (float)((double)(this.aFloatArray4000[15] + this.aFloatArray4000[12]) / var5);
      return var1;
   }

   public float[] method5708(float[] var1) {
      System.arraycopy(this.aFloatArray4000, 0, var1, 0, 16);
      var1[3] = 0.0F;
      var1[7] = 0.0F;
      var1[11] = 0.0F;
      var1[12] = 0.0F;
      var1[13] = 0.0F;
      var1[14] = 0.0F;
      var1[15] = 1.0F;
      return var1;
   }

   public float[] method5709(float[] var1) {
      float var2 = this.aFloatArray4000[3] + this.aFloatArray4000[2];
      float var3 = this.aFloatArray4000[7] + this.aFloatArray4000[6];
      float var4 = this.aFloatArray4000[11] + this.aFloatArray4000[10];
      double var5 = Math.sqrt((double)(var2 * var2 + var3 * var3 + var4 * var4));
      var1[0] = (float)((double)var2 / var5);
      var1[1] = (float)((double)var3 / var5);
      var1[2] = (float)((double)var4 / var5);
      var1[3] = (float)((double)(this.aFloatArray4000[15] + this.aFloatArray4000[14]) / var5);
      return var1;
   }

   public int method5710() {
      byte var1 = 1;
      int var2 = 31 * var1 + Arrays.hashCode(this.aFloatArray4000);
      return var2;
   }

   public float[] method5711(float[] var1) {
      float var2 = this.aFloatArray4000[3] - this.aFloatArray4000[2];
      float var3 = this.aFloatArray4000[7] - this.aFloatArray4000[6];
      float var4 = this.aFloatArray4000[11] - this.aFloatArray4000[10];
      double var5 = Math.sqrt((double)(var2 * var2 + var3 * var3 + var4 * var4));
      var1[0] = (float)((double)var2 / var5);
      var1[1] = (float)((double)var3 / var5);
      var1[2] = (float)((double)var4 / var5);
      var1[3] = (float)((double)(this.aFloatArray4000[15] - this.aFloatArray4000[14]) / var5);
      return var1;
   }

   public void method5712() {
      float var1 = this.aFloatArray4000[0];
      float var2 = this.aFloatArray4000[4];
      float var3 = this.aFloatArray4000[8];
      float var4 = this.aFloatArray4000[12];
      float var5 = this.aFloatArray4000[1];
      float var6 = this.aFloatArray4000[5];
      float var7 = this.aFloatArray4000[9];
      float var8 = this.aFloatArray4000[13];
      float var9 = this.aFloatArray4000[2];
      float var10 = this.aFloatArray4000[6];
      float var11 = this.aFloatArray4000[10];
      float var12 = this.aFloatArray4000[14];
      float var13 = this.aFloatArray4000[3];
      float var14 = this.aFloatArray4000[7];
      float var15 = this.aFloatArray4000[11];
      float var16 = this.aFloatArray4000[15];
      this.aFloatArray4000[0] = var1;
      this.aFloatArray4000[1] = var2;
      this.aFloatArray4000[2] = var3;
      this.aFloatArray4000[3] = var4;
      this.aFloatArray4000[4] = var5;
      this.aFloatArray4000[5] = var6;
      this.aFloatArray4000[6] = var7;
      this.aFloatArray4000[7] = var8;
      this.aFloatArray4000[8] = var9;
      this.aFloatArray4000[9] = var10;
      this.aFloatArray4000[10] = var11;
      this.aFloatArray4000[11] = var12;
      this.aFloatArray4000[12] = var13;
      this.aFloatArray4000[13] = var14;
      this.aFloatArray4000[14] = var15;
      this.aFloatArray4000[15] = var16;
   }

   public boolean method5713(Object var1) {
      if(!(var1 instanceof Class317)) {
         return false;
      } else {
         Class317 var2 = (Class317)var1;

         for(int var3 = 0; var3 < 16; ++var3) {
            if(this.aFloatArray4000[var3] != var2.aFloatArray4000[var3]) {
               return false;
            }
         }

         return true;
      }
   }

   public void method5714() {
      float var1 = this.aFloatArray4000[0];
      float var2 = this.aFloatArray4000[4];
      float var3 = this.aFloatArray4000[8];
      float var4 = this.aFloatArray4000[12];
      float var5 = this.aFloatArray4000[1];
      float var6 = this.aFloatArray4000[5];
      float var7 = this.aFloatArray4000[9];
      float var8 = this.aFloatArray4000[13];
      float var9 = this.aFloatArray4000[2];
      float var10 = this.aFloatArray4000[6];
      float var11 = this.aFloatArray4000[10];
      float var12 = this.aFloatArray4000[14];
      float var13 = this.aFloatArray4000[3];
      float var14 = this.aFloatArray4000[7];
      float var15 = this.aFloatArray4000[11];
      float var16 = this.aFloatArray4000[15];
      this.aFloatArray4000[0] = var1;
      this.aFloatArray4000[1] = var2;
      this.aFloatArray4000[2] = var3;
      this.aFloatArray4000[3] = var4;
      this.aFloatArray4000[4] = var5;
      this.aFloatArray4000[5] = var6;
      this.aFloatArray4000[6] = var7;
      this.aFloatArray4000[7] = var8;
      this.aFloatArray4000[8] = var9;
      this.aFloatArray4000[9] = var10;
      this.aFloatArray4000[10] = var11;
      this.aFloatArray4000[11] = var12;
      this.aFloatArray4000[12] = var13;
      this.aFloatArray4000[13] = var14;
      this.aFloatArray4000[14] = var15;
      this.aFloatArray4000[15] = var16;
   }

   public float[] method5715(float[] var1) {
      var1[0] = this.aFloatArray4000[0];
      var1[1] = this.aFloatArray4000[1];
      var1[2] = 0.0F;
      var1[3] = 0.0F;
      var1[4] = this.aFloatArray4000[4];
      var1[5] = this.aFloatArray4000[5];
      var1[6] = 0.0F;
      var1[7] = 0.0F;
      var1[8] = this.aFloatArray4000[12];
      var1[9] = this.aFloatArray4000[13];
      var1[10] = this.aFloatArray4000[14];
      var1[11] = 0.0F;
      var1[12] = 0.0F;
      var1[13] = 0.0F;
      var1[14] = 0.0F;
      var1[15] = 1.0F;
      return var1;
   }

   public float[] method5716(float[] var1) {
      System.arraycopy(this.aFloatArray4000, 0, var1, 0, 16);
      var1[3] = 0.0F;
      var1[7] = 0.0F;
      var1[11] = 0.0F;
      var1[12] = 0.0F;
      var1[13] = 0.0F;
      var1[14] = 0.0F;
      var1[15] = 1.0F;
      return var1;
   }

   public float[] method5717(float[] var1) {
      System.arraycopy(this.aFloatArray4000, 0, var1, 0, 16);
      var1[3] = 0.0F;
      var1[7] = 0.0F;
      var1[11] = 0.0F;
      var1[12] = 0.0F;
      var1[13] = 0.0F;
      var1[14] = 0.0F;
      var1[15] = 1.0F;
      return var1;
   }

   public void method5718() {
      float var1 = 1.0F / this.method5614();
      float var2 = (this.aFloatArray4000[5] * this.aFloatArray4000[10] * this.aFloatArray4000[15] - this.aFloatArray4000[5] * this.aFloatArray4000[11] * this.aFloatArray4000[14] - this.aFloatArray4000[6] * this.aFloatArray4000[9] * this.aFloatArray4000[15] + this.aFloatArray4000[6] * this.aFloatArray4000[11] * this.aFloatArray4000[13] + this.aFloatArray4000[7] * this.aFloatArray4000[9] * this.aFloatArray4000[14] - this.aFloatArray4000[7] * this.aFloatArray4000[10] * this.aFloatArray4000[13]) * var1;
      float var3 = (-this.aFloatArray4000[1] * this.aFloatArray4000[10] * this.aFloatArray4000[15] + this.aFloatArray4000[1] * this.aFloatArray4000[11] * this.aFloatArray4000[14] + this.aFloatArray4000[2] * this.aFloatArray4000[9] * this.aFloatArray4000[15] - this.aFloatArray4000[2] * this.aFloatArray4000[11] * this.aFloatArray4000[13] - this.aFloatArray4000[3] * this.aFloatArray4000[9] * this.aFloatArray4000[14] + this.aFloatArray4000[3] * this.aFloatArray4000[10] * this.aFloatArray4000[13]) * var1;
      float var4 = (this.aFloatArray4000[1] * this.aFloatArray4000[6] * this.aFloatArray4000[15] - this.aFloatArray4000[1] * this.aFloatArray4000[7] * this.aFloatArray4000[14] - this.aFloatArray4000[2] * this.aFloatArray4000[5] * this.aFloatArray4000[15] + this.aFloatArray4000[2] * this.aFloatArray4000[7] * this.aFloatArray4000[13] + this.aFloatArray4000[3] * this.aFloatArray4000[5] * this.aFloatArray4000[14] - this.aFloatArray4000[3] * this.aFloatArray4000[6] * this.aFloatArray4000[13]) * var1;
      float var5 = (-this.aFloatArray4000[1] * this.aFloatArray4000[6] * this.aFloatArray4000[11] + this.aFloatArray4000[1] * this.aFloatArray4000[7] * this.aFloatArray4000[10] + this.aFloatArray4000[2] * this.aFloatArray4000[5] * this.aFloatArray4000[11] - this.aFloatArray4000[2] * this.aFloatArray4000[7] * this.aFloatArray4000[9] - this.aFloatArray4000[3] * this.aFloatArray4000[5] * this.aFloatArray4000[10] + this.aFloatArray4000[3] * this.aFloatArray4000[6] * this.aFloatArray4000[9]) * var1;
      float var6 = (-this.aFloatArray4000[4] * this.aFloatArray4000[10] * this.aFloatArray4000[15] + this.aFloatArray4000[4] * this.aFloatArray4000[11] * this.aFloatArray4000[14] + this.aFloatArray4000[6] * this.aFloatArray4000[8] * this.aFloatArray4000[15] - this.aFloatArray4000[6] * this.aFloatArray4000[11] * this.aFloatArray4000[12] - this.aFloatArray4000[7] * this.aFloatArray4000[8] * this.aFloatArray4000[14] + this.aFloatArray4000[7] * this.aFloatArray4000[10] * this.aFloatArray4000[12]) * var1;
      float var7 = (this.aFloatArray4000[0] * this.aFloatArray4000[10] * this.aFloatArray4000[15] - this.aFloatArray4000[0] * this.aFloatArray4000[11] * this.aFloatArray4000[14] - this.aFloatArray4000[2] * this.aFloatArray4000[8] * this.aFloatArray4000[15] + this.aFloatArray4000[2] * this.aFloatArray4000[11] * this.aFloatArray4000[12] + this.aFloatArray4000[3] * this.aFloatArray4000[8] * this.aFloatArray4000[14] - this.aFloatArray4000[3] * this.aFloatArray4000[10] * this.aFloatArray4000[12]) * var1;
      float var8 = (-this.aFloatArray4000[0] * this.aFloatArray4000[6] * this.aFloatArray4000[15] + this.aFloatArray4000[0] * this.aFloatArray4000[7] * this.aFloatArray4000[14] + this.aFloatArray4000[2] * this.aFloatArray4000[4] * this.aFloatArray4000[15] - this.aFloatArray4000[2] * this.aFloatArray4000[7] * this.aFloatArray4000[12] - this.aFloatArray4000[3] * this.aFloatArray4000[4] * this.aFloatArray4000[14] + this.aFloatArray4000[3] * this.aFloatArray4000[6] * this.aFloatArray4000[12]) * var1;
      float var9 = (this.aFloatArray4000[0] * this.aFloatArray4000[6] * this.aFloatArray4000[11] - this.aFloatArray4000[0] * this.aFloatArray4000[7] * this.aFloatArray4000[10] - this.aFloatArray4000[2] * this.aFloatArray4000[4] * this.aFloatArray4000[11] + this.aFloatArray4000[2] * this.aFloatArray4000[7] * this.aFloatArray4000[8] + this.aFloatArray4000[3] * this.aFloatArray4000[4] * this.aFloatArray4000[10] - this.aFloatArray4000[3] * this.aFloatArray4000[6] * this.aFloatArray4000[8]) * var1;
      float var10 = (this.aFloatArray4000[4] * this.aFloatArray4000[9] * this.aFloatArray4000[15] - this.aFloatArray4000[4] * this.aFloatArray4000[11] * this.aFloatArray4000[13] - this.aFloatArray4000[5] * this.aFloatArray4000[8] * this.aFloatArray4000[15] + this.aFloatArray4000[5] * this.aFloatArray4000[11] * this.aFloatArray4000[12] + this.aFloatArray4000[7] * this.aFloatArray4000[8] * this.aFloatArray4000[13] - this.aFloatArray4000[7] * this.aFloatArray4000[9] * this.aFloatArray4000[12]) * var1;
      float var11 = (-this.aFloatArray4000[0] * this.aFloatArray4000[9] * this.aFloatArray4000[15] + this.aFloatArray4000[0] * this.aFloatArray4000[11] * this.aFloatArray4000[13] + this.aFloatArray4000[1] * this.aFloatArray4000[8] * this.aFloatArray4000[15] - this.aFloatArray4000[1] * this.aFloatArray4000[11] * this.aFloatArray4000[12] - this.aFloatArray4000[3] * this.aFloatArray4000[8] * this.aFloatArray4000[13] + this.aFloatArray4000[3] * this.aFloatArray4000[9] * this.aFloatArray4000[12]) * var1;
      float var12 = (this.aFloatArray4000[0] * this.aFloatArray4000[5] * this.aFloatArray4000[15] - this.aFloatArray4000[0] * this.aFloatArray4000[7] * this.aFloatArray4000[13] - this.aFloatArray4000[1] * this.aFloatArray4000[4] * this.aFloatArray4000[15] + this.aFloatArray4000[1] * this.aFloatArray4000[7] * this.aFloatArray4000[12] + this.aFloatArray4000[3] * this.aFloatArray4000[4] * this.aFloatArray4000[13] - this.aFloatArray4000[3] * this.aFloatArray4000[5] * this.aFloatArray4000[12]) * var1;
      float var13 = (-this.aFloatArray4000[0] * this.aFloatArray4000[5] * this.aFloatArray4000[11] + this.aFloatArray4000[0] * this.aFloatArray4000[7] * this.aFloatArray4000[9] + this.aFloatArray4000[1] * this.aFloatArray4000[4] * this.aFloatArray4000[11] - this.aFloatArray4000[1] * this.aFloatArray4000[7] * this.aFloatArray4000[8] - this.aFloatArray4000[3] * this.aFloatArray4000[4] * this.aFloatArray4000[9] + this.aFloatArray4000[3] * this.aFloatArray4000[5] * this.aFloatArray4000[8]) * var1;
      float var14 = (-this.aFloatArray4000[4] * this.aFloatArray4000[9] * this.aFloatArray4000[14] + this.aFloatArray4000[4] * this.aFloatArray4000[10] * this.aFloatArray4000[13] + this.aFloatArray4000[5] * this.aFloatArray4000[8] * this.aFloatArray4000[14] - this.aFloatArray4000[5] * this.aFloatArray4000[10] * this.aFloatArray4000[12] - this.aFloatArray4000[6] * this.aFloatArray4000[8] * this.aFloatArray4000[13] + this.aFloatArray4000[6] * this.aFloatArray4000[9] * this.aFloatArray4000[12]) * var1;
      float var15 = (this.aFloatArray4000[0] * this.aFloatArray4000[9] * this.aFloatArray4000[14] - this.aFloatArray4000[0] * this.aFloatArray4000[10] * this.aFloatArray4000[13] - this.aFloatArray4000[1] * this.aFloatArray4000[8] * this.aFloatArray4000[14] + this.aFloatArray4000[1] * this.aFloatArray4000[10] * this.aFloatArray4000[12] + this.aFloatArray4000[2] * this.aFloatArray4000[8] * this.aFloatArray4000[13] - this.aFloatArray4000[2] * this.aFloatArray4000[9] * this.aFloatArray4000[12]) * var1;
      float var16 = (-this.aFloatArray4000[0] * this.aFloatArray4000[5] * this.aFloatArray4000[14] + this.aFloatArray4000[0] * this.aFloatArray4000[6] * this.aFloatArray4000[13] + this.aFloatArray4000[1] * this.aFloatArray4000[4] * this.aFloatArray4000[14] - this.aFloatArray4000[1] * this.aFloatArray4000[6] * this.aFloatArray4000[12] - this.aFloatArray4000[2] * this.aFloatArray4000[4] * this.aFloatArray4000[13] + this.aFloatArray4000[2] * this.aFloatArray4000[5] * this.aFloatArray4000[12]) * var1;
      float var17 = (this.aFloatArray4000[0] * this.aFloatArray4000[5] * this.aFloatArray4000[10] - this.aFloatArray4000[0] * this.aFloatArray4000[6] * this.aFloatArray4000[9] - this.aFloatArray4000[1] * this.aFloatArray4000[4] * this.aFloatArray4000[10] + this.aFloatArray4000[1] * this.aFloatArray4000[6] * this.aFloatArray4000[8] + this.aFloatArray4000[2] * this.aFloatArray4000[4] * this.aFloatArray4000[9] - this.aFloatArray4000[2] * this.aFloatArray4000[5] * this.aFloatArray4000[8]) * var1;
      this.aFloatArray4000[0] = var2;
      this.aFloatArray4000[1] = var3;
      this.aFloatArray4000[2] = var4;
      this.aFloatArray4000[3] = var5;
      this.aFloatArray4000[4] = var6;
      this.aFloatArray4000[5] = var7;
      this.aFloatArray4000[6] = var8;
      this.aFloatArray4000[7] = var9;
      this.aFloatArray4000[8] = var10;
      this.aFloatArray4000[9] = var11;
      this.aFloatArray4000[10] = var12;
      this.aFloatArray4000[11] = var13;
      this.aFloatArray4000[12] = var14;
      this.aFloatArray4000[13] = var15;
      this.aFloatArray4000[14] = var16;
      this.aFloatArray4000[15] = var17;
   }

   public float[] method5719(float[] var1) {
      var1[0] = this.aFloatArray4000[0];
      var1[1] = this.aFloatArray4000[4];
      var1[2] = this.aFloatArray4000[8];
      var1[3] = this.aFloatArray4000[12];
      var1[4] = this.aFloatArray4000[1];
      var1[5] = this.aFloatArray4000[5];
      var1[6] = this.aFloatArray4000[9];
      var1[7] = this.aFloatArray4000[13];
      var1[8] = this.aFloatArray4000[2];
      var1[9] = this.aFloatArray4000[6];
      var1[10] = this.aFloatArray4000[10];
      var1[11] = this.aFloatArray4000[14];
      var1[12] = this.aFloatArray4000[3];
      var1[13] = this.aFloatArray4000[7];
      var1[14] = this.aFloatArray4000[11];
      var1[15] = this.aFloatArray4000[15];
      return var1;
   }

   public float[] method5720(float[] var1) {
      var1[0] = this.aFloatArray4000[0];
      var1[1] = this.aFloatArray4000[1];
      var1[2] = this.aFloatArray4000[4];
      var1[3] = this.aFloatArray4000[5];
      var1[4] = this.aFloatArray4000[8];
      var1[5] = this.aFloatArray4000[9];
      var1[6] = this.aFloatArray4000[12];
      var1[7] = this.aFloatArray4000[13];
      return var1;
   }

   public float[] method5721(float[] var1) {
      var1[0] = this.aFloatArray4000[0];
      var1[1] = this.aFloatArray4000[1];
      var1[2] = this.aFloatArray4000[2];
      var1[3] = this.aFloatArray4000[4];
      var1[4] = this.aFloatArray4000[5];
      var1[5] = this.aFloatArray4000[6];
      var1[6] = this.aFloatArray4000[8];
      var1[7] = this.aFloatArray4000[9];
      var1[8] = this.aFloatArray4000[10];
      return var1;
   }

   public float[] method5722(float[] var1) {
      var1[0] = this.aFloatArray4000[0];
      var1[1] = this.aFloatArray4000[1];
      var1[2] = this.aFloatArray4000[4];
      var1[3] = this.aFloatArray4000[5];
      var1[4] = this.aFloatArray4000[8];
      var1[5] = this.aFloatArray4000[9];
      var1[6] = this.aFloatArray4000[12];
      var1[7] = this.aFloatArray4000[13];
      return var1;
   }

   public float[] method5723(float[] var1) {
      var1[0] = this.aFloatArray4000[0];
      var1[1] = this.aFloatArray4000[4];
      var1[2] = this.aFloatArray4000[8];
      var1[3] = this.aFloatArray4000[12];
      var1[4] = this.aFloatArray4000[1];
      var1[5] = this.aFloatArray4000[5];
      var1[6] = this.aFloatArray4000[9];
      var1[7] = this.aFloatArray4000[13];
      return var1;
   }

   public float[] method5724(float[] var1) {
      var1[0] = this.aFloatArray4000[0];
      var1[1] = this.aFloatArray4000[4];
      var1[2] = this.aFloatArray4000[8];
      var1[3] = this.aFloatArray4000[12];
      var1[4] = this.aFloatArray4000[1];
      var1[5] = this.aFloatArray4000[5];
      var1[6] = this.aFloatArray4000[9];
      var1[7] = this.aFloatArray4000[13];
      return var1;
   }

   public float[] method5725(float[] var1) {
      var1[0] = this.aFloatArray4000[0];
      var1[1] = this.aFloatArray4000[1];
      var1[2] = 0.0F;
      var1[3] = 0.0F;
      var1[4] = this.aFloatArray4000[4];
      var1[5] = this.aFloatArray4000[5];
      var1[6] = 0.0F;
      var1[7] = 0.0F;
      var1[8] = this.aFloatArray4000[12];
      var1[9] = this.aFloatArray4000[13];
      var1[10] = this.aFloatArray4000[14];
      var1[11] = 0.0F;
      var1[12] = 0.0F;
      var1[13] = 0.0F;
      var1[14] = 0.0F;
      var1[15] = 1.0F;
      return var1;
   }

   public int method5726() {
      byte var1 = 1;
      int var2 = 31 * var1 + Arrays.hashCode(this.aFloatArray4000);
      return var2;
   }

   public void method5727(int var1, int var2, int var3, float var4, float var5, float var6) {
      float[] var9;
      float[] var10;
      float[] var11;
      float[] var12;
      float[] var13;
      if(var1 != 0) {
         float var7 = Class322.aFloatArray4023[var1 & 16383];
         float var8 = Class322.aFloatArray4024[var1 & 16383];
         this.aFloatArray4000[0] = var7 * (float)var2;
         this.aFloatArray4000[5] = var7 * (float)var3;
         this.aFloatArray4000[1] = var8 * (float)var2;
         this.aFloatArray4000[4] = -var8 * (float)var3;
         this.aFloatArray4000[10] = 1.0F;
         var9 = this.aFloatArray4000;
         var10 = this.aFloatArray4000;
         var11 = this.aFloatArray4000;
         this.aFloatArray4000[9] = 0.0F;
         var11[8] = 0.0F;
         var10[6] = 0.0F;
         var9[2] = 0.0F;
      } else {
         this.aFloatArray4000[0] = (float)var2;
         this.aFloatArray4000[5] = (float)var3;
         this.aFloatArray4000[10] = 1.0F;
         var12 = this.aFloatArray4000;
         var13 = this.aFloatArray4000;
         var9 = this.aFloatArray4000;
         var10 = this.aFloatArray4000;
         var11 = this.aFloatArray4000;
         this.aFloatArray4000[9] = 0.0F;
         var11[8] = 0.0F;
         var10[6] = 0.0F;
         var9[4] = 0.0F;
         var13[2] = 0.0F;
         var12[1] = 0.0F;
      }

      var12 = this.aFloatArray4000;
      var13 = this.aFloatArray4000;
      this.aFloatArray4000[11] = 0.0F;
      var13[7] = 0.0F;
      var12[3] = 0.0F;
      this.aFloatArray4000[15] = 1.0F;
      this.aFloatArray4000[12] = var4;
      this.aFloatArray4000[13] = var5;
      this.aFloatArray4000[14] = var6;
   }

   public float[] method5728(float[] var1) {
      float var2 = this.aFloatArray4000[3] + this.aFloatArray4000[2];
      float var3 = this.aFloatArray4000[7] + this.aFloatArray4000[6];
      float var4 = this.aFloatArray4000[11] + this.aFloatArray4000[10];
      double var5 = Math.sqrt((double)(var2 * var2 + var3 * var3 + var4 * var4));
      var1[0] = (float)((double)var2 / var5);
      var1[1] = (float)((double)var3 / var5);
      var1[2] = (float)((double)var4 / var5);
      var1[3] = (float)((double)(this.aFloatArray4000[15] + this.aFloatArray4000[14]) / var5);
      return var1;
   }

   public int method5729() {
      byte var1 = 1;
      int var2 = 31 * var1 + Arrays.hashCode(this.aFloatArray4000);
      return var2;
   }

   public void method5730() {
      float var1 = 1.0F / this.method5614();
      float var2 = (this.aFloatArray4000[5] * this.aFloatArray4000[10] * this.aFloatArray4000[15] - this.aFloatArray4000[5] * this.aFloatArray4000[11] * this.aFloatArray4000[14] - this.aFloatArray4000[6] * this.aFloatArray4000[9] * this.aFloatArray4000[15] + this.aFloatArray4000[6] * this.aFloatArray4000[11] * this.aFloatArray4000[13] + this.aFloatArray4000[7] * this.aFloatArray4000[9] * this.aFloatArray4000[14] - this.aFloatArray4000[7] * this.aFloatArray4000[10] * this.aFloatArray4000[13]) * var1;
      float var3 = (-this.aFloatArray4000[1] * this.aFloatArray4000[10] * this.aFloatArray4000[15] + this.aFloatArray4000[1] * this.aFloatArray4000[11] * this.aFloatArray4000[14] + this.aFloatArray4000[2] * this.aFloatArray4000[9] * this.aFloatArray4000[15] - this.aFloatArray4000[2] * this.aFloatArray4000[11] * this.aFloatArray4000[13] - this.aFloatArray4000[3] * this.aFloatArray4000[9] * this.aFloatArray4000[14] + this.aFloatArray4000[3] * this.aFloatArray4000[10] * this.aFloatArray4000[13]) * var1;
      float var4 = (this.aFloatArray4000[1] * this.aFloatArray4000[6] * this.aFloatArray4000[15] - this.aFloatArray4000[1] * this.aFloatArray4000[7] * this.aFloatArray4000[14] - this.aFloatArray4000[2] * this.aFloatArray4000[5] * this.aFloatArray4000[15] + this.aFloatArray4000[2] * this.aFloatArray4000[7] * this.aFloatArray4000[13] + this.aFloatArray4000[3] * this.aFloatArray4000[5] * this.aFloatArray4000[14] - this.aFloatArray4000[3] * this.aFloatArray4000[6] * this.aFloatArray4000[13]) * var1;
      float var5 = (-this.aFloatArray4000[1] * this.aFloatArray4000[6] * this.aFloatArray4000[11] + this.aFloatArray4000[1] * this.aFloatArray4000[7] * this.aFloatArray4000[10] + this.aFloatArray4000[2] * this.aFloatArray4000[5] * this.aFloatArray4000[11] - this.aFloatArray4000[2] * this.aFloatArray4000[7] * this.aFloatArray4000[9] - this.aFloatArray4000[3] * this.aFloatArray4000[5] * this.aFloatArray4000[10] + this.aFloatArray4000[3] * this.aFloatArray4000[6] * this.aFloatArray4000[9]) * var1;
      float var6 = (-this.aFloatArray4000[4] * this.aFloatArray4000[10] * this.aFloatArray4000[15] + this.aFloatArray4000[4] * this.aFloatArray4000[11] * this.aFloatArray4000[14] + this.aFloatArray4000[6] * this.aFloatArray4000[8] * this.aFloatArray4000[15] - this.aFloatArray4000[6] * this.aFloatArray4000[11] * this.aFloatArray4000[12] - this.aFloatArray4000[7] * this.aFloatArray4000[8] * this.aFloatArray4000[14] + this.aFloatArray4000[7] * this.aFloatArray4000[10] * this.aFloatArray4000[12]) * var1;
      float var7 = (this.aFloatArray4000[0] * this.aFloatArray4000[10] * this.aFloatArray4000[15] - this.aFloatArray4000[0] * this.aFloatArray4000[11] * this.aFloatArray4000[14] - this.aFloatArray4000[2] * this.aFloatArray4000[8] * this.aFloatArray4000[15] + this.aFloatArray4000[2] * this.aFloatArray4000[11] * this.aFloatArray4000[12] + this.aFloatArray4000[3] * this.aFloatArray4000[8] * this.aFloatArray4000[14] - this.aFloatArray4000[3] * this.aFloatArray4000[10] * this.aFloatArray4000[12]) * var1;
      float var8 = (-this.aFloatArray4000[0] * this.aFloatArray4000[6] * this.aFloatArray4000[15] + this.aFloatArray4000[0] * this.aFloatArray4000[7] * this.aFloatArray4000[14] + this.aFloatArray4000[2] * this.aFloatArray4000[4] * this.aFloatArray4000[15] - this.aFloatArray4000[2] * this.aFloatArray4000[7] * this.aFloatArray4000[12] - this.aFloatArray4000[3] * this.aFloatArray4000[4] * this.aFloatArray4000[14] + this.aFloatArray4000[3] * this.aFloatArray4000[6] * this.aFloatArray4000[12]) * var1;
      float var9 = (this.aFloatArray4000[0] * this.aFloatArray4000[6] * this.aFloatArray4000[11] - this.aFloatArray4000[0] * this.aFloatArray4000[7] * this.aFloatArray4000[10] - this.aFloatArray4000[2] * this.aFloatArray4000[4] * this.aFloatArray4000[11] + this.aFloatArray4000[2] * this.aFloatArray4000[7] * this.aFloatArray4000[8] + this.aFloatArray4000[3] * this.aFloatArray4000[4] * this.aFloatArray4000[10] - this.aFloatArray4000[3] * this.aFloatArray4000[6] * this.aFloatArray4000[8]) * var1;
      float var10 = (this.aFloatArray4000[4] * this.aFloatArray4000[9] * this.aFloatArray4000[15] - this.aFloatArray4000[4] * this.aFloatArray4000[11] * this.aFloatArray4000[13] - this.aFloatArray4000[5] * this.aFloatArray4000[8] * this.aFloatArray4000[15] + this.aFloatArray4000[5] * this.aFloatArray4000[11] * this.aFloatArray4000[12] + this.aFloatArray4000[7] * this.aFloatArray4000[8] * this.aFloatArray4000[13] - this.aFloatArray4000[7] * this.aFloatArray4000[9] * this.aFloatArray4000[12]) * var1;
      float var11 = (-this.aFloatArray4000[0] * this.aFloatArray4000[9] * this.aFloatArray4000[15] + this.aFloatArray4000[0] * this.aFloatArray4000[11] * this.aFloatArray4000[13] + this.aFloatArray4000[1] * this.aFloatArray4000[8] * this.aFloatArray4000[15] - this.aFloatArray4000[1] * this.aFloatArray4000[11] * this.aFloatArray4000[12] - this.aFloatArray4000[3] * this.aFloatArray4000[8] * this.aFloatArray4000[13] + this.aFloatArray4000[3] * this.aFloatArray4000[9] * this.aFloatArray4000[12]) * var1;
      float var12 = (this.aFloatArray4000[0] * this.aFloatArray4000[5] * this.aFloatArray4000[15] - this.aFloatArray4000[0] * this.aFloatArray4000[7] * this.aFloatArray4000[13] - this.aFloatArray4000[1] * this.aFloatArray4000[4] * this.aFloatArray4000[15] + this.aFloatArray4000[1] * this.aFloatArray4000[7] * this.aFloatArray4000[12] + this.aFloatArray4000[3] * this.aFloatArray4000[4] * this.aFloatArray4000[13] - this.aFloatArray4000[3] * this.aFloatArray4000[5] * this.aFloatArray4000[12]) * var1;
      float var13 = (-this.aFloatArray4000[0] * this.aFloatArray4000[5] * this.aFloatArray4000[11] + this.aFloatArray4000[0] * this.aFloatArray4000[7] * this.aFloatArray4000[9] + this.aFloatArray4000[1] * this.aFloatArray4000[4] * this.aFloatArray4000[11] - this.aFloatArray4000[1] * this.aFloatArray4000[7] * this.aFloatArray4000[8] - this.aFloatArray4000[3] * this.aFloatArray4000[4] * this.aFloatArray4000[9] + this.aFloatArray4000[3] * this.aFloatArray4000[5] * this.aFloatArray4000[8]) * var1;
      float var14 = (-this.aFloatArray4000[4] * this.aFloatArray4000[9] * this.aFloatArray4000[14] + this.aFloatArray4000[4] * this.aFloatArray4000[10] * this.aFloatArray4000[13] + this.aFloatArray4000[5] * this.aFloatArray4000[8] * this.aFloatArray4000[14] - this.aFloatArray4000[5] * this.aFloatArray4000[10] * this.aFloatArray4000[12] - this.aFloatArray4000[6] * this.aFloatArray4000[8] * this.aFloatArray4000[13] + this.aFloatArray4000[6] * this.aFloatArray4000[9] * this.aFloatArray4000[12]) * var1;
      float var15 = (this.aFloatArray4000[0] * this.aFloatArray4000[9] * this.aFloatArray4000[14] - this.aFloatArray4000[0] * this.aFloatArray4000[10] * this.aFloatArray4000[13] - this.aFloatArray4000[1] * this.aFloatArray4000[8] * this.aFloatArray4000[14] + this.aFloatArray4000[1] * this.aFloatArray4000[10] * this.aFloatArray4000[12] + this.aFloatArray4000[2] * this.aFloatArray4000[8] * this.aFloatArray4000[13] - this.aFloatArray4000[2] * this.aFloatArray4000[9] * this.aFloatArray4000[12]) * var1;
      float var16 = (-this.aFloatArray4000[0] * this.aFloatArray4000[5] * this.aFloatArray4000[14] + this.aFloatArray4000[0] * this.aFloatArray4000[6] * this.aFloatArray4000[13] + this.aFloatArray4000[1] * this.aFloatArray4000[4] * this.aFloatArray4000[14] - this.aFloatArray4000[1] * this.aFloatArray4000[6] * this.aFloatArray4000[12] - this.aFloatArray4000[2] * this.aFloatArray4000[4] * this.aFloatArray4000[13] + this.aFloatArray4000[2] * this.aFloatArray4000[5] * this.aFloatArray4000[12]) * var1;
      float var17 = (this.aFloatArray4000[0] * this.aFloatArray4000[5] * this.aFloatArray4000[10] - this.aFloatArray4000[0] * this.aFloatArray4000[6] * this.aFloatArray4000[9] - this.aFloatArray4000[1] * this.aFloatArray4000[4] * this.aFloatArray4000[10] + this.aFloatArray4000[1] * this.aFloatArray4000[6] * this.aFloatArray4000[8] + this.aFloatArray4000[2] * this.aFloatArray4000[4] * this.aFloatArray4000[9] - this.aFloatArray4000[2] * this.aFloatArray4000[5] * this.aFloatArray4000[8]) * var1;
      this.aFloatArray4000[0] = var2;
      this.aFloatArray4000[1] = var3;
      this.aFloatArray4000[2] = var4;
      this.aFloatArray4000[3] = var5;
      this.aFloatArray4000[4] = var6;
      this.aFloatArray4000[5] = var7;
      this.aFloatArray4000[6] = var8;
      this.aFloatArray4000[7] = var9;
      this.aFloatArray4000[8] = var10;
      this.aFloatArray4000[9] = var11;
      this.aFloatArray4000[10] = var12;
      this.aFloatArray4000[11] = var13;
      this.aFloatArray4000[12] = var14;
      this.aFloatArray4000[13] = var15;
      this.aFloatArray4000[14] = var16;
      this.aFloatArray4000[15] = var17;
   }

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

   public void method5732(float var1, float var2, float var3) {
      this.method5703(-10000.0F / var3, 10000.0F / var3, -10000.0F / var3, 10000.0F / var3, var1, var2);
   }

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