namespace UnityStandardAssets.CrossPlatformInput
{

	// [TypeInfo RVA: 0x0]
	public class VirtualButton : Object
	{
		private string <name>k__BackingField; // 0x10
		private bool <matchWithInputManager>k__BackingField; // 0x18
		private int m_LastPressedFrame; // 0x1C
		private int m_ReleasedFrame; // 0x20
		private bool m_Pressed; // 0x24

		// RVA: 0x327C404 VA: 0x7818967404
		public string get_name();
		/*
		 *   return this.name_k_BackingField;
		 */
		// RVA: 0x327C40C VA: 0x781896740C
		private void set_name(string value);
		/*
		 *   void **ppvVar1;
		 *
		 *   ppvVar1 = &this.name_k_BackingField;
		 *   *ppvVar1 = value;
		 *   if (iRam00000000077785f0 != 0) {
		 *     func_0x032ed0c0(1L << ((ulong)ppvVar1 >> 0xc & 0x3f),
		 *                     ((ulong)ppvVar1 >> 0x12 & 0x7fff) * 8 + 0x75ac5c8);
		 *   }
		 *   return;
		 */
		// RVA: 0x327C414 VA: 0x7818967414
		public bool get_matchWithInputManager();
		/*
		 *   return this.matchWithInputManager_k_BackingField;
		 */
		// RVA: 0x327C41C VA: 0x781896741C
		private void set_matchWithInputManager(bool value);
		/*
		 *   this.matchWithInputManager_k_BackingField = value;
		 *   return;
		 */
		// RVA: 0x327C424 VA: 0x7818967424
		public void .ctor(string name);
		/*
		 *   this.m_LastPressedFrame = -5;
		 *   this.m_ReleasedFrame = -5;
		 *   System.Object..ctor(this);
		 *   this.name_k_BackingField = name;
		 *   func_0x031fdc38(&this.name_k_BackingField,name);
		 *   this.matchWithInputManager_k_BackingField = true;
		 *   return;
		 */
		// RVA: 0x327C468 VA: 0x7818967468
		public void .ctor(string name, bool matchToInputSettings);
		/*
		 *   this.m_LastPressedFrame = -5;
		 *   this.m_ReleasedFrame = -5;
		 *   System.Object..ctor(this);
		 *   this.name_k_BackingField = name;
		 *   func_0x031fdc38(&this.name_k_BackingField,name);
		 *   this.matchWithInputManager_k_BackingField = matchToInputSettings;
		 *   return;
		 */
		// RVA: 0x327C4AC VA: 0x78189674AC
		public void Pressed();
		/*
		 *   int iVar1;
		 *
		 *   if (this.m_Pressed != false) {
		 *     return;
		 *   }
		 *   this.m_Pressed = true;
		 *   iVar1 = UnityEngine.Time.get_frameCount();
		 *   this.m_LastPressedFrame = iVar1;
		 *   return;
		 */
		// RVA: 0x327C4DC VA: 0x78189674DC
		public void Released();
		/*
		 *   int iVar1;
		 *
		 *   this.m_Pressed = false;
		 *   iVar1 = UnityEngine.Time.get_frameCount();
		 *   this.m_ReleasedFrame = iVar1;
		 *   return;
		 */
		// RVA: 0x327C4FC VA: 0x78189674FC
		public void Remove();
		/*
		 *   undefined4 uVar1;
		 *   uint uVar2;
		 *   int iVar3;
		 *   undefined *puVar4;
		 *   uint uVar5;
		 *   long lVar6;
		 *   ulong uVar7;
		 *   undefined8 *puVar8;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *extraout_x1_01;
		 *   long lVar9;
		 *   long lVar10;
		 *   long lVar11;
		 *   long lVar12;
		 *   ulong uVar13;
		 *   int *piVar14;
		 *   long *plVar15;
		 *   long *plVar16;
		 *   undefined8 uVar17;
		 *   uint uVar18;
		 *   ulong uVar19;
		 *   uint *puVar20;
		 *
		 *   puVar4 = PTR_DAT_070c56f8;
		 *   if ((bRam000000000754ac61 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c56f8);
		 *     bRam000000000754ac61 = 1;
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   plVar15 = this.name_k_BackingField;
		 *   if (*(int *)(*(long *)puVar4 + 0xe4) == 0) {
		 *     func_0x031fde08(*(long *)puVar4,methodInfo);
		 *     methodInfo = extraout_x1_01;
		 *   }
		 *   puVar4 = PTR_DAT_070c56f8;
		 *   if ((bRam000000000754ac4e & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c56f8);
		 *     bRam000000000754ac4e = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   lVar6 = *(long *)puVar4;
		 *   if (*(int *)(lVar6 + 0xe4) == 0) {
		 *     func_0x031fde08(lVar6,methodInfo);
		 *     lVar6 = *(long *)puVar4;
		 *   }
		 *   lVar6 = **(long **)(lVar6 + 0xb8);
		 *   if (lVar6 == 0) {
		 *     IL2CPP.ThrowNullReferenceException();
		 *   }
		 *   if ((bRam000000000754ac70 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c5730);
		 *     func_0x031fdc8c(PTR_DAT_070c5780);
		 *     bRam000000000754ac70 = 1;
		 *   }
		 *   if (*(long *)(lVar6 + 0x28) == 0) {
		 * LAB_0337be20:
		 *     IL2CPP.ThrowNullReferenceException();
		 *   }
		 *   uVar7 = func_0x04e2d048(*(long *)(lVar6 + 0x28),plVar15,*(undefined8 *)PTR_DAT_070c5730);
		 *   if ((uVar7 & 1) == 0) {
		 *     return;
		 *   }
		 *   lVar6 = *(long *)(lVar6 + 0x28);
		 *   if (lVar6 == 0) goto LAB_0337be20;
		 *   lVar10 = *(long *)PTR_DAT_070c5780;
		 *   if (plVar15 == null) {
		 *     ThrowHelper.ThrowArgumentNullException(5);
		 *   }
		 *   if (*(long *)(lVar6 + 0x10) != 0) {
		 *     plVar16 = *(long **)(lVar6 + 0x30);
		 *     if (plVar16 == null) {
		 *       if (plVar15 == null) goto LAB_04e2e67c;
		 *       uVar5 = (**(code **)(*plVar15 + 0x158))(plVar15,*(undefined8 *)(*plVar15 + 0x160));
		 *     }
		 *     else {
		 *       lVar9 = *(long *)(*(long *)(*(long *)(lVar10 + 0x20) + 0xc0) + 8);
		 *       if ((*(ushort *)(lVar9 + 0x135) & 1) == 0) {
		 *         lVar9 = func_0x03237224(lVar9);
		 *       }
		 *       lVar11 = *plVar16;
		 *       uVar7 = (ulong)*(ushort *)(lVar11 + 0x12e);
		 *       if (uVar7 != 0) {
		 *         piVar14 = (int *)(*(long *)(lVar11 + 0xb0) + 8);
		 *         do {
		 *           if (*(long *)(piVar14 + -2) == lVar9) {
		 *             puVar8 = (undefined8 *)(lVar11 + (long)(*piVar14 + 1) * 0x10 + 0x138);
		 *             goto LAB_04e2e440;
		 *           }
		 *           uVar7 = uVar7 - 1;
		 *           piVar14 = piVar14 + 4;
		 *         } while (uVar7 != 0);
		 *       }
		 *       puVar8 = (undefined8 *)func_0x03237558(plVar16,lVar9,1);
		 * LAB_04e2e440:
		 *       uVar5 = (*(code *)*puVar8)(plVar16,plVar15,puVar8[1]);
		 *     }
		 *     lVar9 = *(long *)(lVar6 + 0x10);
		 *     if (lVar9 == 0) {
		 * LAB_04e2e67c:
		 *       IL2CPP.ThrowNullReferenceException();
		 *     }
		 *     uVar18 = *(uint *)(lVar9 + 0x18);
		 *     uVar5 = uVar5 & 0x7fffffff;
		 *     iVar3 = 0;
		 *     if (uVar18 != 0) {
		 *       iVar3 = (int)uVar5 / (int)uVar18;
		 *     }
		 *     uVar2 = uVar5 - iVar3 * uVar18;
		 *     if (uVar18 <= uVar2) {
		 * LAB_04e2e680:
		 *       IL2CPP.ThrowIndexOutOfRangeException();
		 *     }
		 *     uVar18 = *(int *)(lVar9 + (ulong)uVar2 * 4 + 0x20) - 1;
		 *     if (-1 < (int)uVar18) {
		 *       uVar7 = 0xffffffff;
		 *       do {
		 *         lVar9 = *(long *)(lVar6 + 0x18);
		 *         if (lVar9 == 0) goto LAB_04e2e67c;
		 *         if (*(uint *)(lVar9 + 0x18) <= uVar18) goto LAB_04e2e680;
		 *         lVar9 = lVar9 + 0x20;
		 *         puVar20 = (uint *)(lVar9 + (ulong)uVar18 * 0x18);
		 *         uVar19 = (ulong)uVar18;
		 *         if (*puVar20 == uVar5) {
		 *           plVar16 = *(long **)(lVar6 + 0x30);
		 *           if (plVar16 == null) {
		 *             plVar16 = (long *)func_0x036616c4(*(undefined8 *)
		 *                                                (*(long *)(*(long *)(lVar10 + 0x20) + 0xc0) + 0x18));
		 *             if (plVar16 == null) goto LAB_04e2e67c;
		 *             uVar13 = (**(code **)(*plVar16 + 0x1b8))
		 *                                (plVar16,*(undefined8 *)(lVar9 + uVar19 * 0x18 + 8),plVar15,
		 *                                 *(undefined8 *)(*plVar16 + 0x1c0));
		 *           }
		 *           else {
		 *             lVar11 = *(long *)(*(long *)(*(long *)(lVar10 + 0x20) + 0xc0) + 8);
		 *             uVar17 = *(undefined8 *)(lVar9 + uVar19 * 0x18 + 8);
		 *             if ((*(ushort *)(lVar11 + 0x135) & 1) == 0) {
		 *               lVar11 = func_0x03237224(lVar11);
		 *             }
		 *             lVar12 = *plVar16;
		 *             uVar13 = (ulong)*(ushort *)(lVar12 + 0x12e);
		 *             if (uVar13 != 0) {
		 *               piVar14 = (int *)(*(long *)(lVar12 + 0xb0) + 8);
		 *               do {
		 *                 if (*(long *)(piVar14 + -2) == lVar11) {
		 *                   puVar8 = (undefined8 *)(lVar12 + (long)*piVar14 * 0x10 + 0x138);
		 *                   goto LAB_04e2e58c;
		 *                 }
		 *                 uVar13 = uVar13 - 1;
		 *                 piVar14 = piVar14 + 4;
		 *               } while (uVar13 != 0);
		 *             }
		 *             puVar8 = (undefined8 *)func_0x03237558(plVar16,lVar11,0);
		 * LAB_04e2e58c:
		 *             uVar13 = (*(code *)*puVar8)(plVar16,uVar17,plVar15,puVar8[1]);
		 *           }
		 *           if ((uVar13 & 1) != 0) {
		 *             if ((int)(uint)uVar7 < 0) {
		 *               lVar10 = *(long *)(lVar6 + 0x10);
		 *               if (lVar10 == 0) goto LAB_04e2e67c;
		 *               if (*(uint *)(lVar10 + 0x18) <= uVar2) goto LAB_04e2e680;
		 *               *(int *)(lVar10 + (ulong)uVar2 * 4 + 0x20) = *(int *)(lVar9 + uVar19 * 0x18 + 4) + 1;
		 *             }
		 *             else {
		 *               lVar10 = *(long *)(lVar6 + 0x18);
		 *               if (lVar10 == 0) goto LAB_04e2e67c;
		 *               if (*(uint *)(lVar10 + 0x18) <= (uint)uVar7) goto LAB_04e2e680;
		 *               *(undefined4 *)(lVar10 + uVar7 * 0x18 + 0x24) =
		 *                    *(undefined4 *)(lVar9 + uVar19 * 0x18 + 4);
		 *             }
		 *             uVar1 = *(undefined4 *)(lVar6 + 0x24);
		 *             lVar9 = lVar9 + uVar19 * 0x18;
		 *             *puVar20 = 0xffffffff;
		 *             *(undefined4 *)(lVar9 + 4) = uVar1;
		 *             *(undefined8 *)(lVar9 + 8) = 0;
		 *             *(undefined8 *)(lVar9 + 0x10) = 0;
		 *             *(uint *)(lVar6 + 0x24) = uVar18;
		 *             *(ulong *)(lVar6 + 0x28) =
		 *                  CONCAT44((int)((ulong)*(undefined8 *)(lVar6 + 0x28) >> 0x20) + 1,
		 *                           (int)*(undefined8 *)(lVar6 + 0x28) + 1);
		 *             return;
		 *           }
		 *         }
		 *         uVar7 = (ulong)uVar18;
		 *         uVar18 = *(uint *)(lVar9 + uVar19 * 0x18 + 4);
		 *       } while (-1 < (int)uVar18);
		 *     }
		 *   }
		 *   return;
		 */
		// RVA: 0x327C554 VA: 0x7818967554
		public bool get_GetButton();
		/*
		 *   return this.m_Pressed;
		 */
		// RVA: 0x327C55C VA: 0x781896755C
		public bool get_GetButtonDown();
		/*
		 *   int iVar1;
		 *   int iVar2;
		 *
		 *   iVar1 = this.m_LastPressedFrame;
		 *   iVar2 = UnityEngine.Time.get_frameCount();
		 *   return iVar1 - iVar2 == -1;
		 */
		// RVA: 0x327C580 VA: 0x7818967580
		public bool get_GetButtonUp();
		/*
		 *   int iVar1;
		 *   int iVar2;
		 *
		 *   iVar1 = this.m_ReleasedFrame;
		 *   iVar2 = UnityEngine.Time.get_frameCount();
		 *   return iVar1 == iVar2 + -1;
		 */
	}
}
