namespace PixelSecurity.Core.SecuredTypes
{

	// [TypeInfo RVA: 0x0]
	public sealed struct SecuredQuaternion : ValueType
	{
		private static int _cryptoKey; // 0x0
		private static readonly UnityEngine.Quaternion initialFakeValue; // 0x4
		private int currentCryptoKey; // 0x10
		private PixelSecurity.Core.SecuredTypes.SecuredQuaternion.RawEncryptedQuaternion hiddenValue; // 0x14
		private UnityEngine.Quaternion fakeValue; // 0x24
		private bool inited; // 0x34

		// RVA: 0x32A51F8 VA: 0x78189901F8
		private void .ctor(PixelSecurity.Core.SecuredTypes.SecuredQuaternion.RawEncryptedQuaternion value);
		/*
		 *   undefined4 uVar1;
		 *   undefined *puVar2;
		 *   long lVar3;
		 *   undefined8 uVar4;
		 *   undefined8 uVar5;
		 *
		 *   puVar2 = PTR_DAT_070c66d0;
		 *   if ((bRam000000000754ae9e & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66d0);
		 *     bRam000000000754ae9e = 1;
		 *   }
		 *   lVar3 = *(long *)puVar2;
		 *   if (*(int *)(lVar3 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     lVar3 = *(long *)puVar2;
		 *   }
		 *   uVar1 = **(undefined4 **)(lVar3 + 0xb8);
		 *   *(RawEncryptedQuaternion **)&this.field_0x4 = value;
		 *   lVar3 = *(long *)puVar2;
		 *   *(void **)&this.field_0xc = methodInfo;
		 *   *(undefined4 *)this = uVar1;
		 *   uVar5 = *(undefined8 *)(*(long *)(lVar3 + 0xb8) + 0xc);
		 *   uVar4 = *(undefined8 *)(*(long *)(lVar3 + 0xb8) + 4);
		 *   *(undefined1 *)&(this.fakeValue).x = 1;
		 *   *(undefined8 *)&this.field_0x1c = uVar5;
		 *   *(undefined8 *)&this.field_0x14 = uVar4;
		 *   return;
		 */
		// RVA: 0x32A5288 VA: 0x7818990288
		public static void SetCryptoKey(int newKey);
		/*
		 *   undefined *puVar1;
		 *   long lVar2;
		 *   void *extraout_x1;
		 *
		 *   puVar1 = PTR_DAT_070c66d0;
		 *   if ((bRam000000000754ae9f & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66d0);
		 *     bRam000000000754ae9f = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   lVar2 = *(long *)puVar1;
		 *   if (*(int *)(lVar2 + 0xe4) == 0) {
		 *     func_0x031fde08(lVar2,methodInfo);
		 *     lVar2 = *(long *)puVar1;
		 *   }
		 *   **(int **)(lVar2 + 0xb8) = newKey;
		 *   return;
		 */
		// RVA: 0x32A52E4 VA: 0x78189902E4
		public void ApplyNewCryptoKey();
		/*
		 *   int iVar1;
		 *   undefined *puVar2;
		 *   long lVar3;
		 *   undefined8 extraout_x0;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *extraout_x1_01;
		 *   void *methodInfo_00;
		 *   undefined8 extraout_x1_02;
		 *   UnityEngine_Vector4 value;
		 *
		 *   puVar2 = PTR_DAT_070c66d0;
		 *   if ((bRam000000000754aea0 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66d0);
		 *     bRam000000000754aea0 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   lVar3 = *(long *)puVar2;
		 *   iVar1 = *(int *)this;
		 *   if (*(int *)(lVar3 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     lVar3 = *(long *)puVar2;
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   if (iVar1 != **(int **)(lVar3 + 0xb8)) {
		 *     if (*(int *)(lVar3 + 0xe4) == 0) {
		 *       func_0x031fde08();
		 *       methodInfo = extraout_x1_01;
		 *     }
		 *     value = SecuredQuaternion.InternalDecrypt(this);
		 *     SecuredQuaternion.Encrypt(*(RawEncryptedQuaternion **)(*(long *)puVar2 + 0xb8),value,*(int *)*(RawEncryptedQuaternion **)(*(long *)puVar2 + 0xb8),methodInfo_00);
		 *     *(undefined8 *)&this.field_0x4 = extraout_x0;
		 *     lVar3 = *(long *)puVar2;
		 *     *(undefined8 *)&this.field_0xc = extraout_x1_02;
		 *     *(undefined4 *)this = **(undefined4 **)(lVar3 + 0xb8);
		 *   }
		 *   return;
		 */
		// RVA: 0x32A56AC VA: 0x78189906AC
		public static PixelSecurity.Core.SecuredTypes.SecuredQuaternion.RawEncryptedQuaternion Encrypt(UnityEngine.Quaternion value);
		/*
		 *   undefined *puVar1;
		 *   undefined *puVar2;
		 *   undefined8 uVar3;
		 *
		 *   puVar1 = PTR_DAT_070c66d0;
		 *   if ((bRam000000000754aea1 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66d0);
		 *     bRam000000000754aea1 = 1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *   }
		 *   if ((bRam000000000754aea2 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6480);
		 *     func_0x031fdc8c(PTR_DAT_070c66d0);
		 *     bRam000000000754aea2 = 1;
		 *   }
		 *   puVar2 = PTR_DAT_070c66d0;
		 *   puVar1 = PTR_DAT_070c6480;
		 *   if (*(int *)(*(long *)PTR_DAT_070c66d0 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     uVar3 = *(undefined8 *)puVar2;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *   }
		 *   return;
		 */
		// RVA: 0x32A55E8 VA: 0x78189905E8
		public static PixelSecurity.Core.SecuredTypes.SecuredQuaternion.RawEncryptedQuaternion Encrypt(UnityEngine.Quaternion value, int key);
		/*
		 *   undefined *puVar1;
		 *   undefined *puVar2;
		 *   undefined8 uVar3;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *
		 *   if ((bRam000000000754aea2 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6480);
		 *     func_0x031fdc8c(PTR_DAT_070c66d0);
		 *     bRam000000000754aea2 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   puVar2 = PTR_DAT_070c66d0;
		 *   puVar1 = PTR_DAT_070c6480;
		 *   if ((key == 0) && (*(int *)(*(long *)PTR_DAT_070c66d0 + 0xe4) == 0)) {
		 *     func_0x031fde08(*(long *)PTR_DAT_070c66d0,methodInfo);
		 *     uVar3 = *(undefined8 *)puVar2;
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08(*(long *)puVar1,methodInfo);
		 *   }
		 *   return;
		 */
		// RVA: 0x32A572C VA: 0x781899072C
		public static UnityEngine.Quaternion Decrypt(PixelSecurity.Core.SecuredTypes.SecuredQuaternion.RawEncryptedQuaternion value);
		/*
		 *   uint uVar1;
		 *   undefined *puVar2;
		 *   undefined *puVar3;
		 *   long lVar4;
		 *   UnityEngine_Vector4 UVar5;
		 *
		 *   puVar2 = PTR_DAT_070c66d0;
		 *   if ((bRam000000000754aea3 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66d0);
		 *     bRam000000000754aea3 = 1;
		 *   }
		 *   if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *   }
		 *   if ((bRam000000000754aea4 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6480);
		 *     func_0x031fdc8c(PTR_DAT_070c66d0);
		 *     bRam000000000754aea4 = 1;
		 *   }
		 *   puVar3 = PTR_DAT_070c66d0;
		 *   puVar2 = PTR_DAT_070c6480;
		 *   lVar4 = *(long *)PTR_DAT_070c66d0;
		 *   if (*(int *)(lVar4 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     lVar4 = *(long *)puVar3;
		 *   }
		 *   uVar1 = **(uint **)(lVar4 + 0xb8);
		 *   if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *   }
		 *   UVar5.y = (float)(uVar1 ^ (uint)((ulong)value >> 0x20));
		 *   UVar5.x = (float)(uVar1 ^ (uint)value);
		 *   UVar5.w = (float)(uVar1 ^ (uint)((ulong)methodInfo >> 0x20));
		 *   UVar5.z = (float)(uVar1 ^ (uint)methodInfo);
		 *   return UVar5;
		 */
		// RVA: 0x32A5794 VA: 0x7818990794
		public static UnityEngine.Quaternion Decrypt(PixelSecurity.Core.SecuredTypes.SecuredQuaternion.RawEncryptedQuaternion value, int key);
		/*
		 *   undefined *puVar1;
		 *   undefined *puVar2;
		 *   long lVar3;
		 *   uint uVar4;
		 *   UnityEngine_Vector4 UVar5;
		 *
		 *   uVar4 = (uint)methodInfo;
		 *   if ((bRam000000000754aea4 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6480);
		 *     func_0x031fdc8c(PTR_DAT_070c66d0);
		 *     bRam000000000754aea4 = 1;
		 *   }
		 *   puVar2 = PTR_DAT_070c66d0;
		 *   puVar1 = PTR_DAT_070c6480;
		 *   if (uVar4 == 0) {
		 *     lVar3 = *(long *)PTR_DAT_070c66d0;
		 *     if (*(int *)(lVar3 + 0xe4) == 0) {
		 *       func_0x031fde08();
		 *       lVar3 = *(long *)puVar2;
		 *     }
		 *     uVar4 = **(uint **)(lVar3 + 0xb8);
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *   }
		 *   UVar5.y = (float)(uVar4 ^ (uint)((ulong)value >> 0x20));
		 *   UVar5.x = (float)(uVar4 ^ (uint)value);
		 *   UVar5.w = (float)uVar4;
		 *   UVar5.z = (float)(uVar4 ^ key);
		 *   return UVar5;
		 */
		// RVA: 0x32A5850 VA: 0x7818990850
		public PixelSecurity.Core.SecuredTypes.SecuredQuaternion.RawEncryptedQuaternion GetEncrypted();
		/*
		 *   undefined *puVar1;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *
		 *   puVar1 = PTR_DAT_070c66d0;
		 *   if ((bRam000000000754aea5 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66d0);
		 *     bRam000000000754aea5 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   SecuredQuaternion.ApplyNewCryptoKey(this);
		 *   return;
		 */
		// RVA: 0x32A58B0 VA: 0x78189908B0
		public void SetEncrypted(PixelSecurity.Core.SecuredTypes.SecuredQuaternion.RawEncryptedQuaternion encrypted);
		/*
		 *   void *pvVar1;
		 *   void *extraout_x1;
		 *   undefined1 auVar2 [16];
		 *   UnityEngine_Vector4 UVar3;
		 *
		 *   if ((bRam000000000754aea6 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6630);
		 *     func_0x031fdc8c(PTR_DAT_070c66d0);
		 *     bRam000000000754aea6 = 1;
		 *   }
		 *   *(RawEncryptedQuaternion **)&this.field_0x4 = encrypted;
		 *   *(undefined1 *)&(this.fakeValue).x = 1;
		 *   *(void **)&this.field_0xc = methodInfo;
		 *   pvVar1 = PixelGuard.get_Instance();
		 *   if (pvVar1 != null) {
		 *     auVar2 = func_0x038d6228(pvVar1,*(undefined8 *)PTR_DAT_070c6630);
		 *     pvVar1 = auVar2._8_8_;
		 *     if ((auVar2._0_8_ & 1) != 0) {
		 *       if (*(int *)(*(long *)PTR_DAT_070c66d0 + 0xe4) == 0) {
		 *         func_0x031fde08();
		 *         pvVar1 = extraout_x1;
		 *       }
		 *       UVar3 = SecuredQuaternion.InternalDecrypt(this);
		 *       *(float *)&this.field_0x14 = UVar3.x;
		 *       *(float *)&this.field_0x18 = UVar3.y;
		 *       *(float *)&this.field_0x1c = UVar3.z;
		 *       *(float *)&this.field_0x20 = UVar3.w;
		 *     }
		 *     return;
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32A5388 VA: 0x7818990388
		private UnityEngine.Quaternion InternalDecrypt();
		/*
		 *   uint uVar1;
		 *   uint uVar2;
		 *   uint uVar3;
		 *   UnityEngine_Vector4 value;
		 *   UnityEngine_Vector4 q2;
		 *   undefined *puVar4;
		 *   undefined *puVar5;
		 *   bool bVar6;
		 *   void *pvVar7;
		 *   undefined8 extraout_x0;
		 *   ulong uVar8;
		 *   long lVar9;
		 *   PixelGuard *this_00;
		 *   void *extraout_x1;
		 *   undefined8 extraout_x1_00;
		 *   undefined8 extraout_x1_01;
		 *   undefined8 extraout_x1_02;
		 *   undefined8 extraout_x1_03;
		 *   undefined8 extraout_x1_04;
		 *   RawEncryptedQuaternion *__return_storage_ptr__;
		 *   undefined4 uVar10;
		 *   undefined8 uVar14;
		 *   undefined4 uVar15;
		 *   undefined8 uVar16;
		 *   float obj;
		 *   float obj_00;
		 *   float obj_01;
		 *   undefined1 auVar17 [16];
		 *   UnityEngine_Vector4 q1;
		 *   UnityEngine_Vector4 UVar18;
		 *   byte bVar11;
		 *   byte bVar12;
		 *   byte bVar13;
		 *
		 *   puVar5 = PTR_DAT_070c66d0;
		 *   if ((bRam000000000754aea7 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6628);
		 *     func_0x031fdc8c(PTR_DAT_070c6630);
		 *     func_0x031fdc8c(PTR_DAT_070c6480);
		 *     func_0x031fdc8c(PTR_DAT_070c66d0);
		 *     func_0x031fdc8c(PTR_DAT_070c6638);
		 *     bRam000000000754aea7 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   pvVar7 = *(void **)puVar5;
		 *   if (*(char *)&(this.fakeValue).x == '\0') {
		 *     if (*(int *)((long)pvVar7 + 0xe4) == 0) {
		 *       func_0x031fde08(pvVar7,methodInfo);
		 *       pvVar7 = *(void **)puVar5;
		 *     }
		 *     __return_storage_ptr__ = *(RawEncryptedQuaternion **)((long)pvVar7 + 0xb8);
		 *     *(undefined4 *)this = *(undefined4 *)__return_storage_ptr__;
		 *     value.x = *(float *)&__return_storage_ptr__->field_0x4;
		 *     value.y = *(float *)&__return_storage_ptr__->field_0x8;
		 *     value.z = *(float *)&__return_storage_ptr__->field_0xc;
		 *     value.w = (float)__return_storage_ptr__->x;
		 *     SecuredQuaternion.Encrypt(__return_storage_ptr__,value,pvVar7);
		 *     *(undefined8 *)&this.field_0x4 = extraout_x0;
		 *     pvVar7 = *(void **)puVar5;
		 *     *(undefined8 *)&this.field_0xc = extraout_x1_00;
		 *     uVar14 = *(undefined8 *)(*(long *)((long)pvVar7 + 0xb8) + 0xc);
		 *     uVar16 = *(undefined8 *)(*(long *)((long)pvVar7 + 0xb8) + 4);
		 *     *(undefined1 *)&(this.fakeValue).x = 1;
		 *     *(undefined8 *)&this.field_0x1c = uVar14;
		 *     *(undefined8 *)&this.field_0x14 = uVar16;
		 *   }
		 *   puVar4 = PTR_DAT_070c6480;
		 *   if (*(int *)((long)pvVar7 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *   }
		 *   uVar1 = *(uint *)this;
		 *   uVar2 = *(uint *)&this.field_0x4;
		 *   if (*(int *)(*(long *)puVar4 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *   }
		 *   uVar16 = *(undefined8 *)&this.field_0x8;
		 *   uVar3 = this.currentCryptoKey;
		 *   pvVar7 = PixelGuard.get_Instance();
		 *   if (pvVar7 != null) {
		 *     uVar2 = uVar2 ^ uVar1;
		 *     uVar3 = uVar3 ^ uVar1;
		 *     bVar11 = (byte)(uVar1 >> 8);
		 *     bVar12 = (byte)(uVar1 >> 0x10);
		 *     bVar13 = (byte)(uVar1 >> 0x18);
		 *     uVar10 = CONCAT13((byte)((ulong)uVar16 >> 0x18) ^ bVar13,
		 *                       CONCAT12((byte)((ulong)uVar16 >> 0x10) ^ bVar12,
		 *                                CONCAT11((byte)((ulong)uVar16 >> 8) ^ bVar11,
		 *                                         (byte)uVar16 ^ (byte)uVar1)));
		 *     uVar8 = func_0x038d6228(pvVar7,*(undefined8 *)PTR_DAT_070c6630);
		 *     uVar15 = (undefined4)
		 *              (CONCAT17((byte)((ulong)uVar16 >> 0x38) ^ bVar13,
		 *                        CONCAT16((byte)((ulong)uVar16 >> 0x30) ^ bVar12,
		 *                                 CONCAT15((byte)((ulong)uVar16 >> 0x28) ^ bVar11,
		 *                                          CONCAT14((byte)((ulong)uVar16 >> 0x20) ^ (byte)uVar1,uVar10
		 *                                                  )))) >> 0x20);
		 *     if ((uVar8 & 1) != 0) {
		 *       lVar9 = *(long *)puVar5;
		 *       if (*(int *)(lVar9 + 0xe4) == 0) {
		 *         func_0x031fde08();
		 *         lVar9 = *(long *)puVar5;
		 *       }
		 *       lVar9 = *(long *)(lVar9 + 0xb8);
		 *       obj_01 = *(float *)(lVar9 + 8);
		 *       obj_00 = *(float *)(lVar9 + 0xc);
		 *       obj = *(float *)(lVar9 + 0x10);
		 *       bVar6 = System.Single.Equals(&this.field_0x14,*(float *)(lVar9 + 4));
		 *       uVar16 = extraout_x1_01;
		 *       if ((((!bVar6) ||
		 *            (bVar6 = System.Single.Equals(&this.field_0x18,obj_01),
		 *            uVar16 = extraout_x1_02, !bVar6)) ||
		 *           (bVar6 = System.Single.Equals(&this.field_0x1c,obj_00),
		 *           uVar16 = extraout_x1_03, !bVar6)) ||
		 *          (bVar6 = System.Single.Equals(&this.field_0x20,obj),
		 *          uVar16 = extraout_x1_04, !bVar6)) {
		 *         auVar17._8_8_ = uVar16;
		 *         auVar17._0_8_ = *(long *)puVar5;
		 *         q2.x = *(float *)&this.field_0x14;
		 *         q2.y = *(float *)&this.field_0x18;
		 *         q2.z = *(float *)&this.field_0x1c;
		 *         q2.w = *(float *)&this.field_0x20;
		 *         if (*(int *)(*(long *)puVar5 + 0xe4) == 0) {
		 *           auVar17 = func_0x031fde08();
		 *         }
		 *         q1.y = (float)uVar10;
		 *         q1.x = (float)uVar2;
		 *         q1.w = (float)uVar3;
		 *         q1.z = (float)uVar15;
		 *         bVar6 = SecuredQuaternion.CompareQuaternionsWithTolerance(auVar17._0_8_,q1,q2);
		 *         if (!bVar6) {
		 *           this_00 = PixelGuard.get_Instance();
		 *           pvVar7 = PixelGuard.get_Instance();
		 *           if ((pvVar7 == null) ||
		 *              (pvVar7 = (void *)func_0x038d5f58(pvVar7,*(undefined8 *)PTR_DAT_070c6628),
		 *              this_00 == null)) goto LAB_033a55e4;
		 *           PixelGuard.CreateSecurityWarning(this_00,*(void **)PTR_DAT_070c6638,pvVar7);
		 *         }
		 *       }
		 *     }
		 *     UVar18.y = (float)uVar10;
		 *     UVar18.x = (float)uVar2;
		 *     UVar18.w = (float)uVar3;
		 *     UVar18.z = (float)uVar15;
		 *     return UVar18;
		 *   }
		 * LAB_033a55e4:
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32A5960 VA: 0x7818990960
		private bool CompareQuaternionsWithTolerance(UnityEngine.Quaternion q1, UnityEngine.Quaternion q2);
		/*
		 *   byte bVar1;
		 *   undefined *puVar2;
		 *   void *pvVar3;
		 *   long *plVar4;
		 *   float fVar5;
		 *
		 *   if ((bRam000000000754aea8 & 1) == 0) {
		 *     func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
		 *     func_0x031fdc8c(PTR_DAT_070c6628);
		 *     func_0x031fdc8c(PTR_DAT_070c6658);
		 *     bRam000000000754aea8 = 1;
		 *   }
		 *   pvVar3 = PixelGuard.get_Instance();
		 *   if ((pvVar3 != null) &&
		 *      (plVar4 = (long *)func_0x038d5f58(pvVar3,*(undefined8 *)PTR_DAT_070c6628),
		 *      puVar2 = typeinfo_ptr_mscorlib_Math_6FC0738, plVar4 != null)) {
		 *     bVar1 = *(byte *)(*(long *)PTR_DAT_070c6658 + 0x130);
		 *     if ((*(byte *)(*plVar4 + 0x130) < bVar1) ||
		 *        (*(long *)(*(long *)(*plVar4 + 200) + (ulong)bVar1 * 8 + -8) != *(long *)PTR_DAT_070c6658)) {
		 *       noreturn_helper_30fe2b4();
		 *     }
		 *     if (plVar4[2] != 0) {
		 *       fVar5 = *(float *)(plVar4[2] + 0x24);
		 *       if (*(int *)(*(long *)typeinfo_ptr_mscorlib_Math_6FC0738 + 0xe4) == 0) {
		 *         func_0x031fde08();
		 *       }
		 *       if (ABS(q1.x - q2.x) < fVar5) {
		 *         if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
		 *           func_0x031fde08();
		 *         }
		 *         if (ABS(q1.y - q2.y) < fVar5) {
		 *           if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
		 *             func_0x031fde08();
		 *           }
		 *           if (ABS(q1.z - q2.z) < fVar5) {
		 *             if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
		 *               func_0x031fde08();
		 *             }
		 *             return ABS(q1.w - q2.w) < fVar5;
		 *           }
		 *         }
		 *       }
		 *       return false;
		 *     }
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32A5AE0 VA: 0x7818990AE0
		public static PixelSecurity.Core.SecuredTypes.SecuredQuaternion op_Implicit(UnityEngine.Quaternion value);
		/*
		 *   undefined *puVar1;
		 *   void *pvVar2;
		 *   RawEncryptedQuaternion *value_00;
		 *   ulong uVar3;
		 *   void *methodInfo_00;
		 *   RawEncryptedQuaternion *__return_storage_ptr___00;
		 *   RawEncryptedQuaternion *extraout_x8;
		 *   undefined8 uStack_70;
		 *   undefined8 uStack_68;
		 *   undefined8 uStack_60;
		 *   undefined8 uStack_58;
		 *   undefined8 uStack_50;
		 *
		 *   puVar1 = PTR_DAT_070c66d0;
		 *   if ((bRam000000000754aea9 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6630);
		 *     func_0x031fdc8c(PTR_DAT_070c66d0);
		 *     bRam000000000754aea9 = 1;
		 *   }
		 *   pvVar2 = *(void **)puVar1;
		 *   uStack_50._0_4_ = 0;
		 *   uStack_50._4_4_ = 0.0;
		 *   __return_storage_ptr___00 = (RawEncryptedQuaternion *)(ulong)*(uint *)((long)pvVar2 + 0xe4);
		 *   uStack_68 = 0;
		 *   uStack_70 = 0;
		 *   uStack_58 = 0;
		 *   uStack_60._0_4_ = 0;
		 *   uStack_60._4_4_ = 0;
		 *   if (*(uint *)((long)pvVar2 + 0xe4) == 0) {
		 *     pvVar2 = (void *)func_0x031fde08();
		 *     __return_storage_ptr___00 = extraout_x8;
		 *   }
		 *   SecuredQuaternion.Encrypt(__return_storage_ptr___00,value,pvVar2);
		 *   SecuredQuaternion..ctor((SecuredQuaternion *)&uStack_70,value_00);
		 *   pvVar2 = PixelGuard.get_Instance();
		 *   if (pvVar2 != null) {
		 *     uVar3 = func_0x038d6228(pvVar2,*(undefined8 *)PTR_DAT_070c6630);
		 *     if ((uVar3 & 1) != 0) {
		 *       uStack_60._4_4_ = value.x;
		 *       uStack_58 = value._4_8_;
		 *       uStack_50._0_4_ = value.w;
		 *     }
		 *     *(undefined4 *)&__return_storage_ptr__->field_0x20 = (undefined4)uStack_50;
		 *     (__return_storage_ptr__->fakeValue).x = uStack_50._4_4_;
		 *     *(undefined8 *)&__return_storage_ptr__->field_0x8 = uStack_68;
		 *     *(undefined8 *)__return_storage_ptr__ = uStack_70;
		 *     *(undefined8 *)&__return_storage_ptr__->field_0x18 = uStack_58;
		 *     __return_storage_ptr__->currentCryptoKey = (int)uStack_60;
		 *     *(undefined4 *)&__return_storage_ptr__->field_0x14 = uStack_60._4_4_;
		 *     return;
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32A5BD8 VA: 0x7818990BD8
		public static UnityEngine.Quaternion op_Implicit(PixelSecurity.Core.SecuredTypes.SecuredQuaternion value);
		/*
		 *   uint uVar1;
		 *   uint uVar2;
		 *   uint uVar3;
		 *   UnityEngine_Vector4 value_00;
		 *   UnityEngine_Vector4 q2;
		 *   undefined *puVar4;
		 *   undefined *puVar5;
		 *   bool bVar6;
		 *   void *pvVar7;
		 *   undefined8 extraout_x0;
		 *   ulong uVar8;
		 *   long lVar9;
		 *   PixelGuard *this;
		 *   void *extraout_x1;
		 *   undefined8 extraout_x1_00;
		 *   undefined8 extraout_x1_01;
		 *   undefined8 extraout_x1_02;
		 *   undefined8 extraout_x1_03;
		 *   undefined8 extraout_x1_04;
		 *   void *extraout_x1_05;
		 *   void *extraout_x1_06;
		 *   RawEncryptedQuaternion *__return_storage_ptr__;
		 *   undefined4 uVar10;
		 *   undefined8 uVar14;
		 *   undefined4 uVar15;
		 *   undefined8 uVar16;
		 *   float obj;
		 *   float obj_00;
		 *   float obj_01;
		 *   undefined1 auVar17 [16];
		 *   UnityEngine_Vector4 q1;
		 *   UnityEngine_Vector4 UVar18;
		 *   byte bVar11;
		 *   byte bVar12;
		 *   byte bVar13;
		 *
		 *   puVar5 = PTR_DAT_070c66d0;
		 *   if ((bRam000000000754aeaa & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66d0);
		 *     bRam000000000754aeaa = 1;
		 *     methodInfo = extraout_x1_05;
		 *   }
		 *   if (*(int *)(*(long *)puVar5 + 0xe4) == 0) {
		 *     func_0x031fde08(*(long *)puVar5,methodInfo);
		 *     methodInfo = extraout_x1_06;
		 *   }
		 *   puVar5 = PTR_DAT_070c66d0;
		 *   if ((bRam000000000754aea7 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6628);
		 *     func_0x031fdc8c(PTR_DAT_070c6630);
		 *     func_0x031fdc8c(PTR_DAT_070c6480);
		 *     func_0x031fdc8c(PTR_DAT_070c66d0);
		 *     func_0x031fdc8c(PTR_DAT_070c6638);
		 *     bRam000000000754aea7 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   pvVar7 = *(void **)puVar5;
		 *   if (*(char *)&(value->fakeValue).x == '\0') {
		 *     if (*(int *)((long)pvVar7 + 0xe4) == 0) {
		 *       func_0x031fde08(pvVar7,methodInfo);
		 *       pvVar7 = *(void **)puVar5;
		 *     }
		 *     __return_storage_ptr__ = *(RawEncryptedQuaternion **)((long)pvVar7 + 0xb8);
		 *     *(undefined4 *)value = *(undefined4 *)__return_storage_ptr__;
		 *     value_00.x = *(float *)&__return_storage_ptr__->field_0x4;
		 *     value_00.y = *(float *)&__return_storage_ptr__->field_0x8;
		 *     value_00.z = *(float *)&__return_storage_ptr__->field_0xc;
		 *     value_00.w = (float)__return_storage_ptr__->x;
		 *     SecuredQuaternion.Encrypt(__return_storage_ptr__,value_00,pvVar7);
		 *     *(undefined8 *)&value->field_0x4 = extraout_x0;
		 *     pvVar7 = *(void **)puVar5;
		 *     *(undefined8 *)&value->field_0xc = extraout_x1_00;
		 *     uVar14 = *(undefined8 *)(*(long *)((long)pvVar7 + 0xb8) + 0xc);
		 *     uVar16 = *(undefined8 *)(*(long *)((long)pvVar7 + 0xb8) + 4);
		 *     *(undefined1 *)&(value->fakeValue).x = 1;
		 *     *(undefined8 *)&value->field_0x1c = uVar14;
		 *     *(undefined8 *)&value->field_0x14 = uVar16;
		 *   }
		 *   puVar4 = PTR_DAT_070c6480;
		 *   if (*(int *)((long)pvVar7 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *   }
		 *   uVar1 = *(uint *)value;
		 *   uVar2 = *(uint *)&value->field_0x4;
		 *   if (*(int *)(*(long *)puVar4 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *   }
		 *   uVar16 = *(undefined8 *)&value->field_0x8;
		 *   uVar3 = value->currentCryptoKey;
		 *   pvVar7 = PixelGuard.get_Instance();
		 *   if (pvVar7 != null) {
		 *     uVar2 = uVar2 ^ uVar1;
		 *     uVar3 = uVar3 ^ uVar1;
		 *     bVar11 = (byte)(uVar1 >> 8);
		 *     bVar12 = (byte)(uVar1 >> 0x10);
		 *     bVar13 = (byte)(uVar1 >> 0x18);
		 *     uVar10 = CONCAT13((byte)((ulong)uVar16 >> 0x18) ^ bVar13,
		 *                       CONCAT12((byte)((ulong)uVar16 >> 0x10) ^ bVar12,
		 *                                CONCAT11((byte)((ulong)uVar16 >> 8) ^ bVar11,
		 *                                         (byte)uVar16 ^ (byte)uVar1)));
		 *     uVar8 = func_0x038d6228(pvVar7,*(undefined8 *)PTR_DAT_070c6630);
		 *     uVar15 = (undefined4)
		 *              (CONCAT17((byte)((ulong)uVar16 >> 0x38) ^ bVar13,
		 *                        CONCAT16((byte)((ulong)uVar16 >> 0x30) ^ bVar12,
		 *                                 CONCAT15((byte)((ulong)uVar16 >> 0x28) ^ bVar11,
		 *                                          CONCAT14((byte)((ulong)uVar16 >> 0x20) ^ (byte)uVar1,uVar10
		 *                                                  )))) >> 0x20);
		 *     if ((uVar8 & 1) != 0) {
		 *       lVar9 = *(long *)puVar5;
		 *       if (*(int *)(lVar9 + 0xe4) == 0) {
		 *         func_0x031fde08();
		 *         lVar9 = *(long *)puVar5;
		 *       }
		 *       lVar9 = *(long *)(lVar9 + 0xb8);
		 *       obj_01 = *(float *)(lVar9 + 8);
		 *       obj_00 = *(float *)(lVar9 + 0xc);
		 *       obj = *(float *)(lVar9 + 0x10);
		 *       bVar6 = System.Single.Equals(&value->field_0x14,*(float *)(lVar9 + 4))
		 *       ;
		 *       uVar16 = extraout_x1_01;
		 *       if ((((!bVar6) ||
		 *            (bVar6 = System.Single.Equals(&value->field_0x18,obj_01),
		 *            uVar16 = extraout_x1_02, !bVar6)) ||
		 *           (bVar6 = System.Single.Equals(&value->field_0x1c,obj_00),
		 *           uVar16 = extraout_x1_03, !bVar6)) ||
		 *          (bVar6 = System.Single.Equals(&value->field_0x20,obj),
		 *          uVar16 = extraout_x1_04, !bVar6)) {
		 *         auVar17._8_8_ = uVar16;
		 *         auVar17._0_8_ = *(long *)puVar5;
		 *         q2.x = *(float *)&value->field_0x14;
		 *         q2.y = *(float *)&value->field_0x18;
		 *         q2.z = *(float *)&value->field_0x1c;
		 *         q2.w = *(float *)&value->field_0x20;
		 *         if (*(int *)(*(long *)puVar5 + 0xe4) == 0) {
		 *           auVar17 = func_0x031fde08();
		 *         }
		 *         q1.y = (float)uVar10;
		 *         q1.x = (float)uVar2;
		 *         q1.w = (float)uVar3;
		 *         q1.z = (float)uVar15;
		 *         bVar6 = SecuredQuaternion.CompareQuaternionsWithTolerance(auVar17._0_8_,q1,q2);
		 *         if (!bVar6) {
		 *           this = PixelGuard.get_Instance();
		 *           pvVar7 = PixelGuard.get_Instance();
		 *           if ((pvVar7 == null) ||
		 *              (pvVar7 = (void *)func_0x038d5f58(pvVar7,*(undefined8 *)PTR_DAT_070c6628),
		 *              this == null)) goto LAB_033a55e4;
		 *           PixelGuard.CreateSecurityWarning(this,*(void **)PTR_DAT_070c6638,pvVar7);
		 *         }
		 *       }
		 *     }
		 *     UVar18.y = (float)uVar10;
		 *     UVar18.x = (float)uVar2;
		 *     UVar18.w = (float)uVar3;
		 *     UVar18.z = (float)uVar15;
		 *     return UVar18;
		 *   }
		 * LAB_033a55e4:
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32A5C2C VA: 0x7818990C2C
		public override int GetHashCode();
		/*
		 *   undefined *puVar1;
		 *   uint uVar2;
		 *   int iVar3;
		 *   int iVar4;
		 *   int iVar5;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   UnityEngine_Vector4 UVar6;
		 *   undefined8 uStack_40;
		 *   undefined8 uStack_38;
		 *
		 *   puVar1 = PTR_DAT_070c66d0;
		 *   if ((bRam000000000754aeab & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66d0);
		 *     bRam000000000754aeab = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   uStack_40 = 0;
		 *   uStack_38 = 0;
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   UVar6 = SecuredQuaternion.InternalDecrypt(this);
		 *   uStack_40 = UVar6._0_8_;
		 *   uStack_38 = UVar6._8_8_;
		 *   uVar2 = System.Single.GetHashCode(&uStack_40);
		 *   iVar3 = System.Single.GetHashCode((void *)((ulong)&uStack_40 | 4));
		 *   iVar4 = System.Single.GetHashCode(&uStack_38);
		 *   iVar5 = System.Single.GetHashCode((void *)((long)&uStack_38 + 4));
		 *   return uVar2 ^ iVar3 << 2 ^ iVar4 >> 2 ^ iVar5 >> 1;
		 */
		// RVA: 0x32A5CEC VA: 0x7818990CEC
		public override string ToString();
		/*
		 *   undefined *puVar1;
		 *   void *pvVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   UnityEngine_Vector4 UVar3;
		 *   undefined8 uStack_30;
		 *   undefined8 uStack_28;
		 *
		 *   puVar1 = PTR_DAT_070c66d0;
		 *   if ((bRam000000000754aeac & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66d0);
		 *     bRam000000000754aeac = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   uStack_30 = 0;
		 *   uStack_28 = 0;
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   UVar3 = SecuredQuaternion.InternalDecrypt(this);
		 *   uStack_30 = UVar3._0_8_;
		 *   uStack_28 = UVar3._8_8_;
		 *   pvVar2 = (void *)func_0x033b3960(&uStack_30,0,0,0);
		 *   return pvVar2;
		 */
		// RVA: 0x32A5D6C VA: 0x7818990D6C
		public string ToString(string format);
		/*
		 *   undefined *puVar1;
		 *   void *pvVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   UnityEngine_Vector4 UVar3;
		 *   undefined8 uStack_40;
		 *   undefined8 uStack_38;
		 *
		 *   puVar1 = PTR_DAT_070c66d0;
		 *   pvVar2 = format;
		 *   if ((bRam000000000754aead & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66d0);
		 *     bRam000000000754aead = 1;
		 *     pvVar2 = extraout_x1;
		 *   }
		 *   uStack_40 = 0;
		 *   uStack_38 = 0;
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     pvVar2 = extraout_x1_00;
		 *   }
		 *   UVar3 = SecuredQuaternion.InternalDecrypt(this);
		 *   uStack_40 = UVar3._0_8_;
		 *   uStack_38 = UVar3._8_8_;
		 *   pvVar2 = (void *)func_0x033b3960(&uStack_40,format,0,0);
		 *   return pvVar2;
		 */
		// RVA: 0x32A5DF8 VA: 0x7818990DF8
		private static void .cctor();
		/*
		 *   undefined *puVar1;
		 *   char cVar2;
		 *   undefined4 *puVar3;
		 *   undefined8 uVar4;
		 *
		 *   puVar1 = PTR_DAT_070c66d0;
		 *   if ((bRam000000000754aeae & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66d0);
		 *     bRam000000000754aeae = 1;
		 *   }
		 *   cVar2 = cRam000000000754a7d0;
		 *   puVar3 = *(undefined4 **)(*(long *)puVar1 + 0xb8);
		 *   *puVar3 = 0x1d58d;
		 *   if (cVar2 == '\0') {
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Quaternion_6FC0EA0);
		 *     cRam000000000754a7d0 = '\x01';
		 *     puVar3 = *(undefined4 **)(*(long *)puVar1 + 0xb8);
		 *   }
		 *   uVar4 = **(undefined8 **)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Quaternion_6FC0EA0 + 0xb8);
		 *   *(undefined8 *)(puVar3 + 3) =
		 *        (*(undefined8 **)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Quaternion_6FC0EA0 + 0xb8))[1]
		 *   ;
		 *   *(undefined8 *)(puVar3 + 1) = uVar4;
		 *   return;
		 */
	}
}
