using System;
using System.Runtime.CompilerServices;
using Cpp2IlInjected;
using UnityEngine;

namespace Obi.CrossPlatformInput
{
	// Token: 0x020004F4 RID: 1268
	[Token(Token = "0x20004F4")]
	public static class CrossPlatformInputManager
	{
		// Token: 0x06002C59 RID: 11353 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002C59")]
		[Address(RVA = "0x13C0BE0", Offset = "0x13BF9E0", VA = "0x1813C0BE0")]
		static CrossPlatformInputManager()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002C5A RID: 11354 RVA: 0x00060060 File Offset: 0x0005E260
		[Token(Token = "0x6002C5A")]
		[Address(RVA = "0x13C0970", Offset = "0x13BF770", VA = "0x1813C0970")]
		public static void SwitchActiveInputMethod(CrossPlatformInputManager.ActiveInputMethod activeInputMethod)
		{
			if (activeInputMethod == CrossPlatformInputManager.ActiveInputMethod.Hardware)
			{
				CrossPlatformInputManager.activeInput = CrossPlatformInputManager.s_HardwareInput;
			}
			if (activeInputMethod == CrossPlatformInputManager.ActiveInputMethod.Touch)
			{
				CrossPlatformInputManager.activeInput = CrossPlatformInputManager.s_TouchInput;
			}
		}

		// Token: 0x06002C5B RID: 11355 RVA: 0x0006008C File Offset: 0x0005E28C
		[Token(Token = "0x6002C5B")]
		[Address(RVA = "0x13C0010", Offset = "0x13BEE10", VA = "0x1813C0010")]
		public static bool AxisExists(string name)
		{
			return CrossPlatformInputManager.activeInput.AxisExists(name);
		}

		// Token: 0x06002C5C RID: 11356 RVA: 0x000600AC File Offset: 0x0005E2AC
		[Token(Token = "0x6002C5C")]
		[Address(RVA = "0x13C0090", Offset = "0x13BEE90", VA = "0x1813C0090")]
		public static bool ButtonExists(string name)
		{
			return CrossPlatformInputManager.activeInput.ButtonExists(name);
		}

		// Token: 0x06002C5D RID: 11357 RVA: 0x000600CC File Offset: 0x0005E2CC
		[Token(Token = "0x6002C5D")]
		[Address(RVA = "0x13C03E0", Offset = "0x13BF1E0", VA = "0x1813C03E0")]
		public static void RegisterVirtualAxis(CrossPlatformInputManager.VirtualAxis axis)
		{
			CrossPlatformInputManager.activeInput.RegisterVirtualAxis(axis);
		}

		// Token: 0x06002C5E RID: 11358 RVA: 0x000600EC File Offset: 0x0005E2EC
		[Token(Token = "0x6002C5E")]
		[Address(RVA = "0x13C0460", Offset = "0x13BF260", VA = "0x1813C0460")]
		public static void RegisterVirtualButton(CrossPlatformInputManager.VirtualButton button)
		{
			CrossPlatformInputManager.activeInput.RegisterVirtualButton(button);
		}

