namespace PixelSecurity.Core.SecuredTypes
{

	// [TypeInfo RVA: 0x0]
	public sealed struct SecuredDouble : ValueType
	{
		private static long _cryptoKey; // 0x0
		private long currentCryptoKey; // 0x10
		private System.Byte[] hiddenValue; // 0x18
		private double fakeValue; // 0x20
		private bool inited; // 0x28

		// RVA: 0x32A1DFC VA: 0x781898CDFC
		private void .ctor(System.Byte[] value);
		/*
		 *   undefined *puVar1;
		 *   long lVar2;
		 *   undefined8 *puVar3;
		 *
		 *   puVar1 = PTR_DAT_070c66b8;
		 *   if ((bRam000000000754ae48 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66b8);
		 *     bRam000000000754ae48 = 1;
		 *   }
		 *   lVar2 = *(long *)puVar1;
		 *   if (*(int *)(lVar2 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     lVar2 = *(long *)puVar1;
		 *   }
		 *   puVar3 = *(undefined8 **)(lVar2 + 0xb8);
		 *   *(void **)&this.field_0x8 = value;
		 *   *(undefined8 *)this = *puVar3;
		 *   func_0x031fdc38(&this.field_0x8,value);
		 *   this.currentCryptoKey = 0;
		 *   *(undefined1 *)&this.hiddenValue = 1;
		 *   return;
		 */
		// RVA: 0x32A1E84 VA: 0x781898CE84
		public static void SetCryptoKey(long newKey);
		/*
		 *   undefined *puVar1;
		 *   long lVar2;
		 *   void *extraout_x1;
		 *
		 *   puVar1 = PTR_DAT_070c66b8;
		 *   if ((bRam000000000754ae49 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66b8);
		 *     bRam000000000754ae49 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   lVar2 = *(long *)puVar1;
		 *   if (*(int *)(lVar2 + 0xe4) == 0) {
		 *     func_0x031fde08(lVar2,methodInfo);
		 *     lVar2 = *(long *)puVar1;
		 *   }
		 *   **(longlong **)(lVar2 + 0xb8) = newKey;
		 *   return;
		 */
		// RVA: 0x32A1EE0 VA: 0x781898CEE0
		public void ApplyNewCryptoKey();
		/*
		 *   undefined *puVar1;
		 *   long lVar2;
		 *   void *pvVar3;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *extraout_x1_01;
		 *   void *methodInfo_00;
		 *   long lVar4;
		 *   double value;
		 *
		 *   puVar1 = PTR_DAT_070c66b8;
		 *   if ((bRam000000000754ae4a & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66b8);
		 *     bRam000000000754ae4a = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   lVar2 = *(long *)puVar1;
		 *   lVar4 = *(long *)this;
		 *   if (*(int *)(lVar2 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     lVar2 = *(long *)puVar1;
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   if (lVar4 != **(long **)(lVar2 + 0xb8)) {
		 *     if (*(int *)(lVar2 + 0xe4) == 0) {
		 *       func_0x031fde08();
		 *       methodInfo = extraout_x1_01;
		 *     }
		 *     value = SecuredDouble.InternalDecrypt(this);
		 *     pvVar3 = SecuredDouble.InternalEncrypt(value,**(longlong **)(*(long *)puVar1 + 0xb8));
		 *     *(void **)&this.field_0x8 = pvVar3;
		 *     func_0x031fdc38();
		 *     *(undefined8 *)this = **(undefined8 **)(*(long *)puVar1 + 0xb8);
		 *   }
		 *   return;
		 */
		// RVA: 0x32A22DC VA: 0x781898D2DC
		public static long Encrypt(double value);
		/*
		 *   undefined *puVar1;
		 *   long lVar2;
		 *
		 *   puVar1 = PTR_DAT_070c66b8;
		 *   if ((bRam000000000754ae4b & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66b8);
		 *     bRam000000000754ae4b = 1;
		 *   }
		 *   lVar2 = *(long *)puVar1;
		 *   if (*(int *)(lVar2 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     lVar2 = *(long *)puVar1;
		 *   }
		 *   return **(ulong **)(lVar2 + 0xb8) ^ (ulong)value;
		 */
		// RVA: 0x32A2348 VA: 0x781898D348
		public static long Encrypt(double value, long key);
		/*
		 *   return (ulong)value ^ key;
		 */
		// RVA: 0x32A2354 VA: 0x781898D354
		private static System.Byte[] InternalEncrypt(double value);
		/*
		 *   uint uVar1;
		 *   undefined *puVar2;
		 *   undefined *puVar3;
		 *   long lVar4;
		 *   void *pvVar5;
		 *   ulong uVar6;
		 *
		 *   puVar2 = PTR_DAT_070c66b8;
		 *   if ((bRam000000000754ae4c & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66b8);
		 *     bRam000000000754ae4c = 1;
		 *   }
		 *   if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *   }
		 *   if ((bRam000000000754ae4d & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c2588);
		 *     func_0x031fdc8c(PTR_DAT_070c66b8);
		 *     bRam000000000754ae4d = 1;
		 *   }
		 *   puVar3 = PTR_DAT_070c66b8;
		 *   puVar2 = PTR_DAT_070c2588;
		 *   lVar4 = *(long *)PTR_DAT_070c66b8;
		 *   if (*(int *)(lVar4 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     lVar4 = *(long *)puVar3;
		 *   }
		 *   uVar6 = **(ulong **)(lVar4 + 0xb8);
		 *   pvVar5 = (void *)func_0x031fdd78(*(undefined8 *)puVar2,8);
		 *   if (pvVar5 == null) {
		 *     IL2CPP.ThrowNullReferenceException();
		 *   }
		 *   uVar1 = *(uint *)((long)pvVar5 + 0x18);
		 *   if (uVar1 != 0) {
		 *     uVar6 = uVar6 ^ (ulong)value;
		 *     *(char *)((long)pvVar5 + 0x20) = (char)uVar6;
		 *     if ((((uVar1 != 1) && (*(char *)((long)pvVar5 + 0x21) = (char)(uVar6 >> 8), 2 < uVar1)) &&
		 *         (*(char *)((long)pvVar5 + 0x22) = (char)(uVar6 >> 0x10), uVar1 != 3)) &&
		 *        (((*(char *)((long)pvVar5 + 0x23) = (char)(uVar6 >> 0x18), 4 < uVar1 &&
		 *          (*(char *)((long)pvVar5 + 0x24) = (char)(uVar6 >> 0x20), uVar1 != 5)) &&
		 *         ((*(char *)((long)pvVar5 + 0x25) = (char)(uVar6 >> 0x28), 6 < uVar1 &&
		 *          (*(char *)((long)pvVar5 + 0x26) = (char)(uVar6 >> 0x30), uVar1 != 7)))))) {
		 *       *(char *)((long)pvVar5 + 0x27) = (char)(uVar6 >> 0x38);
		 *       return pvVar5;
		 *     }
		 *   }
		 *   IL2CPP.ThrowIndexOutOfRangeException();
		 */
		// RVA: 0x32A21C0 VA: 0x781898D1C0
		private static System.Byte[] InternalEncrypt(double value, long key);
		/*
		 *   uint uVar1;
		 *   undefined *puVar2;
		 *   undefined *puVar3;
		 *   long lVar4;
		 *   void *pvVar5;
		 *   void *extraout_x1;
		 *   ulong uVar6;
		 *
		 *   if ((bRam000000000754ae4d & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c2588);
		 *     func_0x031fdc8c(PTR_DAT_070c66b8);
		 *     bRam000000000754ae4d = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   puVar3 = PTR_DAT_070c66b8;
		 *   puVar2 = PTR_DAT_070c2588;
		 *   if (key == 0) {
		 *     lVar4 = *(long *)PTR_DAT_070c66b8;
		 *     if (*(int *)(lVar4 + 0xe4) == 0) {
		 *       func_0x031fde08(lVar4,methodInfo);
		 *       lVar4 = *(long *)puVar3;
		 *     }
		 *     key = **(ulong **)(lVar4 + 0xb8);
		 *   }
		 *   pvVar5 = (void *)func_0x031fdd78(*(undefined8 *)puVar2,8);
		 *   if (pvVar5 != null) {
		 *     uVar1 = *(uint *)((long)pvVar5 + 0x18);
		 *     if (uVar1 != 0) {
		 *       uVar6 = key ^ (ulong)value;
		 *       *(char *)((long)pvVar5 + 0x20) = (char)uVar6;
		 *       if ((((uVar1 != 1) && (*(char *)((long)pvVar5 + 0x21) = (char)(uVar6 >> 8), 2 < uVar1)) &&
		 *           (*(char *)((long)pvVar5 + 0x22) = (char)(uVar6 >> 0x10), uVar1 != 3)) &&
		 *          (((*(char *)((long)pvVar5 + 0x23) = (char)(uVar6 >> 0x18), 4 < uVar1 &&
		 *            (*(char *)((long)pvVar5 + 0x24) = (char)(uVar6 >> 0x20), uVar1 != 5)) &&
		 *           ((*(char *)((long)pvVar5 + 0x25) = (char)(uVar6 >> 0x28), 6 < uVar1 &&
		 *            (*(char *)((long)pvVar5 + 0x26) = (char)(uVar6 >> 0x30), uVar1 != 7)))))) {
		 *         *(char *)((long)pvVar5 + 0x27) = (char)(uVar6 >> 0x38);
		 *         return pvVar5;
		 *       }
		 *     }
		 *     IL2CPP.ThrowIndexOutOfRangeException();
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32A23B4 VA: 0x781898D3B4
		public static double Decrypt(long value);
		/*
		 *   undefined *puVar1;
		 *   long lVar2;
		 *   void *extraout_x1;
		 *
		 *   puVar1 = PTR_DAT_070c66b8;
		 *   if ((bRam000000000754ae4e & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66b8);
		 *     bRam000000000754ae4e = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   lVar2 = *(long *)puVar1;
		 *   if (*(int *)(lVar2 + 0xe4) == 0) {
		 *     func_0x031fde08(lVar2,methodInfo);
		 *     lVar2 = *(long *)puVar1;
		 *   }
		 *   return (double)(**(ulong **)(lVar2 + 0xb8) ^ value);
		 */
		// RVA: 0x32A2418 VA: 0x781898D418
		public static double Decrypt(long value, long key);
		/*
		 *   return (double)(key ^ value);
		 */
		// RVA: 0x32A2424 VA: 0x781898D424
		public long GetEncrypted();
		/*
		 *   uint uVar1;
		 *   undefined *puVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   long lVar3;
		 *
		 *   puVar2 = PTR_DAT_070c66b8;
		 *   if ((bRam000000000754ae4f & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66b8);
		 *     bRam000000000754ae4f = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   SecuredDouble.ApplyNewCryptoKey(this);
		 *   lVar3 = *(long *)&this.field_0x8;
		 *   if (lVar3 != 0) {
		 *     uVar1 = *(uint *)(lVar3 + 0x18);
		 *     if (((((uVar1 != 0) && (uVar1 != 1)) && (2 < uVar1)) && ((uVar1 != 3 && (4 < uVar1)))) &&
		 *        ((uVar1 != 5 && ((6 < uVar1 && (uVar1 != 7)))))) {
		 *       return *(longlong *)(lVar3 + 0x20);
		 *     }
		 *     IL2CPP.ThrowIndexOutOfRangeException();
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32A2508 VA: 0x781898D508
		public void SetEncrypted(long encrypted);
		/*
		 *   uint uVar1;
		 *   undefined *puVar2;
		 *   undefined8 uVar3;
		 *   long lVar4;
		 *   void *pvVar5;
		 *   void *extraout_x1;
		 *   double dVar6;
		 *   undefined1 auVar7 [16];
		 *
		 *   puVar2 = PTR_DAT_070c2588;
		 *   if ((bRam000000000754ae50 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c2588);
		 *     func_0x031fdc8c(PTR_DAT_070c6630);
		 *     func_0x031fdc8c(PTR_DAT_070c66b8);
		 *     bRam000000000754ae50 = 1;
		 *   }
		 *   uVar3 = *(undefined8 *)puVar2;
		 *   *(undefined1 *)&this.hiddenValue = 1;
		 *   lVar4 = func_0x031fdd78(uVar3,8);
		 *   if (lVar4 != 0) {
		 *     uVar1 = *(uint *)(lVar4 + 0x18);
		 *     if (((((uVar1 == 0) || (*(char *)(lVar4 + 0x20) = (char)encrypted, uVar1 == 1)) ||
		 *          (*(char *)(lVar4 + 0x21) = (char)((ulong)encrypted >> 8), uVar1 < 3)) ||
		 *         ((*(char *)(lVar4 + 0x22) = (char)((ulong)encrypted >> 0x10), uVar1 == 3 ||
		 *          (*(char *)(lVar4 + 0x23) = (char)((ulong)encrypted >> 0x18), uVar1 < 5)))) ||
		 *        ((*(char *)(lVar4 + 0x24) = (char)((ulong)encrypted >> 0x20), uVar1 == 5 ||
		 *         ((*(char *)(lVar4 + 0x25) = (char)((ulong)encrypted >> 0x28), uVar1 < 7 ||
		 *          (*(char *)(lVar4 + 0x26) = (char)((ulong)encrypted >> 0x30), uVar1 == 7)))))) {
		 *       IL2CPP.ThrowIndexOutOfRangeException();
		 *     }
		 *     *(char *)(lVar4 + 0x27) = (char)((ulong)encrypted >> 0x38);
		 *     *(long *)&this.field_0x8 = lVar4;
		 *     func_0x031fdc38();
		 *     pvVar5 = PixelGuard.get_Instance();
		 *     if (pvVar5 != null) {
		 *       auVar7 = func_0x038d6228(pvVar5,*(undefined8 *)PTR_DAT_070c6630);
		 *       pvVar5 = auVar7._8_8_;
		 *       if ((auVar7._0_8_ & 1) != 0) {
		 *         if (*(int *)(*(long *)PTR_DAT_070c66b8 + 0xe4) == 0) {
		 *           func_0x031fde08();
		 *           pvVar5 = extraout_x1;
		 *         }
		 *         dVar6 = SecuredDouble.InternalDecrypt(this);
		 *         this.currentCryptoKey = (longlong)dVar6;
		 *       }
		 *       return;
		 *     }
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32A1F8C VA: 0x781898CF8C
		private double InternalDecrypt();
		/*
		 *   uint uVar1;
		 *   undefined *puVar2;
		 *   void *pvVar3;
		 *   long lVar4;
		 *   ulong uVar5;
		 *   PixelGuard *this_00;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   double dVar6;
		 *   ulong uVar7;
		 *   double dVar8;
		 *
		 *   if ((bRam000000000754ae51 & 1) == 0) {
		 *     func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
		 *     func_0x031fdc8c(PTR_DAT_070c6628);
		 *     func_0x031fdc8c(PTR_DAT_070c6630);
		 *     func_0x031fdc8c(PTR_DAT_070c66b8);
		 *     func_0x031fdc8c(PTR_DAT_070c6638);
		 *     bRam000000000754ae51 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   puVar2 = PTR_DAT_070c66b8;
		 *   if (*(char *)&this.hiddenValue == '\0') {
		 *     pvVar3 = *(void **)PTR_DAT_070c66b8;
		 *     if (*(int *)((long)pvVar3 + 0xe4) == 0) {
		 *       func_0x031fde08(pvVar3,methodInfo);
		 *       pvVar3 = *(void **)puVar2;
		 *     }
		 *     *(undefined8 *)this = **(undefined8 **)((long)pvVar3 + 0xb8);
		 *     pvVar3 = SecuredDouble.InternalEncrypt(0.0);
		 *     *(void **)&this.field_0x8 = pvVar3;
		 *     func_0x031fdc38(&this.field_0x8,pvVar3);
		 *     this.currentCryptoKey = 0;
		 *     *(undefined1 *)&this.hiddenValue = 1;
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   lVar4 = *(long *)puVar2;
		 *   if (*(int *)(lVar4 + 0xe4) == 0) {
		 *     func_0x031fde08(lVar4,methodInfo);
		 *   }
		 *   lVar4 = *(long *)&this.field_0x8;
		 *   if (lVar4 != 0) {
		 *     uVar1 = *(uint *)(lVar4 + 0x18);
		 *     if (((((uVar1 == 0) || (uVar1 == 1)) || (uVar1 < 3)) || ((uVar1 == 3 || (uVar1 < 5)))) ||
		 *        ((uVar1 == 5 || ((uVar1 < 7 || (uVar1 == 7)))))) {
		 *       IL2CPP.ThrowIndexOutOfRangeException();
		 *     }
		 *     uVar7 = *(ulong *)this;
		 *     uVar5 = *(ulong *)(lVar4 + 0x20);
		 *     pvVar3 = PixelGuard.get_Instance();
		 *     if (pvVar3 != null) {
		 *       dVar6 = (double)(uVar5 ^ uVar7);
		 *       uVar5 = func_0x038d6228(pvVar3,*(undefined8 *)PTR_DAT_070c6630);
		 *       if (((uVar5 & 1) != 0) && (dVar8 = (double)this.currentCryptoKey, dVar8 != 0.0)) {
		 *         if (*(int *)(*(long *)typeinfo_ptr_mscorlib_Math_6FC0738 + 0xe4) == 0) {
		 *           func_0x031fde08();
		 *         }
		 *         if (_UNK_0134d0b0 < ABS(dVar6 - dVar8)) {
		 *           this_00 = PixelGuard.get_Instance();
		 *           pvVar3 = PixelGuard.get_Instance();
		 *           if ((pvVar3 == null) ||
		 *              (pvVar3 = (void *)func_0x038d5f58(pvVar3,*(undefined8 *)PTR_DAT_070c6628),
		 *              this_00 == null)) goto LAB_033a21bc;
		 *           PixelGuard.CreateSecurityWarning(this_00,*(void **)PTR_DAT_070c6638,pvVar3);
		 *         }
		 *       }
		 *       return dVar6;
		 *     }
		 *   }
		 * LAB_033a21bc:
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32A265C VA: 0x781898D65C
		public static PixelSecurity.Core.SecuredTypes.SecuredDouble op_Implicit(double value);
		/*
		 *   undefined *puVar1;
		 *   void *pvVar2;
		 *   ulong uVar3;
		 *   void *in_x2;
		 *   undefined8 uStack_50;
		 *   undefined8 uStack_48;
		 *   double dStack_40;
		 *   void *pvStack_38;
		 *
		 *   puVar1 = PTR_DAT_070c66b8;
		 *   if ((bRam000000000754ae52 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6630);
		 *     func_0x031fdc8c(PTR_DAT_070c66b8);
		 *     bRam000000000754ae52 = 1;
		 *   }
		 *   pvVar2 = *(void **)puVar1;
		 *   uStack_48 = 0;
		 *   uStack_50 = 0;
		 *   pvStack_38 = null;
		 *   dStack_40 = 0.0;
		 *   if (*(int *)((long)pvVar2 + 0xe4) == 0) {
		 *     pvVar2 = (void *)func_0x031fde08();
		 *   }
		 *   pvVar2 = SecuredDouble.InternalEncrypt(value);
		 *   SecuredDouble..ctor((SecuredDouble *)&uStack_50,pvVar2);
		 *   pvVar2 = PixelGuard.get_Instance();
		 *   if (pvVar2 != null) {
		 *     uVar3 = func_0x038d6228(pvVar2,*(undefined8 *)PTR_DAT_070c6630);
		 *     if ((uVar3 & 1) != 0) {
		 *       dStack_40 = value;
		 *     }
		 *     *(undefined8 *)&__return_storage_ptr__->field_0x8 = uStack_48;
		 *     *(undefined8 *)__return_storage_ptr__ = uStack_50;
		 *     __return_storage_ptr__->hiddenValue = pvStack_38;
		 *     __return_storage_ptr__->currentCryptoKey = (longlong)dStack_40;
		 *     return;
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32A2718 VA: 0x781898D718
		public static double op_Implicit(PixelSecurity.Core.SecuredTypes.SecuredDouble value);
		/*
		 *   uint uVar1;
		 *   undefined *puVar2;
		 *   void *pvVar3;
		 *   long lVar4;
		 *   ulong uVar5;
		 *   PixelGuard *this;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *extraout_x1_01;
		 *   void *extraout_x1_02;
		 *   double dVar6;
		 *   ulong uVar7;
		 *   double dVar8;
		 *
		 *   puVar2 = PTR_DAT_070c66b8;
		 *   if ((bRam000000000754ae53 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66b8);
		 *     bRam000000000754ae53 = 1;
		 *     methodInfo = extraout_x1_01;
		 *   }
		 *   if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
		 *     func_0x031fde08(*(long *)puVar2,methodInfo);
		 *     methodInfo = extraout_x1_02;
		 *   }
		 *   if ((bRam000000000754ae51 & 1) == 0) {
		 *     func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
		 *     func_0x031fdc8c(PTR_DAT_070c6628);
		 *     func_0x031fdc8c(PTR_DAT_070c6630);
		 *     func_0x031fdc8c(PTR_DAT_070c66b8);
		 *     func_0x031fdc8c(PTR_DAT_070c6638);
		 *     bRam000000000754ae51 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   puVar2 = PTR_DAT_070c66b8;
		 *   if (*(char *)&value->hiddenValue == '\0') {
		 *     pvVar3 = *(void **)PTR_DAT_070c66b8;
		 *     if (*(int *)((long)pvVar3 + 0xe4) == 0) {
		 *       func_0x031fde08(pvVar3,methodInfo);
		 *       pvVar3 = *(void **)puVar2;
		 *     }
		 *     *(undefined8 *)value = **(undefined8 **)((long)pvVar3 + 0xb8);
		 *     pvVar3 = SecuredDouble.InternalEncrypt(0.0);
		 *     *(void **)&value->field_0x8 = pvVar3;
		 *     func_0x031fdc38(&value->field_0x8,pvVar3);
		 *     value->currentCryptoKey = 0;
		 *     *(undefined1 *)&value->hiddenValue = 1;
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   lVar4 = *(long *)puVar2;
		 *   if (*(int *)(lVar4 + 0xe4) == 0) {
		 *     func_0x031fde08(lVar4,methodInfo);
		 *   }
		 *   lVar4 = *(long *)&value->field_0x8;
		 *   if (lVar4 != 0) {
		 *     uVar1 = *(uint *)(lVar4 + 0x18);
		 *     if (((((uVar1 == 0) || (uVar1 == 1)) || (uVar1 < 3)) || ((uVar1 == 3 || (uVar1 < 5)))) ||
		 *        ((uVar1 == 5 || ((uVar1 < 7 || (uVar1 == 7)))))) {
		 *       IL2CPP.ThrowIndexOutOfRangeException();
		 *     }
		 *     uVar7 = *(ulong *)value;
		 *     uVar5 = *(ulong *)(lVar4 + 0x20);
		 *     pvVar3 = PixelGuard.get_Instance();
		 *     if (pvVar3 != null) {
		 *       dVar6 = (double)(uVar5 ^ uVar7);
		 *       uVar5 = func_0x038d6228(pvVar3,*(undefined8 *)PTR_DAT_070c6630);
		 *       if (((uVar5 & 1) != 0) && (dVar8 = (double)value->currentCryptoKey, dVar8 != 0.0)) {
		 *         if (*(int *)(*(long *)typeinfo_ptr_mscorlib_Math_6FC0738 + 0xe4) == 0) {
		 *           func_0x031fde08();
		 *         }
		 *         if (_UNK_0134d0b0 < ABS(dVar6 - dVar8)) {
		 *           this = PixelGuard.get_Instance();
		 *           pvVar3 = PixelGuard.get_Instance();
		 *           if ((pvVar3 == null) ||
		 *              (pvVar3 = (void *)func_0x038d5f58(pvVar3,*(undefined8 *)PTR_DAT_070c6628),
		 *              this == null)) goto LAB_033a21bc;
		 *           PixelGuard.CreateSecurityWarning(this,*(void **)PTR_DAT_070c6638,pvVar3);
		 *         }
		 *       }
		 *       return dVar6;
		 *     }
		 *   }
		 * LAB_033a21bc:
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32A276C VA: 0x781898D76C
		public static PixelSecurity.Core.SecuredTypes.SecuredDouble op_Increment(PixelSecurity.Core.SecuredTypes.SecuredDouble input);
		/*
		 *   undefined *puVar1;
		 *   void *pvVar2;
		 *   ulong uVar3;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *methodInfo_00;
		 *   double dVar4;
		 *   undefined8 uVar5;
		 *   longlong lVar6;
		 *
		 *   puVar1 = PTR_DAT_070c66b8;
		 *   if ((bRam000000000754ae54 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6630);
		 *     func_0x031fdc8c(PTR_DAT_070c66b8);
		 *     bRam000000000754ae54 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   dVar4 = SecuredDouble.InternalDecrypt(input);
		 *   pvVar2 = SecuredDouble.InternalEncrypt(dVar4 + 1.0,*(longlong *)input);
		 *   *(void **)&input->field_0x8 = pvVar2;
		 *   func_0x031fdc38();
		 *   pvVar2 = PixelGuard.get_Instance();
		 *   if (pvVar2 != null) {
		 *     uVar3 = func_0x038d6228(pvVar2,*(undefined8 *)PTR_DAT_070c6630);
		 *     if ((uVar3 & 1) != 0) {
		 *       input->currentCryptoKey = (longlong)(dVar4 + 1.0);
		 *     }
		 *     uVar5 = *(undefined8 *)input;
		 *     pvVar2 = input->hiddenValue;
		 *     lVar6 = input->currentCryptoKey;
		 *     *(undefined8 *)&__return_storage_ptr__->field_0x8 = *(undefined8 *)&input->field_0x8;
		 *     *(undefined8 *)__return_storage_ptr__ = uVar5;
		 *     __return_storage_ptr__->hiddenValue = pvVar2;
		 *     __return_storage_ptr__->currentCryptoKey = lVar6;
		 *     return;
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32A2838 VA: 0x781898D838
		public static PixelSecurity.Core.SecuredTypes.SecuredDouble op_Decrement(PixelSecurity.Core.SecuredTypes.SecuredDouble input);
		/*
		 *   undefined *puVar1;
		 *   void *pvVar2;
		 *   ulong uVar3;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *methodInfo_00;
		 *   double dVar4;
		 *   undefined8 uVar5;
		 *   longlong lVar6;
		 *
		 *   puVar1 = PTR_DAT_070c66b8;
		 *   if ((bRam000000000754ae55 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6630);
		 *     func_0x031fdc8c(PTR_DAT_070c66b8);
		 *     bRam000000000754ae55 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   dVar4 = SecuredDouble.InternalDecrypt(input);
		 *   pvVar2 = SecuredDouble.InternalEncrypt(dVar4 + -1.0,*(longlong *)input);
		 *   *(void **)&input->field_0x8 = pvVar2;
		 *   func_0x031fdc38();
		 *   pvVar2 = PixelGuard.get_Instance();
		 *   if (pvVar2 != null) {
		 *     uVar3 = func_0x038d6228(pvVar2,*(undefined8 *)PTR_DAT_070c6630);
		 *     if ((uVar3 & 1) != 0) {
		 *       input->currentCryptoKey = (longlong)(dVar4 + -1.0);
		 *     }
		 *     uVar5 = *(undefined8 *)input;
		 *     pvVar2 = input->hiddenValue;
		 *     lVar6 = input->currentCryptoKey;
		 *     *(undefined8 *)&__return_storage_ptr__->field_0x8 = *(undefined8 *)&input->field_0x8;
		 *     *(undefined8 *)__return_storage_ptr__ = uVar5;
		 *     __return_storage_ptr__->hiddenValue = pvVar2;
		 *     __return_storage_ptr__->currentCryptoKey = lVar6;
		 *     return;
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32A2904 VA: 0x781898D904
		public override string ToString();
		/*
		 *   undefined *puVar1;
		 *   void *pvVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   double dStack_28;
		 *
		 *   puVar1 = PTR_DAT_070c66b8;
		 *   if ((bRam000000000754ae56 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66b8);
		 *     bRam000000000754ae56 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   dStack_28 = 0.0;
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   dStack_28 = SecuredDouble.InternalDecrypt(this);
		 *   pvVar2 = System.Double.ToString(&dStack_28);
		 *   return pvVar2;
		 */
		// RVA: 0x32A2978 VA: 0x781898D978
		public string ToString(string format);
		/*
		 *   undefined *puVar1;
		 *   void *pvVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   double dStack_28;
		 *
		 *   puVar1 = PTR_DAT_070c66b8;
		 *   pvVar2 = format;
		 *   if ((bRam000000000754ae57 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66b8);
		 *     bRam000000000754ae57 = 1;
		 *     pvVar2 = extraout_x1;
		 *   }
		 *   dStack_28 = 0.0;
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     pvVar2 = extraout_x1_00;
		 *   }
		 *   dStack_28 = SecuredDouble.InternalDecrypt(this);
		 *   pvVar2 = System.Double.ToString(&dStack_28,format);
		 *   return pvVar2;
		 */
		// RVA: 0x32A29F4 VA: 0x781898D9F4
		public string ToString(System.IFormatProvider provider);
		/*
		 *   undefined *puVar1;
		 *   void *pvVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   double dStack_28;
		 *
		 *   puVar1 = PTR_DAT_070c66b8;
		 *   pvVar2 = provider;
		 *   if ((bRam000000000754ae58 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66b8);
		 *     bRam000000000754ae58 = 1;
		 *     pvVar2 = extraout_x1;
		 *   }
		 *   dStack_28 = 0.0;
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     pvVar2 = extraout_x1_00;
		 *   }
		 *   dStack_28 = SecuredDouble.InternalDecrypt(this);
		 *   pvVar2 = System.Double.ToString(&dStack_28,provider);
		 *   return pvVar2;
		 */
		// RVA: 0x32A2A70 VA: 0x781898DA70
		public string ToString(string format, System.IFormatProvider provider);
		/*
		 *   undefined *puVar1;
		 *   void *pvVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   double dStack_38;
		 *
		 *   puVar1 = PTR_DAT_070c66b8;
		 *   pvVar2 = format;
		 *   if ((bRam000000000754ae59 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66b8);
		 *     bRam000000000754ae59 = 1;
		 *     pvVar2 = extraout_x1;
		 *   }
		 *   dStack_38 = 0.0;
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     pvVar2 = extraout_x1_00;
		 *   }
		 *   dStack_38 = SecuredDouble.InternalDecrypt(this);
		 *   pvVar2 = System.Double.ToString(&dStack_38,format,provider);
		 *   return pvVar2;
		 */
		// RVA: 0x32A2AFC VA: 0x781898DAFC
		public override bool Equals(object obj);
		/*
		 *   undefined *puVar1;
		 *   undefined8 *puVar2;
		 *   void *extraout_x1;
		 *   void *methodInfo_00;
		 *   void *methodInfo_01;
		 *   double dVar3;
		 *   double dVar4;
		 *   undefined1 auVar5 [16];
		 *   undefined8 uStack_50;
		 *   undefined8 uStack_48;
		 *   longlong lStack_40;
		 *   void *pvStack_38;
		 *
		 *   if ((bRam000000000754ae5a & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66b8);
		 *     bRam000000000754ae5a = 1;
		 *   }
		 *   puVar1 = PTR_DAT_070c66b8;
		 *   uStack_48 = 0;
		 *   uStack_50 = 0;
		 *   pvStack_38 = null;
		 *   lStack_40 = 0;
		 *   if ((obj != null) && (*(long *)obj == *(long *)PTR_DAT_070c66b8)) {
		 *     auVar5 = func_0x031fde14(obj);
		 *     methodInfo_00 = auVar5._8_8_;
		 *     puVar2 = auVar5._0_8_;
		 *     uStack_48 = puVar2[1];
		 *     uStack_50 = *puVar2;
		 *     pvStack_38 = (void *)puVar2[3];
		 *     lStack_40 = puVar2[2];
		 *     if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *       func_0x031fde08();
		 *       methodInfo_00 = extraout_x1;
		 *     }
		 *     dVar3 = SecuredDouble.InternalDecrypt((SecuredDouble *)&uStack_50);
		 *     dVar4 = SecuredDouble.InternalDecrypt(this);
		 *     if (dVar3 == dVar4) {
		 *       return true;
		 *     }
		 *     if (0x7ff0000000000000 < (ulong)ABS(dVar3)) {
		 *       return 0x7ff0000000000000 < (ulong)ABS(dVar4);
		 *     }
		 *   }
		 *   return false;
		 */
		// RVA: 0x32A2BE8 VA: 0x781898DBE8
		public bool Equals(PixelSecurity.Core.SecuredTypes.SecuredDouble obj);
		/*
		 *   undefined *puVar1;
		 *   bool bVar2;
		 *   SecuredDouble *extraout_x1;
		 *   SecuredDouble *extraout_x1_00;
		 *   SecuredDouble *methodInfo_00;
		 *   void *methodInfo_01;
		 *   double dVar3;
		 *   double dVar4;
		 *
		 *   puVar1 = PTR_DAT_070c66b8;
		 *   methodInfo_00 = obj;
		 *   if ((bRam000000000754ae5b & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66b8);
		 *     bRam000000000754ae5b = 1;
		 *     methodInfo_00 = extraout_x1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo_00 = extraout_x1_00;
		 *   }
		 *   dVar3 = SecuredDouble.InternalDecrypt(obj);
		 *   dVar4 = SecuredDouble.InternalDecrypt(this);
		 *   if (dVar3 == dVar4) {
		 *     bVar2 = true;
		 *   }
		 *   else if ((ulong)ABS(dVar3) < 0x7ff0000000000001) {
		 *     bVar2 = false;
		 *   }
		 *   else {
		 *     bVar2 = 0x7ff0000000000000 < (ulong)ABS(dVar4);
		 *   }
		 *   return bVar2;
		 */
		// RVA: 0x32A2CA4 VA: 0x781898DCA4
		public override int GetHashCode();
		/*
		 *   double dVar1;
		 *   undefined *puVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   double dVar3;
		 *
		 *   puVar2 = PTR_DAT_070c66b8;
		 *   if ((bRam000000000754ae5c & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66b8);
		 *     bRam000000000754ae5c = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   dVar3 = SecuredDouble.InternalDecrypt(this);
		 *   dVar1 = (double)((ulong)dVar3 & 0x7ff0000000000000);
		 *   if ((-(long)dVar3 & 0x7ff0000000000000U) != 0) {
		 *     dVar1 = dVar3;
		 *   }
		 *   return (uint)((ulong)dVar1 >> 0x20) ^ SUB84(dVar1,0);
		 */
		// RVA: 0x32A2D18 VA: 0x781898DD18
		private static void .cctor();
		/*
		 *   undefined *puVar1;
		 *
		 *   puVar1 = PTR_DAT_070c66b8;
		 *   if ((bRam000000000754ae5d & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66b8);
		 *     bRam000000000754ae5d = 1;
		 *   }
		 *   **(undefined8 **)(*(long *)puVar1 + 0xb8) = 0x3382b;
		 *   return;
		 */
	}
}
