namespace TMPro.Examples
{

	// [TypeInfo RVA: 0x0]
	public class WarpTextExample : MonoBehaviour
	{
		private TMPro.TMP_Text m_TextComponent; // 0x20
		public UnityEngine.AnimationCurve VertexCurve; // 0x28
		public float AngleMultiplier; // 0x30
		public float SpeedMultiplier; // 0x34
		public float CurveScale; // 0x38

		// RVA: 0x3276368 VA: 0x7818961368
		private void Awake();
		/*
		 *   void *pvVar1;
		 *   void **ppvVar2;
		 *
		 *   if ((bRam000000000754ac2d & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c51e0);
		 *     bRam000000000754ac2d = 1;
		 *   }
		 *   pvVar1 = UnityEngine.Component.get_gameObject(this);
		 *   if (pvVar1 != null) {
		 *     pvVar1 = (void *)func_0x037f3038(pvVar1,*(undefined8 *)PTR_DAT_070c51e0);
		 *     ppvVar2 = &this.m_TextComponent;
		 *     *ppvVar2 = pvVar1;
		 *     if (iRam00000000077785f0 != 0) {
		 *       func_0x032ed0c0(1L << ((ulong)ppvVar2 >> 0xc & 0x3f),
		 *                       ((ulong)ppvVar2 >> 0x12 & 0x7fff) * 8 + 0x75ac5c8);
		 *     }
		 *     return;
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32763D0 VA: 0x78189613D0
		private void Start();
		/*
		 *   void *pvVar1;
		 *   ulong uVar2;
		 *   void *this_00;
		 *   undefined8 uVar3;
		 *   long lVar4;
		 *
		 *   pvVar1 = WarpTextExample.WarpText(this);
		 *   if (pvVar1 == null) {
		 *     func_0x031fdca0(PTR_DAT_070c9118,0,0);
		 *     this_00 = (void *)func_0x031fdf24();
		 *     pvVar1 = (void *)func_0x031fdca0(PTR_DAT_0714f5c8);
		 *     NullReferenceException..ctor(this_00,pvVar1);
		 *   }
		 *   else {
		 *     uVar2 = UnityEngine.MonoBehaviour.IsObjectMonoBehaviour();
		 *     if ((uVar2 & 1) != 0) {
		 *       if ((bRam000000000755f8f7 & 1) == 0) {
		 *         func_0x031fdc8c(PTR_DAT_0714f590);
		 *         bRam000000000755f8f7 = 1;
		 *       }
		 *       if (this != null) {
		 *         lVar4 = *(long *)&this.field_0x10;
		 *         if (lVar4 == 0) {
		 *           UnityEngine.Bindings.ThrowHelper.ThrowNullReferenceException(this)
		 *           ;
		 *         }
		 *         if (pcRam000000000755f968 == null) {
		 *           pcRam000000000755f968 = (code *)func_0x031fdc50(&UNK_013604ff);
		 *         }
		 *         (*pcRam000000000755f968)(lVar4,pvVar1);
		 *         return;
		 *       }
		 *       IL2CPP.ThrowNullReferenceException();
		 *     }
		 *     func_0x031fdca0(PTR_DAT_070c6fb0);
		 *     this_00 = (void *)func_0x031fdf24();
		 *     pvVar1 = (void *)func_0x031fdca0(PTR_DAT_0714f5b0);
		 *     System.ArgumentException..ctor(this_00,pvVar1);
		 *   }
		 *   uVar3 = func_0x031fdca0(PTR_DAT_0714f5d0);
		 *   IL2CPP.ThrowManagedException();
		 */
		// RVA: 0x327645C VA: 0x781896145C
		private UnityEngine.AnimationCurve CopyAnimationCurve(UnityEngine.AnimationCurve curve);
		/*
		 *   undefined *puVar1;
		 *   void *this_00;
		 *   void *value;
		 *
		 *   puVar1 = typeinfo_ptr_UnityEngine_CoreModule_AnimationCurve_6FC5378;
		 *   if ((bRam000000000754ac2e & 1) == 0) {
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_AnimationCurve_6FC5378);
		 *     bRam000000000754ac2e = 1;
		 *   }
		 *   this_00 = (void *)func_0x031fdf24(*(undefined8 *)puVar1);
		 *   UnityEngine.AnimationCurve..ctor(this_00);
		 *   if ((curve != null) &&
		 *      (value = UnityEngine.AnimationCurve.get_keys(curve),
		 *      this_00 != null)) {
		 *     UnityEngine.AnimationCurve.set_keys(this_00,value);
		 *     return this_00;
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x32763F0 VA: 0x78189613F0
		private System.Collections.IEnumerator WarpText();
		/*
		 *   undefined *puVar1;
		 *   void *this_00;
		 *   void *extraout_x1;
		 *
		 *   puVar1 = PTR_DAT_070c56b8;
		 *   if ((bRam000000000754ac2f & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c56b8);
		 *     bRam000000000754ac2f = 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: 0x3276504 VA: 0x7818961504
		public void .ctor();
		/*
		 *   undefined *puVar1;
		 *   void *keys;
		 *   void *this_00;
		 *   undefined8 uVar2;
		 *   undefined8 uStack_c0;
		 *   undefined8 uStack_b8;
		 *   undefined8 uStack_b0;
		 *   undefined4 uStack_a8;
		 *   undefined8 uStack_a0;
		 *   undefined8 uStack_98;
		 *   undefined8 uStack_90;
		 *   undefined4 uStack_88;
		 *   undefined8 uStack_80;
		 *   undefined8 uStack_78;
		 *   undefined8 uStack_70;
		 *   undefined4 uStack_68;
		 *   undefined8 uStack_60;
		 *   undefined8 uStack_58;
		 *   undefined8 uStack_50;
		 *   undefined4 uStack_48;
		 *   undefined8 uStack_40;
		 *   undefined8 uStack_38;
		 *   undefined8 uStack_30;
		 *   undefined4 uStack_28;
		 *
		 *   puVar1 = PTR_DAT_070c5380;
		 *   if ((bRam000000000754ac30 & 1) == 0) {
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_AnimationCurve_6FC5378);
		 *     func_0x031fdc8c(PTR_DAT_070c5380);
		 *     bRam000000000754ac30 = 1;
		 *   }
		 *   keys = (void *)func_0x031fdd78(*(undefined8 *)puVar1,5);
		 *   uStack_40 = 0;
		 *   uStack_38 = 0;
		 *   uStack_28 = 0;
		 *   uStack_30 = 0;
		 *   UnityEngine.Keyframe..ctor(&uStack_40,0.0,0.0);
		 *   if (keys != null) {
		 *     if (*(int *)((long)keys + 0x18) != 0) {
		 *       *(undefined8 *)((long)keys + 0x28) = uStack_38;
		 *       *(undefined8 *)((long)keys + 0x20) = uStack_40;
		 *       *(undefined4 *)((long)keys + 0x38) = uStack_28;
		 *       *(undefined8 *)((long)keys + 0x30) = uStack_30;
		 *       uStack_60 = 0;
		 *       uStack_58 = 0;
		 *       uStack_48 = 0;
		 *       uStack_50 = 0;
		 *       UnityEngine.Keyframe..ctor(&uStack_60,0.25,2.0);
		 *       if ((*(uint *)((long)keys + 0x18) & 0xfffffffe) != 0) {
		 *         *(undefined8 *)((long)keys + 0x44) = uStack_58;
		 *         *(undefined8 *)((long)keys + 0x3c) = uStack_60;
		 *         *(undefined4 *)((long)keys + 0x54) = uStack_48;
		 *         *(undefined8 *)((long)keys + 0x4c) = uStack_50;
		 *         uStack_80 = 0;
		 *         uStack_78 = 0;
		 *         uStack_68 = 0;
		 *         uStack_70 = 0;
		 *         UnityEngine.Keyframe..ctor(&uStack_80,0.5,0.0);
		 *         if (2 < *(uint *)((long)keys + 0x18)) {
		 *           *(undefined8 *)((long)keys + 0x60) = uStack_78;
		 *           *(undefined8 *)((long)keys + 0x58) = uStack_80;
		 *           *(undefined4 *)((long)keys + 0x70) = uStack_68;
		 *           *(undefined8 *)((long)keys + 0x68) = uStack_70;
		 *           uStack_a0 = 0;
		 *           uStack_98 = 0;
		 *           uStack_88 = 0;
		 *           uStack_90 = 0;
		 *           UnityEngine.Keyframe..ctor(&uStack_a0,0.75,2.0);
		 *           if ((*(uint *)((long)keys + 0x18) & 0xfffffffc) != 0) {
		 *             *(undefined8 *)((long)keys + 0x7c) = uStack_98;
		 *             *(undefined8 *)((long)keys + 0x74) = uStack_a0;
		 *             *(undefined4 *)((long)keys + 0x8c) = uStack_88;
		 *             *(undefined8 *)((long)keys + 0x84) = uStack_90;
		 *             uStack_c0 = 0;
		 *             uStack_b8 = 0;
		 *             uStack_a8 = 0;
		 *             uStack_b0 = 0;
		 *             UnityEngine.Keyframe..ctor(&uStack_c0,1.0,0.0);
		 *             if (4 < *(uint *)((long)keys + 0x18)) {
		 *               *(undefined4 *)((long)keys + 0xa8) = uStack_a8;
		 *               puVar1 = typeinfo_ptr_UnityEngine_CoreModule_AnimationCurve_6FC5378;
		 *               *(undefined8 *)((long)keys + 0xa0) = uStack_b0;
		 *               *(undefined8 *)((long)keys + 0x98) = uStack_b8;
		 *               *(undefined8 *)((long)keys + 0x90) = uStack_c0;
		 *               this_00 = (void *)func_0x031fdf24(*(undefined8 *)puVar1);
		 *               UnityEngine.AnimationCurve..ctor(this_00,keys);
		 *               this.VertexCurve = this_00;
		 *               func_0x031fdc38(&this.VertexCurve,this_00);
		 *               uVar2 = NEON_fmov(0x3f800000,4);
		 *               this.CurveScale = 1.0;
		 *               this.AngleMultiplier = (float)(int)uVar2;
		 *               this.SpeedMultiplier = (float)(int)((ulong)uVar2 >> 0x20);
		 *               UnityEngine.MonoBehaviour..ctor(this);
		 *               return;
		 *             }
		 *           }
		 *         }
		 *       }
		 *     }
		 *     IL2CPP.ThrowIndexOutOfRangeException();
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
	}
}
