namespace TMPro.Examples
{

	// [TypeInfo RVA: 0x0]
	public class ObjectSpin : MonoBehaviour
	{
		public TMPro.Examples.ObjectSpin.MotionType Motion; // 0x20
		public UnityEngine.Vector3 TranslationDistance; // 0x24
		public float TranslationSpeed; // 0x30
		public float SpinSpeed; // 0x34
		public int RotationRange; // 0x38
		private UnityEngine.Transform m_transform; // 0x40
		private float m_time; // 0x48
		private UnityEngine.Vector3 m_prevPOS; // 0x4C
		private UnityEngine.Vector3 m_initial_Rotation; // 0x58
		private UnityEngine.Vector3 m_initial_Position; // 0x64
		private UnityEngine.Color32 m_lightColor; // 0x70

		// RVA: 0x326A780 VA: 0x7818955780
		private void Awake();
		/*
		 *   undefined *puVar1;
		 *   undefined *puVar2;
		 *   undefined4 uVar3;
		 *   void *pvVar4;
		 *   ulong uVar5;
		 *   undefined8 uVar6;
		 *   void **ppvVar7;
		 *   float fVar8;
		 *   undefined4 uVar10;
		 *   undefined8 uVar9;
		 *   float fVar11;
		 *   UnityEngine_Vector3 UVar12;
		 *   UnityEngine_Vector3 euler;
		 *   UnityEngine_Vector4 rotation;
		 *   UnityEngine_Color UVar13;
		 *
		 *   if ((bRam000000000754abdb & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c1cd0);
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8);
		 *     bRam000000000754abdb = 1;
		 *   }
		 *   pvVar4 = UnityEngine.Component.get_transform(this);
		 *   ppvVar7 = &this.m_transform;
		 *   *ppvVar7 = pvVar4;
		 *   func_0x031fdc38(ppvVar7,pvVar4);
		 *   if (*ppvVar7 != null) {
		 *     rotation = UnityEngine.Transform.get_rotation(*ppvVar7);
		 *     UVar12 = UnityEngine.Quaternion.Internal_ToEulerRad(rotation);
		 *     euler.x = UVar12.x * _UNK_0134e994;
		 *     euler.y = UVar12.y * _UNK_0134e994;
		 *     euler.z = UVar12.z * _UNK_0134e994;
		 *     uVar10 = 0;
		 *     uVar3 = 0;
		 *     UVar12 = UnityEngine.Quaternion.Internal_MakePositive(euler);
		 *     pvVar4 = this.m_transform;
		 *     (this.m_initial_Rotation).x = UVar12.x;
		 *     (this.m_initial_Rotation).y = UVar12.y;
		 *     (this.m_initial_Rotation).z = UVar12.z;
		 *     puVar2 = PTR_DAT_070c1cd0;
		 *     puVar1 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
		 *     if (pvVar4 != null) {
		 *       UVar12 = UnityEngine.Transform.get_position(pvVar4);
		 *       uVar6 = *(undefined8 *)puVar2;
		 *       (this.m_initial_Position).x = UVar12.x;
		 *       (this.m_initial_Position).y = UVar12.y;
		 *       (this.m_initial_Position).z = UVar12.z;
		 *       pvVar4 = (void *)func_0x0373df50(this,uVar6);
		 *       if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *         func_0x031fde08(*(long *)puVar1);
		 *       }
		 *       uVar5 = UnityEngine.Object.op_Inequality(pvVar4,null);
		 *       if ((uVar5 & 1) == 0) {
		 *         fVar8 = 0.0;
		 *         uVar6 = 0;
		 *         uVar9 = 0;
		 *         fVar11 = 1.0;
		 *       }
		 *       else {
		 *         if (pvVar4 == null) goto LAB_0336a8b0;
		 *         UVar13 = UnityEngine.Light.get_color(pvVar4);
		 *         fVar11 = UVar13.a;
		 *         uVar9 = CONCAT44(uVar10,UVar13.b);
		 *         uVar6 = CONCAT44(uVar3,UVar13.g);
		 *         fVar8 = UVar13.r;
		 *       }
		 *       uVar3 = func_0x0335ec5c(fVar8,uVar6,uVar9,fVar11,0);
		 *       *(undefined4 *)&this.m_lightColor = uVar3;
		 *       return;
		 *     }
		 *   }
		 * LAB_0336a8b0:
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x326A8B4 VA: 0x78189558B4
		private void Update();
		/*
		 *   int iVar1;
		 *   void *methodInfo_00;
		 *   long lVar2;
		 *   void *pvVar3;
		 *   float fVar4;
		 *   float fVar5;
		 *   float fVar6;
		 *   float fVar7;
		 *   UnityEngine_Vector3 value;
		 *   UnityEngine_Vector3 UVar8;
		 *   UnityEngine_Vector3 euler;
		 *   float fStack_18;
		 *   float fStack_14;
		 *
		 *   iVar1 = this.Motion;
		 *   if (iVar1 == 2) {
		 *     fVar5 = this.m_time;
		 *     fVar6 = this.TranslationSpeed;
		 *     fVar4 = UnityEngine.Time.get_deltaTime();
		 *     pvVar3 = this.m_transform;
		 *     this.m_time = fVar5 + fVar6 * fVar4;
		 *     if (pvVar3 != null) {
		 *       fVar4 = (this.m_initial_Position).z;
		 *       fVar5 = (this.TranslationDistance).y;
		 *       func_0x06cb3940(&fStack_14,&fStack_18);
		 *       value.z = fVar4 + fStack_18 * fStack_14 * fVar5;
		 *       value.y = (this.m_initial_Position).y + fStack_14 * (this.TranslationDistance).z;
		 *       value.x = (this.m_initial_Position).x + fStack_18 * (this.TranslationDistance).x;
		 *       UnityEngine.Transform.set_position(pvVar3,value);
		 *       if (this.m_transform != null) {
		 *         UVar8 = UnityEngine.Transform.get_position(this.m_transform);
		 *         (this.m_prevPOS).x = UVar8.x;
		 *         (this.m_prevPOS).y = UVar8.y;
		 *         (this.m_prevPOS).z = UVar8.z;
		 *         return;
		 *       }
		 *     }
		 *   }
		 *   else if (iVar1 == 1) {
		 *     fVar5 = this.m_time;
		 *     fVar7 = this.SpinSpeed;
		 *     fVar4 = UnityEngine.Time.get_deltaTime();
		 *     pvVar3 = this.m_transform;
		 *     fVar6 = (this.m_initial_Rotation).x;
		 *     this.m_time = fVar5 + fVar7 * fVar4;
		 *     fVar4 = (float)func_0x06cb3950();
		 *     UVar8.z = (this.m_initial_Rotation).z * _UNK_0134ef54;
		 *     UVar8.x = fVar6 * _UNK_0134ef54;
		 *     UVar8.y = ((this.m_initial_Rotation).y + fVar4 * (float)this.RotationRange) * _UNK_0134ef54;
		 *     UnityEngine.Quaternion.Internal_FromEulerRad(UVar8);
		 *     if (pvVar3 != null) {
		 *       if ((bRam000000000755ff1d & 1) == 0) {
		 *         func_0x031fdc8c(PTR_DAT_0714f6d0,0);
		 *         bRam000000000755ff1d = 1;
		 *       }
		 *       if (pvVar3 != null) {
		 *         lVar2 = *(long *)((long)pvVar3 + 0x10);
		 *         if (lVar2 == 0) {
		 *           UnityEngine.Bindings.ThrowHelper.ThrowNullReferenceException(pvVar3);
		 *         }
		 *         if (pcRam000000000755ff70 == null) {
		 *           pcRam000000000755ff70 = (code *)func_0x031fdc50(&UNK_013598d0);
		 *         }
		 *         (*pcRam000000000755ff70)(lVar2,&stack0xffffffffffffffd0);
		 *         return;
		 *       }
		 *       IL2CPP.ThrowNullReferenceException();
		 *     }
		 *   }
		 *   else {
		 *     if (iVar1 != 0) {
		 *       return;
		 *     }
		 *     pvVar3 = this.m_transform;
		 *     fVar5 = this.SpinSpeed;
		 *     fVar4 = UnityEngine.Time.get_deltaTime();
		 *     if (pvVar3 != null) {
		 *       euler.x = _UNK_0134ef54 * 0.0;
		 *       euler.y = fVar5 * fVar4 * _UNK_0134ef54;
		 *       euler.z = _UNK_0134ef54 * 0.0;
		 *       UnityEngine.Quaternion.Internal_FromEulerRad(euler);
		 *       UnityEngine.Transform.get_localRotation(pvVar3);
		 *       if ((bRam000000000755ff1f & 1) == 0) {
		 *         func_0x031fdc8c(PTR_DAT_0714f6d0);
		 *         bRam000000000755ff1f = 1;
		 *       }
		 *       if (pvVar3 != null) {
		 *         lVar2 = *(long *)((long)pvVar3 + 0x10);
		 *         if (lVar2 == 0) {
		 *           UnityEngine.Bindings.ThrowHelper.ThrowNullReferenceException(pvVar3);
		 *         }
		 *         if (pcRam000000000755ff80 == null) {
		 *           pcRam000000000755ff80 = (code *)func_0x031fdc50(&UNK_01380e4d);
		 *         }
		 *         (*pcRam000000000755ff80)(lVar2,&stack0xffffffffffffffd0);
		 *         return;
		 *       }
		 *       IL2CPP.ThrowNullReferenceException();
		 *     }
		 *   }
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x326AA24 VA: 0x7818955A24
		public void .ctor();
		/*
		 *   undefined8 uVar1;
		 *   undefined4 uVar2;
		 *   undefined *puVar3;
		 *   undefined8 uVar4;
		 *
		 *   uVar1 = _UNK_01348690;
		 *   *(undefined8 *)&(this.TranslationDistance).z = _UNK_01348698;
		 *   uVar4 = _UNK_01348690;
		 *   _UNK_01348690 = (undefined4)uVar1;
		 *   _UNK_01348694 = SUB84(uVar1,4);
		 *   uVar2 = _UNK_01348694;
		 *   (this.TranslationDistance).x = (float)_UNK_01348690;
		 *   _UNK_01348690 = uVar4;
		 *   (this.TranslationDistance).y = (float)uVar2;
		 *   this.SpinSpeed = 5.0;
		 *   puVar3 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
		 *   this.RotationRange = 0xf;
		 *   if ((bRam000000000755f76f & 1) == 0) {
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8,0);
		 *     bRam000000000755f76f = 1;
		 *   }
		 *   if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *   }
		 *   return;
		 */
	}
}
