using System; using System.Collections.Generic; using System.Runtime.CompilerServices; using Dalamud.Game.ClientState.Objects.SubKinds; using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin; using Dalamud.Plugin.Ipc; using Dalamud.Plugin.Ipc.Exceptions; using Dalamud.Plugin.Services; using Lumina.Excel; using Lumina.Excel.Sheets; using Microsoft.Extensions.Logging; using Questionable.Controller.Steps; namespace Questionable.Controller.CombatModules; internal sealed class WrathComboModule : ICombatModule, IDisposable { public enum ESetResult { Okay = 0, OkayWorking = 1, IpcDisabled = 10, InvalidLease = 11, BlacklistedLease = 12, Duplicate = 13, PlayerNotAvailable = 14, InvalidConfiguration = 15, InvalidValue = 16 } public enum AutoRotationConfigOption { InCombatOnly, DPSRotationMode, HealerRotationMode, FATEPriority, QuestPriority, SingleTargetHPP, AoETargetHPP, SingleTargetRegenHPP, ManageKardia, AutoRez, AutoRezDPSJobs, AutoCleanse, IncludeNPCs, OnlyAttackInCombat, OrbwalkerIntegration, AutoRezOutOfParty, DPSAoETargets, SingleTargetExcogHPP, AutoRezDPSJobsHealersOnly, DPSAlwaysHardTarget, HealerAlwaysHardTarget, BypassQuest, BypassFATE, IgnoreRangeInBoss, UnTargetAndDisableForPenalty } public enum HealerRotationMode { Manual, Highest_Current, Lowest_Current } public enum DPSRotationMode { Manual, Highest_Max, Lowest_Max, Highest_Current, Lowest_Current, Tank_Target, Nearest, Furthest } private const string CallbackPrefix = "Questionable$Wrath"; private readonly ILogger _logger; private readonly Configuration _configuration; private readonly IObjectTable _objectTable; private readonly ICallGateSubscriber _test; private readonly ICallGateSubscriber _registerForLeaseWithCallback; private readonly ICallGateSubscriber _releaseControl; private readonly ICallGateSubscriber _setAutoRotationState; private readonly ICallGateSubscriber _setAutoRotationConfigState; private readonly ICallGateSubscriber _setCurrentJobAutoRotationReady; private readonly ICallGateSubscriber?> _getComboNamesForJob; private readonly ICallGateSubscriber _setComboState; private readonly ICallGateProvider _callback; private Guid? _lease; [MethodImpl(MethodImplOptions.NoInlining)] public WrathComboModule(ILogger logger, Configuration configuration, IObjectTable objectTable, IDalamudPluginInterface pluginInterface) { _logger = logger; _configuration = configuration; _objectTable = objectTable; _test = pluginInterface.GetIpcSubscriber(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E(-881363820)); _registerForLeaseWithCallback = pluginInterface.GetIpcSubscriber(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E(-200781622)); _releaseControl = pluginInterface.GetIpcSubscriber(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E(254606733)); _setAutoRotationState = pluginInterface.GetIpcSubscriber(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E(-1072043349)); _setAutoRotationConfigState = pluginInterface.GetIpcSubscriber(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E(920538037)); _setCurrentJobAutoRotationReady = pluginInterface.GetIpcSubscriber(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E(-1662176505)); _getComboNamesForJob = pluginInterface.GetIpcSubscriber>(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E(987268149)); _setComboState = pluginInterface.GetIpcSubscriber(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E(1902147951)); _callback = pluginInterface.GetIpcProvider(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E(-437654203)); _callback.RegisterAction(Callback); } public bool IsAvailable() { int num = ((_configuration.General.CombatModule == Configuration.ECombatModule.WrathCombo) ? (-1348986340) : (-1348986337)); while (true) { int num2 = num; int num3 = -1348986338; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 0: goto IL_0053; case 1: return false; case 2: try { _test.InvokeAction(); return true; } catch (IpcError) { return false; } } continue; IL_0053: num = -1348986337; } } public bool CanHandleFight(CombatController.CombatData combatData) { return IsAvailable(); } bool ICombatModule.CanHandleFight(CombatController.CombatData combatData) { //ILSpy generated this explicit interface implementation from .override directive in CanHandleFight return this.CanHandleFight(combatData); } [MethodImpl(MethodImplOptions.NoInlining)] public bool Start(CombatController.CombatData combatData) { try { _lease = _registerForLeaseWithCallback.InvokeFunc(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E(1231541163), global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E(-1179749275), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E(-121562455)); int num = ((!_lease.HasValue) ? (-1358981583) : (-1358981584)); while (true) { int num2 = num; int num3 = -1358981583; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 6: num = -1358981584; break; case 5: { ESetResult eSetResult2 = _setCurrentJobAutoRotationReady.InvokeFunc(_lease.Value); _202C_202A_202B_206B_202B_202D_206B_206D_202A_200D_202C_200F_200F_200B_202B_200E_200B_202D_200D_206A_200D_206C_202E_206E_202C_200D_200E_206B_200F_206E_206E_202C_200E_202E_206B_206D_200C_206B_200C_202B_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E(-246523235), new object[1] { eSetResult2 }); num = (eSetResult2.IsSuccess() ? (-1358981581) : (-1358981579)); break; } case 1: { _202C_202A_202B_206B_202B_202D_206B_206D_202A_200D_202C_200F_200F_200B_202B_200E_200B_202D_200D_206A_200D_206C_202E_206E_202C_200D_200E_206B_200F_206E_206E_202C_200E_202E_206B_206D_200C_206B_200C_202B_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E(-1086439273), new object[1] { _lease.Value }); ESetResult eSetResult = _setAutoRotationState.InvokeFunc(_lease.Value, arg2: true); _202C_202A_202B_206B_202B_202D_206B_206D_202A_200D_202C_200F_200F_200B_202B_200E_200B_202D_200D_206A_200D_206C_202E_206E_202C_200D_200E_206B_200F_206E_206E_202C_200E_202E_206B_206D_200C_206B_200C_202B_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E(-650979249), new object[1] { eSetResult }); num = (eSetResult.IsSuccess() ? (-1358981580) : (-1358981582)); break; } case 4: _200C_200D_202C_206F_200B_206E_206F_200D_200E_206D_200E_202E_200C_200C_202D_206A_202D_206E_202D_206F_200F_200D_200D_202E_206B_206F_200C_206C_202E_200F_202E_200C_202D_202E_202E_200E_206B_206E_202B_202D_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E(-831608674), Array.Empty()); Stop(); return false; case 2: EnableCombosForCurrentJob(); SetConfig(AutoRotationConfigOption.HealerRotationMode, HealerRotationMode.Lowest_Current); SetConfig(AutoRotationConfigOption.DPSRotationMode, DPSRotationMode.Manual); SetConfig(AutoRotationConfigOption.InCombatOnly, 0); SetConfig(AutoRotationConfigOption.IncludeNPCs, 1); SetConfig(AutoRotationConfigOption.OnlyAttackInCombat, 0); SetConfig(AutoRotationConfigOption.AutoCleanse, 1); SetConfig(AutoRotationConfigOption.AutoRez, 1); SetConfig(AutoRotationConfigOption.AutoRezDPSJobs, 1); SetConfig(AutoRotationConfigOption.ManageKardia, 1); SetConfig(AutoRotationConfigOption.DPSAoETargets, 3); SetConfig(AutoRotationConfigOption.AutoRezOutOfParty, 0); SetConfig(AutoRotationConfigOption.DPSAlwaysHardTarget, 1); SetConfig(AutoRotationConfigOption.BypassQuest, 1); return true; case 3: _200C_200D_202C_206F_200B_206E_206F_200D_200E_206D_200E_202E_200C_200C_202D_206A_202D_206E_202D_206F_200F_200D_200D_202E_206B_206F_200C_206C_202E_200F_202E_200C_202D_202E_202E_200E_206B_206E_202B_202D_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E(-2060892089), Array.Empty()); Stop(); return false; case 0: _200C_200D_202C_206F_200B_206E_206F_200D_200E_206D_200E_202E_200C_200C_202D_206A_202D_206E_202D_206F_200F_200D_200D_202E_206B_206F_200C_206C_202E_200F_202E_200C_202D_202E_202E_200E_206B_206E_202B_202D_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E(-1103601186), Array.Empty()); return false; } } } catch (IpcError ipcError) { _206B_206A_206C_202C_200F_202D_206B_202C_206F_200D_200B_206A_206E_202E_200B_200F_200E_206C_200C_206B_200D_200D_206E_206F_202D_202B_206A_200D_206A_200F_202C_202C_202E_202E_206C_206B_202C_202C_202A_202D_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E(-1303013100), Array.Empty()); return false; } } bool ICombatModule.Start(CombatController.CombatData combatData) { //ILSpy generated this explicit interface implementation from .override directive in Start return this.Start(combatData); } [MethodImpl(MethodImplOptions.NoInlining)] public bool Stop() { try { int num = ((!_lease.HasValue) ? (-1077439308) : (-1077439305)); while (true) { int num2 = num; int num3 = -1077439307; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 0: num = -1077439305; break; case 2: _releaseControl.InvokeAction(_lease.Value); _lease = null; num = -1077439308; break; case 1: return true; } } } catch (IpcError ipcError) { _202C_202C_202C_202B_200E_202C_202B_202B_202D_202C_206F_206C_202C_206C_202E_206F_206C_202D_200F_200B_200D_202D_200E_206E_200D_206E_200E_206B_206D_202D_206C_206E_202D_200E_202C_200D_202D_202D_200D_200C_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E(1222809597), Array.Empty()); return false; } } bool ICombatModule.Stop() { //ILSpy generated this explicit interface implementation from .override directive in Stop return this.Stop(); } [MethodImpl(MethodImplOptions.NoInlining)] public void Update(IGameObject nextTarget) { int num = (_lease.HasValue ? 1213985662 : 1213985663); while (true) { int num2 = num; int num3 = 1213985662; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 0: return; case 1: throw new TaskException(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E(688347319)); case 2: goto IL_005e; } continue; IL_005e: num = 1213985663; } } void ICombatModule.Update(IGameObject nextTarget) { //ILSpy generated this explicit interface implementation from .override directive in Update this.Update(nextTarget); } public bool CanAttack(IBattleNpc target) { return true; } bool ICombatModule.CanAttack(IBattleNpc target) { //ILSpy generated this explicit interface implementation from .override directive in CanAttack return this.CanAttack(target); } [MethodImpl(MethodImplOptions.NoInlining)] private void EnableCombosForCurrentJob() { int num = (_lease.HasValue ? (-1738503464) : (-1738503461)); uint num7 = default(uint); string current = default(string); ESetResult eSetResult = default(ESetResult); while (true) { int num2 = num; int num3 = -1738503463; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 0: num = -1738503461; break; case 1: { IPlayerCharacter playerCharacter = _200C_200E_200F_206E_202E_206F_206E_200B_206F_202E_202B_202C_206D_206F_202A_202D_200C_206A_200B_206A_206D_202E_206D_202E_206F_202B_206E_200B_202C_206F_200D_206D_206B_202A_206B_200D_206E_202B_202D_206F_202E(_objectTable); num7 = ((playerCharacter != null) ? _200B_202E_206C_200D_202E_200B_202D_202C_200E_202B_202D_206F_202D_200D_206D_206E_206F_200E_206E_200B_200C_202A_206E_200C_206D_200F_206E_206B_200D_202D_206F_202B_206F_200C_206E_206E_206C_206A_202C_202A_202E((ICharacter)playerCharacter).RowId : 0u); num = ((num7 != 0) ? (-1738503462) : (-1738503459)); break; } case 2: return; case 4: return; case 3: try { List list = _getComboNamesForJob.InvokeFunc(num7); num = ((list == null) ? 406782414 : 406782415); while (true) { int num8 = num; num3 = 406782413; num4 = num8; int num9 = num4 + num3; int num10 = num4 & num3; switch (num9 - (num10 + num10)) { case 0: num = 406782415; break; case 3: _200E_202E_206F_200D_206A_200E_206B_202D_200D_200B_200D_206D_200C_200F_206A_200C_202E_202D_202C_206B_202D_200B_206D_202D_200E_206C_206A_206F_200E_202A_206E_202E_202C_206F_206F_202B_200C_200D_206F_206A_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E(-1097438702), new object[1] { num7 }); return; case 2: num = ((list.Count != 0) ? 406782412 : 406782414); break; case 1: { _202C_202A_202B_206B_202B_202D_206B_206D_202A_200D_202C_200F_200F_200B_202B_200E_200B_202D_200D_206A_200D_206C_202E_206E_202C_200D_200E_206B_200F_206E_206E_202C_200E_202E_206B_206D_200C_206B_200C_202B_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E(-155886281), new object[3] { list.Count, num7, _206F_206D_206C_206C_206E_206A_200B_200D_200E_206A_206C_202C_206B_202D_200F_206D_206B_206A_202C_200E_200F_200F_202C_202C_206F_206F_202A_200F_202D_206B_200B_200F_200F_206D_206B_200E_202B_200C_200F_200C_202E(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E(1467939024), (IEnumerable)list) }); int num11 = 0; using (List.Enumerator enumerator = list.GetEnumerator()) { num = 1772577375; while (true) { int num12 = num; num3 = 1772577374; num4 = num12; switch ((num4 | num3) - (num4 & num3)) { case 4: _200E_202E_206F_200D_206A_200E_206B_202D_200D_200B_200D_206D_200C_200F_206A_200C_202E_202D_202C_206B_202D_200B_206D_202D_200E_206C_206A_206F_200E_202A_206E_202E_202C_206F_206F_202B_200C_200D_206F_206A_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E(-1020041796), new object[2] { current, eSetResult }); num = 1772577375; break; case 3: current = enumerator.Current; eSetResult = _setComboState.InvokeFunc(_lease.Value, current, arg3: true, arg4: true); num = ((!eSetResult.IsSuccess()) ? 1772577370 : 1772577371); break; case 0: num = 1772577375; break; case 1: num = (enumerator.MoveNext() ? 1772577373 : 1772577372); break; case 5: { int num13 = num11; num3 = 1; num4 = num13; num11 = (num4 | num3) + (num4 & num3); num = 1772577375; break; } case 2: goto end_IL_01cd; } continue; end_IL_01cd: break; } } _202C_202A_202B_206B_202B_202D_206B_206D_202A_200D_202C_200F_200F_200B_202B_200E_200B_202D_200D_206A_200D_206C_202E_206E_202C_200D_200E_206B_200F_206E_206E_202C_200E_202E_206B_206D_200C_206B_200C_202B_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E(-1723018308), new object[3] { num11, list.Count, num7 }); return; } } } } catch (IpcError ipcError) { _202C_202C_202C_202B_200E_202C_202B_202B_202D_202C_206F_206C_202C_206C_202E_206F_206C_202D_200F_200B_200D_202D_200E_206E_200D_206E_200E_206B_206D_202D_206C_206E_202D_200E_202C_200D_202D_202D_200D_200C_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E(-290281876), new object[1] { num7 }); return; } } } } [MethodImpl(MethodImplOptions.NoInlining)] private void SetConfig(AutoRotationConfigOption configKey, object value) { int num = (_lease.HasValue ? 965536274 : 965536273); while (true) { int num2 = num; int num3 = 965536272; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 0: goto IL_0050; case 1: return; case 2: try { ESetResult eSetResult = _setAutoRotationConfigState.InvokeFunc(_lease.Value, configKey, value); num = (eSetResult.IsSuccess() ? (-646726898) : (-646726899)); while (true) { int num7 = num; num3 = -646726897; num4 = num7; int num8 = num4 + num3; int num9 = num4 & num3; switch (num8 - (num9 + num9)) { case 0: num = -646726899; break; case 2: _200E_202E_206F_200D_206A_200E_206B_202D_200D_200B_200D_206D_200C_200F_206A_200C_202E_202D_202C_206B_202D_200B_206D_202D_200E_206C_206A_206F_200E_202A_206E_202E_202C_206F_206F_202B_200C_200D_206F_206A_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E(1491997045), new object[3] { configKey, value, eSetResult }); num = -646726898; break; case 1: return; } } } catch (IpcError ipcError) { _202C_202C_202C_202B_200E_202C_202B_202B_202D_202C_206F_206C_202C_206C_202E_206F_206C_202D_200F_200B_200D_202D_200E_206E_200D_206E_200E_206B_206D_202D_206C_206E_202D_200E_202C_200D_202D_202D_200D_200C_202E((ILogger)_logger, (Exception)ipcError, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E(-931599605), new object[2] { configKey, value }); return; } } continue; IL_0050: num = 965536273; } } [MethodImpl(MethodImplOptions.NoInlining)] private void Callback(int reason, string additionalInfo) { _200E_202E_206F_200D_206A_200E_206B_202D_200D_200B_200D_206D_200C_200F_206A_200C_202E_202D_202C_206B_202D_200B_206D_202D_200E_206C_206A_206F_200E_202A_206E_202E_202C_206F_206F_202B_200C_200D_206F_206A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E(-935286471), new object[2] { reason, additionalInfo }); _lease = null; } public void Dispose() { _lease = null; _202C_206B_202E_206B_202D_200E_200F_206C_200E_206D_200C_200B_202B_202D_206E_206A_206C_206B_206F_206A_200D_202E_206D_206D_202C_200D_200E_206E_202C_202A_202B_200B_202B_202E_202B_206F_200D_200F_206F_202E((ICallGateProvider)_callback); } void IDisposable.Dispose() { //ILSpy generated this explicit interface implementation from .override directive in Dispose this.Dispose(); } static void _202C_202A_202B_206B_202B_202D_206B_206D_202A_200D_202C_200F_200F_200B_202B_200E_200B_202D_200D_206A_200D_206C_202E_206E_202C_200D_200E_206B_200F_206E_206E_202C_200E_202E_206B_206D_200C_206B_200C_202B_202E(ILogger P_0, string P_1, object[] P_2) { P_0.LogDebug(P_1, P_2); } static void _200C_200D_202C_206F_200B_206E_206F_200D_200E_206D_200E_202E_200C_200C_202D_206A_202D_206E_202D_206F_200F_200D_200D_202E_206B_206F_200C_206C_202E_200F_202E_200C_202D_202E_202E_200E_206B_206E_202B_202D_202E(ILogger P_0, string P_1, object[] P_2) { P_0.LogError(P_1, P_2); } static void _206B_206A_206C_202C_200F_202D_206B_202C_206F_200D_200B_206A_206E_202E_200B_200F_200E_206C_200C_206B_200D_200D_206E_206F_202D_202B_206A_200D_206A_200F_202C_202C_202E_202E_206C_206B_202C_202C_202A_202D_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) { P_0.LogError(P_1, P_2, P_3); } static void _202C_202C_202C_202B_200E_202C_202B_202B_202D_202C_206F_206C_202C_206C_202E_206F_206C_202D_200F_200B_200D_202D_200E_206E_200D_206E_200E_206B_206D_202D_206C_206E_202D_200E_202C_200D_202D_202D_200D_200C_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3) { P_0.LogWarning(P_1, P_2, P_3); } static IPlayerCharacter _200C_200E_200F_206E_202E_206F_206E_200B_206F_202E_202B_202C_206D_206F_202A_202D_200C_206A_200B_206A_206D_202E_206D_202E_206F_202B_206E_200B_202C_206F_200D_206D_206B_202A_206B_200D_206E_202B_202D_206F_202E(IObjectTable P_0) { return P_0.LocalPlayer; } static RowRef _200B_202E_206C_200D_202E_200B_202D_202C_200E_202B_202D_206F_202D_200D_206D_206E_206F_200E_206E_200B_200C_202A_206E_200C_206D_200F_206E_206B_200D_202D_206F_202B_206F_200C_206E_206E_206C_206A_202C_202A_202E(ICharacter P_0) { return P_0.ClassJob; } static void _200E_202E_206F_200D_206A_200E_206B_202D_200D_200B_200D_206D_200C_200F_206A_200C_202E_202D_202C_206B_202D_200B_206D_202D_200E_206C_206A_206F_200E_202A_206E_202E_202C_206F_206F_202B_200C_200D_206F_206A_202E(ILogger P_0, string P_1, object[] P_2) { P_0.LogWarning(P_1, P_2); } static string _206F_206D_206C_206C_206E_206A_200B_200D_200E_206A_206C_202C_206B_202D_200F_206D_206B_206A_202C_200E_200F_200F_202C_202C_206F_206F_202A_200F_202D_206B_200B_200F_200F_206D_206B_200E_202B_200C_200F_200C_202E(string P_0, IEnumerable P_1) { return string.Join(P_0, P_1); } static void _202C_206B_202E_206B_202D_200E_200F_206C_200E_206D_200C_200B_202B_202D_206E_206A_206C_206B_206F_206A_200D_202E_206D_206D_202C_200D_200E_206E_202C_202A_202B_200B_202B_202E_202B_206F_200D_200F_206F_202E(ICallGateProvider P_0) { P_0.UnregisterAction(); } }