namespace GorillaLocomotion
{

	// [TypeInfo RVA: 0x7127AD8]
	public class Player : MonoBehaviour
	{
		private static GorillaLocomotion.Player _instance; // 0x0
		public UnityEngine.SphereCollider headCollider; // 0x20
		public UnityEngine.CapsuleCollider bodyCollider; // 0x28
		public UnityEngine.Transform leftHandFollower; // 0x30
		public UnityEngine.Transform rightHandFollower; // 0x38
		public UnityEngine.Transform rightHandTransform; // 0x40
		public UnityEngine.Transform leftHandTransform; // 0x48
		private UnityEngine.Vector3 lastLeftHandPosition; // 0x50
		private UnityEngine.Vector3 lastRightHandPosition; // 0x5C
		private UnityEngine.Vector3 lastHeadPosition; // 0x68
		private UnityEngine.Rigidbody playerRigidBody; // 0x78
		public int velocityHistorySize; // 0x80
		public float maxArmLength; // 0x84
		public float unStickDistance; // 0x88
		public float velocityLimit; // 0x8C
		public float maxJumpSpeed; // 0x90
		public float jumpMultiplier; // 0x94
		public float acceleration; // 0x98
		public float minimumRaycastDistance; // 0x9C
		public float defaultSlideFactor; // 0xA0
		public float defaultPrecision; // 0xA4
		public bool jumpAccelerationEnabled; // 0xA8
		public float accelDecayDelay; // 0xAC
		public float accelDecayRate; // 0xB0
		public float accelRiseSmoothing; // 0xB4
		public float accelEndPercent; // 0xB8
		private UnityEngine.Vector3[] velocityHistory; // 0xC0
		private int velocityIndex; // 0xC8
		private UnityEngine.Vector3 currentVelocity; // 0xCC
		private UnityEngine.Vector3 denormalizedVelocityAverage; // 0xD8
		private bool jumpHandIsLeft; // 0xE4
		private UnityEngine.Vector3 lastPosition; // 0xE8
		public UnityEngine.Vector3 rightHandOffset; // 0xF4
		public UnityEngine.Vector3 leftHandOffset; // 0x100
		public UnityEngine.LayerMask locomotionEnabledLayers; // 0x10C
		public bool wasLeftHandTouching; // 0x110
		public bool wasRightHandTouching; // 0x111
		public bool disableMovement; // 0x112
		public float baseJumpMultiplier; // 0x114
		private float accelBelowTimer; // 0x118
		private float lastKnownBaseJumpMultiplier; // 0x11C

