forked from aly/qstbak
144 lines
7.6 KiB
C#
144 lines
7.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics;
|
|
using System.Globalization;
|
|
using System.IO;
|
|
using System.Reflection;
|
|
using System.Runtime.CompilerServices;
|
|
using System.Security.Cryptography;
|
|
using System.Threading;
|
|
using Questionable.Model.IO;
|
|
using Questionable.Model.Questing;
|
|
|
|
namespace Questionable.SeasonalDutyPaths;
|
|
|
|
internal static class AssemblySeasonalDutyDefinitionLoader
|
|
{
|
|
private static readonly Lazy<IReadOnlyDictionary<ushort, SeasonalDutyDefinition>> Definitions = new Lazy<IReadOnlyDictionary<ushort, SeasonalDutyDefinition>>(LoadDefinitions, LazyThreadSafetyMode.ExecutionAndPublication);
|
|
|
|
internal static TimeSpan? DecodeDuration { get; private set; }
|
|
|
|
internal static Stream SeasonalDutyDefinitionSchema
|
|
{
|
|
[MethodImpl(MethodImplOptions.NoInlining)]
|
|
get
|
|
{
|
|
return _206C_206D_202B_206E_202D_202D_200E_206D_206A_202D_206C_206C_206B_200F_202A_200D_206A_206B_206C_200D_202C_206C_200D_206F_206F_202B_202D_200C_206F_200D_200F_200F_206B_200D_206B_202E_206B_206E_202E_206F_202E(_200C_206C_200D_202D_202B_206D_206C_202C_202B_200F_206E_206E_202C_200F_200D_200D_206C_200C_206A_202A_206B_202A_200E_206A_200B_200C_202D_200C_200E_200C_202A_200F_202D_202C_200B_202C_206E_202C_206E_202A_202E(_206F_200B_200D_206F_200D_200C_202C_206F_200F_202A_206E_206F_202A_202A_206A_202C_202D_200F_202C_206B_202B_200E_206F_206B_202C_200E_202C_206C_202D_206C_206D_202D_202C_202C_200B_202B_206D_206E_200D_206F_202E(typeof(AssemblySeasonalDutyDefinitionLoader).TypeHandle)), global::_003CModule_003E._202C_206C_202B_200B_206A_206E_200C_202C_202D_206B_206D_206F_206F_206D_206E_200C_206A_206B_200F_200E_206A_202B_200B_200E_200C_202C_206A_206C_206B_202A_202C_202B_206A_206F_206D_200D_206D_202C_200D_200E_202E<string>(-1394732188));
|
|
}
|
|
}
|
|
|
|
internal static IReadOnlyDictionary<ushort, SeasonalDutyDefinition> GetDefinitions()
|
|
{
|
|
return Definitions.Value;
|
|
}
|
|
|
|
[MethodImpl(MethodImplOptions.NoInlining)]
|
|
private static IReadOnlyDictionary<ushort, SeasonalDutyDefinition> LoadDefinitions()
|
|
{
|
|
Stopwatch stopwatch = _206F_206A_206B_206D_206C_206B_202A_200E_206F_206E_200B_202C_200D_200D_202C_206B_202C_200B_202E_200B_200C_202E_202C_202B_200C_200C_200F_206D_206A_200E_206E_206D_206F_202C_200C_200B_206E_202B_206D_206A_202E();
|
|
Stream stream = _206C_206D_202B_206E_202D_202D_200E_206D_206A_202D_206C_206C_206B_200F_202A_200D_206A_206B_206C_200D_202C_206C_200D_206F_206F_202B_202D_200C_206F_200D_200F_200F_206B_200D_206B_202E_206B_206E_202E_206F_202E(_200C_206C_200D_202D_202B_206D_206C_202C_202B_200F_206E_206E_202C_200F_200D_200D_206C_200C_206A_202A_206B_202A_200E_206A_200B_200C_202D_200C_200E_200C_202A_200F_202D_202C_200B_202C_206E_202C_206E_202A_202E(_206F_200B_200D_206F_200D_200C_202C_206F_200F_202A_206E_206F_202A_202A_206A_202C_202D_200F_202C_206B_202B_200E_206F_206B_202C_200E_202C_206C_202D_206C_206D_202D_202C_202C_200B_202B_206D_206E_200D_206F_202E(typeof(AssemblySeasonalDutyDefinitionLoader).TypeHandle)), global::_003CModule_003E._202A_200F_206B_202B_206C_202D_206A_200F_200E_206B_202A_200D_202A_206C_202C_200C_202D_206E_206B_202B_206D_206F_200F_200B_200B_206E_200C_206D_200B_202B_206D_206E_200E_206F_206A_202E_200C_200C_202C_202E_202E<string>(-1684643272));
|
|
try
|
|
{
|
|
byte[] array = PathBundleSecret.Key();
|
|
List<KeyValuePair<string, SeasonalDutyDefinition>> list = PathBundle.Deserialize<SeasonalDutyDefinition>(stream, array);
|
|
_202D_200C_200B_202E_206E_206C_206E_200D_200D_200D_202B_200D_206E_200B_206D_206C_200C_206C_202B_200B_206A_206F_206E_206E_202E_202D_206D_200C_200F_202A_206B_206F_206F_202E_200E_202B_200B_206A_206E_200E_202E((Span<byte>)array);
|
|
Dictionary<ushort, SeasonalDutyDefinition> dictionary = new Dictionary<ushort, SeasonalDutyDefinition>(list.Count);
|
|
using (List<KeyValuePair<string, SeasonalDutyDefinition>>.Enumerator enumerator = list.GetEnumerator())
|
|
{
|
|
int num = -221038175;
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -221038175;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 0:
|
|
num = (enumerator.MoveNext() ? (-221038176) : (-221038174));
|
|
break;
|
|
case 1:
|
|
var (s, value) = (KeyValuePair<string, SeasonalDutyDefinition>)(ref enumerator.Current);
|
|
dictionary[ushort.Parse(s, _206E_202B_200F_206F_206E_206F_206F_200C_202A_206B_206D_200B_206C_200C_202A_200E_200C_202B_200E_200F_202E_200E_202B_200C_206A_200F_202D_206D_202D_202E_200C_202E_206F_206A_202D_202D_200F_202A_206D_200F_202E())] = value;
|
|
num = -221038175;
|
|
break;
|
|
case 2:
|
|
num = -221038175;
|
|
break;
|
|
case 3:
|
|
goto end_IL_005c;
|
|
}
|
|
continue;
|
|
end_IL_005c:
|
|
break;
|
|
}
|
|
}
|
|
DecodeDuration = _206B_206F_206A_206A_206E_202E_206D_206B_202C_206C_202A_202D_200D_202A_206F_202E_202D_206B_202B_206F_202A_206D_202A_202A_206C_200B_202B_200C_206B_200F_202D_206D_206F_206A_206C_206B_202D_206C_206B_206A_202E(stopwatch);
|
|
return dictionary;
|
|
}
|
|
finally
|
|
{
|
|
int num = ((stream == null) ? (-142648274) : (-142648275));
|
|
while (true)
|
|
{
|
|
int num5 = num;
|
|
int num3 = -142648273;
|
|
int num4 = num5;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 0:
|
|
num = -142648275;
|
|
break;
|
|
case 2:
|
|
_200C_202D_202D_206C_200C_206D_206A_206E_200F_206B_202C_206D_206F_202C_202A_206E_206C_200B_202A_200E_202A_202A_200C_202B_202C_206B_202E_202A_206C_202E_202A_206E_200C_202C_202C_206E_202C_206A_200D_202A_202E((IDisposable)stream);
|
|
num = -142648274;
|
|
break;
|
|
case 1:
|
|
goto end_IL_0141;
|
|
}
|
|
continue;
|
|
end_IL_0141:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static Type _206F_200B_200D_206F_200D_200C_202C_206F_200F_202A_206E_206F_202A_202A_206A_202C_202D_200F_202C_206B_202B_200E_206F_206B_202C_200E_202C_206C_202D_206C_206D_202D_202C_202C_200B_202B_206D_206E_200D_206F_202E(RuntimeTypeHandle P_0)
|
|
{
|
|
return Type.GetTypeFromHandle(P_0);
|
|
}
|
|
|
|
static Assembly _200C_206C_200D_202D_202B_206D_206C_202C_202B_200F_206E_206E_202C_200F_200D_200D_206C_200C_206A_202A_206B_202A_200E_206A_200B_200C_202D_200C_200E_200C_202A_200F_202D_202C_200B_202C_206E_202C_206E_202A_202E(Type P_0)
|
|
{
|
|
return P_0.Assembly;
|
|
}
|
|
|
|
static Stream _206C_206D_202B_206E_202D_202D_200E_206D_206A_202D_206C_206C_206B_200F_202A_200D_206A_206B_206C_200D_202C_206C_200D_206F_206F_202B_202D_200C_206F_200D_200F_200F_206B_200D_206B_202E_206B_206E_202E_206F_202E(Assembly P_0, string P_1)
|
|
{
|
|
return P_0.GetManifestResourceStream(P_1);
|
|
}
|
|
|
|
static Stopwatch _206F_206A_206B_206D_206C_206B_202A_200E_206F_206E_200B_202C_200D_200D_202C_206B_202C_200B_202E_200B_200C_202E_202C_202B_200C_200C_200F_206D_206A_200E_206E_206D_206F_202C_200C_200B_206E_202B_206D_206A_202E()
|
|
{
|
|
return Stopwatch.StartNew();
|
|
}
|
|
|
|
static void _202D_200C_200B_202E_206E_206C_206E_200D_200D_200D_202B_200D_206E_200B_206D_206C_200C_206C_202B_200B_206A_206F_206E_206E_202E_202D_206D_200C_200F_202A_206B_206F_206F_202E_200E_202B_200B_206A_206E_200E_202E(Span<byte> P_0)
|
|
{
|
|
CryptographicOperations.ZeroMemory(P_0);
|
|
}
|
|
|
|
static CultureInfo _206E_202B_200F_206F_206E_206F_206F_200C_202A_206B_206D_200B_206C_200C_202A_200E_200C_202B_200E_200F_202E_200E_202B_200C_206A_200F_202D_206D_202D_202E_200C_202E_206F_206A_202D_202D_200F_202A_206D_200F_202E()
|
|
{
|
|
return CultureInfo.InvariantCulture;
|
|
}
|
|
|
|
static TimeSpan _206B_206F_206A_206A_206E_202E_206D_206B_202C_206C_202A_202D_200D_202A_206F_202E_202D_206B_202B_206F_202A_206D_202A_202A_206C_200B_202B_200C_206B_200F_202D_206D_206F_206A_206C_206B_202D_206C_206B_206A_202E(Stopwatch P_0)
|
|
{
|
|
return P_0.Elapsed;
|
|
}
|
|
|
|
static void _200C_202D_202D_206C_200C_206D_206A_206E_200F_206B_202C_206D_206F_202C_202A_206E_206C_200B_202A_200E_202A_202A_200C_202B_202C_206B_202E_202A_206C_202E_202A_206E_200C_202C_202C_206E_202C_206A_200D_202A_202E(IDisposable P_0)
|
|
{
|
|
P_0.Dispose();
|
|
}
|
|
}
|