namespace TMPro.Examples
{

	// [TypeInfo RVA: 0x0]
	private sealed class <WarpText>d__8 : Object
	{
		private int <>1__state; // 0x10
		private object <>2__current; // 0x18
		public TMPro.Examples.WarpTextExample <>4__this; // 0x20
		private float <old_CurveScale>5__2; // 0x28
		private UnityEngine.AnimationCurve <old_curve>5__3; // 0x30

		// RVA: 0x32764DC VA: 0x78189614DC
		public void .ctor(int <>1__state);
		/*
		 *   System.Object..ctor(this);
		 *   this.n_1_state = n_1_state;
		 *   return;
		 */
		// RVA: 0x3276710 VA: 0x7818961710
		private void System.IDisposable.Dispose();
		/*
		 *   return;
		 */
		// RVA: 0x3276714 VA: 0x7818961714
		private bool MoveNext();
		/*
		 *   uint uVar1;
		 *   uint uVar2;
		 *   uint uVar3;
		 *   long lVar4;
		 *   uint uVar5;
		 *   uint uVar6;
		 *   uint uVar7;
		 *   undefined1 auVar8 [12];
		 *   float fVar9;
		 *   float fVar10;
		 *   float fVar11;
		 *   float fVar12;
		 *   WarpTextExample *this_00;
		 *   WarpTextExample *this_01;
		 *   void *pvVar13;
		 *   WarpTextExample *extraout_x0;
		 *   long *plVar14;
		 *   void *in_x2;
		 *   int iVar15;
		 *   long lVar16;
		 *   float *pfVar17;
		 *   long lVar18;
		 *   undefined8 *puVar19;
		 *   float *pfVar20;
		 *   void *pvVar21;
		 *   ulong uVar22;
		 *   long lVar23;
		 *   undefined8 *puVar24;
		 *   float fVar25;
		 *   float fVar26;
		 *   float fVar27;
		 *   float fVar28;
		 *   undefined8 uVar29;
		 *   float fVar30;
		 *   float fVar31;
		 *   float fVar32;
		 *   float fVar33;
		 *   float fVar34;
		 *   UnityEngine_Vector3 UVar35;
		 *   UnityEngine_Vector4 UVar36;
		 *   float fStack_120;
		 *   undefined4 uStack_11c;
		 *   undefined4 uStack_118;
		 *   float fStack_114;
		 *   undefined8 uStack_110;
		 *   undefined8 uStack_108;
		 *   undefined8 uStack_100;
		 *   undefined8 uStack_f8;
		 *   undefined8 uStack_f0;
		 *   undefined8 uStack_e8;
		 *   undefined8 uStack_e0;
		 *   undefined8 uStack_d8;
		 *   undefined8 uStack_d0;
		 *   undefined8 uStack_c8;
		 *   undefined8 uStack_c0;
		 *   undefined8 uStack_b8;
		 *   undefined8 uStack_b0;
		 *   undefined8 uStack_a8;
		 *
		 *   this_00 = (WarpTextExample *)this;
		 *   if ((bRam000000000754ac31 & 1) == 0) {
		 *     this_00 = (WarpTextExample *)
		 *               func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_WaitForSeconds_6FC0B10);
		 *     bRam000000000754ac31 = 1;
		 *   }
		 *   pvVar21 = this.n_4_this;
		 *   uStack_d8 = 0;
		 *   uStack_e0 = 0;
		 *   uStack_c8 = 0;
		 *   uStack_d0 = 0;
		 *   uStack_b8 = 0;
		 *   uStack_c0 = 0;
		 *   uStack_a8 = 0;
		 *   uStack_b0 = 0;
		 *   if (this.n_1_state - 1U < 2) {
		 *     this.n_1_state = -1;
		 *     if (pvVar21 == null) goto LAB_03376f14;
		 *   }
		 *   else {
		 *     if (this.n_1_state != 0) {
		 *       return false;
		 *     }
		 *     this.n_1_state = -1;
		 *     if ((pvVar21 == null) || (*(void **)((long)pvVar21 + 0x28) == null))
		 *     goto LAB_03376f14;
		 *     UnityEngine.AnimationCurve.set_preWrapMode(*(void **)((long)pvVar21 + 0x28),1);
		 *     if (*(void **)((long)pvVar21 + 0x28) == null) goto LAB_03376f14;
		 *     UnityEngine.AnimationCurve.set_postWrapMode(*(void **)((long)pvVar21 + 0x28),1);
		 *     if (*(void **)((long)pvVar21 + 0x20) == null) goto LAB_03376f14;
		 *     in_x2 = null;
		 *     TMPro.TMP_Text.set_havePropertiesChanged(*(void **)((long)pvVar21 + 0x20),true);
		 *     fVar25 = *(float *)((long)pvVar21 + 0x38) * 10.0;
		 *     *(float *)((long)pvVar21 + 0x38) = fVar25;
		 *     this.old_CurveScale_5_2 = fVar25;
		 *     pvVar13 = WarpTextExample.CopyAnimationCurve(this_01,*(void **)((long)pvVar21 + 0x28));
		 *     this.old_curve_5_3 = pvVar13;
		 *     this_00 = (WarpTextExample *)func_0x031fdc38();
		 *   }
		 *   do {
		 *     if (*(long *)((long)pvVar21 + 0x20) == 0) goto LAB_03376f14;
		 *     fVar25 = *(float *)((long)pvVar21 + 0x38);
		 *     if ((*(char *)(*(long *)((long)pvVar21 + 0x20) + 0x3a8) == '\0') &&
		 *        (this.old_CurveScale_5_2 == fVar25)) {
		 *       if ((this.old_curve_5_3 == null) ||
		 *          (pvVar13 = UnityEngine.AnimationCurve.get_keys(this.old_curve_5_3), pvVar13 == null))
		 *       goto LAB_03376f14;
		 *       if ((*(uint *)((long)pvVar13 + 0x18) & 0xfffffffe) == 0) goto LAB_03376f10;
		 *       fVar25 = UnityEngine.Keyframe.get_value((void *)((long)pvVar13 + 0x3c));
		 *       if ((*(void **)((long)pvVar21 + 0x28) == null) ||
		 *          (pvVar13 = UnityEngine.AnimationCurve.get_keys(*(void **)((long)pvVar21 + 0x28)), pvVar13 == null
		 *          )) goto LAB_03376f14;
		 *       if ((*(uint *)((long)pvVar13 + 0x18) & 0xfffffffe) == 0) goto LAB_03376f10;
		 *       fVar26 = UnityEngine.Keyframe.get_value((void *)((long)pvVar13 + 0x3c));
		 *       if (fVar25 == fVar26) {
		 *         this.n_2_current = null;
		 *         func_0x031fdc38(&this.n_2_current,0);
		 *         iVar15 = 1;
		 *         goto LAB_03376eb8;
		 *       }
		 *       fVar25 = *(float *)((long)pvVar21 + 0x38);
		 *       this_00 = extraout_x0;
		 *     }
		 *     this.old_CurveScale_5_2 = fVar25;
		 *     pvVar13 = WarpTextExample.CopyAnimationCurve(this_00,*(void **)((long)pvVar21 + 0x28));
		 *     this.old_curve_5_3 = pvVar13;
		 *     func_0x031fdc38(&this.old_curve_5_3,pvVar13);
		 *     plVar14 = *(long **)((long)pvVar21 + 0x20);
		 *     if (plVar14 == null) goto LAB_03376f14;
		 *     in_x2 = null;
		 *     (**(code **)(*plVar14 + 0x7d8))(plVar14,0,0,*(undefined8 *)(*plVar14 + 0x7e0));
		 *     if ((*(void **)((long)pvVar21 + 0x20) == null) ||
		 *        (this_00 = TMPro.TMP_Text.get_textInfo(*(void **)((long)pvVar21 + 0x20)),
		 *        this_00 == null)) goto LAB_03376f14;
		 *     uVar5 = *(uint *)&this_00->field_0x18;
		 *   } while (uVar5 == 0);
		 *   if (*(long *)((long)pvVar21 + 0x20) != 0) {
		 *     TMPro.TMP_Text.get_bounds(&fStack_120,*(long *)((long)pvVar21 + 0x20),0);
		 *     fVar26 = fStack_114;
		 *     fVar25 = fStack_120;
		 *     if (*(long *)((long)pvVar21 + 0x20) != 0) {
		 *       TMPro.TMP_Text.get_bounds(&fStack_120,*(long *)((long)pvVar21 + 0x20),0)
		 *       ;
		 *       fVar12 = _UNK_0134ef54;
		 *       fVar11 = _UNK_0134eeec;
		 *       fVar10 = _UNK_0134ee00;
		 *       fVar9 = _UNK_0134e994;
		 *       if (0 < (int)uVar5) {
		 *         fVar25 = fVar25 - fVar26;
		 *         uVar22 = 0;
		 *         lVar23 = 400;
		 *         fVar26 = (fStack_120 + fStack_114) - fVar25;
		 *         do {
		 *           lVar16 = *(long *)&this_00->CurveScale;
		 *           if (lVar16 == 0) goto LAB_03376f14;
		 *           if (*(uint *)(lVar16 + 0x18) <= uVar22) goto LAB_03376f10;
		 *           if (*(char *)(lVar16 + lVar23) != '\0') {
		 *             lVar18 = *(long *)((long)&this_00[1].m_TextComponent + 4);
		 *             if (lVar18 == 0) goto LAB_03376f14;
		 *             uVar7 = *(uint *)(lVar16 + lVar23 + -0x140);
		 *             if (*(uint *)(lVar18 + 0x18) <= uVar7) {
		 * LAB_03376f10:
		 *               IL2CPP.ThrowIndexOutOfRangeException();
		 *             }
		 *             lVar18 = *(long *)(lVar18 + (long)(int)uVar7 * 0x50 + 0x30);
		 *             if (lVar18 == 0) goto LAB_03376f14;
		 *             uVar7 = *(uint *)(lVar16 + lVar23 + -300);
		 *             if ((*(uint *)(lVar18 + 0x18) <= uVar7) ||
		 *                (uVar1 = uVar7 + 2, *(uint *)(lVar18 + 0x18) <= uVar1)) goto LAB_03376f10;
		 *             lVar4 = lVar18 + 0x20;
		 *             puVar24 = (undefined8 *)(lVar4 + (long)(int)uVar7 * 0xc);
		 *             pfVar20 = (float *)(lVar4 + (long)(int)uVar1 * 0xc);
		 *             fVar27 = *pfVar20;
		 *             fVar32 = (float)*puVar24;
		 *             fVar30 = (fVar32 + fVar27) * 0.5;
		 *             fVar31 = *(float *)(lVar16 + lVar23 + -0x4c);
		 *             uVar2 = uVar7 + 1;
		 *             *puVar24 = CONCAT44((float)((ulong)*puVar24 >> 0x20) - fVar31,fVar32 - fVar30);
		 *             if (*(uint *)(lVar18 + 0x18) <= uVar2) goto LAB_03376f10;
		 *             puVar19 = (undefined8 *)(lVar4 + (long)(int)uVar2 * 0xc);
		 *             *puVar19 = CONCAT44((float)((ulong)*puVar19 >> 0x20) - fVar31,(float)*puVar19 - fVar30);
		 *             if (*(uint *)(lVar18 + 0x18) <= uVar1) goto LAB_03376f10;
		 *             uVar3 = uVar7 + 3;
		 *             *pfVar20 = fVar27 - fVar30;
		 *             pfVar20[1] = pfVar20[1] - fVar31;
		 *             if (*(uint *)(lVar18 + 0x18) <= uVar3) goto LAB_03376f10;
		 *             pfVar17 = (float *)(lVar4 + (long)(int)uVar3 * 0xc);
		 *             *(ulong *)pfVar17 =
		 *                  CONCAT44((float)((ulong)*(undefined8 *)pfVar17 >> 0x20) - fVar31,
		 *                           (float)*(undefined8 *)pfVar17 - fVar30);
		 *             if (*(void **)((long)pvVar21 + 0x28) == null) goto LAB_03376f14;
		 *             fVar32 = (fVar30 - fVar25) / fVar26;
		 *             fVar27 = UnityEngine.AnimationCurve.Evaluate(*(void **)((long)pvVar21 + 0x28),fVar32);
		 *             if (*(void **)((long)pvVar21 + 0x28) == null) goto LAB_03376f14;
		 *             fVar33 = *(float *)((long)pvVar21 + 0x38);
		 *             fVar32 = fVar32 + fVar10;
		 *             fVar28 = UnityEngine.AnimationCurve.Evaluate(*(void **)((long)pvVar21 + 0x28),fVar32);
		 *             fVar34 = *(float *)((long)pvVar21 + 0x38);
		 *             if (cRam000000000754a7cc == '\0') {
		 *               func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
		 *               cRam000000000754a7cc = '\x01';
		 *             }
		 *             if (*(int *)(*(long *)typeinfo_ptr_mscorlib_Math_6FC0738 + 0xe4) == 0) {
		 *               func_0x031fde08();
		 *             }
		 *             fVar27 = fVar27 * fVar33;
		 *             fVar28 = fVar28 * fVar34 - fVar27;
		 *             fVar33 = (fVar25 + fVar26 * fVar32) - fVar30;
		 *             fVar32 = SQRT(fVar33 * fVar33 + fVar28 * fVar28);
		 *             if (fVar32 <= fVar11) {
		 *               if (cRam000000000754a7ce == '\0') {
		 *                 func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08);
		 *                 cRam000000000754a7ce = '\x01';
		 *               }
		 *               fVar34 = **(float **)
		 *                          (*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 + 0xb8);
		 *               uVar29 = *(undefined8 *)
		 *                         (*(float **)
		 *                           (*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 + 0xb8) + 1)
		 *               ;
		 *             }
		 *             else {
		 *               fVar34 = fVar33 / fVar32;
		 *               uVar29 = CONCAT44(0.0 / fVar32,fVar28 / fVar32);
		 *             }
		 *             fVar34 = (float)func_0x06cb3980((float)((ulong)uVar29 >> 0x20) * 0.0 +
		 *                                             fVar34 + (float)uVar29 * 0.0);
		 *             fVar32 = fVar34 * fVar9;
		 *             if (fVar28 - fVar33 * 0.0 <= 0.0) {
		 *               fVar32 = 360.0 - fVar34 * fVar9;
		 *             }
		 *             auVar8._4_8_ = 0;
		 *             auVar8._0_4_ = fVar32 * fVar12;
		 *             UVar36 = UnityEngine.Quaternion.Internal_FromEulerRad((UnityEngine_Vector3)(auVar8 << 0x40));
		 *             if (cRam000000000754a89c == '\0') {
		 *               func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08);
		 *               cRam000000000754a89c = '\x01';
		 *             }
		 *             UnityEngine.Matrix4x4.TRS(&fStack_120,0,fVar27,0,UVar36.x,UVar36.y,UVar36.z,UVar36.w,0);
		 *             uStack_b8 = uStack_f8;
		 *             uStack_c0 = uStack_100;
		 *             uStack_a8 = uStack_e8;
		 *             uStack_b0 = uStack_f0;
		 *             uStack_d8 = CONCAT44(fStack_114,uStack_118);
		 *             uStack_e0 = CONCAT44(uStack_11c,fStack_120);
		 *             uStack_c8 = uStack_108;
		 *             uStack_d0 = uStack_110;
		 *             if (*(uint *)(lVar18 + 0x18) <= uVar7) goto LAB_03376f10;
		 *             lVar16 = lVar18 + (long)(int)uVar7 * 0xc;
		 *             UVar35 = UnityEngine.Matrix4x4.MultiplyPoint3x4(&uStack_e0,*(UnityEngine_Vector3 *)(lVar16 + 0x20));
		 *             if (*(uint *)(lVar18 + 0x18) <= uVar7) goto LAB_03376f10;
		 *             ((UnityEngine_Vector3 *)(lVar16 + 0x20))->x = UVar35.x;
		 *             *(float *)(lVar16 + 0x24) = UVar35.y;
		 *             *(float *)(lVar16 + 0x28) = UVar35.z;
		 *             if (*(uint *)(lVar18 + 0x18) <= uVar2) goto LAB_03376f10;
		 *             lVar16 = lVar18 + (long)(int)uVar2 * 0xc;
		 *             UVar35 = UnityEngine.Matrix4x4.MultiplyPoint3x4(&uStack_e0,*(UnityEngine_Vector3 *)(lVar16 + 0x20));
		 *             if (*(uint *)(lVar18 + 0x18) <= uVar2) goto LAB_03376f10;
		 *             *(float *)(lVar16 + 0x24) = UVar35.y;
		 *             *(float *)(lVar16 + 0x28) = UVar35.z;
		 *             uVar6 = *(uint *)(lVar18 + 0x18);
		 *             ((UnityEngine_Vector3 *)(lVar16 + 0x20))->x = UVar35.x;
		 *             if (uVar6 <= uVar1) goto LAB_03376f10;
		 *             lVar16 = lVar18 + (long)(int)uVar1 * 0xc;
		 *             UVar35 = UnityEngine.Matrix4x4.MultiplyPoint3x4(&uStack_e0,*(UnityEngine_Vector3 *)(lVar16 + 0x20));
		 *             if (*(uint *)(lVar18 + 0x18) <= uVar1) goto LAB_03376f10;
		 *             ((UnityEngine_Vector3 *)(lVar16 + 0x20))->x = UVar35.x;
		 *             *(float *)(lVar16 + 0x24) = UVar35.y;
		 *             *(float *)(lVar16 + 0x28) = UVar35.z;
		 *             if (*(uint *)(lVar18 + 0x18) <= uVar3) goto LAB_03376f10;
		 *             lVar16 = lVar18 + (long)(int)uVar3 * 0xc;
		 *             UVar35 = UnityEngine.Matrix4x4.MultiplyPoint3x4(&uStack_e0,*(UnityEngine_Vector3 *)(lVar16 + 0x20));
		 *             if (*(uint *)(lVar18 + 0x18) <= uVar3) goto LAB_03376f10;
		 *             *(float *)(lVar16 + 0x24) = UVar35.y;
		 *             *(float *)(lVar16 + 0x28) = UVar35.z;
		 *             uVar6 = *(uint *)(lVar18 + 0x18);
		 *             ((UnityEngine_Vector3 *)(lVar16 + 0x20))->x = UVar35.x;
		 *             if (uVar6 <= uVar7) goto LAB_03376f10;
		 *             *puVar24 = CONCAT44(fVar31 + (float)((ulong)*puVar24 >> 0x20),fVar30 + (float)*puVar24);
		 *             *(float *)(puVar24 + 1) = *(float *)(puVar24 + 1) + 0.0;
		 *             if (*(uint *)(lVar18 + 0x18) <= uVar2) goto LAB_03376f10;
		 *             *puVar19 = CONCAT44(fVar31 + (float)((ulong)*puVar19 >> 0x20),fVar30 + (float)*puVar19);
		 *             *(float *)(puVar19 + 1) = *(float *)(puVar19 + 1) + 0.0;
		 *             if (*(uint *)(lVar18 + 0x18) <= uVar1) goto LAB_03376f10;
		 *             *(ulong *)pfVar20 =
		 *                  CONCAT44(fVar31 + (float)((ulong)*(undefined8 *)pfVar20 >> 0x20),
		 *                           fVar30 + (float)*(undefined8 *)pfVar20);
		 *             pfVar20[2] = pfVar20[2] + 0.0;
		 *             if (*(uint *)(lVar18 + 0x18) <= uVar3) goto LAB_03376f10;
		 *             pfVar17[2] = UVar35.z + 0.0;
		 *             *pfVar17 = fVar30 + UVar35.x;
		 *             pfVar17[1] = fVar31 + UVar35.y;
		 *           }
		 *           uVar22 = uVar22 + 1;
		 *           lVar23 = lVar23 + 0x178;
		 *         } while (uVar5 != uVar22);
		 *       }
		 *       plVar14 = *(long **)((long)pvVar21 + 0x20);
		 *       if (plVar14 != null) {
		 *         (**(code **)(*plVar14 + 0x808))(plVar14,*(undefined8 *)(*plVar14 + 0x810));
		 *         pvVar21 = (void *)func_0x031fdf24(*(undefined8 *)
		 *                                            typeinfo_ptr_UnityEngine_CoreModule_WaitForSeconds_6FC0B10
		 *                                          );
		 *         UnityEngine.WaitForSeconds..ctor(pvVar21,_UNK_0134e6a0);
		 *         this.n_2_current = pvVar21;
		 *         func_0x031fdc38(&this.n_2_current,pvVar21);
		 *         iVar15 = 2;
		 * LAB_03376eb8:
		 *         this.n_1_state = iVar15;
		 *         return true;
		 *       }
		 *     }
		 *   }
		 * LAB_03376f14:
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x3276F18 VA: 0x7818961F18
		private object System.Collections.Generic.IEnumerator<System.Object>.get_Current();
		/*
		 *   return this.n_2_current;
		 */
		// RVA: 0x3276F20 VA: 0x7818961F20
		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_070c56c0);
		 *   IL2CPP.ThrowManagedException();
		 */
		// RVA: 0x3276F58 VA: 0x7818961F58
		private object System.Collections.IEnumerator.get_Current();
		/*
		 *   return this.n_2_current;
		 */
	}
}