		// RVA: 0x3276F60 VA: 0x7818961F60
		public static GorillaLocomotion.Player get_Instance();
		/*
		 *   undefined *puVar1;
		 *
		 *   puVar1 = typeinfo_ptr_Assembly_CSharp_Player_6FC0C18;
		 *   if ((bRam000000000754ac32 & 1) == 0) {
		 *     func_0x031fdc8c(typeinfo_ptr_Assembly_CSharp_Player_6FC0C18);
		 *     bRam000000000754ac32 = 1;
		 *   }
		 *   return **(undefined8 **)(*(long *)puVar1 + 0xb8);
		 */
		// RVA: 0x3276FA8 VA: 0x7818961FA8
		private void Awake();
		/*
		 *   int iVar1;
		 *   undefined *puVar2;
		 *   undefined *puVar3;
		 *   ulong uVar4;
		 *   void *pvVar5;
		 *   void *extraout_x1;
		 *   undefined8 uVar6;
		 *   undefined4 uVar7;
		 *   UnityEngine_Vector3 UVar8;
		 *
		 *   puVar3 = typeinfo_ptr_Assembly_CSharp_Player_6FC0C18;
		 *   puVar2 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
		 *   if ((bRam000000000754ac33 & 1) == 0) {
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8);
		 *     func_0x031fdc8c(typeinfo_ptr_Assembly_CSharp_Player_6FC0C18);
		 *     bRam000000000754ac33 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   uVar6 = **(undefined8 **)(*(long *)puVar3 + 0xb8);
		 *   if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
		 *     func_0x031fde08(*(long *)puVar2,methodInfo);
		 *   }
		 *   uVar4 = UnityEngine.Object.op_Inequality(uVar6,null);
		 *   if ((uVar4 & 1) != 0) {
		 *     uVar6 = **(undefined8 **)(*(long *)puVar3 + 0xb8);
		 *     if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
		 *       func_0x031fde08();
		 *     }
		 *     uVar4 = UnityEngine.Object.op_Inequality(uVar6,this);
		 *     if ((uVar4 & 1) != 0) {
		 *       pvVar5 = UnityEngine.Component.get_gameObject(this);
		 *       if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
		 *         func_0x031fde08(*(long *)puVar2);
		 *       }
		 *       UnityEngine.Object.Destroy(pvVar5);
		 *       goto LAB_033770a4;
		 *     }
		 *   }
		 *   **(undefined8 **)(*(long *)puVar3 + 0xb8) = this;
		 *   func_0x031fdc38(*(undefined8 *)(*(long *)puVar3 + 0xb8),this);
		 * LAB_033770a4:
		 *   puVar3 = PTR_DAT_070c1d88;
		 *   puVar2 = PTR_DAT_070c0c08;
		 *   if ((bRam000000000754ac34 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c0c08);
		 *     func_0x031fdc8c(PTR_DAT_070c1d88);
		 *     bRam000000000754ac34 = 1;
		 *   }
		 *   uVar6 = func_0x0373df50(this,*(undefined8 *)puVar2);
		 *   *(undefined8 *)((long)this + 0x78) = uVar6;
		 *   func_0x031fdc38();
		 *   iVar1 = *(int *)((long)this + 0x80);
		 *   if (iVar1 < 2) {
		 *     iVar1 = 1;
		 *   }
		 *   uVar6 = func_0x031fdd78(*(undefined8 *)puVar3,iVar1);
		 *   *(undefined8 *)((long)this + 0xc0) = uVar6;
		 *   func_0x031fdc38((undefined8 *)((long)this + 0xc0),uVar6);
		 *   if ((*(void **)((long)this + 0x30) != null) &&
		 *      (pvVar5 = UnityEngine.Component.get_transform(*(void **)((long)this + 0x30)), pvVar5 != null)) {
		 *     UVar8 = UnityEngine.Transform.get_position(pvVar5);
		 *     *(float *)((long)this + 0x50) = UVar8.x;
		 *     *(float *)((long)this + 0x54) = UVar8.y;
		 *     *(float *)((long)this + 0x58) = UVar8.z;
		 *     if ((*(void **)((long)this + 0x38) != null) &&
		 *        (pvVar5 = UnityEngine.Component.get_transform(*(void **)((long)this + 0x38)), pvVar5 != null)) {
		 *       UVar8 = UnityEngine.Transform.get_position(pvVar5);
		 *       *(float *)((long)this + 0x5c) = UVar8.x;
		 *       *(float *)((long)this + 0x60) = UVar8.y;
		 *       *(float *)((long)this + 100) = UVar8.z;
		 *       if ((*(void **)((long)this + 0x20) != null) &&
		 *          (pvVar5 = UnityEngine.Component.get_transform(*(void **)((long)this + 0x20)), pvVar5 != null)) {
		 *         UVar8 = UnityEngine.Transform.get_position(pvVar5);
		 *         *(float *)((long)this + 0x68) = UVar8.x;
		 *         *(float *)((long)this + 0x6c) = UVar8.y;
		 *         *(float *)((long)this + 0x70) = UVar8.z;
		 *         *(undefined4 *)((long)this + 200) = 0;
		 *         pvVar5 = UnityEngine.Component.get_transform(this);
		 *         if (pvVar5 != null) {
		 *           UVar8 = UnityEngine.Transform.get_position(pvVar5);
		 *           *(float *)((long)this + 0xe8) = UVar8.x;
		 *           *(float *)((long)this + 0xec) = UVar8.y;
		 *           uVar7 = *(undefined4 *)((long)this + 0x94);
		 *           *(float *)((long)this + 0xf0) = UVar8.z;
		 *           *(undefined4 *)((long)this + 0x98) = uVar7;
		 *           *(undefined4 *)((long)this + 0x114) = uVar7;
		 *           *(undefined4 *)((long)this + 0x11c) = uVar7;
		 *           *(undefined4 *)((long)this + 0x118) = 0;
		 *           return;
		 *         }
		 *       }
		 *     }
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32770B8 VA: 0x78189620B8
		public void InitializeValues();
		/*
		 *   int iVar1;
		 *   undefined *puVar2;
		 *   undefined *puVar3;
		 *   undefined8 uVar4;
		 *   void *pvVar5;
		 *   undefined4 uVar6;
		 *   UnityEngine_Vector3 UVar7;
		 *
		 *   puVar3 = PTR_DAT_070c1d88;
		 *   puVar2 = PTR_DAT_070c0c08;
		 *   if ((bRam000000000754ac34 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c0c08);
		 *     func_0x031fdc8c(PTR_DAT_070c1d88);
		 *     bRam000000000754ac34 = 1;
		 *   }
		 *   uVar4 = func_0x0373df50(this,*(undefined8 *)puVar2);
		 *   *(undefined8 *)((long)this + 0x78) = uVar4;
		 *   func_0x031fdc38();
		 *   iVar1 = *(int *)((long)this + 0x80);
		 *   if (iVar1 < 2) {
		 *     iVar1 = 1;
		 *   }
		 *   uVar4 = func_0x031fdd78(*(undefined8 *)puVar3,iVar1);
		 *   *(undefined8 *)((long)this + 0xc0) = uVar4;
		 *   func_0x031fdc38((undefined8 *)((long)this + 0xc0),uVar4);
		 *   if ((*(void **)((long)this + 0x30) != null) &&
		 *      (pvVar5 = UnityEngine.Component.get_transform(*(void **)((long)this + 0x30)), pvVar5 != null)) {
		 *     UVar7 = UnityEngine.Transform.get_position(pvVar5);
		 *     *(float *)((long)this + 0x50) = UVar7.x;
		 *     *(float *)((long)this + 0x54) = UVar7.y;
		 *     *(float *)((long)this + 0x58) = UVar7.z;
		 *     if ((*(void **)((long)this + 0x38) != null) &&
		 *        (pvVar5 = UnityEngine.Component.get_transform(*(void **)((long)this + 0x38)), pvVar5 != null)) {
		 *       UVar7 = UnityEngine.Transform.get_position(pvVar5);
		 *       *(float *)((long)this + 0x5c) = UVar7.x;
		 *       *(float *)((long)this + 0x60) = UVar7.y;
		 *       *(float *)((long)this + 100) = UVar7.z;
		 *       if ((*(void **)((long)this + 0x20) != null) &&
		 *          (pvVar5 = UnityEngine.Component.get_transform(*(void **)((long)this + 0x20)), pvVar5 != null)) {
		 *         UVar7 = UnityEngine.Transform.get_position(pvVar5);
		 *         *(float *)((long)this + 0x68) = UVar7.x;
		 *         *(float *)((long)this + 0x6c) = UVar7.y;
		 *         *(float *)((long)this + 0x70) = UVar7.z;
		 *         *(undefined4 *)((long)this + 200) = 0;
		 *         pvVar5 = UnityEngine.Component.get_transform(this);
		 *         if (pvVar5 != null) {
		 *           UVar7 = UnityEngine.Transform.get_position(pvVar5);
		 *           *(float *)((long)this + 0xe8) = UVar7.x;
		 *           *(float *)((long)this + 0xec) = UVar7.y;
		 *           uVar6 = *(undefined4 *)((long)this + 0x94);
		 *           *(float *)((long)this + 0xf0) = UVar7.z;
		 *           *(undefined4 *)((long)this + 0x98) = uVar6;
		 *           *(undefined4 *)((long)this + 0x114) = uVar6;
		 *           *(undefined4 *)((long)this + 0x11c) = uVar6;
		 *           *(undefined4 *)((long)this + 0x118) = 0;
		 *           return;
		 *         }
		 *       }
		 *     }
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x3277200 VA: 0x7818962200
		private UnityEngine.Vector3 CurrentLeftHandPosition();
		/*
		 *   undefined *puVar1;
		 *   void *pvVar2;
		 *   void *this_00;
		 *   void *in_x2;
		 *   float *pfVar3;
		 *   float fVar4;
		 *   float fVar5;
		 *   float fVar6;
		 *   float fVar7;
		 *   UnityEngine_Vector3 UVar8;
		 *   UnityEngine_Vector3 UVar9;
		 *   UnityEngine_Vector3 UVar10;
		 *
		 *   UVar8 = Player.PositionWithOffset(this,*(void **)((long)this + 0x48),*(UnityEngine_Vector3 *)((long)this + 0x100));
		 *   if ((*(void **)((long)this + 0x20) != null) &&
		 *      (pvVar2 = UnityEngine.Component.get_transform(*(void **)((long)this + 0x20)), pvVar2 != null)) {
		 *     UVar9 = UnityEngine.Transform.get_position(pvVar2);
		 *     if (cRam000000000754a89e == '\0') {
		 *       func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
		 *       cRam000000000754a89e = '\x01';
		 *     }
		 *     puVar1 = typeinfo_ptr_mscorlib_Math_6FC0738;
		 *     fVar7 = UVar8.x - UVar9.x;
		 *     fVar6 = UVar8.y - UVar9.y;
		 *     fVar5 = UVar8.z - UVar9.z;
		 *     pvVar2 = *(void **)typeinfo_ptr_mscorlib_Math_6FC0738;
		 *     if (*(int *)((long)pvVar2 + 0xe4) == 0) {
		 *       pvVar2 = (void *)func_0x031fde08();
		 *     }
		 *     if (SQRT(fVar5 * fVar5 + fVar7 * fVar7 + fVar6 * fVar6) < *(float *)((long)this + 0x84)) {
		 *       UVar8 = Player.PositionWithOffset(pvVar2,*(void **)((long)this + 0x48),*(UnityEngine_Vector3 *)((long)this + 0x100));
		 *       fVar7 = UVar8.z;
		 *       fVar6 = UVar8.y;
		 *       fVar5 = UVar8.x;
		 * LAB_03377430:
		 *       UVar8.y = fVar6;
		 *       UVar8.x = fVar5;
		 *       UVar8.z = fVar7;
		 *       return UVar8;
		 *     }
		 *     if ((*(void **)((long)this + 0x20) != null) &&
		 *        (pvVar2 = UnityEngine.Component.get_transform(*(void **)((long)this + 0x20)), pvVar2 != null)) {
		 *       UVar8 = UnityEngine.Transform.get_position(pvVar2);
		 *       UVar9 = Player.PositionWithOffset(this_00,*(void **)((long)this + 0x48),*(UnityEngine_Vector3 *)((long)this + 0x100));
		 *       if ((*(void **)((long)this + 0x20) != null) &&
		 *          (pvVar2 = UnityEngine.Component.get_transform(*(void **)((long)this + 0x20)), pvVar2 != null)) {
		 *         UVar10 = UnityEngine.Transform.get_position(pvVar2);
		 *         if (cRam000000000754a7cc == '\0') {
		 *           func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
		 *           cRam000000000754a7cc = '\x01';
		 *         }
		 *         fVar5 = UVar9.x - UVar10.x;
		 *         fVar6 = UVar9.y - UVar10.y;
		 *         fVar7 = UVar9.z - UVar10.z;
		 *         if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *           func_0x031fde08();
		 *         }
		 *         fVar4 = SQRT(fVar7 * fVar7 + fVar5 * fVar5 + fVar6 * fVar6);
		 *         if (fVar4 <= _UNK_0134eeec) {
		 *           if (cRam000000000754a7ce == '\0') {
		 *             func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08);
		 *             cRam000000000754a7ce = '\x01';
		 *           }
		 *           pfVar3 = *(float **)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 + 0xb8);
		 *           fVar5 = *pfVar3;
		 *           fVar6 = pfVar3[1];
		 *           fVar7 = pfVar3[2];
		 *         }
		 *         else {
		 *           fVar5 = fVar5 / fVar4;
		 *           fVar6 = fVar6 / fVar4;
		 *           fVar7 = fVar7 / fVar4;
		 *         }
		 *         fVar4 = *(float *)((long)this + 0x84);
		 *         fVar5 = UVar8.x + fVar5 * fVar4;
		 *         fVar6 = UVar8.y + fVar6 * fVar4;
		 *         fVar7 = UVar8.z + fVar7 * fVar4;
		 *         goto LAB_03377430;
		 *       }
		 *     }
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32774D4 VA: 0x78189624D4
		private UnityEngine.Vector3 CurrentRightHandPosition();
		/*
		 *   undefined *puVar1;
		 *   void *pvVar2;
		 *   void *this_00;
		 *   void *in_x2;
		 *   float *pfVar3;
		 *   float fVar4;
		 *   float fVar5;
		 *   float fVar6;
		 *   float fVar7;
		 *   UnityEngine_Vector3 UVar8;
		 *   UnityEngine_Vector3 UVar9;
		 *   UnityEngine_Vector3 UVar10;
		 *
		 *   UVar8 = Player.PositionWithOffset(this,*(void **)((long)this + 0x40),*(UnityEngine_Vector3 *)((long)this + 0xf4));
		 *   if ((*(void **)((long)this + 0x20) != null) &&
		 *      (pvVar2 = UnityEngine.Component.get_transform(*(void **)((long)this + 0x20)), pvVar2 != null)) {
		 *     UVar9 = UnityEngine.Transform.get_position(pvVar2);
		 *     if (cRam000000000754a89e == '\0') {
		 *       func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
		 *       cRam000000000754a89e = '\x01';
		 *     }
		 *     puVar1 = typeinfo_ptr_mscorlib_Math_6FC0738;
		 *     fVar7 = UVar8.x - UVar9.x;
		 *     fVar6 = UVar8.y - UVar9.y;
		 *     fVar5 = UVar8.z - UVar9.z;
		 *     pvVar2 = *(void **)typeinfo_ptr_mscorlib_Math_6FC0738;
		 *     if (*(int *)((long)pvVar2 + 0xe4) == 0) {
		 *       pvVar2 = (void *)func_0x031fde08();
		 *     }
		 *     if (SQRT(fVar5 * fVar5 + fVar7 * fVar7 + fVar6 * fVar6) < *(float *)((long)this + 0x84)) {
		 *       UVar8 = Player.PositionWithOffset(pvVar2,*(void **)((long)this + 0x40),*(UnityEngine_Vector3 *)((long)this + 0xf4));
		 *       fVar7 = UVar8.z;
		 *       fVar6 = UVar8.y;
		 *       fVar5 = UVar8.x;
		 * LAB_033776f8:
		 *       UVar8.y = fVar6;
		 *       UVar8.x = fVar5;
		 *       UVar8.z = fVar7;
		 *       return UVar8;
		 *     }
		 *     if ((*(void **)((long)this + 0x20) != null) &&
		 *        (pvVar2 = UnityEngine.Component.get_transform(*(void **)((long)this + 0x20)), pvVar2 != null)) {
		 *       UVar8 = UnityEngine.Transform.get_position(pvVar2);
		 *       UVar9 = Player.PositionWithOffset(this_00,*(void **)((long)this + 0x40),*(UnityEngine_Vector3 *)((long)this + 0xf4));
		 *       if ((*(void **)((long)this + 0x20) != null) &&
		 *          (pvVar2 = UnityEngine.Component.get_transform(*(void **)((long)this + 0x20)), pvVar2 != null)) {
		 *         UVar10 = UnityEngine.Transform.get_position(pvVar2);
		 *         if (cRam000000000754a7cc == '\0') {
		 *           func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
		 *           cRam000000000754a7cc = '\x01';
		 *         }
		 *         fVar5 = UVar9.x - UVar10.x;
		 *         fVar6 = UVar9.y - UVar10.y;
		 *         fVar7 = UVar9.z - UVar10.z;
		 *         if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *           func_0x031fde08();
		 *         }
		 *         fVar4 = SQRT(fVar7 * fVar7 + fVar5 * fVar5 + fVar6 * fVar6);
		 *         if (fVar4 <= _UNK_0134eeec) {
		 *           if (cRam000000000754a7ce == '\0') {
		 *             func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08);
		 *             cRam000000000754a7ce = '\x01';
		 *           }
		 *           pfVar3 = *(float **)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 + 0xb8);
		 *           fVar5 = *pfVar3;
		 *           fVar6 = pfVar3[1];
		 *           fVar7 = pfVar3[2];
		 *         }
		 *         else {
		 *           fVar5 = fVar5 / fVar4;
		 *           fVar6 = fVar6 / fVar4;
		 *           fVar7 = fVar7 / fVar4;
		 *         }
		 *         fVar4 = *(float *)((long)this + 0x84);
		 *         fVar5 = UVar8.x + fVar5 * fVar4;
		 *         fVar6 = UVar8.y + fVar6 * fVar4;
		 *         fVar7 = UVar8.z + fVar7 * fVar4;
		 *         goto LAB_033776f8;
		 *       }
		 *     }
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x3277454 VA: 0x7818962454
		private UnityEngine.Vector3 PositionWithOffset(UnityEngine.Transform transformToModify, UnityEngine.Vector3 offsetVector);
		/*
		 *   UnityEngine_Vector3 UVar1;
		 *   UnityEngine_Vector3 UVar2;
		 *   UnityEngine_Vector3 UVar3;
		 *   UnityEngine_Vector4 rotation;
		 *
		 *   if (transformToModify != null) {
		 *     UVar1 = UnityEngine.Transform.get_position(transformToModify);
		 *     rotation = UnityEngine.Transform.get_rotation(transformToModify);
		 *     UVar2 = UnityEngine.Quaternion.op_Multiply(rotation,offsetVector);
		 *     UVar3.x = UVar1.x + UVar2.x;
		 *     UVar3.y = UVar1.y + UVar2.y;
		 *     UVar3.z = UVar1.z + UVar2.z;
		 *     return UVar3;
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x327771C VA: 0x781896271C
		private void Update();
		/*
		 *   undefined1 auVar1 [12];
		 *   undefined8 *puVar2;
		 *   undefined *puVar3;
		 *   undefined *puVar4;
		 *   bool bVar5;
		 *   bool bVar6;
		 *   bool bVar7;
		 *   int iVar8;
		 *   void *pvVar9;
		 *   void *pvVar10;
		 *   ulong uVar11;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *methodInfo_00;
		 *   void *methodInfo_01;
		 *   void *extraout_x1_01;
		 *   void *methodInfo_02;
		 *   void *methodInfo_03;
		 *   void *methodInfo_04;
		 *   void *extraout_x1_02;
		 *   void *methodInfo_05;
		 *   void *extraout_x1_03;
		 *   void *methodInfo_06;
		 *   void *extraout_x1_04;
		 *   void *extraout_x1_05;
		 *   void *extraout_x1_06;
		 *   void *extraout_x1_07;
		 *   void *methodInfo_07;
		 *   void *extraout_x1_08;
		 *   void *extraout_x1_09;
		 *   void *extraout_x1_10;
		 *   void *methodInfo_08;
		 *   void *methodInfo_09;
		 *   void *methodInfo_10;
		 *   void *methodInfo_11;
		 *   void *extraout_x1_11;
		 *   byte bVar12;
		 *   float *pfVar13;
		 *   undefined1 uVar14;
		 *   undefined1 uVar15;
		 *   float *pfVar16;
		 *   float *pfVar17;
		 *   float *pfVar18;
		 *   float fVar19;
		 *   undefined4 uVar20;
		 *   float fVar21;
		 *   float fVar22;
		 *   float fVar23;
		 *   float fVar24;
		 *   undefined8 uVar25;
		 *   undefined8 uVar26;
		 *   undefined8 uVar27;
		 *   float fVar28;
		 *   float fVar29;
		 *   float fVar30;
		 *   float fVar31;
		 *   float fVar32;
		 *   undefined8 uVar33;
		 *   float fVar34;
		 *   float fVar35;
		 *   float fVar36;
		 *   UnityEngine_Vector3 UVar37;
		 *   UnityEngine_Vector3 UVar38;
		 *   UnityEngine_Vector3 UVar39;
		 *   UnityEngine_Vector3 UVar40;
		 *   UnityEngine_Vector3 UVar41;
		 *   undefined1 auVar42 [16];
		 *   UnityEngine_Vector3 movementVector;
		 *   UnityEngine_Vector3 movementVector_00;
		 *   UnityEngine_Vector3 in_stack_fffffffffffffed0;
		 *   float fStack_f0;
		 *   undefined8 uStack_e0;
		 *   undefined8 uStack_d8;
		 *   undefined8 uStack_d0;
		 *   undefined4 uStack_c8;
		 *   undefined4 uStack_c4;
		 *   undefined4 uStack_c0;
		 *   undefined8 uStack_bc;
		 *   undefined8 uStack_b0;
		 *   float afStack_a8 [2];
		 *
		 *   if ((bRam000000000754ac35 & 1) == 0) {
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_PhysicsModule_Physics_6FC09E8);
		 *     bRam000000000754ac35 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   fVar28 = *(float *)((long)this + 0x11c);
		 *   fVar29 = *(float *)((long)this + 0x94);
		 *   afStack_a8[0] = 0.0;
		 *   uStack_b0 = 0;
		 *   uStack_bc = 0;
		 *   uStack_c0 = 0;
		 *   uStack_d8 = 0;
		 *   uStack_e0 = 0;
		 *   uStack_c8 = 0;
		 *   uStack_c4 = 0;
		 *   uStack_d0 = 0;
		 *   if (cRam000000000754ac04 == '\0') {
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Mathf_6FC2698,methodInfo);
		 *     cRam000000000754ac04 = '\x01';
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   fVar19 = ABS(fVar28);
		 *   fVar23 = ABS(fVar29);
		 *   if (fVar19 <= fVar23) {
		 *     fVar19 = fVar23;
		 *   }
		 *   fVar24 = **(float **)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Mathf_6FC2698 + 0xb8) * 8.0;
		 *   fVar23 = fVar19 * _UNK_0134ed90;
		 *   if (fVar19 * _UNK_0134ed90 <= fVar24) {
		 *     fVar23 = fVar24;
		 *   }
		 *   if (fVar23 <= ABS(fVar29 - fVar28)) {
		 *     uVar20 = *(undefined4 *)((long)this + 0x94);
		 *     *(undefined4 *)((long)this + 0x98) = uVar20;
		 *     *(undefined4 *)((long)this + 0x114) = uVar20;
		 *     *(undefined4 *)((long)this + 0x11c) = uVar20;
		 *   }
		 *   if (cRam000000000754a7ce == '\0') {
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08,methodInfo);
		 *     cRam000000000754a7ce = '\x01';
		 *   }
		 *   puVar4 = typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08;
		 *   if (*(void **)((long)this + 0x28) == null) goto LAB_033786a0;
		 *   fVar28 = **(float **)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 + 0xb8);
		 *   uVar33 = *(undefined8 *)
		 *             (*(float **)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 + 0xb8) + 1);
		 *   pvVar9 = UnityEngine.Component.get_transform(*(void **)((long)this + 0x28));
		 *   if ((*(void **)((long)this + 0x20) == null) ||
		 *      (pvVar10 = UnityEngine.Component.get_transform(*(void **)((long)this + 0x20)), pvVar10 == null))
		 *   goto LAB_033786a0;
		 *   UVar37 = UnityEngine.Transform.get_eulerAngles(pvVar10);
		 *   if (pvVar9 == null) goto LAB_033786a0;
		 *   auVar1._4_8_ = 0;
		 *   auVar1._0_4_ = UVar37.y;
		 *   UnityEngine.Transform.set_eulerAngles(pvVar9,(UnityEngine_Vector3)(auVar1 << 0x20));
		 *   UVar37 = Player.CurrentLeftHandPosition(this);
		 *   pfVar16 = (float *)((long)this + 0x50);
		 *   uVar25 = *(undefined8 *)pfVar16;
		 *   fVar29 = *(float *)((long)this + 0x58);
		 *   if (cRam000000000754aca9 == '\0') {
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08);
		 *     cRam000000000754aca9 = '\x01';
		 *   }
		 *   fVar19 = _UNK_0134e3ec;
		 *   fVar23 = *(float *)(*(long *)(*(long *)puVar4 + 0xb8) + 0x2c);
		 *   uVar26 = *(undefined8 *)(*(long *)(*(long *)puVar4 + 0xb8) + 0x24);
		 *   fVar21 = (float)uVar26;
		 *   fVar22 = (float)((ulong)uVar26 >> 0x20);
		 *   fVar34 = (fVar23 + fVar23) * _UNK_0134e3ec;
		 *   fVar23 = UnityEngine.Time.get_deltaTime();
		 *   fVar24 = UnityEngine.Time.get_deltaTime();
		 *   UVar38.x = (UVar37.x - (float)uVar25) + (fVar21 + fVar21) * 9.8 * fVar23 * fVar24;
		 *   UVar38.z = (UVar37.z - fVar29) + fVar24 * fVar23 * fVar34;
		 *   UVar38.y = (UVar37.y - (float)((ulong)uVar25 >> 0x20)) + (fVar22 + fVar22) * 9.8 * fVar23 * fVar24
		 *   ;
		 *   bVar5 = Player.IterativeCollisionSphereCast(this,*(UnityEngine_Vector3 *)((long)this + 0x50),*(float *)((long)this + 0x9c),UVar38,*(float *)((long)this + 0xa4),in_stack_fffffffffffffed0,SUB81(&uStack_b0,0));
		 *   pvVar9 = methodInfo_01;
		 *   uVar25 = uVar33;
		 *   fVar29 = fVar28;
		 *   if (bVar5) {
		 *     pfVar18 = (float *)&uStack_b0;
		 *     puVar2 = (undefined8 *)((ulong)&uStack_b0 | 4);
		 *     if (*(char *)((long)this + 0x110) != '\0') {
		 *       pfVar18 = pfVar16;
		 *       puVar2 = (undefined8 *)((long)this + 0x54);
		 *     }
		 *     uVar25 = *puVar2;
		 *     fVar29 = *pfVar18;
		 *     UVar37 = Player.CurrentLeftHandPosition(this);
		 *     pvVar9 = *(void **)((long)this + 0x78);
		 *     if (cRam000000000754a7ce == '\0') {
		 *       func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08);
		 *       cRam000000000754a7ce = '\x01';
		 *     }
		 *     if (pvVar9 == null) goto LAB_033786a0;
		 *     fVar29 = fVar29 - UVar37.x;
		 *     uVar25 = CONCAT44((float)((ulong)uVar25 >> 0x20) - UVar37.z,(float)uVar25 - UVar37.y);
		 *     UnityEngine.Rigidbody.set_linearVelocity(pvVar9,**(UnityEngine_Vector3 **)(*(long *)puVar4 + 0xb8));
		 *     pvVar9 = extraout_x1_01;
		 *   }
		 *   UVar37 = Player.CurrentRightHandPosition(this);
		 *   pfVar17 = (float *)((long)this + 0x5c);
		 *   uVar26 = *(undefined8 *)pfVar17;
		 *   pfVar18 = (float *)((long)this + 100);
		 *   fVar23 = *pfVar18;
		 *   if (cRam000000000754aca9 == '\0') {
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08);
		 *     cRam000000000754aca9 = '\x01';
		 *   }
		 *   fVar24 = *(float *)(*(long *)(*(long *)puVar4 + 0xb8) + 0x2c);
		 *   uVar27 = *(undefined8 *)(*(long *)(*(long *)puVar4 + 0xb8) + 0x24);
		 *   fVar34 = (float)uVar27;
		 *   fVar36 = (float)((ulong)uVar27 >> 0x20);
		 *   fVar21 = UnityEngine.Time.get_deltaTime();
		 *   fVar22 = UnityEngine.Time.get_deltaTime();
		 *   UVar39.x = (UVar37.x - (float)uVar26) + (fVar34 + fVar34) * 9.8 * fVar21 * fVar22;
		 *   UVar39.z = (UVar37.z - fVar23) + fVar22 * fVar21 * (fVar24 + fVar24) * fVar19;
		 *   UVar39.y = (UVar37.y - (float)((ulong)uVar26 >> 0x20)) + (fVar36 + fVar36) * 9.8 * fVar21 * fVar22
		 *   ;
		 *   bVar6 = Player.IterativeCollisionSphereCast(this,*(UnityEngine_Vector3 *)((long)this + 0x5c),*(float *)((long)this + 0x9c),UVar39,*(float *)((long)this + 0xa4),in_stack_fffffffffffffed0,SUB81(&uStack_b0,0));
		 *   if (bVar6) {
		 *     if (*(char *)((long)this + 0x111) == '\0') {
		 *       pfVar13 = (float *)&uStack_b0;
		 *       pfVar18 = afStack_a8;
		 *       fVar19 = uStack_b0._4_4_;
		 *     }
		 *     else {
		 *       pfVar13 = pfVar17;
		 *       fVar19 = *(float *)((long)this + 0x60);
		 *     }
		 *     fVar23 = *pfVar18;
		 *     fVar28 = *pfVar13;
		 *     UVar37 = Player.CurrentRightHandPosition(this);
		 *     pvVar9 = *(void **)((long)this + 0x78);
		 *     if (cRam000000000754a7ce == '\0') {
		 *       func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08);
		 *       cRam000000000754a7ce = '\x01';
		 *     }
		 *     if (pvVar9 == null) goto LAB_033786a0;
		 *     fVar28 = fVar28 - UVar37.x;
		 *     uVar33 = CONCAT44(fVar23 - UVar37.z,fVar19 - UVar37.y);
		 *     UnityEngine.Rigidbody.set_linearVelocity(pvVar9,**(UnityEngine_Vector3 **)(*(long *)puVar4 + 0xb8));
		 *   }
		 *   fVar23 = (float)((ulong)uVar33 >> 0x20);
		 *   fVar19 = (float)((ulong)uVar25 >> 0x20);
		 *   if (((bVar5) || (*(char *)((long)this + 0x110) != '\0')) &&
		 *      ((bVar6 || (*(char *)((long)this + 0x111) != '\0')))) {
		 *     fVar29 = (fVar29 + fVar28) * 0.5;
		 *     fStack_f0 = ((float)uVar25 + (float)uVar33) * 0.5;
		 *     fVar19 = (fVar19 + fVar23) * 0.5;
		 *   }
		 *   else {
		 *     fVar29 = fVar29 + fVar28;
		 *     fStack_f0 = (float)uVar25 + (float)uVar33;
		 *     fVar19 = fVar19 + fVar23;
		 *   }
		 *   if (*(void **)((long)this + 0x20) == null) goto LAB_033786a0;
		 *   UVar37 = *(UnityEngine_Vector3 *)((long)this + 0x68);
		 *   fVar28 = UnityEngine.SphereCollider.get_radius(*(void **)((long)this + 0x20));
		 *   if ((*(void **)((long)this + 0x20) == null) ||
		 *      (pvVar9 = UnityEngine.Component.get_transform(*(void **)((long)this + 0x20)), pvVar9 == null))
		 *   goto LAB_033786a0;
		 *   UVar38 = UnityEngine.Transform.get_position(pvVar9);
		 *   UVar40.x = (fVar29 + UVar38.x) - *(float *)((long)this + 0x68);
		 *   UVar40.y = (fStack_f0 + UVar38.y) - *(float *)((long)this + 0x6c);
		 *   UVar40.z = (fVar19 + UVar38.z) - *(float *)((long)this + 0x70);
		 *   bVar7 = Player.IterativeCollisionSphereCast(this,UVar37,fVar28,UVar40,*(float *)((long)this + 0xa4),in_stack_fffffffffffffed0,SUB81(&uStack_b0,0));
		 *   fVar28 = afStack_a8[0];
		 *   if (bVar7) {
		 *     if (*(void **)((long)this + 0x20) == null) goto LAB_033786a0;
		 *     fVar29 = (float)uStack_b0;
		 *     fStack_f0 = uStack_b0._4_4_;
		 *     fVar21 = *(float *)((long)this + 0x68);
		 *     fVar23 = *(float *)((long)this + 0x6c);
		 *     fVar24 = *(float *)((long)this + 0x70);
		 *     pvVar9 = UnityEngine.Component.get_transform(*(void **)((long)this + 0x20));
		 *     if (pvVar9 == null) goto LAB_033786a0;
		 *     UVar37 = UnityEngine.Transform.get_position(pvVar9);
		 *     if (*(void **)((long)this + 0x20) == null) goto LAB_033786a0;
		 *     fVar36 = *(float *)((long)this + 0x68);
		 *     fVar34 = *(float *)((long)this + 0x6c);
		 *     fVar22 = *(float *)((long)this + 0x70);
		 *     pvVar9 = UnityEngine.Component.get_transform(*(void **)((long)this + 0x20));
		 *     if (pvVar9 == null) goto LAB_033786a0;
		 *     UVar38 = UnityEngine.Transform.get_position(pvVar9);
		 *     fVar30 = *(float *)((long)this + 0x68);
		 *     fVar31 = *(float *)((long)this + 0x6c);
		 *     fVar35 = *(float *)((long)this + 0x70);
		 *     if (cRam000000000754a89e == '\0') {
		 *       func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
		 *       cRam000000000754a89e = '\x01';
		 *     }
		 *     if (*(int *)(*(long *)typeinfo_ptr_mscorlib_Math_6FC0738 + 0xe4) == 0) {
		 *       func_0x031fde08();
		 *     }
		 *     if (*(void **)((long)this + 0x20) == null) goto LAB_033786a0;
		 *     fVar29 = fVar29 - fVar21;
		 *     fStack_f0 = fStack_f0 - fVar23;
		 *     fVar19 = fVar28 - fVar24;
		 *     fVar28 = fVar29 + (UVar38.x - fVar30);
		 *     fVar31 = fStack_f0 + (UVar38.y - fVar31);
		 *     fVar35 = fVar19 + (UVar38.z - fVar35);
		 *     fVar30 = UnityEngine.SphereCollider.get_radius(*(void **)((long)this + 0x20));
		 *     fVar32 = *(float *)((long)this + 0xa4);
		 *     iVar8 = UnityEngine.LayerMask.get_value((void *)((long)this + 0x10c));
		 *     if (*(int *)(*(long *)typeinfo_ptr_UnityEngine_PhysicsModule_Physics_6FC09E8 + 0xe4) == 0) {
		 *       func_0x031fde08(*(long *)typeinfo_ptr_UnityEngine_PhysicsModule_Physics_6FC09E8);
		 *     }
		 *     uVar11 = Physics.Raycast(fVar21,fVar23,fVar24,fVar29 + (UVar37.x - fVar36),fStack_f0 + (UVar37.y - fVar34),fVar19 + (UVar37.z - fVar22),SQRT(fVar28 * fVar28 + fVar31 * fVar31 + fVar35 * fVar35) +
		 *                         fVar30 * fVar32 * _UNK_0134ea08,&uStack_e0,iVar8,0);
		 *     if ((uVar11 & 1) != 0) {
		 *       if (*(void **)((long)this + 0x20) == null) goto LAB_033786a0;
		 *       fVar29 = *(float *)((long)this + 0x68);
		 *       fStack_f0 = *(float *)((long)this + 0x6c);
		 *       fVar19 = *(float *)((long)this + 0x70);
		 *       pvVar9 = UnityEngine.Component.get_transform(*(void **)((long)this + 0x20));
		 *       if (pvVar9 == null) goto LAB_033786a0;
		 *       UVar37 = UnityEngine.Transform.get_position(pvVar9);
		 *       fVar29 = fVar29 - UVar37.x;
		 *       fStack_f0 = fStack_f0 - UVar37.y;
		 *       fVar19 = fVar19 - UVar37.z;
		 *     }
		 *   }
		 *   if (cRam000000000754a7ce == '\0') {
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08);
		 *     cRam000000000754a7ce = '\x01';
		 *   }
		 *   pfVar18 = *(float **)(*(long *)puVar4 + 0xb8);
		 *   if (_UNK_0134e4ac <=
		 *       (fVar19 - pfVar18[2]) * (fVar19 - pfVar18[2]) +
		 *       (fVar29 - *pfVar18) * (fVar29 - *pfVar18) +
		 *       (fStack_f0 - pfVar18[1]) * (fStack_f0 - pfVar18[1])) {
		 *     pvVar9 = UnityEngine.Component.get_transform(this);
		 *     pvVar10 = UnityEngine.Component.get_transform(this);
		 *     if (pvVar10 == null) goto LAB_033786a0;
		 *     UVar37 = UnityEngine.Transform.get_position(pvVar10);
		 *     if (pvVar9 == null) goto LAB_033786a0;
		 *     UVar41.z = fVar19 + UVar37.z;
		 *     UVar41.x = fVar29 + UVar37.x;
		 *     UVar41.y = fStack_f0 + UVar37.y;
		 *     UnityEngine.Transform.set_position(pvVar9,UVar41);
		 *   }
		 *   if ((*(void **)((long)this + 0x20) == null) ||
		 *      (pvVar9 = UnityEngine.Component.get_transform(*(void **)((long)this + 0x20)), pvVar9 == null))
		 *   goto LAB_033786a0;
		 *   UVar37 = UnityEngine.Transform.get_position(pvVar9);
		 *   *(float *)((long)this + 0x68) = UVar37.x;
		 *   *(float *)((long)this + 0x6c) = UVar37.y;
		 *   *(float *)((long)this + 0x70) = UVar37.z;
		 *   UVar37 = Player.CurrentLeftHandPosition(this);
		 *   movementVector.x = UVar37.x - ((UnityEngine_Vector3 *)((long)this + 0x50))->x;
		 *   movementVector.y = UVar37.y - *(float *)((long)this + 0x54);
		 *   movementVector.z = UVar37.z - *(float *)((long)this + 0x58);
		 *   if (bVar5) {
		 *     if (!bVar6) {
		 * LAB_03377f24:
		 *       bVar12 = *(byte *)((long)this + 0x111);
		 *       goto LAB_03377f28;
		 *     }
		 *     bVar12 = 0;
		 *   }
		 *   else {
		 *     bVar12 = *(byte *)((long)this + 0x110);
		 *     if (!bVar6 && bVar12 != 0) goto LAB_03377f24;
		 * LAB_03377f28:
		 *     bVar12 = bVar12 ^ 1;
		 *   }
		 *   bVar7 = Player.IterativeCollisionSphereCast(this,*(UnityEngine_Vector3 *)((long)this + 0x50),*(float *)((long)this + 0x9c),movementVector,*(float *)((long)this + 0xa4),in_stack_fffffffffffffed0,SUB81(&uStack_b0,0));
		 *   if (bVar7) {
		 *     bVar5 = true;
		 *     *(undefined8 *)pfVar16 = uStack_b0;
		 *     *(float *)((long)this + 0x58) = afStack_a8[0];
		 *     pvVar9 = methodInfo_04;
		 *   }
		 *   else {
		 *     UVar37 = Player.CurrentLeftHandPosition(this);
		 *     *(float *)((long)this + 0x50) = UVar37.x;
		 *     *(float *)((long)this + 0x54) = UVar37.y;
		 *     *(float *)((long)this + 0x58) = UVar37.z;
		 *     pvVar9 = extraout_x1_02;
		 *   }
		 *   UVar37 = Player.CurrentRightHandPosition(this);
		 *   movementVector_00.x = UVar37.x - ((UnityEngine_Vector3 *)((long)this + 0x5c))->x;
		 *   movementVector_00.y = UVar37.y - *(float *)((long)this + 0x60);
		 *   movementVector_00.z = UVar37.z - *(float *)((long)this + 100);
		 *   if (bVar5 == false) {
		 *     bVar12 = *(byte *)((long)this + 0x110);
		 *     if (!bVar6 && bVar12 != 0) goto LAB_03377fc0;
		 * LAB_03377fc4:
		 *     bVar12 = bVar12 ^ 1;
		 *   }
		 *   else {
		 *     if (!bVar6) {
		 * LAB_03377fc0:
		 *       bVar12 = *(byte *)((long)this + 0x111);
		 *       goto LAB_03377fc4;
		 *     }
		 *     bVar12 = 0;
		 *   }
		 *   bVar7 = Player.IterativeCollisionSphereCast(this,*(UnityEngine_Vector3 *)((long)this + 0x5c),*(float *)((long)this + 0x9c),movementVector_00,*(float *)((long)this + 0xa4),in_stack_fffffffffffffed0,SUB81(&uStack_b0,0));
		 *   if (bVar7) {
		 *     *(undefined8 *)pfVar17 = uStack_b0;
		 *     *(float *)((long)this + 100) = afStack_a8[0];
		 *     Player.StoreVelocities(this);
		 *     bVar6 = true;
		 *     pvVar9 = extraout_x1_03;
		 * LAB_03378020:
		 *     if (*(char *)((long)this + 0x112) == '\0') {
		 *       if (cRam000000000754a89e == '\0') {
		 *         func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
		 *         cRam000000000754a89e = '\x01';
		 *         pvVar9 = extraout_x1_05;
		 *       }
		 *       puVar3 = typeinfo_ptr_mscorlib_Math_6FC0738;
		 *       fVar28 = *(float *)((long)this + 0xd8);
		 *       uVar33 = *(undefined8 *)((long)this + 0xdc);
		 *       if (*(int *)(*(long *)typeinfo_ptr_mscorlib_Math_6FC0738 + 0xe4) == 0) {
		 *         func_0x031fde08();
		 *         pvVar9 = extraout_x1_06;
		 *       }
		 *       fVar29 = (float)uVar33;
		 *       fVar19 = (float)((ulong)uVar33 >> 0x20);
		 *       if (*(float *)((long)this + 0x8c) < SQRT(fVar28 * fVar28 + fVar29 * fVar29 + fVar19 * fVar19))
		 *       {
		 *         if (cRam000000000754a89e == '\0') {
		 *           func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
		 *           cRam000000000754a89e = '\x01';
		 *         }
		 *         fVar28 = *(float *)((long)this + 0xd8);
		 *         uVar33 = *(undefined8 *)((long)this + 0xdc);
		 *         if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
		 *           func_0x031fde08();
		 *         }
		 *         fVar19 = (float)uVar33;
		 *         fVar23 = (float)((ulong)uVar33 >> 0x20);
		 *         pvVar9 = *(void **)((long)this + 0x78);
		 *         fVar29 = *(float *)((long)this + 0x98);
		 *         if (SQRT(fVar28 * fVar28 + fVar19 * fVar19 + fVar23 * fVar23) * fVar29 <=
		 *             *(float *)((long)this + 0x90)) {
		 *           if (pvVar9 == null) goto LAB_033786a0;
		 *           fVar28 = fVar29 * *(float *)((long)this + 0xe0);
		 *           uVar33 = CONCAT44(fVar29,fVar29);
		 *           uVar25 = *(undefined8 *)((long)this + 0xd8);
		 *         }
		 *         else {
		 *           uVar33 = *(undefined8 *)((long)this + 0xd8);
		 *           fVar28 = *(float *)((long)this + 0xe0);
		 *           if (cRam000000000754a7cc == '\0') {
		 *             func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
		 *             cRam000000000754a7cc = '\x01';
		 *           }
		 *           if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
		 *             func_0x031fde08();
		 *           }
		 *           fVar19 = (float)uVar33;
		 *           fVar23 = (float)((ulong)uVar33 >> 0x20);
		 *           fVar29 = SQRT(fVar28 * fVar28 + fVar19 * fVar19 + fVar23 * fVar23);
		 *           if (fVar29 <= _UNK_0134eeec) {
		 *             if (cRam000000000754a7ce == '\0') {
		 *               func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08);
		 *               cRam000000000754a7ce = '\x01';
		 *             }
		 *             uVar33 = **(undefined8 **)(*(long *)puVar4 + 0xb8);
		 *             fVar28 = *(float *)(*(undefined8 **)(*(long *)puVar4 + 0xb8) + 1);
		 *           }
		 *           else {
		 *             fVar28 = fVar28 / fVar29;
		 *             uVar33 = CONCAT44(fVar23 / fVar29,fVar19 / fVar29);
		 *           }
		 *           if (pvVar9 == null) goto LAB_033786a0;
		 *           fVar29 = *(float *)((long)this + 0x90);
		 *           fVar28 = fVar28 * fVar29;
		 *           uVar25 = CONCAT44(fVar29,fVar29);
		 *         }
		 *         UVar37.x = (float)uVar33 * (float)uVar25;
		 *         UVar37.y = (float)((ulong)uVar33 >> 0x20) * (float)((ulong)uVar25 >> 0x20);
		 *         UVar37.z = fVar28;
		 *         UnityEngine.Rigidbody.set_linearVelocity(pvVar9,UVar37);
		 *         pvVar9 = extraout_x1_07;
		 *       }
		 *     }
		 *   }
		 *   else {
		 *     UVar37 = Player.CurrentRightHandPosition(this);
		 *     *(float *)((long)this + 0x5c) = UVar37.x;
		 *     *(float *)((long)this + 0x60) = UVar37.y;
		 *     *(float *)((long)this + 100) = UVar37.z;
		 *     Player.StoreVelocities(this);
		 *     pvVar9 = extraout_x1_04;
		 *     if (bVar6 || bVar5 != false) goto LAB_03378020;
		 *     bVar6 = false;
		 *   }
		 *   Player.UpdateJumpMultiplier(this);
		 *   pvVar9 = methodInfo_07;
		 *   if (bVar5 == false) {
		 * joined_r0x033783f0:
		 *     uVar15 = 0;
		 *     uVar14 = 0;
		 *     if (bVar6 != false) goto LAB_033783f4;
		 * LAB_0337861c:
		 *     uVar15 = uVar14;
		 *     uVar14 = 0;
		 *   }
		 *   else {
		 *     UVar37 = Player.CurrentLeftHandPosition(this);
		 *     fVar19 = *(float *)((long)this + 0x50);
		 *     fVar29 = *(float *)((long)this + 0x54);
		 *     fVar28 = *(float *)((long)this + 0x58);
		 *     pvVar9 = extraout_x1_08;
		 *     if (cRam000000000754a89e == '\0') {
		 *       func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
		 *       cRam000000000754a89e = '\x01';
		 *       pvVar9 = extraout_x1_09;
		 *     }
		 *     puVar4 = typeinfo_ptr_mscorlib_Math_6FC0738;
		 *     fVar19 = UVar37.x - fVar19;
		 *     fVar29 = UVar37.y - fVar29;
		 *     fVar28 = UVar37.z - fVar28;
		 *     if (*(int *)(*(long *)typeinfo_ptr_mscorlib_Math_6FC0738 + 0xe4) == 0) {
		 *       func_0x031fde08();
		 *       pvVar9 = extraout_x1_10;
		 *     }
		 *     if (*(float *)((long)this + 0x88) < SQRT(fVar19 * fVar19 + fVar29 * fVar29 + fVar28 * fVar28)) {
		 *       if ((*(void **)((long)this + 0x20) == null) ||
		 *          (pvVar9 = UnityEngine.Component.get_transform(*(void **)((long)this + 0x20)), pvVar9 == null))
		 *       goto LAB_033786a0;
		 *       UVar37 = UnityEngine.Transform.get_position(pvVar9);
		 *       fVar28 = *(float *)((long)this + 0x9c);
		 *       fVar29 = *(float *)((long)this + 0xa4);
		 *       UVar38 = Player.CurrentLeftHandPosition(this);
		 *       if ((*(void **)((long)this + 0x20) == null) ||
		 *          (pvVar9 = UnityEngine.Component.get_transform(*(void **)((long)this + 0x20)), pvVar9 == null))
		 *       goto LAB_033786a0;
		 *       UVar39 = UnityEngine.Transform.get_position(pvVar9);
		 *       UVar40 = Player.CurrentLeftHandPosition(this);
		 *       if ((*(void **)((long)this + 0x20) == null) ||
		 *          (pvVar9 = UnityEngine.Component.get_transform(*(void **)((long)this + 0x20)), pvVar9 == null))
		 *       goto LAB_033786a0;
		 *       UVar41 = UnityEngine.Transform.get_position(pvVar9);
		 *       if (cRam000000000754a89e == '\0') {
		 *         func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
		 *         cRam000000000754a89e = '\x01';
		 *       }
		 *       fVar23 = UVar40.x - UVar41.x;
		 *       fVar24 = UVar40.y - UVar41.y;
		 *       fVar19 = UVar40.z - UVar41.z;
		 *       if (*(int *)(*(long *)puVar4 + 0xe4) == 0) {
		 *         func_0x031fde08();
		 *       }
		 *       fVar21 = *(float *)((long)this + 0x9c);
		 *       iVar8 = UnityEngine.LayerMask.get_value((void *)((long)this + 0x10c));
		 *       if (*(int *)(*(long *)typeinfo_ptr_UnityEngine_PhysicsModule_Physics_6FC09E8 + 0xe4) == 0) {
		 *         func_0x031fde08(*(long *)typeinfo_ptr_UnityEngine_PhysicsModule_Physics_6FC09E8);
		 *       }
		 *       auVar42 = Physics.SphereCast(UVar37.x,UVar37.y,UVar37.z,fVar28 * fVar29,UVar38.x - UVar39.x,UVar38.y - UVar39.y,UVar38.z - UVar39.z,SQRT(fVar19 * fVar19 + fVar23 * fVar23 + fVar24 * fVar24) - fVar21,&uStack_e0,iVar8,0);
		 *       pvVar9 = auVar42._8_8_;
		 *       if ((auVar42._0_8_ & 1) == 0) {
		 *         UVar37 = Player.CurrentLeftHandPosition(this);
		 *         *(float *)((long)this + 0x50) = UVar37.x;
		 *         *(float *)((long)this + 0x54) = UVar37.y;
		 *         *(float *)((long)this + 0x58) = UVar37.z;
		 *         pvVar9 = extraout_x1_11;
		 *         goto joined_r0x033783f0;
		 *       }
		 *     }
		 *     uVar15 = 1;
		 *     uVar14 = uVar15;
		 *     if (bVar6 == false) goto LAB_0337861c;
		 * LAB_033783f4:
		 *     UVar37 = Player.CurrentRightHandPosition(this);
		 *     fVar19 = *(float *)((long)this + 0x5c);
		 *     fVar29 = *(float *)((long)this + 0x60);
		 *     fVar28 = *(float *)((long)this + 100);
		 *     if (cRam000000000754a89e == '\0') {
		 *       func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
		 *       cRam000000000754a89e = '\x01';
		 *     }
		 *     puVar4 = typeinfo_ptr_mscorlib_Math_6FC0738;
		 *     fVar19 = UVar37.x - fVar19;
		 *     fVar29 = UVar37.y - fVar29;
		 *     fVar28 = UVar37.z - fVar28;
		 *     if (*(int *)(*(long *)typeinfo_ptr_mscorlib_Math_6FC0738 + 0xe4) == 0) {
		 *       func_0x031fde08();
		 *     }
		 *     if (*(float *)((long)this + 0x88) < SQRT(fVar19 * fVar19 + fVar29 * fVar29 + fVar28 * fVar28)) {
		 *       if ((*(void **)((long)this + 0x20) == null) ||
		 *          (pvVar9 = UnityEngine.Component.get_transform(*(void **)((long)this + 0x20)), pvVar9 == null))
		 *       goto LAB_033786a0;
		 *       UVar37 = UnityEngine.Transform.get_position(pvVar9);
		 *       fVar28 = *(float *)((long)this + 0x9c);
		 *       fVar29 = *(float *)((long)this + 0xa4);
		 *       UVar38 = Player.CurrentRightHandPosition(this);
		 *       if ((*(void **)((long)this + 0x20) == null) ||
		 *          (pvVar9 = UnityEngine.Component.get_transform(*(void **)((long)this + 0x20)), pvVar9 == null))
		 *       goto LAB_033786a0;
		 *       UVar39 = UnityEngine.Transform.get_position(pvVar9);
		 *       UVar40 = Player.CurrentRightHandPosition(this);
		 *       if ((*(void **)((long)this + 0x20) == null) ||
		 *          (pvVar9 = UnityEngine.Component.get_transform(*(void **)((long)this + 0x20)), pvVar9 == null))
		 *       goto LAB_033786a0;
		 *       UVar41 = UnityEngine.Transform.get_position(pvVar9);
		 *       if (cRam000000000754a89e == '\0') {
		 *         func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
		 *         cRam000000000754a89e = '\x01';
		 *       }
		 *       fVar23 = UVar40.x - UVar41.x;
		 *       fVar24 = UVar40.y - UVar41.y;
		 *       fVar19 = UVar40.z - UVar41.z;
		 *       if (*(int *)(*(long *)puVar4 + 0xe4) == 0) {
		 *         func_0x031fde08();
		 *       }
		 *       fVar21 = *(float *)((long)this + 0x9c);
		 *       iVar8 = UnityEngine.LayerMask.get_value((void *)((long)this + 0x10c));
		 *       if (*(int *)(*(long *)typeinfo_ptr_UnityEngine_PhysicsModule_Physics_6FC09E8 + 0xe4) == 0) {
		 *         func_0x031fde08(*(long *)typeinfo_ptr_UnityEngine_PhysicsModule_Physics_6FC09E8);
		 *       }
		 *       auVar42 = Physics.SphereCast(UVar37.x,UVar37.y,UVar37.z,fVar28 * fVar29,UVar38.x - UVar39.x,UVar38.y - UVar39.y,UVar38.z - UVar39.z,SQRT(fVar19 * fVar19 + fVar23 * fVar23 + fVar24 * fVar24) - fVar21,&uStack_e0,iVar8,0);
		 *       if ((auVar42._0_8_ & 1) != 0) goto LAB_033785fc;
		 *       UVar37 = Player.CurrentRightHandPosition(this);
		 *       uVar14 = 0;
		 *       *(float *)((long)this + 0x5c) = UVar37.x;
		 *       *(float *)((long)this + 0x60) = UVar37.y;
		 *       *(float *)((long)this + 100) = UVar37.z;
		 *     }
		 *     else {
		 * LAB_033785fc:
		 *       uVar14 = 1;
		 *     }
		 *   }
		 *   if (*(void **)((long)this + 0x30) != null) {
		 *     UnityEngine.Transform.set_position(*(void **)((long)this + 0x30),*(UnityEngine_Vector3 *)((long)this + 0x50));
		 *     if (*(void **)((long)this + 0x38) != null) {
		 *       UnityEngine.Transform.set_position(*(void **)((long)this + 0x38),*(UnityEngine_Vector3 *)((long)this + 0x5c));
		 *       *(undefined1 *)((long)this + 0x110) = uVar15;
		 *       *(undefined1 *)((long)this + 0x111) = uVar14;
		 *       return;
		 *     }
		 *   }
		 * LAB_033786a0:
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x3278C24 VA: 0x7818963C24
		private void UpdateJumpMultiplier();
		/*
		 *   void *extraout_x1;
		 *   float fVar1;
		 *   float fVar2;
		 *   float fVar3;
		 *   float fVar4;
		 *   float fVar5;
		 *   undefined8 uVar6;
		 *   float fVar7;
		 *
		 *   if (*(char *)((long)this + 0xa8) != '\0') {
		 *     if (cRam000000000754a89e == '\0') {
		 *       func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
		 *       cRam000000000754a89e = '\x01';
		 *       methodInfo = extraout_x1;
		 *     }
		 *     fVar5 = *(float *)((long)this + 0xd8);
		 *     uVar6 = *(undefined8 *)((long)this + 0xdc);
		 *     if (*(int *)(*(long *)typeinfo_ptr_mscorlib_Math_6FC0738 + 0xe4) == 0) {
		 *       func_0x031fde08(*(long *)typeinfo_ptr_mscorlib_Math_6FC0738,methodInfo);
		 *     }
		 *     fVar3 = (float)uVar6;
		 *     fVar4 = (float)((ulong)uVar6 >> 0x20);
		 *     fVar2 = *(float *)((long)this + 0x90) * 0.5;
		 *     fVar5 = SQRT(fVar5 * fVar5 + fVar3 * fVar3 + fVar4 * fVar4);
		 *     if (fVar5 <= fVar2) {
		 *       fVar2 = *(float *)((long)this + 0x118);
		 *       fVar5 = UnityEngine.Time.get_deltaTime();
		 *       fVar2 = fVar2 + fVar5;
		 *       *(float *)((long)this + 0x118) = fVar2;
		 *       if (fVar2 < *(float *)((long)this + 0xac)) {
		 *         return;
		 *       }
		 *       fVar4 = *(float *)((long)this + 0x94);
		 *       fVar3 = *(float *)((long)this + 0x98);
		 *       fVar7 = *(float *)((long)this + 0xb0);
		 *       fVar5 = UnityEngine.Time.get_deltaTime();
		 *       fVar2 = fVar7 * fVar5;
		 *       fVar5 = -(fVar7 * fVar5);
		 *       if (0.0 <= fVar4 - fVar3) {
		 *         fVar5 = fVar2;
		 *       }
		 *       fVar5 = fVar3 + fVar5;
		 *       if (ABS(fVar4 - fVar3) <= fVar2) {
		 *         fVar5 = fVar4;
		 *       }
		 *     }
		 *     else {
		 *       *(undefined4 *)((long)this + 0x118) = 0;
		 *       fVar4 = *(float *)((long)this + 0x90) * *(float *)((long)this + 0xb8);
		 *       fVar3 = 0.0;
		 *       if (fVar2 != fVar4) {
		 *         fVar2 = (fVar5 - fVar2) / (fVar4 - fVar2);
		 *         fVar5 = 1.0;
		 *         if (fVar2 <= 1.0) {
		 *           fVar5 = fVar2;
		 *         }
		 *         fVar3 = 0.0;
		 *         if (0.0 <= fVar2) {
		 *           fVar3 = fVar5;
		 *         }
		 *       }
		 *       fVar5 = 0.0;
		 *       if (0.0 <= fVar3) {
		 *         fVar5 = fVar3;
		 *       }
		 *       fVar2 = 1.0;
		 *       if (fVar5 <= 1.0) {
		 *         fVar2 = fVar5;
		 *       }
		 *       fVar2 = fVar2 * fVar2 * 3.0 - fVar2 * fVar2 * (fVar2 + fVar2);
		 *       fVar2 = fVar2 + (1.0 - fVar2) * 0.0;
		 *       fVar3 = *(float *)((long)this + 0x94);
		 *       fVar4 = *(float *)((long)this + 0x98);
		 *       fVar5 = 1.0;
		 *       if (fVar2 <= 1.0) {
		 *         fVar5 = fVar2;
		 *       }
		 *       fVar7 = 0.0;
		 *       if (0.0 <= fVar2) {
		 *         fVar7 = fVar5;
		 *       }
		 *       fVar2 = UnityEngine.Time.get_deltaTime();
		 *       fVar2 = fVar2 * *(float *)((long)this + 0xb4);
		 *       fVar5 = 1.0;
		 *       if (fVar2 <= 1.0) {
		 *         fVar5 = fVar2;
		 *       }
		 *       fVar1 = 0.0;
		 *       if (0.0 <= fVar2) {
		 *         fVar1 = fVar5;
		 *       }
		 *       fVar5 = fVar4 + fVar1 * ((fVar3 + ((fVar3 + fVar3) - fVar3) * fVar7) - fVar4);
		 *     }
		 *     *(float *)((long)this + 0x98) = fVar5;
		 *   }
		 *   return;
		 */
		// RVA: 0x32786A4 VA: 0x78189636A4
		private bool IterativeCollisionSphereCast(UnityEngine.Vector3 startPosition, float sphereRadius, UnityEngine.Vector3 movementVector, float precision, UnityEngine.Vector3& endPosition, bool singleHand);
		/*
		 *   undefined *puVar1;
		 *   undefined *puVar2;
		 *   ulong uVar3;
		 *   void *pvVar4;
		 *   long lVar5;
		 *   float *pfVar6;
		 *   float *pfVar7;
		 *   undefined8 *puVar8;
		 *   float fVar9;
		 *   float fVar10;
		 *   float fVar11;
		 *   float fVar12;
		 *   float fVar13;
		 *   float fVar14;
		 *   float fVar15;
		 *   float fVar16;
		 *   float fVar17;
		 *   float fVar18;
		 *   float fVar19;
		 *   float fVar20;
		 *   float fVar21;
		 *   UnityEngine_Vector3 UVar22;
		 *   undefined8 uStack_b0;
		 *   undefined8 uStack_a8;
		 *   undefined8 uStack_a0;
		 *   undefined4 uStack_98;
		 *   undefined4 uStack_94;
		 *   undefined4 uStack_90;
		 *   undefined8 uStack_8c;
		 *
		 *   fVar16 = movementVector.z;
		 *   fVar21 = movementVector.y;
		 *   fVar17 = movementVector.x;
		 *   fVar15 = startPosition.z;
		 *   fVar13 = startPosition.y;
		 *   fVar11 = startPosition.x;
		 *   pfVar6 = (float *)(ulong)singleHand;
		 *   if ((bRam000000000754ac36 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c56c8);
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8);
		 *     bRam000000000754ac36 = 1;
		 *   }
		 *   fVar18 = sphereRadius * precision;
		 *   uStack_8c = 0;
		 *   uStack_90 = 0;
		 *   uStack_a8 = 0;
		 *   uStack_b0 = 0;
		 *   uStack_98 = 0;
		 *   uStack_94 = 0;
		 *   uStack_a0 = 0;
		 *   uVar3 = Player.CollisionsSphereCast(fVar11,fVar13,fVar15,fVar18,fVar17,fVar21,fVar16,precision,this,pfVar6,&uStack_b0);
		 *   if ((uVar3 & 1) == 0) {
		 *     if (cRam000000000754a7cc == '\0') {
		 *       func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
		 *       cRam000000000754a7cc = '\x01';
		 *     }
		 *     puVar1 = typeinfo_ptr_mscorlib_Math_6FC0738;
		 *     if (*(int *)(*(long *)typeinfo_ptr_mscorlib_Math_6FC0738 + 0xe4) == 0) {
		 *       func_0x031fde08();
		 *     }
		 *     puVar2 = typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08;
		 *     fVar9 = SQRT(fVar16 * fVar16 + fVar17 * fVar17 + fVar21 * fVar21);
		 *     if (fVar9 <= _UNK_0134eeec) {
		 *       if (cRam000000000754a7ce == '\0') {
		 *         func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08);
		 *         cRam000000000754a7ce = '\x01';
		 *       }
		 *       pfVar7 = *(float **)(*(long *)puVar2 + 0xb8);
		 *       fVar17 = *pfVar7;
		 *       fVar21 = pfVar7[1];
		 *       fVar16 = pfVar7[2];
		 *     }
		 *     else {
		 *       fVar17 = fVar17 / fVar9;
		 *       fVar21 = fVar21 / fVar9;
		 *       fVar16 = fVar16 / fVar9;
		 *     }
		 *     if (cRam000000000754a89e == '\0') {
		 *       func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
		 *       cRam000000000754a89e = '\x01';
		 *     }
		 *     if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *       func_0x031fde08();
		 *     }
		 *     fVar9 = fVar18 * _UNK_0134e6a8 + fVar9;
		 *     uVar3 = Player.CollisionsSphereCast(fVar11,fVar13,fVar15,fVar18 * _UNK_0134e848,fVar9 * fVar17,fVar9 * fVar21,fVar9 * fVar16,precision * _UNK_0134e848,this,pfVar6,&uStack_b0);
		 *     if ((uVar3 & 1) == 0) {
		 *       if (cRam000000000754a7ce == '\0') {
		 *         func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08);
		 *         cRam000000000754a7ce = '\x01';
		 *       }
		 *       puVar8 = *(undefined8 **)(*(long *)puVar2 + 0xb8);
		 *       fVar11 = *(float *)(puVar8 + 1);
		 *       *(undefined8 *)pfVar6 = *puVar8;
		 *       pfVar6[2] = fVar11;
		 *       return false;
		 *     }
		 *     *pfVar6 = fVar11;
		 *     pfVar6[1] = fVar13;
		 *     pfVar6[2] = fVar15;
		 *     return true;
		 *   }
		 *   fVar19 = *pfVar6;
		 *   fVar18 = pfVar6[1];
		 *   fVar9 = pfVar6[2];
		 *   pvVar4 = UnityEngine.RaycastHit.get_collider(&uStack_b0);
		 *   if (pvVar4 == null) {
		 * LAB_03378af8:
		 *     IL2CPP.ThrowNullReferenceException();
		 *   }
		 *   lVar5 = func_0x0373df50(pvVar4,*(undefined8 *)PTR_DAT_070c56c8);
		 *   if (*(int *)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8 + 0xe4) == 0) {
		 *     func_0x031fde08(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8);
		 *   }
		 *   uVar3 = UnityEngine.Object.op_Inequality(lVar5,null);
		 *   if ((uVar3 & 1) == 0) {
		 *     fVar20 = _UNK_0134ef58;
		 *     if (((ulong)methodInfo & 1) != 0) goto LAB_0337896c;
		 *     pfVar7 = (float *)((long)this + 0xa0);
		 *   }
		 *   else {
		 *     if (lVar5 == 0) goto LAB_03378af8;
		 *     pfVar7 = (float *)(lVar5 + 0x20);
		 *   }
		 *   fVar20 = *pfVar7;
		 * LAB_0337896c:
		 *   UVar22 = UnityEngine.RaycastHit.get_normal(&uStack_b0);
		 *   fVar14 = UVar22.z;
		 *   fVar12 = UVar22.y;
		 *   fVar10 = UVar22.x;
		 *   if (cRam000000000754a95d == '\0') {
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Mathf_6FC2698);
		 *     cRam000000000754a95d = '\x01';
		 *   }
		 *   fVar15 = (fVar15 + fVar16) - fVar9;
		 *   fVar16 = fVar14 * fVar14 + fVar10 * fVar10 + fVar12 * fVar12;
		 *   fVar11 = (fVar11 + fVar17) - fVar19;
		 *   fVar13 = (fVar13 + fVar21) - fVar18;
		 *   if (**(float **)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Mathf_6FC2698 + 0xb8) <= fVar16) {
		 *     fVar17 = fVar15 * fVar14 + fVar11 * fVar10 + fVar13 * fVar12;
		 *     fVar11 = fVar11 - (fVar10 * fVar17) / fVar16;
		 *     fVar13 = fVar13 - (fVar12 * fVar17) / fVar16;
		 *     fVar15 = fVar15 - (fVar14 * fVar17) / fVar16;
		 *   }
		 *   uVar3 = Player.CollisionsSphereCast(*pfVar6,pfVar6[1],pfVar6[2],sphereRadius,fVar20 * fVar11,fVar20 * fVar13,fVar20 * fVar15,precision * precision,this,pfVar6,&uStack_b0);
		 *   if (((uVar3 & 1) == 0) &&
		 *      (uVar3 = Player.CollisionsSphereCast(this,pfVar6,&uStack_b0),
		 *      (uVar3 & 1) == 0)) {
		 *     *pfVar6 = fVar19;
		 *     pfVar6[1] = fVar18;
		 *     pfVar6[2] = fVar9;
		 *   }
		 *   return true;
		 */
		// RVA: 0x3278DE8 VA: 0x7818963DE8
		private bool CollisionsSphereCast(UnityEngine.Vector3 startPosition, float sphereRadius, UnityEngine.Vector3 movementVector, float precision, UnityEngine.Vector3& finalPosition, UnityEngine.RaycastHit& hitInfo);
		/*
		 *   undefined *puVar1;
		 *   undefined *puVar2;
		 *   char cVar3;
		 *   int iVar4;
		 *   ulong uVar5;
		 *   undefined8 uVar6;
		 *   float fVar7;
		 *   float fVar8;
		 *   float fVar9;
		 *   float fVar10;
		 *   float fVar11;
		 *   float fVar12;
		 *   UnityEngine_Vector3 UVar13;
		 *   UnityEngine_Vector3 UVar14;
		 *   undefined8 uStack_b0;
		 *   undefined8 uStack_a8;
		 *   undefined8 uStack_a0;
		 *   undefined4 uStack_98;
		 *   undefined4 uStack_94;
		 *   undefined4 uStack_90;
		 *   undefined8 uStack_8c;
		 *
		 *   if ((bRam000000000754ac37 & 1) == 0) {
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_PhysicsModule_Physics_6FC09E8);
		 *     bRam000000000754ac37 = 1;
		 *   }
		 *   uStack_8c = 0;
		 *   uStack_90 = 0;
		 *   uStack_a8 = 0;
		 *   uStack_b0 = 0;
		 *   uStack_98 = 0;
		 *   uStack_94 = 0;
		 *   uStack_a0 = 0;
		 *   if (cRam000000000754a89e == '\0') {
		 *     func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
		 *     cRam000000000754a89e = '\x01';
		 *   }
		 *   puVar2 = typeinfo_ptr_UnityEngine_PhysicsModule_Physics_6FC09E8;
		 *   puVar1 = typeinfo_ptr_mscorlib_Math_6FC0738;
		 *   if (*(int *)(*(long *)typeinfo_ptr_mscorlib_Math_6FC0738 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *   }
		 *   fVar12 = SQRT(param_7 * param_7 + param_5 * param_5 + param_6 * param_6);
		 *   iVar4 = UnityEngine.LayerMask.get_value((void *)(param_9 + 0x10c));
		 *   if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
		 *     func_0x031fde08(*(long *)puVar2);
		 *   }
		 *   fVar11 = param_4 * param_8;
		 *   uVar5 = Physics.SphereCast(param_1,param_2,param_3,fVar11,param_5,param_6,param_7,(1.0 - param_8) * param_4 + fVar12,param_11,iVar4,0);
		 *   fVar7 = (float)param_2;
		 *   fVar8 = (float)param_1;
		 *   if ((uVar5 & 1) == 0) {
		 *     if (cRam000000000754a89e == '\0') {
		 *       func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
		 *       cRam000000000754a89e = '\x01';
		 *     }
		 *     if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *       func_0x031fde08();
		 *     }
		 *     iVar4 = UnityEngine.LayerMask.get_value((void *)(param_9 + 0x10c));
		 *     if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
		 *       func_0x031fde08(*(long *)puVar2);
		 *     }
		 *     uVar5 = Physics.Raycast(param_1,param_2,param_3,param_5,param_6,param_7,fVar11 * _UNK_0134ea08 + fVar12,param_11,iVar4,0);
		 *     if ((uVar5 & 1) == 0) {
		 *       if (cRam000000000754a7ce == '\0') {
		 *         func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08);
		 *         cRam000000000754a7ce = '\x01';
		 *       }
		 *       uVar6 = 0;
		 *       fVar12 = *(float *)(*(undefined8 **)
		 *                            (*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 + 0xb8) + 1
		 *                          );
		 *       *(undefined8 *)param_10 =
		 *            **(undefined8 **)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 + 0xb8);
		 *       param_10[2] = fVar12;
		 *     }
		 *     else {
		 *       uVar6 = 1;
		 *       param_10[2] = param_3;
		 *       *param_10 = fVar8;
		 *       param_10[1] = fVar7;
		 *     }
		 *   }
		 *   else {
		 *     UVar13 = UnityEngine.RaycastHit.get_point(param_11);
		 *     UVar14 = UnityEngine.RaycastHit.get_normal(param_11);
		 *     cVar3 = cRam000000000754a89e;
		 *     fVar12 = UVar13.x + UVar14.x * param_4;
		 *     fVar9 = UVar13.y + UVar14.y * param_4;
		 *     fVar10 = UVar13.z + UVar14.z * param_4;
		 *     *param_10 = fVar12;
		 *     param_10[1] = fVar9;
		 *     param_10[2] = fVar10;
		 *     if (cVar3 == '\0') {
		 *       func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
		 *       cRam000000000754a89e = '\x01';
		 *     }
		 *     fVar10 = fVar10 - param_3;
		 *     fVar12 = fVar12 - fVar8;
		 *     fVar9 = fVar9 - fVar7;
		 *     if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *       func_0x031fde08();
		 *     }
		 *     iVar4 = UnityEngine.LayerMask.get_value((void *)(param_9 + 0x10c));
		 *     if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
		 *       func_0x031fde08(*(long *)puVar2);
		 *     }
		 *     param_4 = (1.0 - param_8 * param_8) * param_4;
		 *     uVar5 = Physics.SphereCast(param_1,param_2,param_3,fVar11 * param_8,fVar12,fVar9,fVar10,param_4 + SQRT(fVar10 * fVar10 + fVar12 * fVar12 + fVar9 * fVar9),&uStack_b0,iVar4,0);
		 *     fVar10 = param_10[2] - param_3;
		 *     fVar12 = (float)*(undefined8 *)param_10 - fVar8;
		 *     fVar9 = (float)((ulong)*(undefined8 *)param_10 >> 0x20) - fVar7;
		 *     if ((uVar5 & 1) == 0) {
		 *       if (cRam000000000754a89e == '\0') {
		 *         func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
		 *         cRam000000000754a89e = '\x01';
		 *       }
		 *       if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *         func_0x031fde08();
		 *       }
		 *       iVar4 = UnityEngine.LayerMask.get_value((void *)(param_9 + 0x10c));
		 *       if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
		 *         func_0x031fde08(*(long *)puVar2);
		 *       }
		 *       uVar5 = Physics.Raycast(param_1,param_2,param_3,CONCAT44(fVar9,fVar12),fVar9,fVar10,fVar11 * param_8 * _UNK_0134ea08 +
		 *                          SQRT(fVar12 * fVar12 + fVar9 * fVar9 + fVar10 * fVar10),&uStack_b0,iVar4,0)
		 *       ;
		 *       if ((uVar5 & 1) != 0) {
		 *         param_10[2] = param_3;
		 *         *param_10 = fVar8;
		 *         param_10[1] = fVar7;
		 *         param_11[1] = uStack_a8;
		 *         *param_11 = uStack_b0;
		 *         param_11[3] = CONCAT44(uStack_94,uStack_98);
		 *         param_11[2] = uStack_a0;
		 *         *(undefined8 *)((long)param_11 + 0x24) = uStack_8c;
		 *         *(ulong *)((long)param_11 + 0x1c) = CONCAT44(uStack_90,uStack_94);
		 *         return 1;
		 *       }
		 *     }
		 *     else {
		 *       if (cRam000000000754a7cc == '\0') {
		 *         func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
		 *         cRam000000000754a7cc = '\x01';
		 *       }
		 *       if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *         func_0x031fde08();
		 *       }
		 *       fVar11 = SQRT(fVar10 * fVar10 + fVar12 * fVar12 + fVar9 * fVar9);
		 *       if (fVar11 <= _UNK_0134eeec) {
		 *         if (cRam000000000754a7ce == '\0') {
		 *           func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08);
		 *           cRam000000000754a7ce = '\x01';
		 *         }
		 *         uVar6 = **(undefined8 **)
		 *                   (*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 + 0xb8);
		 *         fVar10 = *(float *)(*(undefined8 **)
		 *                              (*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 + 0xb8) +
		 *                            1);
		 *       }
		 *       else {
		 *         fVar10 = fVar10 / fVar11;
		 *         uVar6 = CONCAT44(fVar9 / fVar11,fVar12 / fVar11);
		 *       }
		 *       fVar11 = UnityEngine.RaycastHit.get_distance(param_11);
		 *       fVar11 = fVar11 - param_4;
		 *       fVar12 = 0.0;
		 *       if (0.0 <= fVar11) {
		 *         fVar12 = fVar11;
		 *       }
		 *       *(ulong *)param_10 =
		 *            CONCAT44(fVar7 + (float)((ulong)uVar6 >> 0x20) * fVar12,fVar8 + (float)uVar6 * fVar12);
		 *       param_10[2] = param_3 + fVar10 * fVar12;
		 *       *(undefined8 *)((long)param_11 + 0x24) = uStack_8c;
		 *       *(ulong *)((long)param_11 + 0x1c) = CONCAT44(uStack_90,uStack_94);
		 *       param_11[1] = uStack_a8;
		 *       *param_11 = uStack_b0;
		 *       param_11[3] = CONCAT44(uStack_94,uStack_98);
		 *       param_11[2] = uStack_a0;
		 *     }
		 *     uVar6 = 1;
		 *   }
		 *   return uVar6;
		 */
		// RVA: 0x3279314 VA: 0x7818964314
		public bool IsHandTouching(bool forLeftHand);
		/*
		 *   long lVar1;
		 *
		 *   lVar1 = 0x110;
		 *   if (!forLeftHand) {
		 *     lVar1 = 0x111;
		 *   }
		 *   return (bool)*(undefined1 *)((long)this + lVar1);
		 */
		// RVA: 0x3279328 VA: 0x7818964328
		public void Turn(float degrees);
		/*
		 *   undefined1 auVar1 [12];
		 *   undefined1 auVar2 [12];
		 *   void *this_00;
		 *   void *pvVar3;
		 *   long lVar4;
		 *   long lVar5;
		 *   ulong uVar6;
		 *   long lVar7;
		 *   float fVar8;
		 *   UnityEngine_Vector3 UVar9;
		 *   UnityEngine_Vector3 axis;
		 *   UnityEngine_Vector4 UVar10;
		 *
		 *   this_00 = UnityEngine.Component.get_transform(this);
		 *   if ((*(void **)((long)this + 0x20) != null) &&
		 *      (pvVar3 = UnityEngine.Component.get_transform(*(void **)((long)this + 0x20)), pvVar3 != null)) {
		 *     UVar9 = UnityEngine.Transform.get_position(pvVar3);
		 *     pvVar3 = UnityEngine.Component.get_transform(this);
		 *     if ((pvVar3 != null) &&
		 *        (axis = UnityEngine.Transform.get_up(pvVar3),
		 *        this_00 != null)) {
		 *       UnityEngine.Transform.RotateAround(this_00,UVar9,axis,degrees);
		 *       fVar8 = degrees * _UNK_0134ef54;
		 *       auVar1._4_8_ = 0;
		 *       auVar1._0_4_ = fVar8;
		 *       UVar10 = UnityEngine.Quaternion.Internal_FromEulerRad((UnityEngine_Vector3)(auVar1 << 0x20));
		 *       UVar9 = UnityEngine.Quaternion.op_Multiply(UVar10,*(UnityEngine_Vector3 *)((long)this + 0xd8));
		 *       lVar5 = *(long *)((long)this + 0xc0);
		 *       *(float *)((long)this + 0xd8) = UVar9.x;
		 *       *(float *)((long)this + 0xdc) = UVar9.y;
		 *       *(float *)((long)this + 0xe0) = UVar9.z;
		 *       if (lVar5 != 0) {
		 *         lVar7 = 0;
		 *         uVar6 = 0;
		 *         do {
		 *           if ((long)*(int *)(lVar5 + 0x18) <= (long)uVar6) {
		 *             return;
		 *           }
		 *           auVar2._4_8_ = 0;
		 *           auVar2._0_4_ = fVar8;
		 *           UVar10 = UnityEngine.Quaternion.Internal_FromEulerRad((UnityEngine_Vector3)(auVar2 << 0x20));
		 *           lVar4 = *(long *)((long)this + 0xc0);
		 *           if (lVar4 == 0) break;
		 *           if (*(uint *)(lVar4 + 0x18) <= uVar6) {
		 * LAB_03379494:
		 *             IL2CPP.ThrowIndexOutOfRangeException();
		 *           }
		 *           UVar9 = UnityEngine.Quaternion.op_Multiply(UVar10,*(UnityEngine_Vector3 *)(lVar4 + lVar7 + 0x20));
		 *           if (*(uint *)(lVar5 + 0x18) <= uVar6) goto LAB_03379494;
		 *           lVar5 = lVar5 + lVar7;
		 *           lVar7 = lVar7 + 0xc;
		 *           uVar6 = uVar6 + 1;
		 *           *(float *)(lVar5 + 0x20) = UVar9.x;
		 *           *(float *)(lVar5 + 0x24) = UVar9.y;
		 *           *(float *)(lVar5 + 0x28) = UVar9.z;
		 *           lVar5 = *(long *)((long)this + 0xc0);
		 *         } while (lVar5 != 0);
		 *       }
		 *     }
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x3278AFC VA: 0x7818963AFC
		private void StoreVelocities();
		/*
		 *   int iVar1;
		 *   int iVar2;
		 *   uint uVar3;
		 *   int iVar4;
		 *   void *pvVar5;
		 *   long lVar6;
		 *   float fVar7;
		 *   float fVar8;
		 *   float fVar9;
		 *   float fVar10;
		 *   undefined8 uVar11;
		 *   float fVar12;
		 *   undefined8 uVar13;
		 *   UnityEngine_Vector3 UVar14;
		 *
		 *   iVar2 = *(int *)((long)this + 0x80);
		 *   iVar1 = *(int *)((long)this + 200) + 1;
		 *   iVar4 = 0;
		 *   if (iVar2 != 0) {
		 *     iVar4 = iVar1 / iVar2;
		 *   }
		 *   uVar3 = iVar1 - iVar4 * iVar2;
		 *   lVar6 = *(long *)((long)this + 0xc0);
		 *   *(uint *)((long)this + 200) = uVar3;
		 *   if (lVar6 != 0) {
		 *     if (*(uint *)(lVar6 + 0x18) <= uVar3) {
		 * LAB_03378c20:
		 *       IL2CPP.ThrowIndexOutOfRangeException();
		 *     }
		 *     lVar6 = lVar6 + (long)(int)uVar3 * 0xc;
		 *     uVar13 = *(undefined8 *)(lVar6 + 0x20);
		 *     fVar12 = *(float *)(lVar6 + 0x28);
		 *     pvVar5 = UnityEngine.Component.get_transform(this);
		 *     if (pvVar5 != null) {
		 *       UVar14 = UnityEngine.Transform.get_position(pvVar5);
		 *       uVar11 = *(undefined8 *)((long)this + 0xe8);
		 *       fVar8 = *(float *)((long)this + 0xf0);
		 *       fVar7 = UnityEngine.Time.get_deltaTime();
		 *       fVar8 = (UVar14.z - fVar8) / fVar7;
		 *       lVar6 = *(long *)((long)this + 0xc0);
		 *       fVar10 = (float)*(int *)((long)this + 0x80);
		 *       fVar9 = (UVar14.x - (float)uVar11) / fVar7;
		 *       fVar7 = (UVar14.y - (float)((ulong)uVar11 >> 0x20)) / fVar7;
		 *       *(float *)((long)this + 0xd4) = fVar8;
		 *       *(ulong *)((long)this + 0xcc) = CONCAT44(fVar7,fVar9);
		 *       *(ulong *)((long)this + 0xd8) =
		 *            CONCAT44((float)((ulong)*(undefined8 *)((long)this + 0xd8) >> 0x20) +
		 *                     (fVar7 - (float)((ulong)uVar13 >> 0x20)) / fVar10,
		 *                     (float)*(undefined8 *)((long)this + 0xd8) + (fVar9 - (float)uVar13) / fVar10);
		 *       *(float *)((long)this + 0xe0) = *(float *)((long)this + 0xe0) + (fVar8 - fVar12) / fVar10;
		 *       if (lVar6 != 0) {
		 *         if (*(uint *)(lVar6 + 0x18) <= *(uint *)((long)this + 200)) goto LAB_03378c20;
		 *         lVar6 = lVar6 + (long)(int)*(uint *)((long)this + 200) * 0xc;
		 *         *(float *)(lVar6 + 0x20) = fVar9;
		 *         *(float *)(lVar6 + 0x24) = fVar7;
		 *         *(float *)(lVar6 + 0x28) = fVar8;
		 *         pvVar5 = UnityEngine.Component.get_transform(this);
		 *         if (pvVar5 != null) {
		 *           UVar14 = UnityEngine.Transform.get_position(pvVar5);
		 *           *(float *)((long)this + 0xe8) = UVar14.x;
		 *           *(float *)((long)this + 0xec) = UVar14.y;
		 *           *(float *)((long)this + 0xf0) = UVar14.z;
		 *           return;
		 *         }
		 *       }
		 *     }
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x3279498 VA: 0x7818964498
		public void .ctor();
		/*
		 *   undefined8 uVar1;
		 *   undefined8 uVar2;
		 *   undefined *puVar3;
		 *
		 *   *(undefined8 *)((long)this + 0x84) = _UNK_0134d410;
		 *   uVar2 = _UNK_0134bf28;
		 *   uVar1 = _UNK_0134bf20;
		 *   *(undefined4 *)((long)this + 0xa4) = 0x3f7eb852;
		 *   *(undefined8 *)((long)this + 0x9c) = uVar2;
		 *   *(undefined8 *)((long)this + 0x94) = uVar1;
		 *   uVar2 = _UNK_0134a788;
		 *   uVar1 = _UNK_0134a780;
		 *   *(undefined1 *)((long)this + 0xa8) = 1;
		 *   *(undefined8 *)((long)this + 0xb4) = uVar2;
		 *   *(undefined8 *)((long)this + 0xac) = uVar1;
		 *   puVar3 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
		 *   if ((bRam000000000755f76f & 1) == 0) {
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8,0);
		 *     bRam000000000755f76f = 1;
		 *   }
		 *   if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *   }
		 *   return;
		 */
	}
}
