// Token: 0x06001A2F RID: 6703 RVA: 0x0006FF0A File Offset: 0x0006E10A
        protected override IEnumerable <UPath> EnumeratePathsImpl(UPath path, string searchPattern, SearchOption searchOption, SearchTarget searchTarget)
        {
            this.UpdateDirectories();
            SearchPattern search           = SearchPattern.Parse(ref path, ref searchPattern);
            List <UPath>  foldersToProcess = new List <UPath>
            {
                path
            };
            SortedSet <UPath> entries = new SortedSet <UPath>(UPath.DefaultComparerIgnoreCase);

            while (foldersToProcess.Count > 0)
            {
                UPath upath = foldersToProcess[0];
                foldersToProcess.RemoveAt(0);
                int num = 0;
                entries.Clear();
                SteamworksRemoteStorageFileSystem.EnterFileSystemShared();
                try
                {
                    SteamworksRemoteStorageFileSystem.Node directoryNode = this.GetDirectoryNode(upath);
                    if (upath == path)
                    {
                        this.AssertDirectory(directoryNode, upath);
                    }
                    else if (!(directoryNode is SteamworksRemoteStorageFileSystem.DirectoryNode))
                    {
                        continue;
                    }
                    SteamworksRemoteStorageFileSystem.DirectoryNode directoryNode2 = (SteamworksRemoteStorageFileSystem.DirectoryNode)directoryNode;
                    for (int i = 0; i < directoryNode2.childCount; i++)
                    {
                        SteamworksRemoteStorageFileSystem.Node child = directoryNode2.GetChild(i);
                        if (!(child is SteamworksRemoteStorageFileSystem.FileNode) || searchTarget != SearchTarget.Directory)
                        {
                            bool  flag  = search.Match(child.path);
                            bool  flag2 = searchOption == SearchOption.AllDirectories && child is SteamworksRemoteStorageFileSystem.DirectoryNode;
                            bool  flag3 = (child is SteamworksRemoteStorageFileSystem.FileNode && searchTarget != SearchTarget.Directory && flag) || (child is SteamworksRemoteStorageFileSystem.DirectoryNode && searchTarget != SearchTarget.File && flag);
                            UPath item  = upath / child.path;
                            if (flag2)
                            {
                                foldersToProcess.Insert(num++, item);
                            }
                            if (flag3)
                            {
                                entries.Add(item);
                            }
                        }
                    }
                }
                finally
                {
                    SteamworksRemoteStorageFileSystem.ExitFileSystemShared();
                }
                foreach (UPath upath2 in entries)
                {
                    yield return(upath2);
                }
                SortedSet <UPath> .Enumerator enumerator = default(SortedSet <UPath> .Enumerator);
            }
            yield break;
            yield break;
        }
 // Token: 0x06001A29 RID: 6697 RVA: 0x0006FD68 File Offset: 0x0006DF68
 private SteamworksRemoteStorageFileSystem.DirectoryNode AddDirectoryToTree(UPath path)
 {
     SteamworksRemoteStorageFileSystem.DirectoryNode directoryNode = new SteamworksRemoteStorageFileSystem.DirectoryNode(path);
     this.AddNodeToTree(directoryNode);
     return(directoryNode);
 }