// Token: 0x06007FEE RID: 32750
    private void RenderGUI_List(List <MemoryProfiler.ObjMemDef> mListDef)
    {
        this.mScrollViewPos_Stats = GUILayout.BeginScrollView(this.mScrollViewPos_Stats, new GUILayoutOption[]
        {
            GUILayout.ExpandHeight(true)
        });
        float      lineHeight        = GUI.skin.button.lineHeight + (float)GUI.skin.button.margin.top + (float)GUI.skin.button.padding.top + (float)GUI.skin.button.padding.bottom;
        int        viewportStartLine = (int)(this.mScrollViewPos_Stats.y / lineHeight);
        int        viewportEndLine   = viewportStartLine + (int)((float)Screen.height / lineHeight);
        int        extraSpacingLines = 0;
        int        renderedLines     = 0;
        TextAnchor alignment         = GUI.skin.label.alignment;

        GUI.skin.label.alignment = TextAnchor.MiddleRight;
        int    count      = mListDef.Count;
        bool   doReflect  = false;
        string filterText = "";

        string[] reflectPath = null;
        if (!string.IsNullOrEmpty(this.mFilter_Text))
        {
            doReflect = this.mFilter_Text.EndsWith("@reflect");
            if (doReflect)
            {
                reflectPath = this.mFilter_Text.Replace("@reflect", "").ToLowerInvariant().Split(new char[] { '.' }, StringSplitOptions.RemoveEmptyEntries);
            }
            else
            {
                filterText = this.mFilter_Text.ToLowerInvariant();
            }
        }
        for (int i = 0; i < count; i++)
        {
            MemoryProfiler.ObjMemDef objMemDef = mListDef[i];
            if (doReflect)
            {
                if (objMemDef._Name.ToLowerInvariant().Equals(reflectPath[0]) || objMemDef._ObjType.ToLowerInvariant().Equals(reflectPath[0]))
                {
                    this.RenderContentInfoRecursive(objMemDef.GetContentInfo(), 0, 20f, ref renderedLines, viewportStartLine, viewportEndLine, ref extraSpacingLines, lineHeight, reflectPath);
                }
            }
            else if ((this.mFilter_ShowDependencies || !objMemDef._IsADependency) && (filterText.Equals("") || objMemDef._Name.ToLowerInvariant().Contains(filterText) || objMemDef._ObjType.ToLowerInvariant().Contains(filterText)))
            {
                if (renderedLines > 0 && (renderedLines < viewportStartLine || renderedLines > viewportEndLine))
                {
                    extraSpacingLines++;
                }
                else
                {
                    if (extraSpacingLines > 0)
                    {
                        GUILayout.Space((float)extraSpacingLines * lineHeight);
                        extraSpacingLines = 0;
                    }
                    GUILayout.BeginHorizontal(Array.Empty <GUILayoutOption>());
                    GUILayout.Label((objMemDef._Size < 1048576) ? ((objMemDef._Size / 1024).ToString() + " Kb") : ((objMemDef._Size / 1048576).ToString("0.00") + " Mb"), new GUILayoutOption[]
                    {
                        GUILayout.Width(80f)
                    });
                    if (GUILayout.Button("reflect on type", new GUILayoutOption[] { GUILayout.ExpandWidth(false) }))
                    {
                        this.mFilter_Text = objMemDef._ObjType + "@reflect";
                    }
                    if (GUILayout.Button("reflect on name", new GUILayoutOption[] { GUILayout.ExpandWidth(false) }))
                    {
                        this.mFilter_Text = objMemDef._Name + "@reflect";
                    }
                    if (GUILayout.Button(objMemDef._ObjType, new GUILayoutOption[] { GUILayout.Width(200f) }))
                    {
                        this.mFilter_Text = objMemDef._ObjType;
                    }
                    if (GUILayout.Button(objMemDef._Name, Array.Empty <GUILayoutOption>()))
                    {
                        this.mFilter_Text = objMemDef._Name;
                    }
                    GUILayout.EndHorizontal();
                }
                renderedLines++;
            }
        }
        GUI.skin.label.alignment = alignment;
        if (extraSpacingLines > 0)
        {
            GUILayout.Space((float)extraSpacingLines * lineHeight);
        }
        GUILayout.EndScrollView();
    }