namespace UnityStandardAssets.CrossPlatformInput
{

	// [TypeInfo RVA: 0x0]
	public class TouchPad : MonoBehaviour
	{
		public UnityStandardAssets.CrossPlatformInput.TouchPad.AxisOption axesToUse; // 0x20
		public UnityStandardAssets.CrossPlatformInput.TouchPad.ControlStyle controlStyle; // 0x24
		public string horizontalAxisName; // 0x28
		public string verticalAxisName; // 0x30
		public float Xsensitivity; // 0x38
		public float Ysensitivity; // 0x3C
		private UnityEngine.Vector3 m_StartPos; // 0x40
		private UnityEngine.Vector2 m_PreviousDelta; // 0x4C
		private UnityEngine.Vector3 m_JoytickOutput; // 0x54
		private bool m_UseX; // 0x60
		private bool m_UseY; // 0x61
		private UnityStandardAssets.CrossPlatformInput.CrossPlatformInputManager.VirtualAxis m_HorizontalVirtualAxis; // 0x68
		private UnityStandardAssets.CrossPlatformInput.CrossPlatformInputManager.VirtualAxis m_VerticalVirtualAxis; // 0x70
		private bool m_Dragging; // 0x78
		private int m_Id; // 0x7C
		private UnityEngine.Vector2 m_PreviousTouchPos; // 0x80
		private UnityEngine.Vector3 m_Center; // 0x88
		private UnityEngine.UI.Image m_Image; // 0x98

