context: 
  #if CSHotFix
  using System;
  using System.Collections.Generic;
  using System.Reflection;
  using System.Runtime.InteropServices;
  
  using CSHotFix.CLR.TypeSystem;
  using CSHotFix.CLR.Method;
  using CSHotFix.Runtime.Enviorment;
  using CSHotFix.Runtime.Intepreter;
  using CSHotFix.Runtime.Stack;
  using CSHotFix.Reflection;
  using CSHotFix.CLR.Utils;
  using System.Linq;
  namespace CSHotFix.Runtime.Generated
  {
      unsafe class UnityEngine_Vector3_Binding
      {
          public static void Register(CSHotFix.Runtime.Enviorment.AppDomain app)
          {
              BindingFlags flag = BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static | BindingFlags.DeclaredOnly;
              MethodBase method;
              FieldInfo field;
              Type[] args;
              Type type = typeof(UnityEngine.Vector3);
              args = new Type[]{typeof(UnityEngine.Vector3), typeof(UnityEngine.Vector3), typeof(System.Single)};
              method = type.GetMethod("Slerp", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, Slerp_0);
              args = new Type[]{typeof(UnityEngine.Vector3), typeof(UnityEngine.Vector3), typeof(System.Single)};
              method = type.GetMethod("SlerpUnclamped", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, SlerpUnclamped_1);
              args = new Type[]{typeof(UnityEngine.Vector3).MakeByRefType(), typeof(UnityEngine.Vector3).MakeByRefType()};
              method = type.GetMethod("OrthoNormalize", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, OrthoNormalize_2);
              args = new Type[]{typeof(UnityEngine.Vector3).MakeByRefType(), typeof(UnityEngine.Vector3).MakeByRefType(), typeof(UnityEngine.Vector3).MakeByRefType()};
              method = type.GetMethod("OrthoNormalize", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, OrthoNormalize_3);
              args = new Type[]{typeof(UnityEngine.Vector3), typeof(UnityEngine.Vector3), typeof(System.Single), typeof(System.Single)};
              method = type.GetMethod("RotateTowards", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, RotateTowards_4);
              args = new Type[]{typeof(UnityEngine.Vector3), typeof(UnityEngine.Vector3), typeof(System.Single)};
              method = type.GetMethod("Lerp", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, Lerp_5);
              args = new Type[]{typeof(UnityEngine.Vector3), typeof(UnityEngine.Vector3), typeof(System.Single)};
              method = type.GetMethod("LerpUnclamped", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, LerpUnclamped_6);
              args = new Type[]{typeof(UnityEngine.Vector3), typeof(UnityEngine.Vector3), typeof(System.Single)};
              method = type.GetMethod("MoveTowards", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, MoveTowards_7);
              args = new Type[]{typeof(UnityEngine.Vector3), typeof(UnityEngine.Vector3), typeof(UnityEngine.Vector3).MakeByRefType(), typeof(System.Single), typeof(System.Single)};
              method = type.GetMethod("SmoothDamp", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, SmoothDamp_8);
              args = new Type[]{typeof(UnityEngine.Vector3), typeof(UnityEngine.Vector3), typeof(UnityEngine.Vector3).MakeByRefType(), typeof(System.Single)};
              method = type.GetMethod("SmoothDamp", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, SmoothDamp_9);
              args = new Type[]{typeof(UnityEngine.Vector3), typeof(UnityEngine.Vector3), typeof(UnityEngine.Vector3).MakeByRefType(), typeof(System.Single), typeof(System.Single), typeof(System.Single)};
              method = type.GetMethod("SmoothDamp", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, SmoothDamp_10);
              args = new Type[]{typeof(System.Int32)};
              method = type.GetMethod("get_Item", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, get_Item_11);
              args = new Type[]{typeof(System.Int32), typeof(System.Single)};
              method = type.GetMethod("set_Item", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, set_Item_12);
              args = new Type[]{typeof(System.Single), typeof(System.Single), typeof(System.Single)};
              method = type.GetMethod("Set", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, Set_13);
              args = new Type[]{typeof(UnityEngine.Vector3), typeof(UnityEngine.Vector3)};
              method = type.GetMethod("Scale", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, Scale_14);
              args = new Type[]{typeof(UnityEngine.Vector3)};
              method = type.GetMethod("Scale", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, Scale_15);
              args = new Type[]{typeof(UnityEngine.Vector3), typeof(UnityEngine.Vector3)};
              method = type.GetMethod("Cross", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, Cross_16);
              args = new Type[]{};
              method = type.GetMethod("GetHashCode", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, GetHashCode_17);
              args = new Type[]{typeof(System.Object)};
              method = type.GetMethod("Equals", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, Equals_18);
              args = new Type[]{typeof(UnityEngine.Vector3)};
              method = type.GetMethod("Equals", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, Equals_19);
              args = new Type[]{typeof(UnityEngine.Vector3), typeof(UnityEngine.Vector3)};
              method = type.GetMethod("Reflect", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, Reflect_20);
              args = new Type[]{typeof(UnityEngine.Vector3)};
              method = type.GetMethod("Normalize", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, Normalize_21);
              args = new Type[]{};
              method = type.GetMethod("Normalize", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, Normalize_22);
              args = new Type[]{};
              method = type.GetMethod("get_normalized", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, get_normalized_23);
              args = new Type[]{typeof(UnityEngine.Vector3), typeof(UnityEngine.Vector3)};
              method = type.GetMethod("Dot", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, Dot_24);
              args = new Type[]{typeof(UnityEngine.Vector3), typeof(UnityEngine.Vector3)};
              method = type.GetMethod("Project", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, Project_25);
              args = new Type[]{typeof(UnityEngine.Vector3), typeof(UnityEngine.Vector3)};
              method = type.GetMethod("ProjectOnPlane", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, ProjectOnPlane_26);
              args = new Type[]{typeof(UnityEngine.Vector3), typeof(UnityEngine.Vector3)};
              method = type.GetMethod("Angle", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, Angle_27);
              args = new Type[]{typeof(UnityEngine.Vector3), typeof(UnityEngine.Vector3), typeof(UnityEngine.Vector3)};
              method = type.GetMethod("SignedAngle", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, SignedAngle_28);
              args = new Type[]{typeof(UnityEngine.Vector3), typeof(UnityEngine.Vector3)};
              method = type.GetMethod("Distance", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, Distance_29);
              args = new Type[]{typeof(UnityEngine.Vector3), typeof(System.Single)};
              method = type.GetMethod("ClampMagnitude", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, ClampMagnitude_30);
              args = new Type[]{typeof(UnityEngine.Vector3)};
              method = type.GetMethod("Magnitude", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, Magnitude_31);
              args = new Type[]{};
              method = type.GetMethod("get_magnitude", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, get_magnitude_32);
              args = new Type[]{typeof(UnityEngine.Vector3)};
              method = type.GetMethod("SqrMagnitude", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, SqrMagnitude_33);
              args = new Type[]{};
              method = type.GetMethod("get_sqrMagnitude", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, get_sqrMagnitude_34);
              args = new Type[]{typeof(UnityEngine.Vector3), typeof(UnityEngine.Vector3)};
              method = type.GetMethod("Min", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, Min_35);
              args = new Type[]{typeof(UnityEngine.Vector3), typeof(UnityEngine.Vector3)};
              method = type.GetMethod("Max", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, Max_36);
              args = new Type[]{};
              method = type.GetMethod("get_zero", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, get_zero_37);
              args = new Type[]{};
              method = type.GetMethod("get_one", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, get_one_38);
              args = new Type[]{};
              method = type.GetMethod("get_forward", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, get_forward_39);
              args = new Type[]{};
              method = type.GetMethod("get_back", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, get_back_40);
              args = new Type[]{};
              method = type.GetMethod("get_up", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, get_up_41);
              args = new Type[]{};
              method = type.GetMethod("get_down", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, get_down_42);
              args = new Type[]{};
              method = type.GetMethod("get_left", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, get_left_43);
              args = new Type[]{};
              method = type.GetMethod("get_right", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, get_right_44);
              args = new Type[]{};
              method = type.GetMethod("get_positiveInfinity", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, get_positiveInfinity_45);
              args = new Type[]{};
              method = type.GetMethod("get_negativeInfinity", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, get_negativeInfinity_46);
              args = new Type[]{typeof(UnityEngine.Vector3), typeof(UnityEngine.Vector3)};
              method = type.GetMethod("op_Addition", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, op_Addition_47);
              args = new Type[]{typeof(UnityEngine.Vector3), typeof(UnityEngine.Vector3)};
              method = type.GetMethod("op_Subtraction", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, op_Subtraction_48);
              args = new Type[]{typeof(UnityEngine.Vector3)};
              method = type.GetMethod("op_UnaryNegation", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, op_UnaryNegation_49);
              args = new Type[]{typeof(UnityEngine.Vector3), typeof(System.Single)};
              method = type.GetMethod("op_Multiply", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, op_Multiply_50);
              args = new Type[]{typeof(System.Single), typeof(UnityEngine.Vector3)};
              method = type.GetMethod("op_Multiply", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, op_Multiply_51);
              args = new Type[]{typeof(UnityEngine.Vector3), typeof(System.Single)};
              method = type.GetMethod("op_Division", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, op_Division_52);
              args = new Type[]{typeof(UnityEngine.Vector3), typeof(UnityEngine.Vector3)};
              method = type.GetMethod("op_Equality", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, op_Equality_53);
              args = new Type[]{typeof(UnityEngine.Vector3), typeof(UnityEngine.Vector3)};
              method = type.GetMethod("op_Inequality", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, op_Inequality_54);
              args = new Type[]{};
              method = type.GetMethod("ToString", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, ToString_55);
              args = new Type[]{typeof(System.String)};
              method = type.GetMethod("ToString", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, ToString_56);
  
              field = type.GetField("kEpsilon", flag);
              app.RegisterCLRFieldGetter(field, get_kEpsilon_0);
              field = type.GetField("kEpsilonNormalSqrt", flag);
              app.RegisterCLRFieldGetter(field, get_kEpsilonNormalSqrt_1);
              field = type.GetField("x", flag);
              app.RegisterCLRFieldGetter(field, get_x_2);
              app.RegisterCLRFieldSetter(field, set_x_2);
              field = type.GetField("y", flag);
              app.RegisterCLRFieldGetter(field, get_y_3);
              app.RegisterCLRFieldSetter(field, set_y_3);
              field = type.GetField("z", flag);
              app.RegisterCLRFieldGetter(field, get_z_4);
              app.RegisterCLRFieldSetter(field, set_z_4);
  
              app.RegisterCLRMemberwiseClone(type, PerformMemberwiseClone);
  
              app.RegisterCLRCreateDefaultInstance(type, () => new UnityEngine.Vector3());
              app.RegisterCLRCreateArrayInstance(type, s => new UnityEngine.Vector3[s]);
  
              args = new Type[]{typeof(System.Single), typeof(System.Single), typeof(System.Single)};
              method = type.GetConstructor(flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, Ctor_0);
              args = new Type[]{typeof(System.Single), typeof(System.Single)};
              method = type.GetConstructor(flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, Ctor_1);
  
          }
  
          static void WriteBackInstance(CSHotFix.Runtime.Enviorment.AppDomain __domain, StackObject* ptr_of_this_method, IList<object> __mStack, ref UnityEngine.Vector3 instance_of_this_method)
          {
              ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
              switch(ptr_of_this_method->ObjectType)
              {
                  case ObjectTypes.Object:
                      {
                          __mStack[ptr_of_this_method->Value] = instance_of_this_method;
                      }
                      break;
                  case ObjectTypes.FieldReference:
                      {
                          var ___obj = __mStack[ptr_of_this_method->Value];
                          if(___obj is ILTypeInstance)
                          {
                              ((ILTypeInstance)___obj)[ptr_of_this_method->ValueLow] = instance_of_this_method;
                          }
                          else
                          {
                              var t = __domain.GetType(___obj.GetType()) as CLRType;
                              t.SetFieldValue(ptr_of_this_method->ValueLow, ref ___obj, instance_of_this_method);
                          }
                      }
                      break;
                  case ObjectTypes.StaticFieldReference:
                      {
                          var t = __domain.GetType(ptr_of_this_method->Value);
                          if(t is ILType)
                          {
                              ((ILType)t).StaticInstance[ptr_of_this_method->ValueLow] = instance_of_this_method;
                          }
                          else
                          {
                              ((CLRType)t).SetStaticFieldValue(ptr_of_this_method->ValueLow, instance_of_this_method);
                          }
                      }
                      break;
                   case ObjectTypes.ArrayReference:
                      {
                          var instance_of_arrayReference = __mStack[ptr_of_this_method->Value] as UnityEngine.Vector3[];
                          instance_of_arrayReference[ptr_of_this_method->ValueLow] = instance_of_this_method;
                      }
                      break;
              }
          }
  
          static StackObject* Slerp_0(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 3);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              System.Single @t = *(float*)&ptr_of_this_method->Value;
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              UnityEngine.Vector3 @b = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
              UnityEngine.Vector3 @a = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
  
              var result_of_this_method = UnityEngine.Vector3.Slerp(@a, @b, @t);
  
              return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
          }
  
          static StackObject* SlerpUnclamped_1(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 3);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              System.Single @t = *(float*)&ptr_of_this_method->Value;
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              UnityEngine.Vector3 @b = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
              UnityEngine.Vector3 @a = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
  
              var result_of_this_method = UnityEngine.Vector3.SlerpUnclamped(@a, @b, @t);
  
              return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
          }
  
          static StackObject* OrthoNormalize_2(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 2);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              UnityEngine.Vector3 @tangent = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(__intp.RetriveObject(ptr_of_this_method, __mStack));
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              UnityEngine.Vector3 @normal = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(__intp.RetriveObject(ptr_of_this_method, __mStack));
  
  
              UnityEngine.Vector3.OrthoNormalize(ref @normal, ref @tangent);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              switch(ptr_of_this_method->ObjectType)
              {
                  case ObjectTypes.StackObjectReference:
                      {
                          var ___dst = *(StackObject**)&ptr_of_this_method->Value;
                          object ___obj = @tangent;
                          if (___dst->ObjectType >= ObjectTypes.Object)
                          {
                              if (___obj is CrossBindingAdaptorType)
                                  ___obj = ((CrossBindingAdaptorType)___obj).ILInstance;
                              __mStack[___dst->Value] = ___obj;
                          }
                          else
                          {
                              ILIntepreter.UnboxObject(___dst, ___obj, __mStack, __domain);
                          }
                      }
                      break;
                  case ObjectTypes.FieldReference:
                      {
                          var ___obj = __mStack[ptr_of_this_method->Value];
                          if(___obj is ILTypeInstance)
                          {
                              ((ILTypeInstance)___obj)[ptr_of_this_method->ValueLow] = @tangent;
                          }
                          else
                          {
                              var ___type = __domain.GetType(___obj.GetType()) as CLRType;
                              ___type.SetFieldValue(ptr_of_this_method->ValueLow, ref ___obj, @tangent);
                          }
                      }
                      break;
                  case ObjectTypes.StaticFieldReference:
                      {
                          var ___type = __domain.GetType(ptr_of_this_method->Value);
                          if(___type is ILType)
                          {
                              ((ILType)___type).StaticInstance[ptr_of_this_method->ValueLow] = @tangent;
                          }
                          else
                          {
                              ((CLRType)___type).SetStaticFieldValue(ptr_of_this_method->ValueLow, @tangent);
                          }
                      }
                      break;
                   case ObjectTypes.ArrayReference:
                      {
                          var instance_of_arrayReference = __mStack[ptr_of_this_method->Value] as UnityEngine.Vector3[];
                          instance_of_arrayReference[ptr_of_this_method->ValueLow] = @tangent;
                      }
                      break;
              }
  
              __intp.Free(ptr_of_this_method);
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              switch(ptr_of_this_method->ObjectType)
              {
                  case ObjectTypes.StackObjectReference:
                      {
                          var ___dst = *(StackObject**)&ptr_of_this_method->Value;
                          object ___obj = @normal;
                          if (___dst->ObjectType >= ObjectTypes.Object)
                          {
                              if (___obj is CrossBindingAdaptorType)
                                  ___obj = ((CrossBindingAdaptorType)___obj).ILInstance;
                              __mStack[___dst->Value] = ___obj;
                          }
                          else
                          {
                              ILIntepreter.UnboxObject(___dst, ___obj, __mStack, __domain);
                          }
                      }
                      break;
                  case ObjectTypes.FieldReference:
                      {
                          var ___obj = __mStack[ptr_of_this_method->Value];
                          if(___obj is ILTypeInstance)
                          {
                              ((ILTypeInstance)___obj)[ptr_of_this_method->ValueLow] = @normal;
                          }
                          else
                          {
                              var ___type = __domain.GetType(___obj.GetType()) as CLRType;
                              ___type.SetFieldValue(ptr_of_this_method->ValueLow, ref ___obj, @normal);
                          }
                      }
                      break;
                  case ObjectTypes.StaticFieldReference:
                      {
                          var ___type = __domain.GetType(ptr_of_this_method->Value);
                          if(___type is ILType)
                          {
                              ((ILType)___type).StaticInstance[ptr_of_this_method->ValueLow] = @normal;
                          }
                          else
                          {
                              ((CLRType)___type).SetStaticFieldValue(ptr_of_this_method->ValueLow, @normal);
                          }
                      }
                      break;
                   case ObjectTypes.ArrayReference:
                      {
                          var instance_of_arrayReference = __mStack[ptr_of_this_method->Value] as UnityEngine.Vector3[];
                          instance_of_arrayReference[ptr_of_this_method->ValueLow] = @normal;
                      }
                      break;
              }
  
              __intp.Free(ptr_of_this_method);
              return __ret;
          }
  
          static StackObject* OrthoNormalize_3(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 3);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              UnityEngine.Vector3 @binormal = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(__intp.RetriveObject(ptr_of_this_method, __mStack));
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              UnityEngine.Vector3 @tangent = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(__intp.RetriveObject(ptr_of_this_method, __mStack));
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
              UnityEngine.Vector3 @normal = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(__intp.RetriveObject(ptr_of_this_method, __mStack));
  
  
              UnityEngine.Vector3.OrthoNormalize(ref @normal, ref @tangent, ref @binormal);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              switch(ptr_of_this_method->ObjectType)
              {
                  case ObjectTypes.StackObjectReference:
                      {
                          var ___dst = *(StackObject**)&ptr_of_this_method->Value;
                          object ___obj = @binormal;
                          if (___dst->ObjectType >= ObjectTypes.Object)
                          {
                              if (___obj is CrossBindingAdaptorType)
                                  ___obj = ((CrossBindingAdaptorType)___obj).ILInstance;
                              __mStack[___dst->Value] = ___obj;
                          }
                          else
                          {
                              ILIntepreter.UnboxObject(___dst, ___obj, __mStack, __domain);
                          }
                      }
                      break;
                  case ObjectTypes.FieldReference:
                      {
                          var ___obj = __mStack[ptr_of_this_method->Value];
                          if(___obj is ILTypeInstance)
                          {
                              ((ILTypeInstance)___obj)[ptr_of_this_method->ValueLow] = @binormal;
                          }
                          else
                          {
                              var ___type = __domain.GetType(___obj.GetType()) as CLRType;
                              ___type.SetFieldValue(ptr_of_this_method->ValueLow, ref ___obj, @binormal);
                          }
                      }
                      break;
                  case ObjectTypes.StaticFieldReference:
                      {
                          var ___type = __domain.GetType(ptr_of_this_method->Value);
                          if(___type is ILType)
                          {
                              ((ILType)___type).StaticInstance[ptr_of_this_method->ValueLow] = @binormal;
                          }
                          else
                          {
                              ((CLRType)___type).SetStaticFieldValue(ptr_of_this_method->ValueLow, @binormal);
                          }
                      }
                      break;
                   case ObjectTypes.ArrayReference:
                      {
                          var instance_of_arrayReference = __mStack[ptr_of_this_method->Value] as UnityEngine.Vector3[];
                          instance_of_arrayReference[ptr_of_this_method->ValueLow] = @binormal;
                      }
                      break;
              }
  
              __intp.Free(ptr_of_this_method);
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              switch(ptr_of_this_method->ObjectType)
              {
                  case ObjectTypes.StackObjectReference:
                      {
                          var ___dst = *(StackObject**)&ptr_of_this_method->Value;
                          object ___obj = @tangent;
                          if (___dst->ObjectType >= ObjectTypes.Object)
                          {
                              if (___obj is CrossBindingAdaptorType)
                                  ___obj = ((CrossBindingAdaptorType)___obj).ILInstance;
                              __mStack[___dst->Value] = ___obj;
                          }
                          else
                          {
                              ILIntepreter.UnboxObject(___dst, ___obj, __mStack, __domain);
                          }
                      }
                      break;
                  case ObjectTypes.FieldReference:
                      {
                          var ___obj = __mStack[ptr_of_this_method->Value];
                          if(___obj is ILTypeInstance)
                          {
                              ((ILTypeInstance)___obj)[ptr_of_this_method->ValueLow] = @tangent;
                          }
                          else
                          {
                              var ___type = __domain.GetType(___obj.GetType()) as CLRType;
                              ___type.SetFieldValue(ptr_of_this_method->ValueLow, ref ___obj, @tangent);
                          }
                      }
                      break;
                  case ObjectTypes.StaticFieldReference:
                      {
                          var ___type = __domain.GetType(ptr_of_this_method->Value);
                          if(___type is ILType)
                          {
                              ((ILType)___type).StaticInstance[ptr_of_this_method->ValueLow] = @tangent;
                          }
                          else
                          {
                              ((CLRType)___type).SetStaticFieldValue(ptr_of_this_method->ValueLow, @tangent);
                          }
                      }
                      break;
                   case ObjectTypes.ArrayReference:
                      {
                          var instance_of_arrayReference = __mStack[ptr_of_this_method->Value] as UnityEngine.Vector3[];
                          instance_of_arrayReference[ptr_of_this_method->ValueLow] = @tangent;
                      }
                      break;
              }
  
              __intp.Free(ptr_of_this_method);
              ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
              switch(ptr_of_this_method->ObjectType)
              {
                  case ObjectTypes.StackObjectReference:
                      {
                          var ___dst = *(StackObject**)&ptr_of_this_method->Value;
                          object ___obj = @normal;
                          if (___dst->ObjectType >= ObjectTypes.Object)
                          {
                              if (___obj is CrossBindingAdaptorType)
                                  ___obj = ((CrossBindingAdaptorType)___obj).ILInstance;
                              __mStack[___dst->Value] = ___obj;
                          }
                          else
                          {
                              ILIntepreter.UnboxObject(___dst, ___obj, __mStack, __domain);
                          }
                      }
                      break;
                  case ObjectTypes.FieldReference:
                      {
                          var ___obj = __mStack[ptr_of_this_method->Value];
                          if(___obj is ILTypeInstance)
                          {
                              ((ILTypeInstance)___obj)[ptr_of_this_method->ValueLow] = @normal;
                          }
                          else
                          {
                              var ___type = __domain.GetType(___obj.GetType()) as CLRType;
                              ___type.SetFieldValue(ptr_of_this_method->ValueLow, ref ___obj, @normal);
                          }
                      }
                      break;
                  case ObjectTypes.StaticFieldReference:
                      {
                          var ___type = __domain.GetType(ptr_of_this_method->Value);
                          if(___type is ILType)
                          {
                              ((ILType)___type).StaticInstance[ptr_of_this_method->ValueLow] = @normal;
                          }
                          else
                          {
                              ((CLRType)___type).SetStaticFieldValue(ptr_of_this_method->ValueLow, @normal);
                          }
                      }
                      break;
                   case ObjectTypes.ArrayReference:
                      {
                          var instance_of_arrayReference = __mStack[ptr_of_this_method->Value] as UnityEngine.Vector3[];
                          instance_of_arrayReference[ptr_of_this_method->ValueLow] = @normal;
                      }
                      break;
              }
  
              __intp.Free(ptr_of_this_method);
              return __ret;
          }
  
          static StackObject* RotateTowards_4(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 4);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              System.Single @maxMagnitudeDelta = *(float*)&ptr_of_this_method->Value;
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              System.Single @maxRadiansDelta = *(float*)&ptr_of_this_method->Value;
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
              UnityEngine.Vector3 @target = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 4);
              UnityEngine.Vector3 @current = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
  
              var result_of_this_method = UnityEngine.Vector3.RotateTowards(@current, @target, @maxRadiansDelta, @maxMagnitudeDelta);
  
              return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
          }
  
          static StackObject* Lerp_5(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 3);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              System.Single @t = *(float*)&ptr_of_this_method->Value;
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              UnityEngine.Vector3 @b = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
              UnityEngine.Vector3 @a = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
  
              var result_of_this_method = UnityEngine.Vector3.Lerp(@a, @b, @t);
  
              return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
          }
  
          static StackObject* LerpUnclamped_6(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 3);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              System.Single @t = *(float*)&ptr_of_this_method->Value;
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              UnityEngine.Vector3 @b = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
              UnityEngine.Vector3 @a = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
  
              var result_of_this_method = UnityEngine.Vector3.LerpUnclamped(@a, @b, @t);
  
              return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
          }
  
          static StackObject* MoveTowards_7(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 3);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              System.Single @maxDistanceDelta = *(float*)&ptr_of_this_method->Value;
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              UnityEngine.Vector3 @target = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
              UnityEngine.Vector3 @current = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
  
              var result_of_this_method = UnityEngine.Vector3.MoveTowards(@current, @target, @maxDistanceDelta);
  
              return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
          }
  
          static StackObject* SmoothDamp_8(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 5);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              System.Single @maxSpeed = *(float*)&ptr_of_this_method->Value;
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              System.Single @smoothTime = *(float*)&ptr_of_this_method->Value;
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
              UnityEngine.Vector3 @currentVelocity = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(__intp.RetriveObject(ptr_of_this_method, __mStack));
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 4);
              UnityEngine.Vector3 @target = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 5);
              UnityEngine.Vector3 @current = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
  
  
              var result_of_this_method = UnityEngine.Vector3.SmoothDamp(@current, @target, ref @currentVelocity, @smoothTime, @maxSpeed);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              __intp.Free(ptr_of_this_method);
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              __intp.Free(ptr_of_this_method);
              ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
              switch(ptr_of_this_method->ObjectType)
              {
                  case ObjectTypes.StackObjectReference:
                      {
                          var ___dst = *(StackObject**)&ptr_of_this_method->Value;
                          object ___obj = @currentVelocity;
                          if (___dst->ObjectType >= ObjectTypes.Object)
                          {
                              if (___obj is CrossBindingAdaptorType)
                                  ___obj = ((CrossBindingAdaptorType)___obj).ILInstance;
                              __mStack[___dst->Value] = ___obj;
                          }
                          else
                          {
                              ILIntepreter.UnboxObject(___dst, ___obj, __mStack, __domain);
                          }
                      }
                      break;
                  case ObjectTypes.FieldReference:
                      {
                          var ___obj = __mStack[ptr_of_this_method->Value];
                          if(___obj is ILTypeInstance)
                          {
                              ((ILTypeInstance)___obj)[ptr_of_this_method->ValueLow] = @currentVelocity;
                          }
                          else
                          {
                              var ___type = __domain.GetType(___obj.GetType()) as CLRType;
                              ___type.SetFieldValue(ptr_of_this_method->ValueLow, ref ___obj, @currentVelocity);
                          }
                      }
                      break;
                  case ObjectTypes.StaticFieldReference:
                      {
                          var ___type = __domain.GetType(ptr_of_this_method->Value);
                          if(___type is ILType)
                          {
                              ((ILType)___type).StaticInstance[ptr_of_this_method->ValueLow] = @currentVelocity;
                          }
                          else
                          {
                              ((CLRType)___type).SetStaticFieldValue(ptr_of_this_method->ValueLow, @currentVelocity);
                          }
                      }
                      break;
                   case ObjectTypes.ArrayReference:
                      {
                          var instance_of_arrayReference = __mStack[ptr_of_this_method->Value] as UnityEngine.Vector3[];
                          instance_of_arrayReference[ptr_of_this_method->ValueLow] = @currentVelocity;
                      }
                      break;
              }
  
              __intp.Free(ptr_of_this_method);
              ptr_of_this_method = ILIntepreter.Minus(__esp, 4);
              __intp.FreeStackValueType(ptr_of_this_method);
              __intp.Free(ptr_of_this_method);
              ptr_of_this_method = ILIntepreter.Minus(__esp, 5);
              __intp.FreeStackValueType(ptr_of_this_method);
              __intp.Free(ptr_of_this_method);
              return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
          }
  
          static StackObject* SmoothDamp_9(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 4);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              System.Single @smoothTime = *(float*)&ptr_of_this_method->Value;
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              UnityEngine.Vector3 @currentVelocity = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(__intp.RetriveObject(ptr_of_this_method, __mStack));
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
              UnityEngine.Vector3 @target = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 4);
              UnityEngine.Vector3 @current = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
  
  
              var result_of_this_method = UnityEngine.Vector3.SmoothDamp(@current, @target, ref @currentVelocity, @smoothTime);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              __intp.Free(ptr_of_this_method);
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              switch(ptr_of_this_method->ObjectType)
              {
                  case ObjectTypes.StackObjectReference:
                      {
                          var ___dst = *(StackObject**)&ptr_of_this_method->Value;
                          object ___obj = @currentVelocity;
                          if (___dst->ObjectType >= ObjectTypes.Object)
                          {
                              if (___obj is CrossBindingAdaptorType)
                                  ___obj = ((CrossBindingAdaptorType)___obj).ILInstance;
                              __mStack[___dst->Value] = ___obj;
                          }
                          else
                          {
                              ILIntepreter.UnboxObject(___dst, ___obj, __mStack, __domain);
                          }
                      }
                      break;
                  case ObjectTypes.FieldReference:
                      {
                          var ___obj = __mStack[ptr_of_this_method->Value];
                          if(___obj is ILTypeInstance)
                          {
                              ((ILTypeInstance)___obj)[ptr_of_this_method->ValueLow] = @currentVelocity;
                          }
                          else
                          {
                              var ___type = __domain.GetType(___obj.GetType()) as CLRType;
                              ___type.SetFieldValue(ptr_of_this_method->ValueLow, ref ___obj, @currentVelocity);
                          }
                      }
                      break;
                  case ObjectTypes.StaticFieldReference:
                      {
                          var ___type = __domain.GetType(ptr_of_this_method->Value);
                          if(___type is ILType)
                          {
                              ((ILType)___type).StaticInstance[ptr_of_this_method->ValueLow] = @currentVelocity;
                          }
                          else
                          {
                              ((CLRType)___type).SetStaticFieldValue(ptr_of_this_method->ValueLow, @currentVelocity);
                          }
                      }
                      break;
                   case ObjectTypes.ArrayReference:
                      {
                          var instance_of_arrayReference = __mStack[ptr_of_this_method->Value] as UnityEngine.Vector3[];
                          instance_of_arrayReference[ptr_of_this_method->ValueLow] = @currentVelocity;
                      }
                      break;
              }
  
              __intp.Free(ptr_of_this_method);
              ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
              __intp.FreeStackValueType(ptr_of_this_method);
              __intp.Free(ptr_of_this_method);
              ptr_of_this_method = ILIntepreter.Minus(__esp, 4);
              __intp.FreeStackValueType(ptr_of_this_method);
              __intp.Free(ptr_of_this_method);
              return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
          }
  
          static StackObject* SmoothDamp_10(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 6);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              System.Single @deltaTime = *(float*)&ptr_of_this_method->Value;
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              System.Single @maxSpeed = *(float*)&ptr_of_this_method->Value;
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
              System.Single @smoothTime = *(float*)&ptr_of_this_method->Value;
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 4);
              UnityEngine.Vector3 @currentVelocity = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(__intp.RetriveObject(ptr_of_this_method, __mStack));
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 5);
              UnityEngine.Vector3 @target = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 6);
              UnityEngine.Vector3 @current = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
  
  
              var result_of_this_method = UnityEngine.Vector3.SmoothDamp(@current, @target, ref @currentVelocity, @smoothTime, @maxSpeed, @deltaTime);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              __intp.Free(ptr_of_this_method);
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              __intp.Free(ptr_of_this_method);
              ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
              __intp.Free(ptr_of_this_method);
              ptr_of_this_method = ILIntepreter.Minus(__esp, 4);
              switch(ptr_of_this_method->ObjectType)
              {
                  case ObjectTypes.StackObjectReference:
                      {
                          var ___dst = *(StackObject**)&ptr_of_this_method->Value;
                          object ___obj = @currentVelocity;
                          if (___dst->ObjectType >= ObjectTypes.Object)
                          {
                              if (___obj is CrossBindingAdaptorType)
                                  ___obj = ((CrossBindingAdaptorType)___obj).ILInstance;
                              __mStack[___dst->Value] = ___obj;
                          }
                          else
                          {
                              ILIntepreter.UnboxObject(___dst, ___obj, __mStack, __domain);
                          }
                      }
                      break;
                  case ObjectTypes.FieldReference:
                      {
                          var ___obj = __mStack[ptr_of_this_method->Value];
                          if(___obj is ILTypeInstance)
                          {
                              ((ILTypeInstance)___obj)[ptr_of_this_method->ValueLow] = @currentVelocity;
                          }
                          else
                          {
                              var ___type = __domain.GetType(___obj.GetType()) as CLRType;
                              ___type.SetFieldValue(ptr_of_this_method->ValueLow, ref ___obj, @currentVelocity);
                          }
                      }
                      break;
                  case ObjectTypes.StaticFieldReference:
                      {
                          var ___type = __domain.GetType(ptr_of_this_method->Value);
                          if(___type is ILType)
                          {
                              ((ILType)___type).StaticInstance[ptr_of_this_method->ValueLow] = @currentVelocity;
                          }
                          else
                          {
                              ((CLRType)___type).SetStaticFieldValue(ptr_of_this_method->ValueLow, @currentVelocity);
                          }
                      }
                      break;
                   case ObjectTypes.ArrayReference:
                      {
                          var instance_of_arrayReference = __mStack[ptr_of_this_method->Value] as UnityEngine.Vector3[];
                          instance_of_arrayReference[ptr_of_this_method->ValueLow] = @currentVelocity;
                      }
                      break;
              }
  
              __intp.Free(ptr_of_this_method);
              ptr_of_this_method = ILIntepreter.Minus(__esp, 5);
              __intp.FreeStackValueType(ptr_of_this_method);
              __intp.Free(ptr_of_this_method);
              ptr_of_this_method = ILIntepreter.Minus(__esp, 6);
              __intp.FreeStackValueType(ptr_of_this_method);
              __intp.Free(ptr_of_this_method);
              return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
          }
  
          static StackObject* get_Item_11(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 2);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              System.Int32 @index = ptr_of_this_method->Value;
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
              UnityEngine.Vector3 instance_of_this_method = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
  
              var result_of_this_method = instance_of_this_method[index];
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              WriteBackInstance(__domain, ptr_of_this_method, __mStack, ref instance_of_this_method);
  
              __intp.Free(ptr_of_this_method);
              __ret->ObjectType = ObjectTypes.Float;
              *(float*)&__ret->Value = result_of_this_method;
              return __ret + 1;
          }
  
          static StackObject* set_Item_12(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 3);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              System.Single @value = *(float*)&ptr_of_this_method->Value;
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              System.Int32 @index = ptr_of_this_method->Value;
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
              ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
              UnityEngine.Vector3 instance_of_this_method = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
  
              instance_of_this_method[index] = value;
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
              WriteBackInstance(__domain, ptr_of_this_method, __mStack, ref instance_of_this_method);
  
              __intp.Free(ptr_of_this_method);
              return __ret;
          }
  
          static StackObject* Set_13(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 4);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              System.Single @newZ = *(float*)&ptr_of_this_method->Value;
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              System.Single @newY = *(float*)&ptr_of_this_method->Value;
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
              System.Single @newX = *(float*)&ptr_of_this_method->Value;
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 4);
              ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
              UnityEngine.Vector3 instance_of_this_method = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
  
              instance_of_this_method.Set(@newX, @newY, @newZ);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 4);
              WriteBackInstance(__domain, ptr_of_this_method, __mStack, ref instance_of_this_method);
  
              __intp.Free(ptr_of_this_method);
              return __ret;
          }
  
          static StackObject* Scale_14(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 2);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              UnityEngine.Vector3 @b = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              UnityEngine.Vector3 @a = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
  
              var result_of_this_method = UnityEngine.Vector3.Scale(@a, @b);
  
              return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
          }
  
          static StackObject* Scale_15(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 2);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              UnityEngine.Vector3 @scale = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
              UnityEngine.Vector3 instance_of_this_method = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
  
              instance_of_this_method.Scale(@scale);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              WriteBackInstance(__domain, ptr_of_this_method, __mStack, ref instance_of_this_method);
  
              __intp.Free(ptr_of_this_method);
              return __ret;
          }
  
          static StackObject* Cross_16(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 2);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              UnityEngine.Vector3 @rhs = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              UnityEngine.Vector3 @lhs = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
  
              var result_of_this_method = UnityEngine.Vector3.Cross(@lhs, @rhs);
  
              return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
          }
  
          static StackObject* GetHashCode_17(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 1);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
              UnityEngine.Vector3 instance_of_this_method = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
  
              var result_of_this_method = instance_of_this_method.GetHashCode();
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              WriteBackInstance(__domain, ptr_of_this_method, __mStack, ref instance_of_this_method);
  
              __intp.Free(ptr_of_this_method);
              __ret->ObjectType = ObjectTypes.Integer;
              __ret->Value = result_of_this_method;
              return __ret + 1;
          }
  
          static StackObject* Equals_18(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 2);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              System.Object @other = (System.Object)typeof(System.Object).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
              UnityEngine.Vector3 instance_of_this_method = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
  
              var result_of_this_method = instance_of_this_method.Equals(@other);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              WriteBackInstance(__domain, ptr_of_this_method, __mStack, ref instance_of_this_method);
  
              __intp.Free(ptr_of_this_method);
              __ret->ObjectType = ObjectTypes.Integer;
              __ret->Value = result_of_this_method ? 1 : 0;
              return __ret + 1;
          }
  
          static StackObject* Equals_19(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 2);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              UnityEngine.Vector3 @other = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
              UnityEngine.Vector3 instance_of_this_method = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
  
              var result_of_this_method = instance_of_this_method.Equals(@other);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              WriteBackInstance(__domain, ptr_of_this_method, __mStack, ref instance_of_this_method);
  
              __intp.Free(ptr_of_this_method);
              __ret->ObjectType = ObjectTypes.Integer;
              __ret->Value = result_of_this_method ? 1 : 0;
              return __ret + 1;
          }
  
          static StackObject* Reflect_20(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 2);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              UnityEngine.Vector3 @inNormal = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              UnityEngine.Vector3 @inDirection = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
  
              var result_of_this_method = UnityEngine.Vector3.Reflect(@inDirection, @inNormal);
  
              return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
          }
  
          static StackObject* Normalize_21(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 1);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              UnityEngine.Vector3 @value = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
  
              var result_of_this_method = UnityEngine.Vector3.Normalize(@value);
  
              return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
          }
  
          static StackObject* Normalize_22(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 1);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
              UnityEngine.Vector3 instance_of_this_method = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
  
              instance_of_this_method.Normalize();
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              WriteBackInstance(__domain, ptr_of_this_method, __mStack, ref instance_of_this_method);
  
              __intp.Free(ptr_of_this_method);
              return __ret;
          }
  
          static StackObject* get_normalized_23(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 1);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
              UnityEngine.Vector3 instance_of_this_method = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
  
              var result_of_this_method = instance_of_this_method.normalized;
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              WriteBackInstance(__domain, ptr_of_this_method, __mStack, ref instance_of_this_method);
  
              __intp.Free(ptr_of_this_method);
              return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
          }
  
          static StackObject* Dot_24(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 2);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              UnityEngine.Vector3 @rhs = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              UnityEngine.Vector3 @lhs = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
  
              var result_of_this_method = UnityEngine.Vector3.Dot(@lhs, @rhs);
  
              __ret->ObjectType = ObjectTypes.Float;
              *(float*)&__ret->Value = result_of_this_method;
              return __ret + 1;
          }
  
          static StackObject* Project_25(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 2);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              UnityEngine.Vector3 @onNormal = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              UnityEngine.Vector3 @vector = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
  
              var result_of_this_method = UnityEngine.Vector3.Project(@vector, @onNormal);
  
              return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
          }
  
          static StackObject* ProjectOnPlane_26(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 2);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              UnityEngine.Vector3 @planeNormal = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              UnityEngine.Vector3 @vector = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
  
              var result_of_this_method = UnityEngine.Vector3.ProjectOnPlane(@vector, @planeNormal);
  
              return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
          }
  
          static StackObject* Angle_27(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 2);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              UnityEngine.Vector3 @to = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              UnityEngine.Vector3 @from = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
  
              var result_of_this_method = UnityEngine.Vector3.Angle(@from, @to);
  
              __ret->ObjectType = ObjectTypes.Float;
              *(float*)&__ret->Value = result_of_this_method;
              return __ret + 1;
          }
  
          static StackObject* SignedAngle_28(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 3);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              UnityEngine.Vector3 @axis = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              UnityEngine.Vector3 @to = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
              UnityEngine.Vector3 @from = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
  
              var result_of_this_method = UnityEngine.Vector3.SignedAngle(@from, @to, @axis);
  
              __ret->ObjectType = ObjectTypes.Float;
              *(float*)&__ret->Value = result_of_this_method;
              return __ret + 1;
          }
  
          static StackObject* Distance_29(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 2);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              UnityEngine.Vector3 @b = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              UnityEngine.Vector3 @a = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
  
              var result_of_this_method = UnityEngine.Vector3.Distance(@a, @b);
  
              __ret->ObjectType = ObjectTypes.Float;
              *(float*)&__ret->Value = result_of_this_method;
              return __ret + 1;
          }
  
          static StackObject* ClampMagnitude_30(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 2);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              System.Single @maxLength = *(float*)&ptr_of_this_method->Value;
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              UnityEngine.Vector3 @vector = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
  
              var result_of_this_method = UnityEngine.Vector3.ClampMagnitude(@vector, @maxLength);
  
              return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
          }
  
          static StackObject* Magnitude_31(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 1);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              UnityEngine.Vector3 @vector = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
  
              var result_of_this_method = UnityEngine.Vector3.Magnitude(@vector);
  
              __ret->ObjectType = ObjectTypes.Float;
              *(float*)&__ret->Value = result_of_this_method;
              return __ret + 1;
          }
  
          static StackObject* get_magnitude_32(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 1);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
              UnityEngine.Vector3 instance_of_this_method = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
  
              var result_of_this_method = instance_of_this_method.magnitude;
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              WriteBackInstance(__domain, ptr_of_this_method, __mStack, ref instance_of_this_method);
  
              __intp.Free(ptr_of_this_method);
              __ret->ObjectType = ObjectTypes.Float;
              *(float*)&__ret->Value = result_of_this_method;
              return __ret + 1;
          }
  
          static StackObject* SqrMagnitude_33(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 1);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              UnityEngine.Vector3 @vector = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
  
              var result_of_this_method = UnityEngine.Vector3.SqrMagnitude(@vector);
  
              __ret->ObjectType = ObjectTypes.Float;
              *(float*)&__ret->Value = result_of_this_method;
              return __ret + 1;
          }
  
          static StackObject* get_sqrMagnitude_34(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 1);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
              UnityEngine.Vector3 instance_of_this_method = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
  
              var result_of_this_method = instance_of_this_method.sqrMagnitude;
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              WriteBackInstance(__domain, ptr_of_this_method, __mStack, ref instance_of_this_method);
  
              __intp.Free(ptr_of_this_method);
              __ret->ObjectType = ObjectTypes.Float;
              *(float*)&__ret->Value = result_of_this_method;
              return __ret + 1;
          }
  
          static StackObject* Min_35(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 2);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              UnityEngine.Vector3 @rhs = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              UnityEngine.Vector3 @lhs = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
  
              var result_of_this_method = UnityEngine.Vector3.Min(@lhs, @rhs);
  
              return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
          }
  
          static StackObject* Max_36(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 2);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              UnityEngine.Vector3 @rhs = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              UnityEngine.Vector3 @lhs = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
  
              var result_of_this_method = UnityEngine.Vector3.Max(@lhs, @rhs);
  
              return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
          }
  
          static StackObject* get_zero_37(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* __ret = ILIntepreter.Minus(__esp, 0);
  
  
              var result_of_this_method = UnityEngine.Vector3.zero;
  
              return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
          }
  
          static StackObject* get_one_38(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* __ret = ILIntepreter.Minus(__esp, 0);
  
  
              var result_of_this_method = UnityEngine.Vector3.one;
  
              return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
          }
  
          static StackObject* get_forward_39(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* __ret = ILIntepreter.Minus(__esp, 0);
  
  
              var result_of_this_method = UnityEngine.Vector3.forward;
  
              return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
          }
  
          static StackObject* get_back_40(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* __ret = ILIntepreter.Minus(__esp, 0);
  
  
              var result_of_this_method = UnityEngine.Vector3.back;
  
              return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
          }
  
          static StackObject* get_up_41(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* __ret = ILIntepreter.Minus(__esp, 0);
  
  
              var result_of_this_method = UnityEngine.Vector3.up;
  
              return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
          }
  
          static StackObject* get_down_42(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* __ret = ILIntepreter.Minus(__esp, 0);
  
  
              var result_of_this_method = UnityEngine.Vector3.down;
  
              return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
          }
  
          static StackObject* get_left_43(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* __ret = ILIntepreter.Minus(__esp, 0);
  
  
              var result_of_this_method = UnityEngine.Vector3.left;
  
              return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
          }
  
          static StackObject* get_right_44(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* __ret = ILIntepreter.Minus(__esp, 0);
  
  
              var result_of_this_method = UnityEngine.Vector3.right;
  
              return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
          }
  
          static StackObject* get_positiveInfinity_45(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* __ret = ILIntepreter.Minus(__esp, 0);
  
  
              var result_of_this_method = UnityEngine.Vector3.positiveInfinity;
  
              return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
          }
  
          static StackObject* get_negativeInfinity_46(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* __ret = ILIntepreter.Minus(__esp, 0);
  
  
              var result_of_this_method = UnityEngine.Vector3.negativeInfinity;
  
              return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
          }
  
          static StackObject* op_Addition_47(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 2);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              UnityEngine.Vector3 @b = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              UnityEngine.Vector3 @a = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
  
              var result_of_this_method = a + b;
  
              return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
          }
  
          static StackObject* op_Subtraction_48(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
          {
              CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
              StackObject* ptr_of_this_method;
              StackObject* __ret = ILIntepreter.Minus(__esp, 2);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              UnityEngine.Vector3 @b = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
              UnityEngine.Vector3 @a = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
  
  
gt:             var result_of_this_method = a - b;