namespace PixelSecurity.Core.SecuredTypes
{

	// [TypeInfo RVA: 0x0]
	public sealed struct SecuredUShort : ValueType
	{
		private static ushort _cryptoKey; // 0x0
		private ushort currentCryptoKey; // 0x10
		private ushort hiddenValue; // 0x12
		private ushort fakeValue; // 0x14
		private bool inited; // 0x16

		// RVA: 0x32A89D0 VA: 0x78189939D0
		private void .ctor(ushort value);
		/*
		 *   undefined2 uVar1;
		 *   undefined *puVar2;
		 *   long lVar3;
		 *   undefined2 *puVar4;
		 *
		 *   puVar2 = PTR_DAT_070c66f8;
		 *   if ((bRam000000000754aefd & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66f8);
		 *     bRam000000000754aefd = 1;
		 *   }
		 *   lVar3 = *(long *)puVar2;
		 *   if (*(int *)(lVar3 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     lVar3 = *(long *)puVar2;
		 *   }
		 *   puVar4 = *(undefined2 **)(lVar3 + 0xb8);
		 *   *(ushort *)&this.field_0x2 = value;
		 *   *(undefined2 *)&this.field_0x4 = 0;
		 *   uVar1 = *puVar4;
		 *   this.field_0x6 = 1;
		 *   *(undefined2 *)this = uVar1;
		 *   return;
		 */
		// RVA: 0x32A8A4C VA: 0x7818993A4C
		public static void SetCryptoKey(ushort newKey);
		/*
		 *   undefined *puVar1;
		 *   long lVar2;
		 *   void *extraout_x1;
		 *
		 *   puVar1 = PTR_DAT_070c66f8;
		 *   if ((bRam000000000754aefe & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66f8);
		 *     bRam000000000754aefe = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   lVar2 = *(long *)puVar1;
		 *   if (*(int *)(lVar2 + 0xe4) == 0) {
		 *     func_0x031fde08(lVar2,methodInfo);
		 *     lVar2 = *(long *)puVar1;
		 *   }
		 *   **(ushort **)(lVar2 + 0xb8) = newKey;
		 *   return;
		 */
		// RVA: 0x32A8AA8 VA: 0x7818993AA8
		public void ApplyNewCryptoKey();
		/*
		 *   short sVar1;
		 *   undefined *puVar2;
		 *   ushort uVar3;
		 *   long lVar4;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *extraout_x1_01;
		 *   void *in_x2;
		 *
		 *   puVar2 = PTR_DAT_070c66f8;
		 *   if ((bRam000000000754aeff & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66f8);
		 *     bRam000000000754aeff = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   lVar4 = *(long *)puVar2;
		 *   sVar1 = *(short *)this;
		 *   if (*(int *)(lVar4 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     lVar4 = *(long *)puVar2;
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   if (sVar1 != **(short **)(lVar4 + 0xb8)) {
		 *     if (*(int *)(lVar4 + 0xe4) == 0) {
		 *       func_0x031fde08();
		 *       methodInfo = extraout_x1_01;
		 *     }
		 *     uVar3 = SecuredUShort.InternalDecrypt(this);
		 *     uVar3 = SecuredUShort.EncryptDecrypt(uVar3,**(ushort **)(*(long *)puVar2 + 0xb8));
		 *     lVar4 = *(long *)puVar2;
		 *     *(ushort *)&this.field_0x2 = uVar3;
		 *     *(undefined2 *)this = **(undefined2 **)(lVar4 + 0xb8);
		 *   }
		 *   return;
		 */
		// RVA: 0x32A8D1C VA: 0x7818993D1C
		public static ushort EncryptDecrypt(ushort value);
		/*
		 *   undefined *puVar1;
		 *   long lVar2;
		 *   void *extraout_x1;
		 *
		 *   puVar1 = PTR_DAT_070c66f8;
		 *   if ((bRam000000000754af00 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66f8);
		 *     bRam000000000754af00 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08(*(long *)puVar1,methodInfo);
		 *   }
		 *   if ((bRam000000000754af01 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66f8);
		 *     bRam000000000754af01 = 1;
		 *   }
		 *   puVar1 = PTR_DAT_070c66f8;
		 *   lVar2 = *(long *)PTR_DAT_070c66f8;
		 *   if (*(int *)(lVar2 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     lVar2 = *(long *)puVar1;
		 *   }
		 *   return **(ushort **)(lVar2 + 0xb8) ^ value;
		 */
		// RVA: 0x32A8CB0 VA: 0x7818993CB0
		public static ushort EncryptDecrypt(ushort value, ushort key);
		/*
		 *   undefined *puVar1;
		 *   long lVar2;
		 *
		 *   if ((bRam000000000754af01 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66f8);
		 *     bRam000000000754af01 = 1;
		 *   }
		 *   puVar1 = PTR_DAT_070c66f8;
		 *   if (key == 0) {
		 *     lVar2 = *(long *)PTR_DAT_070c66f8;
		 *     if (*(int *)(lVar2 + 0xe4) == 0) {
		 *       func_0x031fde08();
		 *       lVar2 = *(long *)puVar1;
		 *     }
		 *     key = **(ushort **)(lVar2 + 0xb8);
		 *   }
		 *   return key ^ value;
		 */
		// RVA: 0x32A8D74 VA: 0x7818993D74
		public ushort GetEncrypted();
		/*
		 *   undefined *puVar1;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *
		 *   puVar1 = PTR_DAT_070c66f8;
		 *   if ((bRam000000000754af02 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66f8);
		 *     bRam000000000754af02 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   SecuredUShort.ApplyNewCryptoKey(this);
		 *   return *(ushort *)&this.field_0x2;
		 */
		// RVA: 0x32A8DD0 VA: 0x7818993DD0
		public void SetEncrypted(ushort encrypted);
		/*
		 *   ushort uVar1;
		 *   void *pvVar2;
		 *   void *extraout_x1;
		 *   undefined1 auVar3 [16];
		 *
		 *   if ((bRam000000000754af03 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6630);
		 *     func_0x031fdc8c(PTR_DAT_070c66f8);
		 *     bRam000000000754af03 = 1;
		 *   }
		 *   *(ushort *)&this.field_0x2 = encrypted;
		 *   this.field_0x6 = 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_070c66f8 + 0xe4) == 0) {
		 *         func_0x031fde08();
		 *         pvVar2 = extraout_x1;
		 *       }
		 *       uVar1 = SecuredUShort.InternalDecrypt(this);
		 *       *(ushort *)&this.field_0x4 = uVar1;
		 *     }
		 *     return;
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32A8B48 VA: 0x7818993B48
		private ushort InternalDecrypt();
		/*
		 *   undefined *puVar1;
		 *   ushort uVar2;
		 *   long lVar3;
		 *   void *pvVar4;
		 *   ulong uVar5;
		 *   PixelGuard *this_00;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *in_x2;
		 *   ushort value;
		 *
		 *   if ((bRam000000000754af04 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6628);
		 *     func_0x031fdc8c(PTR_DAT_070c6630);
		 *     func_0x031fdc8c(PTR_DAT_070c66f8);
		 *     func_0x031fdc8c(PTR_DAT_070c6638);
		 *     bRam000000000754af04 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   puVar1 = PTR_DAT_070c66f8;
		 *   if (this.field_0x6 == '\0') {
		 *     lVar3 = *(long *)PTR_DAT_070c66f8;
		 *     if (*(int *)(lVar3 + 0xe4) == 0) {
		 *       func_0x031fde08();
		 *       lVar3 = *(long *)puVar1;
		 *       methodInfo = extraout_x1_00;
		 *     }
		 *     *(undefined2 *)this = **(undefined2 **)(lVar3 + 0xb8);
		 *     uVar2 = SecuredUShort.EncryptDecrypt(0);
		 *     *(undefined2 *)&this.field_0x4 = 0;
		 *     *(ushort *)&this.field_0x2 = uVar2;
		 *     this.field_0x6 = 1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     uVar2 = *(ushort *)this;
		 *     value = *(ushort *)&this.field_0x2;
		 *     if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *       func_0x031fde08();
		 *     }
		 *   }
		 *   else {
		 *     uVar2 = *(ushort *)this;
		 *     value = *(ushort *)&this.field_0x2;
		 *   }
		 *   uVar2 = SecuredUShort.EncryptDecrypt(value,uVar2);
		 *   pvVar4 = PixelGuard.get_Instance();
		 *   if (pvVar4 != null) {
		 *     uVar5 = func_0x038d6228(pvVar4,*(undefined8 *)PTR_DAT_070c6630);
		 *     if ((((uVar5 & 1) != 0) && (*(ushort *)&this.field_0x4 != 0)) &&
		 *        (*(ushort *)&this.field_0x4 != uVar2)) {
		 *       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_033a8cac;
		 *       PixelGuard.CreateSecurityWarning(this_00,*(void **)PTR_DAT_070c6638,pvVar4);
		 *     }
		 *     return uVar2;
		 *   }
		 * LAB_033a8cac:
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32A8E6C VA: 0x7818993E6C
		public static PixelSecurity.Core.SecuredTypes.SecuredUShort op_Implicit(ushort value);
		/*
		 *   undefined *puVar1;
		 *   ushort value_00;
		 *   void *pvVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *in_x2;
		 *   undefined8 uStack_28;
		 *
		 *   puVar1 = PTR_DAT_070c66f8;
		 *   if ((bRam000000000754af05 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6630);
		 *     func_0x031fdc8c(PTR_DAT_070c66f8);
		 *     bRam000000000754af05 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   uStack_28 = 0;
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   value_00 = SecuredUShort.EncryptDecrypt(value);
		 *   SecuredUShort..ctor((SecuredUShort *)&uStack_28,value_00);
		 *   pvVar2 = PixelGuard.get_Instance();
		 *   if (pvVar2 != null) {
		 *     func_0x038d6228(pvVar2,*(undefined8 *)PTR_DAT_070c6630);
		 *     return;
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32A8F14 VA: 0x7818993F14
		public static ushort op_Implicit(PixelSecurity.Core.SecuredTypes.SecuredUShort value);
		/*
		 *   undefined *puVar1;
		 *   ushort uVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   SecuredUShort *pSStack_18;
		 *
		 *   puVar1 = PTR_DAT_070c66f8;
		 *   pSStack_18 = value;
		 *   if ((bRam000000000754af06 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66f8);
		 *     bRam000000000754af06 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   uVar2 = SecuredUShort.InternalDecrypt((SecuredUShort *)&pSStack_18);
		 *   return uVar2;
		 */
		// RVA: 0x32A8F6C VA: 0x7818993F6C
		public static PixelSecurity.Core.SecuredTypes.SecuredUShort op_Increment(PixelSecurity.Core.SecuredTypes.SecuredUShort input);
		/*
		 *   undefined *puVar1;
		 *   ushort uVar2;
		 *   void *pvVar3;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *in_x2;
		 *   undefined8 uStack_18;
		 *
		 *   puVar1 = PTR_DAT_070c66f8;
		 *   uStack_18 = input;
		 *   if ((bRam000000000754af07 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6630);
		 *     func_0x031fdc8c(PTR_DAT_070c66f8);
		 *     bRam000000000754af07 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   uVar2 = SecuredUShort.InternalDecrypt((SecuredUShort *)&uStack_18);
		 *   uVar2 = SecuredUShort.EncryptDecrypt(uVar2 + 1,(ushort)uStack_18);
		 *   uStack_18._2_2_ = uVar2;
		 *   pvVar3 = PixelGuard.get_Instance();
		 *   if (pvVar3 != null) {
		 *     func_0x038d6228(pvVar3,*(undefined8 *)PTR_DAT_070c6630);
		 *     return;
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32A9010 VA: 0x7818994010
		public static PixelSecurity.Core.SecuredTypes.SecuredUShort op_Decrement(PixelSecurity.Core.SecuredTypes.SecuredUShort input);
		/*
		 *   undefined *puVar1;
		 *   ushort uVar2;
		 *   void *pvVar3;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *in_x2;
		 *   undefined8 uStack_18;
		 *
		 *   puVar1 = PTR_DAT_070c66f8;
		 *   uStack_18 = input;
		 *   if ((bRam000000000754af08 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6630);
		 *     func_0x031fdc8c(PTR_DAT_070c66f8);
		 *     bRam000000000754af08 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   uVar2 = SecuredUShort.InternalDecrypt((SecuredUShort *)&uStack_18);
		 *   uVar2 = SecuredUShort.EncryptDecrypt(uVar2 - 1,(ushort)uStack_18);
		 *   uStack_18._2_2_ = uVar2;
		 *   pvVar3 = PixelGuard.get_Instance();
		 *   if (pvVar3 != null) {
		 *     func_0x038d6228(pvVar3,*(undefined8 *)PTR_DAT_070c6630);
		 *     return;
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32A90B4 VA: 0x78189940B4
		public override bool Equals(object obj);
		/*
		 *   bool bVar1;
		 *   long lVar2;
		 *
		 *   if ((bRam000000000754af09 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66f8);
		 *     bRam000000000754af09 = 1;
		 *   }
		 *   if ((obj == null) || (*(long *)obj != *(long *)PTR_DAT_070c66f8)) {
		 *     bVar1 = false;
		 *   }
		 *   else {
		 *     lVar2 = func_0x031fde14(obj);
		 *     bVar1 = *(short *)&this.field_0x2 == *(short *)(lVar2 + 2);
		 *   }
		 *   return bVar1;
		 */
		// RVA: 0x32A912C VA: 0x781899412C
		public bool Equals(PixelSecurity.Core.SecuredTypes.SecuredUShort obj);
		/*
		 *   return (uint)*(ushort *)&this.field_0x2 == (uint)obj >> 0x10;
		 */
		// RVA: 0x32A913C VA: 0x781899413C
		public override string ToString();
		/*
		 *   undefined *puVar1;
		 *   void *pvVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   ushort auStack_24 [2];
		 *
		 *   puVar1 = PTR_DAT_070c66f8;
		 *   if ((bRam000000000754af0a & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66f8);
		 *     bRam000000000754af0a = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   auStack_24[0] = 0;
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   auStack_24[0] = SecuredUShort.InternalDecrypt(this);
		 *   pvVar2 = System.UInt16.ToString(auStack_24);
		 *   return pvVar2;
		 */
		// RVA: 0x32A91B0 VA: 0x78189941B0
		public string ToString(string format);
		/*
		 *   undefined *puVar1;
		 *   void *pvVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   ushort auStack_24 [2];
		 *
		 *   puVar1 = PTR_DAT_070c66f8;
		 *   pvVar2 = format;
		 *   if ((bRam000000000754af0b & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66f8);
		 *     bRam000000000754af0b = 1;
		 *     pvVar2 = extraout_x1;
		 *   }
		 *   auStack_24[0] = 0;
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     pvVar2 = extraout_x1_00;
		 *   }
		 *   auStack_24[0] = SecuredUShort.InternalDecrypt(this);
		 *   pvVar2 = System.UInt16.ToString(auStack_24,format);
		 *   return pvVar2;
		 */
		// RVA: 0x32A922C VA: 0x781899422C
		public override int GetHashCode();
		/*
		 *   undefined *puVar1;
		 *   int iVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   ushort auStack_24 [2];
		 *
		 *   puVar1 = PTR_DAT_070c66f8;
		 *   if ((bRam000000000754af0c & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66f8);
		 *     bRam000000000754af0c = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   auStack_24[0] = 0;
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   auStack_24[0] = SecuredUShort.InternalDecrypt(this);
		 *   iVar2 = System.UInt16.GetHashCode(auStack_24);
		 *   return iVar2;
		 */
		// RVA: 0x32A92A0 VA: 0x78189942A0
		public string ToString(System.IFormatProvider provider);
		/*
		 *   undefined *puVar1;
		 *   void *pvVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   ushort auStack_24 [2];
		 *
		 *   puVar1 = PTR_DAT_070c66f8;
		 *   pvVar2 = provider;
		 *   if ((bRam000000000754af0d & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66f8);
		 *     bRam000000000754af0d = 1;
		 *     pvVar2 = extraout_x1;
		 *   }
		 *   auStack_24[0] = 0;
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     pvVar2 = extraout_x1_00;
		 *   }
		 *   auStack_24[0] = SecuredUShort.InternalDecrypt(this);
		 *   pvVar2 = System.UInt16.ToString(auStack_24,provider);
		 *   return pvVar2;
		 */
		// RVA: 0x32A931C VA: 0x781899431C
		public string ToString(string format, System.IFormatProvider provider);
		/*
		 *   undefined *puVar1;
		 *   void *pvVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   ushort auStack_34 [2];
		 *
		 *   puVar1 = PTR_DAT_070c66f8;
		 *   pvVar2 = format;
		 *   if ((bRam000000000754af0e & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66f8);
		 *     bRam000000000754af0e = 1;
		 *     pvVar2 = extraout_x1;
		 *   }
		 *   auStack_34[0] = 0;
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     pvVar2 = extraout_x1_00;
		 *   }
		 *   auStack_34[0] = SecuredUShort.InternalDecrypt(this);
		 *   pvVar2 = System.UInt16.ToString(auStack_34,format,provider);
		 *   return pvVar2;
		 */
		// RVA: 0x32A93A8 VA: 0x78189943A8
		private static void .cctor();
		/*
		 *   undefined *puVar1;
		 *
		 *   puVar1 = PTR_DAT_070c66f8;
		 *   if ((bRam000000000754af0f & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66f8);
		 *     bRam000000000754af0f = 1;
		 *   }
		 *   **(undefined2 **)(*(long *)puVar1 + 0xb8) = 0xe0;
		 *   return;
		 */
	}
}