		// Token: 0x06002C5F RID: 11359 RVA: 0x0006010C File Offset: 0x0005E30C
		[Token(Token = "0x6002C5F")]
		[Address(RVA = "0x13C0A20", Offset = "0x13BF820", VA = "0x1813C0A20")]
		public static void UnRegisterVirtualAxis(string name)
		{
			/*
An exception occurred when decompiling this method (06002C5F)

ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void Obi.CrossPlatformInput.CrossPlatformInputManager::UnRegisterVirtualAxis(System.String)

 ---> System.Exception: Basic block has to end with unconditional control flow. 
{; 	IL_10:; 	stloc:ArgumentNullException(var_0_1A, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("name"))); }; 
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1836
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1836
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1804
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
   --- End of inner exception stack trace ---
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
   at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
		}

		// Token: 0x06002C60 RID: 11360 RVA: 0x00060134 File Offset: 0x0005E334
		[Token(Token = "0x6002C60")]
		[Address(RVA = "0x13C0AE0", Offset = "0x13BF8E0", VA = "0x1813C0AE0")]
		public static void UnRegisterVirtualButton(string name)
		{
			CrossPlatformInputManager.activeInput.UnRegisterVirtualButton(name);
		}

		// Token: 0x06002C61 RID: 11361 RVA: 0x00060154 File Offset: 0x0005E354
		[Token(Token = "0x6002C61")]
		[Address(RVA = "0x13C0B60", Offset = "0x13BF960", VA = "0x1813C0B60")]
		public static CrossPlatformInputManager.VirtualAxis VirtualAxisReference(string name)
		{
			return CrossPlatformInputManager.activeInput.VirtualAxisReference(name);
		}

		// Token: 0x06002C62 RID: 11362 RVA: 0x00060174 File Offset: 0x0005E374
		[Token(Token = "0x6002C62")]
		[Address(RVA = "0x13C0170", Offset = "0x13BEF70", VA = "0x1813C0170")]
		public static float GetAxis(string name)
		{
			int num = 0;
			return CrossPlatformInputManager.GetAxis(name, num != 0);
		}

		// Token: 0x06002C63 RID: 11363 RVA: 0x0006018C File Offset: 0x0005E38C
		[Token(Token = "0x6002C63")]
		[Address(RVA = "0x13C0110", Offset = "0x13BEF10", VA = "0x1813C0110")]
		public static float GetAxisRaw(string name)
		{
			return CrossPlatformInputManager.GetAxis(name, true);
		}

		// Token: 0x06002C64 RID: 11364 RVA: 0x000601A0 File Offset: 0x0005E3A0
		[Token(Token = "0x6002C64")]
		[Address(RVA = "0x13C01D0", Offset = "0x13BEFD0", VA = "0x1813C01D0")]
		private static float GetAxis(string name, bool raw)
		{
			return CrossPlatformInputManager.activeInput.GetAxis(name, raw);
		}

		// Token: 0x06002C65 RID: 11365 RVA: 0x000601C0 File Offset: 0x0005E3C0
		[Token(Token = "0x6002C65")]
		[Address(RVA = "0x13C0360", Offset = "0x13BF160", VA = "0x1813C0360")]
		public static bool GetButton(string name)
		{
			return CrossPlatformInputManager.activeInput.GetButton(name);
		}

		// Token: 0x06002C66 RID: 11366 RVA: 0x000601E0 File Offset: 0x0005E3E0
		[Token(Token = "0x6002C66")]
		[Address(RVA = "0x13C0260", Offset = "0x13BF060", VA = "0x1813C0260")]
		public static bool GetButtonDown(string name)
		{
			return CrossPlatformInputManager.activeInput.GetButton(name);
		}

		// Token: 0x06002C67 RID: 11367 RVA: 0x00060200 File Offset: 0x0005E400
		[Token(Token = "0x6002C67")]
		[Address(RVA = "0x13C02E0", Offset = "0x13BF0E0", VA = "0x1813C02E0")]
		public static bool GetButtonUp(string name)
		{
			return CrossPlatformInputManager.activeInput.GetButton(name);
		}

		// Token: 0x06002C68 RID: 11368 RVA: 0x00060220 File Offset: 0x0005E420
		[Token(Token = "0x6002C68")]
		[Address(RVA = "0x13C06F0", Offset = "0x13BF4F0", VA = "0x1813C06F0")]
		public static void SetButtonDown(string name)
		{
			bool button = CrossPlatformInputManager.activeInput.GetButton(name);
		}

		// Token: 0x06002C69 RID: 11369 RVA: 0x00060240 File Offset: 0x0005E440
		[Token(Token = "0x6002C69")]
		[Address(RVA = "0x13C0770", Offset = "0x13BF570", VA = "0x1813C0770")]
		public static void SetButtonUp(string name)
		{
			bool button = CrossPlatformInputManager.activeInput.GetButton(name);
		}

		// Token: 0x06002C6A RID: 11370 RVA: 0x00060260 File Offset: 0x0005E460
		[Token(Token = "0x6002C6A")]
		[Address(RVA = "0x13C0560", Offset = "0x13BF360", VA = "0x1813C0560")]
		public static void SetAxisPositive(string name)
		{
			bool button = CrossPlatformInputManager.activeInput.GetButton(name);
		}

		// Token: 0x06002C6B RID: 11371 RVA: 0x00060280 File Offset: 0x0005E480
		[Token(Token = "0x6002C6B")]
		[Address(RVA = "0x13C04E0", Offset = "0x13BF2E0", VA = "0x1813C04E0")]
		public static void SetAxisNegative(string name)
		{
			bool button = CrossPlatformInputManager.activeInput.GetButton(name);
		}

		// Token: 0x06002C6C RID: 11372 RVA: 0x000602A0 File Offset: 0x0005E4A0
		[Token(Token = "0x6002C6C")]
		[Address(RVA = "0x13C05E0", Offset = "0x13BF3E0", VA = "0x1813C05E0")]
		public static void SetAxisZero(string name)
		{
			bool button = CrossPlatformInputManager.activeInput.GetButton(name);
		}

		// Token: 0x06002C6D RID: 11373 RVA: 0x000602C0 File Offset: 0x0005E4C0
		[Token(Token = "0x6002C6D")]
		[Address(RVA = "0x13C0660", Offset = "0x13BF460", VA = "0x1813C0660")]
		public static void SetAxis(string name, float value)
		{
			bool button = CrossPlatformInputManager.activeInput.GetButton(name);
		}

		// Token: 0x17000314 RID: 788
		// (get) Token: 0x06002C6E RID: 11374 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x17000314")]
		public static Vector3 mousePosition
		{
			[Token(Token = "0x6002C6E")]
			[Address(RVA = "0x13C0CB0", Offset = "0x13BFAB0", VA = "0x1813C0CB0")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x06002C6F RID: 11375 RVA: 0x000602E0 File Offset: 0x0005E4E0
		[Token(Token = "0x6002C6F")]
		[Address(RVA = "0x13C07F0", Offset = "0x13BF5F0", VA = "0x1813C07F0")]
		public static void SetVirtualMousePositionX(float f)
		{
			CrossPlatformInputManager.activeInput.SetVirtualMousePositionX(f);
		}

		// Token: 0x06002C70 RID: 11376 RVA: 0x00060300 File Offset: 0x0005E500
		[Token(Token = "0x6002C70")]
		[Address(RVA = "0x13C0870", Offset = "0x13BF670", VA = "0x1813C0870")]
		public static void SetVirtualMousePositionY(float f)
		{
			CrossPlatformInputManager.activeInput.SetVirtualMousePositionY(f);
		}

		// Token: 0x06002C71 RID: 11377 RVA: 0x00060320 File Offset: 0x0005E520
		[Token(Token = "0x6002C71")]
		[Address(RVA = "0x13C08F0", Offset = "0x13BF6F0", VA = "0x1813C08F0")]
		public static void SetVirtualMousePositionZ(float f)
		{
			CrossPlatformInputManager.activeInput.SetVirtualMousePositionZ(f);
		}

		// Token: 0x040034BA RID: 13498
		[Token(Token = "0x40034BA")]
		private static VirtualInput activeInput;

		// Token: 0x040034BB RID: 13499
		[Token(Token = "0x40034BB")]
		private static VirtualInput s_TouchInput;

		// Token: 0x040034BC RID: 13500
		[Token(Token = "0x40034BC")]
		private static VirtualInput s_HardwareInput;

		// Token: 0x020004F5 RID: 1269
		[Token(Token = "0x20004F5")]
		public enum ActiveInputMethod
		{
			// Token: 0x040034BE RID: 13502
			[Token(Token = "0x40034BE")]
			Hardware,
			// Token: 0x040034BF RID: 13503
			[Token(Token = "0x40034BF")]
			Touch
		}

		// Token: 0x020004F6 RID: 1270
		[Token(Token = "0x20004F6")]
		public class VirtualAxis
		{
			// Token: 0x17000315 RID: 789
			// (get) Token: 0x06002C72 RID: 11378 RVA: 0x00060340 File Offset: 0x0005E540
			// (set) Token: 0x06002C73 RID: 11379 RVA: 0x00060354 File Offset: 0x0005E554
			[Token(Token = "0x17000315")]
			public string name
			{
				[Token(Token = "0x6002C72")]
				[Address(RVA = "0x2B4010", Offset = "0x2B2E10", VA = "0x1802B4010")]
				[CompilerGenerated]
				get
				{
					return this.<name>k__BackingField;
				}
				[Token(Token = "0x6002C73")]
				[Address(RVA = "0x385090", Offset = "0x383E90", VA = "0x180385090")]
				[CompilerGenerated]
				private set
				{
					/*
An exception occurred when decompiling this method (06002C73)

ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void Obi.CrossPlatformInput.CrossPlatformInputManager/VirtualAxis::set_name(System.String)

 ---> System.Exception: Basic block has to end with unconditional control flow. 
{; 	Block_0:; 	stfld:string(VirtualAxis::<name>k__BackingField, ldloc:VirtualAxis(this), ldloc:string(value)); }; 
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
   --- End of inner exception stack trace ---
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
   at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
				}
			}

			// Token: 0x17000316 RID: 790
			// (get) Token: 0x06002C74 RID: 11380 RVA: 0x00060368 File Offset: 0x0005E568
			// (set) Token: 0x06002C75 RID: 11381 RVA: 0x0006037C File Offset: 0x0005E57C
			[Token(Token = "0x17000316")]
			public bool matchWithInputManager
			{
				[Token(Token = "0x6002C74")]
				[Address(RVA = "0x603D40", Offset = "0x602B40", VA = "0x180603D40")]
				get;
				[Token(Token = "0x6002C75")]
				[Address(RVA = "0x603D50", Offset = "0x602B50", VA = "0x180603D50")]
				private set;
			}

			// Token: 0x06002C76 RID: 11382 RVA: 0x00060390 File Offset: 0x0005E590
			[Token(Token = "0x6002C76")]
			[Address(RVA = "0x603CA0", Offset = "0x602AA0", VA = "0x180603CA0")]
			public VirtualAxis(string name)
			{
				this.<name>k__BackingField = name;
				this.matchWithInputManager = true;
			}

			// Token: 0x06002C77 RID: 11383 RVA: 0x000603B4 File Offset: 0x0005E5B4
			[Token(Token = "0x6002C77")]
			[Address(RVA = "0x603CE0", Offset = "0x602AE0", VA = "0x180603CE0")]
			public VirtualAxis(string name, bool matchToInputSettings)
			{
				this.<name>k__BackingField = name;
				this.matchWithInputManager = matchToInputSettings;
			}

			// Token: 0x06002C78 RID: 11384 RVA: 0x000603D8 File Offset: 0x0005E5D8
			[Token(Token = "0x6002C78")]
			[Address(RVA = "0x603C30", Offset = "0x602A30", VA = "0x180603C30")]
			public void Remove()
			{
				CrossPlatformInputManager.UnRegisterVirtualAxis(this.<name>k__BackingField);
			}

			// Token: 0x06002C79 RID: 11385 RVA: 0x000603F0 File Offset: 0x0005E5F0
			[Token(Token = "0x6002C79")]
			[Address(RVA = "0x603C90", Offset = "0x602A90", VA = "0x180603C90")]
			public void Update(float value)
			{
				this.m_Value = value;
			}

			// Token: 0x17000317 RID: 791
			// (get) Token: 0x06002C7A RID: 11386 RVA: 0x00060404 File Offset: 0x0005E604
			[Token(Token = "0x17000317")]
			public float GetValue
			{
				[Token(Token = "0x6002C7A")]
				[Address(RVA = "0x603D30", Offset = "0x602B30", VA = "0x180603D30")]
				get
				{
					return this.m_Value;
				}
			}

			// Token: 0x17000318 RID: 792
			// (get) Token: 0x06002C7B RID: 11387 RVA: 0x00060418 File Offset: 0x0005E618
			[Token(Token = "0x17000318")]
			public float GetValueRaw
			{
				[Token(Token = "0x6002C7B")]
				[Address(RVA = "0x603D30", Offset = "0x602B30", VA = "0x180603D30")]
				get
				{
					return this.m_Value;
				}
			}

			// Token: 0x040034C1 RID: 13505
			[FieldOffset(Offset = "0x18")]
			[Token(Token = "0x40034C1")]
			private float m_Value;
		}

		// Token: 0x020004F7 RID: 1271
		[Token(Token = "0x20004F7")]
		public class VirtualButton
		{
			// Token: 0x17000319 RID: 793
			// (get) Token: 0x06002C7C RID: 11388 RVA: 0x0006042C File Offset: 0x0005E62C
			// (set) Token: 0x06002C7D RID: 11389 RVA: 0x00060440 File Offset: 0x0005E640
			[Token(Token = "0x17000319")]
			public string name
			{
				[Token(Token = "0x6002C7C")]
				[Address(RVA = "0x2B4010", Offset = "0x2B2E10", VA = "0x1802B4010")]
				[CompilerGenerated]
				get
				{
					return this.<name>k__BackingField;
				}
				[Token(Token = "0x6002C7D")]
				[Address(RVA = "0x385090", Offset = "0x383E90", VA = "0x180385090")]
				[CompilerGenerated]
				private set
				{
					/*
An exception occurred when decompiling this method (06002C7D)

ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void Obi.CrossPlatformInput.CrossPlatformInputManager/VirtualButton::set_name(System.String)

 ---> System.Exception: Basic block has to end with unconditional control flow. 
{; 	Block_0:; 	stfld:string(VirtualButton::<name>k__BackingField, ldloc:VirtualButton(this), ldloc:string(value)); }; 
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
   --- End of inner exception stack trace ---
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
   at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
				}
			}

			// Token: 0x1700031A RID: 794
			// (get) Token: 0x06002C7E RID: 11390 RVA: 0x00060454 File Offset: 0x0005E654
			// (set) Token: 0x06002C7F RID: 11391 RVA: 0x00060468 File Offset: 0x0005E668
			[Token(Token = "0x1700031A")]
			public bool matchWithInputManager
			{
				[Token(Token = "0x6002C7E")]
				[Address(RVA = "0x3FBFE0", Offset = "0x3FADE0", VA = "0x1803FBFE0")]
				get;
				[Token(Token = "0x6002C7F")]
				[Address(RVA = "0x3FC010", Offset = "0x3FAE10", VA = "0x1803FC010")]
				private set;
			}

			// Token: 0x06002C80 RID: 11392 RVA: 0x0006047C File Offset: 0x0005E67C
			[Token(Token = "0x6002C80")]
			[Address(RVA = "0x603E10", Offset = "0x602C10", VA = "0x180603E10")]
			public VirtualButton(string name)
			{
				this.<name>k__BackingField = name;
				this.matchWithInputManager = true;
			}

			// Token: 0x06002C81 RID: 11393 RVA: 0x000604C0 File Offset: 0x0005E6C0
			[Token(Token = "0x6002C81")]
			[Address(RVA = "0x603E60", Offset = "0x602C60", VA = "0x180603E60")]
			public VirtualButton(string name, bool matchToInputSettings)
			{
				this.<name>k__BackingField = name;
				this.matchWithInputManager = matchToInputSettings;
			}

			// Token: 0x06002C82 RID: 11394 RVA: 0x00060504 File Offset: 0x0005E704
			[Token(Token = "0x6002C82")]
			[Address(RVA = "0x603D60", Offset = "0x602B60", VA = "0x180603D60")]
			public void Pressed()
			{
				if (!this.m_Pressed)
				{
					this.m_Pressed = true;
					int frameCount = Time.frameCount;
					this.m_LastPressedFrame = frameCount;
				}
			}

			// Token: 0x06002C83 RID: 11395 RVA: 0x00060530 File Offset: 0x0005E730
			[Token(Token = "0x6002C83")]
			[Address(RVA = "0x603D90", Offset = "0x602B90", VA = "0x180603D90")]
			public void Released()
			{
				this.m_Pressed = false;
				int frameCount = Time.frameCount;
				this.m_ReleasedFrame = frameCount;
			}

			// Token: 0x06002C84 RID: 11396 RVA: 0x00060554 File Offset: 0x0005E754
			[Token(Token = "0x6002C84")]
			[Address(RVA = "0x603DB0", Offset = "0x602BB0", VA = "0x180603DB0")]
			public void Remove()
			{
				CrossPlatformInputManager.UnRegisterVirtualButton(this.<name>k__BackingField);
			}

			// Token: 0x1700031B RID: 795
			// (get) Token: 0x06002C85 RID: 11397 RVA: 0x0006056C File Offset: 0x0005E76C
			[Token(Token = "0x1700031B")]
			public bool GetButton
			{
				[Token(Token = "0x6002C85")]
				[Address(RVA = "0x3FC660", Offset = "0x3FB460", VA = "0x1803FC660")]
				get
				{
					return this.m_Pressed;
				}
			}

			// Token: 0x1700031C RID: 796
			// (get) Token: 0x06002C86 RID: 11398 RVA: 0x00060580 File Offset: 0x0005E780
			[Token(Token = "0x1700031C")]
			public bool GetButtonDown
			{
				[Token(Token = "0x6002C86")]
				[Address(RVA = "0x603EC0", Offset = "0x602CC0", VA = "0x180603EC0")]
				get
				{
					int num = this.m_LastPressedFrame;
					int frameCount = Time.frameCount;
					num -= frameCount;
					return num == -1;
				}
			}

			// Token: 0x1700031D RID: 797
			// (get) Token: 0x06002C87 RID: 11399 RVA: 0x000605A4 File Offset: 0x0005E7A4
			[Token(Token = "0x1700031D")]
			public bool GetButtonUp
			{
				[Token(Token = "0x6002C87")]
				[Address(RVA = "0x603EE0", Offset = "0x602CE0", VA = "0x180603EE0")]
				get
				{
					int releasedFrame = this.m_ReleasedFrame;
					int frameCount = Time.frameCount;
					return releasedFrame == frameCount;
				}
			}

			// Token: 0x040034C5 RID: 13509
			[FieldOffset(Offset = "0x1C")]
			[Token(Token = "0x40034C5")]
			private int m_LastPressedFrame = (int)((ulong)4294967291L);

			// Token: 0x040034C6 RID: 13510
			[FieldOffset(Offset = "0x20")]
			[Token(Token = "0x40034C6")]
			private int m_ReleasedFrame = (int)((ulong)4294967291L);

			// Token: 0x040034C7 RID: 13511
			[FieldOffset(Offset = "0x24")]
			[Token(Token = "0x40034C7")]
			private bool m_Pressed;
		}
	}
}
