namespace PixelSecurity.Core.SecuredTypes
{

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

		// RVA: 0x32A68A8 VA: 0x78189918A8
		private void .ctor(short value);
		/*
		 *   undefined2 uVar1;
		 *   undefined *puVar2;
		 *   long lVar3;
		 *   undefined2 *puVar4;
		 *
		 *   puVar2 = PTR_DAT_070c66e0;
		 *   if ((bRam000000000754aec2 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66e0);
		 *     bRam000000000754aec2 = 1;
		 *   }
		 *   lVar3 = *(long *)puVar2;
		 *   if (*(int *)(lVar3 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     lVar3 = *(long *)puVar2;
		 *   }
		 *   puVar4 = *(undefined2 **)(lVar3 + 0xb8);
		 *   *(short *)&this.field_0x2 = value;
		 *   *(undefined2 *)&this.field_0x4 = 0;
		 *   uVar1 = *puVar4;
		 *   this.field_0x6 = 1;
		 *   *(undefined2 *)this = uVar1;
		 *   return;
		 */
		// RVA: 0x32A6924 VA: 0x7818991924
		public static void SetCryptoKey(short newKey);
		/*
		 *   undefined *puVar1;
		 *   long lVar2;
		 *   void *extraout_x1;
		 *
		 *   puVar1 = PTR_DAT_070c66e0;
		 *   if ((bRam000000000754aec3 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66e0);
		 *     bRam000000000754aec3 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   lVar2 = *(long *)puVar1;
		 *   if (*(int *)(lVar2 + 0xe4) == 0) {
		 *     func_0x031fde08(lVar2,methodInfo);
		 *     lVar2 = *(long *)puVar1;
		 *   }
		 *   **(short **)(lVar2 + 0xb8) = newKey;
		 *   return;
		 */
		// RVA: 0x32A6980 VA: 0x7818991980
		public void ApplyNewCryptoKey();
		/*
		 *   undefined *puVar1;
		 *   short sVar2;
		 *   long lVar3;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *extraout_x1_01;
		 *   void *in_x2;
		 *
		 *   puVar1 = PTR_DAT_070c66e0;
		 *   if ((bRam000000000754aec4 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66e0);
		 *     bRam000000000754aec4 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   lVar3 = *(long *)puVar1;
		 *   sVar2 = *(short *)this;
		 *   if (*(int *)(lVar3 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     lVar3 = *(long *)puVar1;
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   if (sVar2 != **(short **)(lVar3 + 0xb8)) {
		 *     if (*(int *)(lVar3 + 0xe4) == 0) {
		 *       func_0x031fde08();
		 *       methodInfo = extraout_x1_01;
		 *     }
		 *     sVar2 = SecuredShort.InternalDecrypt(this);
		 *     sVar2 = SecuredShort.EncryptDecrypt(sVar2,**(short **)(*(long *)puVar1 + 0xb8));
		 *     lVar3 = *(long *)puVar1;
		 *     *(short *)&this.field_0x2 = sVar2;
		 *     *(undefined2 *)this = **(undefined2 **)(lVar3 + 0xb8);
		 *   }
		 *   return;
		 */
		// RVA: 0x32A6BF4 VA: 0x7818991BF4
		public static short EncryptDecrypt(short value);
		/*
		 *   undefined *puVar1;
		 *   long lVar2;
		 *   void *extraout_x1;
		 *
		 *   puVar1 = PTR_DAT_070c66e0;
		 *   if ((bRam000000000754aec5 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66e0);
		 *     bRam000000000754aec5 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08(*(long *)puVar1,methodInfo);
		 *   }
		 *   if ((bRam000000000754aec6 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66e0);
		 *     bRam000000000754aec6 = 1;
		 *   }
		 *   puVar1 = PTR_DAT_070c66e0;
		 *   lVar2 = *(long *)PTR_DAT_070c66e0;
		 *   if (*(int *)(lVar2 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     lVar2 = *(long *)puVar1;
		 *   }
		 *   return **(ushort **)(lVar2 + 0xb8) ^ value;
		 */
		// RVA: 0x32A6B88 VA: 0x7818991B88
		public static short EncryptDecrypt(short value, short key);
		/*
		 *   undefined *puVar1;
		 *   long lVar2;
		 *
		 *   if ((bRam000000000754aec6 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66e0);
		 *     bRam000000000754aec6 = 1;
		 *   }
		 *   puVar1 = PTR_DAT_070c66e0;
		 *   if (key == 0) {
		 *     lVar2 = *(long *)PTR_DAT_070c66e0;
		 *     if (*(int *)(lVar2 + 0xe4) == 0) {
		 *       func_0x031fde08();
		 *       lVar2 = *(long *)puVar1;
		 *     }
		 *     key = **(ushort **)(lVar2 + 0xb8);
		 *   }
		 *   return key ^ value;
		 */
		// RVA: 0x32A6C4C VA: 0x7818991C4C
		public short GetEncrypted();
		/*
		 *   undefined *puVar1;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *
		 *   puVar1 = PTR_DAT_070c66e0;
		 *   if ((bRam000000000754aec7 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66e0);
		 *     bRam000000000754aec7 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   SecuredShort.ApplyNewCryptoKey(this);
		 *   return *(short *)&this.field_0x2;
		 */
		// RVA: 0x32A6CA8 VA: 0x7818991CA8
		public void SetEncrypted(short encrypted);
		/*
		 *   short sVar1;
		 *   void *pvVar2;
		 *   void *extraout_x1;
		 *   undefined1 auVar3 [16];
		 *
		 *   if ((bRam000000000754aec8 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6630);
		 *     func_0x031fdc8c(PTR_DAT_070c66e0);
		 *     bRam000000000754aec8 = 1;
		 *   }
		 *   *(short *)&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_070c66e0 + 0xe4) == 0) {
		 *         func_0x031fde08();
		 *         pvVar2 = extraout_x1;
		 *       }
		 *       sVar1 = SecuredShort.InternalDecrypt(this);
		 *       *(short *)&this.field_0x4 = sVar1;
		 *     }
		 *     return;
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32A6A20 VA: 0x7818991A20
		private short InternalDecrypt();
		/*
		 *   undefined *puVar1;
		 *   short sVar2;
		 *   long lVar3;
		 *   void *pvVar4;
		 *   ulong uVar5;
		 *   PixelGuard *this_00;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *in_x2;
		 *   short value;
		 *
		 *   if ((bRam000000000754aec9 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6628);
		 *     func_0x031fdc8c(PTR_DAT_070c6630);
		 *     func_0x031fdc8c(PTR_DAT_070c66e0);
		 *     func_0x031fdc8c(PTR_DAT_070c6638);
		 *     bRam000000000754aec9 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   puVar1 = PTR_DAT_070c66e0;
		 *   if (this.field_0x6 == '\0') {
		 *     lVar3 = *(long *)PTR_DAT_070c66e0;
		 *     if (*(int *)(lVar3 + 0xe4) == 0) {
		 *       func_0x031fde08();
		 *       lVar3 = *(long *)puVar1;
		 *       methodInfo = extraout_x1_00;
		 *     }
		 *     *(undefined2 *)this = **(undefined2 **)(lVar3 + 0xb8);
		 *     sVar2 = SecuredShort.EncryptDecrypt(0);
		 *     *(undefined2 *)&this.field_0x4 = 0;
		 *     *(short *)&this.field_0x2 = sVar2;
		 *     this.field_0x6 = 1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     sVar2 = *(short *)this;
		 *     value = *(short *)&this.field_0x2;
		 *     if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *       func_0x031fde08();
		 *     }
		 *   }
		 *   else {
		 *     sVar2 = *(short *)this;
		 *     value = *(short *)&this.field_0x2;
		 *   }
		 *   sVar2 = SecuredShort.EncryptDecrypt(value,sVar2);
		 *   pvVar4 = PixelGuard.get_Instance();
		 *   if (pvVar4 != null) {
		 *     uVar5 = func_0x038d6228(pvVar4,*(undefined8 *)PTR_DAT_070c6630);
		 *     if ((((uVar5 & 1) != 0) && (*(short *)&this.field_0x4 != 0)) &&
		 *        (*(short *)&this.field_0x4 != 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_033a6b84;
		 *       PixelGuard.CreateSecurityWarning(this_00,*(void **)PTR_DAT_070c6638,pvVar4);
		 *     }
		 *     return sVar2;
		 *   }
		 * LAB_033a6b84:
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32A6D44 VA: 0x7818991D44
		public static PixelSecurity.Core.SecuredTypes.SecuredShort op_Implicit(short value);
		/*
		 *   undefined *puVar1;
		 *   short value_00;
		 *   void *pvVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *in_x2;
		 *   undefined8 uStack_28;
		 *
		 *   puVar1 = PTR_DAT_070c66e0;
		 *   if ((bRam000000000754aeca & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6630);
		 *     func_0x031fdc8c(PTR_DAT_070c66e0);
		 *     bRam000000000754aeca = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   uStack_28 = 0;
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   value_00 = SecuredShort.EncryptDecrypt(value);
		 *   SecuredShort..ctor((SecuredShort *)&uStack_28,value_00);
		 *   pvVar2 = PixelGuard.get_Instance();
		 *   if (pvVar2 != null) {
		 *     func_0x038d6228(pvVar2,*(undefined8 *)PTR_DAT_070c6630);
		 *     return;
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32A6DEC VA: 0x7818991DEC
		public static short op_Implicit(PixelSecurity.Core.SecuredTypes.SecuredShort value);
		/*
		 *   undefined *puVar1;
		 *   short sVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   SecuredShort *pSStack_18;
		 *
		 *   puVar1 = PTR_DAT_070c66e0;
		 *   pSStack_18 = value;
		 *   if ((bRam000000000754aecb & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66e0);
		 *     bRam000000000754aecb = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   sVar2 = SecuredShort.InternalDecrypt((SecuredShort *)&pSStack_18);
		 *   return sVar2;
		 */
		// RVA: 0x32A6E44 VA: 0x7818991E44
		public static PixelSecurity.Core.SecuredTypes.SecuredShort op_Increment(PixelSecurity.Core.SecuredTypes.SecuredShort input);
		/*
		 *   undefined *puVar1;
		 *   short sVar2;
		 *   void *pvVar3;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *methodInfo_00;
		 *   undefined8 uStack_18;
		 *
		 *   puVar1 = PTR_DAT_070c66e0;
		 *   uStack_18 = input;
		 *   if ((bRam000000000754aecc & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6630);
		 *     func_0x031fdc8c(PTR_DAT_070c66e0);
		 *     bRam000000000754aecc = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   sVar2 = SecuredShort.InternalDecrypt((SecuredShort *)&uStack_18);
		 *   sVar2 = SecuredShort.EncryptDecrypt(sVar2 + 1);
		 *   uStack_18._2_2_ = sVar2;
		 *   pvVar3 = PixelGuard.get_Instance();
		 *   if (pvVar3 != null) {
		 *     func_0x038d6228(pvVar3,*(undefined8 *)PTR_DAT_070c6630);
		 *     return;
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32A6EE4 VA: 0x7818991EE4
		public static PixelSecurity.Core.SecuredTypes.SecuredShort op_Decrement(PixelSecurity.Core.SecuredTypes.SecuredShort input);
		/*
		 *   undefined *puVar1;
		 *   short sVar2;
		 *   void *pvVar3;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *methodInfo_00;
		 *   undefined8 uStack_18;
		 *
		 *   puVar1 = PTR_DAT_070c66e0;
		 *   uStack_18 = input;
		 *   if ((bRam000000000754aecd & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6630);
		 *     func_0x031fdc8c(PTR_DAT_070c66e0);
		 *     bRam000000000754aecd = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   sVar2 = SecuredShort.InternalDecrypt((SecuredShort *)&uStack_18);
		 *   sVar2 = SecuredShort.EncryptDecrypt(sVar2 + -1);
		 *   uStack_18._2_2_ = sVar2;
		 *   pvVar3 = PixelGuard.get_Instance();
		 *   if (pvVar3 != null) {
		 *     func_0x038d6228(pvVar3,*(undefined8 *)PTR_DAT_070c6630);
		 *     return;
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32A6F84 VA: 0x7818991F84
		public override bool Equals(object obj);
		/*
		 *   bool bVar1;
		 *   long lVar2;
		 *
		 *   if ((bRam000000000754aece & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66e0);
		 *     bRam000000000754aece = 1;
		 *   }
		 *   if ((obj == null) || (*(long *)obj != *(long *)PTR_DAT_070c66e0)) {
		 *     bVar1 = false;
		 *   }
		 *   else {
		 *     lVar2 = func_0x031fde14(obj);
		 *     bVar1 = *(short *)&this.field_0x2 == *(short *)(lVar2 + 2);
		 *   }
		 *   return bVar1;
		 */
		// RVA: 0x32A6FFC VA: 0x7818991FFC
		public bool Equals(PixelSecurity.Core.SecuredTypes.SecuredShort obj);
		/*
		 *   return (int)*(short *)&this.field_0x2 == (int)obj >> 0x10;
		 */
		// RVA: 0x32A700C VA: 0x781899200C
		public override string ToString();
		/*
		 *   undefined *puVar1;
		 *   void *pvVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   short asStack_24 [2];
		 *
		 *   puVar1 = PTR_DAT_070c66e0;
		 *   if ((bRam000000000754aecf & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66e0);
		 *     bRam000000000754aecf = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   asStack_24[0] = 0;
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   asStack_24[0] = SecuredShort.InternalDecrypt(this);
		 *   pvVar2 = System.Int16.ToString(asStack_24);
		 *   return pvVar2;
		 */
		// RVA: 0x32A7080 VA: 0x7818992080
		public string ToString(string format);
		/*
		 *   undefined *puVar1;
		 *   void *pvVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   short asStack_24 [2];
		 *
		 *   puVar1 = PTR_DAT_070c66e0;
		 *   pvVar2 = format;
		 *   if ((bRam000000000754aed0 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66e0);
		 *     bRam000000000754aed0 = 1;
		 *     pvVar2 = extraout_x1;
		 *   }
		 *   asStack_24[0] = 0;
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     pvVar2 = extraout_x1_00;
		 *   }
		 *   asStack_24[0] = SecuredShort.InternalDecrypt(this);
		 *   pvVar2 = System.Int16.ToString(asStack_24,format);
		 *   return pvVar2;
		 */
		// RVA: 0x32A70FC VA: 0x78189920FC
		public override int GetHashCode();
		/*
		 *   undefined *puVar1;
		 *   int iVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   short asStack_24 [2];
		 *
		 *   puVar1 = PTR_DAT_070c66e0;
		 *   if ((bRam000000000754aed1 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66e0);
		 *     bRam000000000754aed1 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   asStack_24[0] = 0;
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   asStack_24[0] = SecuredShort.InternalDecrypt(this);
		 *   iVar2 = System.Int16.GetHashCode(asStack_24);
		 *   return iVar2;
		 */
		// RVA: 0x32A7170 VA: 0x7818992170
		public string ToString(System.IFormatProvider provider);
		/*
		 *   undefined *puVar1;
		 *   void *pvVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   short asStack_24 [2];
		 *
		 *   puVar1 = PTR_DAT_070c66e0;
		 *   pvVar2 = provider;
		 *   if ((bRam000000000754aed2 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66e0);
		 *     bRam000000000754aed2 = 1;
		 *     pvVar2 = extraout_x1;
		 *   }
		 *   asStack_24[0] = 0;
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     pvVar2 = extraout_x1_00;
		 *   }
		 *   asStack_24[0] = SecuredShort.InternalDecrypt(this);
		 *   pvVar2 = System.Int16.ToString(asStack_24,provider);
		 *   return pvVar2;
		 */
		// RVA: 0x32A71EC VA: 0x78189921EC
		public string ToString(string format, System.IFormatProvider provider);
		/*
		 *   undefined *puVar1;
		 *   void *pvVar2;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   short asStack_34 [2];
		 *
		 *   puVar1 = PTR_DAT_070c66e0;
		 *   pvVar2 = format;
		 *   if ((bRam000000000754aed3 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66e0);
		 *     bRam000000000754aed3 = 1;
		 *     pvVar2 = extraout_x1;
		 *   }
		 *   asStack_34[0] = 0;
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     pvVar2 = extraout_x1_00;
		 *   }
		 *   asStack_34[0] = SecuredShort.InternalDecrypt(this);
		 *   pvVar2 = System.Int16.ToString(asStack_34,format,provider);
		 *   return pvVar2;
		 */
		// RVA: 0x32A7278 VA: 0x7818992278
		private static void .cctor();
		/*
		 *   undefined *puVar1;
		 *
		 *   puVar1 = PTR_DAT_070c66e0;
		 *   if ((bRam000000000754aed4 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c66e0);
		 *     bRam000000000754aed4 = 1;
		 *   }
		 *   **(undefined2 **)(*(long *)puVar1 + 0xb8) = 0xd6;
		 *   return;
		 */
	}
}
