namespace PixelSecurity.Core.SecuredTypes
{

	// [TypeInfo RVA: 0x0]
	public sealed struct SecuredByte : ValueType
	{
		private static byte _cryptoKey; // 0x0
		private byte currentCryptoKey; // 0x10
		private byte hiddenValue; // 0x11
		private byte fakeValue; // 0x12
		private bool inited; // 0x13

		// RVA: 0x329B610 VA: 0x7818986610
		private void .ctor(byte value);
		/*
		 *   undefined1 uVar1;
		 *   undefined *puVar2;
		 *   long lVar3;
		 *   undefined1 *puVar4;
		 *
		 *   puVar2 = PTR_DAT_070c6640;
		 *   if ((bRam000000000754adc5 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6640);
		 *     bRam000000000754adc5 = 1;
		 *   }
		 *   lVar3 = *(long *)puVar2;
		 *   if (*(int *)(lVar3 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     lVar3 = *(long *)puVar2;
		 *   }
		 *   puVar4 = *(undefined1 **)(lVar3 + 0xb8);
		 *   this.field_0x1 = value;
		 *   uVar1 = *puVar4;
		 *   *(undefined2 *)&this.field_0x2 = 0x100;
		 *   *(undefined1 *)this = uVar1;
		 *   return;
		 */
		// RVA: 0x329B688 VA: 0x7818986688
		public static void SetCryptoKey(byte cryptoKey);
		/*
		 *   undefined *puVar1;
		 *   long lVar2;
		 *   void *extraout_x1;
		 *
		 *   puVar1 = PTR_DAT_070c6640;
		 *   if ((bRam000000000754adc6 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6640);
		 *     bRam000000000754adc6 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   lVar2 = *(long *)puVar1;
		 *   if (*(int *)(lVar2 + 0xe4) == 0) {
		 *     func_0x031fde08(lVar2,methodInfo);
		 *     lVar2 = *(long *)puVar1;
		 *   }
		 *   **(byte **)(lVar2 + 0xb8) = cryptoKey;
		 *   return;
		 */
		// RVA: 0x329B6E4 VA: 0x78189866E4
		public void ApplyNewCryptoKey();
		/*
		 *   char cVar1;
		 *   undefined *puVar2;
		 *   byte bVar3;
		 *   long lVar4;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *extraout_x1_01;
		 *   void *in_x2;
		 *
		 *   puVar2 = PTR_DAT_070c6640;
		 *   if ((bRam000000000754adc7 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6640);
		 *     bRam000000000754adc7 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   lVar4 = *(long *)puVar2;
		 *   cVar1 = *(char *)this;
		 *   if (*(int *)(lVar4 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     lVar4 = *(long *)puVar2;
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   if (cVar1 != **(char **)(lVar4 + 0xb8)) {
		 *     if (*(int *)(lVar4 + 0xe4) == 0) {
		 *       func_0x031fde08();
		 *       methodInfo = extraout_x1_01;
		 *     }
		 *     bVar3 = SecuredByte.InternalDecrypt(this);
		 *     bVar3 = SecuredByte.EncryptDecrypt(bVar3,**(byte **)(*(long *)puVar2 + 0xb8));
		 *     lVar4 = *(long *)puVar2;
		 *     this.field_0x1 = bVar3;
		 *     *(undefined1 *)this = **(undefined1 **)(lVar4 + 0xb8);
		 *   }
		 *   return;
		 */
		// RVA: 0x329B954 VA: 0x7818986954
		public static byte EncryptDecrypt(byte value);
		/*
		 *   undefined *puVar1;
		 *   long lVar2;
		 *   void *extraout_x1;
		 *
		 *   puVar1 = PTR_DAT_070c6640;
		 *   if ((bRam000000000754adc8 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6640);
		 *     bRam000000000754adc8 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08(*(long *)puVar1,methodInfo);
		 *   }
		 *   if ((bRam000000000754adc9 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6640);
		 *     bRam000000000754adc9 = 1;
		 *   }
		 *   puVar1 = PTR_DAT_070c6640;
		 *   lVar2 = *(long *)PTR_DAT_070c6640;
		 *   if (*(int *)(lVar2 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     lVar2 = *(long *)puVar1;
		 *   }
		 *   return **(byte **)(lVar2 + 0xb8) ^ value;
		 */
		// RVA: 0x329B8E8 VA: 0x78189868E8
		public static byte EncryptDecrypt(byte value, byte key);
		/*
		 *   undefined *puVar1;
		 *   long lVar2;
		 *
		 *   if ((bRam000000000754adc9 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6640);
		 *     bRam000000000754adc9 = 1;
		 *   }
		 *   puVar1 = PTR_DAT_070c6640;
		 *   if (key == 0) {
		 *     lVar2 = *(long *)PTR_DAT_070c6640;
		 *     if (*(int *)(lVar2 + 0xe4) == 0) {
		 *       func_0x031fde08();
		 *       lVar2 = *(long *)puVar1;
		 *     }
		 *     key = **(byte **)(lVar2 + 0xb8);
		 *   }
		 *   return key ^ value;
		 */
		// RVA: 0x329B9AC VA: 0x78189869AC
		public byte GetEncrypted();
		/*
		 *   undefined *puVar1;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *
		 *   puVar1 = PTR_DAT_070c6640;
		 *   if ((bRam000000000754adca & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6640);
		 *     bRam000000000754adca = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   SecuredByte.ApplyNewCryptoKey(this);
		 *   return this.field_0x1;
		 */
		// RVA: 0x329BA08 VA: 0x7818986A08
		public void SetEncrypted(byte encrypted);
		/*
		 *   byte bVar1;
		 *   void *pvVar2;
		 *   void *extraout_x1;
		 *   undefined1 auVar3 [16];
		 *
		 *   if ((bRam000000000754adcb & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6630);
		 *     func_0x031fdc8c(PTR_DAT_070c6640);
		 *     bRam000000000754adcb = 1;
		 *   }
		 *   this.field_0x1 = encrypted;
		 *   this.field_0x3 = 1;
		 *   pvVar2 = PixelGuard.get_Instance();
		 *   if (pvVar2 != null) {
		 *     auVar3 = func_0x038d6228(pvVar2,*(undefined8 *)PTR_DAT_070c6630);
		 *     pvVar2 = auVar3._8_8_;
		 *     if ((auVar3._0_8_ & 1) != 0) {
		 *       if (*(int *)(*(long *)PTR_DAT_070c6640 + 0xe4) == 0) {
		 *         func_0x031fde08();
		 *         pvVar2 = extraout_x1;
		 *       }
		 *       bVar1 = SecuredByte.InternalDecrypt(this);
		 *       this.field_0x2 = bVar1;
		 *     }
		 *     return;
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x329B784 VA: 0x7818986784
		private byte InternalDecrypt();
		/*
		 *   undefined *puVar1;
		 *   byte bVar2;
		 *   long lVar3;
		 *   void *pvVar4;
		 *   ulong uVar5;
		 *   PixelGuard *this_00;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *in_x2;
		 *   byte value;
		 *
		 *   if ((bRam000000000754adcc & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6628);
		 *     func_0x031fdc8c(PTR_DAT_070c6630);
		 *     func_0x031fdc8c(PTR_DAT_070c6640);
		 *     func_0x031fdc8c(PTR_DAT_070c6638);
		 *     bRam000000000754adcc = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   puVar1 = PTR_DAT_070c6640;
		 *   if (this.field_0x3 == '\0') {
		 *     lVar3 = *(long *)PTR_DAT_070c6640;
		 *     if (*(int *)(lVar3 + 0xe4) == 0) {
		 *       func_0x031fde08();
		 *       lVar3 = *(long *)puVar1;
		 *       methodInfo = extraout_x1_00;
		 *     }
		 *     *(undefined1 *)this = **(undefined1 **)(lVar3 + 0xb8);
		 *     bVar2 = SecuredByte.EncryptDecrypt(0);
		 *     this.field_0x1 = bVar2;
		 *     *(undefined2 *)&this.field_0x2 = 0x100;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     bVar2 = *(byte *)this;
		 *     value = this.field_0x1;
		 *     if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *       func_0x031fde08();
		 *     }
		 *   }
		 *   else {
		 *     bVar2 = *(byte *)this;
		 *     value = this.field_0x1;
		 *   }
		 *   bVar2 = SecuredByte.EncryptDecrypt(value,bVar2);
		 *   pvVar4 = PixelGuard.get_Instance();
		 *   if (pvVar4 != null) {
		 *     uVar5 = func_0x038d6228(pvVar4,*(undefined8 *)PTR_DAT_070c6630);
		 *     if ((((uVar5 & 1) != 0) && (this.field_0x2 != 0)) && (this.field_0x2 != bVar2)) {
		 *       this_00 = PixelGuard.get_Instance();
		 *       pvVar4 = PixelGuard.get_Instance();
		 *       if ((pvVar4 == null) ||
		 *          (pvVar4 = (void *)func_0x038d5f58(pvVar4,*(undefined8 *)PTR_DAT_070c6628),
		 *          this_00 == null)) goto LAB_0339b8e4;
		 *       PixelGuard.CreateSecurityWarning(this_00,*(void **)PTR_DAT_070c6638,pvVar4);
		 *     }
		 *     return bVar2;
		 *   }
		 * LAB_0339b8e4:
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x329BAA4 VA: 0x7818986AA4
		public static PixelSecurity.Core.SecuredTypes.SecuredByte op_Implicit(byte value);
		/*
		 *   undefined *puVar1;
		 *   byte value_00;
		 *   void *pvVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *in_x2;
		 *   undefined4 uStack_24;
		 *
		 *   puVar1 = PTR_DAT_070c6640;
		 *   if ((bRam000000000754adcd & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6630);
		 *     func_0x031fdc8c(PTR_DAT_070c6640);
		 *     bRam000000000754adcd = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   uStack_24 = 0;
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   value_00 = SecuredByte.EncryptDecrypt(value);
		 *   SecuredByte..ctor((SecuredByte *)&uStack_24,value_00);
		 *   pvVar2 = PixelGuard.get_Instance();
		 *   if (pvVar2 != null) {
		 *     func_0x038d6228(pvVar2,*(undefined8 *)PTR_DAT_070c6630);
		 *     return;
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x329BB4C VA: 0x7818986B4C
		public static byte op_Implicit(PixelSecurity.Core.SecuredTypes.SecuredByte value);
		/*
		 *   undefined *puVar1;
		 *   byte bVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   undefined4 uStack_14;
		 *
		 *   puVar1 = PTR_DAT_070c6640;
		 *   uStack_14 = SUB84(value,0);
		 *   if ((bRam000000000754adce & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6640);
		 *     bRam000000000754adce = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   bVar2 = SecuredByte.InternalDecrypt((SecuredByte *)&stack0xffffffffffffffec);
		 *   return bVar2;
		 */
		// RVA: 0x329BBA4 VA: 0x7818986BA4
		public static PixelSecurity.Core.SecuredTypes.SecuredByte op_Increment(PixelSecurity.Core.SecuredTypes.SecuredByte input);
		/*
		 *   undefined *puVar1;
		 *   byte bVar2;
		 *   void *pvVar3;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *in_x2;
		 *   byte bStack_14;
		 *   byte bStack_13;
		 *   undefined2 uStack_12;
		 *
		 *   puVar1 = PTR_DAT_070c6640;
		 *   _bStack_14 = SUB84(input,0);
		 *   if ((bRam000000000754adcf & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6630);
		 *     func_0x031fdc8c(PTR_DAT_070c6640);
		 *     bRam000000000754adcf = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   bVar2 = SecuredByte.InternalDecrypt((SecuredByte *)&bStack_14);
		 *   bVar2 = SecuredByte.EncryptDecrypt(bVar2 + 1,bStack_14);
		 *   bStack_13 = bVar2;
		 *   pvVar3 = PixelGuard.get_Instance();
		 *   if (pvVar3 != null) {
		 *     func_0x038d6228(pvVar3,*(undefined8 *)PTR_DAT_070c6630);
		 *     return;
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x329BC48 VA: 0x7818986C48
		public static PixelSecurity.Core.SecuredTypes.SecuredByte op_Decrement(PixelSecurity.Core.SecuredTypes.SecuredByte input);
		/*
		 *   undefined *puVar1;
		 *   byte bVar2;
		 *   void *pvVar3;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *in_x2;
		 *   byte bStack_14;
		 *   byte bStack_13;
		 *   undefined2 uStack_12;
		 *
		 *   puVar1 = PTR_DAT_070c6640;
		 *   _bStack_14 = SUB84(input,0);
		 *   if ((bRam000000000754add0 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6630);
		 *     func_0x031fdc8c(PTR_DAT_070c6640);
		 *     bRam000000000754add0 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   bVar2 = SecuredByte.InternalDecrypt((SecuredByte *)&bStack_14);
		 *   bVar2 = SecuredByte.EncryptDecrypt(bVar2 - 1,bStack_14);
		 *   bStack_13 = bVar2;
		 *   pvVar3 = PixelGuard.get_Instance();
		 *   if (pvVar3 != null) {
		 *     func_0x038d6228(pvVar3,*(undefined8 *)PTR_DAT_070c6630);
		 *     return;
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x329BCEC VA: 0x7818986CEC
		public override bool Equals(object obj);
		/*
		 *   bool bVar1;
		 *   long lVar2;
		 *
		 *   if ((bRam000000000754add1 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6640);
		 *     bRam000000000754add1 = 1;
		 *   }
		 *   if ((obj == null) || (*(long *)obj != *(long *)PTR_DAT_070c6640)) {
		 *     bVar1 = false;
		 *   }
		 *   else {
		 *     lVar2 = func_0x031fde14(obj);
		 *     bVar1 = this.field_0x1 == *(char *)(lVar2 + 1);
		 *   }
		 *   return bVar1;
		 */
		// RVA: 0x329BD64 VA: 0x7818986D64
		public bool Equals(PixelSecurity.Core.SecuredTypes.SecuredByte obj);
		/*
		 *   return (uint)(byte)this.field_0x1 == ((uint)((ulong)obj >> 8) & 0xff);
		 */
		// RVA: 0x329BD78 VA: 0x7818986D78
		public override string ToString();
		/*
		 *   undefined *puVar1;
		 *   void *pvVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   byte abStack_24 [4];
		 *
		 *   puVar1 = PTR_DAT_070c6640;
		 *   if ((bRam000000000754add2 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6640);
		 *     bRam000000000754add2 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   abStack_24[0] = 0;
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   abStack_24[0] = SecuredByte.InternalDecrypt(this);
		 *   pvVar2 = System.Byte.ToString(abStack_24);
		 *   return pvVar2;
		 */
		// RVA: 0x329BDEC VA: 0x7818986DEC
		public string ToString(string format);
		/*
		 *   undefined *puVar1;
		 *   void *pvVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   byte abStack_24 [4];
		 *
		 *   puVar1 = PTR_DAT_070c6640;
		 *   pvVar2 = format;
		 *   if ((bRam000000000754add3 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6640);
		 *     bRam000000000754add3 = 1;
		 *     pvVar2 = extraout_x1;
		 *   }
		 *   abStack_24[0] = 0;
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     pvVar2 = extraout_x1_00;
		 *   }
		 *   abStack_24[0] = SecuredByte.InternalDecrypt(this);
		 *   pvVar2 = System.Byte.ToString(abStack_24,format);
		 *   return pvVar2;
		 */
		// RVA: 0x329BE68 VA: 0x7818986E68
		public override int GetHashCode();
		/*
		 *   undefined *puVar1;
		 *   int iVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   byte abStack_24 [4];
		 *
		 *   puVar1 = PTR_DAT_070c6640;
		 *   if ((bRam000000000754add4 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6640);
		 *     bRam000000000754add4 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   abStack_24[0] = 0;
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   abStack_24[0] = SecuredByte.InternalDecrypt(this);
		 *   iVar2 = System.Byte.GetHashCode(abStack_24);
		 *   return iVar2;
		 */
		// RVA: 0x329BEDC VA: 0x7818986EDC
		public string ToString(System.IFormatProvider provider);
		/*
		 *   undefined *puVar1;
		 *   void *pvVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   byte abStack_24 [4];
		 *
		 *   puVar1 = PTR_DAT_070c6640;
		 *   pvVar2 = provider;
		 *   if ((bRam000000000754add5 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6640);
		 *     bRam000000000754add5 = 1;
		 *     pvVar2 = extraout_x1;
		 *   }
		 *   abStack_24[0] = 0;
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     pvVar2 = extraout_x1_00;
		 *   }
		 *   abStack_24[0] = SecuredByte.InternalDecrypt(this);
		 *   pvVar2 = System.Byte.ToString(abStack_24,provider);
		 *   return pvVar2;
		 */
		// RVA: 0x329BF58 VA: 0x7818986F58
		public string ToString(string format, System.IFormatProvider provider);
		/*
		 *   undefined *puVar1;
		 *   void *pvVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   byte abStack_34 [4];
		 *
		 *   puVar1 = PTR_DAT_070c6640;
		 *   pvVar2 = format;
		 *   if ((bRam000000000754add6 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6640);
		 *     bRam000000000754add6 = 1;
		 *     pvVar2 = extraout_x1;
		 *   }
		 *   abStack_34[0] = 0;
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     pvVar2 = extraout_x1_00;
		 *   }
		 *   abStack_34[0] = SecuredByte.InternalDecrypt(this);
		 *   pvVar2 = System.Byte.ToString(abStack_34,format,provider);
		 *   return pvVar2;
		 */
		// RVA: 0x329BFE4 VA: 0x7818986FE4
		private static void .cctor();
		/*
		 *   undefined *puVar1;
		 *
		 *   puVar1 = PTR_DAT_070c6640;
		 *   if ((bRam000000000754add7 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6640);
		 *     bRam000000000754add7 = 1;
		 *   }
		 *   **(undefined1 **)(*(long *)puVar1 + 0xb8) = 0xf4;
		 *   return;
		 */
	}
}
