namespace TMPro
{

	// [TypeInfo RVA: 0x0]
	public class TMP_TextEventHandler : MonoBehaviour
	{
		private TMPro.TMP_TextEventHandler.CharacterSelectionEvent m_OnCharacterSelection; // 0x20
		private TMPro.TMP_TextEventHandler.SpriteSelectionEvent m_OnSpriteSelection; // 0x28
		private TMPro.TMP_TextEventHandler.WordSelectionEvent m_OnWordSelection; // 0x30
		private TMPro.TMP_TextEventHandler.LineSelectionEvent m_OnLineSelection; // 0x38
		private TMPro.TMP_TextEventHandler.LinkSelectionEvent m_OnLinkSelection; // 0x40
		private TMPro.TMP_Text m_TextComponent; // 0x48
		private UnityEngine.Camera m_Camera; // 0x50
		private UnityEngine.Canvas m_Canvas; // 0x58
		private int m_selectedLink; // 0x60
		private int m_lastCharIndex; // 0x64
		private int m_lastWordIndex; // 0x68
		private int m_lastLineIndex; // 0x6C

		// RVA: 0x32673AC VA: 0x78189523AC
		public TMPro.TMP_TextEventHandler.CharacterSelectionEvent get_onCharacterSelection();
		/*
		 *   return this.m_OnCharacterSelection;
		 */
		// RVA: 0x32673B4 VA: 0x78189523B4
		public void set_onCharacterSelection(TMPro.TMP_TextEventHandler.CharacterSelectionEvent value);
		/*
		 *   void **ppvVar1;
		 *
		 *   ppvVar1 = &this.m_OnCharacterSelection;
		 *   *ppvVar1 = value;
		 *   if (iRam00000000077785f0 != 0) {
		 *     func_0x032ed0c0(1L << ((ulong)ppvVar1 >> 0xc & 0x3f),
		 *                     ((ulong)ppvVar1 >> 0x12 & 0x7fff) * 8 + 0x75ac5c8);
		 *   }
		 *   return;
		 */
		// RVA: 0x32673BC VA: 0x78189523BC
		public TMPro.TMP_TextEventHandler.SpriteSelectionEvent get_onSpriteSelection();
		/*
		 *   return this.m_OnSpriteSelection;
		 */
		// RVA: 0x32673C4 VA: 0x78189523C4
		public void set_onSpriteSelection(TMPro.TMP_TextEventHandler.SpriteSelectionEvent value);
		/*
		 *   void **ppvVar1;
		 *
		 *   ppvVar1 = &this.m_OnSpriteSelection;
		 *   *ppvVar1 = value;
		 *   if (iRam00000000077785f0 != 0) {
		 *     func_0x032ed0c0(1L << ((ulong)ppvVar1 >> 0xc & 0x3f),
		 *                     ((ulong)ppvVar1 >> 0x12 & 0x7fff) * 8 + 0x75ac5c8);
		 *   }
		 *   return;
		 */
		// RVA: 0x32673CC VA: 0x78189523CC
		public TMPro.TMP_TextEventHandler.WordSelectionEvent get_onWordSelection();
		/*
		 *   return this.m_OnWordSelection;
		 */
		// RVA: 0x32673D4 VA: 0x78189523D4
		public void set_onWordSelection(TMPro.TMP_TextEventHandler.WordSelectionEvent value);
		/*
		 *   void **ppvVar1;
		 *
		 *   ppvVar1 = &this.m_OnWordSelection;
		 *   *ppvVar1 = value;
		 *   if (iRam00000000077785f0 != 0) {
		 *     func_0x032ed0c0(1L << ((ulong)ppvVar1 >> 0xc & 0x3f),
		 *                     ((ulong)ppvVar1 >> 0x12 & 0x7fff) * 8 + 0x75ac5c8);
		 *   }
		 *   return;
		 */
		// RVA: 0x32673DC VA: 0x78189523DC
		public TMPro.TMP_TextEventHandler.LineSelectionEvent get_onLineSelection();
		/*
		 *   return this.m_OnLineSelection;
		 */
		// RVA: 0x32673E4 VA: 0x78189523E4
		public void set_onLineSelection(TMPro.TMP_TextEventHandler.LineSelectionEvent value);
		/*
		 *   void **ppvVar1;
		 *
		 *   ppvVar1 = &this.m_OnLineSelection;
		 *   *ppvVar1 = value;
		 *   if (iRam00000000077785f0 != 0) {
		 *     func_0x032ed0c0(1L << ((ulong)ppvVar1 >> 0xc & 0x3f),
		 *                     ((ulong)ppvVar1 >> 0x12 & 0x7fff) * 8 + 0x75ac5c8);
		 *   }
		 *   return;
		 */
		// RVA: 0x32673EC VA: 0x78189523EC
		public TMPro.TMP_TextEventHandler.LinkSelectionEvent get_onLinkSelection();
		/*
		 *   return this.m_OnLinkSelection;
		 */
		// RVA: 0x32673F4 VA: 0x78189523F4
		public void set_onLinkSelection(TMPro.TMP_TextEventHandler.LinkSelectionEvent value);
		/*
		 *   void **ppvVar1;
		 *
		 *   ppvVar1 = &this.m_OnLinkSelection;
		 *   *ppvVar1 = value;
		 *   if (iRam00000000077785f0 != 0) {
		 *     func_0x032ed0c0(1L << ((ulong)ppvVar1 >> 0xc & 0x3f),
		 *                     ((ulong)ppvVar1 >> 0x12 & 0x7fff) * 8 + 0x75ac5c8);
		 *   }
		 *   return;
		 */
		// RVA: 0x32673FC VA: 0x78189523FC
		private void Awake();
		/*
		 *   void *pvVar1;
		 *   void **ppvVar2;
		 *
		 *   if ((bRam000000000754abc3 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c51d8);
		 *     func_0x031fdc8c(PTR_DAT_070c51e0);
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8);
		 *     func_0x031fdc8c(PTR_DAT_070c51e8);
		 *     bRam000000000754abc3 = 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: 0x32675A8 VA: 0x78189525A8
		private void LateUpdate();
		/*
		 *   int iVar1;
		 *   uint charIndex;
		 *   undefined *puVar2;
		 *   bool bVar3;
		 *   uint uVar4;
		 *   void *pvVar5;
		 *   void *methodInfo_00;
		 *   void *in_x4;
		 *   long lVar6;
		 *   long lVar7;
		 *   void *pvVar8;
		 *   ulong uVar9;
		 *   UnityEngine_Vector3 UVar10;
		 *   undefined8 uStack_c0;
		 *   undefined8 uStack_b8;
		 *   undefined8 uStack_b0;
		 *   undefined8 uStack_a8;
		 *   undefined8 uStack_a0;
		 *   undefined8 uStack_90;
		 *   undefined8 uStack_88;
		 *   undefined8 uStack_80;
		 *
		 *   if ((bRam000000000754abc4 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c0de0);
		 *     func_0x031fdc8c(typeinfo_ptr_Unity_TextMeshPro_TMP_TextUtilities_6FC51F0);
		 *     bRam000000000754abc4 = 1;
		 *   }
		 *   puVar2 = typeinfo_ptr_Unity_TextMeshPro_TMP_TextUtilities_6FC51F0;
		 *   uStack_90 = 0;
		 *   uStack_88 = 0;
		 *   uStack_80 = 0;
		 *   uStack_a0 = 0;
		 *   uStack_b8 = 0;
		 *   uStack_c0 = 0;
		 *   uStack_a8 = 0;
		 *   uStack_b0 = 0;
		 *   if (this.m_TextComponent != null) {
		 *     pvVar5 = TMPro.TMP_Text.get_rectTransform(this.m_TextComponent);
		 *     UVar10 = UnityEngine.Input.get_mousePosition();
		 *     pvVar8 = this.m_Camera;
		 *     if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
		 *       func_0x031fde08();
		 *     }
		 *     bVar3 = TMP_TextUtilities.IsIntersectingRectTransform(pvVar5,UVar10,pvVar8);
		 *     if (bVar3) {
		 *       pvVar5 = this.m_TextComponent;
		 *       UVar10 = UnityEngine.Input.get_mousePosition();
		 *       pvVar8 = this.m_Camera;
		 *       if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
		 *         func_0x031fde08();
		 *       }
		 *       methodInfo_00 = null;
		 *       uVar4 = TMP_TextUtilities.FindIntersectingCharacter(pvVar5,UVar10,pvVar8,true);
		 *       if ((uVar4 != 0xffffffff) && (uVar4 != this.m_lastCharIndex)) {
		 *         this.m_lastCharIndex = uVar4;
		 *         if ((this.m_TextComponent == null) ||
		 *            ((pvVar5 = TMPro.TMP_Text.get_textInfo(this.m_TextComponent), pvVar5 == null ||
		 *             (lVar6 = *(long *)((long)pvVar5 + 0x38), lVar6 == 0)))) goto LAB_03367ae8;
		 *         if (*(uint *)(lVar6 + 0x18) <= uVar4) goto LAB_03367aec;
		 *         iVar1 = *(int *)(lVar6 + (long)(int)uVar4 * 0x178 + 0x20);
		 *         if (iVar1 == 1) {
		 *           if (((this.m_TextComponent == null) ||
		 *               (pvVar5 = TMPro.TMP_Text.get_textInfo(this.m_TextComponent), pvVar5 == null)) ||
		 *              (lVar6 = *(long *)((long)pvVar5 + 0x38), lVar6 == 0)) goto LAB_03367ae8;
		 *           if (*(uint *)(lVar6 + 0x18) <= uVar4) goto LAB_03367aec;
		 *           TMP_TextEventHandler.SendOnSpriteSelection(this,*(ushort *)(lVar6 + (long)(int)uVar4 * 0x178 + 0x24),uVar4);
		 *         }
		 *         else if (iVar1 == 0) {
		 *           if (((this.m_TextComponent == null) ||
		 *               (pvVar5 = TMPro.TMP_Text.get_textInfo(this.m_TextComponent), pvVar5 == null)) ||
		 *              (lVar6 = *(long *)((long)pvVar5 + 0x38), lVar6 == 0)) goto LAB_03367ae8;
		 *           if (*(uint *)(lVar6 + 0x18) <= uVar4) goto LAB_03367aec;
		 *           TMP_TextEventHandler.SendOnCharacterSelection(this,*(ushort *)(lVar6 + (long)(int)uVar4 * 0x178 + 0x24),uVar4);
		 *         }
		 *       }
		 *       pvVar5 = this.m_TextComponent;
		 *       UVar10 = UnityEngine.Input.get_mousePosition();
		 *       pvVar8 = this.m_Camera;
		 *       if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
		 *         func_0x031fde08();
		 *       }
		 *       uVar4 = TMP_TextUtilities.FindIntersectingWord(pvVar5,UVar10,pvVar8);
		 *       if ((uVar4 != 0xffffffff) && (uVar4 != this.m_lastWordIndex)) {
		 *         this.m_lastWordIndex = uVar4;
		 *         if ((this.m_TextComponent == null) ||
		 *            ((pvVar5 = TMPro.TMP_Text.get_textInfo(this.m_TextComponent), pvVar5 == null ||
		 *             (lVar6 = *(long *)((long)pvVar5 + 0x40), lVar6 == 0)))) goto LAB_03367ae8;
		 *         if (*(uint *)(lVar6 + 0x18) <= uVar4) goto LAB_03367aec;
		 *         lVar6 = lVar6 + (long)(int)uVar4 * 0x18;
		 *         uStack_80 = *(undefined8 *)(lVar6 + 0x30);
		 *         uStack_88 = *(undefined8 *)(lVar6 + 0x28);
		 *         uStack_90 = *(undefined8 *)(lVar6 + 0x20);
		 *         pvVar5 = TMPro.TMP_WordInfo.GetWord(&uStack_90);
		 *         TMP_TextEventHandler.SendOnWordSelection(this,pvVar5,(int)uStack_88,(int)uStack_80);
		 *       }
		 *       pvVar5 = this.m_TextComponent;
		 *       UVar10 = UnityEngine.Input.get_mousePosition();
		 *       pvVar8 = this.m_Camera;
		 *       if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
		 *         func_0x031fde08();
		 *       }
		 *       uVar4 = TMP_TextUtilities.FindIntersectingLine(pvVar5,UVar10,pvVar8);
		 *       if ((uVar4 != 0xffffffff) && (uVar4 != this.m_lastLineIndex)) {
		 *         this.m_lastLineIndex = uVar4;
		 *         if ((this.m_TextComponent == null) ||
		 *            ((pvVar5 = TMPro.TMP_Text.get_textInfo(this.m_TextComponent), pvVar5 == null ||
		 *             (lVar6 = *(long *)((long)pvVar5 + 0x50), lVar6 == 0)))) goto LAB_03367ae8;
		 *         if (*(uint *)(lVar6 + 0x18) <= uVar4) goto LAB_03367aec;
		 *         lVar6 = lVar6 + (long)(int)uVar4 * 0x60;
		 *         uVar4 = *(uint *)(lVar6 + 0x24);
		 *         charIndex = *(uint *)(lVar6 + 0x38);
		 *         pvVar5 = (void *)func_0x031fdd78(*(undefined8 *)PTR_DAT_070c0de0,(ulong)uVar4);
		 *         if (0 < (int)uVar4) {
		 *           uVar9 = 0;
		 *           lVar6 = (ulong)charIndex << 0x20;
		 *           do {
		 *             if (this.m_TextComponent == null) goto LAB_03367ae8;
		 *             pvVar8 = TMPro.TMP_Text.get_textInfo(this.m_TextComponent);
		 *             if ((pvVar8 == null) || (*(long *)((long)pvVar8 + 0x38) == 0)) goto LAB_03367ae8;
		 *             if ((long)*(int *)(*(long *)((long)pvVar8 + 0x38) + 0x18) <= (long)uVar9) break;
		 *             if (this.m_TextComponent == null) goto LAB_03367ae8;
		 *             pvVar8 = TMPro.TMP_Text.get_textInfo(this.m_TextComponent);
		 *             if ((pvVar8 == null) || (lVar7 = *(long *)((long)pvVar8 + 0x38), lVar7 == 0))
		 *             goto LAB_03367ae8;
		 *             if ((ulong)*(uint *)(lVar7 + 0x18) <= charIndex + uVar9) goto LAB_03367aec;
		 *             if (pvVar5 == null) goto LAB_03367ae8;
		 *             if (*(uint *)((long)pvVar5 + 0x18) <= uVar9) goto LAB_03367aec;
		 *             *(undefined2 *)((long)pvVar5 + uVar9 * 2 + 0x20) =
		 *                  *(undefined2 *)(lVar7 + (long)(int)((ulong)lVar6 >> 0x20) * 0x178 + 0x24);
		 *             uVar9 = uVar9 + 1;
		 *             lVar6 = lVar6 + 0x100000000;
		 *           } while (uVar4 != uVar9);
		 *         }
		 *         pvVar5 = System.String.CreateString(null,pvVar5);
		 *         TMP_TextEventHandler.SendOnLineSelection(this,pvVar5,charIndex,uVar4);
		 *       }
		 *       pvVar5 = this.m_TextComponent;
		 *       UVar10 = UnityEngine.Input.get_mousePosition();
		 *       pvVar8 = this.m_Camera;
		 *       if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
		 *         func_0x031fde08();
		 *       }
		 *       uVar4 = TMP_TextUtilities.FindIntersectingLink(pvVar5,UVar10,pvVar8);
		 *       if ((uVar4 != 0xffffffff) && (uVar4 != this.m_selectedLink)) {
		 *         this.m_selectedLink = uVar4;
		 *         if ((this.m_TextComponent == null) ||
		 *            ((pvVar5 = TMPro.TMP_Text.get_textInfo(this.m_TextComponent), pvVar5 == null ||
		 *             (lVar6 = *(long *)((long)pvVar5 + 0x48), lVar6 == 0)))) goto LAB_03367ae8;
		 *         if (*(uint *)(lVar6 + 0x18) <= uVar4) {
		 * LAB_03367aec:
		 *           IL2CPP.ThrowIndexOutOfRangeException();
		 *         }
		 *         lVar6 = lVar6 + (long)(int)uVar4 * 0x28;
		 *         uStack_b8 = *(undefined8 *)(lVar6 + 0x28);
		 *         uStack_c0 = *(undefined8 *)(lVar6 + 0x20);
		 *         uStack_a8 = *(undefined8 *)(lVar6 + 0x38);
		 *         uStack_b0 = *(undefined8 *)(lVar6 + 0x30);
		 *         uStack_a0 = *(undefined8 *)(lVar6 + 0x40);
		 *         pvVar5 = TMPro.TMP_LinkInfo.GetLinkID(&uStack_c0);
		 *         pvVar8 = TMPro.TMP_LinkInfo.GetLinkText(&uStack_c0);
		 *         TMP_TextEventHandler.SendOnLinkSelection(this,pvVar5,pvVar8,uVar4);
		 *       }
		 *     }
		 *     else {
		 *       this.m_selectedLink = -1;
		 *       this.m_lastCharIndex = -1;
		 *       this.m_lastWordIndex = -1;
		 *       this.m_lastLineIndex = -1;
		 *     }
		 *     return;
		 *   }
		 * LAB_03367ae8:
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x3267D4C VA: 0x7818952D4C
		public void OnPointerEnter(UnityEngine.EventSystems.PointerEventData eventData);
		/*
		 *   return;
		 */
		// RVA: 0x3267D50 VA: 0x7818952D50
		public void OnPointerExit(UnityEngine.EventSystems.PointerEventData eventData);
		/*
		 *   return;
		 */
		// RVA: 0x3267AF0 VA: 0x7818952AF0
		private void SendOnCharacterSelection(char character, int characterIndex);
		/*
		 *   byte bVar1;
		 *   undefined *puVar2;
		 *   undefined *puVar3;
		 *   void *this_00;
		 *   void *pvVar4;
		 *   long *plVar5;
		 *   undefined8 uVar6;
		 *   long lVar7;
		 *   long lVar8;
		 *   long lVar9;
		 *   int iVar10;
		 *   long *plVar11;
		 *   int iStack_68;
		 *   ushort auStack_64 [2];
		 *
		 *   if ((bRam000000000754abc5 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c51f8);
		 *     bRam000000000754abc5 = 1;
		 *   }
		 *   this_00 = this.m_OnCharacterSelection;
		 *   if (this_00 == null) {
		 *     return;
		 *   }
		 *   lVar8 = *(long *)PTR_DAT_070c51f8;
		 *   if ((bRam000000000754d43a & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070cae50);
		 *     func_0x031fdc8c(PTR_DAT_070cae58);
		 *     func_0x031fdc8c(PTR_DAT_070cae60);
		 *     func_0x031fdc8c(PTR_DAT_070c0a10);
		 *     bRam000000000754d43a = 1;
		 *   }
		 *   if ((this_00 != null) &&
		 *      (pvVar4 = UnityEngine.Events.UnityEventBase.PrepareInvoke(this_00),
		 *      puVar3 = PTR_DAT_070cae60, puVar2 = PTR_DAT_070cae50, pvVar4 != null)) {
		 *     if (0 < *(int *)((long)pvVar4 + 0x18)) {
		 *       iVar10 = 0;
		 *       do {
		 *         plVar5 = (long *)func_0x03f2d434(pvVar4,iVar10,*(undefined8 *)puVar3);
		 *         lVar9 = *(long *)(*(long *)(*(long *)(lVar8 + 0x20) + 0xc0) + 0x30);
		 *         if ((*(ushort *)(lVar9 + 0x135) & 1) == 0) {
		 *           lVar9 = func_0x03237224(lVar9);
		 *         }
		 *         if (plVar5 == null) {
		 * LAB_048ebcb4:
		 *           plVar5 = (long *)func_0x03f2d434(pvVar4,iVar10,*(undefined8 *)puVar3);
		 *           if (plVar5 != null) {
		 *             bVar1 = *(byte *)(*(long *)puVar2 + 0x130);
		 *             if ((bVar1 <= *(byte *)(*plVar5 + 0x130)) &&
		 *                (*(long *)(*(long *)(*plVar5 + 200) + (ulong)bVar1 * 8 + -8) == *(long *)puVar2)) {
		 *               InvokableCall.Invoke(plVar5);
		 *               goto LAB_048ebdf8;
		 *             }
		 *           }
		 *           plVar5 = (long *)func_0x03f2d434(pvVar4,iVar10,*(undefined8 *)puVar3);
		 *           plVar11 = *(long **)((long)this_00 + 0x28);
		 *           if (plVar11 == null) {
		 *             uVar6 = func_0x031fdd78(*(undefined8 *)PTR_DAT_070c0a10,2);
		 *             *(undefined8 *)((long)this_00 + 0x28) = uVar6;
		 *             func_0x031fdc38((long)this_00 + 0x28,uVar6);
		 *             plVar11 = *(long **)((long)this_00 + 0x28);
		 *           }
		 *           auStack_64[0] = character;
		 *           lVar9 = func_0x031fde10(*(undefined8 *)(*(long *)(*(long *)(lVar8 + 0x20) + 0xc0) + 0x48),
		 *                                   auStack_64);
		 *           if (plVar11 == null) goto LAB_048ebe58;
		 *           if ((lVar9 != 0) &&
		 *              (lVar7 = func_0x031fde0c(lVar9,*(undefined8 *)(*plVar11 + 0x40)), lVar7 == 0)) {
		 * LAB_048ebe60:
		 *             uVar6 = func_0x031fdf58();
		 *             IL2CPP.ThrowManagedException();
		 *           }
		 *           if ((int)plVar11[3] == 0) {
		 * LAB_048ebe5c:
		 *             IL2CPP.ThrowIndexOutOfRangeException();
		 *           }
		 *           plVar11[4] = lVar9;
		 *           func_0x031fdc38(plVar11 + 4,lVar9);
		 *           plVar11 = *(long **)((long)this_00 + 0x28);
		 *           iStack_68 = characterIndex;
		 *           lVar9 = func_0x031fde10(*(undefined8 *)(*(long *)(*(long *)(lVar8 + 0x20) + 0xc0) + 0x50),
		 *                                   &iStack_68);
		 *           if (plVar11 == null) goto LAB_048ebe58;
		 *           if ((lVar9 != 0) &&
		 *              (lVar7 = func_0x031fde0c(lVar9,*(undefined8 *)(*plVar11 + 0x40)), lVar7 == 0))
		 *           goto LAB_048ebe60;
		 *           if ((*(uint *)(plVar11 + 3) & 0xfffffffe) == 0) goto LAB_048ebe5c;
		 *           plVar11[5] = lVar9;
		 *           func_0x031fdc38(plVar11 + 5,lVar9);
		 *           if (plVar5 == null) goto LAB_048ebe58;
		 *           (**(code **)(*plVar5 + 0x178))
		 *                     (plVar5,*(undefined8 *)((long)this_00 + 0x28),*(undefined8 *)(*plVar5 + 0x180));
		 *         }
		 *         else {
		 *           if ((*(byte *)(*plVar5 + 0x130) < *(byte *)(lVar9 + 0x130)) ||
		 *              (*(long *)(*(long *)(*plVar5 + 200) + (ulong)*(byte *)(lVar9 + 0x130) * 8 + -8) !=
		 *               lVar9)) goto LAB_048ebcb4;
		 *           func_0x03cf5d78(plVar5,character,characterIndex,
		 *                           *(undefined8 *)(*(long *)(*(long *)(lVar8 + 0x20) + 0xc0) + 0x58));
		 *         }
		 * LAB_048ebdf8:
		 *         iVar10 = iVar10 + 1;
		 *       } while (iVar10 < *(int *)((long)pvVar4 + 0x18));
		 *     }
		 *     return;
		 *   }
		 * LAB_048ebe58:
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x3267B64 VA: 0x7818952B64
		private void SendOnSpriteSelection(char character, int characterIndex);
		/*
		 *   byte bVar1;
		 *   undefined *puVar2;
		 *   undefined *puVar3;
		 *   void *this_00;
		 *   void *pvVar4;
		 *   long *plVar5;
		 *   undefined8 uVar6;
		 *   long lVar7;
		 *   long lVar8;
		 *   long lVar9;
		 *   int iVar10;
		 *   long *plVar11;
		 *   int iStack_68;
		 *   ushort auStack_64 [2];
		 *
		 *   if ((bRam000000000754abc6 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c51f8);
		 *     bRam000000000754abc6 = 1;
		 *   }
		 *   this_00 = this.m_OnSpriteSelection;
		 *   if (this_00 == null) {
		 *     return;
		 *   }
		 *   lVar8 = *(long *)PTR_DAT_070c51f8;
		 *   if ((bRam000000000754d43a & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070cae50);
		 *     func_0x031fdc8c(PTR_DAT_070cae58);
		 *     func_0x031fdc8c(PTR_DAT_070cae60);
		 *     func_0x031fdc8c(PTR_DAT_070c0a10);
		 *     bRam000000000754d43a = 1;
		 *   }
		 *   if ((this_00 != null) &&
		 *      (pvVar4 = UnityEngine.Events.UnityEventBase.PrepareInvoke(this_00),
		 *      puVar3 = PTR_DAT_070cae60, puVar2 = PTR_DAT_070cae50, pvVar4 != null)) {
		 *     if (0 < *(int *)((long)pvVar4 + 0x18)) {
		 *       iVar10 = 0;
		 *       do {
		 *         plVar5 = (long *)func_0x03f2d434(pvVar4,iVar10,*(undefined8 *)puVar3);
		 *         lVar9 = *(long *)(*(long *)(*(long *)(lVar8 + 0x20) + 0xc0) + 0x30);
		 *         if ((*(ushort *)(lVar9 + 0x135) & 1) == 0) {
		 *           lVar9 = func_0x03237224(lVar9);
		 *         }
		 *         if (plVar5 == null) {
		 * LAB_048ebcb4:
		 *           plVar5 = (long *)func_0x03f2d434(pvVar4,iVar10,*(undefined8 *)puVar3);
		 *           if (plVar5 != null) {
		 *             bVar1 = *(byte *)(*(long *)puVar2 + 0x130);
		 *             if ((bVar1 <= *(byte *)(*plVar5 + 0x130)) &&
		 *                (*(long *)(*(long *)(*plVar5 + 200) + (ulong)bVar1 * 8 + -8) == *(long *)puVar2)) {
		 *               InvokableCall.Invoke(plVar5);
		 *               goto LAB_048ebdf8;
		 *             }
		 *           }
		 *           plVar5 = (long *)func_0x03f2d434(pvVar4,iVar10,*(undefined8 *)puVar3);
		 *           plVar11 = *(long **)((long)this_00 + 0x28);
		 *           if (plVar11 == null) {
		 *             uVar6 = func_0x031fdd78(*(undefined8 *)PTR_DAT_070c0a10,2);
		 *             *(undefined8 *)((long)this_00 + 0x28) = uVar6;
		 *             func_0x031fdc38((long)this_00 + 0x28,uVar6);
		 *             plVar11 = *(long **)((long)this_00 + 0x28);
		 *           }
		 *           auStack_64[0] = character;
		 *           lVar9 = func_0x031fde10(*(undefined8 *)(*(long *)(*(long *)(lVar8 + 0x20) + 0xc0) + 0x48),
		 *                                   auStack_64);
		 *           if (plVar11 == null) goto LAB_048ebe58;
		 *           if ((lVar9 != 0) &&
		 *              (lVar7 = func_0x031fde0c(lVar9,*(undefined8 *)(*plVar11 + 0x40)), lVar7 == 0)) {
		 * LAB_048ebe60:
		 *             uVar6 = func_0x031fdf58();
		 *             IL2CPP.ThrowManagedException();
		 *           }
		 *           if ((int)plVar11[3] == 0) {
		 * LAB_048ebe5c:
		 *             IL2CPP.ThrowIndexOutOfRangeException();
		 *           }
		 *           plVar11[4] = lVar9;
		 *           func_0x031fdc38(plVar11 + 4,lVar9);
		 *           plVar11 = *(long **)((long)this_00 + 0x28);
		 *           iStack_68 = characterIndex;
		 *           lVar9 = func_0x031fde10(*(undefined8 *)(*(long *)(*(long *)(lVar8 + 0x20) + 0xc0) + 0x50),
		 *                                   &iStack_68);
		 *           if (plVar11 == null) goto LAB_048ebe58;
		 *           if ((lVar9 != 0) &&
		 *              (lVar7 = func_0x031fde0c(lVar9,*(undefined8 *)(*plVar11 + 0x40)), lVar7 == 0))
		 *           goto LAB_048ebe60;
		 *           if ((*(uint *)(plVar11 + 3) & 0xfffffffe) == 0) goto LAB_048ebe5c;
		 *           plVar11[5] = lVar9;
		 *           func_0x031fdc38(plVar11 + 5,lVar9);
		 *           if (plVar5 == null) goto LAB_048ebe58;
		 *           (**(code **)(*plVar5 + 0x178))
		 *                     (plVar5,*(undefined8 *)((long)this_00 + 0x28),*(undefined8 *)(*plVar5 + 0x180));
		 *         }
		 *         else {
		 *           if ((*(byte *)(*plVar5 + 0x130) < *(byte *)(lVar9 + 0x130)) ||
		 *              (*(long *)(*(long *)(*plVar5 + 200) + (ulong)*(byte *)(lVar9 + 0x130) * 8 + -8) !=
		 *               lVar9)) goto LAB_048ebcb4;
		 *           func_0x03cf5d78(plVar5,character,characterIndex,
		 *                           *(undefined8 *)(*(long *)(*(long *)(lVar8 + 0x20) + 0xc0) + 0x58));
		 *         }
		 * LAB_048ebdf8:
		 *         iVar10 = iVar10 + 1;
		 *       } while (iVar10 < *(int *)((long)pvVar4 + 0x18));
		 *     }
		 *     return;
		 *   }
		 * LAB_048ebe58:
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x3267BD8 VA: 0x7818952BD8
		private void SendOnWordSelection(string word, int charIndex, int length);
		/*
		 *   byte bVar1;
		 *   undefined *puVar2;
		 *   void *this_00;
		 *   void *pvVar3;
		 *   long *plVar4;
		 *   undefined8 uVar5;
		 *   long lVar6;
		 *   long lVar7;
		 *   long lVar8;
		 *   int iVar9;
		 *   long *plVar10;
		 *   int iStack_68;
		 *   int iStack_64;
		 *
		 *   if ((bRam000000000754abc7 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c5200);
		 *     bRam000000000754abc7 = 1;
		 *   }
		 *   this_00 = this.m_OnWordSelection;
		 *   if (this_00 == null) {
		 *     return;
		 *   }
		 *   lVar7 = *(long *)PTR_DAT_070c5200;
		 *   if ((bRam000000000754d44c & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070cae50);
		 *     func_0x031fdc8c(PTR_DAT_070cae58);
		 *     func_0x031fdc8c(PTR_DAT_070cae60);
		 *     func_0x031fdc8c(PTR_DAT_070c0a10);
		 *     bRam000000000754d44c = 1;
		 *   }
		 *   if ((this_00 != null) &&
		 *      (pvVar3 = UnityEngine.Events.UnityEventBase.PrepareInvoke(this_00),
		 *      puVar2 = PTR_DAT_070cae60, pvVar3 != null)) {
		 *     if (0 < *(int *)((long)pvVar3 + 0x18)) {
		 *       iVar9 = 0;
		 *       do {
		 *         plVar4 = (long *)func_0x03f2d434(pvVar3,iVar9,*(undefined8 *)puVar2);
		 *         lVar8 = *(long *)(*(long *)(*(long *)(lVar7 + 0x20) + 0xc0) + 0x38);
		 *         if ((*(ushort *)(lVar8 + 0x135) & 1) == 0) {
		 *           lVar8 = func_0x03237224(lVar8);
		 *         }
		 *         if (plVar4 == null) {
		 * LAB_048ef150:
		 *           plVar4 = (long *)func_0x03f2d434(pvVar3,iVar9,*(undefined8 *)puVar2);
		 *           if (plVar4 != null) {
		 *             bVar1 = *(byte *)(*(long *)PTR_DAT_070cae50 + 0x130);
		 *             if ((bVar1 <= *(byte *)(*plVar4 + 0x130)) &&
		 *                (*(long *)(*(long *)(*plVar4 + 200) + (ulong)bVar1 * 8 + -8) ==
		 *                 *(long *)PTR_DAT_070cae50)) {
		 *               InvokableCall.Invoke(plVar4);
		 *               goto LAB_048ef2d8;
		 *             }
		 *           }
		 *           plVar4 = (long *)func_0x03f2d434(pvVar3,iVar9,*(undefined8 *)puVar2);
		 *           plVar10 = *(long **)((long)this_00 + 0x28);
		 *           if (plVar10 == null) {
		 *             uVar5 = func_0x031fdd78(*(undefined8 *)PTR_DAT_070c0a10,3);
		 *             *(undefined8 *)((long)this_00 + 0x28) = uVar5;
		 *             func_0x031fdc38((long)this_00 + 0x28,uVar5);
		 *             plVar10 = *(long **)((long)this_00 + 0x28);
		 *             if (plVar10 == null) goto LAB_048ef33c;
		 *           }
		 *           if ((word != null) &&
		 *              (lVar8 = func_0x031fde0c(word,*(undefined8 *)(*plVar10 + 0x40)), lVar8 == 0)) {
		 * LAB_048ef344:
		 *             uVar5 = func_0x031fdf58();
		 *             IL2CPP.ThrowManagedException();
		 *           }
		 *           if ((int)plVar10[3] == 0) {
		 * LAB_048ef340:
		 *             IL2CPP.ThrowIndexOutOfRangeException();
		 *           }
		 *           plVar10[4] = (long)word;
		 *           func_0x031fdc38(plVar10 + 4,word);
		 *           plVar10 = *(long **)((long)this_00 + 0x28);
		 *           iStack_64 = charIndex;
		 *           lVar8 = func_0x031fde10(*(undefined8 *)(*(long *)(*(long *)(lVar7 + 0x20) + 0xc0) + 0x58),
		 *                                   &iStack_64);
		 *           if (plVar10 == null) goto LAB_048ef33c;
		 *           if ((lVar8 != 0) &&
		 *              (lVar6 = func_0x031fde0c(lVar8,*(undefined8 *)(*plVar10 + 0x40)), lVar6 == 0))
		 *           goto LAB_048ef344;
		 *           if ((*(uint *)(plVar10 + 3) & 0xfffffffe) == 0) goto LAB_048ef340;
		 *           plVar10[5] = lVar8;
		 *           func_0x031fdc38(plVar10 + 5,lVar8);
		 *           plVar10 = *(long **)((long)this_00 + 0x28);
		 *           iStack_68 = length;
		 *           lVar8 = func_0x031fde10(*(undefined8 *)(*(long *)(*(long *)(lVar7 + 0x20) + 0xc0) + 0x60),
		 *                                   &iStack_68);
		 *           if (plVar10 == null) goto LAB_048ef33c;
		 *           if ((lVar8 != 0) &&
		 *              (lVar6 = func_0x031fde0c(lVar8,*(undefined8 *)(*plVar10 + 0x40)), lVar6 == 0))
		 *           goto LAB_048ef344;
		 *           if (*(uint *)(plVar10 + 3) < 3) goto LAB_048ef340;
		 *           plVar10[6] = lVar8;
		 *           func_0x031fdc38(plVar10 + 6,lVar8);
		 *           if (plVar4 == null) goto LAB_048ef33c;
		 *           (**(code **)(*plVar4 + 0x178))
		 *                     (plVar4,*(undefined8 *)((long)this_00 + 0x28),*(undefined8 *)(*plVar4 + 0x180));
		 *         }
		 *         else {
		 *           if ((*(byte *)(*plVar4 + 0x130) < *(byte *)(lVar8 + 0x130)) ||
		 *              (*(long *)(*(long *)(*plVar4 + 200) + (ulong)*(byte *)(lVar8 + 0x130) * 8 + -8) !=
		 *               lVar8)) goto LAB_048ef150;
		 *           func_0x03cf8cf4(plVar4,word,charIndex,length,
		 *                           *(undefined8 *)(*(long *)(*(long *)(lVar7 + 0x20) + 0xc0) + 0x68));
		 *         }
		 * LAB_048ef2d8:
		 *         iVar9 = iVar9 + 1;
		 *       } while (iVar9 < *(int *)((long)pvVar3 + 0x18));
		 *     }
		 *     return;
		 *   }
		 * LAB_048ef33c:
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x3267C54 VA: 0x7818952C54
		private void SendOnLineSelection(string line, int charIndex, int length);
		/*
		 *   byte bVar1;
		 *   undefined *puVar2;
		 *   void *this_00;
		 *   void *pvVar3;
		 *   long *plVar4;
		 *   undefined8 uVar5;
		 *   long lVar6;
		 *   long lVar7;
		 *   long lVar8;
		 *   int iVar9;
		 *   long *plVar10;
		 *   int iStack_68;
		 *   int iStack_64;
		 *
		 *   if ((bRam000000000754abc8 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c5200);
		 *     bRam000000000754abc8 = 1;
		 *   }
		 *   this_00 = this.m_OnLineSelection;
		 *   if (this_00 == null) {
		 *     return;
		 *   }
		 *   lVar7 = *(long *)PTR_DAT_070c5200;
		 *   if ((bRam000000000754d44c & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070cae50);
		 *     func_0x031fdc8c(PTR_DAT_070cae58);
		 *     func_0x031fdc8c(PTR_DAT_070cae60);
		 *     func_0x031fdc8c(PTR_DAT_070c0a10);
		 *     bRam000000000754d44c = 1;
		 *   }
		 *   if ((this_00 != null) &&
		 *      (pvVar3 = UnityEngine.Events.UnityEventBase.PrepareInvoke(this_00),
		 *      puVar2 = PTR_DAT_070cae60, pvVar3 != null)) {
		 *     if (0 < *(int *)((long)pvVar3 + 0x18)) {
		 *       iVar9 = 0;
		 *       do {
		 *         plVar4 = (long *)func_0x03f2d434(pvVar3,iVar9,*(undefined8 *)puVar2);
		 *         lVar8 = *(long *)(*(long *)(*(long *)(lVar7 + 0x20) + 0xc0) + 0x38);
		 *         if ((*(ushort *)(lVar8 + 0x135) & 1) == 0) {
		 *           lVar8 = func_0x03237224(lVar8);
		 *         }
		 *         if (plVar4 == null) {
		 * LAB_048ef150:
		 *           plVar4 = (long *)func_0x03f2d434(pvVar3,iVar9,*(undefined8 *)puVar2);
		 *           if (plVar4 != null) {
		 *             bVar1 = *(byte *)(*(long *)PTR_DAT_070cae50 + 0x130);
		 *             if ((bVar1 <= *(byte *)(*plVar4 + 0x130)) &&
		 *                (*(long *)(*(long *)(*plVar4 + 200) + (ulong)bVar1 * 8 + -8) ==
		 *                 *(long *)PTR_DAT_070cae50)) {
		 *               InvokableCall.Invoke(plVar4);
		 *               goto LAB_048ef2d8;
		 *             }
		 *           }
		 *           plVar4 = (long *)func_0x03f2d434(pvVar3,iVar9,*(undefined8 *)puVar2);
		 *           plVar10 = *(long **)((long)this_00 + 0x28);
		 *           if (plVar10 == null) {
		 *             uVar5 = func_0x031fdd78(*(undefined8 *)PTR_DAT_070c0a10,3);
		 *             *(undefined8 *)((long)this_00 + 0x28) = uVar5;
		 *             func_0x031fdc38((long)this_00 + 0x28,uVar5);
		 *             plVar10 = *(long **)((long)this_00 + 0x28);
		 *             if (plVar10 == null) goto LAB_048ef33c;
		 *           }
		 *           if ((line != null) &&
		 *              (lVar8 = func_0x031fde0c(line,*(undefined8 *)(*plVar10 + 0x40)), lVar8 == 0)) {
		 * LAB_048ef344:
		 *             uVar5 = func_0x031fdf58();
		 *             IL2CPP.ThrowManagedException();
		 *           }
		 *           if ((int)plVar10[3] == 0) {
		 * LAB_048ef340:
		 *             IL2CPP.ThrowIndexOutOfRangeException();
		 *           }
		 *           plVar10[4] = (long)line;
		 *           func_0x031fdc38(plVar10 + 4,line);
		 *           plVar10 = *(long **)((long)this_00 + 0x28);
		 *           iStack_64 = charIndex;
		 *           lVar8 = func_0x031fde10(*(undefined8 *)(*(long *)(*(long *)(lVar7 + 0x20) + 0xc0) + 0x58),
		 *                                   &iStack_64);
		 *           if (plVar10 == null) goto LAB_048ef33c;
		 *           if ((lVar8 != 0) &&
		 *              (lVar6 = func_0x031fde0c(lVar8,*(undefined8 *)(*plVar10 + 0x40)), lVar6 == 0))
		 *           goto LAB_048ef344;
		 *           if ((*(uint *)(plVar10 + 3) & 0xfffffffe) == 0) goto LAB_048ef340;
		 *           plVar10[5] = lVar8;
		 *           func_0x031fdc38(plVar10 + 5,lVar8);
		 *           plVar10 = *(long **)((long)this_00 + 0x28);
		 *           iStack_68 = length;
		 *           lVar8 = func_0x031fde10(*(undefined8 *)(*(long *)(*(long *)(lVar7 + 0x20) + 0xc0) + 0x60),
		 *                                   &iStack_68);
		 *           if (plVar10 == null) goto LAB_048ef33c;
		 *           if ((lVar8 != 0) &&
		 *              (lVar6 = func_0x031fde0c(lVar8,*(undefined8 *)(*plVar10 + 0x40)), lVar6 == 0))
		 *           goto LAB_048ef344;
		 *           if (*(uint *)(plVar10 + 3) < 3) goto LAB_048ef340;
		 *           plVar10[6] = lVar8;
		 *           func_0x031fdc38(plVar10 + 6,lVar8);
		 *           if (plVar4 == null) goto LAB_048ef33c;
		 *           (**(code **)(*plVar4 + 0x178))
		 *                     (plVar4,*(undefined8 *)((long)this_00 + 0x28),*(undefined8 *)(*plVar4 + 0x180));
		 *         }
		 *         else {
		 *           if ((*(byte *)(*plVar4 + 0x130) < *(byte *)(lVar8 + 0x130)) ||
		 *              (*(long *)(*(long *)(*plVar4 + 200) + (ulong)*(byte *)(lVar8 + 0x130) * 8 + -8) !=
		 *               lVar8)) goto LAB_048ef150;
		 *           func_0x03cf8cf4(plVar4,line,charIndex,length,
		 *                           *(undefined8 *)(*(long *)(*(long *)(lVar7 + 0x20) + 0xc0) + 0x68));
		 *         }
		 * LAB_048ef2d8:
		 *         iVar9 = iVar9 + 1;
		 *       } while (iVar9 < *(int *)((long)pvVar3 + 0x18));
		 *     }
		 *     return;
		 *   }
		 * LAB_048ef33c:
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x3267CD0 VA: 0x7818952CD0
		private void SendOnLinkSelection(string linkID, string linkText, int linkIndex);
		/*
		 *   byte bVar1;
		 *   undefined *puVar2;
		 *   void *this_00;
		 *   void *pvVar3;
		 *   long *plVar4;
		 *   undefined8 uVar5;
		 *   long lVar6;
		 *   long lVar7;
		 *   long lVar8;
		 *   int iVar9;
		 *   long *plVar10;
		 *   int iStack_64;
		 *
		 *   if ((bRam000000000754abc9 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c5208);
		 *     bRam000000000754abc9 = 1;
		 *   }
		 *   this_00 = this.m_OnLinkSelection;
		 *   if (this_00 == null) {
		 *     return;
		 *   }
		 *   lVar7 = *(long *)PTR_DAT_070c5208;
		 *   if ((bRam000000000754d450 & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070cae50);
		 *     func_0x031fdc8c(PTR_DAT_070cae58);
		 *     func_0x031fdc8c(PTR_DAT_070cae60);
		 *     func_0x031fdc8c(PTR_DAT_070c0a10);
		 *     bRam000000000754d450 = 1;
		 *   }
		 *   if ((this_00 != null) &&
		 *      (pvVar3 = UnityEngine.Events.UnityEventBase.PrepareInvoke(this_00),
		 *      puVar2 = PTR_DAT_070cae60, pvVar3 != null)) {
		 *     if (0 < *(int *)((long)pvVar3 + 0x18)) {
		 *       iVar9 = 0;
		 *       do {
		 *         plVar4 = (long *)func_0x03f2d434(pvVar3,iVar9,*(undefined8 *)puVar2);
		 *         lVar8 = *(long *)(*(long *)(*(long *)(lVar7 + 0x20) + 0xc0) + 0x38);
		 *         if ((*(ushort *)(lVar8 + 0x135) & 1) == 0) {
		 *           lVar8 = func_0x03237224(lVar8);
		 *         }
		 *         if (plVar4 == null) {
		 * LAB_048efd90:
		 *           plVar4 = (long *)func_0x03f2d434(pvVar3,iVar9,*(undefined8 *)puVar2);
		 *           if (plVar4 != null) {
		 *             bVar1 = *(byte *)(*(long *)PTR_DAT_070cae50 + 0x130);
		 *             if ((bVar1 <= *(byte *)(*plVar4 + 0x130)) &&
		 *                (*(long *)(*(long *)(*plVar4 + 200) + (ulong)bVar1 * 8 + -8) ==
		 *                 *(long *)PTR_DAT_070cae50)) {
		 *               InvokableCall.Invoke(plVar4);
		 *               goto LAB_048efefc;
		 *             }
		 *           }
		 *           plVar4 = (long *)func_0x03f2d434(pvVar3,iVar9,*(undefined8 *)puVar2);
		 *           plVar10 = *(long **)((long)this_00 + 0x28);
		 *           if (plVar10 == null) {
		 *             uVar5 = func_0x031fdd78(*(undefined8 *)PTR_DAT_070c0a10,3);
		 *             *(undefined8 *)((long)this_00 + 0x28) = uVar5;
		 *             func_0x031fdc38((long)this_00 + 0x28,uVar5);
		 *             plVar10 = *(long **)((long)this_00 + 0x28);
		 *             if (plVar10 == null) goto LAB_048eff60;
		 *           }
		 *           if ((linkID != null) &&
		 *              (lVar8 = func_0x031fde0c(linkID,*(undefined8 *)(*plVar10 + 0x40)), lVar8 == 0)) {
		 * LAB_048eff68:
		 *             uVar5 = func_0x031fdf58();
		 *             IL2CPP.ThrowManagedException();
		 *           }
		 *           if ((int)plVar10[3] == 0) {
		 * LAB_048eff64:
		 *             IL2CPP.ThrowIndexOutOfRangeException();
		 *           }
		 *           plVar10[4] = (long)linkID;
		 *           func_0x031fdc38(plVar10 + 4,linkID);
		 *           plVar10 = *(long **)((long)this_00 + 0x28);
		 *           if (plVar10 == null) goto LAB_048eff60;
		 *           if ((linkText != null) &&
		 *              (lVar8 = func_0x031fde0c(linkText,*(undefined8 *)(*plVar10 + 0x40)), lVar8 == 0))
		 *           goto LAB_048eff68;
		 *           if ((*(uint *)(plVar10 + 3) & 0xfffffffe) == 0) goto LAB_048eff64;
		 *           plVar10[5] = (long)linkText;
		 *           func_0x031fdc38(plVar10 + 5,linkText);
		 *           plVar10 = *(long **)((long)this_00 + 0x28);
		 *           iStack_64 = linkIndex;
		 *           lVar8 = func_0x031fde10(*(undefined8 *)(*(long *)(*(long *)(lVar7 + 0x20) + 0xc0) + 0x60),
		 *                                   &iStack_64);
		 *           if (plVar10 == null) goto LAB_048eff60;
		 *           if ((lVar8 != 0) &&
		 *              (lVar6 = func_0x031fde0c(lVar8,*(undefined8 *)(*plVar10 + 0x40)), lVar6 == 0))
		 *           goto LAB_048eff68;
		 *           if (*(uint *)(plVar10 + 3) < 3) goto LAB_048eff64;
		 *           plVar10[6] = lVar8;
		 *           func_0x031fdc38(plVar10 + 6,lVar8);
		 *           if (plVar4 == null) goto LAB_048eff60;
		 *           (**(code **)(*plVar4 + 0x178))
		 *                     (plVar4,*(undefined8 *)((long)this_00 + 0x28),*(undefined8 *)(*plVar4 + 0x180));
		 *         }
		 *         else {
		 *           if ((*(byte *)(*plVar4 + 0x130) < *(byte *)(lVar8 + 0x130)) ||
		 *              (*(long *)(*(long *)(*plVar4 + 200) + (ulong)*(byte *)(lVar8 + 0x130) * 8 + -8) !=
		 *               lVar8)) goto LAB_048efd90;
		 *           func_0x03cf9808(plVar4,linkID,linkText,linkIndex,
		 *                           *(undefined8 *)(*(long *)(*(long *)(lVar7 + 0x20) + 0xc0) + 0x68));
		 *         }
		 * LAB_048efefc:
		 *         iVar9 = iVar9 + 1;
		 *       } while (iVar9 < *(int *)((long)pvVar3 + 0x18));
		 *     }
		 *     return;
		 *   }
		 * LAB_048eff60:
		 *   IL2CPP.ThrowNullReferenceException();
		 */
		// RVA: 0x3267D54 VA: 0x7818952D54
		public void .ctor();
		/*
		 *   undefined *puVar1;
		 *   undefined *puVar2;
		 *   undefined *puVar3;
		 *   undefined *puVar4;
		 *   undefined *puVar5;
		 *   void *pvVar6;
		 *   void *extraout_x1;
		 *   undefined1 auVar7 [16];
		 *
		 *   puVar5 = PTR_DAT_070c5230;
		 *   puVar4 = PTR_DAT_070c5228;
		 *   puVar3 = PTR_DAT_070c5220;
		 *   puVar2 = PTR_DAT_070c5218;
		 *   puVar1 = PTR_DAT_070c5210;
		 *   if ((bRam000000000754abca & 1) == 0) {
		 *     func_0x031fdc8c(PTR_DAT_070c5210);
		 *     func_0x031fdc8c(PTR_DAT_070c5228);
		 *     func_0x031fdc8c(PTR_DAT_070c5230);
		 *     func_0x031fdc8c(PTR_DAT_070c5218);
		 *     func_0x031fdc8c(PTR_DAT_070c5220);
		 *     bRam000000000754abca = 1;
		 *     methodInfo = extraout_x1;
		 *   }
		 *   auVar7 = func_0x031fdf24(*(undefined8 *)puVar1,methodInfo);
		 *   pvVar6 = auVar7._0_8_;
		 *   CharacterSelectionEvent..ctor(pvVar6);
		 *   this.m_OnCharacterSelection = pvVar6;
		 *   func_0x031fdc38(&this.m_OnCharacterSelection,pvVar6);
		 *   auVar7 = func_0x031fdf24(*(undefined8 *)puVar2);
		 *   pvVar6 = auVar7._0_8_;
		 *   SpriteSelectionEvent..ctor(pvVar6);
		 *   this.m_OnSpriteSelection = pvVar6;
		 *   func_0x031fdc38(&this.m_OnSpriteSelection,pvVar6);
		 *   auVar7 = func_0x031fdf24(*(undefined8 *)puVar3);
		 *   pvVar6 = auVar7._0_8_;
		 *   WordSelectionEvent..ctor(pvVar6);
		 *   this.m_OnWordSelection = pvVar6;
		 *   func_0x031fdc38(&this.m_OnWordSelection,pvVar6);
		 *   auVar7 = func_0x031fdf24(*(undefined8 *)puVar4);
		 *   pvVar6 = auVar7._0_8_;
		 *   LineSelectionEvent..ctor(pvVar6);
		 *   this.m_OnLineSelection = pvVar6;
		 *   func_0x031fdc38(&this.m_OnLineSelection,pvVar6);
		 *   auVar7 = func_0x031fdf24(*(undefined8 *)puVar5);
		 *   pvVar6 = auVar7._0_8_;
		 *   LinkSelectionEvent..ctor(pvVar6);
		 *   this.m_OnLinkSelection = pvVar6;
		 *   func_0x031fdc38(&this.m_OnLinkSelection,pvVar6);
		 *   this.m_selectedLink = -1;
		 *   this.m_lastCharIndex = -1;
		 *   this.m_lastWordIndex = -1;
		 *   puVar1 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
		 *   this.m_lastLineIndex = -1;
		 *   if ((bRam000000000755f76f & 1) == 0) {
		 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8,0);
		 *     bRam000000000755f76f = 1;
		 *   }
		 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
		 *     func_0x031fde08();
		 *   }
		 *   return;
		 */
	}
}
