namespace TMPro.Examples
{

	// [TypeInfo RVA: 0x0]
	private sealed class <DisplayTextMeshProFloatingText>d__15 : Object
	{
		private int <>1__state; // 0x10
		private object <>2__current; // 0x18
		public TMPro.Examples.TextMeshProFloatingText <>4__this; // 0x20
		private float <CountDuration>5__2; // 0x28
		private float <starting_Count>5__3; // 0x2C
		private float <current_Count>5__4; // 0x30
		private UnityEngine.Vector3 <start_pos>5__5; // 0x34
		private UnityEngine.Color32 <start_color>5__6; // 0x40
		private float <alpha>5__7; // 0x44
		private float <fadeDuration>5__8; // 0x48

		// RVA: 0x326CCE4 VA: 0x7818957CE4
		public void .ctor(int <>1__state);
		/*
		 *   System.Object..ctor(this);
		 *   this.n_1_state = n_1_state;
		 *   return;
		 */
		// RVA: 0x326D7CC VA: 0x78189587CC
		private void System.IDisposable.Dispose();
		/*
		 *   return;
		 */
		// RVA: 0x326D7D0 VA: 0x78189587D0
		private bool MoveNext();
		/*
		 *   int iVar1;
		 *   undefined *puVar2;
		 *   bool bVar3;
		 *   undefined4 uVar4;
		 *   uint uVar5;
		 *   long *plVar6;
		 *   void *pvVar7;
		 *   long lVar8;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *methodInfo_00;
		 *   TextMeshProFloatingText *this_00;
		 *   float fVar9;
		 *   float fVar10;
		 *   float fVar11;
		 *   float fVar12;
		 *   UnityEngine_Vector3 UVar13;
		 *   UnityEngine_Vector3 UVar14;
		 *   UnityEngine_Vector3 value;
		 *   UnityEngine_Vector4 q2;
		 *   UnityEngine_Vector4 UVar15;
		 *   int iStack_44;
		 *
		 *   if ((bRam000000000754abf6 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c5410);
		 *     bRam000000000754abf6 = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   iVar1 = this.n_1_state;
		 *   this_00 = this.n_4_this;
		 *   iStack_44 = 0;
		 *   if (iVar1 == 2) {
		 *     this.n_1_state = -1;
		 *     if ((this_00 != null) &&
		 *        (this_00->m_floatingText_Transform != null)) {
		 *       UnityEngine.Transform.set_position(this_00->m_floatingText_Transform,this.start_pos_5_5);
		 *       pvVar7 = TextMeshProFloatingText.DisplayTextMeshProFloatingText(this_00);
		 *       UnityEngine.MonoBehaviour.StartCoroutine(this_00,pvVar7);
		 *       return false;
		 *     }
		 *     goto LAB_0336dc1c;
		 *   }
		 *   if (iVar1 == 1) {
		 *     this.n_1_state = -1;
		 *   }
		 *   else {
		 *     if (iVar1 != 0) {
		 *       return false;
		 *     }
		 *     this.n_1_state = -1;
		 *     this.CountDuration_5_2 = 2.0;
		 *     fVar9 = Random.Range(5.0,20.0);
		 *     this.starting_Count_5_3 = fVar9;
		 *     this.current_Count_5_4 = fVar9;
		 *     if ((this_00 == null) ||
		 *        (this_00->m_floatingText_Transform == null)) goto LAB_0336dc1c;
		 *     UVar13 = UnityEngine.Transform.get_position(this_00->m_floatingText_Transform);
		 *     (this.start_pos_5_5).x = UVar13.x;
		 *     (this.start_pos_5_5).y = UVar13.y;
		 *     (this.start_pos_5_5).z = UVar13.z;
		 *     plVar6 = this_00->m_textMeshPro;
		 *     if (plVar6 == null) goto LAB_0336dc1c;
		 *     (**(code **)(*plVar6 + 0x298))(plVar6,*(undefined8 *)(*plVar6 + 0x2a0));
		 *     uVar4 = func_0x0335ec5c(0);
		 *     *(undefined4 *)&this.field_0x40 = uVar4;
		 *     this.alpha_5_7 = 255.0;
		 *     this.fadeDuration_5_8 = (3.0 / this.starting_Count_5_3) * this.CountDuration_5_2;
		 *     methodInfo = extraout_x1_00;
		 *   }
		 *   puVar2 = PTR_DAT_070c5410;
		 *   iStack_44 = 0;
		 *   fVar9 = this.current_Count_5_4;
		 *   if (fVar9 <= 0.0) {
		 *     lVar8 = *(long *)PTR_DAT_070c5410;
		 *     if (*(int *)(lVar8 + 0xe4) == 0) {
		 *       func_0x031fde08(lVar8,methodInfo);
		 *       lVar8 = *(long *)puVar2;
		 *     }
		 *     lVar8 = *(long *)(*(long *)(lVar8 + 0xb8) + 8);
		 *     uVar5 = Random.Range(0,0x13);
		 *     if (lVar8 != 0) {
		 *       if (uVar5 < *(uint *)(lVar8 + 0x18)) {
		 *         this.n_2_current = *(void **)(lVar8 + (long)(int)uVar5 * 8 + 0x20);
		 *         func_0x031fdc38(&this.n_2_current);
		 *         this.n_1_state = 2;
		 *         return true;
		 *       }
		 *       IL2CPP.ThrowIndexOutOfRangeException();
		 *     }
		 *   }
		 *   else {
		 *     fVar10 = UnityEngine.Time.get_deltaTime();
		 *     fVar9 = fVar9 - (fVar10 / this.CountDuration_5_2) * this.starting_Count_5_3;
		 *     this.current_Count_5_4 = fVar9;
		 *     if (fVar9 <= 3.0) {
		 *       fVar12 = this.alpha_5_7;
		 *       fVar9 = UnityEngine.Time.get_deltaTime();
		 *       fVar12 = fVar12 - (fVar9 / this.fadeDuration_5_8) * 255.0;
		 *       fVar10 = 255.0;
		 *       if (fVar12 <= 255.0) {
		 *         fVar10 = fVar12;
		 *       }
		 *       fVar9 = this.current_Count_5_4;
		 *       fVar11 = 0.0;
		 *       if (0.0 <= fVar12) {
		 *         fVar11 = fVar10;
		 *       }
		 *       this.alpha_5_7 = fVar11;
		 *     }
		 *     iStack_44 = -0x80000000;
		 *     if (fVar9 != INFINITY) {
		 *       iStack_44 = (int)fVar9;
		 *     }
		 *     if (this_00 == null) goto LAB_0336dc1c;
		 *     plVar6 = this_00->m_textMeshPro;
		 *     pvVar7 = System.Int32.ToString(&iStack_44);
		 *     if (plVar6 == null) goto LAB_0336dc1c;
		 *     (**(code **)(*plVar6 + 0x558))(plVar6,pvVar7,*(undefined8 *)(*plVar6 + 0x560));
		 *     plVar6 = this_00->m_textMeshPro;
		 *     if (plVar6 == null) goto LAB_0336dc1c;
		 *     fVar9 = (float)NEON_ucvtf((uint)(byte)this.field_0x42);
		 *     fVar10 = (float)NEON_ucvtf((uint)(byte)this.field_0x41);
		 *     fVar12 = (float)NEON_ucvtf((uint)(byte)this.field_0x40);
		 *     (**(code **)(*plVar6 + 0x2a8))
		 *               (fVar12 / 255.0,fVar10 / 255.0,fVar9 / 255.0,
		 *                (float)((int)this.alpha_5_7 & 0xff) / 255.0,plVar6,*(undefined8 *)(*plVar6 + 0x2b0))
		 *     ;
		 *     pvVar7 = this_00->m_floatingText_Transform;
		 *     if (pvVar7 == null) goto LAB_0336dc1c;
		 *     UVar13 = UnityEngine.Transform.get_position(pvVar7);
		 *     fVar10 = this.starting_Count_5_3;
		 *     fVar9 = UnityEngine.Time.get_deltaTime();
		 *     UVar14.x = UVar13.x + 0.0;
		 *     UVar14.y = UVar13.y + fVar10 * fVar9;
		 *     UVar14.z = UVar13.z + 0.0;
		 *     UnityEngine.Transform.set_position(pvVar7,UVar14);
		 *     if (this_00->m_cameraTransform == null) goto LAB_0336dc1c;
		 *     UVar13 = this_00->lastPOS;
		 *     UVar14 = UnityEngine.Transform.get_position(this_00->m_cameraTransform);
		 *     bVar3 = TMPro_ExtensionMethods.Compare(UVar13,UVar14,1000);
		 *     if (bVar3) {
		 *       if (this_00->m_cameraTransform == null) goto LAB_0336dc1c;
		 *       UVar15 = this_00->lastRotation;
		 *       q2 = UnityEngine.Transform.get_rotation(this_00->m_cameraTransform);
		 *       bVar3 = TMPro_ExtensionMethods.Compare(UVar15,q2,1000)
		 *       ;
		 *       if (bVar3) goto LAB_0336db20;
		 *     }
		 *     if (this_00->m_cameraTransform != null) {
		 *       UVar13 = UnityEngine.Transform.get_position(this_00->m_cameraTransform);
		 *       pvVar7 = this_00->m_cameraTransform;
		 *       (this_00->lastPOS).x = UVar13.x;
		 *       (this_00->lastPOS).y = UVar13.y;
		 *       (this_00->lastPOS).z = UVar13.z;
		 *       if (pvVar7 != null) {
		 *         UVar15 = UnityEngine.Transform.get_rotation(pvVar7);
		 *         pvVar7 = this_00->m_floatingText_Transform;
		 *         (this_00->lastRotation).x = UVar15.x;
		 *         (this_00->lastRotation).y = UVar15.y;
		 *         (this_00->lastRotation).z = UVar15.z;
		 *         (this_00->lastRotation).w = UVar15.w;
		 *         if (pvVar7 != null) {
		 *           UnityEngine.Transform.set_rotation(pvVar7,UVar15);
		 *           if (this_00->m_transform != null) {
		 *             UVar13 = UnityEngine.Transform.get_position(this_00->m_transform);
		 *             if (this_00->m_transform != null) {
		 *               value.z = UVar13.z - (this_00->lastPOS).z;
		 *               value.x = UVar13.x - (this_00->lastPOS).x;
		 *               value.y = 0.0;
		 *               UnityEngine.Transform.set_forward(this_00->m_transform,value);
		 * LAB_0336db20:
		 *               puVar2 = PTR_DAT_070c5410;
		 *               lVar8 = *(long *)PTR_DAT_070c5410;
		 *               if (*(int *)(lVar8 + 0xe4) == 0) {
		 *                 func_0x031fde08();
		 *                 lVar8 = *(long *)puVar2;
		 *               }
		 *               this.n_2_current = (void *)**(undefined8 **)(lVar8 + 0xb8);
		 *               func_0x031fdc38(&this.n_2_current);
		 *               this.n_1_state = 1;
		 *               return true;
		 *             }
		 *           }
		 *         }
		 *       }
		 *     }
		 *   }
		 * LAB_0336dc1c:
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x326DC24 VA: 0x7818958C24
		private object System.Collections.Generic.IEnumerator<System.Object>.get_Current();
		/*
		 *   return this.n_2_current;
		 */
		// RVA: 0x326DC2C VA: 0x7818958C2C
		private void System.Collections.IEnumerator.Reset();
		/*
		 *   void *this_00;
		 *   undefined8 uVar1;
		 *
		 *   func_0x031fdca0(PTR_DAT_070c0ad0);
		 *   this_00 = (void *)func_0x031fdf24();
		 *   System.NotSupportedException..ctor(this_00);
		 *   uVar1 = func_0x031fdca0(PTR_DAT_070c5428);
		 *   IL2CPP.ThrowManagedException();
		 */
		// RVA: 0x326DC64 VA: 0x7818958C64
		private object System.Collections.IEnumerator.get_Current();
		/*
		 *   return this.n_2_current;
		 */
	}
}
