Some mods target the Mono version of the game, which is available by opting into the Steam beta branch "alternate"
Decompiled source of Imperium v4.5.18
Mods/SIAKImperium.dll
Decompiled 2 weeks ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Concurrent; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Diagnostics; using System.Drawing; using System.Globalization; using System.IO; using System.IO.Compression; using System.Linq; using System.Net; using System.Net.Http; using System.Net.Http.Headers; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Security; using System.Security.Cryptography; using System.Text; using System.Text.Json; using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; using HarmonyLib; using Il2CppFishNet; using Il2CppFishNet.Managing.Server; using Il2CppFishNet.Object; using Il2CppInterop.Runtime; using Il2CppInterop.Runtime.Attributes; using Il2CppInterop.Runtime.Injection; using Il2CppInterop.Runtime.InteropTypes; using Il2CppInterop.Runtime.InteropTypes.Arrays; using Il2CppScheduleOne; using Il2CppScheduleOne.Avatar; using Il2CppScheduleOne.Avatar.Impostors; using Il2CppScheduleOne.AvatarFramework; using Il2CppScheduleOne.AvatarFramework.Equipping; using Il2CppScheduleOne.Combat; using Il2CppScheduleOne.Core.Avatar; using Il2CppScheduleOne.Core.Items.Framework; using Il2CppScheduleOne.Core.Weather; using Il2CppScheduleOne.DevUtilities; using Il2CppScheduleOne.Dragging; using Il2CppScheduleOne.Economy; using Il2CppScheduleOne.EntityFramework; using Il2CppScheduleOne.Equipping; using Il2CppScheduleOne.GameTime; using Il2CppScheduleOne.ItemFramework; using Il2CppScheduleOne.Law; using Il2CppScheduleOne.Management; using Il2CppScheduleOne.Management.UI; using Il2CppScheduleOne.Map; using Il2CppScheduleOne.Messaging; using Il2CppScheduleOne.Money; using Il2CppScheduleOne.NPCs; using Il2CppScheduleOne.NPCs.Behaviour; using Il2CppScheduleOne.NPCs.Relation; using Il2CppScheduleOne.NPCs.Responses; using Il2CppScheduleOne.ObjectScripts; using Il2CppScheduleOne.PlayerScripts; using Il2CppScheduleOne.Police; using Il2CppScheduleOne.Product; using Il2CppScheduleOne.Property; using Il2CppScheduleOne.Quests; using Il2CppScheduleOne.Storage; using Il2CppScheduleOne.UI; using Il2CppScheduleOne.UI.Management; using Il2CppScheduleOne.UI.Phone; using Il2CppScheduleOne.UI.Phone.Messages; using Il2CppScheduleOne.Vehicles; using Il2CppScheduleOne.Vision; using Il2CppScheduleOne.Weather; using Il2CppSteamworks; using Il2CppSystem; using Il2CppSystem.Collections.Generic; using Il2CppSystem.Reflection; using Il2CppTMPro; using MelonLoader; using MelonLoader.Preferences; using Microsoft.CodeAnalysis; using Microsoft.Web.WebView2.Core; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using S1API.Console; using S1API.Entities; using S1API.GameTime; using S1API.Input; using S1API.Items; using S1API.Law; using S1API.Leveling; using S1API.Lifecycle; using S1API.Money; using S1API.PhoneApp; using S1API.Products; using S1API.Property; using S1API.Storage; using S1API.Storages; using S1API.UI; using S1API.Utils; using S1API.Vehicles; using SIAKImperium; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.Events; using UnityEngine.Rendering; using UnityEngine.SceneManagement; using UnityEngine.UI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(/*Could not decode attribute arguments.*/)] [assembly: MelonInfo(typeof(SIAKImperiumMod), "[S.I.A.K] Imperium", "4.5.18", "Eternidox", null)] [assembly: MelonColor(255, 255, 80, 80)] [assembly: MelonAuthorColor(255, 80, 160, 255)] [assembly: MelonGame("TVGS", "Schedule I")] [assembly: AssemblyVersion("0.0.0.0")] [module: RefSafetyRules(11)] internal class <Module> { static <Module>() { ImperiumEmbeddedDependencyLoader.InitializeModule(); } } namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Embedded] internal sealed class EmbeddedAttribute : System.Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Embedded] [AttributeUsage(/*Could not decode attribute arguments.*/)] internal sealed class NullableAttribute : System.Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Embedded] [AttributeUsage(/*Could not decode attribute arguments.*/)] internal sealed class NullableContextAttribute : System.Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } [CompilerGenerated] [Embedded] [AttributeUsage(/*Could not decode attribute arguments.*/)] internal sealed class RefSafetyRulesAttribute : System.Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace SIAKImperium { public sealed class ImperiumAntivirusApp : PhoneApp { private static ImperiumAntivirusApp? _instance; private static GameObject? _iconRoot; private static readonly Action OpenFromLauncherAction = new Action(OpenFromLauncher); protected override string AppName => "SIAKAntivirusApp"; protected override string AppTitle => "Advanced Anti Virus"; protected override string IconLabel => "Antivirus"; protected override string IconFileName => string.Empty; protected override Sprite? IconSprite => ImperiumAssets.LoadAntivirusAppIconSprite(); protected override EOrientation Orientation => (EOrientation)0; protected override void OnCreatedUI(GameObject container) { //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) _instance = this; if (ImperiumWebUiRuntime.Available) { GameObject val = UIFactory.Panel("AntivirusHtmlRoot", container.transform, Color.clear, (Vector2?)null, (Vector2?)null, true); ImperiumAntivirusWebController imperiumAntivirusWebController = val.AddComponent<ImperiumAntivirusWebController>(); if (imperiumAntivirusWebController.Initialize(val, container)) { RefreshAvailability(SIAKImperiumMod.Service.GetSnapshot().Antivirus); return; } val.SetActive(false); Object.Destroy((Object)(object)val); } GameObject val2 = UIFactory.Panel("AntivirusRoot", container.transform, new Color(0.035f, 0.06f, 0.05f), (Vector2?)null, (Vector2?)null, true); ImperiumAntivirusAppController imperiumAntivirusAppController = val2.AddComponent<ImperiumAntivirusAppController>(); imperiumAntivirusAppController.Initialize(val2, container); RefreshAvailability(SIAKImperiumMod.Service.GetSnapshot().Antivirus); } internal static bool TryOpenInstalled() { ImperiumAntivirusStatus antivirus = SIAKImperiumMod.Service.GetSnapshot().Antivirus; if (_instance == null || !antivirus.Enabled || !antivirus.Installed || !ImperiumManagedApplications.IsEnabled("antivirus")) { return false; } ((PhoneApp)_instance).OpenApp(); return true; } internal static void RefreshAvailability(ImperiumAntivirusStatus antivirus) { if (_instance != null) { _iconRoot = ImperiumPhoneLauncherRecovery.Ensure(_iconRoot, "SIAKAntivirusApp", "Antivirus", ImperiumAssets.LoadAntivirusAppIconSprite(), OpenFromLauncherAction); if ((Object)(object)_iconRoot != (Object)null) { _iconRoot.SetActive(antivirus.Enabled && antivirus.Installed && ImperiumManagedApplications.IsEnabled("antivirus")); } } } internal static void RefreshAvailabilityFromService() { ImperiumService service = SIAKImperiumMod.Service; if (service != null) { RefreshAvailability(service.GetSnapshot().Antivirus); } } private static void OpenFromLauncher() { TryOpenInstalled(); } } internal sealed class ImperiumAntivirusAppController : MonoBehaviour { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static Action <>9__37_0; public static Action <>9__37_1; internal void <Initialize>b__37_0() { SIAKImperiumMod.Service.SubscribeAntivirus("basic"); } internal void <Initialize>b__37_1() { SIAKImperiumMod.Service.SubscribeAntivirus("premium"); } } private static readonly Color Accent = new Color(0.32f, 0.86f, 0.57f); private static readonly Color Muted = new Color(0.65f, 0.75f, 0.7f); private static readonly Color Panel = new Color(0.06f, 0.12f, 0.1f); private GameObject? _loginRoot; private GameObject? _mainRoot; private RectTransform? _portraitContainer; private RectTransform? _portraitRoot; private Vector2 _lastPortraitContainerSize; private InputField? _playerNameInput; private Button? _fingerprintButton; private Image? _fingerprintScannerBackground; private Image? _fingerprintArtwork; private Text? _loginHint; private Text? _statusText; private Text? _planText; private Text? _scanText; private Text? _malwareText; private Text? _spywareText; private Text? _ransomwareText; private Button? _basicButton; private Text? _basicLabel; private Button? _premiumButton; private Text? _premiumLabel; private Button? _scanButton; private Text? _scanLabel; private Button? _resultsButton; private Text? _resultsLabel; private GameObject? _resultsButtonRoot; private Button? _unsubscribeButton; private Text? _unsubscribeLabel; private string _verifiedPlayerName = string.Empty; private int _lastStateVersion = -1; private float _fingerprintHeldSeconds; private float _scanAnimationStartedAt = -1f; private bool _wasScanning; private bool _resultsVisible; public ImperiumAntivirusAppController(System.IntPtr pointer) : base(pointer) { } public void Initialize(GameObject root, GameObject container) { //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_014e: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_016f: Unknown result type (might be due to invalid IL or missing references) //IL_01a3: Unknown result type (might be due to invalid IL or missing references) //IL_01d5: Unknown result type (might be due to invalid IL or missing references) //IL_01e4: Unknown result type (might be due to invalid IL or missing references) //IL_01e9: Unknown result type (might be due to invalid IL or missing references) //IL_01ee: Unknown result type (might be due to invalid IL or missing references) //IL_0217: Unknown result type (might be due to invalid IL or missing references) //IL_0233: Unknown result type (might be due to invalid IL or missing references) //IL_0242: Unknown result type (might be due to invalid IL or missing references) //IL_0247: Unknown result type (might be due to invalid IL or missing references) //IL_024c: Unknown result type (might be due to invalid IL or missing references) //IL_0275: Unknown result type (might be due to invalid IL or missing references) //IL_029a: Unknown result type (might be due to invalid IL or missing references) //IL_02a9: Unknown result type (might be due to invalid IL or missing references) //IL_02ae: Unknown result type (might be due to invalid IL or missing references) //IL_02b3: Unknown result type (might be due to invalid IL or missing references) //IL_030c: Unknown result type (might be due to invalid IL or missing references) //IL_031b: Unknown result type (might be due to invalid IL or missing references) //IL_0320: Unknown result type (might be due to invalid IL or missing references) //IL_0325: Unknown result type (might be due to invalid IL or missing references) //IL_033c: Unknown result type (might be due to invalid IL or missing references) //IL_03a4: Unknown result type (might be due to invalid IL or missing references) //IL_03c4: Unknown result type (might be due to invalid IL or missing references) //IL_03db: Unknown result type (might be due to invalid IL or missing references) //IL_03f2: Unknown result type (might be due to invalid IL or missing references) //IL_0409: Unknown result type (might be due to invalid IL or missing references) //IL_0416: Unknown result type (might be due to invalid IL or missing references) //IL_042d: Unknown result type (might be due to invalid IL or missing references) //IL_04a8: Unknown result type (might be due to invalid IL or missing references) //IL_04bf: Unknown result type (might be due to invalid IL or missing references) //IL_04d6: Unknown result type (might be due to invalid IL or missing references) //IL_04ed: Unknown result type (might be due to invalid IL or missing references) //IL_04fa: Unknown result type (might be due to invalid IL or missing references) //IL_053d: Unknown result type (might be due to invalid IL or missing references) //IL_0596: Unknown result type (might be due to invalid IL or missing references) //IL_05d0: Unknown result type (might be due to invalid IL or missing references) //IL_05e7: Unknown result type (might be due to invalid IL or missing references) //IL_05fe: Unknown result type (might be due to invalid IL or missing references) //IL_0615: Unknown result type (might be due to invalid IL or missing references) //IL_062c: Unknown result type (might be due to invalid IL or missing references) //IL_066c: Unknown result type (might be due to invalid IL or missing references) //IL_068c: Unknown result type (might be due to invalid IL or missing references) //IL_069b: Unknown result type (might be due to invalid IL or missing references) //IL_06a0: Unknown result type (might be due to invalid IL or missing references) //IL_06a5: Unknown result type (might be due to invalid IL or missing references) //IL_06bc: Unknown result type (might be due to invalid IL or missing references) //IL_06f0: Unknown result type (might be due to invalid IL or missing references) //IL_0722: Unknown result type (might be due to invalid IL or missing references) //IL_0731: Unknown result type (might be due to invalid IL or missing references) //IL_0736: Unknown result type (might be due to invalid IL or missing references) //IL_073b: Unknown result type (might be due to invalid IL or missing references) //IL_076c: Unknown result type (might be due to invalid IL or missing references) //IL_078c: Unknown result type (might be due to invalid IL or missing references) //IL_079b: Unknown result type (might be due to invalid IL or missing references) //IL_07a0: Unknown result type (might be due to invalid IL or missing references) //IL_07a5: Unknown result type (might be due to invalid IL or missing references) //IL_07d6: Unknown result type (might be due to invalid IL or missing references) //IL_07f6: Unknown result type (might be due to invalid IL or missing references) //IL_0805: Unknown result type (might be due to invalid IL or missing references) //IL_080a: Unknown result type (might be due to invalid IL or missing references) //IL_080f: Unknown result type (might be due to invalid IL or missing references) //IL_0835: Unknown result type (might be due to invalid IL or missing references) //IL_0867: Unknown result type (might be due to invalid IL or missing references) //IL_0876: Unknown result type (might be due to invalid IL or missing references) //IL_087b: Unknown result type (might be due to invalid IL or missing references) //IL_0880: Unknown result type (might be due to invalid IL or missing references) //IL_08b1: Unknown result type (might be due to invalid IL or missing references) //IL_08d1: Unknown result type (might be due to invalid IL or missing references) //IL_08e0: Unknown result type (might be due to invalid IL or missing references) //IL_08e5: Unknown result type (might be due to invalid IL or missing references) //IL_08ea: Unknown result type (might be due to invalid IL or missing references) //IL_0969: Unknown result type (might be due to invalid IL or missing references) //IL_097a: Unknown result type (might be due to invalid IL or missing references) //IL_097f: Unknown result type (might be due to invalid IL or missing references) //IL_0984: Unknown result type (might be due to invalid IL or missing references) //IL_098c: Unknown result type (might be due to invalid IL or missing references) //IL_09bc: Unknown result type (might be due to invalid IL or missing references) //IL_09cb: Unknown result type (might be due to invalid IL or missing references) //IL_09d0: Unknown result type (might be due to invalid IL or missing references) //IL_09d5: Unknown result type (might be due to invalid IL or missing references) //IL_0a00: Unknown result type (might be due to invalid IL or missing references) //IL_0a11: Unknown result type (might be due to invalid IL or missing references) //IL_0a16: Unknown result type (might be due to invalid IL or missing references) //IL_0a1b: Unknown result type (might be due to invalid IL or missing references) //IL_0a23: Unknown result type (might be due to invalid IL or missing references) //IL_0a53: Unknown result type (might be due to invalid IL or missing references) //IL_0a62: Unknown result type (might be due to invalid IL or missing references) //IL_0a67: Unknown result type (might be due to invalid IL or missing references) //IL_0a6c: Unknown result type (might be due to invalid IL or missing references) //IL_0a97: Unknown result type (might be due to invalid IL or missing references) //IL_0aa8: Unknown result type (might be due to invalid IL or missing references) //IL_0aad: Unknown result type (might be due to invalid IL or missing references) //IL_0ab2: Unknown result type (might be due to invalid IL or missing references) //IL_0aba: Unknown result type (might be due to invalid IL or missing references) //IL_0aea: Unknown result type (might be due to invalid IL or missing references) //IL_0af9: Unknown result type (might be due to invalid IL or missing references) //IL_0afe: Unknown result type (might be due to invalid IL or missing references) //IL_0b03: Unknown result type (might be due to invalid IL or missing references) //IL_0b2e: Unknown result type (might be due to invalid IL or missing references) //IL_0b3f: Unknown result type (might be due to invalid IL or missing references) //IL_0b44: Unknown result type (might be due to invalid IL or missing references) //IL_0b49: Unknown result type (might be due to invalid IL or missing references) //IL_0b51: Unknown result type (might be due to invalid IL or missing references) //IL_0b89: Unknown result type (might be due to invalid IL or missing references) //IL_0b98: Unknown result type (might be due to invalid IL or missing references) //IL_0b9d: Unknown result type (might be due to invalid IL or missing references) //IL_0ba2: Unknown result type (might be due to invalid IL or missing references) //IL_0bcd: Unknown result type (might be due to invalid IL or missing references) //IL_0bde: Unknown result type (might be due to invalid IL or missing references) //IL_0be3: Unknown result type (might be due to invalid IL or missing references) //IL_0be8: Unknown result type (might be due to invalid IL or missing references) //IL_0bf0: Unknown result type (might be due to invalid IL or missing references) //IL_0c20: Unknown result type (might be due to invalid IL or missing references) //IL_0c2f: Unknown result type (might be due to invalid IL or missing references) //IL_0c34: Unknown result type (might be due to invalid IL or missing references) //IL_0c39: Unknown result type (might be due to invalid IL or missing references) //IL_0c5a: Unknown result type (might be due to invalid IL or missing references) //IL_0c5f: Unknown result type (might be due to invalid IL or missing references) //IL_0c65: Expected O, but got Unknown //IL_0c9b: Unknown result type (might be due to invalid IL or missing references) //IL_0ca5: Expected O, but got Unknown //IL_0caf: Unknown result type (might be due to invalid IL or missing references) //IL_0cb9: Expected O, but got Unknown //IL_0cc7: Unknown result type (might be due to invalid IL or missing references) //IL_0cd1: Expected O, but got Unknown //IL_0c81: Unknown result type (might be due to invalid IL or missing references) //IL_0c86: Unknown result type (might be due to invalid IL or missing references) //IL_0c8c: Expected O, but got Unknown _portraitRoot = root.GetComponent<RectTransform>(); _portraitContainer = container.GetComponent<RectTransform>(); ApplyPortraitCanvasLayout(force: true); GameObject val = UIFactory.Panel("AntivirusBrandLogo", root.transform, Color.clear, (Vector2?)null, (Vector2?)null, false); Image component = val.GetComponent<Image>(); component.sprite = ImperiumAssets.LoadAntivirusLogoSprite(); ((Graphic)component).color = Color.white; component.preserveAspect = true; ((Graphic)component).raycastTarget = false; Stretch(val.GetComponent<RectTransform>(), new Vector2(0.38f, 0.918f), new Vector2(0.62f, 0.992f), Vector2.zero, Vector2.zero); Text val2 = UIFactory.Text("AntivirusHeader", "Advanced Anti Virus", root.transform, 30, (TextAnchor)4, (FontStyle)1); ((Graphic)val2).color = Accent; Stretch(((Component)val2).GetComponent<RectTransform>(), new Vector2(0.08f, 0.865f), new Vector2(0.92f, 0.918f), Vector2.zero, Vector2.zero); Text val3 = UIFactory.Text("AntivirusSubheader", "Made by Imperium", root.transform, 18, (TextAnchor)4, (FontStyle)2); ((Graphic)val3).color = Muted; Stretch(((Component)val3).GetComponent<RectTransform>(), new Vector2(0.08f, 0.822f), new Vector2(0.92f, 0.865f), Vector2.zero, Vector2.zero); _loginRoot = UIFactory.Panel("AntivirusLogin", root.transform, Color.clear, (Vector2?)null, (Vector2?)null, true); GameObject val4 = UIFactory.Panel("AntivirusLoginPanel", _loginRoot.transform, Panel, (Vector2?)null, (Vector2?)null, false); Stretch(val4.GetComponent<RectTransform>(), new Vector2(0.08f, 0.11f), new Vector2(0.92f, 0.8f), Vector2.zero, Vector2.zero); Text val5 = UIFactory.Text("AntivirusLoginTitle", "Secure User Verification", val4.transform, 24, (TextAnchor)4, (FontStyle)1); ((Graphic)val5).color = Color.white; Stretch(((Component)val5).GetComponent<RectTransform>(), new Vector2(0.08f, 0.83f), new Vector2(0.92f, 0.94f), Vector2.zero, Vector2.zero); Text val6 = UIFactory.Text("AntivirusLoginBody", "Enter your current Imperium player name, then hold the fingerprint scanner until it turns green.", val4.transform, 18, (TextAnchor)1, (FontStyle)0); ((Graphic)val6).color = Muted; val6.horizontalOverflow = (HorizontalWrapMode)0; Stretch(((Component)val6).GetComponent<RectTransform>(), new Vector2(0.08f, 0.65f), new Vector2(0.92f, 0.81f), Vector2.zero, Vector2.zero); _playerNameInput = CreateInputField("AntivirusPlayerName", val4.transform, "Your Imperium player name", 20); _playerNameInput.lineType = (LineType)0; _playerNameInput.characterLimit = 48; Stretch(((Component)_playerNameInput).GetComponent<RectTransform>(), new Vector2(0.1f, 0.5f), new Vector2(0.9f, 0.6f), Vector2.zero, Vector2.zero); GameObject val7 = UIFactory.Panel("AntivirusFingerprintRing", val4.transform, Color.white, (Vector2?)null, (Vector2?)null, false); Image component2 = val7.GetComponent<Image>(); component2.sprite = ImperiumAntivirusUiSprites.Ring; component2.type = (Type)0; component2.preserveAspect = true; ((Graphic)component2).raycastTarget = false; ((Graphic)component2).color = new Color(0.2f, 0.78f, 0.54f, 0.95f); RectTransform component3 = val7.GetComponent<RectTransform>(); component3.anchorMin = new Vector2(0.5f, 0.31f); component3.anchorMax = new Vector2(0.5f, 0.31f); component3.pivot = new Vector2(0.5f, 0.5f); component3.sizeDelta = new Vector2(170f, 170f); component3.anchoredPosition = Vector2.zero; GameObject val8 = UIFactory.Panel("AntivirusFingerprintScanner", val7.transform, Color.white, (Vector2?)null, (Vector2?)null, false); _fingerprintScannerBackground = val8.GetComponent<Image>(); _fingerprintScannerBackground.sprite = ImperiumAntivirusUiSprites.Disc; _fingerprintScannerBackground.type = (Type)0; _fingerprintScannerBackground.preserveAspect = true; ((Graphic)_fingerprintScannerBackground).raycastTarget = true; RectTransform component4 = val8.GetComponent<RectTransform>(); component4.anchorMin = new Vector2(0.5f, 0.5f); component4.anchorMax = new Vector2(0.5f, 0.5f); component4.pivot = new Vector2(0.5f, 0.5f); component4.sizeDelta = new Vector2(144f, 144f); component4.anchoredPosition = Vector2.zero; _fingerprintButton = val8.AddComponent<Button>(); ((Selectable)_fingerprintButton).targetGraphic = (Graphic)(object)_fingerprintScannerBackground; ((Selectable)_fingerprintButton).transition = (Transition)0; GameObject val9 = UIFactory.Panel("AntivirusFingerprint", val8.transform, Color.clear, (Vector2?)null, (Vector2?)null, false); _fingerprintArtwork = val9.GetComponent<Image>(); _fingerprintArtwork.sprite = ImperiumAssets.LoadFingerprintSprite(); ((Graphic)_fingerprintArtwork).color = new Color(0.58f, 0.69f, 0.64f, 1f); _fingerprintArtwork.preserveAspect = true; ((Graphic)_fingerprintArtwork).raycastTarget = false; RectTransform component5 = val9.GetComponent<RectTransform>(); component5.anchorMin = new Vector2(0.5f, 0.5f); component5.anchorMax = new Vector2(0.5f, 0.5f); component5.pivot = new Vector2(0.5f, 0.5f); component5.sizeDelta = new Vector2(132f, 132f); component5.anchoredPosition = new Vector2(0f, -1f); _loginHint = UIFactory.Text("AntivirusLoginHint", string.Empty, val4.transform, 17, (TextAnchor)4, (FontStyle)2); ((Graphic)_loginHint).color = new Color(0.9f, 0.7f, 0.35f); Stretch(((Component)_loginHint).GetComponent<RectTransform>(), new Vector2(0.08f, 0.08f), new Vector2(0.92f, 0.16f), Vector2.zero, Vector2.zero); _mainRoot = UIFactory.Panel("AntivirusMain", root.transform, Color.clear, (Vector2?)null, (Vector2?)null, true); GameObject val10 = UIFactory.Panel("AntivirusMainPanel", _mainRoot.transform, Panel, (Vector2?)null, (Vector2?)null, false); Stretch(val10.GetComponent<RectTransform>(), new Vector2(0.05f, 0.07f), new Vector2(0.95f, 0.82f), Vector2.zero, Vector2.zero); _statusText = UIFactory.Text("AntivirusStatus", string.Empty, val10.transform, 20, (TextAnchor)0, (FontStyle)1); ((Graphic)_statusText).color = Color.white; Stretch(((Component)_statusText).GetComponent<RectTransform>(), new Vector2(0.06f, 0.78f), new Vector2(0.94f, 0.95f), Vector2.zero, Vector2.zero); _planText = UIFactory.Text("AntivirusPlan", string.Empty, val10.transform, 18, (TextAnchor)0, (FontStyle)0); ((Graphic)_planText).color = Muted; Stretch(((Component)_planText).GetComponent<RectTransform>(), new Vector2(0.06f, 0.63f), new Vector2(0.94f, 0.77f), Vector2.zero, Vector2.zero); GameObject val11 = UIFactory.Panel("AntivirusScanTerminal", val10.transform, new Color(0.008f, 0.012f, 0.016f), (Vector2?)null, (Vector2?)null, false); Stretch(val11.GetComponent<RectTransform>(), new Vector2(0.06f, 0.23f), new Vector2(0.94f, 0.61f), Vector2.zero, Vector2.zero); _scanText = UIFactory.Text("AntivirusScan", string.Empty, val11.transform, 18, (TextAnchor)0, (FontStyle)0); ((Graphic)_scanText).color = Muted; Stretch(((Component)_scanText).GetComponent<RectTransform>(), new Vector2(0.07f, 0.58f), new Vector2(0.93f, 0.93f), Vector2.zero, Vector2.zero); _malwareText = CreateInfectionText("Malware", val11.transform, 0.37f); _spywareText = CreateInfectionText("Spyware", val11.transform, 0.22f); _ransomwareText = CreateInfectionText("Ransomware", val11.transform, 0.07f); ValueTuple<GameObject, Button, Text> val12 = UIFactory.RoundedButtonWithLabel("AntivirusBasic", "Antivirus Basic", val10.transform, new Color(0.16f, 0.34f, 0.24f), 240f, 42f, 18, Color.white); GameObject item = val12.Item1; Button item2 = val12.Item2; Text item3 = val12.Item3; _basicButton = item2; _basicLabel = item3; Stretch(item.GetComponent<RectTransform>(), new Vector2(0.06f, 0.14f), new Vector2(0.48f, 0.21f), Vector2.zero, Vector2.zero); ValueTuple<GameObject, Button, Text> val13 = UIFactory.RoundedButtonWithLabel("AntivirusPremium", "Antivirus Premium", val10.transform, new Color(0.17f, 0.24f, 0.42f), 240f, 42f, 18, Color.white); GameObject item4 = val13.Item1; Button item5 = val13.Item2; Text item6 = val13.Item3; _premiumButton = item5; _premiumLabel = item6; Stretch(item4.GetComponent<RectTransform>(), new Vector2(0.52f, 0.14f), new Vector2(0.94f, 0.21f), Vector2.zero, Vector2.zero); ValueTuple<GameObject, Button, Text> val14 = UIFactory.RoundedButtonWithLabel("AntivirusScanButton", "Scan Device", val10.transform, new Color(0.2f, 0.45f, 0.32f), 220f, 42f, 18, Color.white); GameObject item7 = val14.Item1; Button item8 = val14.Item2; Text item9 = val14.Item3; _scanButton = item8; _scanLabel = item9; Stretch(item7.GetComponent<RectTransform>(), new Vector2(0.06f, 0.055f), new Vector2(0.34f, 0.12f), Vector2.zero, Vector2.zero); ValueTuple<GameObject, Button, Text> val15 = UIFactory.RoundedButtonWithLabel("AntivirusResultsButton", "Scanned Results", val10.transform, new Color(0.18f, 0.31f, 0.47f), 220f, 42f, 16, Color.white); GameObject item10 = val15.Item1; Button item11 = val15.Item2; Text item12 = val15.Item3; _resultsButton = item11; _resultsLabel = item12; _resultsButtonRoot = item10; Stretch(item10.GetComponent<RectTransform>(), new Vector2(0.37f, 0.055f), new Vector2(0.65f, 0.12f), Vector2.zero, Vector2.zero); ValueTuple<GameObject, Button, Text> val16 = UIFactory.RoundedButtonWithLabel("AntivirusUnsubscribe", "Unsubscribe", val10.transform, new Color(0.42f, 0.2f, 0.18f), 220f, 42f, 18, Color.white); GameObject item13 = val16.Item1; Button item14 = val16.Item2; Text item15 = val16.Item3; _unsubscribeButton = item14; _unsubscribeLabel = item15; Stretch(item13.GetComponent<RectTransform>(), new Vector2(0.68f, 0.055f), new Vector2(0.94f, 0.12f), Vector2.zero, Vector2.zero); object obj = <>c.<>9__37_0; if (obj == null) { Action val17 = delegate { SIAKImperiumMod.Service.SubscribeAntivirus("basic"); }; <>c.<>9__37_0 = val17; obj = (object)val17; } ButtonUtils.AddListener(item2, (Action)obj); object obj2 = <>c.<>9__37_1; if (obj2 == null) { Action val18 = delegate { SIAKImperiumMod.Service.SubscribeAntivirus("premium"); }; <>c.<>9__37_1 = val18; obj2 = (object)val18; } ButtonUtils.AddListener(item5, (Action)obj2); ButtonUtils.AddListener(item8, (Action)([CompilerGenerated] () => { _resultsVisible = false; SIAKImperiumMod.Service.ScanWithAntivirus(); })); ButtonUtils.AddListener(item11, (Action)([CompilerGenerated] () => { _resultsVisible = true; RefreshNow(); })); ButtonUtils.AddListener(item14, new Action(SIAKImperiumMod.Service.UnsubscribeAntivirus)); RefreshNow(); } public void RefreshNow() { //IL_0186: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) ImperiumStatusSnapshot snapshot = SIAKImperiumMod.Service.GetSnapshot(); _lastStateVersion = SIAKImperiumMod.Service.StateVersion; ImperiumAntivirusStatus imperiumAntivirusStatus = snapshot.Antivirus ?? new ImperiumAntivirusStatus(); ImperiumAntivirusApp.RefreshAvailability(imperiumAntivirusStatus); if (!imperiumAntivirusStatus.ScanResultsAvailable) { _resultsVisible = false; } string text = snapshot.PlayerName?.Trim() ?? string.Empty; bool flag = !string.IsNullOrWhiteSpace(_verifiedPlayerName); if ((Object)(object)_loginRoot != (Object)null) { _loginRoot.SetActive(!flag); } if ((Object)(object)_mainRoot != (Object)null) { _mainRoot.SetActive(flag); } if (!flag) { if ((Object)(object)_loginHint != (Object)null) { _loginHint.text = (string.IsNullOrWhiteSpace(text) ? "Imperium identity is not ready yet." : "Verification protects this device from unauthorised antivirus changes."); } return; } if ((Object)(object)_statusText != (Object)null) { _statusText.text = ((!imperiumAntivirusStatus.Enabled) ? "APPLICATION UNAVAILABLE\nImperium Architects have temporarily recalled this application." : (imperiumAntivirusStatus.RansomwareLocked ? "DEVICE ENCRYPTED\nResolve the active ransom through the stock Messages app." : (imperiumAntivirusStatus.SpywareExtortionActive ? "HOSTILE ACTOR ACTIVE\nA Spyware source remains active even if a scan lowers the device risk." : (imperiumAntivirusStatus.SubscriptionActive ? "Device protection is active for this player." : "Your device is unprotected. We recommend protection immediately.")))); ((Graphic)_statusText).color = (Color)((!imperiumAntivirusStatus.Enabled || imperiumAntivirusStatus.RansomwareLocked) ? new Color(1f, 0.35f, 0.32f) : Color.white); } if ((Object)(object)_planText != (Object)null) { string text2 = (imperiumAntivirusStatus.SubscriptionActive ? (CultureInfo.InvariantCulture.TextInfo.ToTitleCase(imperiumAntivirusStatus.SubscriptionTier) + " subscription active") : "No active subscription"); string text3 = (imperiumAntivirusStatus.SubscriptionCancelled ? "\nRenewal cancelled after this game day." : string.Empty); _planText.text = $"{text2}\nBasic: ${imperiumAntivirusStatus.BasicDailyCost:N0}/game day | Premium: ${imperiumAntivirusStatus.PremiumDailyCost:N0}/game day{text3}"; } if (imperiumAntivirusStatus.ScanInProgress && !_wasScanning) { _scanAnimationStartedAt = Time.unscaledTime; } _wasScanning = imperiumAntivirusStatus.ScanInProgress; if ((Object)(object)_scanText != (Object)null) { _scanText.text = BuildScanStatus(imperiumAntivirusStatus); } bool flag2 = _resultsVisible && imperiumAntivirusStatus.ScanResultsAvailable && !imperiumAntivirusStatus.ScanInProgress; SetInfectionText(_malwareText, "Malware", imperiumAntivirusStatus.MalwarePercent, flag2); SetInfectionText(_spywareText, "Spyware", imperiumAntivirusStatus.SpywarePercent, flag2); SetInfectionText(_ransomwareText, "Ransomware", imperiumAntivirusStatus.RansomwarePercent, flag2); string text4 = imperiumAntivirusStatus.SubscriptionTier?.Trim().ToLowerInvariant() ?? string.Empty; if ((Object)(object)_basicLabel != (Object)null) { _basicLabel.text = ((text4 == "basic") ? "Basic Active" : $"Basic - ${imperiumAntivirusStatus.BasicDailyCost:N0}/day"); } if ((Object)(object)_premiumLabel != (Object)null) { _premiumLabel.text = ((text4 == "premium") ? "Premium Active" : $"Premium - ${imperiumAntivirusStatus.PremiumDailyCost:N0}/day"); } if ((Object)(object)_basicButton != (Object)null) { ((Selectable)_basicButton).interactable = imperiumAntivirusStatus.Enabled && !imperiumAntivirusStatus.SubscriptionActive && text4 != "premium"; } if ((Object)(object)_premiumButton != (Object)null) { ((Selectable)_premiumButton).interactable = imperiumAntivirusStatus.Enabled && text4 != "premium"; } if ((Object)(object)_scanButton != (Object)null) { ((Selectable)_scanButton).interactable = imperiumAntivirusStatus.Enabled && imperiumAntivirusStatus.SubscriptionActive && !imperiumAntivirusStatus.ScanInProgress; } if ((Object)(object)_scanLabel != (Object)null) { _scanLabel.text = (imperiumAntivirusStatus.ScanInProgress ? "Scanning..." : "Scan Device"); } if ((Object)(object)_resultsButtonRoot != (Object)null) { _resultsButtonRoot.SetActive(imperiumAntivirusStatus.Enabled && imperiumAntivirusStatus.ScanResultsAvailable); } if ((Object)(object)_resultsButton != (Object)null) { ((Selectable)_resultsButton).interactable = imperiumAntivirusStatus.Enabled && imperiumAntivirusStatus.ScanResultsAvailable && !imperiumAntivirusStatus.ScanInProgress; } if ((Object)(object)_resultsLabel != (Object)null) { _resultsLabel.text = (flag2 ? "Results Open" : "Scanned Results"); } if ((Object)(object)_unsubscribeButton != (Object)null) { ((Selectable)_unsubscribeButton).interactable = imperiumAntivirusStatus.Enabled && imperiumAntivirusStatus.SubscriptionActive && !imperiumAntivirusStatus.SubscriptionCancelled; } if ((Object)(object)_unsubscribeLabel != (Object)null) { _unsubscribeLabel.text = (imperiumAntivirusStatus.SubscriptionCancelled ? "Renewal Cancelled" : "Unsubscribe"); } } private void Update() { ApplyPortraitCanvasLayout(force: false); UpdateFingerprintVerification(); if (_wasScanning && (Object)(object)_scanText != (Object)null) { _scanText.text = BuildScanStatus(SIAKImperiumMod.Service.GetSnapshot().Antivirus ?? new ImperiumAntivirusStatus()); } if (_lastStateVersion != SIAKImperiumMod.Service.StateVersion && !ImperiumAppController.IsImperiumTextInputFocused()) { RefreshNow(); } } private void OnDisable() { _verifiedPlayerName = string.Empty; _resultsVisible = false; _fingerprintHeldSeconds = 0f; _scanAnimationStartedAt = -1f; } private void UpdateFingerprintVerification() { //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)_loginRoot == (Object)null || !_loginRoot.activeInHierarchy || (Object)(object)_fingerprintButton == (Object)null) { return; } GameObject val = (((Object)(object)EventSystem.current != (Object)null) ? EventSystem.current.currentSelectedGameObject : null); RectTransform component = ((Component)_fingerprintButton).GetComponent<RectTransform>(); bool flag = (Object)(object)component != (Object)null && RectTransformUtility.RectangleContainsScreenPoint(component, Vector2.op_Implicit(Input.mousePosition), (Camera)null); if (!Input.GetMouseButton(0) || (!flag && (!((Object)(object)val != (Object)null) || (!((Object)(object)val == (Object)(object)((Component)_fingerprintButton).gameObject) && !val.transform.IsChildOf(((Component)_fingerprintButton).transform))))) { _fingerprintHeldSeconds = 0f; SetFingerprintScanProgress(0f); return; } ImperiumStatusSnapshot snapshot = SIAKImperiumMod.Service.GetSnapshot(); string text = snapshot.PlayerName?.Trim() ?? string.Empty; InputField? playerNameInput = _playerNameInput; string text2 = ((playerNameInput == null) ? null : playerNameInput.text?.Trim()) ?? string.Empty; if (string.IsNullOrWhiteSpace(text) || !string.Equals(text2, text, (StringComparison)5)) { _fingerprintHeldSeconds = 0f; SetFingerprintScanProgress(0f); if ((Object)(object)_loginHint != (Object)null) { _loginHint.text = "Enter your exact current Imperium player name first."; } return; } _fingerprintHeldSeconds += Time.unscaledDeltaTime; SetFingerprintScanProgress(Mathf.Clamp01(_fingerprintHeldSeconds / 1.25f)); if (!(_fingerprintHeldSeconds < 1.25f)) { _verifiedPlayerName = text; _fingerprintHeldSeconds = 0f; SetFingerprintScanProgress(1f); RefreshNow(); } } private void ApplyPortraitCanvasLayout(bool force) { //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)_portraitContainer == (Object)null) && !((Object)(object)_portraitRoot == (Object)null)) { Rect rect = _portraitContainer.rect; Vector2 size = ((Rect)(ref rect)).size; if (!(size.x < 1f) && !(size.y < 1f) && (force || !(Vector2.SqrMagnitude(size - _lastPortraitContainerSize) < 0.25f))) { _portraitRoot.anchorMin = Vector2.zero; _portraitRoot.anchorMax = Vector2.one; _portraitRoot.pivot = new Vector2(0.5f, 0.5f); _portraitRoot.sizeDelta = Vector2.zero; _portraitRoot.anchoredPosition = Vector2.zero; ((Transform)_portraitRoot).localRotation = Quaternion.identity; ((Transform)_portraitRoot).localScale = Vector3.one; _lastPortraitContainerSize = size; } } } private void SetFingerprintScanProgress(float progress) { //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)_fingerprintScannerBackground == (Object)null)) { float num = Mathf.Clamp01(progress); Color val = default(Color); ((Color)(ref val))..ctor(0.025f, 0.105f, 0.078f, 1f); Color val2 = default(Color); ((Color)(ref val2))..ctor(0.02f, 0.3f, 0.66f, 1f); ((Graphic)_fingerprintScannerBackground).color = Color.Lerp(val, val2, num); if ((Object)(object)_fingerprintArtwork != (Object)null) { ((Graphic)_fingerprintArtwork).color = Color.Lerp(new Color(0.58f, 0.69f, 0.64f, 1f), new Color(0.16f, 0.67f, 1f, 1f), num); } } } private static Text CreateInfectionText(string name, Transform parent, float anchorY) { //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) Text val = UIFactory.Text(name, string.Empty, parent, 19, (TextAnchor)3, (FontStyle)1); Stretch(((Component)val).GetComponent<RectTransform>(), new Vector2(0.08f, anchorY), new Vector2(0.92f, anchorY + 0.08f), Vector2.zero, Vector2.zero); return val; } private static void SetInfectionText(Text? text, string label, float value, bool visible) { //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)text == (Object)null)) { ((Component)text).gameObject.SetActive(visible); if (visible) { float num = Mathf.Clamp(value, 0f, 100f); text.text = label + ": " + num.ToString("0.##", (IFormatProvider)(object)CultureInfo.InvariantCulture) + "%"; ((Graphic)text).color = ((num <= 0.01f) ? new Color(0.32f, 0.9f, 0.52f) : ((num >= 80f) ? new Color(1f, 0.32f, 0.28f) : new Color(1f, 0.78f, 0.24f))); } } } [HideFromIl2Cpp] private string BuildScanStatus(ImperiumAntivirusStatus antivirus) { if (antivirus.ScanInProgress) { if (_scanAnimationStartedAt < 0f) { _scanAnimationStartedAt = Time.unscaledTime; } float num = Mathf.Max(0f, Time.unscaledTime - _scanAnimationStartedAt); return "> IMPERIUM AAV TERMINAL\n> " + (Mathf.FloorToInt(num * 1.7f) % 5) switch { 0 => "[NET] secure scanner handshake ........ ACTIVE", 1 => "[SYS] verifying application signatures .. ACTIVE", 2 => "[MEM] tracing hostile process markers ... ACTIVE", 3 => "[FS ] mapping encrypted device sectors .. ACTIVE", _ => "[KEY] sealing authenticated report ...... ACTIVE", } + "\n> SCAN RUNNING IN BACKGROUND\n> REPORT DUE " + FormatLocalTime(antivirus.ScanCompleteAt); } _scanAnimationStartedAt = -1f; if (antivirus.ScanResultsAvailable) { return _resultsVisible ? ("> VERIFIED REPORT DECRYPTED\n> SCAN COMPLETED " + FormatLocalTime(antivirus.LastScanCompletedAt) + "\n> THREAT STATUS DISPLAYED BELOW") : "> VERIFIED REPORT SEALED\n> SELECT SCANNED RESULTS TO DECRYPT CURRENT THREAT STATUS"; } return antivirus.SubscriptionActive ? "> TERMINAL READY\n> NO AUTHENTICATED SCAN REPORT IS STORED FOR THIS DEVICE\n> RUN SCAN DEVICE TO GENERATE A CURRENT REPORT" : "> TERMINAL LOCKED\n> A BASIC OR PREMIUM SUBSCRIPTION IS REQUIRED FOR DEVICE SCANS"; } private static string FormatLocalTime(string rawTimestamp) { System.DateTime dateTime = default(System.DateTime); return System.DateTime.TryParse(rawTimestamp, (IFormatProvider)(object)CultureInfo.InvariantCulture, (DateTimeStyles)128, ref dateTime) ? dateTime.ToLocalTime().ToString("HH:mm:ss", (IFormatProvider)(object)CultureInfo.InvariantCulture) : "soon"; } private static InputField CreateInputField(string name, Transform parent, string placeholderText, int fontSize) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_0106: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) GameObject val = UIFactory.Panel(name, parent, new Color(0.04f, 0.08f, 0.07f), (Vector2?)null, (Vector2?)null, false); InputField val2 = val.AddComponent<InputField>(); ((Selectable)val2).targetGraphic = (Graphic)(object)val.GetComponent<Image>(); ((Selectable)val2).interactable = true; val2.readOnly = false; val2.customCaretColor = true; val2.caretColor = Color.white; val2.caretWidth = 2; Text val3 = UIFactory.Text("Text", string.Empty, val.transform, fontSize, (TextAnchor)3, (FontStyle)0); val3.font = Resources.GetBuiltinResource<Font>("Arial.ttf"); ((Graphic)val3).raycastTarget = false; Stretch(((Component)val3).GetComponent<RectTransform>(), Vector2.zero, Vector2.one, new Vector2(10f, 0f), new Vector2(-10f, 0f)); Text val4 = UIFactory.Text("Placeholder", placeholderText, val.transform, Math.Max(14, fontSize - 1), (TextAnchor)3, (FontStyle)2); ((Graphic)val4).color = new Color(0.54f, 0.65f, 0.6f); ((Graphic)val4).raycastTarget = false; Stretch(((Component)val4).GetComponent<RectTransform>(), Vector2.zero, Vector2.one, new Vector2(10f, 0f), new Vector2(-10f, 0f)); val2.textComponent = val3; val2.placeholder = (Graphic)(object)val4; ImperiumAppController.RegisterImperiumInput(val2); return val2; } private static void Stretch(RectTransform rect, Vector2 anchorMin, Vector2 anchorMax, Vector2 offsetMin, Vector2 offsetMax) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) rect.anchorMin = anchorMin; rect.anchorMax = anchorMax; rect.offsetMin = offsetMin; rect.offsetMax = offsetMax; } } internal static class ImperiumAntivirusUiSprites { private static Sprite? _ring; private static Sprite? _disc; internal static Sprite Ring => _ring ?? (_ring = CreateCircleSprite(ring: true)); internal static Sprite Disc => _disc ?? (_disc = CreateCircleSprite(ring: false)); private static Sprite CreateCircleSprite(bool ring) { //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Expected O, but got Unknown //IL_016f: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) Color32[] array = (Color32[])(object)new Color32[262144]; float num = 255.5f; float num2 = num - 2f; float num3 = num2 - 13f; for (int i = 0; i < 512; i++) { float num4 = (float)i - num; for (int j = 0; j < 512; j++) { float num5 = (float)j - num; float num6 = Mathf.Sqrt(num5 * num5 + num4 * num4); float num7 = Mathf.Clamp01((num2 - num6 + 1.75f) / 1.75f); float num8 = num7; if (ring) { float num9 = Mathf.Clamp01((num6 - num3 + 1.75f) / 1.75f); num8 = Mathf.Min(num7, num9); } array[i * 512 + j] = new Color32((byte)255, (byte)255, (byte)255, (byte)Mathf.RoundToInt(num8 * 255f)); } } Texture2D val = new Texture2D(512, 512, (TextureFormat)4, false) { name = (ring ? "ImperiumAntivirusRing" : "ImperiumAntivirusDisc"), filterMode = (FilterMode)1, wrapMode = (TextureWrapMode)1, hideFlags = (HideFlags)61 }; val.SetPixels32(Il2CppStructArray<Color32>.op_Implicit(array)); val.Apply(false, true); Sprite val2 = Sprite.Create(val, new Rect(0f, 0f, 512f, 512f), new Vector2(0.5f, 0.5f), 100f); ((Object)val2).name = ((Object)val).name + "Sprite"; ((Object)val2).hideFlags = (HideFlags)61; return val2; } } internal sealed class ImperiumAntivirusWebController : MonoBehaviour { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static Action <>9__12_0; public static Action <>9__12_1; public static Action <>9__12_2; internal void <Initialize>b__12_0() { SIAKImperiumMod.Service.SubscribeAntivirus("basic"); } internal void <Initialize>b__12_1() { SIAKImperiumMod.Service.SubscribeAntivirus("premium"); } internal void <Initialize>b__12_2() { SIAKImperiumMod.Service.UnsubscribeAntivirus(); } } private ImperiumHtmlDocument? _document; private RectTransform? _canvasContainer; private RectTransform? _canvasRoot; private Vector2 _lastCanvasContainerSize; private string _verifiedPlayerName = string.Empty; private int _lastStateVersion = -1; private float _scanAnimationStartedAt = -1f; private bool _wasScanning; private bool _resultsVisible; private bool _showingPlans; private bool _cleanCompletionRefreshQueued; public ImperiumAntivirusWebController(System.IntPtr pointer) : base(pointer) { } public bool Initialize(GameObject root, GameObject container) { //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Expected O, but got Unknown //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Expected O, but got Unknown //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Expected O, but got Unknown //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Expected O, but got Unknown //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Expected O, but got Unknown //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Expected O, but got Unknown //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Expected O, but got Unknown //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_013c: Expected O, but got Unknown //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Expected O, but got Unknown //IL_0196: Unknown result type (might be due to invalid IL or missing references) try { _canvasRoot = root.GetComponent<RectTransform>(); _canvasContainer = container.GetComponent<RectTransform>(); ApplyCanvasLayout(force: true); Dictionary<string, Action> obj = new Dictionary<string, Action>((IEqualityComparer<string>)(object)StringComparer.Ordinal) { ["antivirus.verify"] = new Action(VerifyIdentity) }; object obj2 = <>c.<>9__12_0; if (obj2 == null) { Action val = delegate { SIAKImperiumMod.Service.SubscribeAntivirus("basic"); }; <>c.<>9__12_0 = val; obj2 = (object)val; } obj["antivirus.basic"] = (Action)obj2; object obj3 = <>c.<>9__12_1; if (obj3 == null) { Action val2 = delegate { SIAKImperiumMod.Service.SubscribeAntivirus("premium"); }; <>c.<>9__12_1 = val2; obj3 = (object)val2; } obj["antivirus.premium"] = (Action)obj3; obj["antivirus.scan"] = new Action(StartScan); obj["antivirus.results"] = new Action(ShowResults); object obj4 = <>c.<>9__12_2; if (obj4 == null) { Action val3 = delegate { SIAKImperiumMod.Service.UnsubscribeAntivirus(); }; <>c.<>9__12_2 = val3; obj4 = (object)val3; } obj["antivirus.unsubscribe"] = (Action)obj4; obj["antivirus.plans"] = new Action(ShowPlans); obj["antivirus.back"] = new Action(ShowDashboard); obj["antivirus.clean"] = new Action(StartDeepClean); Dictionary<string, Action> actions = obj; string html = ImperiumAssets.LoadEmbeddedText("interface/antivirus/index.html"); string css = ImperiumAssets.LoadEmbeddedText("interface/antivirus/styles.css"); string script = ImperiumAssets.LoadEmbeddedText("interface/antivirus/app.js"); _document = ImperiumWebUiRuntime.TryRender(root.transform, html, css, script, (IReadOnlyDictionary<string, Action>?)(object)actions, out string error, ImperiumInterfaceSurface.Landscape); if (_document == null) { throw new InvalidOperationException("Antivirus HTML renderer unavailable: " + error); } ApplyCanvasLayout(force: true); _document.RefreshLayout(); RefreshNow(); return true; } catch (System.Exception ex) { _document?.Dispose(); _document = null; Instance? modLogger = SIAKImperiumMod.ModLogger; if (modLogger != null) { modLogger.Warning("[Imperium UI] Antivirus HTML renderer failed; using legacy UI instead: " + ex.Message); } return false; } } public void RefreshNow() { //IL_01ba: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Unknown result type (might be due to invalid IL or missing references) if (_document == null) { return; } ImperiumService service = SIAKImperiumMod.Service; ImperiumStatusSnapshot snapshot = service.GetSnapshot(); _lastStateVersion = service.StateVersion; ImperiumAntivirusStatus imperiumAntivirusStatus = snapshot.Antivirus ?? new ImperiumAntivirusStatus(); ImperiumAntivirusApp.RefreshAvailability(imperiumAntivirusStatus); if (!imperiumAntivirusStatus.ScanResultsAvailable) { _resultsVisible = false; } string text = snapshot.PlayerName?.Trim() ?? string.Empty; bool flag = !string.IsNullOrWhiteSpace(_verifiedPlayerName); _document.SetText("verified-identity", string.IsNullOrWhiteSpace(text) ? "Identity synchronizing..." : text); _document.SetVisible("login-view", !flag); _document.SetVisible("main-view", flag && !_showingPlans); _document.SetVisible("plans-view", flag && _showingPlans); if (!flag) { _document.SetText("login-hint", string.IsNullOrWhiteSpace(text) ? "Imperium identity is not ready yet." : "Verification protects this device from unauthorised antivirus changes."); return; } string value = ((!imperiumAntivirusStatus.Enabled) ? "APPLICATION UNAVAILABLE\nImperium Architects have temporarily recalled this application." : (imperiumAntivirusStatus.RansomwareLocked ? "DEVICE ENCRYPTED\nResolve the active ransom through the stock Messages app." : (imperiumAntivirusStatus.SpywareExtortionActive ? "HOSTILE ACTOR ACTIVE\nA Spyware source remains active even if a scan lowers the device risk." : (imperiumAntivirusStatus.SubscriptionActive ? "Device protection is active for this user." : "Your device is unprotected. We recommend protection immediately.")))); _document.SetText("antivirus-status", value); _document.SetTextColor("antivirus-status", (Color)((!imperiumAntivirusStatus.Enabled || imperiumAntivirusStatus.RansomwareLocked) ? new Color(1f, 0.35f, 0.32f) : Color.white)); if (imperiumAntivirusStatus.ScanInProgress && !_wasScanning) { _scanAnimationStartedAt = Time.unscaledTime; } _wasScanning = imperiumAntivirusStatus.ScanInProgress; _document.SetText("scan-log", BuildScanStatus(imperiumAntivirusStatus)); _document.SetVisible("scan-progress", imperiumAntivirusStatus.ScanInProgress); _document.SetVisible("scan-sweep", imperiumAntivirusStatus.ScanInProgress); if (imperiumAntivirusStatus.ScanInProgress) { AnimateScan(imperiumAntivirusStatus); } bool flag2 = _resultsVisible && imperiumAntivirusStatus.ScanResultsAvailable && !imperiumAntivirusStatus.ScanInProgress; SetInfectionText("malware-value", "Malware", imperiumAntivirusStatus.MalwarePercent, flag2); SetInfectionText("spyware-value", "Spyware", imperiumAntivirusStatus.SpywarePercent, flag2); SetInfectionText("ransomware-value", "Ransomware", imperiumAntivirusStatus.RansomwarePercent, flag2); _document.SetVisible("threat-results", flag2); string text2 = imperiumAntivirusStatus.SubscriptionTier?.Trim().ToLowerInvariant() ?? string.Empty; _document.SetText("basic-action", (text2 == "basic") ? "Basic Active" : $"Basic - ${imperiumAntivirusStatus.BasicDailyCost:N0}/day"); _document.SetText("premium-action", (text2 == "premium") ? "Premium Active" : $"Premium - ${imperiumAntivirusStatus.PremiumDailyCost:N0}/day"); _document.SetText("basic-plan-price", $"Basic / ${imperiumAntivirusStatus.BasicDailyCost:N0} per game day"); _document.SetText("premium-plan-price", $"Premium / ${imperiumAntivirusStatus.PremiumDailyCost:N0} per game day"); _document.SetText("scan-action", imperiumAntivirusStatus.ScanInProgress ? "Scanning..." : "Scan Device"); _document.SetText("results-action", flag2 ? "Results Open" : "Scanned Results"); _document.SetText("unsubscribe-action", imperiumAntivirusStatus.SubscriptionCancelled ? "Renewal Cancelled" : "Unsubscribe"); int num = Math.Max(0, imperiumAntivirusStatus.Settings?.FullCleanCost ?? 3000); int seconds = Math.Max(1, imperiumAntivirusStatus.Settings?.FullCleanSeconds ?? 240); float num2 = CalculateTimedProgress(imperiumAntivirusStatus.CleanStartedAt, imperiumAntivirusStatus.CleanCompleteAt); _document.SetText("clean-price", $"Deep Clean / ${num:N0}"); _document.SetText("clean-description", imperiumAntivirusStatus.CleanInProgress ? ("Recovery is running in the background. Completion: " + FormatLocalTime(imperiumAntivirusStatus.CleanCompleteAt)) : ("Removes all tracked infection through a " + FormatDuration(seconds) + " secure recovery cycle.")); _document.SetText("clean-action", imperiumAntivirusStatus.CleanInProgress ? $"Cleaning {Mathf.Clamp(Mathf.FloorToInt(num2 * 100f), 1, 99)}%" : $"Start / ${num:N0}"); _document.SetVisible("clean-progress", imperiumAntivirusStatus.CleanInProgress); _document.SetProgress("clean-progress", num2); _document.SetInteractable("basic-action", imperiumAntivirusStatus.Enabled && !imperiumAntivirusStatus.SubscriptionActive && text2 != "premium"); _document.SetInteractable("premium-action", imperiumAntivirusStatus.Enabled && text2 != "premium"); _document.SetInteractable("scan-action", imperiumAntivirusStatus.Enabled && imperiumAntivirusStatus.SubscriptionActive && !imperiumAntivirusStatus.ScanInProgress); _document.SetVisible("results-action", imperiumAntivirusStatus.Enabled && imperiumAntivirusStatus.ScanResultsAvailable); _document.SetInteractable("results-action", imperiumAntivirusStatus.Enabled && imperiumAntivirusStatus.ScanResultsAvailable && !imperiumAntivirusStatus.ScanInProgress); _document.SetInteractable("unsubscribe-action", imperiumAntivirusStatus.Enabled && imperiumAntivirusStatus.SubscriptionActive && !imperiumAntivirusStatus.SubscriptionCancelled); _document.SetInteractable("clean-action", imperiumAntivirusStatus.Enabled && imperiumAntivirusStatus.Installed && !imperiumAntivirusStatus.CleanInProgress); } private void StartScan() { _resultsVisible = false; SIAKImperiumMod.Service.ScanWithAntivirus(); RefreshNow(); } private void ShowResults() { _resultsVisible = true; RefreshNow(); } private void ShowPlans() { _showingPlans = true; RefreshNow(); } private void ShowDashboard() { _showingPlans = false; RefreshNow(); } private void StartDeepClean() { SIAKImperiumMod.Service.DeepCleanWithAntivirus(); RefreshNow(); } private void Update() { if (_document != null && !_document.IsVisible) { return; } if (ApplyCanvasLayout(force: false)) { _document?.RefreshLayout(); } else { ImperiumHtmlDocument? document = _document; if (document != null && document.RefreshViewport()) { _document.RefreshLayout(); } } if (_document == null) { return; } if (_wasScanning) { ImperiumAntivirusStatus antivirus = SIAKImperiumMod.Service.GetSnapshot().Antivirus ?? new ImperiumAntivirusStatus(); _document.SetText("scan-log", BuildScanStatus(antivirus)); AnimateScan(antivirus); } ImperiumAntivirusStatus imperiumAntivirusStatus = SIAKImperiumMod.Service.GetSnapshot().Antivirus ?? new ImperiumAntivirusStatus(); if (imperiumAntivirusStatus.CleanInProgress) { float num = CalculateTimedProgress(imperiumAntivirusStatus.CleanStartedAt, imperiumAntivirusStatus.CleanCompleteAt); _document.SetProgress("clean-progress", num); _document.SetText("clean-action", $"Cleaning {Mathf.Clamp(Mathf.FloorToInt(num * 100f), 1, 99)}%"); if (num >= 0.999f && !_cleanCompletionRefreshQueued) { _cleanCompletionRefreshQueued = true; SIAKImperiumMod.Service.QueueImmediateRefresh(); } } else { _cleanCompletionRefreshQueued = false; } if (_lastStateVersion != SIAKImperiumMod.Service.StateVersion && !ImperiumAppController.IsImperiumTextInputFocused()) { RefreshNow(); } } private void OnEnable() { if (_document != null) { ApplyCanvasLayout(force: true); _document.RefreshLayout(); RefreshNow(); } } private void OnDisable() { _verifiedPlayerName = string.Empty; _resultsVisible = false; _showingPlans = false; _cleanCompletionRefreshQueued = false; _scanAnimationStartedAt = -1f; _lastStateVersion = -1; } private void OnDestroy() { _document?.Dispose(); _document = null; } private void VerifyIdentity() { string text = SIAKImperiumMod.Service.GetSnapshot().PlayerName?.Trim() ?? string.Empty; if (text.Length == 0) { _document?.SetText("login-hint", "Identity is synchronizing. Try again shortly."); return; } _verifiedPlayerName = text; RefreshNow(); } private bool ApplyCanvasLayout(bool force) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)_canvasContainer == (Object)null || (Object)(object)_canvasRoot == (Object)null) { return false; } Canvas.ForceUpdateCanvases(); Rect rect = _canvasContainer.rect; Vector2 size = ((Rect)(ref rect)).size; if (size.x < 1f || size.y < 1f || (!force && Vector2.SqrMagnitude(size - _lastCanvasContainerSize) < 0.25f)) { return false; } _canvasRoot.anchorMin = Vector2.zero; _canvasRoot.anchorMax = Vector2.one; _canvasRoot.pivot = new Vector2(0.5f, 0.5f); _canvasRoot.sizeDelta = Vector2.zero; _canvasRoot.anchoredPosition = Vector2.zero; ((Transform)_canvasRoot).localRotation = Quaternion.identity; ((Transform)_canvasRoot).localScale = Vector3.one; _lastCanvasContainerSize = size; return true; } [HideFromIl2Cpp] private void AnimateScan(ImperiumAntivirusStatus antivirus) { if (antivirus.ScanInProgress) { _document?.SetProgress("scan-progress", CalculateScanProgress(antivirus)); } } [HideFromIl2Cpp] private static float CalculateScanProgress(ImperiumAntivirusStatus antivirus) { return CalculateTimedProgress(antivirus.ScanStartedAt, antivirus.ScanCompleteAt, 0.05f); } private static float CalculateTimedProgress(string startedAt, string completeAt, float fallback = 0f) { //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) System.DateTime dateTime = default(System.DateTime); System.DateTime dateTime2 = default(System.DateTime); if (!System.DateTime.TryParse(startedAt, (IFormatProvider)(object)CultureInfo.InvariantCulture, (DateTimeStyles)128, ref dateTime) || !System.DateTime.TryParse(completeAt, (IFormatProvider)(object)CultureInfo.InvariantCulture, (DateTimeStyles)128, ref dateTime2)) { return fallback; } TimeSpan val = dateTime2.ToUniversalTime() - dateTime.ToUniversalTime(); double totalSeconds = ((TimeSpan)(ref val)).TotalSeconds; if (totalSeconds <= 0.1) { return 1f; } val = System.DateTime.UtcNow - dateTime.ToUniversalTime(); double totalSeconds2 = ((TimeSpan)(ref val)).TotalSeconds; return Mathf.Clamp01((float)(totalSeconds2 / totalSeconds)); } private void SetInfectionText(string id, string label, float value, bool visible) { //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) if (_document != null) { _document.SetVisible(id, visible); if (visible) { float num = Mathf.Clamp(value, 0f, 100f); _document.SetText(id, label + ": " + num.ToString("0.##", (IFormatProvider)(object)CultureInfo.InvariantCulture) + "%"); _document.SetTextColor(id, (num <= 0.01f) ? new Color(0.32f, 0.9f, 0.52f) : ((num >= 80f) ? new Color(1f, 0.32f, 0.28f) : new Color(1f, 0.78f, 0.24f))); } } } [HideFromIl2Cpp] private string BuildScanStatus(ImperiumAntivirusStatus antivirus) { if (antivirus.ScanInProgress) { if (_scanAnimationStartedAt < 0f) { _scanAnimationStartedAt = Time.unscaledTime; } float num = Mathf.Max(0f, Time.unscaledTime - _scanAnimationStartedAt); int num2 = Mathf.FloorToInt(num * 2.2f) % 8; string text = num2 switch { 0 => "enumerating process table", 1 => "reading volatile memory", 2 => "mapping encrypted sectors", 3 => "validating message payloads", 4 => "tracing network sockets", 5 => "checking persistence keys", 6 => "comparing threat signatures", _ => "sealing diagnostic report", }; string text2 = (num2 % 3) switch { 0 => "[> ]", 1 => "[>> ]", _ => "[>>>]", }; int num3 = Mathf.FloorToInt(num * 3f); int num4 = 61 + PositiveModulo(num3 * 17, 38); int num5 = 18 + PositiveModulo(num3 * 23, 81); int num6 = 970 + PositiveModulo(num3 * 13, 30); int num7 = 640 + PositiveModulo(num3 * 211, 3456); int num8 = 72 + PositiveModulo(num3 * 19, 27); return string.Concat(new string[10] { "C:\\IMPERIUM\\AAV\\NODE-01\n|-- core\\\n| |-- kernel.sig .............. VERIFIED\n| |-- identity.key ............ SEALED\n| `-- scanner.engine .......... ONLINE\n|-- device\\\n| |-- memory\\heap ............. READ\n| |-- filesystem\\messages .... MAPPED\n| |-- filesystem\\applications MAPPED\n| `-- network\\active .......... INSPECT\n|-- live\\\n", $"| |-- {text2} {text}\n", $"| |-- entropy pool ............. {num4}%\n", $"| |-- memory sweep ............. {num5}%\n", $"| |-- signature blocks ......... {num7}/4096\n", $"| |-- packet integrity ......... {(float)num6 / 10f:0.0}%\n", $"| |-- heuristic confidence ..... {num8}%\n", "| `-- completion .............. ", FormatLocalTime(antivirus.ScanCompleteAt), "\n`-- report\\threat-matrix.tmp" }); } _scanAnimationStartedAt = -1f; if (antivirus.ScanResultsAvailable) { return _resultsVisible ? ("C:\\IMPERIUM\\AAV\\REPORT\n|-- manifest\\\n| |-- status ................. DECRYPTED\n| |-- completed .............. " + FormatLocalTime(antivirus.LastScanCompletedAt) + "\n| `-- integrity .............. VERIFIED\n`-- threat-matrix\\\n `-- DISPLAYED BELOW") : "C:\\IMPERIUM\\AAV\\REPORT\n|-- manifest\\\n| |-- status ................. SEALED\n| |-- integrity .............. VERIFIED\n| `-- encryption ............. IMPERIUM-AES\n`-- action\\\n `-- OPEN SCANNED RESULTS"; } return antivirus.SubscriptionActive ? "C:\\IMPERIUM\\AAV\n|-- services\\\n| |-- realtime.guard ......... ONLINE\n| |-- signature.monitor ...... ONLINE\n| `-- hostile.interceptor .... ARMED\n|-- reports\\\n| `-- no sealed report\n`-- action\\\n `-- RUN DEVICE SCAN" : "C:\\IMPERIUM\\AAV\n|-- services\\\n| |-- realtime.guard ......... STANDBY\n| |-- signature.monitor ...... LOCKED\n| `-- hostile.interceptor .... LOCKED\n`-- required\\\n `-- BASIC OR PREMIUM PLAN"; } private static int PositiveModulo(int value, int modulus) { int num = value % modulus; return (num < 0) ? (num + modulus) : num; } private static string FormatDuration(int seconds) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) TimeSpan val = TimeSpan.FromSeconds((double)Math.Max(1, seconds)); if (!(((TimeSpan)(ref val)).TotalMinutes >= 1.0)) { return $"{Math.Max(1, seconds)}-second"; } return $"{Math.Ceiling(((TimeSpan)(ref val)).TotalMinutes):0}-minute"; } private static string FormatLocalTime(string rawTimestamp) { System.DateTime dateTime = default(System.DateTime); return System.DateTime.TryParse(rawTimestamp, (IFormatProvider)(object)CultureInfo.InvariantCulture, (DateTimeStyles)128, ref dateTime) ? dateTime.ToLocalTime().ToString("HH:mm:ss", (IFormatProvider)(object)CultureInfo.InvariantCulture) : "soon"; } } public sealed class ImperiumApp : PhoneApp { private static ImperiumApp? _instance; private static GameObject? _iconRoot; private static readonly Action OpenFromLauncherAction = new Action(OpenFromLauncher); private static readonly Color BackgroundColor = new Color(0.08f, 0.09f, 0.11f); private static readonly Color SidebarColor = new Color(0.11f, 0.12f, 0.15f); private static readonly Color PanelColor = new Color(0.13f, 0.15f, 0.19f); private static readonly Color PanelAltColor = new Color(0.1f, 0.12f, 0.16f); private static readonly Color AccentColor = new Color(1f, 0.85f, 0.45f); private static Sprite? _notificationBadgeSprite; protected override string AppName => "SIAKImperiumApp"; protected override string AppTitle => "[S.I.A.K] Imperium"; protected override string IconLabel => "Imperium"; protected override string IconFileName => string.Empty; protected override Sprite? IconSprite => ImperiumAssets.LoadAppIconSprite(); protected override EOrientation Orientation => (EOrientation)0; protected override void OnCreatedUI(GameObject container) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) _instance = this; GameObject val = UIFactory.Panel("ImperiumWebRoot", container.transform, BackgroundColor, (Vector2?)null, (Vector2?)null, true); RectTransform component = val.GetComponent<RectTransform>(); component.anchorMin = Vector2.zero; component.anchorMax = Vector2.one; component.offsetMin = Vector2.zero; component.offsetMax = Vector2.zero; ((Transform)component).localScale = Vector3.one; RectMask2D val2 = val.AddComponent<RectMask2D>(); ((Behaviour)val2).enabled = true; ImperiumWebAppController imperiumWebAppController = val.AddComponent<ImperiumWebAppController>(); if (!imperiumWebAppController.Initialize(val)) { Object.DestroyImmediate((Object)(object)val); ShowRendererFailure(container, ImperiumWebUiRuntime.Failure); } } internal static void EnsureLauncherVisible() { if (_instance != null) { _iconRoot = ImperiumPhoneLauncherRecovery.Ensure(_iconRoot, "SIAKImperiumApp", "Imperium", ImperiumAssets.LoadAppIconSprite(), OpenFromLauncherAction); if ((Object)(object)_iconRoot != (Object)null) { _iconRoot.SetActive(ImperiumManagedApplications.IsEnabled("imperium")); } } } private static void OpenFromLauncher() { if (ImperiumManagedApplications.IsEnabled("imperium")) { ImperiumApp? instance = _instance; if (instance != null) { ((PhoneApp)instance).OpenApp(); } } } private static void ShowRendererFailure(GameObject container, string reason) { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) GameObject val = UIFactory.Panel("ImperiumRendererFailure", container.transform, BackgroundColor, (Vector2?)null, (Vector2?)null, true); Text val2 = UIFactory.Text("ImperiumRendererFailureTitle", "Imperium interface unavailable", val.transform, 26, (TextAnchor)4, (FontStyle)1); ((Graphic)val2).color = AccentColor; Stretch(((Component)val2).GetComponent<RectTransform>(), new Vector2(0.1f, 0.58f), new Vector2(0.9f, 0.72f), Vector2.zero, Vector2.zero); Text val3 = UIFactory.Text("ImperiumRendererFailureBody", "The embedded Imperium interface could not start. Reinstall the current S.I.A.K Imperium release and restart Schedule I.\n\n" + (string.IsNullOrWhiteSpace(reason) ? string.Empty : reason), val.transform, 15, (TextAnchor)4, (FontStyle)0); ((Graphic)val3).color = new Color(0.82f, 0.87f, 0.94f); Stretch(((Component)val3).GetComponent<RectTransform>(), new Vector2(0.12f, 0.24f), new Vector2(0.88f, 0.56f), Vector2.zero, Vector2.zero); } private void BuildRetiredLegacyUi(GameObject container) { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Expected O, but got Unknown //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Unknown result type (might be due to invalid IL or missing references) //IL_0169: Unknown result type (might be due to invalid IL or missing references) //IL_016e: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01d5: Unknown result type (might be due to invalid IL or missing references) //IL_01da: Unknown result type (might be due to invalid IL or missing references) //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_01f5: Unknown result type (might be due to invalid IL or missing references) //IL_0235: Unknown result type (might be due to invalid IL or missing references) //IL_0262: Unknown result type (might be due to invalid IL or missing references) //IL_02a4: Unknown result type (might be due to invalid IL or missing references) //IL_02c0: Unknown result type (might be due to invalid IL or missing references) //IL_02cf: Unknown result type (might be due to invalid IL or missing references) //IL_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_02d9: Unknown result type (might be due to invalid IL or missing references) //IL_0302: Unknown result type (might be due to invalid IL or missing references) //IL_031e: Unknown result type (might be due to invalid IL or missing references) //IL_032d: Unknown result type (might be due to invalid IL or missing references) //IL_0332: Unknown result type (might be due to invalid IL or missing references) //IL_0337: Unknown result type (might be due to invalid IL or missing references) //IL_036f: Unknown result type (might be due to invalid IL or missing references) //IL_038b: Unknown result type (might be due to invalid IL or missing references) //IL_039a: Unknown result type (might be due to invalid IL or missing references) //IL_039f: Unknown result type (might be due to invalid IL or missing references) //IL_03a4: Unknown result type (might be due to invalid IL or missing references) //IL_03cd: Unknown result type (might be due to invalid IL or missing references) //IL_03e9: Unknown result type (might be due to invalid IL or missing references) //IL_03f8: Unknown result type (might be due to invalid IL or missing references) //IL_03fd: Unknown result type (might be due to invalid IL or missing references) //IL_0402: Unknown result type (might be due to invalid IL or missing references) //IL_042d: Unknown result type (might be due to invalid IL or missing references) //IL_043e: Unknown result type (might be due to invalid IL or missing references) //IL_0443: Unknown result type (might be due to invalid IL or missing references) //IL_0448: Unknown result type (might be due to invalid IL or missing references) //IL_0450: Unknown result type (might be due to invalid IL or missing references) //IL_0470: Unknown result type (might be due to invalid IL or missing references) //IL_047f: Unknown result type (might be due to invalid IL or missing references) //IL_0484: Unknown result type (might be due to invalid IL or missing references) //IL_0489: Unknown result type (might be due to invalid IL or missing references) //IL_04bd: Unknown result type (might be due to invalid IL or missing references) //IL_04ce: Unknown result type (might be due to invalid IL or missing references) //IL_04d3: Unknown result type (might be due to invalid IL or missing references) //IL_04d8: Unknown result type (might be due to invalid IL or missing references) //IL_04e0: Unknown result type (might be due to invalid IL or missing references) //IL_0500: Unknown result type (might be due to invalid IL or missing references) //IL_050f: Unknown result type (might be due to invalid IL or missing references) //IL_0514: Unknown result type (might be due to invalid IL or missing references) //IL_0519: Unknown result type (might be due to invalid IL or missing references) //IL_0555: Unknown result type (might be due to invalid IL or missing references) //IL_0582: Unknown result type (might be due to invalid IL or missing references) //IL_05c4: Unknown result type (might be due to invalid IL or missing references) //IL_05e0: Unknown result type (might be due to invalid IL or missing references) //IL_05ef: Unknown result type (might be due to invalid IL or missing references) //IL_05f4: Unknown result type (might be due to invalid IL or missing references) //IL_05f9: Unknown result type (might be due to invalid IL or missing references) //IL_0622: Unknown result type (might be due to invalid IL or missing references) //IL_063e: Unknown result type (might be due to invalid IL or missing references) //IL_064d: Unknown result type (might be due to invalid IL or missing references) //IL_0652: Unknown result type (might be due to invalid IL or missing references) //IL_0657: Unknown result type (might be due to invalid IL or missing references) //IL_0681: Unknown result type (might be due to invalid IL or missing references) //IL_0690: Unknown result type (might be due to invalid IL or missing references) //IL_0695: Unknown result type (might be due to invalid IL or missing references) //IL_069a: Unknown result type (might be due to invalid IL or missing references) //IL_06c3: Unknown result type (might be due to invalid IL or missing references) //IL_0755: Unknown result type (might be due to invalid IL or missing references) //IL_07ee: Unknown result type (might be due to invalid IL or missing references) //IL_087a: Unknown result type (might be due to invalid IL or missing references) //IL_088b: Unknown result type (might be due to invalid IL or missing references) //IL_0890: Unknown result type (might be due to invalid IL or missing references) //IL_0895: Unknown result type (might be due to invalid IL or missing references) //IL_089d: Unknown result type (might be due to invalid IL or missing references) //IL_08bd: Unknown result type (might be due to invalid IL or missing references) //IL_08cc: Unknown result type (might be due to invalid IL or missing references) //IL_08d1: Unknown result type (might be due to invalid IL or missing references) //IL_08d6: Unknown result type (might be due to invalid IL or missing references) //IL_08f6: Unknown result type (might be due to invalid IL or missing references) //IL_0928: Unknown result type (might be due to invalid IL or missing references) //IL_0937: Unknown result type (might be due to invalid IL or missing references) //IL_093c: Unknown result type (might be due to invalid IL or missing references) //IL_094b: Unknown result type (might be due to invalid IL or missing references) //IL_0974: Unknown result type (might be due to invalid IL or missing references) //IL_0990: Unknown result type (might be due to invalid IL or missing references) //IL_099f: Unknown result type (might be due to invalid IL or missing references) //IL_09ae: Unknown result type (might be due to invalid IL or missing references) //IL_09bd: Unknown result type (might be due to invalid IL or missing references) //IL_09f5: Unknown result type (might be due to invalid IL or missing references) //IL_0a11: Unknown result type (might be due to invalid IL or missing references) //IL_0a20: Unknown result type (might be due to invalid IL or missing references) //IL_0a2f: Unknown result type (might be due to invalid IL or missing references) //IL_0a3e: Unknown result type (might be due to invalid IL or missing references) //IL_0a67: Unknown result type (might be due to invalid IL or missing references) //IL_0a83: Unknown result type (might be due to invalid IL or missing references) //IL_0a92: Unknown result type (might be due to invalid IL or missing references) //IL_0aa1: Unknown result type (might be due to invalid IL or missing references) //IL_0ab0: Unknown result type (might be due to invalid IL or missing references) //IL_0ac7: Unknown result type (might be due to invalid IL or missing references) //IL_0af9: Unknown result type (might be due to invalid IL or missing references) //IL_0b08: Unknown result type (might be due to invalid IL or missing references) //IL_0b17: Unknown result type (might be due to invalid IL or missing references) //IL_0b26: Unknown result type (might be due to invalid IL or missing references) //IL_0b43: Unknown result type (might be due to invalid IL or missing references) //IL_0b48: Unknown result type (might be due to invalid IL or missing references) //IL_0b50: Unknown result type (might be due to invalid IL or missing references) //IL_0b71: Unknown result type (might be due to invalid IL or missing references) //IL_0b76: Unknown result type (might be due to invalid IL or missing references) //IL_0b7e: Unknown result type (might be due to invalid IL or missing references) //IL_0b9f: Unknown result type (might be due to invalid IL or missing references) //IL_0ba4: Unknown result type (might be due to invalid IL or missing references) //IL_0bac: Unknown result type (might be due to invalid IL or missing references) //IL_0bcd: Unknown result type (might be due to invalid IL or missing references) //IL_0bd2: Unknown result type (might be due to invalid IL or missing references) //IL_0bda: Unknown result type (might be due to invalid IL or missing references) //IL_0bfb: Unknown result type (might be due to invalid IL or missing references) //IL_0c00: Unknown result type (might be due to invalid IL or missing references) //IL_0c08: Unknown result type (might be due to invalid IL or missing references) //IL_0c29: Unknown result type (might be due to invalid IL or missing references) //IL_0c2e: Unknown result type (might be due to invalid IL or missing references) //IL_0c36: Unknown result type (might be due to invalid IL or missing references) //IL_0c57: Unknown result type (might be due to invalid IL or missing references) //IL_0c5c: Unknown result type (might be due to invalid IL or missing references) //IL_0c64: Unknown result type (might be due to invalid IL or missing references) //IL_0c85: Unknown result type (might be due to invalid IL or missing references) //IL_0c8a: Unknown result type (might be due to invalid IL or missing references) //IL_0c92: Unknown result type (might be due to invalid IL or missing references) //IL_0cad: Unknown result type (might be due to invalid IL or missing references) //IL_0cb2: Unknown result type (might be due to invalid IL or missing references) //IL_0ccd: Unknown result type (might be due to invalid IL or missing references) //IL_0cd2: Unknown result type (might be due to invalid IL or missing references) //IL_0ced: Unknown result type (might be due to invalid IL or missing references) //IL_0cf2: Unknown result type (might be due to invalid IL or missing references) //IL_0d0d: Unknown result type (might be due to invalid IL or missing references) //IL_0d3f: Unknown result type (might be due to invalid IL or missing references) //IL_0d4e: Unknown result type (might be due to invalid IL or missing references) //IL_0d5d: Unknown result type (might be due to invalid IL or missing references) //IL_0d62: Unknown result type (might be due to invalid IL or missing references) //IL_0d79: Unknown result type (might be due to invalid IL or missing references) //IL_0da6: Unknown result type (might be due to invalid IL or missing references) //IL_0dd8: Unknown result type (might be due to invalid IL or missing references) //IL_0de7: Unknown result type (might be due to invalid IL or missing references) //IL_0df6: Unknown result type (might be due to invalid IL or missing references) //IL_0e05: Unknown result type (might be due to invalid IL or missing references) //IL_0e40: Unknown result type (might be due to invalid IL or missing references) //IL_0e72: Unknown result type (might be due to invalid IL or missing references) //IL_0e81: Unknown result type (might be due to invalid IL or missing references) //IL_0e90: Unknown result type (might be due to invalid IL or missing references) //IL_0e9f: Unknown result type (might be due to invalid IL or missing references) //IL_0ebf: Unknown result type (might be due to invalid IL or missing references) //IL_0ecc: Unknown result type (might be due to invalid IL or missing references) //IL_0f15: Unknown result type (might be due to invalid IL or missing references) //IL_0f1a: Unknown result type (might be due to invalid IL or missing references) //IL_0f29: Unknown result type (might be due to invalid IL or missing references) //IL_0f38: Unknown result type (might be due to invalid IL or missing references) //IL_0f63: Unknown result type (might be due to invalid IL or missing references) //IL_0f74: Unknown result type (might be due to invalid IL or missing references) //IL_0f79: Unknown result type (might be due to invalid IL or missing references) //IL_0f7e: Unknown result type (might be due to invalid IL or missing references) //IL_0f86: Unknown result type (might be due to invalid IL or missing references) //IL_0fa6: Unknown result type (might be due to invalid IL or missing references) //IL_0fb5: Unknown result type (might be due to invalid IL or missing references) //IL_0fc4: Unknown result type (might be due to invalid IL or missing references) //IL_0fd3: Unknown result type (might be due to invalid IL or missing references) //IL_0fea: Unknown result type (might be due to invalid IL or missing references) //IL_101c: Unknown result type (might be due to invalid IL or missing references) //IL_102b: Unknown result type (might be due to invalid IL or missing references) //IL_1030: Unknown result type (might be due to invalid IL or missing references) //IL_1035: Unknown result type (might be due to invalid IL or missing references) //IL_1070: Unknown result type (might be due to invalid IL or missing references) //IL_10af: Unknown result type (might be due to invalid IL or missing references) //IL_10cb: Unknown result type (might be due to invalid IL or missing references) //IL_10da: Unknown result type (might be due to invalid IL or missing references) //IL_10e9: Unknown result type (might be due to invalid IL or missing references) //IL_10f8: Unknown result type (might be due to invalid IL or missing references) //IL_1122: Unknown result type (might be due to invalid IL or missing references) //IL_1131: Unknown result type (might be due to invalid IL or missing references) //IL_1140: Unknown result type (might be due to invalid IL or missing references) //IL_114f: Unknown result type (might be due to invalid IL or missing references) //IL_1166: Unknown result type (might be due to invalid IL or missing references) //IL_11a5: Unknown result type (might be due to invalid IL or missing references) //IL_11c1: Unknown result type (might be due to invalid IL or missing references) //IL_11d0: Unknown result type (might be due to invalid IL or missing references) //IL_11df: Unknown result type (might be due to invalid IL or missing references) //IL_11ee: Unknown result type (might be due to invalid IL or missing references) //IL_1219: Unknown result type (might be due to invalid IL or missing references) //IL_122a: Unknown result type (might be due to invalid IL or missing references) //IL_122f: Unknown result type (might be due to invalid IL or missing references) //IL_1234: Unknown result type (might be due to invalid IL or missing references) //IL_1254: Unknown result type (might be due to invalid IL or missing references) //IL_1263: Unknown result type (might be due to invalid IL or missing references) //IL_1272: Unknown result type (might be due to invalid IL or missing references) //IL_1281: Unknown result type (might be due to invalid IL or missing references) //IL_12ab: Unknown result type (might be due to invalid IL or missing references) //IL_12ba: Unknown result type (might be due to invalid IL or missing references) //IL_12c9: Unknown result type (might be due to invalid IL or missing references) //IL_12d8: Unknown result type (might be due to invalid IL or missing references) //IL_12ef: Unknown result type (might be due to invalid IL or missing references) //IL_131c: Unknown result type (might be due to invalid IL or missing references) //IL_134e: Unknown result type (might be due to invalid IL or missing references) //IL_135d: Unknown result type (might be due to invalid IL or missing references) //IL_1362: Unknown result type (might be due to invalid IL or missing references) //IL_1371: Unknown result type (might be due to invalid IL or missing references) //IL_139a: Unknown result type (might be due to invalid IL or missing references) //IL_13b6: Unknown result type (might be due to invalid IL or missing references) //IL_13c5: Unknown result type (might be due to invalid IL or missing references) //IL_13d4: Unknown result type (might be due to invalid IL or missing references) //IL_13e3: Unknown result type (might be due to invalid IL or missing references) //IL_140d: Unknown result type (might be due to invalid IL or missing references) //IL_141c: Unknown result type (might be due to invalid IL or missing references) //IL_142b: Unknown result type (might be due to invalid IL or missing references) //IL_143a: Unknown result type (might be due to invalid IL or missing references) //IL_1451: Unknown result type (might be due to invalid IL or missing references) //IL_1483: Unknown result type (might be due to invalid IL or missing references) //IL_1492: Unknown result type (might be due to invalid IL or missing references) //IL_14a1: Unknown result type (might be due to invalid IL or missing references) //IL_14a6: Unknown result type (might be due to invalid IL or missing references) //IL_14cf: Unknown result type (might be due to invalid IL or missing references) //IL_14eb: Unknown result type (might be due to invalid IL or missing references) //IL_14fa: Unknown result type (might be due to invalid IL or missing references) //IL_1509: Unknown result type (might be due to invalid IL or missing references) //IL_1518: Unknown result type (might be due to invalid IL or missing references) //IL_1543: Unknown result type (might be due to invalid IL or missing references) //IL_1554: Unknown result type (might be due to invalid IL or missing references) //IL_1559: Unknown result type (might be due to invalid IL or missing references) //IL_155e: Unknown result type (might be due to invalid IL or missing references) //IL_1566: Unknown result type (might be due to invalid IL or missing references) //IL_1586: Unknown result type (might be due to invalid IL or missing references) //IL_1595: Unknown result type (might be due to invalid IL or missing references) //IL_15a4: Unknown result type (might be due to invalid IL or missing references) //IL_15b3: Unknown result type (might be due to invalid IL or missing references) //IL_15dd: Unknown result type (might be due to invalid IL or missing references) //IL_15ec: Unknown result type (might be due to invalid IL or missing references) //IL_15fb: Unknown result type (might be due to invalid IL or missing references) //IL_160a: Unknown result type (might be due to invalid IL or missing references) //IL_163e: Unknown result type (might be due to invalid IL or missing references) //IL_164d: Unknown result type (might be due to invalid IL or missing references) //IL_165c: Unknown result type (might be due to invalid IL or missing references) //IL_166b: Unknown result type (might be due to invalid IL or missing references) //IL_1696: Unknown result type (might be due to invalid IL or missing references) //IL_16a7: Unknown result type (might be due to invalid IL or missing references) //IL_16ac: Unknown result type (might be due to invalid IL or missing references) //IL_16b1: Unknown result type (mig