namespace PixelSecurity.Core.SecuredTypes
{

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

		// RVA: 0x32A5E88 VA: 0x7818990E88
		private void .ctor(sbyte value);
		/*
		 *   undefined1 uVar1;
		 *   undefined *puVar2;
		 *   long lVar3;
		 *   undefined1 *puVar4;
		 *
		 *   puVar2 = PTR_DAT_070c66d8;
		 *   if ((bRam000000000754aeaf & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66d8);
		 *     bRam000000000754aeaf = 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: 0x32A5F00 VA: 0x7818990F00
		public static void SetCryptoKey(sbyte newKey);
		/*
		 *   undefined *puVar1;
		 *   long lVar2;
		 *   void *extraout_x1;
		 *
		 *   puVar1 = PTR_DAT_070c66d8;
		 *   if ((bRam000000000754aeb0 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66d8);
		 *     bRam000000000754aeb0 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   lVar2 = *(long *)puVar1;
		 *   if (*(int *)(lVar2 + 0xe4) == 0) {
		 *     func_0x031fde08(lVar2,methodInfo);
		 *     lVar2 = *(long *)puVar1;
		 *   }
		 *   **(sbyte **)(lVar2 + 0xb8) = newKey;
		 *   return;
		 */
		// RVA: 0x32A5F5C VA: 0x7818990F5C
		public void ApplyNewCryptoKey();
		/*
		 *   char cVar1;
		 *   undefined *puVar2;
		 *   sbyte sVar3;
		 *   long lVar4;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *extraout_x1_01;
		 *   void *in_x2;
		 *
		 *   puVar2 = PTR_DAT_070c66d8;
		 *   if ((bRam000000000754aeb1 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66d8);
		 *     bRam000000000754aeb1 = 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;
		 *     }
		 *     sVar3 = SecuredSByte.InternalDecrypt(this);
		 *     sVar3 = SecuredSByte.EncryptDecrypt(sVar3,**(sbyte **)(*(long *)puVar2 + 0xb8));
		 *     lVar4 = *(long *)puVar2;
		 *     this.field_0x1 = sVar3;
		 *     *(undefined1 *)this = **(undefined1 **)(lVar4 + 0xb8);
		 *   }
		 *   return;
		 */
		// RVA: 0x32A61CC VA: 0x78189911CC
		public static sbyte EncryptDecrypt(sbyte value);
		/*
		 *   undefined *puVar1;
		 *   long lVar2;
		 *   void *extraout_x1;
		 *
		 *   puVar1 = PTR_DAT_070c66d8;
		 *   if ((bRam000000000754aeb2 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66d8);
		 *     bRam000000000754aeb2 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08(*(long *)puVar1,methodInfo);
		 *   }
		 *   if ((bRam000000000754aeb3 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66d8);
		 *     bRam000000000754aeb3 = 1;
		 *   }
		 *   puVar1 = PTR_DAT_070c66d8;
		 *   lVar2 = *(long *)PTR_DAT_070c66d8;
		 *   if (*(int *)(lVar2 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     lVar2 = *(long *)puVar1;
		 *   }
		 *   return **(byte **)(lVar2 + 0xb8) ^ value;
		 */
		// RVA: 0x32A6160 VA: 0x7818991160
		public static sbyte EncryptDecrypt(sbyte value, sbyte key);
		/*
		 *   undefined *puVar1;
		 *   long lVar2;
		 *
		 *   if ((bRam000000000754aeb3 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66d8);
		 *     bRam000000000754aeb3 = 1;
		 *   }
		 *   puVar1 = PTR_DAT_070c66d8;
		 *   if (key == 0) {
		 *     lVar2 = *(long *)PTR_DAT_070c66d8;
		 *     if (*(int *)(lVar2 + 0xe4) == 0) {
		 *       func_0x031fde08();
		 *       lVar2 = *(long *)puVar1;
		 *     }
		 *     key = **(byte **)(lVar2 + 0xb8);
		 *   }
		 *   return key ^ value;
		 */
		// RVA: 0x32A6224 VA: 0x7818991224
		public sbyte GetEncrypted();
		/*
		 *   undefined *puVar1;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *
		 *   puVar1 = PTR_DAT_070c66d8;
		 *   if ((bRam000000000754aeb4 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66d8);
		 *     bRam000000000754aeb4 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   SecuredSByte.ApplyNewCryptoKey(this);
		 *   return this.field_0x1;
		 */
		// RVA: 0x32A6280 VA: 0x7818991280
		public void SetEncrypted(sbyte encrypted);
		/*
		 *   sbyte sVar1;
		 *   void *pvVar2;
		 *   void *extraout_x1;
		 *   undefined1 auVar3 [16];
		 *
		 *   if ((bRam000000000754aeb5 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6630);
		 *     func_0x031fdc8c(PTR_DAT_070c66d8);
		 *     bRam000000000754aeb5 = 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_070c66d8 + 0xe4) == 0) {
		 *         func_0x031fde08();
		 *         pvVar2 = extraout_x1;
		 *       }
		 *       sVar1 = SecuredSByte.InternalDecrypt(this);
		 *       this.field_0x2 = sVar1;
		 *     }
		 *     return;
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32A5FFC VA: 0x7818990FFC
		private sbyte InternalDecrypt();
		/*
		 *   undefined *puVar1;
		 *   sbyte sVar2;
		 *   long lVar3;
		 *   void *pvVar4;
		 *   ulong uVar5;
		 *   PixelGuard *this_00;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *in_x2;
		 *   sbyte value;
		 *
		 *   if ((bRam000000000754aeb6 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6628);
		 *     func_0x031fdc8c(PTR_DAT_070c6630);
		 *     func_0x031fdc8c(PTR_DAT_070c66d8);
		 *     func_0x031fdc8c(PTR_DAT_070c6638);
		 *     bRam000000000754aeb6 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   puVar1 = PTR_DAT_070c66d8;
		 *   if (this.field_0x3 == '\0') {
		 *     lVar3 = *(long *)PTR_DAT_070c66d8;
		 *     if (*(int *)(lVar3 + 0xe4) == 0) {
		 *       func_0x031fde08();
		 *       lVar3 = *(long *)puVar1;
		 *       methodInfo = extraout_x1_00;
		 *     }
		 *     *(undefined1 *)this = **(undefined1 **)(lVar3 + 0xb8);
		 *     sVar2 = SecuredSByte.EncryptDecrypt(0);
		 *     this.field_0x1 = sVar2;
		 *     *(undefined2 *)&this.field_0x2 = 0x100;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     sVar2 = *(sbyte *)this;
		 *     value = this.field_0x1;
		 *     if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *       func_0x031fde08();
		 *     }
		 *   }
		 *   else {
		 *     sVar2 = *(sbyte *)this;
		 *     value = this.field_0x1;
		 *   }
		 *   sVar2 = SecuredSByte.EncryptDecrypt(value,sVar2);
		 *   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 != sVar2)) {
		 *       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_033a615c;
		 *       PixelGuard.CreateSecurityWarning(this_00,*(void **)PTR_DAT_070c6638,pvVar4);
		 *     }
		 *     return sVar2;
		 *   }
		 * LAB_033a615c:
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32A631C VA: 0x781899131C
		public static PixelSecurity.Core.SecuredTypes.SecuredSByte op_Implicit(sbyte value);
		/*
		 *   undefined *puVar1;
		 *   sbyte value_00;
		 *   void *pvVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *in_x2;
		 *   undefined4 uStack_24;
		 *
		 *   puVar1 = PTR_DAT_070c66d8;
		 *   if ((bRam000000000754aeb7 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6630);
		 *     func_0x031fdc8c(PTR_DAT_070c66d8);
		 *     bRam000000000754aeb7 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   uStack_24 = 0;
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   value_00 = SecuredSByte.EncryptDecrypt(value);
		 *   SecuredSByte..ctor((SecuredSByte *)&uStack_24,value_00);
		 *   pvVar2 = PixelGuard.get_Instance();
		 *   if (pvVar2 != null) {
		 *     func_0x038d6228(pvVar2,*(undefined8 *)PTR_DAT_070c6630);
		 *     return;
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32A63C4 VA: 0x78189913C4
		public static sbyte op_Implicit(PixelSecurity.Core.SecuredTypes.SecuredSByte value);
		/*
		 *   undefined *puVar1;
		 *   sbyte sVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   undefined4 uStack_14;
		 *
		 *   puVar1 = PTR_DAT_070c66d8;
		 *   uStack_14 = SUB84(value,0);
		 *   if ((bRam000000000754aeb8 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66d8);
		 *     bRam000000000754aeb8 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   sVar2 = SecuredSByte.InternalDecrypt((SecuredSByte *)&stack0xffffffffffffffec);
		 *   return sVar2;
		 */
		// RVA: 0x32A641C VA: 0x781899141C
		public static PixelSecurity.Core.SecuredTypes.SecuredSByte op_Increment(PixelSecurity.Core.SecuredTypes.SecuredSByte input);
		/*
		 *   undefined *puVar1;
		 *   sbyte sVar2;
		 *   void *pvVar3;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *in_x2;
		 *   sbyte sStack_14;
		 *   sbyte sStack_13;
		 *   undefined2 uStack_12;
		 *
		 *   puVar1 = PTR_DAT_070c66d8;
		 *   _sStack_14 = SUB84(input,0);
		 *   if ((bRam000000000754aeb9 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6630);
		 *     func_0x031fdc8c(PTR_DAT_070c66d8);
		 *     bRam000000000754aeb9 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   sVar2 = SecuredSByte.InternalDecrypt((SecuredSByte *)&sStack_14);
		 *   sVar2 = SecuredSByte.EncryptDecrypt(sVar2 + 1,sStack_14);
		 *   sStack_13 = sVar2;
		 *   pvVar3 = PixelGuard.get_Instance();
		 *   if (pvVar3 != null) {
		 *     func_0x038d6228(pvVar3,*(undefined8 *)PTR_DAT_070c6630);
		 *     return;
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32A64C0 VA: 0x78189914C0
		public static PixelSecurity.Core.SecuredTypes.SecuredSByte op_Decrement(PixelSecurity.Core.SecuredTypes.SecuredSByte input);
		/*
		 *   undefined *puVar1;
		 *   sbyte sVar2;
		 *   void *pvVar3;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *in_x2;
		 *   sbyte sStack_14;
		 *   sbyte sStack_13;
		 *   undefined2 uStack_12;
		 *
		 *   puVar1 = PTR_DAT_070c66d8;
		 *   _sStack_14 = SUB84(input,0);
		 *   if ((bRam000000000754aeba & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6630);
		 *     func_0x031fdc8c(PTR_DAT_070c66d8);
		 *     bRam000000000754aeba = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   sVar2 = SecuredSByte.InternalDecrypt((SecuredSByte *)&sStack_14);
		 *   sVar2 = SecuredSByte.EncryptDecrypt(sVar2 + -1,sStack_14);
		 *   sStack_13 = sVar2;
		 *   pvVar3 = PixelGuard.get_Instance();
		 *   if (pvVar3 != null) {
		 *     func_0x038d6228(pvVar3,*(undefined8 *)PTR_DAT_070c6630);
		 *     return;
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32A6564 VA: 0x7818991564
		public override bool Equals(object obj);
		/*
		 *   bool bVar1;
		 *   long lVar2;
		 *
		 *   if ((bRam000000000754aebb & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66d8);
		 *     bRam000000000754aebb = 1;
		 *   }
		 *   if ((obj == null) || (*(long *)obj != *(long *)PTR_DAT_070c66d8)) {
		 *     bVar1 = false;
		 *   }
		 *   else {
		 *     lVar2 = func_0x031fde14(obj);
		 *     bVar1 = this.field_0x1 == *(char *)(lVar2 + 1);
		 *   }
		 *   return bVar1;
		 */
		// RVA: 0x32A65DC VA: 0x78189915DC
		public bool Equals(PixelSecurity.Core.SecuredTypes.SecuredSByte obj);
		/*
		 *   return (int)(char)this.field_0x1 == ((int)obj << 0x10) >> 0x18;
		 */
		// RVA: 0x32A65F0 VA: 0x78189915F0
		public override string ToString();
		/*
		 *   undefined *puVar1;
		 *   void *pvVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   sbyte asStack_24 [4];
		 *
		 *   puVar1 = PTR_DAT_070c66d8;
		 *   if ((bRam000000000754aebc & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66d8);
		 *     bRam000000000754aebc = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   asStack_24[0] = 0;
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   asStack_24[0] = SecuredSByte.InternalDecrypt(this);
		 *   pvVar2 = System.SByte.ToString(asStack_24);
		 *   return pvVar2;
		 */
		// RVA: 0x32A6664 VA: 0x7818991664
		public string ToString(string format);
		/*
		 *   undefined *puVar1;
		 *   void *pvVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   sbyte asStack_24 [4];
		 *
		 *   puVar1 = PTR_DAT_070c66d8;
		 *   pvVar2 = format;
		 *   if ((bRam000000000754aebd & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66d8);
		 *     bRam000000000754aebd = 1;
		 *     pvVar2 = extraout_x1;
		 *   }
		 *   asStack_24[0] = 0;
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     pvVar2 = extraout_x1_00;
		 *   }
		 *   asStack_24[0] = SecuredSByte.InternalDecrypt(this);
		 *   pvVar2 = System.SByte.ToString(asStack_24,format);
		 *   return pvVar2;
		 */
		// RVA: 0x32A66E0 VA: 0x78189916E0
		public override int GetHashCode();
		/*
		 *   undefined *puVar1;
		 *   int iVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   sbyte asStack_24 [4];
		 *
		 *   puVar1 = PTR_DAT_070c66d8;
		 *   if ((bRam000000000754aebe & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66d8);
		 *     bRam000000000754aebe = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   asStack_24[0] = 0;
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   asStack_24[0] = SecuredSByte.InternalDecrypt(this);
		 *   iVar2 = System.SByte.GetHashCode(asStack_24);
		 *   return iVar2;
		 */
		// RVA: 0x32A6754 VA: 0x7818991754
		public string ToString(System.IFormatProvider provider);
		/*
		 *   undefined *puVar1;
		 *   void *pvVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   sbyte asStack_24 [4];
		 *
		 *   puVar1 = PTR_DAT_070c66d8;
		 *   pvVar2 = provider;
		 *   if ((bRam000000000754aebf & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66d8);
		 *     bRam000000000754aebf = 1;
		 *     pvVar2 = extraout_x1;
		 *   }
		 *   asStack_24[0] = 0;
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     pvVar2 = extraout_x1_00;
		 *   }
		 *   asStack_24[0] = SecuredSByte.InternalDecrypt(this);
		 *   pvVar2 = System.SByte.ToString(asStack_24,provider);
		 *   return pvVar2;
		 */
		// RVA: 0x32A67D0 VA: 0x78189917D0
		public string ToString(string format, System.IFormatProvider provider);
		/*
		 *   undefined *puVar1;
		 *   void *pvVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   sbyte asStack_34 [4];
		 *
		 *   puVar1 = PTR_DAT_070c66d8;
		 *   pvVar2 = format;
		 *   if ((bRam000000000754aec0 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66d8);
		 *     bRam000000000754aec0 = 1;
		 *     pvVar2 = extraout_x1;
		 *   }
		 *   asStack_34[0] = 0;
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     pvVar2 = extraout_x1_00;
		 *   }
		 *   asStack_34[0] = SecuredSByte.InternalDecrypt(this);
		 *   pvVar2 = System.SByte.ToString(asStack_34,format,provider);
		 *   return pvVar2;
		 */
		// RVA: 0x32A685C VA: 0x781899185C
		private static void .cctor();
		/*
		 *   undefined *puVar1;
		 *
		 *   puVar1 = PTR_DAT_070c66d8;
		 *   if ((bRam000000000754aec1 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66d8);
		 *     bRam000000000754aec1 = 1;
		 *   }
		 *   **(undefined1 **)(*(long *)puVar1 + 0xb8) = 0x70;
		 *   return;
		 */
	}
}
