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_Profiling_Profiler_Binding
      {
          public static void Register(CSHotFix.Runtime.Enviorment.AppDomain app)
          {
              BindingFlags flag = BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static | BindingFlags.DeclaredOnly;
              MethodBase method;
              Type[] args;
              Type type = typeof(UnityEngine.Profiling.Profiler);
              args = new Type[]{};
              method = type.GetMethod("get_supported", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, get_supported_0);
              args = new Type[]{};
              method = type.GetMethod("get_logFile", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, get_logFile_1);
              args = new Type[]{typeof(System.String)};
              method = type.GetMethod("set_logFile", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, set_logFile_2);
              args = new Type[]{};
              method = type.GetMethod("get_enableBinaryLog", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, get_enableBinaryLog_3);
              args = new Type[]{typeof(System.Boolean)};
              method = type.GetMethod("set_enableBinaryLog", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, set_enableBinaryLog_4);
              args = new Type[]{};
              method = type.GetMethod("get_maxUsedMemory", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, get_maxUsedMemory_5);
              args = new Type[]{typeof(System.Int32)};
              method = type.GetMethod("set_maxUsedMemory", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, set_maxUsedMemory_6);
              args = new Type[]{};
              method = type.GetMethod("get_enabled", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, get_enabled_7);
              args = new Type[]{typeof(System.Boolean)};
              method = type.GetMethod("set_enabled", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, set_enabled_8);
              args = new Type[]{typeof(UnityEngine.Profiling.ProfilerArea), typeof(System.Boolean)};
              method = type.GetMethod("SetAreaEnabled", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, SetAreaEnabled_9);
              args = new Type[]{};
              method = type.GetMethod("get_areaCount", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, get_areaCount_10);
              args = new Type[]{typeof(UnityEngine.Profiling.ProfilerArea)};
              method = type.GetMethod("GetAreaEnabled", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, GetAreaEnabled_11);
              args = new Type[]{typeof(System.String)};
              method = type.GetMethod("AddFramesFromFile", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, AddFramesFromFile_12);
              args = new Type[]{typeof(System.String), typeof(System.String)};
              method = type.GetMethod("BeginThreadProfiling", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, BeginThreadProfiling_13);
              args = new Type[]{};
              method = type.GetMethod("EndThreadProfiling", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, EndThreadProfiling_14);
              args = new Type[]{typeof(System.String)};
              method = type.GetMethod("BeginSample", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, BeginSample_15);
              args = new Type[]{typeof(System.String), typeof(UnityEngine.Object)};
              method = type.GetMethod("BeginSample", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, BeginSample_16);
              args = new Type[]{};
              method = type.GetMethod("EndSample", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, EndSample_17);
              args = new Type[]{};
              method = type.GetMethod("get_usedHeapSizeLong", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, get_usedHeapSizeLong_18);
              args = new Type[]{typeof(UnityEngine.Object)};
              method = type.GetMethod("GetRuntimeMemorySizeLong", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, GetRuntimeMemorySizeLong_19);
              args = new Type[]{};
              method = type.GetMethod("GetMonoHeapSizeLong", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, GetMonoHeapSizeLong_20);
              args = new Type[]{};
              method = type.GetMethod("GetMonoUsedSizeLong", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, GetMonoUsedSizeLong_21);
              args = new Type[]{typeof(System.UInt32)};
              method = type.GetMethod("SetTempAllocatorRequestedSize", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, SetTempAllocatorRequestedSize_22);
              args = new Type[]{};
              method = type.GetMethod("GetTempAllocatorSize", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, GetTempAllocatorSize_23);
              args = new Type[]{};
              method = type.GetMethod("GetTotalAllocatedMemoryLong", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, GetTotalAllocatedMemoryLong_24);
              args = new Type[]{};
              method = type.GetMethod("GetTotalUnusedReservedMemoryLong", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, GetTotalUnusedReservedMemoryLong_25);
              args = new Type[]{};
              method = type.GetMethod("GetTotalReservedMemoryLong", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, GetTotalReservedMemoryLong_26);
              args = new Type[]{};
              method = type.GetMethod("GetAllocatedMemoryForGraphicsDriver", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, GetAllocatedMemoryForGraphicsDriver_27);
              args = new Type[]{typeof(System.Guid), typeof(System.Int32), typeof(System.Array)};
              method = type.GetMethod("EmitFrameMetaData", flag, null, args, null);
              app.RegisterCLRMethodRedirection(method, EmitFrameMetaData_28);
  
  
  
              app.RegisterCLRCreateArrayInstance(type, s => new UnityEngine.Profiling.Profiler[s]);
  
  
          }
  
  
          static StackObject* get_supported_0(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.Profiling.Profiler.supported;
  
              __ret->ObjectType = ObjectTypes.Integer;
              __ret->Value = result_of_this_method ? 1 : 0;
              return __ret + 1;
          }
  
          static StackObject* get_logFile_1(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.Profiling.Profiler.logFile;
  
              return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
          }
  
          static StackObject* set_logFile_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, 1);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              System.String @value = (System.String)typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
              __intp.Free(ptr_of_this_method);
  
  
              UnityEngine.Profiling.Profiler.logFile = value;
  
              return __ret;
          }
  
          static StackObject* get_enableBinaryLog_3(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.Profiling.Profiler.enableBinaryLog;
  
              __ret->ObjectType = ObjectTypes.Integer;
              __ret->Value = result_of_this_method ? 1 : 0;
              return __ret + 1;
          }
  
          static StackObject* set_enableBinaryLog_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, 1);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
              System.Boolean @value = ptr_of_this_method->Value == 1;
  
  
              UnityEngine.Profiling.Profiler.enableBinaryLog = value;
  
              return __ret;
          }
  
          static StackObject* get_maxUsedMemory_5(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.Profiling.Profiler.maxUsedMemory;
  
              __ret->ObjectType = ObjectTypes.Integer;
              __ret->Value = result_of_this_method;
              return __ret + 1;
          }
  
          static StackObject* set_maxUsedMemory_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, 1);
  
              ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
  
gt:             System.Int32 @value = ptr_of_this_method->Value;