// 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!");
        }