private static void PatchInternalMethodFull(MethodInfo method, bool display = true)
        {
            try
            {
                AnalyzerState.MakeAndSwitchTab(method.Name + "-int");

                InternalMethodUtility.curMeth = method;
                InternalMethodUtility.PatchedInternals.Add(method);
                InternalMethodUtility.Harmony.Patch(method, null, null, InternalMethodUtility.InternalProfiler);
            }
            catch (Exception e)
            {
                if (display)
                {
                    Error("Failed to patch internal methods, failed with the error " + e.Message);
                }
                InternalMethodUtility.PatchedInternals.Remove(method);
            }
        }
        public static void PatchAssembly(string name, bool display = true)
        {
            var mod = LoadedModManager.RunningMods.FirstOrDefault(m => m.Name == name || m.PackageId == name.ToLower());

            if (display)
            {
                Notify($"Mod is null? {mod == null}");
            }
            if (mod != null)
            {
                if (display)
                {
                    Notify($"Assembly count: { mod.assemblies?.loadedAssemblies?.Count ?? 0}");
                }
                foreach (var ass in mod.assemblies?.loadedAssemblies)
                {
                    if (display)
                    {
                        Notify($"Assembly named: {ass.FullName}, located at {ass.Location}");
                    }
                }
            }

            var assembly = mod?.assemblies?.loadedAssemblies?.Where(w => !w.FullName.Contains("Harmony") && !w.FullName.Contains("0MultiplayerAPI"));

            if (assembly != null && assembly.Count() != 0)
            {
                AnalyzerState.MakeAndSwitchTab(mod.Name + "-prof");
                var pre  = new HarmonyMethod(AccessTools.TypeByName(mod.Name + "-prof").GetMethod("Prefix", BindingFlags.Public | BindingFlags.Static));
                var post = new HarmonyMethod(AccessTools.TypeByName(mod.Name + "-prof").GetMethod("Postfix", BindingFlags.Public | BindingFlags.Static));

                patchAssemblyThread = new Thread(() => PatchAssemblyFull(assembly.ToList(), pre, post, display));
                patchAssemblyThread.Start();
            }
            else
            {
                if (display)
                {
                    Error($"Failed to patch {name}");
                }
            }
        }