namespace TMPro.Examples
{

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

		// RVA: 0x326AFF8 VA: 0x7818955FF8
		public void .ctor(int <>1__state);
		/*
		 *   System.Object..ctor(this);
		 *   this.n_1_state = n_1_state;
		 *   return;
		 */
		// RVA: 0x326B224 VA: 0x7818956224
		private void System.IDisposable.Dispose();
		/*
		 *   return;
		 */
		// RVA: 0x326B228 VA: 0x7818956228
		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;
		 *   float fVar13;
		 *   SkewTextExample *this_00;
		 *   void *pvVar14;
		 *   long *plVar15;
		 *   WarpText_d_7 *this_01;
		 *   WarpText_d_7 *extraout_x0;
		 *   void *in_x2;
		 *   int iVar16;
		 *   long lVar17;
		 *   long lVar18;
		 *   float *pfVar19;
		 *   float *pfVar20;
		 *   void *pvVar21;
		 *   float *pfVar22;
		 *   ulong uVar23;
		 *   long lVar24;
		 *   float *pfVar25;
		 *   float fVar26;
		 *   float fVar27;
		 *   undefined8 uVar28;
		 *   float fVar29;
		 *   float fVar30;
		 *   float fVar31;
		 *   float fVar32;
		 *   float fVar33;
		 *   float fVar34;
		 *   float fVar35;
		 *   float fVar36;
		 *   float fVar37;
		 *   float fVar38;
		 *   float fVar39;
		 *   float fVar40;
		 *   float fVar41;
		 *   float fVar42;
		 *   float fVar43;
		 *   float fVar44;
		 *   UnityEngine_Vector3 UVar45;
		 *   UnityEngine_Vector4 UVar46;
		 *   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;
		 *
		 *   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;
		 *     this_01 = this;
		 *     if (pvVar21 == null) goto LAB_0336bab8;
		 *   }
		 *   else {
		 *     if (this.n_1_state != 0) {
		 *       return false;
		 *     }
		 *     this.n_1_state = -1;
		 *     if ((pvVar21 == null) || (*(void **)((long)pvVar21 + 0x28) == null))
		 *     goto LAB_0336bab8;
		 *     UnityEngine.AnimationCurve.set_preWrapMode(*(void **)((long)pvVar21 + 0x28),1);
		 *     if (*(void **)((long)pvVar21 + 0x28) == null) goto LAB_0336bab8;
		 *     UnityEngine.AnimationCurve.set_postWrapMode(*(void **)((long)pvVar21 + 0x28),1);
		 *     if (*(void **)((long)pvVar21 + 0x20) == null) goto LAB_0336bab8;
		 *     in_x2 = null;
		 *     TMPro.TMP_Text.set_havePropertiesChanged(*(void **)((long)pvVar21 + 0x20),true);
		 *     fVar36 = *(float *)((long)pvVar21 + 0x30) * 10.0;
		 *     *(float *)((long)pvVar21 + 0x30) = fVar36;
		 *     this.old_CurveScale_5_2 = fVar36;
		 *     this.old_ShearValue_5_3 = *(float *)((long)pvVar21 + 0x34);
		 *     pvVar14 = SkewTextExample.CopyAnimationCurve(this_00,*(void **)((long)pvVar21 + 0x28));
		 *     this.old_curve_5_4 = pvVar14;
		 *     this_01 = (WarpText_d_7 *)func_0x031fdc38();
		 *   }
		 *   do {
		 *     if (*(long *)((long)pvVar21 + 0x20) == 0) goto LAB_0336bab8;
		 *     if ((*(char *)(*(long *)((long)pvVar21 + 0x20) + 0x3a8) == '\0') &&
		 *        (this.old_CurveScale_5_2 == *(float *)((long)pvVar21 + 0x30))) {
		 *       if ((this.old_curve_5_4 == null) ||
		 *          (pvVar14 = UnityEngine.AnimationCurve.get_keys(this.old_curve_5_4), pvVar14 == null))
		 *       goto LAB_0336bab8;
		 *       if ((*(uint *)((long)pvVar14 + 0x18) & 0xfffffffe) == 0) goto LAB_0336bab4;
		 *       fVar36 = UnityEngine.Keyframe.get_value((void *)((long)pvVar14 + 0x3c));
		 *       if ((*(void **)((long)pvVar21 + 0x28) == null) ||
		 *          (pvVar14 = UnityEngine.AnimationCurve.get_keys(*(void **)((long)pvVar21 + 0x28)), pvVar14 == null
		 *          )) goto LAB_0336bab8;
		 *       if ((*(uint *)((long)pvVar14 + 0x18) & 0xfffffffe) == 0) goto LAB_0336bab4;
		 *       fVar37 = UnityEngine.Keyframe.get_value((void *)((long)pvVar14 + 0x3c));
		 *       this_01 = extraout_x0;
		 *       if ((fVar36 == fVar37) && (this.old_ShearValue_5_3 == *(float *)((long)pvVar21 + 0x34))) {
		 *         this.n_2_current = null;
		 *         func_0x031fdc38(&this.n_2_current,0);
		 *         iVar16 = 1;
		 *         goto LAB_0336ba74;
		 *       }
		 *     }
		 *     this.old_CurveScale_5_2 = *(float *)((long)pvVar21 + 0x30);
		 *     pvVar14 = SkewTextExample.CopyAnimationCurve((SkewTextExample *)this_01,*(void **)((long)pvVar21 + 0x28));
		 *     this.old_curve_5_4 = pvVar14;
		 *     func_0x031fdc38(&this.old_curve_5_4,pvVar14);
		 *     this.old_ShearValue_5_3 = *(float *)((long)pvVar21 + 0x34);
		 *     plVar15 = *(long **)((long)pvVar21 + 0x20);
		 *     if (plVar15 == null) goto LAB_0336bab8;
		 *     in_x2 = null;
		 *     (**(code **)(*plVar15 + 0x7d8))(plVar15,0,0,*(undefined8 *)(*plVar15 + 0x7e0));
		 *     if ((*(void **)((long)pvVar21 + 0x20) == null) ||
		 *        (this_01 = TMPro.TMP_Text.get_textInfo(*(void **)((long)pvVar21 + 0x20)),
		 *        this_01 == null)) goto LAB_0336bab8;
		 *     uVar5 = *(uint *)&this_01->n_2_current;
		 *   } while (uVar5 == 0);
		 *   if (*(long *)((long)pvVar21 + 0x20) != 0) {
		 *     TMPro.TMP_Text.get_bounds(&fStack_120,*(long *)((long)pvVar21 + 0x20),0);
		 *     fVar37 = fStack_114;
		 *     fVar36 = fStack_120;
		 *     if (*(long *)((long)pvVar21 + 0x20) != 0) {
		 *       TMPro.TMP_Text.get_bounds(&fStack_120,*(long *)((long)pvVar21 + 0x20),0)
		 *       ;
		 *       fVar13 = _UNK_0134ef54;
		 *       fVar12 = _UNK_0134eeec;
		 *       fVar11 = _UNK_0134ee00;
		 *       fVar10 = _UNK_0134e9fc;
		 *       fVar9 = _UNK_0134e994;
		 *       if (0 < (int)uVar5) {
		 *         fVar36 = fVar36 - fVar37;
		 *         uVar23 = 0;
		 *         lVar24 = 400;
		 *         fVar37 = (fStack_120 + fStack_114) - fVar36;
		 *         do {
		 *           lVar17 = *(long *)(this_01 + 1);
		 *           if (lVar17 == 0) goto LAB_0336bab8;
		 *           if (*(uint *)(lVar17 + 0x18) <= uVar23) goto LAB_0336bab4;
		 *           if (*(char *)(lVar17 + lVar24) != '\0') {
		 *             lVar18 = *(long *)&this_01[1].old_CurveScale_5_2;
		 *             if (lVar18 == 0) goto LAB_0336bab8;
		 *             uVar7 = *(uint *)(lVar17 + lVar24 + -0x140);
		 *             if (*(uint *)(lVar18 + 0x18) <= uVar7) {
		 * LAB_0336bab4:
		 *               IL2CPP.ThrowIndexOutOfRangeException();
		 *             }
		 *             lVar18 = *(long *)(lVar18 + (long)(int)uVar7 * 0x50 + 0x30);
		 *             if (lVar18 == 0) goto LAB_0336bab8;
		 *             uVar7 = *(uint *)(lVar17 + lVar24 + -300);
		 *             if ((*(uint *)(lVar18 + 0x18) <= uVar7) ||
		 *                (uVar1 = uVar7 + 2, *(uint *)(lVar18 + 0x18) <= uVar1)) goto LAB_0336bab4;
		 *             lVar4 = lVar18 + 0x20;
		 *             pfVar25 = (float *)(lVar4 + (long)(int)uVar7 * 0xc);
		 *             pfVar20 = (float *)(lVar4 + (long)(int)uVar1 * 0xc);
		 *             fVar44 = *(float *)(lVar17 + lVar24 + -0x4c);
		 *             uVar2 = uVar7 + 1;
		 *             fVar29 = pfVar25[1];
		 *             fVar31 = *pfVar20;
		 *             fVar43 = (*pfVar25 + fVar31) * 0.5;
		 *             fVar26 = *pfVar25 - fVar43;
		 *             *pfVar25 = fVar26;
		 *             pfVar25[1] = fVar29 - fVar44;
		 *             if (*(uint *)(lVar18 + 0x18) <= uVar2) goto LAB_0336bab4;
		 *             pfVar19 = (float *)(lVar4 + (long)(int)uVar2 * 0xc);
		 *             fVar30 = *pfVar19;
		 *             fVar33 = pfVar19[1];
		 *             fVar35 = pfVar19[2];
		 *             *pfVar19 = fVar30 - fVar43;
		 *             pfVar19[1] = fVar33 - fVar44;
		 *             if (*(uint *)(lVar18 + 0x18) <= uVar1) goto LAB_0336bab4;
		 *             fVar31 = fVar31 - fVar43;
		 *             fVar34 = pfVar20[1];
		 *             fVar32 = pfVar20[2];
		 *             uVar3 = uVar7 + 3;
		 *             *pfVar20 = fVar31;
		 *             pfVar20[1] = fVar34 - fVar44;
		 *             if (*(uint *)(lVar18 + 0x18) <= uVar3) goto LAB_0336bab4;
		 *             pfVar22 = (float *)(lVar4 + (long)(int)uVar3 * 0xc);
		 *             fVar38 = *pfVar22;
		 *             fVar39 = pfVar22[1];
		 *             *pfVar22 = fVar38 - fVar43;
		 *             pfVar22[1] = fVar39 - fVar44;
		 *             lVar17 = *(long *)(this_01 + 1);
		 *             if (lVar17 == 0) goto LAB_0336bab8;
		 *             if ((*(uint *)(lVar17 + 0x18) <= uVar23) || (*(uint *)(lVar18 + 0x18) <= uVar7))
		 *             goto LAB_0336bab4;
		 *             lVar17 = lVar17 + lVar24;
		 *             fVar42 = *(float *)(lVar17 + -0x4c);
		 *             fVar41 = *(float *)((long)pvVar21 + 0x34) * fVar10;
		 *             fVar40 = -(fVar41 * (fVar42 - *(float *)(lVar17 + -0x60)));
		 *             fVar27 = *(float *)(lVar17 + -0x6c);
		 *             *pfVar25 = fVar26 + fVar40;
		 *             pfVar25[1] = fVar29 - fVar44;
		 *             if (*(uint *)(lVar18 + 0x18) <= uVar2) goto LAB_0336bab4;
		 *             fVar41 = fVar41 * (fVar27 - fVar42);
		 *             pfVar19[1] = (fVar33 - fVar44) + 0.0;
		 *             pfVar19[2] = fVar35 + 0.0;
		 *             uVar6 = *(uint *)(lVar18 + 0x18);
		 *             *pfVar19 = (fVar30 - fVar43) + fVar41;
		 *             if (uVar6 <= uVar1) goto LAB_0336bab4;
		 *             *pfVar20 = fVar31 + fVar41;
		 *             pfVar20[1] = (fVar34 - fVar44) + 0.0;
		 *             pfVar20[2] = fVar32 + 0.0;
		 *             if (*(uint *)(lVar18 + 0x18) <= uVar3) goto LAB_0336bab4;
		 *             *pfVar22 = (fVar38 - fVar43) + fVar40;
		 *             pfVar22[1] = fVar39 - fVar44;
		 *             if (*(void **)((long)pvVar21 + 0x28) == null) goto LAB_0336bab8;
		 *             fVar29 = (fVar43 - fVar36) / fVar37;
		 *             fVar26 = UnityEngine.AnimationCurve.Evaluate(*(void **)((long)pvVar21 + 0x28),fVar29);
		 *             if (*(void **)((long)pvVar21 + 0x28) == null) goto LAB_0336bab8;
		 *             fVar30 = *(float *)((long)pvVar21 + 0x30);
		 *             fVar29 = fVar29 + fVar11;
		 *             fVar31 = UnityEngine.AnimationCurve.Evaluate(*(void **)((long)pvVar21 + 0x28),fVar29);
		 *             fVar33 = *(float *)((long)pvVar21 + 0x30);
		 *             if (cRam000000000754a7cc == '\0') {
		 *               func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
		 *               cRam000000000754a7cc = '\x01';
		 *             }
		 *             if (*(int *)(*(long *)typeinfo_ptr_mscorlib_Math_6FC0738 + 0xe4) == 0) {
		 *               func_0x031fde08();
		 *             }
		 *             fVar26 = fVar26 * fVar30;
		 *             fVar31 = fVar31 * fVar33 - fVar26;
		 *             fVar30 = (fVar36 + fVar37 * fVar29) - fVar43;
		 *             fVar29 = SQRT(fVar30 * fVar30 + fVar31 * fVar31);
		 *             if (fVar29 <= fVar12) {
		 *               if (cRam000000000754a7ce == '\0') {
		 *                 func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08);
		 *                 cRam000000000754a7ce = '\x01';
		 *               }
		 *               fVar33 = **(float **)
		 *                          (*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 + 0xb8);
		 *               uVar28 = *(undefined8 *)
		 *                         (*(float **)
		 *                           (*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 + 0xb8) + 1)
		 *               ;
		 *             }
		 *             else {
		 *               fVar33 = fVar30 / fVar29;
		 *               uVar28 = CONCAT44(0.0 / fVar29,fVar31 / fVar29);
		 *             }
		 *             fVar33 = (float)func_0x06cb3980((float)((ulong)uVar28 >> 0x20) * 0.0 +
		 *                                             fVar33 + (float)uVar28 * 0.0);
		 *             fVar29 = fVar33 * fVar9;
		 *             if (fVar31 - fVar30 * 0.0 <= 0.0) {
		 *               fVar29 = 360.0 - fVar33 * fVar9;
		 *             }
		 *             auVar8._4_8_ = 0;
		 *             auVar8._0_4_ = fVar29 * fVar13;
		 *             UVar46 = 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,fVar26,0,UVar46.x,UVar46.y,UVar46.z,UVar46.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_0336bab4;
		 *             lVar17 = lVar18 + (long)(int)uVar7 * 0xc;
		 *             UVar45 = UnityEngine.Matrix4x4.MultiplyPoint3x4(&uStack_e0,*(UnityEngine_Vector3 *)(lVar17 + 0x20));
		 *             if (*(uint *)(lVar18 + 0x18) <= uVar7) goto LAB_0336bab4;
		 *             ((UnityEngine_Vector3 *)(lVar17 + 0x20))->x = UVar45.x;
		 *             *(float *)(lVar17 + 0x24) = UVar45.y;
		 *             *(float *)(lVar17 + 0x28) = UVar45.z;
		 *             if (*(uint *)(lVar18 + 0x18) <= uVar2) goto LAB_0336bab4;
		 *             lVar17 = lVar18 + (long)(int)uVar2 * 0xc;
		 *             UVar45 = UnityEngine.Matrix4x4.MultiplyPoint3x4(&uStack_e0,*(UnityEngine_Vector3 *)(lVar17 + 0x20));
		 *             if (*(uint *)(lVar18 + 0x18) <= uVar2) goto LAB_0336bab4;
		 *             *(float *)(lVar17 + 0x24) = UVar45.y;
		 *             *(float *)(lVar17 + 0x28) = UVar45.z;
		 *             uVar6 = *(uint *)(lVar18 + 0x18);
		 *             ((UnityEngine_Vector3 *)(lVar17 + 0x20))->x = UVar45.x;
		 *             if (uVar6 <= uVar1) goto LAB_0336bab4;
		 *             lVar17 = lVar18 + (long)(int)uVar1 * 0xc;
		 *             UVar45 = UnityEngine.Matrix4x4.MultiplyPoint3x4(&uStack_e0,*(UnityEngine_Vector3 *)(lVar17 + 0x20));
		 *             if (*(uint *)(lVar18 + 0x18) <= uVar1) goto LAB_0336bab4;
		 *             ((UnityEngine_Vector3 *)(lVar17 + 0x20))->x = UVar45.x;
		 *             *(float *)(lVar17 + 0x24) = UVar45.y;
		 *             *(float *)(lVar17 + 0x28) = UVar45.z;
		 *             if (*(uint *)(lVar18 + 0x18) <= uVar3) goto LAB_0336bab4;
		 *             lVar17 = lVar18 + (long)(int)uVar3 * 0xc;
		 *             UVar45 = UnityEngine.Matrix4x4.MultiplyPoint3x4(&uStack_e0,*(UnityEngine_Vector3 *)(lVar17 + 0x20));
		 *             if (*(uint *)(lVar18 + 0x18) <= uVar3) goto LAB_0336bab4;
		 *             *(float *)(lVar17 + 0x24) = UVar45.y;
		 *             *(float *)(lVar17 + 0x28) = UVar45.z;
		 *             uVar6 = *(uint *)(lVar18 + 0x18);
		 *             ((UnityEngine_Vector3 *)(lVar17 + 0x20))->x = UVar45.x;
		 *             if (uVar6 <= uVar7) goto LAB_0336bab4;
		 *             pfVar25[2] = pfVar25[2] + 0.0;
		 *             *(ulong *)pfVar25 =
		 *                  CONCAT44(fVar44 + (float)((ulong)*(undefined8 *)pfVar25 >> 0x20),
		 *                           fVar43 + (float)*(undefined8 *)pfVar25);
		 *             if (*(uint *)(lVar18 + 0x18) <= uVar2) goto LAB_0336bab4;
		 *             *(ulong *)pfVar19 =
		 *                  CONCAT44(fVar44 + (float)((ulong)*(undefined8 *)pfVar19 >> 0x20),
		 *                           fVar43 + (float)*(undefined8 *)pfVar19);
		 *             pfVar19[2] = pfVar19[2] + 0.0;
		 *             if (*(uint *)(lVar18 + 0x18) <= uVar1) goto LAB_0336bab4;
		 *             *(ulong *)pfVar20 =
		 *                  CONCAT44(fVar44 + (float)((ulong)*(undefined8 *)pfVar20 >> 0x20),
		 *                           fVar43 + (float)*(undefined8 *)pfVar20);
		 *             pfVar20[2] = pfVar20[2] + 0.0;
		 *             if (*(uint *)(lVar18 + 0x18) <= uVar3) goto LAB_0336bab4;
		 *             *pfVar22 = fVar43 + UVar45.x;
		 *             pfVar22[1] = fVar44 + UVar45.y;
		 *             pfVar22[2] = UVar45.z + 0.0;
		 *           }
		 *           uVar23 = uVar23 + 1;
		 *           lVar24 = lVar24 + 0x178;
		 *         } while (uVar5 != uVar23);
		 *       }
		 *       plVar15 = *(long **)((long)pvVar21 + 0x20);
		 *       if (plVar15 != null) {
		 *         (**(code **)(*plVar15 + 0x808))(plVar15,*(undefined8 *)(*plVar15 + 0x810));
		 *         this.n_2_current = null;
		 *         func_0x031fdc38(&this.n_2_current,0);
		 *         iVar16 = 2;
		 * LAB_0336ba74:
		 *         this.n_1_state = iVar16;
		 *         return true;
		 *       }
		 *     }
		 *   }
		 * LAB_0336bab8:
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x326BABC VA: 0x7818956ABC
		private object System.Collections.Generic.IEnumerator<System.Object>.get_Current();
		/*
		 *   return this.n_2_current;
		 */
		// RVA: 0x326BAC4 VA: 0x7818956AC4
		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_070c5388);
		 *   IL2CPP.ThrowManagedException();
		 */
		// RVA: 0x326BAFC VA: 0x7818956AFC
		private object System.Collections.IEnumerator.get_Current();
		/*
		 *   return this.n_2_current;
		 */
	}
}
