namespace TMPro
{

	// [TypeInfo RVA: 0x0]
	public class TMP_PhoneNumberValidator : TMP_InputValidator
	{
		// RVA: 0x3266E44 VA: 0x7818951E44
		public override char Validate(System.String& text, System.Int32& pos, char ch);
		/*
		 *   uint uVar1;
		 *   undefined *puVar2;
		 *   undefined *puVar3;
		 *   undefined *puVar4;
		 *   undefined *puVar5;
		 *   void *pvVar6;
		 *   void *str1;
		 *   undefined4 uVar7;
		 *   void *pvVar8;
		 *   int iVar9;
		 *   ushort auStack_64 [2];
		 *
		 *   puVar2 = typeinfo_ptr_UnityEngine_CoreModule_Debug_6FC07A8;
		 *   auStack_64[0] = ch;
		 *   if ((bRam000000000754abc2 & 1) == 0) {
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Debug_6FC07A8);
		 *     func_0x031fdc8c(PTR_DAT_070c2388);
		 *     func_0x031fdc8c(PTR_DAT_070c51b8);
		 *     func_0x031fdc8c(PTR_DAT_070c51c0);
		 *     func_0x031fdc8c(PTR_DAT_070c51c8);
		 *     func_0x031fdc8c(PTR_DAT_070c51d0);
		 *     bRam000000000754abc2 = 1;
		 *   }
		 *   puVar3 = PTR_DAT_070c51d0;
		 *   if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *   }
		 *   UnityEngine.Debug.Log(*(void **)puVar3);
		 *   puVar5 = PTR_DAT_070c51c8;
		 *   puVar4 = PTR_DAT_070c51b8;
		 *   puVar3 = PTR_DAT_070c2388;
		 *   puVar2 = PTR_DAT_070c0840;
		 *   if (*(long *)text == 0) {
		 *     IL2CPP.ThrowNullReferenceException();
		 *   }
		 *   uVar1 = *(uint *)(*(long *)text + 0x10);
		 *   if (uVar1 < 0x7fffffff) {
		 *     iVar9 = 0;
		 *     do {
		 *       switch(iVar9) {
		 *       case 0:
		 *         if (uVar1 == 0) {
		 *           if (*(int *)(*(long *)(puVar2 + 0x88) + 0xe4) == 0) {
		 *             func_0x031fde08();
		 *           }
		 *           pvVar6 = System.Char.ToString(auStack_64);
		 *           pvVar8 = *(void **)PTR_DAT_070c51c0;
		 * code_r0x033671c8:
		 *           pvVar8 = System.String.Concat(pvVar8,pvVar6);
		 *           *(void **)text = pvVar8;
		 *           func_0x031fdc38(text,pvVar8);
		 *         }
		 *         goto code_r0x033671e0;
		 *       case 1:
		 *         if (uVar1 == 1) {
		 *           pvVar8 = *(void **)text;
		 *           if (*(int *)(*(long *)(puVar2 + 0x88) + 0xe4) == 0) {
		 *             func_0x031fde08();
		 *           }
		 *           pvVar6 = System.Char.ToString(auStack_64);
		 *           goto code_r0x033671c8;
		 *         }
		 * code_r0x033671e0:
		 *         uVar7 = 2;
		 *         break;
		 *       case 2:
		 *         if (uVar1 == 2) {
		 *           pvVar8 = *(void **)text;
		 *           if (*(int *)(*(long *)(puVar2 + 0x88) + 0xe4) == 0) {
		 *             func_0x031fde08();
		 *           }
		 *           pvVar6 = System.Char.ToString(auStack_64);
		 *           pvVar8 = System.String.Concat(pvVar8,pvVar6);
		 *           *(void **)text = pvVar8;
		 *           func_0x031fdc38(text,pvVar8);
		 *         }
		 *         uVar7 = 3;
		 *         break;
		 *       case 3:
		 *         if (uVar1 == 3) {
		 *           pvVar8 = *(void **)text;
		 *           if (*(int *)(*(long *)(puVar2 + 0x88) + 0xe4) == 0) {
		 *             func_0x031fde08();
		 *           }
		 *           pvVar6 = System.Char.ToString(auStack_64);
		 *           pvVar8 = System.String.Concat(pvVar8,pvVar6,*(void **)puVar5);
		 *           *(void **)text = pvVar8;
		 *           func_0x031fdc38(text,pvVar8);
		 *         }
		 *         uVar7 = 6;
		 *         break;
		 *       case 4:
		 *         if (uVar1 == 4) {
		 *           pvVar8 = *(void **)text;
		 *           if (*(int *)(*(long *)(puVar2 + 0x88) + 0xe4) == 0) {
		 *             func_0x031fde08();
		 *           }
		 *           pvVar6 = System.Char.ToString(auStack_64);
		 *           str1 = *(void **)puVar5;
		 * code_r0x03367214:
		 *           pvVar8 = System.String.Concat(pvVar8,str1,pvVar6);
		 * code_r0x033672b0:
		 *           *(void **)text = pvVar8;
		 *           func_0x031fdc38(text,pvVar8);
		 *         }
		 *         goto code_r0x033672c0;
		 *       case 5:
		 *         if (uVar1 == 5) {
		 *           pvVar8 = *(void **)text;
		 *           if (*(int *)(*(long *)(puVar2 + 0x88) + 0xe4) == 0) {
		 *             func_0x031fde08();
		 *           }
		 *           pvVar6 = System.Char.ToString(auStack_64);
		 *           str1 = *(void **)puVar3;
		 *           goto code_r0x03367214;
		 *         }
		 *         goto code_r0x033672c0;
		 *       case 6:
		 *         if (uVar1 == 6) {
		 *           pvVar8 = *(void **)text;
		 *           if (*(int *)(*(long *)(puVar2 + 0x88) + 0xe4) == 0) {
		 *             func_0x031fde08();
		 *           }
		 *           pvVar6 = System.Char.ToString(auStack_64);
		 *           pvVar8 = System.String.Concat(pvVar8,pvVar6);
		 *           goto code_r0x033672b0;
		 *         }
		 * code_r0x033672c0:
		 *         uVar7 = 7;
		 *         break;
		 *       case 7:
		 *         if (uVar1 == 7) {
		 *           pvVar8 = *(void **)text;
		 *           if (*(int *)(*(long *)(puVar2 + 0x88) + 0xe4) == 0) {
		 *             func_0x031fde08();
		 *           }
		 *           pvVar6 = System.Char.ToString(auStack_64);
		 *           pvVar8 = System.String.Concat(pvVar8,pvVar6);
		 *           *(void **)text = pvVar8;
		 *           func_0x031fdc38(text,pvVar8);
		 *         }
		 *         uVar7 = 8;
		 *         break;
		 *       case 8:
		 *         if (uVar1 == 8) {
		 *           pvVar8 = *(void **)text;
		 *           if (*(int *)(*(long *)(puVar2 + 0x88) + 0xe4) == 0) {
		 *             func_0x031fde08();
		 *           }
		 *           pvVar6 = System.Char.ToString(auStack_64);
		 *           pvVar8 = System.String.Concat(pvVar8,pvVar6,*(void **)puVar4);
		 *           *(void **)text = pvVar8;
		 *           func_0x031fdc38(text,pvVar8);
		 *         }
		 *         uVar7 = 10;
		 *         break;
		 *       case 9:
		 *         if (uVar1 == 9) {
		 *           pvVar8 = *(void **)text;
		 *           if (*(int *)(*(long *)(puVar2 + 0x88) + 0xe4) == 0) {
		 *             func_0x031fde08();
		 *           }
		 *           pvVar6 = System.Char.ToString(auStack_64);
		 *           pvVar8 = System.String.Concat(pvVar8,*(void **)puVar4,pvVar6);
		 * code_r0x03367300:
		 *           *(void **)text = pvVar8;
		 *           func_0x031fdc38(text,pvVar8);
		 *         }
		 *         goto code_r0x03367310;
		 *       case 10:
		 *         if (uVar1 == 10) {
		 *           pvVar8 = *(void **)text;
		 *           if (*(int *)(*(long *)(puVar2 + 0x88) + 0xe4) == 0) {
		 *             func_0x031fde08();
		 *           }
		 *           pvVar6 = System.Char.ToString(auStack_64);
		 *           pvVar8 = System.String.Concat(pvVar8,pvVar6);
		 *           goto code_r0x03367300;
		 *         }
		 * code_r0x03367310:
		 *         uVar7 = 0xb;
		 *         break;
		 *       case 0xb:
		 *         if (uVar1 == 0xb) {
		 *           pvVar8 = *(void **)text;
		 *           if (*(int *)(*(long *)(puVar2 + 0x88) + 0xe4) == 0) {
		 *             func_0x031fde08();
		 *           }
		 *           pvVar6 = System.Char.ToString(auStack_64);
		 *           pvVar8 = System.String.Concat(pvVar8,pvVar6);
		 *           *(void **)text = pvVar8;
		 *           func_0x031fdc38(text,pvVar8);
		 *         }
		 *         uVar7 = 0xc;
		 *         break;
		 *       case 0xc:
		 *         if (uVar1 == 0xc) {
		 *           pvVar8 = *(void **)text;
		 *           if (*(int *)(*(long *)(puVar2 + 0x88) + 0xe4) == 0) {
		 *             func_0x031fde08();
		 *           }
		 *           pvVar6 = System.Char.ToString(auStack_64);
		 *           pvVar8 = System.String.Concat(pvVar8,pvVar6);
		 *           *(void **)text = pvVar8;
		 *           func_0x031fdc38(text,pvVar8);
		 *         }
		 *         uVar7 = 0xd;
		 *         break;
		 *       case 0xd:
		 *         if (uVar1 == 0xd) {
		 *           pvVar8 = *(void **)text;
		 *           if (*(int *)(*(long *)(puVar2 + 0x88) + 0xe4) == 0) {
		 *             func_0x031fde08();
		 *           }
		 *           pvVar6 = System.Char.ToString(auStack_64);
		 *           pvVar8 = System.String.Concat(pvVar8,pvVar6);
		 *           *(void **)text = pvVar8;
		 *           func_0x031fdc38(text,pvVar8);
		 *         }
		 *         uVar7 = 0xe;
		 *         break;
		 *       default:
		 *         goto LAB_0336736c;
		 *       }
		 *       *(undefined4 *)(ulong)(uint)pos = uVar7;
		 * LAB_0336736c:
		 *       iVar9 = iVar9 + 1;
		 *       ch = auStack_64[0];
		 *     } while (uVar1 + 1 != iVar9);
		 *   }
		 *   return ch;
		 */
		// RVA: 0x32673A4 VA: 0x78189523A4
		public void .ctor();
		/*
		 *   undefined *puVar1;
		 *
		 *   puVar1 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
		 *   if ((bRam000000000755f991 & 1) == 0) {
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8,0);
		 *     bRam000000000755f991 = 1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *   }
		 *   System.Object..ctor(this);
		 *   if (pcRam000000000755f998 == null) {
		 *     pcRam000000000755f998 = (code *)func_0x031fdc50(&UNK_01369ba2);
		 *   }
		 *   (*pcRam000000000755f998)(this);
		 *   return;
		 */
	}
}
