namespace PixelSecurity.Modules.WallHackProtector
{

	// [TypeInfo RVA: 0x0]
	public class WallHackProtector : Object
	{
		private PixelSecurity.Modules.WallHackProtector.WallHackProtector.ModuleOptions _options; // 0x10
		private const string SERVICE_CONTAINER_NAME; // 0x0
		private readonly UnityEngine.Vector3 _rigidPlayerVelocity; // 0x18
		private readonly UnityEngine.Vector3 _spawnPosition; // 0x24
		private int _whLayer; // 0x30
		private UnityEngine.GameObject _serviceContainer; // 0x38
		private UnityEngine.Rigidbody _rigidPlayer; // 0x40
		private UnityEngine.CharacterController _charControllerPlayer; // 0x48
		private float _charControllerVelocity; // 0x50
		private bool _invoked; // 0x54
		private float _invokeTimer; // 0x58

		// RVA: 0x32967D8 VA: 0x78189817D8
		public PixelSecurity.Modules.WallHackProtector.WallHackProtector.ModuleOptions get_Options();
		/*
		 *   return *(undefined8 *)(param_1 + 0x10);
		 */
		// RVA: 0x32967E0 VA: 0x78189817E0
		public void .ctor(PixelSecurity.Modules.WallHackProtector.WallHackProtector.ModuleOptions options);
		/*
		 *   undefined *puVar1;
		 *   undefined *puVar2;
		 *   undefined *puVar3;
		 *   void *methodInfo;
		 *   undefined8 *puVar4;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *methodInfo_00;
		 *   void *methodInfo_01;
		 *   void *methodInfo_02;
		 *   void *methodInfo_03;
		 *   void *pvVar5;
		 *   undefined8 uVar6;
		 *   long lVar7;
		 *   ulong uVar8;
		 *   int *piVar9;
		 *   long *plVar10;
		 *
		 *   if ((bRam000000000754ad80 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c6398);
		 *     bRam000000000754ad80 = 1;
		 *   }
		 *   (param_1->rigidPlayerVelocity).z = 1.0;
		 *   param_1->whLayer = -1;
		 *   (param_1->rigidPlayerVelocity).x = 0.0;
		 *   (param_1->rigidPlayerVelocity).y = 0.0;
		 *   param_1->invokeTimer = 4.0;
		 *   System.Object..ctor(param_1);
		 *   if (param_2 == null) {
		 *     param_2 = (void *)func_0x031fdf24(*(undefined8 *)PTR_DAT_070c6398);
		 *     *(undefined8 *)((long)param_2 + 0x10) = 0;
		 *     *(undefined4 *)((long)param_2 + 0x18) = 0;
		 *     System.Object..ctor(param_2);
		 *   }
		 *   param_1->options = param_2;
		 *   func_0x031fdc38(&param_1->options,param_2);
		 *   pvVar5 = param_1->options;
		 *   if (pvVar5 == null) {
		 *     IL2CPP.ThrowNullReferenceException();
		 *   }
		 *   uVar6 = *(undefined8 *)((long)pvVar5 + 0x10);
		 *   (param_1->spawnPosition).z = *(float *)((long)pvVar5 + 0x18);
		 *   (param_1->spawnPosition).x = (float)(int)uVar6;
		 *   (param_1->spawnPosition).y = (float)(int)((ulong)uVar6 >> 0x20);
		 *   pvVar5 = extraout_x1;
		 *   if ((bRam000000000754ad81 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c63a0);
		 *     func_0x031fdc8c(PTR_DAT_070c63a8);
		 *     func_0x031fdc8c(PTR_DAT_070c63b0);
		 *     func_0x031fdc8c(PTR_DAT_070c63b8);
		 *     bRam000000000754ad81 = 1;
		 *     pvVar5 = extraout_x1_00;
		 *   }
		 *   WallHackProtector.InitCommon(param_1);
		 *   WallHackProtector.InitRigidModule(param_1);
		 *   WallHackProtector.InitControllerModule(param_1);
		 *   WallHackProtector.StartRigidModule(param_1);
		 *   WallHackProtector.StartControllerModule(param_1);
		 *   pvVar5 = PixelGuard.get_Instance();
		 *   puVar2 = PTR_DAT_070c63b8;
		 *   puVar1 = PTR_DAT_070c63a0;
		 *   if (pvVar5 != null) {
		 *     plVar10 = *(long **)((long)pvVar5 + 0x30);
		 *     uVar6 = func_0x031fdf24(*(undefined8 *)PTR_DAT_070c63a0);
		 *     func_0x04d12f3c(uVar6,param_1,*(undefined8 *)puVar2,0);
		 *     puVar2 = PTR_DAT_070c63a8;
		 *     if (plVar10 != null) {
		 *       lVar7 = *plVar10;
		 *       uVar8 = (ulong)*(ushort *)(lVar7 + 0x12e);
		 *       if (uVar8 != 0) {
		 *         piVar9 = (int *)(*(long *)(lVar7 + 0xb0) + 8);
		 *         do {
		 *           if (*(long *)(piVar9 + -2) == *(long *)PTR_DAT_070c63a8) {
		 *             puVar4 = (undefined8 *)(lVar7 + (long)*piVar9 * 0x10 + 0x138);
		 *             goto LAB_033969b8;
		 *           }
		 *           uVar8 = uVar8 - 1;
		 *           piVar9 = piVar9 + 4;
		 *         } while (uVar8 != 0);
		 *       }
		 *       puVar4 = (undefined8 *)func_0x03237558(plVar10,*(long *)PTR_DAT_070c63a8,0);
		 * LAB_033969b8:
		 *       pvVar5 = (void *)(*(code *)*puVar4)(plVar10,uVar6,puVar4[1]);
		 *       pvVar5 = PixelGuard.get_Instance();
		 *       puVar3 = PTR_DAT_070c63b0;
		 *       if (pvVar5 != null) {
		 *         plVar10 = *(long **)((long)pvVar5 + 0x38);
		 *         uVar6 = func_0x031fdf24(*(undefined8 *)puVar1);
		 *         func_0x04d12f3c(uVar6,param_1,*(undefined8 *)puVar3,0);
		 *         if (plVar10 != null) {
		 *           lVar7 = *plVar10;
		 *           uVar8 = (ulong)*(ushort *)(lVar7 + 0x12e);
		 *           if (uVar8 != 0) {
		 *             piVar9 = (int *)(*(long *)(lVar7 + 0xb0) + 8);
		 *             do {
		 *               if (*(long *)(piVar9 + -2) == *(long *)puVar2) {
		 *                 puVar4 = (undefined8 *)(lVar7 + (long)*piVar9 * 0x10 + 0x138);
		 *                 goto LAB_03396a48;
		 *               }
		 *               uVar8 = uVar8 - 1;
		 *               piVar9 = piVar9 + 4;
		 *             } while (uVar8 != 0);
		 *           }
		 *           puVar4 = (undefined8 *)func_0x03237558(plVar10,*(long *)puVar2,0);
		 * LAB_03396a48:
		 *           (*(code *)*puVar4)(plVar10,uVar6,puVar4[1]);
		 *           return;
		 *         }
		 *       }
		 *     }
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x3296A68 VA: 0x7818981A68
		protected override void Finalize();
		/*
		 *   WallHackProtector.DisposeDetector(this);
		 *   System.Object.Finalize(this);
		 *   return;
		 */
		// RVA: 0x32968AC VA: 0x78189818AC
		private void InitDetector();
		/*
		 *   undefined *puVar1;
		 *   undefined *puVar2;
		 *   undefined *puVar3;
		 *   void *methodInfo_00;
		 *   void *pvVar4;
		 *   undefined8 uVar5;
		 *   undefined8 *puVar6;
		 *   void *extraout_x1;
		 *   void *methodInfo_01;
		 *   void *methodInfo_02;
		 *   void *methodInfo_03;
		 *   void *methodInfo_04;
		 *   long lVar7;
		 *   ulong uVar8;
		 *   int *piVar9;
		 *   long *plVar10;
		 *
		 *   if ((bRam000000000754ad81 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c63a0);
		 *     func_0x031fdc8c(PTR_DAT_070c63a8);
		 *     func_0x031fdc8c(PTR_DAT_070c63b0);
		 *     func_0x031fdc8c(PTR_DAT_070c63b8);
		 *     bRam000000000754ad81 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   WallHackProtector.InitCommon(this);
		 *   WallHackProtector.InitRigidModule(this);
		 *   WallHackProtector.InitControllerModule(this);
		 *   WallHackProtector.StartRigidModule(this);
		 *   WallHackProtector.StartControllerModule(this);
		 *   pvVar4 = PixelGuard.get_Instance();
		 *   puVar2 = PTR_DAT_070c63b8;
		 *   puVar1 = PTR_DAT_070c63a0;
		 *   if (pvVar4 != null) {
		 *     plVar10 = *(long **)((long)pvVar4 + 0x30);
		 *     uVar5 = func_0x031fdf24(*(undefined8 *)PTR_DAT_070c63a0);
		 *     func_0x04d12f3c(uVar5,this,*(undefined8 *)puVar2,0);
		 *     puVar2 = PTR_DAT_070c63a8;
		 *     if (plVar10 != null) {
		 *       lVar7 = *plVar10;
		 *       uVar8 = (ulong)*(ushort *)(lVar7 + 0x12e);
		 *       if (uVar8 != 0) {
		 *         piVar9 = (int *)(*(long *)(lVar7 + 0xb0) + 8);
		 *         do {
		 *           if (*(long *)(piVar9 + -2) == *(long *)PTR_DAT_070c63a8) {
		 *             puVar6 = (undefined8 *)(lVar7 + (long)*piVar9 * 0x10 + 0x138);
		 *             goto LAB_033969b8;
		 *           }
		 *           uVar8 = uVar8 - 1;
		 *           piVar9 = piVar9 + 4;
		 *         } while (uVar8 != 0);
		 *       }
		 *       puVar6 = (undefined8 *)func_0x03237558(plVar10,*(long *)PTR_DAT_070c63a8,0);
		 * LAB_033969b8:
		 *       pvVar4 = (void *)(*(code *)*puVar6)(plVar10,uVar5,puVar6[1]);
		 *       pvVar4 = PixelGuard.get_Instance();
		 *       puVar3 = PTR_DAT_070c63b0;
		 *       if (pvVar4 != null) {
		 *         plVar10 = *(long **)((long)pvVar4 + 0x38);
		 *         uVar5 = func_0x031fdf24(*(undefined8 *)puVar1);
		 *         func_0x04d12f3c(uVar5,this,*(undefined8 *)puVar3,0);
		 *         if (plVar10 != null) {
		 *           lVar7 = *plVar10;
		 *           uVar8 = (ulong)*(ushort *)(lVar7 + 0x12e);
		 *           if (uVar8 != 0) {
		 *             piVar9 = (int *)(*(long *)(lVar7 + 0xb0) + 8);
		 *             do {
		 *               if (*(long *)(piVar9 + -2) == *(long *)puVar2) {
		 *                 puVar6 = (undefined8 *)(lVar7 + (long)*piVar9 * 0x10 + 0x138);
		 *                 goto LAB_03396a48;
		 *               }
		 *               uVar8 = uVar8 - 1;
		 *               piVar9 = piVar9 + 4;
		 *             } while (uVar8 != 0);
		 *           }
		 *           puVar6 = (undefined8 *)func_0x03237558(plVar10,*(long *)puVar2,0);
		 * LAB_03396a48:
		 *           (*(code *)*puVar6)(plVar10,uVar5,puVar6[1]);
		 *           return;
		 *         }
		 *       }
		 *     }
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x3296AEC VA: 0x7818981AEC
		private void DisposeDetector();
		/*
		 *   undefined *puVar1;
		 *   undefined *puVar2;
		 *   undefined *puVar3;
		 *   WallHackProtector *methodInfo_00;
		 *   void *pvVar4;
		 *   undefined8 uVar5;
		 *   undefined8 *puVar6;
		 *   void *methodInfo_01;
		 *   undefined8 extraout_x1;
		 *   undefined8 extraout_x1_00;
		 *   long lVar7;
		 *   ulong uVar8;
		 *   int *piVar9;
		 *   long *plVar10;
		 *
		 *   methodInfo_00 = this;
		 *   if ((bRam000000000754ad82 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c63a0);
		 *     func_0x031fdc8c(PTR_DAT_070c63a8);
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8);
		 *     func_0x031fdc8c(PTR_DAT_070c63b0);
		 *     methodInfo_00 = (WallHackProtector *)func_0x031fdc8c(PTR_DAT_070c63b8);
		 *     bRam000000000754ad82 = 1;
		 *   }
		 *   pvVar4 = PixelGuard.get_Instance();
		 *   puVar2 = PTR_DAT_070c63b8;
		 *   puVar1 = PTR_DAT_070c63a0;
		 *   if (pvVar4 != null) {
		 *     plVar10 = *(long **)((long)pvVar4 + 0x30);
		 *     uVar5 = func_0x031fdf24(*(undefined8 *)PTR_DAT_070c63a0);
		 *     func_0x04d12f3c(uVar5,this,*(undefined8 *)puVar2,0);
		 *     puVar2 = PTR_DAT_070c63a8;
		 *     if (plVar10 != null) {
		 *       lVar7 = *plVar10;
		 *       uVar8 = (ulong)*(ushort *)(lVar7 + 0x12e);
		 *       if (uVar8 != 0) {
		 *         piVar9 = (int *)(*(long *)(lVar7 + 0xb0) + 8);
		 *         do {
		 *           if (*(long *)(piVar9 + -2) == *(long *)PTR_DAT_070c63a8) {
		 *             puVar6 = (undefined8 *)(lVar7 + (long)(*piVar9 + 1) * 0x10 + 0x138);
		 *             goto LAB_03396be0;
		 *           }
		 *           uVar8 = uVar8 - 1;
		 *           piVar9 = piVar9 + 4;
		 *         } while (uVar8 != 0);
		 *       }
		 *       puVar6 = (undefined8 *)func_0x03237558(plVar10,*(long *)PTR_DAT_070c63a8,1);
		 * LAB_03396be0:
		 *       pvVar4 = (void *)(*(code *)*puVar6)(plVar10,uVar5,puVar6[1]);
		 *       pvVar4 = PixelGuard.get_Instance();
		 *       puVar3 = PTR_DAT_070c63b0;
		 *       if (pvVar4 != null) {
		 *         plVar10 = *(long **)((long)pvVar4 + 0x38);
		 *         uVar5 = func_0x031fdf24(*(undefined8 *)puVar1);
		 *         func_0x04d12f3c(uVar5,this,*(undefined8 *)puVar3,0);
		 *         puVar1 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
		 *         if (plVar10 != null) {
		 *           lVar7 = *plVar10;
		 *           uVar8 = (ulong)*(ushort *)(lVar7 + 0x12e);
		 *           if (uVar8 != 0) {
		 *             piVar9 = (int *)(*(long *)(lVar7 + 0xb0) + 8);
		 *             do {
		 *               if (*(long *)(piVar9 + -2) == *(long *)puVar2) {
		 *                 puVar6 = (undefined8 *)(lVar7 + (long)(*piVar9 + 1) * 0x10 + 0x138);
		 *                 goto LAB_03396c7c;
		 *               }
		 *               uVar8 = uVar8 - 1;
		 *               piVar9 = piVar9 + 4;
		 *             } while (uVar8 != 0);
		 *           }
		 *           puVar6 = (undefined8 *)func_0x03237558(plVar10,*(long *)puVar2,1);
		 * LAB_03396c7c:
		 *           (*(code *)*puVar6)(plVar10,uVar5,puVar6[1]);
		 *           WallHackProtector.StopRigidModule(this);
		 *           lVar7 = *(long *)puVar1;
		 *           pvVar4 = this.serviceContainer;
		 *           this.charControllerVelocity = 0.0;
		 *           if (*(int *)(lVar7 + 0xe4) == 0) {
		 *             func_0x031fde08();
		 *           }
		 *           puVar1 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
		 *           uVar5 = 0;
		 *           if ((bRam000000000755fa13 & 1) == 0) {
		 *             func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8,0);
		 *             bRam000000000755fa13 = 1;
		 *             uVar5 = extraout_x1;
		 *           }
		 *           if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *             func_0x031fde08();
		 *             uVar5 = extraout_x1_00;
		 *           }
		 *           puVar1 = PTR_DAT_0714e530;
		 *           if ((bRam000000000755fa12 & 1) == 0) {
		 *             func_0x031fdc8c(PTR_DAT_0714e530,uVar5);
		 *             func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8);
		 *             bRam000000000755fa12 = 1;
		 *           }
		 *           if (*(long *)(*(long *)puVar1 + 0x38) == 0) {
		 *             func_0x03237280();
		 *           }
		 *           uVar5 = 0;
		 *           if (pvVar4 != null) {
		 *             uVar5 = *(undefined8 *)((long)pvVar4 + 0x10);
		 *           }
		 *           if (*(int *)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8 + 0xe4) == 0) {
		 *             func_0x031fde08();
		 *           }
		 *           if (pcRam000000000755fa68 == null) {
		 *             pcRam000000000755fa68 = (code *)func_0x031fdc50(&UNK_013676ac);
		 *           }
		 *           (*pcRam000000000755fa68)(0,uVar5);
		 *           return;
		 *         }
		 *       }
		 *     }
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x329733C VA: 0x781898233C
		private void OnUpdate(PixelSecurity.Handlers.DeltaTimeHandler handler);
		/*
		 *   undefined *puVar1;
		 *   SecurityWarningHandler *this_00;
		 *   undefined8 *puVar2;
		 *   WallHackProtector *methodInfo_00;
		 *   void *pvVar3;
		 *   long lVar4;
		 *   ulong uVar5;
		 *   int *piVar6;
		 *   long *plVar7;
		 *   void *pvVar8;
		 *   float in_s0;
		 *   undefined4 uVar9;
		 *   UnityEngine_Vector3 UVar10;
		 *
		 *   if (this.invoked == false) {
		 *     WallHackProtector.InvokeDetector(this,in_s0);
		 *   }
		 *   if (this.charControllerVelocity <= 0.0) {
		 *     return;
		 *   }
		 *   pvVar8 = this.charControllerPlayer;
		 *   UVar10.x = Random.Range(_UNK_0134ea0c,_UNK_0134e4b4);
		 *   if (pvVar8 != null) {
		 *     UVar10.z = this.charControllerVelocity;
		 *     UVar10.y = 0.0;
		 *     uVar9 = 0;
		 *     UnityEngine.CharacterController.Move(pvVar8,UVar10);
		 *     if ((this.charControllerPlayer != null) &&
		 *        (pvVar8 = UnityEngine.Component.get_transform(this.charControllerPlayer), pvVar8 != null)) {
		 *       UVar10 = UnityEngine.Transform.get_localPosition(pvVar8);
		 *       if (UVar10.z <= 1.0) {
		 *         return;
		 *       }
		 *       this.charControllerVelocity = 0.0;
		 *       methodInfo_00 = this;
		 *       if ((bRam000000000754ad86 & 1) == 0) {
		 *         methodInfo_00 =
		 *              (WallHackProtector *)
		 *              func_0x031fdc8c(0x3f800000,CONCAT44(uVar9,UVar10.y),PTR_DAT_070c63f8);
		 *         bRam000000000754ad86 = 1;
		 *       }
		 *       pvVar8 = PixelGuard.get_Instance();
		 *       if (pvVar8 == null) {
		 *         IL2CPP.ThrowNullReferenceException();
		 *       }
		 *       pvVar3 = *(void **)PTR_DAT_070c63f8;
		 *       if ((bRam000000000754ad6c & 1) == 0) {
		 *         func_0x031fdc8c(PTR_DAT_070c62f0);
		 *         func_0x031fdc8c(PTR_DAT_070c62f8);
		 *         bRam000000000754ad6c = 1;
		 *       }
		 *       plVar7 = *(long **)((long)pvVar8 + 0x28);
		 *       if (plVar7 == null) {
		 *         return;
		 *       }
		 *       this_00 = (SecurityWarningHandler *)func_0x031fdf24(*(undefined8 *)PTR_DAT_070c62f8);
		 *       SecurityWarningHandler..ctor(this_00);
		 *       puVar1 = PTR_DAT_070c62f0;
		 *       if (this_00 == null) {
		 *         IL2CPP.ThrowNullReferenceException();
		 *       }
		 *       this_00->message = pvVar3;
		 *       func_0x031fdc38(&this_00->message,pvVar3);
		 *       this_00->module = this;
		 *       func_0x031fdc38(&this_00->module,this);
		 *       lVar4 = *plVar7;
		 *       uVar5 = (ulong)*(ushort *)(lVar4 + 0x12e);
		 *       if (uVar5 != 0) {
		 *         piVar6 = (int *)(*(long *)(lVar4 + 0xb0) + 8);
		 *         do {
		 *           if (*(long *)(piVar6 + -2) == *(long *)puVar1) {
		 *             puVar2 = (undefined8 *)(lVar4 + (long)*piVar6 * 0x10 + 0x138);
		 *             goto LAB_03395670;
		 *           }
		 *           uVar5 = uVar5 - 1;
		 *           piVar6 = piVar6 + 4;
		 *         } while (uVar5 != 0);
		 *       }
		 *       puVar2 = (undefined8 *)func_0x03237558(plVar7,*(long *)puVar1,0);
		 * LAB_03395670:
		 *       (*(code *)*puVar2)(plVar7,this_00,0,puVar2[1]);
		 *       return;
		 *     }
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x3297480 VA: 0x7818982480
		private void OnFixedUpdate(PixelSecurity.Handlers.DeltaTimeHandler handler);
		/*
		 *   undefined *puVar1;
		 *   SecurityWarningHandler *this_00;
		 *   undefined8 *puVar2;
		 *   WallHackProtector *methodInfo_00;
		 *   void *pvVar3;
		 *   void *pvVar4;
		 *   void *methodInfo_01;
		 *   long lVar5;
		 *   ulong uVar6;
		 *   int *piVar7;
		 *   long *plVar8;
		 *   UnityEngine_Vector3 UVar9;
		 *
		 *   if ((this.rigidPlayer == null) ||
		 *      (pvVar3 = UnityEngine.Component.get_transform(this.rigidPlayer), pvVar3 == null)) {
		 *     IL2CPP.ThrowNullReferenceException();
		 *   }
		 *   UVar9 = UnityEngine.Transform.get_localPosition(pvVar3);
		 *   if (UVar9.z <= 1.0) {
		 *     return;
		 *   }
		 *   WallHackProtector.StopRigidModule(this);
		 *   methodInfo_00 = this;
		 *   if ((bRam000000000754ad86 & 1) == 0) {
		 *     methodInfo_00 = (WallHackProtector *)func_0x031fdc8c(PTR_DAT_070c63f8);
		 *     bRam000000000754ad86 = 1;
		 *   }
		 *   pvVar3 = PixelGuard.get_Instance();
		 *   if (pvVar3 == null) {
		 *     IL2CPP.ThrowNullReferenceException();
		 *   }
		 *   pvVar4 = *(void **)PTR_DAT_070c63f8;
		 *   if ((bRam000000000754ad6c & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c62f0);
		 *     func_0x031fdc8c(PTR_DAT_070c62f8);
		 *     bRam000000000754ad6c = 1;
		 *   }
		 *   plVar8 = *(long **)((long)pvVar3 + 0x28);
		 *   if (plVar8 == null) {
		 *     return;
		 *   }
		 *   this_00 = (SecurityWarningHandler *)func_0x031fdf24(*(undefined8 *)PTR_DAT_070c62f8);
		 *   SecurityWarningHandler..ctor(this_00);
		 *   puVar1 = PTR_DAT_070c62f0;
		 *   if (this_00 == null) {
		 *     IL2CPP.ThrowNullReferenceException();
		 *   }
		 *   this_00->message = pvVar4;
		 *   func_0x031fdc38(&this_00->message,pvVar4);
		 *   this_00->module = this;
		 *   func_0x031fdc38(&this_00->module,this);
		 *   lVar5 = *plVar8;
		 *   uVar6 = (ulong)*(ushort *)(lVar5 + 0x12e);
		 *   if (uVar6 != 0) {
		 *     piVar7 = (int *)(*(long *)(lVar5 + 0xb0) + 8);
		 *     do {
		 *       if (*(long *)(piVar7 + -2) == *(long *)puVar1) {
		 *         puVar2 = (undefined8 *)(lVar5 + (long)*piVar7 * 0x10 + 0x138);
		 *         goto LAB_03395670;
		 *       }
		 *       uVar6 = uVar6 - 1;
		 *       piVar7 = piVar7 + 4;
		 *     } while (uVar6 != 0);
		 *   }
		 *   puVar2 = (undefined8 *)func_0x03237558(plVar8,*(long *)puVar1,0);
		 * LAB_03395670:
		 *   (*(code *)*puVar2)(plVar8,this_00,0,puVar2[1]);
		 *   return;
		 */
		// RVA: 0x32973E4 VA: 0x78189823E4
		private void InvokeDetector(float deltaTime);
		/*
		 *   void *methodInfo_00;
		 *
		 *   if (this.invokeTimer <= 0.0) {
		 *     this.invokeTimer = 4.0;
		 *     WallHackProtector.StartRigidModule(this);
		 *     WallHackProtector.StartControllerModule(this);
		 *     this.invoked = true;
		 *   }
		 *   else {
		 *     this.invokeTimer = this.invokeTimer - deltaTime;
		 *   }
		 *   return;
		 */
		// RVA: 0x3296CC8 VA: 0x7818981CC8
		private void InitCommon();
		/*
		 *   undefined *puVar1;
		 *   undefined *puVar2;
		 *   undefined *puVar3;
		 *   int iVar4;
		 *   void *pvVar5;
		 *   void *pvVar6;
		 *   void *value;
		 *   long lVar7;
		 *   void **ppvVar8;
		 *
		 *   if ((bRam000000000754ad83 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c1e20);
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_GameObject_6FC1548);
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8);
		 *     func_0x031fdc8c(PTR_DAT_070c63c0);
		 *     func_0x031fdc8c(PTR_DAT_070c63c8);
		 *     func_0x031fdc8c(PTR_DAT_070c63d0);
		 *     bRam000000000754ad83 = 1;
		 *   }
		 *   puVar1 = PTR_DAT_070c63c0;
		 *   puVar2 = typeinfo_ptr_UnityEngine_CoreModule_GameObject_6FC1548;
		 *   if (this.whLayer == -1) {
		 *     iVar4 = UnityEngine.LayerMask.NameToLayer(*(void **)PTR_DAT_070c63c8);
		 *     this.whLayer = iVar4;
		 *   }
		 *   pvVar5 = (void *)func_0x031fdf24(*(undefined8 *)puVar2);
		 *   UnityEngine.GameObject..ctor(pvVar5,*(void **)puVar1);
		 *   ppvVar8 = &this.serviceContainer;
		 *   *ppvVar8 = pvVar5;
		 *   func_0x031fdc38(ppvVar8,pvVar5);
		 *   if (*ppvVar8 != null) {
		 *     UnityEngine.GameObject.set_layer(*ppvVar8,this.whLayer);
		 *     if ((this.serviceContainer != null) &&
		 *        (pvVar5 = UnityEngine.GameObject.get_transform(this.serviceContainer), puVar3 = PTR_DAT_070c63d0,
		 *        puVar1 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8, pvVar5 != null)) {
		 *       UnityEngine.Transform.set_position(pvVar5,this.spawnPosition);
		 *       pvVar5 = this.serviceContainer;
		 *       if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *         func_0x031fde08();
		 *       }
		 *       UnityEngine.Object.DontDestroyOnLoad(pvVar5);
		 *       pvVar5 = (void *)func_0x031fdf24(*(undefined8 *)puVar2);
		 *       UnityEngine.GameObject..ctor(pvVar5,*(void **)puVar3);
		 *       if (pvVar5 != null) {
		 *         func_0x037f2fa8(pvVar5,*(undefined8 *)PTR_DAT_070c1e20);
		 *         UnityEngine.GameObject.set_layer(pvVar5,this.whLayer);
		 *         pvVar6 = UnityEngine.GameObject.get_transform(pvVar5);
		 *         if ((this.serviceContainer != null) &&
		 *            (value = UnityEngine.GameObject.get_transform(this.serviceContainer), pvVar6 != null)) {
		 *           UnityEngine.Transform.set_parent(pvVar6,value);
		 *           pvVar6 = UnityEngine.GameObject.get_transform(pvVar5);
		 *           if (cRam000000000754a7ce == '\0') {
		 *             func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08);
		 *             cRam000000000754a7ce = '\x01';
		 *           }
		 *           if (pvVar6 != null) {
		 *             UnityEngine.Transform.set_localPosition(pvVar6,**(UnityEngine_Vector3 **)
		 *                                 (*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 + 0xb8
		 *                                 ));
		 *             pvVar5 = UnityEngine.GameObject.get_transform(pvVar5);
		 *             if (pvVar5 != null) {
		 *               if ((bRam000000000755ff21 & 1) == 0) {
		 *                 func_0x031fdc8c(PTR_DAT_0714f6d0,0);
		 *                 bRam000000000755ff21 = 1;
		 *               }
		 *               if (pvVar5 != null) {
		 *                 lVar7 = *(long *)((long)pvVar5 + 0x10);
		 *                 if (lVar7 == 0) {
		 *                   UnityEngine.Bindings.ThrowHelper.ThrowNullReferenceException(pvVar5);
		 *                 }
		 *                 if (pcRam000000000755ff90 == null) {
		 *                   pcRam000000000755ff90 = (code *)func_0x031fdc50(&UNK_01396719);
		 *                 }
		 *                 (*pcRam000000000755ff90)(lVar7,&stack0xffffffffffffffd4);
		 *                 return;
		 *               }
		 *               IL2CPP.ThrowNullReferenceException();
		 *             }
		 *           }
		 *         }
		 *       }
		 *     }
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x3296F00 VA: 0x7818981F00
		private void InitRigidModule();
		/*
		 *   undefined *puVar1;
		 *   undefined *puVar2;
		 *   void *pvVar3;
		 *   void *pvVar4;
		 *   void *value;
		 *   void *extraout_x1;
		 *   void **ppvVar5;
		 *   long lVar6;
		 *   UnityEngine_Vector3 value_00;
		 *
		 *   puVar2 = PTR_DAT_070c63d8;
		 *   puVar1 = typeinfo_ptr_UnityEngine_CoreModule_GameObject_6FC1548;
		 *   if ((bRam000000000754ad84 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c63e0);
		 *     func_0x031fdc8c(PTR_DAT_070c16e0);
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_GameObject_6FC1548);
		 *     func_0x031fdc8c(PTR_DAT_070c63d8);
		 *     bRam000000000754ad84 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   pvVar3 = (void *)func_0x031fdf24(*(undefined8 *)puVar1,methodInfo);
		 *   UnityEngine.GameObject..ctor(pvVar3,*(void **)puVar2);
		 *   if ((pvVar3 != null) &&
		 *      (pvVar4 = (void *)func_0x037f2fa8(pvVar3,*(undefined8 *)PTR_DAT_070c63e0),
		 *      pvVar4 != null)) {
		 *     UnityEngine.CapsuleCollider.set_height(pvVar4,2.0);
		 *     UnityEngine.GameObject.set_layer(pvVar3,this.whLayer);
		 *     pvVar4 = UnityEngine.GameObject.get_transform(pvVar3);
		 *     if ((this.serviceContainer != null) &&
		 *        (value = UnityEngine.GameObject.get_transform(this.serviceContainer), pvVar4 != null)) {
		 *       UnityEngine.Transform.set_parent(pvVar4,value);
		 *       pvVar4 = UnityEngine.GameObject.get_transform(pvVar3);
		 *       puVar1 = PTR_DAT_070c16e0;
		 *       if (pvVar4 != null) {
		 *         value_00.z = -1.0;
		 *         value_00.x = 0.75;
		 *         value_00.y = 0.0;
		 *         UnityEngine.Transform.set_localPosition(pvVar4,value_00);
		 *         pvVar3 = (void *)func_0x037f2fa8(pvVar3,*(undefined8 *)puVar1);
		 *         ppvVar5 = &this.rigidPlayer;
		 *         *ppvVar5 = pvVar3;
		 *         func_0x031fdc38(ppvVar5,pvVar3);
		 *         pvVar3 = *ppvVar5;
		 *         if (pvVar3 != null) {
		 *           if ((bRam0000000007561ec5 & 1) == 0) {
		 *             func_0x031fdc8c(PTR_DAT_071515f0,0,0);
		 *             bRam0000000007561ec5 = 1;
		 *           }
		 *           if (pvVar3 != null) {
		 *             lVar6 = *(long *)((long)pvVar3 + 0x10);
		 *             if (lVar6 == 0) {
		 *               UnityEngine.Bindings.ThrowHelper.ThrowNullReferenceException(pvVar3);
		 *             }
		 *             if (pcRam0000000007561f30 == null) {
		 *               pcRam0000000007561f30 = (code *)func_0x031fdc50(&UNK_01350973);
		 *             }
		 *             (*pcRam0000000007561f30)(lVar6,0);
		 *             return;
		 *           }
		 *           IL2CPP.ThrowNullReferenceException();
		 *         }
		 *       }
		 *     }
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x3297058 VA: 0x7818982058
		private void InitControllerModule();
		/*
		 *   undefined *puVar1;
		 *   undefined *puVar2;
		 *   void *pvVar3;
		 *   void *pvVar4;
		 *   void *value;
		 *   void *extraout_x1;
		 *   void **ppvVar5;
		 *   UnityEngine_Vector3 value_00;
		 *
		 *   puVar2 = PTR_DAT_070c63e8;
		 *   puVar1 = typeinfo_ptr_UnityEngine_CoreModule_GameObject_6FC1548;
		 *   if ((bRam000000000754ad85 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c63e0);
		 *     func_0x031fdc8c(PTR_DAT_070c63f0);
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_GameObject_6FC1548);
		 *     func_0x031fdc8c(PTR_DAT_070c63e8);
		 *     bRam000000000754ad85 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   pvVar3 = (void *)func_0x031fdf24(*(undefined8 *)puVar1,methodInfo);
		 *   UnityEngine.GameObject..ctor(pvVar3,*(void **)puVar2);
		 *   if ((pvVar3 != null) &&
		 *      (pvVar4 = (void *)func_0x037f2fa8(pvVar3,*(undefined8 *)PTR_DAT_070c63e0),
		 *      pvVar4 != null)) {
		 *     UnityEngine.CapsuleCollider.set_height(pvVar4,2.0);
		 *     UnityEngine.GameObject.set_layer(pvVar3,this.whLayer);
		 *     pvVar4 = UnityEngine.GameObject.get_transform(pvVar3);
		 *     if ((this.serviceContainer != null) &&
		 *        (value = UnityEngine.GameObject.get_transform(this.serviceContainer), pvVar4 != null)) {
		 *       UnityEngine.Transform.set_parent(pvVar4,value);
		 *       pvVar4 = UnityEngine.GameObject.get_transform(pvVar3);
		 *       puVar1 = PTR_DAT_070c63f0;
		 *       if (pvVar4 != null) {
		 *         value_00.z = -1.0;
		 *         value_00.x = -0.75;
		 *         value_00.y = 0.0;
		 *         UnityEngine.Transform.set_localPosition(pvVar4,value_00);
		 *         pvVar3 = (void *)func_0x037f2fa8(pvVar3,*(undefined8 *)puVar1);
		 *         ppvVar5 = &this.charControllerPlayer;
		 *         *ppvVar5 = pvVar3;
		 *         if (iRam00000000077785f0 != 0) {
		 *           func_0x032ed0c0(1L << ((ulong)ppvVar5 >> 0xc & 0x3f),
		 *                           ((ulong)ppvVar5 >> 0x12 & 0x7fff) * 8 + 0x75ac5c8);
		 *         }
		 *         return;
		 *       }
		 *     }
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x329719C VA: 0x781898219C
		private void StartRigidModule();
		/*
		 *   long lVar1;
		 *   void *pvVar2;
		 *   UnityEngine_Vector3 value;
		 *   float fStack_2c;
		 *   float fStack_28;
		 *   float fStack_24;
		 *
		 *   pvVar2 = this.rigidPlayer;
		 *   if (cRam000000000754a7d0 == '\0') {
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Quaternion_6FC0EA0);
		 *     cRam000000000754a7d0 = '\x01';
		 *   }
		 *   if (pvVar2 != null) {
		 *     UnityEngine.Rigidbody.set_rotation(pvVar2,**(UnityEngine_Vector4 **)
		 *                         (*(long *)typeinfo_ptr_UnityEngine_CoreModule_Quaternion_6FC0EA0 + 0xb8));
		 *     pvVar2 = this.rigidPlayer;
		 *     if (cRam000000000754a7ce == '\0') {
		 *       func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08);
		 *       cRam000000000754a7ce = '\x01';
		 *     }
		 *     if (pvVar2 != null) {
		 *       UnityEngine.Rigidbody.set_angularVelocity(pvVar2,**(UnityEngine_Vector3 **)
		 *                           (*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 + 0xb8));
		 *       if ((this.rigidPlayer != null) &&
		 *          (pvVar2 = UnityEngine.Component.get_transform(this.rigidPlayer), pvVar2 != null)) {
		 *         value.z = -1.0;
		 *         value.x = 0.75;
		 *         value.y = 0.0;
		 *         UnityEngine.Transform.set_localPosition(pvVar2,value);
		 *         pvVar2 = this.rigidPlayer;
		 *         if (pvVar2 != null) {
		 *           fStack_2c = (this.rigidPlayerVelocity).x;
		 *           fStack_28 = (this.rigidPlayerVelocity).y;
		 *           fStack_24 = (this.rigidPlayerVelocity).z;
		 *           if ((bRam0000000007561ebc & 1) == 0) {
		 *             func_0x031fdc8c(PTR_DAT_071515f0,0);
		 *             bRam0000000007561ebc = 1;
		 *           }
		 *           if (pvVar2 != null) {
		 *             lVar1 = *(long *)((long)pvVar2 + 0x10);
		 *             if (lVar1 == 0) {
		 *               UnityEngine.Bindings.ThrowHelper.ThrowNullReferenceException(pvVar2);
		 *             }
		 *             if (pcRam0000000007561ee8 == null) {
		 *               pcRam0000000007561ee8 = (code *)func_0x031fdc50(&UNK_0137cfc7);
		 *             }
		 *             (*pcRam0000000007561ee8)(lVar1,&fStack_2c);
		 *             return;
		 *           }
		 *           IL2CPP.ThrowNullReferenceException();
		 *         }
		 *       }
		 *     }
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32972D4 VA: 0x78189822D4
		private void StopRigidModule();
		/*
		 *   undefined4 *puVar1;
		 *   void *obj;
		 *   long lVar2;
		 *   undefined1 auVar3 [16];
		 *   undefined4 uStack_2c;
		 *   undefined4 uStack_28;
		 *   undefined4 uStack_24;
		 *
		 *   auVar3._8_8_ = methodInfo;
		 *   auVar3._0_8_ = this;
		 *   obj = this.rigidPlayer;
		 *   if (cRam000000000754a7ce == '\0') {
		 *     auVar3 = func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08);
		 *     cRam000000000754a7ce = '\x01';
		 *   }
		 *   if (obj == null) {
		 *     IL2CPP.ThrowNullReferenceException();
		 *   }
		 *   puVar1 = *(undefined4 **)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 + 0xb8);
		 *   uStack_2c = *puVar1;
		 *   uStack_28 = puVar1[1];
		 *   uStack_24 = puVar1[2];
		 *   if ((bRam0000000007561ebc & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_071515f0,0);
		 *     bRam0000000007561ebc = 1;
		 *   }
		 *   if (obj != null) {
		 *     lVar2 = *(long *)((long)obj + 0x10);
		 *     if (lVar2 == 0) {
		 *       UnityEngine.Bindings.ThrowHelper.ThrowNullReferenceException(obj);
		 *     }
		 *     if (pcRam0000000007561ee8 == null) {
		 *       pcRam0000000007561ee8 = (code *)func_0x031fdc50(&UNK_0137cfc7);
		 *     }
		 *     (*pcRam0000000007561ee8)(lVar2,&uStack_2c);
		 *     return;
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x329728C VA: 0x781898228C
		private void StartControllerModule();
		/*
		 *   void *this_00;
		 *   UnityEngine_Vector3 value;
		 *
		 *   if ((this.charControllerPlayer != null) &&
		 *      (this_00 = UnityEngine.Component.get_transform(this.charControllerPlayer), this_00 != null)) {
		 *     value.z = -1.0;
		 *     value.x = -0.75;
		 *     value.y = 0.0;
		 *     UnityEngine.Transform.set_localPosition(this_00,value);
		 *     this.charControllerVelocity = 0.01;
		 *     return;
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x3297334 VA: 0x7818982334
		private void StopControllerModule();
		/*
		 *   this.charControllerVelocity = 0.0;
		 *   return;
		 */
		// RVA: 0x329742C VA: 0x781898242C
		private void Detect();
		/*
		 *   undefined *puVar1;
		 *   SecurityWarningHandler *this_00;
		 *   undefined8 *puVar2;
		 *   WallHackProtector *methodInfo_00;
		 *   void *pvVar3;
		 *   void *pvVar4;
		 *   long lVar5;
		 *   ulong uVar6;
		 *   int *piVar7;
		 *   long *plVar8;
		 *
		 *   methodInfo_00 = this;
		 *   if ((bRam000000000754ad86 & 1) == 0) {
		 *     methodInfo_00 = (WallHackProtector *)func_0x031fdc8c(PTR_DAT_070c63f8);
		 *     bRam000000000754ad86 = 1;
		 *   }
		 *   pvVar3 = PixelGuard.get_Instance();
		 *   if (pvVar3 == null) {
		 *     IL2CPP.ThrowNullReferenceException();
		 *   }
		 *   pvVar4 = *(void **)PTR_DAT_070c63f8;
		 *   if ((bRam000000000754ad6c & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c62f0);
		 *     func_0x031fdc8c(PTR_DAT_070c62f8);
		 *     bRam000000000754ad6c = 1;
		 *   }
		 *   plVar8 = *(long **)((long)pvVar3 + 0x28);
		 *   if (plVar8 == null) {
		 *     return;
		 *   }
		 *   this_00 = (SecurityWarningHandler *)func_0x031fdf24(*(undefined8 *)PTR_DAT_070c62f8);
		 *   SecurityWarningHandler..ctor(this_00);
		 *   puVar1 = PTR_DAT_070c62f0;
		 *   if (this_00 == null) {
		 *     IL2CPP.ThrowNullReferenceException();
		 *   }
		 *   this_00->message = pvVar4;
		 *   func_0x031fdc38(&this_00->message,pvVar4);
		 *   this_00->module = this;
		 *   func_0x031fdc38(&this_00->module,this);
		 *   lVar5 = *plVar8;
		 *   uVar6 = (ulong)*(ushort *)(lVar5 + 0x12e);
		 *   if (uVar6 != 0) {
		 *     piVar7 = (int *)(*(long *)(lVar5 + 0xb0) + 8);
		 *     do {
		 *       if (*(long *)(piVar7 + -2) == *(long *)puVar1) {
		 *         puVar2 = (undefined8 *)(lVar5 + (long)*piVar7 * 0x10 + 0x138);
		 *         goto LAB_03395670;
		 *       }
		 *       uVar6 = uVar6 - 1;
		 *       piVar7 = piVar7 + 4;
		 *     } while (uVar6 != 0);
		 *   }
		 *   puVar2 = (undefined8 *)func_0x03237558(plVar8,*(long *)puVar1,0);
		 * LAB_03395670:
		 *   (*(code *)*puVar2)(plVar8,this_00,0,puVar2[1]);
		 *   return;
		 */
		// RVA: 0x32974D0 VA: 0x78189824D0
		private void OnDrawGizmosSelected();
		/*
		 *   UnityEngine_Color value;
		 *   undefined4 uStack_28;
		 *   undefined4 uStack_24;
		 *   undefined4 uStack_20;
		 *   float fStack_1c;
		 *   float fStack_18;
		 *   float fStack_14;
		 *
		 *   value.b = 0.0;
		 *   value.a = 1.0;
		 *   value.r = 1.0;
		 *   value.g = 0.0;
		 *   UnityEngine.Gizmos.set_color(value);
		 *   fStack_1c = (this.spawnPosition).x;
		 *   fStack_18 = (this.spawnPosition).y;
		 *   fStack_14 = (this.spawnPosition).z;
		 *   uStack_28 = 0x40400000;
		 *   uStack_24 = 0x40400000;
		 *   uStack_20 = 0x40400000;
		 *   if (pcRam000000000755e1a8 == null) {
		 *     pcRam000000000755e1a8 = (code *)func_0x031fdc50(&UNK_013773f8);
		 *   }
		 *   (*pcRam000000000755e1a8)(&fStack_1c,&uStack_28);
		 *   return;
		 */
	}
}
