namespace TMPro.Examples
{

	// [TypeInfo RVA: 0x0]
	public class TextMeshProFloatingText : MonoBehaviour
	{
		public UnityEngine.Font TheFont; // 0x20
		private UnityEngine.GameObject m_floatingText; // 0x28
		private TMPro.TextMeshPro m_textMeshPro; // 0x30
		private UnityEngine.TextMesh m_textMesh; // 0x38
		private UnityEngine.Transform m_transform; // 0x40
		private UnityEngine.Transform m_floatingText_Transform; // 0x48
		private UnityEngine.Transform m_cameraTransform; // 0x50
		private UnityEngine.Vector3 lastPOS; // 0x58
		private UnityEngine.Quaternion lastRotation; // 0x64
		public int SpawnType; // 0x74
		public bool IsTextObjectScaleStatic; // 0x78
		private static UnityEngine.WaitForEndOfFrame k_WaitForEndOfFrame; // 0x0
		private static UnityEngine.WaitForSeconds[] k_WaitForSecondsRandom; // 0x8

		// RVA: 0x326C70C VA: 0x781895770C
		private void Awake();
		/*
		 *   void *pvVar1;
		 *   void **ppvVar2;
		 *
		 *   if ((bRam000000000754abf0 & 1) == 0) {
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_GameObject_6FC1548);
		 *     func_0x031fdc8c(PTR_DAT_070c53f8);
		 *     bRam000000000754abf0 = 1;
		 *   }
		 *   pvVar1 = UnityEngine.Component.get_transform(this);
		 *   ppvVar2 = &this.m_transform;
		 *   *ppvVar2 = pvVar1;
		 *   if (iRam00000000077785f0 != 0) {
		 *     func_0x032ed0c0(1L << ((ulong)ppvVar2 >> 0xc & 0x3f),
		 *                     ((ulong)ppvVar2 >> 0x12 & 0x7fff) * 8 + 0x75ac5c8);
		 *   }
		 *   return;
		 */
		// RVA: 0x326C7F0 VA: 0x78189577F0
		private void Start();
		/*
		 *   uint uVar1;
		 *   uint uVar2;
		 *   uint uVar3;
		 *   void *pvVar4;
		 *   ulong uVar5;
		 *   void *pvVar6;
		 *   undefined8 uVar7;
		 *   void *methodInfo_00;
		 *   void *methodInfo_01;
		 *   long lVar8;
		 *   long lVar9;
		 *   void **ppvVar10;
		 *   void **ppvVar11;
		 *   long *plVar12;
		 *   UnityEngine_Vector3 UVar13;
		 *   UnityEngine_Vector3 value;
		 *   UnityEngine_Vector3 value_00;
		 *   UnityEngine_Color value_01;
		 *
		 *   if ((bRam000000000754abf1 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c26a8);
		 *     func_0x031fdc8c(PTR_DAT_070c1540);
		 *     func_0x031fdc8c(PTR_DAT_070c5268);
		 *     func_0x031fdc8c(PTR_DAT_070c52d8);
		 *     func_0x031fdc8c(PTR_DAT_070c52e0);
		 *     func_0x031fdc8c(PTR_DAT_070c5278);
		 *     bRam000000000754abf1 = 1;
		 *   }
		 *   if (this.SpawnType == 1) {
		 *     if (this.m_floatingText != null) {
		 *       pvVar4 = UnityEngine.GameObject.get_transform(this.m_floatingText);
		 *       ppvVar10 = &this.m_floatingText_Transform;
		 *       *ppvVar10 = pvVar4;
		 *       func_0x031fdc38(ppvVar10,pvVar4);
		 *       if (this.m_transform != null) {
		 *         pvVar4 = *ppvVar10;
		 *         UVar13 = UnityEngine.Transform.get_position(this.m_transform);
		 *         if (pvVar4 != null) {
		 *           value_00.y = UVar13.y + 15.0;
		 *           value_00.z = UVar13.z + 0.0;
		 *           value_00.x = UVar13.x + 0.0;
		 *           UnityEngine.Transform.set_position(pvVar4,value_00);
		 *           if (this.m_floatingText != null) {
		 *             pvVar4 = (void *)func_0x037f2fa8(this.m_floatingText,*(undefined8 *)PTR_DAT_070c5268);
		 *             ppvVar10 = &this.m_textMesh;
		 *             *ppvVar10 = pvVar4;
		 *             func_0x031fdc38(ppvVar10,pvVar4);
		 *             pvVar6 = *ppvVar10;
		 *             pvVar4 = (void *)func_0x03949758(*(undefined8 *)PTR_DAT_070c5278,
		 *                                              *(undefined8 *)PTR_DAT_070c52e0);
		 *             if (pvVar6 != null) {
		 *               UnityEngine.TextMesh.set_font(pvVar6,pvVar4)
		 *               ;
		 *               if (*ppvVar10 != null) {
		 *                 pvVar4 = (void *)func_0x0373df50(*ppvVar10,*(undefined8 *)PTR_DAT_070c26a8);
		 *                 if (((*ppvVar10 != null) &&
		 *                     (pvVar6 = UnityEngine.TextMesh.get_font(*ppvVar10), pvVar6 != null)) &&
		 *                    (pvVar6 = UnityEngine.Font.get_material(pvVar6), pvVar4 != null)) {
		 *                   UnityEngine.Renderer.set_sharedMaterial(pvVar4,pvVar6);
		 *                   pvVar4 = *ppvVar10;
		 *                   uVar1 = Random.Range(0,0xff);
		 *                   uVar2 = Random.Range(0,0xff);
		 *                   uVar3 = Random.Range(0,0xff);
		 *                   if (pvVar4 != null) {
		 *                     value_01.b = (float)(uVar3 & 0xff) / 255.0;
		 *                     value_01.g = (float)(uVar2 & 0xff) / 255.0;
		 *                     value_01.r = (float)(uVar1 & 0xff) / 255.0;
		 *                     value_01.a = 1.0;
		 *                     UnityEngine.TextMesh.set_color(pvVar4,value_01);
		 *                     if (*ppvVar10 != null) {
		 *                       UnityEngine.TextMesh.set_anchor(*ppvVar10,7);
		 *                       if (*ppvVar10 != null) {
		 *                         UnityEngine.TextMesh.set_fontSize(*ppvVar10,0x18);
		 *                         pvVar4 = TextMeshProFloatingText.DisplayTextMeshFloatingText(this);
		 *                         goto LAB_0336cbdc;
		 *                       }
		 *                     }
		 *                   }
		 *                 }
		 *               }
		 *             }
		 *           }
		 *         }
		 *       }
		 *     }
		 *   }
		 *   else {
		 *     if (this.SpawnType != 0) {
		 *       return;
		 *     }
		 *     if (this.m_floatingText != null) {
		 *       pvVar4 = (void *)func_0x037f2fa8(this.m_floatingText,*(undefined8 *)PTR_DAT_070c1540);
		 *       ppvVar10 = &this.m_textMeshPro;
		 *       *ppvVar10 = pvVar4;
		 *       func_0x031fdc38(ppvVar10,pvVar4);
		 *       if ((*ppvVar10 != null) &&
		 *          (pvVar4 = TMPro.TMP_Text.get_rectTransform(*ppvVar10),
		 *          pvVar4 != null)) {
		 *         UnityEngine.RectTransform.set_sizeDelta(pvVar4,(UnityEngine_Vector2)0x4040000040400000);
		 *         if (this.m_floatingText != null) {
		 *           pvVar4 = UnityEngine.GameObject.get_transform(this.m_floatingText);
		 *           ppvVar11 = &this.m_floatingText_Transform;
		 *           *ppvVar11 = pvVar4;
		 *           func_0x031fdc38(ppvVar11,pvVar4);
		 *           if (this.m_transform != null) {
		 *             pvVar4 = *ppvVar11;
		 *             UVar13 = UnityEngine.Transform.get_position(this.m_transform);
		 *             if (pvVar4 != null) {
		 *               value.y = UVar13.y + 15.0;
		 *               value.z = UVar13.z + 0.0;
		 *               value.x = UVar13.x + 0.0;
		 *               UnityEngine.Transform.set_position(pvVar4,value);
		 *               if (*ppvVar10 != null) {
		 *                 TMPro.TMP_Text.set_alignment(*ppvVar10,0x202);
		 *                 plVar12 = *ppvVar10;
		 *                 uVar1 = Random.Range(0,0xff);
		 *                 uVar2 = Random.Range(0,0xff);
		 *                 uVar3 = Random.Range(0,0xff);
		 *                 if (plVar12 != null) {
		 *                   (**(code **)(*plVar12 + 0x2a8))
		 *                             ((float)(uVar1 & 0xff) / 255.0,(float)(uVar2 & 0xff) / 255.0,
		 *                              (float)(uVar3 & 0xff) / 255.0,0x3f800000,plVar12,
		 *                              *(undefined8 *)(*plVar12 + 0x2b0));
		 *                   if (*ppvVar10 != null) {
		 *                     TMPro.TMP_Text.set_fontSize(*ppvVar10,24.0);
		 *                     plVar12 = *ppvVar10;
		 *                     if ((plVar12 != null) && (lVar8 = plVar12[0x66], lVar8 != 0)) {
		 *                       lVar9 = *(long *)(PTR_DAT_070c0840 + 0x90);
		 *                       *(undefined4 *)(lVar8 + 0x18) = 0;
		 *                       *(int *)(lVar8 + 0x1c) = *(int *)(lVar8 + 0x1c) + 1;
		 *                       (**(code **)(*plVar12 + 0x558))
		 *                                 (plVar12,**(undefined8 **)(lVar9 + 0xb8),
		 *                                  *(undefined8 *)(*plVar12 + 0x560));
		 *                       if (*ppvVar10 != null) {
		 *                         TMPro.TMP_Text.set_isTextObjectScaleStatic(*ppvVar10,this.IsTextObjectScaleStatic);
		 *                         pvVar4 = TextMeshProFloatingText.DisplayTextMeshProFloatingText(this);
		 * LAB_0336cbdc:
		 *                         if (pvVar4 == null) {
		 *                           func_0x031fdca0(PTR_DAT_070c9118,0,0);
		 *                           pvVar6 = (void *)func_0x031fdf24();
		 *                           pvVar4 = (void *)func_0x031fdca0(PTR_DAT_0714f5c8);
		 *                           NullReferenceException..ctor(pvVar6,pvVar4);
		 *                         }
		 *                         else {
		 *                           uVar5 = UnityEngine.MonoBehaviour.IsObjectMonoBehaviour();
		 *                           if ((uVar5 & 1) != 0) {
		 *                             if ((bRam000000000755f8f7 & 1) == 0) {
		 *                               func_0x031fdc8c(PTR_DAT_0714f590);
		 *                               bRam000000000755f8f7 = 1;
		 *                             }
		 *                             if (this != null) {
		 *                               lVar8 = *(long *)&this.field_0x10;
		 *                               if (lVar8 == 0) {
		 *                                 UnityEngine.Bindings.ThrowHelper.ThrowNullReferenceException(this);
		 *                               }
		 *                               if (pcRam000000000755f968 == null) {
		 *                                 pcRam000000000755f968 = (code *)func_0x031fdc50(&UNK_013604ff);
		 *                               }
		 *                               (*pcRam000000000755f968)(lVar8,pvVar4);
		 *                               return;
		 *                             }
		 *                             IL2CPP.ThrowNullReferenceException();
		 *                           }
		 *                           func_0x031fdca0(PTR_DAT_070c6fb0);
		 *                           pvVar6 = (void *)func_0x031fdf24();
		 *                           pvVar4 = (void *)func_0x031fdca0(PTR_DAT_0714f5b0);
		 *                           System.ArgumentException..ctor(pvVar6,pvVar4);
		 *                         }
		 *                         uVar7 = func_0x031fdca0(PTR_DAT_0714f5d0);
		 *                         IL2CPP.ThrowManagedException();
		 *                       }
		 *                     }
		 *                   }
		 *                 }
		 *               }
		 *             }
		 *           }
		 *         }
		 *       }
		 *     }
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x326CC0C VA: 0x7818957C0C
		public System.Collections.IEnumerator DisplayTextMeshProFloatingText();
		/*
		 *   undefined *puVar1;
		 *   void *this_00;
		 *   void *extraout_x1;
		 *
		 *   puVar1 = PTR_DAT_070c5400;
		 *   if ((bRam000000000754abf2 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c5400);
		 *     bRam000000000754abf2 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   this_00 = (void *)func_0x031fdf24(*(undefined8 *)puVar1,methodInfo);
		 *   System.Object..ctor(this_00);
		 *   *(undefined4 *)((long)this_00 + 0x10) = 0;
		 *   *(undefined8 *)((long)this_00 + 0x20) = this;
		 *   func_0x031fdc38((undefined8 *)((long)this_00 + 0x20),this);
		 *   return this_00;
		 */
		// RVA: 0x326CC78 VA: 0x7818957C78
		public System.Collections.IEnumerator DisplayTextMeshFloatingText();
		/*
		 *   undefined *puVar1;
		 *   void *this_00;
		 *   void *extraout_x1;
		 *
		 *   puVar1 = PTR_DAT_070c5408;
		 *   if ((bRam000000000754abf3 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c5408);
		 *     bRam000000000754abf3 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   this_00 = (void *)func_0x031fdf24(*(undefined8 *)puVar1,methodInfo);
		 *   System.Object..ctor(this_00);
		 *   *(undefined4 *)((long)this_00 + 0x10) = 0;
		 *   *(undefined8 *)((long)this_00 + 0x20) = this;
		 *   func_0x031fdc38((undefined8 *)((long)this_00 + 0x20),this);
		 *   return this_00;
		 */
		// RVA: 0x326CD34 VA: 0x7818957D34
		public void .ctor();
		/*
		 *   undefined *puVar1;
		 *   char cVar2;
		 *   void *extraout_x1;
		 *   undefined8 uVar3;
		 *   undefined8 uVar4;
		 *   float fVar5;
		 *
		 *   if (cRam000000000754a7ce == '\0') {
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08);
		 *     cRam000000000754a7ce = '\x01';
		 *     methodInfo = extraout_x1;
		 *   }
		 *   cVar2 = cRam000000000754a7d0;
		 *   uVar3 = **(undefined8 **)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 + 0xb8);
		 *   fVar5 = *(float *)(*(undefined8 **)
		 *                       (*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 + 0xb8) + 1);
		 *   (this.lastPOS).x = (float)(int)uVar3;
		 *   (this.lastPOS).y = (float)(int)((ulong)uVar3 >> 0x20);
		 *   (this.lastPOS).z = fVar5;
		 *   if (cVar2 == '\0') {
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Quaternion_6FC0EA0,methodInfo);
		 *     cRam000000000754a7d0 = '\x01';
		 *   }
		 *   uVar4 = (*(undefined8 **)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Quaternion_6FC0EA0 + 0xb8))
		 *           [1];
		 *   uVar3 = **(undefined8 **)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Quaternion_6FC0EA0 + 0xb8);
		 *   (this.lastRotation).z = (float)(int)uVar4;
		 *   (this.lastRotation).w = (float)(int)((ulong)uVar4 >> 0x20);
		 *   (this.lastRotation).x = (float)(int)uVar3;
		 *   puVar1 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
		 *   (this.lastRotation).y = (float)(int)((ulong)uVar3 >> 0x20);
		 *   if ((bRam000000000755f76f & 1) == 0) {
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8,0);
		 *     bRam000000000755f76f = 1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *   }
		 *   return;
		 */
		// RVA: 0x326CDCC VA: 0x7818957DCC
		private static void .cctor();
		/*
		 *   undefined *puVar1;
		 *   undefined *puVar2;
		 *   void *this;
		 *   ulong uVar3;
		 *
		 *   puVar2 = PTR_DAT_070c5410;
		 *   puVar1 = PTR_DAT_070c5358;
		 *   if ((bRam000000000754abf4 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c5410);
		 *     func_0x031fdc8c(PTR_DAT_070c5358);
		 *     func_0x031fdc8c(PTR_DAT_070c5418);
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_WaitForSeconds_6FC0B10);
		 *     bRam000000000754abf4 = 1;
		 *   }
		 *   this = (void *)func_0x031fdf24(*(undefined8 *)puVar1);
		 *   UnityEngine.WaitForEndOfFrame..ctor(this);
		 *   **(undefined8 **)(*(long *)puVar2 + 0xb8) = this;
		 *   uVar3 = *(ulong *)(*(long *)puVar2 + 0xb8);
		 *   if (iRam00000000077785f0 != 0) {
		 *     func_0x032ed0c0(1L << (uVar3 >> 0xc & 0x3f),(uVar3 >> 0x12 & 0x7fff) * 8 + 0x75ac5c8);
		 *   }
		 *   return;
		 */
	}
}
