// Token: 0x06002CC1 RID: 11457 RVA: 0x000C9D38 File Offset: 0x000C7F38
        internal ContentPosition GetObjectPosition(object o)
        {
            if (o == null)
            {
                throw new ArgumentNullException("o");
            }
            DependencyObject dependencyObject = o as DependencyObject;

            if (dependencyObject == null)
            {
                throw new ArgumentException(SR.Get("FixedDocumentExpectsDependencyObject"));
            }
            FixedPage fixedPage = null;
            int       num       = -1;

            if (dependencyObject != this)
            {
                DependencyObject dependencyObject2 = dependencyObject;
                while (dependencyObject2 != null)
                {
                    fixedPage = (dependencyObject2 as FixedPage);
                    if (fixedPage != null)
                    {
                        num = this.GetIndexOfPage(fixedPage);
                        if (num >= 0)
                        {
                            break;
                        }
                        dependencyObject2 = fixedPage.Parent;
                    }
                    else
                    {
                        dependencyObject2 = LogicalTreeHelper.GetParent(dependencyObject2);
                    }
                }
            }
            else if (this.Pages.Count > 0)
            {
                num = 0;
            }
            FixedTextPointer fixedTextPointer = null;

            if (num >= 0)
            {
                FlowPosition flowPosition       = null;
                System.Windows.Shapes.Path path = dependencyObject as System.Windows.Shapes.Path;
                if (dependencyObject is Glyphs || dependencyObject is Image || (path != null && path.Fill is ImageBrush))
                {
                    FixedPosition fixedPosition = new FixedPosition(fixedPage.CreateFixedNode(num, (UIElement)dependencyObject), 0);
                    flowPosition = this.FixedContainer.FixedTextBuilder.CreateFlowPosition(fixedPosition);
                }
                if (flowPosition == null)
                {
                    flowPosition = this.FixedContainer.FixedTextBuilder.GetPageStartFlowPosition(num);
                }
                fixedTextPointer = new FixedTextPointer(true, LogicalDirection.Forward, flowPosition);
            }
            if (fixedTextPointer == null)
            {
                return(ContentPosition.Missing);
            }
            return(fixedTextPointer);
        }