private string[] GenerateMatchSetOfFiles(
            string lastWord,
            CultureInfo ci,
            bool completingAtStartOfLine)
        {
            bool   matchFoundInCurrentLocation = false;
            bool   flag1 = (!lastWord.StartsWith("'", StringComparison.CurrentCulture) || !lastWord.EndsWith("'", StringComparison.CurrentCulture)) && (!lastWord.StartsWith("\"", StringComparison.CurrentCulture) || !lastWord.EndsWith("\"", StringComparison.CurrentCulture));
            bool   flag2 = string.IsNullOrEmpty(lastWord);
            bool   flag3 = lastWord.EndsWith("*", StringComparison.CurrentCulture);
            bool   flag4 = WildcardPattern.ContainsWildcardCharacters(lastWord);
            string path  = flag1 ? "'" + lastWord + "*'" : lastWord + "*";
            bool   shouldFullyQualifyPaths = this.ShouldFullyQualifyPathsPath(lastWord, path);
            bool   flag5 = false;

            if (lastWord.StartsWith("\\\\", StringComparison.CurrentCulture) || lastWord.StartsWith("//", StringComparison.CurrentCulture))
            {
                flag5 = true;
            }
            string[] s1 = (string[])null;
            string[] s2 = (string[])null;
            if (flag4 && !flag2)
            {
                s1 = this.FindMatches(flag1 ? "'" + lastWord + "'" : lastWord, shouldFullyQualifyPaths, ci, ref matchFoundInCurrentLocation);
            }
            if (!flag3)
            {
                s2 = this.FindMatches(path, shouldFullyQualifyPaths, ci, ref matchFoundInCurrentLocation);
            }
            string[] strArray = CommandCompletionBase.CombineMatchSets(s1, s2, ci);
            if (strArray != null)
            {
                for (int index = 0; index < strArray.Length; ++index)
                {
                    string s = CommandCompletionBase.EscapeSpecialCharacters(strArray[index]);
                    strArray[index] = completingAtStartOfLine && matchFoundInCurrentLocation || s == "~" ? ".\\" + s : (!flag5 ? s : this.RemoveProviderQualifier(s));
                }
            }
            return(strArray);
        }