// Token: 0x060035CB RID: 13771 RVA: 0x000F4794 File Offset: 0x000F2994
        internal void Splay()
        {
            SplayTreeNodeRole role;
            SplayTreeNode     parentNode;

            for (;;)
            {
                role = this.Role;
                if (role == SplayTreeNodeRole.LocalRoot)
                {
                    goto IL_7F;
                }
                parentNode = this.ParentNode;
                SplayTreeNodeRole role2 = parentNode.Role;
                if (role2 == SplayTreeNodeRole.LocalRoot)
                {
                    break;
                }
                SplayTreeNode parentNode2 = parentNode.ParentNode;
                if (role == role2)
                {
                    if (role == SplayTreeNodeRole.LeftChild)
                    {
                        parentNode2.RotateRight();
                        parentNode.RotateRight();
                    }
                    else
                    {
                        parentNode2.RotateLeft();
                        parentNode.RotateLeft();
                    }
                }
                else if (role == SplayTreeNodeRole.LeftChild)
                {
                    parentNode.RotateRight();
                    parentNode2.RotateLeft();
                }
                else
                {
                    parentNode.RotateLeft();
                    parentNode2.RotateRight();
                }
            }
            if (role == SplayTreeNodeRole.LeftChild)
            {
                parentNode.RotateRight();
            }
            else
            {
                parentNode.RotateLeft();
            }
IL_7F:
            Invariant.Assert(this.Role == SplayTreeNodeRole.LocalRoot, "Splay didn't move node to root!");
        }
        // Token: 0x060035C0 RID: 13760 RVA: 0x000F4378 File Offset: 0x000F2578
        internal SplayTreeNode GetNextNode()
        {
            SplayTreeNode splayTreeNode = this.RightChildNode;

            if (splayTreeNode != null)
            {
                for (;;)
                {
                    SplayTreeNode leftChildNode = splayTreeNode.LeftChildNode;
                    if (leftChildNode == null)
                    {
                        break;
                    }
                    splayTreeNode = leftChildNode;
                }
            }
            else
            {
                SplayTreeNodeRole role = this.Role;
                splayTreeNode = this.ParentNode;
                while (role != SplayTreeNodeRole.LocalRoot)
                {
                    if (role == SplayTreeNodeRole.LeftChild)
                    {
                        goto IL_41;
                    }
                    role          = splayTreeNode.Role;
                    splayTreeNode = splayTreeNode.ParentNode;
                }
                splayTreeNode = null;
            }
IL_41:
            if (splayTreeNode != null)
            {
                splayTreeNode.Splay();
            }
            return(splayTreeNode);
        }