namespace PixelSecurity.Core.Encryption
{

	// [TypeInfo RVA: 0x0]
	public class XOR : Object
	{
		private static PixelSecurity.Core.Encryption.XOR.EncryptionOptions _encryptor; // 0x0

		// RVA: 0x32B2354 VA: 0x781899D354
		public void .ctor(PixelSecurity.Core.Encryption.XOR.EncryptionOptions options);
		/*
		 *   undefined *puVar1;
		 *   long lVar2;
		 *
		 *   puVar1 = PTR_DAT_070c68d0;
		 *   if ((bRam000000000754afad & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c68d0);
		 *     bRam000000000754afad = 1;
		 *   }
		 *   System.Object..ctor(param_1);
		 *   lVar2 = *(long *)puVar1;
		 *   if (*(int *)(lVar2 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     lVar2 = *(long *)puVar1;
		 *   }
		 *   **(undefined8 **)(lVar2 + 0xb8) = param_2;
		 *   if (iRam00000000077785f0 != 0) {
		 *     func_0x032ed0c0(1L << (*(ulong *)(*(long *)puVar1 + 0xb8) >> 0xc & 0x3f),
		 *                     (*(ulong *)(*(long *)puVar1 + 0xb8) >> 0x12 & 0x7fff) * 8 + 0x75ac5c8);
		 *   }
		 *   return;
		 */
		// RVA: 0x32B23D4 VA: 0x781899D3D4
		public string EncodeString(string plane);
		/*
		 *   int iVar1;
		 *   int iVar2;
		 *   undefined *puVar3;
		 *   ushort uVar4;
		 *   ushort uVar5;
		 *   long lVar6;
		 *   long *this_00;
		 *   void *pvVar7;
		 *   int index;
		 *
		 *   puVar3 = PTR_DAT_070c68d0;
		 *   if ((bRam000000000754afae & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c68d0);
		 *     bRam000000000754afae = 1;
		 *   }
		 *   lVar6 = *(long *)puVar3;
		 *   if (*(int *)(lVar6 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     lVar6 = *(long *)puVar3;
		 *   }
		 *   puVar3 = typeinfo_ptr_mscorlib_StringBuilder_6FC2160;
		 *   if (**(long **)(lVar6 + 0xb8) == 0) {
		 *     IL2CPP.ThrowNullReferenceException();
		 *   }
		 *   pvVar7 = *(void **)(**(long **)(lVar6 + 0xb8) + 0x10);
		 *   if ((bRam000000000754afb0 & 1) == 0) {
		 *     func_0x031fdc8c(typeinfo_ptr_mscorlib_StringBuilder_6FC2160);
		 *     bRam000000000754afb0 = 1;
		 *   }
		 *   this_00 = (long *)func_0x031fdf24(*(undefined8 *)puVar3);
		 *   System.Text.StringBuilder..ctor(this_00);
		 *   if (plane != null) {
		 *     if (0 < *(int *)((long)plane + 0x10)) {
		 *       index = 0;
		 *       do {
		 *         uVar4 = System.String.get_Chars(plane,index);
		 *         if (pvVar7 == null) goto LAB_033b2518;
		 *         iVar1 = *(int *)((long)pvVar7 + 0x10);
		 *         iVar2 = 0;
		 *         if (iVar1 != 0) {
		 *           iVar2 = index / iVar1;
		 *         }
		 *         uVar5 = System.String.get_Chars(pvVar7,index - iVar2 * iVar1);
		 *         if (this_00 == null) goto LAB_033b2518;
		 *         System.Text.StringBuilder.Append(this_00,uVar5 ^ uVar4);
		 *         index = index + 1;
		 *       } while (index < *(int *)((long)plane + 0x10));
		 *     }
		 *     if (this_00 != null) {
		 *       pvVar7 = (void *)(**(code **)(*this_00 + 0x168))(this_00,*(undefined8 *)(*this_00 + 0x170));
		 *       return pvVar7;
		 *     }
		 *   }
		 * LAB_033b2518:
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32B251C VA: 0x781899D51C
		public System.Byte[] EncodeBinary(System.Byte[] src);
		/*
		 *   void *this_00;
		 *   void *message;
		 *   undefined8 uVar1;
		 *
		 *   func_0x031fdca0(typeinfo_ptr_mscorlib_Exception_6FC0B50);
		 *   this_00 = (void *)func_0x031fdf24();
		 *   message = (void *)func_0x031fdca0(PTR_DAT_070c68d8);
		 *   System.Exception..ctor(this_00,message);
		 *   uVar1 = func_0x031fdca0(PTR_DAT_070c68e0);
		 *   IL2CPP.ThrowManagedException();
		 */
		// RVA: 0x32B2568 VA: 0x781899D568
		public string DecodeString(string encrypted);
		/*
		 *   int iVar1;
		 *   int iVar2;
		 *   undefined *puVar3;
		 *   ushort uVar4;
		 *   ushort uVar5;
		 *   long *this_00;
		 *   long lVar6;
		 *   void *pvVar7;
		 *   int index;
		 *
		 *   puVar3 = PTR_DAT_070c68d0;
		 *   if ((bRam000000000754afaf & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c68d0);
		 *     bRam000000000754afaf = 1;
		 *   }
		 *   lVar6 = *(long *)puVar3;
		 *   if (*(int *)(lVar6 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     lVar6 = *(long *)puVar3;
		 *   }
		 *   puVar3 = typeinfo_ptr_mscorlib_StringBuilder_6FC2160;
		 *   if (**(long **)(lVar6 + 0xb8) == 0) {
		 *     IL2CPP.ThrowNullReferenceException();
		 *   }
		 *   pvVar7 = *(void **)(**(long **)(lVar6 + 0xb8) + 0x10);
		 *   if ((bRam000000000754afb0 & 1) == 0) {
		 *     func_0x031fdc8c(typeinfo_ptr_mscorlib_StringBuilder_6FC2160);
		 *     bRam000000000754afb0 = 1;
		 *   }
		 *   this_00 = (long *)func_0x031fdf24(*(undefined8 *)puVar3);
		 *   System.Text.StringBuilder..ctor(this_00);
		 *   if (encrypted != null) {
		 *     if (0 < *(int *)((long)encrypted + 0x10)) {
		 *       index = 0;
		 *       do {
		 *         uVar4 = System.String.get_Chars(encrypted,index);
		 *         if (pvVar7 == null) goto LAB_033b2518;
		 *         iVar1 = *(int *)((long)pvVar7 + 0x10);
		 *         iVar2 = 0;
		 *         if (iVar1 != 0) {
		 *           iVar2 = index / iVar1;
		 *         }
		 *         uVar5 = System.String.get_Chars(pvVar7,index - iVar2 * iVar1);
		 *         if (this_00 == null) goto LAB_033b2518;
		 *         System.Text.StringBuilder.Append(this_00,uVar5 ^ uVar4);
		 *         index = index + 1;
		 *       } while (index < *(int *)((long)encrypted + 0x10));
		 *     }
		 *     if (this_00 != null) {
		 *       pvVar7 = (void *)(**(code **)(*this_00 + 0x168))(this_00,*(undefined8 *)(*this_00 + 0x170));
		 *       return pvVar7;
		 *     }
		 *   }
		 * LAB_033b2518:
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32B25D4 VA: 0x781899D5D4
		public System.Byte[] DecodeBinary(System.Byte[] src);
		/*
		 *   void *this_00;
		 *   void *message;
		 *   undefined8 uVar1;
		 *
		 *   func_0x031fdca0(typeinfo_ptr_mscorlib_Exception_6FC0B50);
		 *   this_00 = (void *)func_0x031fdf24();
		 *   message = (void *)func_0x031fdca0(PTR_DAT_070c68d8);
		 *   System.Exception..ctor(this_00,message);
		 *   uVar1 = func_0x031fdca0(PTR_DAT_070c68e8);
		 *   IL2CPP.ThrowManagedException();
		 */
		// RVA: 0x32B2440 VA: 0x781899D440
		private string EncryptOrDecrypt(string text, string key);
		/*
		 *   int iVar1;
		 *   int iVar2;
		 *   undefined *puVar3;
		 *   ushort uVar4;
		 *   ushort uVar5;
		 *   long *this_00;
		 *   void *pvVar6;
		 *   int index;
		 *
		 *   puVar3 = typeinfo_ptr_mscorlib_StringBuilder_6FC2160;
		 *   if ((bRam000000000754afb0 & 1) == 0) {
		 *     func_0x031fdc8c(typeinfo_ptr_mscorlib_StringBuilder_6FC2160);
		 *     bRam000000000754afb0 = 1;
		 *   }
		 *   this_00 = (long *)func_0x031fdf24(*(undefined8 *)puVar3);
		 *   System.Text.StringBuilder..ctor(this_00);
		 *   if (text != null) {
		 *     if (0 < *(int *)((long)text + 0x10)) {
		 *       index = 0;
		 *       do {
		 *         uVar4 = System.String.get_Chars(text,index);
		 *         if (key == null) goto LAB_033b2518;
		 *         iVar1 = *(int *)((long)key + 0x10);
		 *         iVar2 = 0;
		 *         if (iVar1 != 0) {
		 *           iVar2 = index / iVar1;
		 *         }
		 *         uVar5 = System.String.get_Chars(key,index - iVar2 * iVar1);
		 *         if (this_00 == null) goto LAB_033b2518;
		 *         System.Text.StringBuilder.Append(this_00,uVar5 ^ uVar4);
		 *         index = index + 1;
		 *       } while (index < *(int *)((long)text + 0x10));
		 *     }
		 *     if (this_00 != null) {
		 *       pvVar6 = (void *)(**(code **)(*this_00 + 0x168))(this_00,*(undefined8 *)(*this_00 + 0x170));
		 *       return pvVar6;
		 *     }
		 *   }
		 * LAB_033b2518:
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32B2620 VA: 0x781899D620
		private static void .cctor();
		/*
		 *   undefined *puVar1;
		 *   undefined *puVar2;
		 *   ulong uVar3;
		 *   undefined1 auVar4 [16];
		 *
		 *   puVar2 = PTR_DAT_070c68f0;
		 *   puVar1 = PTR_DAT_070c68d0;
		 *   if ((bRam000000000754afb1 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c68f0);
		 *     func_0x031fdc8c(PTR_DAT_070c68d0);
		 *     bRam000000000754afb1 = 1;
		 *   }
		 *   auVar4 = func_0x031fdf24(*(undefined8 *)puVar2);
		 *   EncryptionOptions..ctor(auVar4._0_8_);
		 *   **(undefined8 **)(*(long *)puVar1 + 0xb8) = auVar4._0_8_;
		 *   uVar3 = *(ulong *)(*(long *)puVar1 + 0xb8);
		 *   if (iRam00000000077785f0 != 0) {
		 *     func_0x032ed0c0(1L << (uVar3 >> 0xc & 0x3f),(uVar3 >> 0x12 & 0x7fff) * 8 + 0x75ac5c8);
		 *   }
		 *   return;
		 */
	}
}
