namespace TMPro.Examples
{

	// [TypeInfo RVA: 0x0]
	private sealed class <DisplayTextMeshFloatingText>d__16 : 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: 0x326CD0C VA: 0x7818957D0C
		public void .ctor(int <>1__state);
		/*
		 *   System.Object..ctor(this);
		 *   this.n_1_state = n_1_state;
		 *   return;
		 */
		// RVA: 0x326D344 VA: 0x7818958344
		private void System.IDisposable.Dispose();
		/*
		 *   return;
		 */
		// RVA: 0x326D348 VA: 0x7818958348
		private bool MoveNext();
		/*
		 *   int iVar1;
		 *   undefined *puVar2;
		 *   bool bVar3;
		 *   undefined4 uVar4;
		 *   uint uVar5;
		 *   void *pvVar6;
		 *   long lVar7;
		 *   void *extraout_x1;
		 *   void *extraout_x1_00;
		 *   void *methodInfo_00;
		 *   TextMeshProFloatingText *this_00;
		 *   void *this_01;
		 *   float fVar8;
		 *   float fVar9;
		 *   float fVar10;
		 *   undefined4 uVar11;
		 *   undefined8 in_d2;
		 *   float fVar12;
		 *   UnityEngine_Vector3 UVar13;
		 *   UnityEngine_Vector3 UVar14;
		 *   UnityEngine_Vector3 value;
		 *   UnityEngine_Color UVar15;
		 *   UnityEngine_Vector4 q2;
		 *   UnityEngine_Vector4 UVar16;
		 *   int iStack_44;
		 *
		 *   uVar4 = (undefined4)((ulong)in_d2 >> 0x20);
		 *   if ((bRam000000000754abf5 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c5410);
		 *     bRam000000000754abf5 = 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);
		 *       pvVar6 = TextMeshProFloatingText.DisplayTextMeshFloatingText(this_00);
		 *       UnityEngine.MonoBehaviour.StartCoroutine(this_00,pvVar6);
		 *       return false;
		 *     }
		 *     goto LAB_0336d77c;
		 *   }
		 *   if (iVar1 == 1) {
		 *     this.n_1_state = -1;
		 *   }
		 *   else {
		 *     if (iVar1 != 0) {
		 *       return false;
		 *     }
		 *     uVar11 = 0;
		 *     this.n_1_state = -1;
		 *     this.CountDuration_5_2 = 2.0;
		 *     fVar8 = Random.Range(5.0,20.0);
		 *     this.starting_Count_5_3 = fVar8;
		 *     this.current_Count_5_4 = fVar8;
		 *     if ((this_00 == null) ||
		 *        (this_00->m_floatingText_Transform == null)) goto LAB_0336d77c;
		 *     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;
		 *     if (this_00->m_textMesh == null) goto LAB_0336d77c;
		 *     UVar15 = UnityEngine.TextMesh.get_color(this_00->m_textMesh);
		 *     uVar4 = func_0x0335ec5c(UVar15.r,CONCAT44(uVar11,UVar15.g),CONCAT44(uVar4,UVar15.b),UVar15.a,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;
		 *   fVar8 = this.current_Count_5_4;
		 *   if (fVar8 <= 0.0) {
		 *     lVar7 = *(long *)PTR_DAT_070c5410;
		 *     if (*(int *)(lVar7 + 0xe4) == 0) {
		 *       func_0x031fde08(lVar7,methodInfo);
		 *       lVar7 = *(long *)puVar2;
		 *     }
		 *     lVar7 = *(long *)(*(long *)(lVar7 + 0xb8) + 8);
		 *     uVar5 = Random.Range(0,0x14);
		 *     if (lVar7 != 0) {
		 *       if (uVar5 < *(uint *)(lVar7 + 0x18)) {
		 *         this.n_2_current = *(void **)(lVar7 + (long)(int)uVar5 * 8 + 0x20);
		 *         func_0x031fdc38(&this.n_2_current);
		 *         this.n_1_state = 2;
		 *         return true;
		 *       }
		 *       IL2CPP.ThrowIndexOutOfRangeException();
		 *     }
		 *   }
		 *   else {
		 *     fVar9 = UnityEngine.Time.get_deltaTime();
		 *     fVar8 = fVar8 - (fVar9 / this.CountDuration_5_2) * this.starting_Count_5_3;
		 *     this.current_Count_5_4 = fVar8;
		 *     if (fVar8 <= 3.0) {
		 *       fVar12 = this.alpha_5_7;
		 *       fVar8 = UnityEngine.Time.get_deltaTime();
		 *       fVar12 = fVar12 - (fVar8 / this.fadeDuration_5_8) * 255.0;
		 *       fVar9 = 255.0;
		 *       if (fVar12 <= 255.0) {
		 *         fVar9 = fVar12;
		 *       }
		 *       fVar8 = this.current_Count_5_4;
		 *       fVar10 = 0.0;
		 *       if (0.0 <= fVar12) {
		 *         fVar10 = fVar9;
		 *       }
		 *       this.alpha_5_7 = fVar10;
		 *     }
		 *     iStack_44 = -0x80000000;
		 *     if (fVar8 != INFINITY) {
		 *       iStack_44 = (int)fVar8;
		 *     }
		 *     if (this_00 == null) goto LAB_0336d77c;
		 *     this_01 = this_00->m_textMesh;
		 *     pvVar6 = System.Int32.ToString(&iStack_44);
		 *     if (this_01 == null) goto LAB_0336d77c;
		 *     UnityEngine.TextMesh.set_text(this_01,pvVar6);
		 *     if (this_00->m_textMesh == null) goto LAB_0336d77c;
		 *     UVar15.a = (float)((int)this.alpha_5_7 & 0xff) / 255.0;
		 *     fVar8 = (float)NEON_ucvtf((uint)(byte)this.field_0x42);
		 *     UVar15.b = fVar8 / 255.0;
		 *     fVar8 = (float)NEON_ucvtf((uint)(byte)this.field_0x41);
		 *     UVar15.g = fVar8 / 255.0;
		 *     fVar8 = (float)NEON_ucvtf((uint)(byte)this.field_0x40);
		 *     UVar15.r = fVar8 / 255.0;
		 *     UnityEngine.TextMesh.set_color(this_00->m_textMesh,UVar15);
		 *     pvVar6 = this_00->m_floatingText_Transform;
		 *     if (pvVar6 == null) goto LAB_0336d77c;
		 *     UVar13 = UnityEngine.Transform.get_position(pvVar6);
		 *     fVar9 = this.starting_Count_5_3;
		 *     fVar8 = UnityEngine.Time.get_deltaTime();
		 *     UVar14.x = UVar13.x + 0.0;
		 *     UVar14.y = UVar13.y + fVar9 * fVar8;
		 *     UVar14.z = UVar13.z + 0.0;
		 *     UnityEngine.Transform.set_position(pvVar6,UVar14);
		 *     if (this_00->m_cameraTransform == null) goto LAB_0336d77c;
		 *     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_0336d77c;
		 *       UVar16 = this_00->lastRotation;
		 *       q2 = UnityEngine.Transform.get_rotation(this_00->m_cameraTransform);
		 *       bVar3 = TMPro_ExtensionMethods.Compare(UVar16,q2,1000)
		 *       ;
		 *       if (bVar3) goto LAB_0336d680;
		 *     }
		 *     if (this_00->m_cameraTransform != null) {
		 *       UVar13 = UnityEngine.Transform.get_position(this_00->m_cameraTransform);
		 *       pvVar6 = this_00->m_cameraTransform;
		 *       (this_00->lastPOS).x = UVar13.x;
		 *       (this_00->lastPOS).y = UVar13.y;
		 *       (this_00->lastPOS).z = UVar13.z;
		 *       if (pvVar6 != null) {
		 *         UVar16 = UnityEngine.Transform.get_rotation(pvVar6);
		 *         pvVar6 = this_00->m_floatingText_Transform;
		 *         (this_00->lastRotation).x = UVar16.x;
		 *         (this_00->lastRotation).y = UVar16.y;
		 *         (this_00->lastRotation).z = UVar16.z;
		 *         (this_00->lastRotation).w = UVar16.w;
		 *         if (pvVar6 != null) {
		 *           UnityEngine.Transform.set_rotation(pvVar6,UVar16);
		 *           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_0336d680:
		 *               puVar2 = PTR_DAT_070c5410;
		 *               lVar7 = *(long *)PTR_DAT_070c5410;
		 *               if (*(int *)(lVar7 + 0xe4) == 0) {
		 *                 func_0x031fde08();
		 *                 lVar7 = *(long *)puVar2;
		 *               }
		 *               this.n_2_current = (void *)**(undefined8 **)(lVar7 + 0xb8);
		 *               func_0x031fdc38(&this.n_2_current);
		 *               this.n_1_state = 1;
		 *               return true;
		 *             }
		 *           }
		 *         }
		 *       }
		 *     }
		 *   }
		 * LAB_0336d77c:
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x326D784 VA: 0x7818958784
		private object System.Collections.Generic.IEnumerator<System.Object>.get_Current();
		/*
		 *   return this.n_2_current;
		 */
		// RVA: 0x326D78C VA: 0x781895878C
		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_070c5420);
		 *   IL2CPP.ThrowManagedException();
		 */
		// RVA: 0x326D7C4 VA: 0x78189587C4
		private object System.Collections.IEnumerator.get_Current();
		/*
		 *   return this.n_2_current;
		 */
	}
}