		// RVA: 0x327CEF4 VA: 0x7818967EF4
		private void OnEnable();
		/*
		 *   int iVar1;
		 *   undefined *puVar2;
		 *   void *pvVar3;
		 *   undefined8 *puVar4;
		 *   void *extraout_x1;
		 *   void *pvVar5;
		 *
		 *   if ((bRam000000000754ac68 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c56f8);
		 *     func_0x031fdc8c(PTR_DAT_070c5700);
		 *     bRam000000000754ac68 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   puVar2 = PTR_DAT_070c5700;
		 *   iVar1 = *(int *)&this.field_0x20;
		 *   if (iVar1 == 0) {
		 *     this.m_UseX = true;
		 *     this.m_UseY = true;
		 *   }
		 *   else {
		 *     this.m_UseY = iVar1 == 2;
		 *     this.m_UseX = iVar1 == 1;
		 *     if (iVar1 != 1) {
		 *       if (iVar1 != 2) {
		 *         return;
		 *       }
		 *       pvVar5 = this.verticalAxisName;
		 *       pvVar3 = (void *)func_0x031fdf24(*(undefined8 *)puVar2,methodInfo);
		 *       System.Object..ctor(pvVar3);
		 *       puVar4 = (undefined8 *)((long)pvVar3 + 0x10);
		 *       *puVar4 = pvVar5;
		 *       goto SUB_031fdc38;
		 *     }
		 *   }
		 *   pvVar5 = this.horizontalAxisName;
		 *   pvVar3 = (void *)func_0x031fdf24(*(undefined8 *)puVar2,methodInfo);
		 *   System.Object..ctor(pvVar3);
		 *   puVar4 = (undefined8 *)((long)pvVar3 + 0x10);
		 *   *puVar4 = pvVar5;
		 * SUB_031fdc38:
		 *   if (iRam00000000077785f0 != 0) {
		 *     func_0x032ed0c0(1L << ((ulong)puVar4 >> 0xc & 0x3f),
		 *                     ((ulong)puVar4 >> 0x12 & 0x7fff) * 8 + 0x75ac5c8);
		 *   }
		 *   return;
		 */
		// RVA: 0x327D068 VA: 0x7818968068
		private void Start();
		/*
		 *   undefined *puVar1;
		 *   void *pvVar2;
		 *   void **ppvVar3;
		 *   UnityEngine_Vector3 UVar4;
		 *
		 *   puVar1 = PTR_DAT_070c4ff0;
		 *   if ((bRam000000000754ac67 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c4ff0);
		 *     bRam000000000754ac67 = 1;
		 *   }
		 *   pvVar2 = (void *)func_0x0373df50(this,*(undefined8 *)puVar1);
		 *   ppvVar3 = &this.m_Image;
		 *   *ppvVar3 = pvVar2;
		 *   func_0x031fdc38(ppvVar3,pvVar2);
		 *   if ((*ppvVar3 != null) &&
		 *      (pvVar2 = UnityEngine.Component.get_transform(*ppvVar3),
		 *      pvVar2 != null)) {
		 *     UVar4 = UnityEngine.Transform.get_position(pvVar2);
		 *     (this.m_Center).x = UVar4.x;
		 *     (this.m_Center).y = UVar4.y;
		 *     (this.m_Center).z = UVar4.z;
		 *     return;
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x327CEF8 VA: 0x7818967EF8
		private void CreateVirtualAxes();
		/*
		 *   int iVar1;
		 *   undefined *puVar2;
		 *   void *pvVar3;
		 *   undefined8 *puVar4;
		 *   void *extraout_x1;
		 *   void *pvVar5;
		 *
		 *   if ((bRam000000000754ac68 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c56f8);
		 *     func_0x031fdc8c(PTR_DAT_070c5700);
		 *     bRam000000000754ac68 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   puVar2 = PTR_DAT_070c5700;
		 *   iVar1 = *(int *)&this.field_0x20;
		 *   if (iVar1 == 0) {
		 *     this.m_UseX = true;
		 *     this.m_UseY = true;
		 *   }
		 *   else {
		 *     this.m_UseY = iVar1 == 2;
		 *     this.m_UseX = iVar1 == 1;
		 *     if (iVar1 != 1) {
		 *       if (iVar1 != 2) {
		 *         return;
		 *       }
		 *       pvVar5 = this.verticalAxisName;
		 *       pvVar3 = (void *)func_0x031fdf24(*(undefined8 *)puVar2,methodInfo);
		 *       System.Object..ctor(pvVar3);
		 *       puVar4 = (undefined8 *)((long)pvVar3 + 0x10);
		 *       *puVar4 = pvVar5;
		 *       goto SUB_031fdc38;
		 *     }
		 *   }
		 *   pvVar5 = this.horizontalAxisName;
		 *   pvVar3 = (void *)func_0x031fdf24(*(undefined8 *)puVar2,methodInfo);
		 *   System.Object..ctor(pvVar3);
		 *   puVar4 = (undefined8 *)((long)pvVar3 + 0x10);
		 *   *puVar4 = pvVar5;
		 * SUB_031fdc38:
		 *   if (iRam00000000077785f0 != 0) {
		 *     func_0x032ed0c0(1L << ((ulong)puVar4 >> 0xc & 0x3f),
		 *                     ((ulong)puVar4 >> 0x12 & 0x7fff) * 8 + 0x75ac5c8);
		 *   }
		 *   return;
		 */
		// RVA: 0x327D0F0 VA: 0x78189680F0
		private void UpdateVirtualAxes(UnityEngine.Vector3 value);
		/*
		 *   void *extraout_x1;
		 *   float fVar1;
		 *   float fVar2;
		 *   float fVar3;
		 *
		 *   fVar2 = value.y;
		 *   fVar3 = value.x;
		 *   if (cRam000000000754a7cc == '\0') {
		 *     func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
		 *     cRam000000000754a7cc = '\x01';
		 *     methodInfo = extraout_x1;
		 *   }
		 *   if (*(int *)(*(long *)typeinfo_ptr_mscorlib_Math_6FC0738 + 0xe4) == 0) {
		 *     func_0x031fde08(*(long *)typeinfo_ptr_mscorlib_Math_6FC0738,methodInfo);
		 *   }
		 *   fVar1 = SQRT(value.z * value.z + fVar3 * fVar3 + fVar2 * fVar2);
		 *   if (fVar1 <= _UNK_0134eeec) {
		 *     if (cRam000000000754a7ce == '\0') {
		 *       func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08);
		 *       cRam000000000754a7ce = '\x01';
		 *     }
		 *     fVar3 = **(float **)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 + 0xb8);
		 *     fVar2 = (*(float **)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 + 0xb8))[1];
		 *   }
		 *   else {
		 *     fVar3 = fVar3 / fVar1;
		 *     fVar2 = fVar2 / fVar1;
		 *   }
		 *   if (this.m_UseX != false) {
		 *     if (this.m_HorizontalVirtualAxis == null) goto LAB_0337d1ec;
		 *     *(float *)((long)this.m_HorizontalVirtualAxis + 0x18) = fVar3;
		 *   }
		 *   if (this.m_UseY != false) {
		 *     if (this.m_VerticalVirtualAxis == null) {
		 * LAB_0337d1ec:
		 *       IL2CPP.ThrowNullReferenceException();
		 *     }
		 *     *(float *)((long)this.m_VerticalVirtualAxis + 0x18) = fVar2;
		 *   }
		 *   return;
		 */
		// RVA: 0x327D1F0 VA: 0x78189681F0
		public void OnPointerDown(UnityEngine.EventSystems.PointerEventData data);
		/*
		 *   undefined8 uVar1;
		 *
		 *   this.m_Dragging = true;
		 *   if (data != null) {
		 *     this.m_Id = *(int *)((long)data + 0x140);
		 *     if (this.controlStyle != 0) {
		 *       uVar1 = *(undefined8 *)((long)data + 0x144);
		 *       (this.m_Center).z = 0.0;
		 *       (this.m_Center).x = (float)(int)uVar1;
		 *       (this.m_Center).y = (float)(int)((ulong)uVar1 >> 0x20);
		 *     }
		 *     return;
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x327D228 VA: 0x7818968228
		private void Update();
		/*
		 *   int iVar1;
		 *   void *pvVar2;
		 *   float fVar3;
		 *   float fVar4;
		 *   float fVar5;
		 *   UnityEngine_Vector2 UVar6;
		 *   UnityEngine_Vector2 UVar7;
		 *
		 *   if (this.m_Dragging == false) {
		 *     return;
		 *   }
		 *   iVar1 = UnityEngine.Input.get_touchCount();
		 *   if (0xfffffffe < (uint)this.m_Id) {
		 *     return;
		 *   }
		 *   if (iVar1 < (int)(this.m_Id + 1U)) {
		 *     return;
		 *   }
		 *   if (this.controlStyle == 2) {
		 *     fVar4 = (this.m_PreviousTouchPos).x;
		 *     fVar5 = (this.m_PreviousTouchPos).y;
		 *     (this.m_Center).z = 0.0;
		 *     (this.m_Center).x = fVar4;
		 *     (this.m_Center).y = fVar5;
		 *     pvVar2 = UnityEngine.Input.get_touches();
		 *     if (pvVar2 == null) goto LAB_0337d3f8;
		 *     if (*(uint *)((long)pvVar2 + 0x18) <= (uint)this.m_Id) goto LAB_0337d3fc;
		 *     UVar6 = UnityEngine.Touch.get_position((void *)((long)pvVar2 + (long)this.m_Id * 0x44 + 0x20));
		 *     (this.m_PreviousTouchPos).x = UVar6.x;
		 *     (this.m_PreviousTouchPos).y = UVar6.y;
		 *   }
		 *   pvVar2 = UnityEngine.Input.get_touches();
		 *   if (pvVar2 == null) {
		 * LAB_0337d3f8:
		 *     IL2CPP.ThrowNullReferenceException();
		 *   }
		 *   if (*(uint *)((long)pvVar2 + 0x18) <= (uint)this.m_Id) {
		 * LAB_0337d3fc:
		 *     IL2CPP.ThrowIndexOutOfRangeException();
		 *   }
		 *   UVar6 = UnityEngine.Touch.get_position((void *)((long)pvVar2 + (long)this.m_Id * 0x44 + 0x20));
		 *   fVar4 = (this.m_Center).x;
		 *   pvVar2 = UnityEngine.Input.get_touches();
		 *   if (pvVar2 == null) goto LAB_0337d3f8;
		 *   if (*(uint *)((long)pvVar2 + 0x18) <= (uint)this.m_Id) goto LAB_0337d3fc;
		 *   UVar7 = UnityEngine.Touch.get_position((void *)((long)pvVar2 + (long)this.m_Id * 0x44 + 0x20));
		 *   fVar5 = (this.m_Center).y;
		 *   if (cRam000000000754ac05 == '\0') {
		 *     func_0x031fdc8c((ulong)UVar7 & 0xffffffff,typeinfo_ptr_mscorlib_Math_6FC0738);
		 *     cRam000000000754ac05 = '\x01';
		 *   }
		 *   fVar4 = UVar6.x - fVar4;
		 *   fVar5 = UVar7.y - fVar5;
		 *   if (*(int *)(*(long *)typeinfo_ptr_mscorlib_Math_6FC0738 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *   }
		 *   fVar3 = SQRT(fVar4 * fVar4 + fVar5 * fVar5);
		 *   if (fVar3 <= _UNK_0134eeec) {
		 *     if (cRam000000000754acaa == '\0') {
		 *       func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector2_6FC57C0);
		 *       cRam000000000754acaa = '\x01';
		 *     }
		 *     fVar4 = **(float **)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector2_6FC57C0 + 0xb8);
		 *     fVar5 = (*(float **)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector2_6FC57C0 + 0xb8))[1];
		 *   }
		 *   else {
		 *     fVar4 = fVar4 / fVar3;
		 *     fVar5 = fVar5 / fVar3;
		 *   }
		 *   fVar4 = fVar4 * this.Xsensitivity;
		 *   fVar5 = fVar5 * this.Ysensitivity;
		 *   if (cRam000000000754a7cc == '\0') {
		 *     func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
		 *     cRam000000000754a7cc = '\x01';
		 *   }
		 *   if (*(int *)(*(long *)typeinfo_ptr_mscorlib_Math_6FC0738 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *   }
		 *   fVar3 = SQRT(fVar4 * fVar4 + fVar5 * fVar5 + 0.0);
		 *   if (fVar3 <= _UNK_0134eeec) {
		 *     if (cRam000000000754a7ce == '\0') {
		 *       func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08);
		 *       cRam000000000754a7ce = '\x01';
		 *     }
		 *     fVar4 = **(float **)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 + 0xb8);
		 *     fVar5 = (*(float **)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 + 0xb8))[1];
		 *   }
		 *   else {
		 *     fVar4 = fVar4 / fVar3;
		 *     fVar5 = fVar5 / fVar3;
		 *   }
		 *   if (this.m_UseX != false) {
		 *     if (this.m_HorizontalVirtualAxis == null) goto LAB_0337d1ec;
		 *     *(float *)((long)this.m_HorizontalVirtualAxis + 0x18) = fVar4;
		 *   }
		 *   if (this.m_UseY != false) {
		 *     if (this.m_VerticalVirtualAxis == null) {
		 * LAB_0337d1ec:
		 *       IL2CPP.ThrowNullReferenceException();
		 *     }
		 *     *(float *)((long)this.m_VerticalVirtualAxis + 0x18) = fVar5;
		 *   }
		 *   return;
		 */
		// RVA: 0x327D400 VA: 0x7818968400
		public void OnPointerUp(UnityEngine.EventSystems.PointerEventData data);
		/*
		 *   char cVar1;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *extraout_x1_01;
		 *   float *pfVar2;
		 *   float fVar3;
		 *   float fVar4;
		 *   float fVar5;
		 *
		 *   cVar1 = cRam000000000754a7ce;
		 *   this.m_Dragging = false;
		 *   this.m_Id = -1;
		 *   if (cVar1 == '\0') {
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08);
		 *     cRam000000000754a7ce = '\x01';
		 *     data = extraout_x1_01;
		 *   }
		 *   pfVar2 = *(float **)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 + 0xb8);
		 *   fVar3 = *pfVar2;
		 *   fVar4 = pfVar2[1];
		 *   fVar5 = pfVar2[2];
		 *   if (cRam000000000754a7cc == '\0') {
		 *     func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738,data);
		 *     cRam000000000754a7cc = '\x01';
		 *     data = extraout_x1;
		 *   }
		 *   if (*(int *)(*(long *)typeinfo_ptr_mscorlib_Math_6FC0738 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     data = extraout_x1_00;
		 *   }
		 *   fVar5 = SQRT(fVar5 * fVar5 + fVar3 * fVar3 + fVar4 * fVar4);
		 *   if (fVar5 <= _UNK_0134eeec) {
		 *     if (cRam000000000754a7ce == '\0') {
		 *       func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08,data);
		 *       cRam000000000754a7ce = '\x01';
		 *     }
		 *     fVar3 = **(float **)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 + 0xb8);
		 *     fVar4 = (*(float **)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 + 0xb8))[1];
		 *   }
		 *   else {
		 *     fVar3 = fVar3 / fVar5;
		 *     fVar4 = fVar4 / fVar5;
		 *   }
		 *   if (this.m_UseX != false) {
		 *     if (this.m_HorizontalVirtualAxis == null) goto LAB_0337d1ec;
		 *     *(float *)((long)this.m_HorizontalVirtualAxis + 0x18) = fVar3;
		 *   }
		 *   if (this.m_UseY != false) {
		 *     if (this.m_VerticalVirtualAxis == null) {
		 * LAB_0337d1ec:
		 *       IL2CPP.ThrowNullReferenceException();
		 *     }
		 *     *(float *)((long)this.m_VerticalVirtualAxis + 0x18) = fVar4;
		 *   }
		 *   return;
		 */
		// RVA: 0x327D460 VA: 0x7818968460
		private void OnDisable();
		/*
		 *   undefined4 uVar1;
		 *   uint uVar2;
		 *   int iVar3;
		 *   undefined *puVar4;
		 *   bool bVar5;
		 *   uint uVar6;
		 *   long lVar7;
		 *   ulong uVar8;
		 *   undefined8 *puVar9;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *extraout_x1_01;
		 *   void *extraout_x1_02;
		 *   void *extraout_x1_03;
		 *   void *extraout_x1_04;
		 *   long lVar10;
		 *   long lVar11;
		 *   long lVar12;
		 *   long lVar13;
		 *   ulong uVar14;
		 *   int *piVar15;
		 *   long *plVar16;
		 *   void *pvVar17;
		 *   void *pvVar18;
		 *   long *plVar19;
		 *   undefined8 uVar20;
		 *   uint uVar21;
		 *   ulong uVar22;
		 *   uint *puVar23;
		 *
		 *   puVar4 = PTR_DAT_070c56f8;
		 *   if ((bRam000000000754ac69 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c56f8);
		 *     bRam000000000754ac69 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   pvVar17 = this.horizontalAxisName;
		 *   if (*(int *)(*(long *)puVar4 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   bVar5 = CrossPlatformInputManager.AxisExists(pvVar17);
		 *   pvVar17 = extraout_x1_01;
		 *   if (bVar5) {
		 *     pvVar18 = this.horizontalAxisName;
		 *     if (*(int *)(*(long *)puVar4 + 0xe4) == 0) {
		 *       func_0x031fde08();
		 *       pvVar17 = extraout_x1_02;
		 *     }
		 *     CrossPlatformInputManager.UnRegisterVirtualAxis(pvVar18);
		 *     pvVar17 = extraout_x1_03;
		 *   }
		 *   pvVar18 = this.verticalAxisName;
		 *   if (*(int *)(*(long *)puVar4 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     pvVar17 = extraout_x1_04;
		 *   }
		 *   bVar5 = CrossPlatformInputManager.AxisExists(pvVar18);
		 *   if (!bVar5) {
		 *     return;
		 *   }
		 *   plVar16 = this.verticalAxisName;
		 *   if (*(int *)(*(long *)puVar4 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *   }
		 *   if ((bRam000000000754ac4d & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c56f8);
		 *     bRam000000000754ac4d = 1;
		 *   }
		 *   puVar4 = PTR_DAT_070c56f8;
		 *   if (plVar16 == null) {
		 *     func_0x031fdca0(PTR_DAT_070c5760);
		 *     pvVar17 = (void *)func_0x031fdf24();
		 *     pvVar18 = (void *)func_0x031fdca0(PTR_DAT_070c5768);
		 *     System.ArgumentNullException..ctor(pvVar17,pvVar18);
		 *     uVar20 = func_0x031fdca0(PTR_DAT_070c5770);
		 *     IL2CPP.ThrowManagedException();
		 *   }
		 *   lVar7 = *(long *)PTR_DAT_070c56f8;
		 *   if (*(int *)(lVar7 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *     lVar7 = *(long *)puVar4;
		 *   }
		 *   lVar7 = **(long **)(lVar7 + 0xb8);
		 *   if (lVar7 == 0) {
		 *     IL2CPP.ThrowNullReferenceException();
		 *   }
		 *   if ((bRam000000000754ac6f & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c5728);
		 *     func_0x031fdc8c(PTR_DAT_070c5778);
		 *     bRam000000000754ac6f = 1;
		 *   }
		 *   if (*(long *)(lVar7 + 0x20) == 0) {
		 * LAB_0337bd28:
		 *     IL2CPP.ThrowNullReferenceException();
		 *   }
		 *   uVar8 = func_0x04e2d048(*(long *)(lVar7 + 0x20),plVar16,*(undefined8 *)PTR_DAT_070c5728);
		 *   if ((uVar8 & 1) == 0) {
		 *     return;
		 *   }
		 *   lVar7 = *(long *)(lVar7 + 0x20);
		 *   if (lVar7 == 0) goto LAB_0337bd28;
		 *   lVar11 = *(long *)PTR_DAT_070c5778;
		 *   if (plVar16 == null) {
		 *     ThrowHelper.ThrowArgumentNullException(5);
		 *   }
		 *   if (*(long *)(lVar7 + 0x10) != 0) {
		 *     plVar19 = *(long **)(lVar7 + 0x30);
		 *     if (plVar19 == null) {
		 *       if (plVar16 == null) goto LAB_04e2e67c;
		 *       uVar6 = (**(code **)(*plVar16 + 0x158))(plVar16,*(undefined8 *)(*plVar16 + 0x160));
		 *     }
		 *     else {
		 *       lVar10 = *(long *)(*(long *)(*(long *)(lVar11 + 0x20) + 0xc0) + 8);
		 *       if ((*(ushort *)(lVar10 + 0x135) & 1) == 0) {
		 *         lVar10 = func_0x03237224(lVar10);
		 *       }
		 *       lVar12 = *plVar19;
		 *       uVar8 = (ulong)*(ushort *)(lVar12 + 0x12e);
		 *       if (uVar8 != 0) {
		 *         piVar15 = (int *)(*(long *)(lVar12 + 0xb0) + 8);
		 *         do {
		 *           if (*(long *)(piVar15 + -2) == lVar10) {
		 *             puVar9 = (undefined8 *)(lVar12 + (long)(*piVar15 + 1) * 0x10 + 0x138);
		 *             goto LAB_04e2e440;
		 *           }
		 *           uVar8 = uVar8 - 1;
		 *           piVar15 = piVar15 + 4;
		 *         } while (uVar8 != 0);
		 *       }
		 *       puVar9 = (undefined8 *)func_0x03237558(plVar19,lVar10,1);
		 * LAB_04e2e440:
		 *       uVar6 = (*(code *)*puVar9)(plVar19,plVar16,puVar9[1]);
		 *     }
		 *     lVar10 = *(long *)(lVar7 + 0x10);
		 *     if (lVar10 == 0) {
		 * LAB_04e2e67c:
		 *       IL2CPP.ThrowNullReferenceException();
		 *     }
		 *     uVar21 = *(uint *)(lVar10 + 0x18);
		 *     uVar6 = uVar6 & 0x7fffffff;
		 *     iVar3 = 0;
		 *     if (uVar21 != 0) {
		 *       iVar3 = (int)uVar6 / (int)uVar21;
		 *     }
		 *     uVar2 = uVar6 - iVar3 * uVar21;
		 *     if (uVar21 <= uVar2) {
		 * LAB_04e2e680:
		 *       IL2CPP.ThrowIndexOutOfRangeException();
		 *     }
		 *     uVar21 = *(int *)(lVar10 + (ulong)uVar2 * 4 + 0x20) - 1;
		 *     if (-1 < (int)uVar21) {
		 *       uVar8 = 0xffffffff;
		 *       do {
		 *         lVar10 = *(long *)(lVar7 + 0x18);
		 *         if (lVar10 == 0) goto LAB_04e2e67c;
		 *         if (*(uint *)(lVar10 + 0x18) <= uVar21) goto LAB_04e2e680;
		 *         lVar10 = lVar10 + 0x20;
		 *         puVar23 = (uint *)(lVar10 + (ulong)uVar21 * 0x18);
		 *         uVar22 = (ulong)uVar21;
		 *         if (*puVar23 == uVar6) {
		 *           plVar19 = *(long **)(lVar7 + 0x30);
		 *           if (plVar19 == null) {
		 *             plVar19 = (long *)func_0x036616c4(*(undefined8 *)
		 *                                                (*(long *)(*(long *)(lVar11 + 0x20) + 0xc0) + 0x18));
		 *             if (plVar19 == null) goto LAB_04e2e67c;
		 *             uVar14 = (**(code **)(*plVar19 + 0x1b8))
		 *                                (plVar19,*(undefined8 *)(lVar10 + uVar22 * 0x18 + 8),plVar16,
		 *                                 *(undefined8 *)(*plVar19 + 0x1c0));
		 *           }
		 *           else {
		 *             lVar12 = *(long *)(*(long *)(*(long *)(lVar11 + 0x20) + 0xc0) + 8);
		 *             uVar20 = *(undefined8 *)(lVar10 + uVar22 * 0x18 + 8);
		 *             if ((*(ushort *)(lVar12 + 0x135) & 1) == 0) {
		 *               lVar12 = func_0x03237224(lVar12);
		 *             }
		 *             lVar13 = *plVar19;
		 *             uVar14 = (ulong)*(ushort *)(lVar13 + 0x12e);
		 *             if (uVar14 != 0) {
		 *               piVar15 = (int *)(*(long *)(lVar13 + 0xb0) + 8);
		 *               do {
		 *                 if (*(long *)(piVar15 + -2) == lVar12) {
		 *                   puVar9 = (undefined8 *)(lVar13 + (long)*piVar15 * 0x10 + 0x138);
		 *                   goto LAB_04e2e58c;
		 *                 }
		 *                 uVar14 = uVar14 - 1;
		 *                 piVar15 = piVar15 + 4;
		 *               } while (uVar14 != 0);
		 *             }
		 *             puVar9 = (undefined8 *)func_0x03237558(plVar19,lVar12,0);
		 * LAB_04e2e58c:
		 *             uVar14 = (*(code *)*puVar9)(plVar19,uVar20,plVar16,puVar9[1]);
		 *           }
		 *           if ((uVar14 & 1) != 0) {
		 *             if ((int)(uint)uVar8 < 0) {
		 *               lVar11 = *(long *)(lVar7 + 0x10);
		 *               if (lVar11 == 0) goto LAB_04e2e67c;
		 *               if (*(uint *)(lVar11 + 0x18) <= uVar2) goto LAB_04e2e680;
		 *               *(int *)(lVar11 + (ulong)uVar2 * 4 + 0x20) = *(int *)(lVar10 + uVar22 * 0x18 + 4) + 1;
		 *             }
		 *             else {
		 *               lVar11 = *(long *)(lVar7 + 0x18);
		 *               if (lVar11 == 0) goto LAB_04e2e67c;
		 *               if (*(uint *)(lVar11 + 0x18) <= (uint)uVar8) goto LAB_04e2e680;
		 *               *(undefined4 *)(lVar11 + uVar8 * 0x18 + 0x24) =
		 *                    *(undefined4 *)(lVar10 + uVar22 * 0x18 + 4);
		 *             }
		 *             uVar1 = *(undefined4 *)(lVar7 + 0x24);
		 *             lVar10 = lVar10 + uVar22 * 0x18;
		 *             *puVar23 = 0xffffffff;
		 *             *(undefined4 *)(lVar10 + 4) = uVar1;
		 *             *(undefined8 *)(lVar10 + 8) = 0;
		 *             *(undefined8 *)(lVar10 + 0x10) = 0;
		 *             *(uint *)(lVar7 + 0x24) = uVar21;
		 *             *(ulong *)(lVar7 + 0x28) =
		 *                  CONCAT44((int)((ulong)*(undefined8 *)(lVar7 + 0x28) >> 0x20) + 1,
		 *                           (int)*(undefined8 *)(lVar7 + 0x28) + 1);
		 *             return;
		 *           }
		 *         }
		 *         uVar8 = (ulong)uVar21;
		 *         uVar21 = *(uint *)(lVar10 + uVar22 * 0x18 + 4);
		 *       } while (-1 < (int)uVar21);
		 *     }
		 *   }
		 *   return;
		 */
		// RVA: 0x327D520 VA: 0x7818968520
		public void .ctor();
		/*
		 *   undefined *puVar1;
		 *   undefined *puVar2;
		 *   undefined8 uVar3;
		 *
		 *   puVar2 = PTR_DAT_070c5790;
		 *   puVar1 = PTR_DAT_070c5710;
		 *   if ((bRam000000000754ac6a & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c5790);
		 *     func_0x031fdc8c(PTR_DAT_070c5710);
		 *     bRam000000000754ac6a = 1;
		 *   }
		 *   this.horizontalAxisName = *(void **)puVar1;
		 *   func_0x031fdc38();
		 *   this.verticalAxisName = *(void **)puVar2;
		 *   func_0x031fdc38();
		 *   uVar3 = NEON_fmov(0x3f800000,4);
		 *   this.m_Id = -1;
		 *   this.Xsensitivity = (float)(int)uVar3;
		 *   puVar1 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
		 *   this.Ysensitivity = (float)(int)((ulong)uVar3 >> 0x20);
		 *   if ((bRam000000000755f76f & 1) == 0) {
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8,0);
		 *     bRam000000000755f76f = 1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *   }
		 *   return;
		 */
	}
}
