namespace TMPro.Examples
{

	// [TypeInfo RVA: 0x0]
	public class TMPro_InstructionOverlay : MonoBehaviour
	{
		public TMPro.Examples.TMPro_InstructionOverlay.FpsCounterAnchorPositions AnchorPosition; // 0x20
		private const string instructions; // 0x0
		private TMPro.TextMeshPro m_TextMeshPro; // 0x28
		private TMPro.TextContainer m_textContainer; // 0x30
		private UnityEngine.Transform m_frameCounter_transform; // 0x38
		private UnityEngine.Camera m_camera; // 0x40

		// RVA: 0x326DFB0 VA: 0x7818958FB0
		private void Awake();
		/*
		 *   undefined *puVar1;
		 *   undefined *puVar2;
		 *   bool bVar3;
		 *   void *pvVar4;
		 *   void *pvVar5;
		 *   undefined8 uVar6;
		 *   void **ppvVar7;
		 *   void *pvVar8;
		 *   long *plVar9;
		 *
		 *   if ((bRam000000000754abf8 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c1540);
		 *     func_0x031fdc8c(PTR_DAT_070c5430);
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_GameObject_6FC1548);
		 *     func_0x031fdc8c(PTR_DAT_070c50c0);
		 *     func_0x031fdc8c(PTR_DAT_070c5438);
		 *     func_0x031fdc8c(PTR_DAT_070c5440);
		 *     func_0x031fdc8c(PTR_DAT_070c5448);
		 *     func_0x031fdc8c(PTR_DAT_070c5450);
		 *     func_0x031fdc8c(PTR_DAT_070c5458);
		 *     bRam000000000754abf8 = 1;
		 *   }
		 *   bVar3 = UnityEngine.InputSystem.OnScreen.OnScreenStick.Behaviour.get_enabled(this);
		 *   puVar2 = PTR_DAT_070c5450;
		 *   puVar1 = typeinfo_ptr_UnityEngine_CoreModule_GameObject_6FC1548;
		 *   if (bVar3) {
		 *     pvVar4 = UnityEngine.Camera.get_main();
		 *     this.m_camera = pvVar4;
		 *     func_0x031fdc38();
		 *     pvVar4 = (void *)func_0x031fdf24(*(undefined8 *)puVar1);
		 *     UnityEngine.GameObject..ctor(pvVar4,*(void **)puVar2);
		 *     if (pvVar4 != null) {
		 *       pvVar5 = UnityEngine.GameObject.get_transform(pvVar4);
		 *       ppvVar7 = &this.m_frameCounter_transform;
		 *       *ppvVar7 = pvVar5;
		 *       func_0x031fdc38(ppvVar7,pvVar5);
		 *       if (this.m_camera != null) {
		 *         pvVar8 = *ppvVar7;
		 *         pvVar5 = UnityEngine.Component.get_transform(this.m_camera);
		 *         if (pvVar8 != null) {
		 *           UnityEngine.Transform.set_parent(pvVar8,pvVar5);
		 *           pvVar5 = *ppvVar7;
		 *           if (cRam000000000754a7d0 == '\0') {
		 *             func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Quaternion_6FC0EA0);
		 *             cRam000000000754a7d0 = '\x01';
		 *           }
		 *           if (pvVar5 != null) {
		 *             UnityEngine.Transform.set_localRotation(pvVar5,**(UnityEngine_Vector4 **)
		 *                                 (*(long *)typeinfo_ptr_UnityEngine_CoreModule_Quaternion_6FC0EA0 +
		 *                                 0xb8));
		 *             pvVar5 = (void *)func_0x037f2fa8(pvVar4,*(undefined8 *)PTR_DAT_070c1540);
		 *             ppvVar7 = &this.m_TextMeshPro;
		 *             *ppvVar7 = pvVar5;
		 *             func_0x031fdc38(ppvVar7,pvVar5);
		 *             pvVar8 = *ppvVar7;
		 *             pvVar5 = (void *)func_0x03949758(*(undefined8 *)PTR_DAT_070c5458,
		 *                                              *(undefined8 *)PTR_DAT_070c5438);
		 *             if (pvVar8 != null) {
		 *               TMPro.TMP_Text.set_font(pvVar8,pvVar5);
		 *               plVar9 = *ppvVar7;
		 *               uVar6 = func_0x03949758(*(undefined8 *)PTR_DAT_070c5448,
		 *                                       *(undefined8 *)PTR_DAT_070c50c0);
		 *               if (plVar9 != null) {
		 *                 (**(code **)(*plVar9 + 0x578))(plVar9,uVar6,*(undefined8 *)(*plVar9 + 0x580));
		 *                 if (*ppvVar7 != null) {
		 *                   TMPro.TMP_Text.set_fontSize(*ppvVar7,30.0);
		 *                   if (*ppvVar7 != null) {
		 *                     TMPro.TMP_Text.set_isOverlay(*ppvVar7,true);
		 *                     pvVar4 = (void *)func_0x037f3038(pvVar4,*(undefined8 *)PTR_DAT_070c5430);
		 *                     this.m_textContainer = pvVar4;
		 *                     func_0x031fdc38();
		 *                     TMPro_InstructionOverlay.Set_FrameCounter_Position(this,*(undefined4 *)&this.AnchorPosition);
		 *                     plVar9 = this.m_TextMeshPro;
		 *                     if (plVar9 != null) {
		 *                       (**(code **)(*plVar9 + 0x558))
		 *                                 (plVar9,*(undefined8 *)PTR_DAT_070c5440,
		 *                                  *(undefined8 *)(*plVar9 + 0x560));
		 *                       return;
		 *                     }
		 *                   }
		 *                 }
		 *               }
		 *             }
		 *           }
		 *         }
		 *       }
		 *     }
		 *     IL2CPP.ThrowNullReferenceException();
		 *   }
		 *   return;
		 */
		// RVA: 0x326E25C VA: 0x781895925C
		private void Set_FrameCounter_Position(TMPro.Examples.TMPro_InstructionOverlay.FpsCounterAnchorPositions anchor_position);
		/*
		 *   void *this;
		 *   void *obj;
		 *   long lVar1;
		 *   undefined4 uVar2;
		 *   undefined4 uVar3;
		 *   UnityEngine_Vector3 UVar4;
		 *   float fStack_2c;
		 *   float fStack_28;
		 *   float fStack_24;
		 *
		 *   if (param_2 < 2) {
		 *     if (param_2 == 0) {
		 *       if (*(void **)(param_1 + 0x30) == null) goto LAB_0336e368;
		 *       TMPro.TextContainer.set_anchorPosition(*(void **)(param_1 + 0x30),0);
		 *       this = *(void **)(param_1 + 0x40);
		 *       if (this == null) goto LAB_0336e368;
		 *       uVar2 = 0;
		 *       obj = *(void **)(param_1 + 0x38);
		 * LAB_0336e344:
		 *       uVar3 = 0x3f800000;
		 *     }
		 *     else {
		 *       if (param_2 != 1) {
		 *         return;
		 *       }
		 *       if (*(void **)(param_1 + 0x30) == null) goto LAB_0336e368;
		 *       TMPro.TextContainer.set_anchorPosition(*(void **)(param_1 + 0x30),6);
		 *       this = *(void **)(param_1 + 0x40);
		 *       if (this == null) goto LAB_0336e368;
		 *       obj = *(void **)(param_1 + 0x38);
		 *       uVar2 = 0;
		 *       uVar3 = 0;
		 *     }
		 *   }
		 *   else {
		 *     if (param_2 == 2) {
		 *       if (*(void **)(param_1 + 0x30) == null) goto LAB_0336e368;
		 *       TMPro.TextContainer.set_anchorPosition(*(void **)(param_1 + 0x30),2);
		 *       this = *(void **)(param_1 + 0x40);
		 *       if (this == null) goto LAB_0336e368;
		 *       obj = *(void **)(param_1 + 0x38);
		 *       uVar2 = 0x3f800000;
		 *       goto LAB_0336e344;
		 *     }
		 *     if (param_2 != 3) {
		 *       return;
		 *     }
		 *     if (*(void **)(param_1 + 0x30) == null) goto LAB_0336e368;
		 *     TMPro.TextContainer.set_anchorPosition(*(void **)(param_1 + 0x30),8);
		 *     this = *(void **)(param_1 + 0x40);
		 *     if (this == null) goto LAB_0336e368;
		 *     obj = *(void **)(param_1 + 0x38);
		 *     uVar3 = 0;
		 *     uVar2 = 0x3f800000;
		 *   }
		 *   UVar4.y = (float)uVar3;
		 *   UVar4.x = (float)uVar2;
		 *   UVar4.z = 100.0;
		 *   UVar4 = UnityEngine.Camera.ViewportToWorldPoint(this,UVar4);
		 *   fStack_24 = UVar4.z;
		 *   fStack_28 = UVar4.y;
		 *   fStack_2c = UVar4.x;
		 *   if (obj != null) {
		 *     if ((bRam000000000755ff19 & 1) == 0) {
		 *       func_0x031fdc8c(PTR_DAT_0714f6d0,0);
		 *       bRam000000000755ff19 = 1;
		 *     }
		 *     if (obj == null) {
		 *       IL2CPP.ThrowNullReferenceException();
		 *     }
		 *     lVar1 = *(long *)((long)obj + 0x10);
		 *     if (lVar1 == 0) {
		 *       UnityEngine.Bindings.ThrowHelper.ThrowNullReferenceException(obj);
		 *     }
		 *     if (pcRam000000000755ff50 == null) {
		 *       pcRam000000000755ff50 = (code *)func_0x031fdc50(&UNK_01396672);
		 *     }
		 *     (*pcRam000000000755ff50)(lVar1,&fStack_2c);
		 *     return;
		 *   }
		 * LAB_0336e368:
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x326E36C VA: 0x781895936C
		public void .ctor();
		/*
		 *   undefined *puVar1;
		 *
		 *   *(undefined4 *)&this.AnchorPosition = 1;
		 *   puVar1 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
		 *   if ((bRam000000000755f76f & 1) == 0) {
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8,0);
		 *     bRam000000000755f76f = 1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *   }
		 *   return;
		 */
	}
}
