// Token: 0x0600263C RID: 9788 RVA: 0x00086F14 File Offset: 0x00085114
        private bool method_4(string item)
        {
            lock (((ICollection)Class110.Instance.ConnectSettings.ContentPacks).SyncRoot)
            {
                using (List <Class102> .Enumerator enumerator = Class110.Instance.ConnectSettings.ContentPacks.GetEnumerator())
                {
                    while (enumerator.MoveNext())
                    {
                        Class102 @class = enumerator.Current;
                        if (@class != this)
                        {
                            lock (((ICollection)@class.dictionary_0).SyncRoot)
                            {
                                if (@class.dictionary_0.ContainsKey(item))
                                {
                                    switch (@class.dictionary_0[item].enum76_0)
                                    {
                                    case Enum76.const_1:
                                    case Enum76.const_3:
                                        return(true);

                                    default:
                                        goto IL_AE;
                                    }
                                }
                            }
                        }
                    }
                    IL_AE :;
                }
            }
            return(false);
        }
        // Token: 0x0600263F RID: 9791 RVA: 0x000874F8 File Offset: 0x000856F8
        public static void smethod_2(string installDirectory, out HashSet <string> changedMultiFiles)
        {
            changedMultiFiles = new HashSet <string>(StringComparer.OrdinalIgnoreCase);
            if (Class110.Instance.ConnectSettings.SpoofedToonTownEnabled)
            {
                Class102.Class404 @class = new Class102.Class404();
                Dictionary <Class102, Dictionary <string, HashSet <string> > > dictionary  = new Dictionary <Class102, Dictionary <string, HashSet <string> > >();
                Dictionary <string, Dictionary <Class102, HashSet <string> > > dictionary2 = new Dictionary <string, Dictionary <Class102, HashSet <string> > >(StringComparer.OrdinalIgnoreCase);
                @class.dictionary_0 = new Dictionary <string, HashSet <string> >(StringComparer.OrdinalIgnoreCase);
                lock (((ICollection)Class110.Instance.ConnectSettings.ContentPacks).SyncRoot)
                {
                    foreach (Class102 class2 in Class110.Instance.ConnectSettings.ContentPacks)
                    {
                        if (!class2.LoaderPack)
                        {
                            Dictionary <string, HashSet <string> > dictionary3;
                            Dictionary <string, HashSet <string> > dictionary4;
                            class2.method_7(out dictionary3, out dictionary4);
                            if (dictionary3.Count > 0)
                            {
                                dictionary.Add(class2, dictionary3);
                            }
                            foreach (KeyValuePair <string, HashSet <string> > keyValuePair in dictionary3)
                            {
                                if ([email protected]_0.ContainsKey(keyValuePair.Key))
                                {
                                    @class.dictionary_0.Add(keyValuePair.Key, new HashSet <string>(StringComparer.OrdinalIgnoreCase));
                                }
                                foreach (string item in keyValuePair.Value)
                                {
                                    if ([email protected]_0[keyValuePair.Key].Contains(item))
                                    {
                                        @class.dictionary_0[keyValuePair.Key].Add(item);
                                    }
                                }
                            }
                            foreach (KeyValuePair <string, HashSet <string> > keyValuePair2 in dictionary4)
                            {
                                Dictionary <Class102, HashSet <string> > dictionary5;
                                if (dictionary2.ContainsKey(keyValuePair2.Key))
                                {
                                    dictionary5 = dictionary2[keyValuePair2.Key];
                                }
                                else
                                {
                                    dictionary2.Add(keyValuePair2.Key, dictionary5 = new Dictionary <Class102, HashSet <string> >());
                                }
                                HashSet <string> hashSet;
                                if (dictionary5.ContainsKey(class2))
                                {
                                    hashSet = dictionary5[class2];
                                }
                                else
                                {
                                    dictionary5.Add(class2, hashSet = new HashSet <string>(StringComparer.OrdinalIgnoreCase));
                                }
                                foreach (string item2 in keyValuePair2.Value)
                                {
                                    if (!hashSet.Contains(item2))
                                    {
                                        hashSet.Add(item2);
                                    }
                                }
                            }
                        }
                    }
                }
                dictionary2.smethod_7(new Action <KeyValuePair <string, Dictionary <Class102, HashSet <string> > > >(@class.method_0));
                IEnumerable <KeyValuePair <string, Dictionary <Class102, HashSet <string> > > > source = dictionary2;
                if (Class102.func_0 == null)
                {
                    Class102.func_0 = new Func <KeyValuePair <string, Dictionary <Class102, HashSet <string> > >, bool>(Class102.smethod_3);
                }
                KeyValuePair <string, Dictionary <Class102, HashSet <string> > >[] array = source.Where(Class102.func_0).ToArray <KeyValuePair <string, Dictionary <Class102, HashSet <string> > > >();
                foreach (KeyValuePair <string, Dictionary <Class102, HashSet <string> > > keyValuePair3 in array)
                {
                    dictionary2.Remove(keyValuePair3.Key);
                }
                Dictionary <Class102, Class132> dictionary6 = new Dictionary <Class102, Class132>();
                try
                {
                    foreach (string text in @class.dictionary_0.Keys.Union(dictionary2.Keys, StringComparer.OrdinalIgnoreCase))
                    {
                        string path = Path.Combine(installDirectory, text + ".mf");
                        if (File.Exists(path))
                        {
                            using (Stream stream = File.Open(path, FileMode.Open, FileAccess.ReadWrite, FileShare.None))
                            {
                                using (Class136 class3 = new Class136(stream))
                                {
                                    if (!changedMultiFiles.Contains(text))
                                    {
                                        changedMultiFiles.Add(text);
                                    }
                                    class3.method_12();
                                    if (dictionary2.ContainsKey(text))
                                    {
                                        string path2 = Path.Combine(installDirectory, text + ".mf.orig");
                                        if (File.Exists(path2))
                                        {
                                            using (Stream stream2 = File.Open(path2, FileMode.Open, FileAccess.Read, FileShare.None))
                                            {
                                                using (Class136 class4 = new Class136(stream2))
                                                {
                                                    HashSet <string> hashSet2 = new HashSet <string>(StringComparer.OrdinalIgnoreCase);
                                                    foreach (KeyValuePair <Class102, HashSet <string> > keyValuePair4 in dictionary2[text])
                                                    {
                                                        foreach (string item3 in keyValuePair4.Value)
                                                        {
                                                            if (!hashSet2.Contains(item3))
                                                            {
                                                                hashSet2.Add(item3);
                                                            }
                                                        }
                                                    }
                                                    class4.method_14(hashSet2);
                                                    foreach (KeyValuePair <Class102, HashSet <string> > keyValuePair5 in dictionary2[text])
                                                    {
                                                        foreach (string name in keyValuePair5.Value)
                                                        {
                                                            if (class4.method_6(name) && class3.method_6(name))
                                                            {
                                                                class4[name].method_0(class3[name]);
                                                            }
                                                        }
                                                        Enum76 installState = keyValuePair5.Key.InstallState;
                                                        if (installState == Enum76.const_2)
                                                        {
                                                            using (HashSet <string> .Enumerator enumerator11 = keyValuePair5.Value.GetEnumerator())
                                                            {
                                                                while (enumerator11.MoveNext())
                                                                {
                                                                    string key = enumerator11.Current;
                                                                    switch (keyValuePair5.Key.dictionary_0[key].enum76_0)
                                                                    {
                                                                    case Enum76.const_2:
                                                                        keyValuePair5.Key.dictionary_0[key].enum76_0 = Enum76.const_0;
                                                                        continue;

                                                                    case Enum76.const_4:
                                                                        continue;
                                                                    }
                                                                    keyValuePair5.Key.dictionary_0[key].enum76_0 = Enum76.const_3;
                                                                }
                                                                continue;
                                                            }
                                                        }
                                                        foreach (string key2 in keyValuePair5.Value)
                                                        {
                                                            Enum76 @enum = keyValuePair5.Key.dictionary_0[key2].enum76_0;
                                                            if (@enum != Enum76.const_4)
                                                            {
                                                                keyValuePair5.Key.dictionary_0[key2].enum76_0 = Enum76.const_0;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                    foreach (KeyValuePair <Class102, Dictionary <string, HashSet <string> > > keyValuePair6 in dictionary)
                                    {
                                        if (keyValuePair6.Value.ContainsKey(text))
                                        {
                                            Class102 key3 = keyValuePair6.Key;
                                            if (!dictionary6.ContainsKey(keyValuePair6.Key))
                                            {
                                                dictionary6.Add(keyValuePair6.Key, new Class132(keyValuePair6.Key.FileName, false, true));
                                            }
                                            Class136 data = dictionary6[keyValuePair6.Key].Data;
                                            foreach (string text2 in keyValuePair6.Value[text])
                                            {
                                                if (data.method_6(text2) && class3.method_6(text2))
                                                {
                                                    Class338 class5 = data[text2];
                                                    class5.method_0(class3[text2]);
                                                    class5.Data = null;
                                                    key3.dictionary_0[text2].enum76_0 = Enum76.const_1;
                                                }
                                                else
                                                {
                                                    key3.dictionary_0[text2].enum76_0 = Enum76.const_0;
                                                }
                                            }
                                        }
                                    }
                                    class3.method_18();
                                }
                                continue;
                            }
                        }
                        if (dictionary2.ContainsKey(text))
                        {
                            foreach (KeyValuePair <Class102, HashSet <string> > keyValuePair7 in dictionary2[text])
                            {
                                Enum76 installState = keyValuePair7.Key.InstallState;
                                if (installState == Enum76.const_2)
                                {
                                    using (HashSet <string> .Enumerator enumerator3 = keyValuePair7.Value.GetEnumerator())
                                    {
                                        while (enumerator3.MoveNext())
                                        {
                                            string key4 = enumerator3.Current;
                                            switch (keyValuePair7.Key.dictionary_0[key4].enum76_0)
                                            {
                                            case Enum76.const_2:
                                                keyValuePair7.Key.dictionary_0[key4].enum76_0 = Enum76.const_0;
                                                continue;

                                            case Enum76.const_4:
                                                continue;
                                            }
                                            keyValuePair7.Key.dictionary_0[key4].enum76_0 = Enum76.const_3;
                                        }
                                        continue;
                                    }
                                }
                                foreach (string key5 in keyValuePair7.Value)
                                {
                                    installState = keyValuePair7.Key.dictionary_0[key5].enum76_0;
                                    if (installState != Enum76.const_4)
                                    {
                                        keyValuePair7.Key.dictionary_0[key5].enum76_0 = Enum76.const_0;
                                    }
                                }
                            }
                        }
                    }
                }
                finally
                {
                    foreach (KeyValuePair <Class102, Class132> keyValuePair8 in dictionary6)
                    {
                        keyValuePair8.Value.Dispose();
                    }
                }
                foreach (Class102 class6 in Class110.Instance.ConnectSettings.ContentPacks)
                {
                    class6.method_6();
                }
            }
        }