Skip to content

Instantly share code, notes, and snippets.

@Softanics
Created January 14, 2022 15:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Softanics/e67c8b52064cae2c02a9af598ea40a0d to your computer and use it in GitHub Desktop.
Save Softanics/e67c8b52064cae2c02a9af598ea40a0d to your computer and use it in GitHub Desktop.
// MonoObfuscation
// Token: 0x0600000D RID: 13 RVA: 0x00002F94 File Offset: 0x00001194
public unsafe static bool CheckPassword(string text)
{
int num = 1;
int num2 = num;
int num3 = num2 * 4;
int num4 = num2 * 8;
byte[] array = new byte[3];
object[] array2 = new object[3];
int[] array3 = new int[3];
sbyte[] array5;
fixed (sbyte[] array4 = array5 = new sbyte[1])
{
long[] array7;
fixed (long[] array6 = array7 = new long[3])
{
object[] array8 = new object[3];
array8[0] = text;
int[] array9 = new int[1];
int[] array10 = new int[1];
Exception[] array11 = new Exception[1];
byte* ptr = (byte*)(&ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency);
byte* ptr2 = ptr;
IL_DC:
int num5;
int num6;
while (num5 != 1)
{
try
{
ptr2 = ptr;
byte b = (byte)(*(sbyte*)ptr);
ptr++;
int num8;
int num13;
int num16;
Exception ex;
Type[] array12;
RuntimeTypeHandle[] array13;
if (b >= 1 && b <= 23)
{
if (12 >= b)
{
if (12 <= b)
{
*(int*)(&array7[num6 - 2]) = (int)((byte[])((byte[])array2[num6 - 2]))[*(int*)(&array7[num6 - 1])];
array[num6 - 2] = 0;
num6--;
continue;
}
if (6 >= b)
{
if (6 <= b)
{
array2[num6] = array8[*(int*)(ptr + num3)];
array[num6] = 5;
num6++;
ptr += 8;
continue;
}
if (3 >= b)
{
if (3 <= b)
{
array8[*(int*)(ptr + num3)] = array2[num6 - 1];
ptr += 8;
num6--;
continue;
}
if (1 >= b)
{
if (1 <= b)
{
continue;
}
}
else if (2 >= b)
{
if (2 <= b)
{
array[num6] = 5;
array2[num6] = calli(System.Security.Cryptography.SHA256(), MonoObfuscation.FromEventKeywordsFindIndex[*(int*)(ptr + num3)]);
num6++;
ptr += 8;
continue;
}
}
}
else if (4 >= b)
{
if (4 <= b)
{
array[num6] = 5;
array2[num6] = array8[*(int*)(ptr + num3)];
num6++;
ptr += 8;
continue;
}
}
else if (5 >= b)
{
if (5 <= b)
{
array[num6] = 5;
array2[num6] = calli(System.Text.Encoding(), MonoObfuscation.FromEventKeywordsFindIndex[*(int*)(ptr + num3)]);
num6++;
ptr += 8;
continue;
}
}
}
else if (9 >= b)
{
if (9 <= b)
{
array8[*(int*)(ptr + num3)] = array2[num6 - 1];
ptr += 8;
num6--;
continue;
}
if (7 >= b)
{
if (7 <= b)
{
array[num6 - 2] = 5;
array2[num6 - 2] = calli(System.Byte[](System.Text.Encoding,System.String), (Encoding)array2[num6 - 2], (string)array2[num6 - 1], MonoObfuscation.FromEventKeywordsFindIndex[*(int*)(ptr + num3)]);
num6--;
ptr += 8;
continue;
}
}
else if (8 >= b)
{
if (8 <= b)
{
array[num6 - 2] = 5;
array2[num6 - 2] = calli(System.Byte[](System.Security.Cryptography.HashAlgorithm,System.Byte[]), (SHA256)array2[num6 - 2], (byte[])array2[num6 - 1], MonoObfuscation.FromEventKeywordsFindIndex[*(int*)(ptr + num3)]);
num6--;
ptr += 8;
continue;
}
}
}
else if (10 >= b)
{
if (10 <= b)
{
array[num6] = 5;
array2[num6] = array8[*(int*)(ptr + num3)];
num6++;
ptr += 8;
continue;
}
}
else if (11 >= b)
{
if (11 <= b)
{
*(int*)(&array7[num6]) = *(int*)(ptr + num3);
array[num6] = 0;
num6++;
ptr += 8;
continue;
}
}
}
else if (18 >= b)
{
if (18 <= b)
{
ptr = ((array2[num6 - 1] == null) ? 1 : 0) * (*(int*)(ptr + num3) - *(int*)(ptr + 8 + num3)) + *(int*)(ptr + 8 + num3) + ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency;
num6--;
continue;
}
if (15 >= b)
{
if (15 <= b)
{
ptr = ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + *(int*)(ptr + num3);
continue;
}
if (13 >= b)
{
if (13 <= b)
{
ptr = (((*(int*)(&array7[num6 - 2]) == *(int*)(&array7[num6 - 1])) ? 1 : 0) + -1) * -1 * (*(int*)(ptr + num3) - *(int*)(ptr + 8 + num3)) + *(int*)(ptr + 8 + num3) + ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency;
num6 -= 2;
continue;
}
}
else if (14 >= b)
{
if (14 <= b)
{
*(int*)(&array7[num6 - 2]) = ((*(int*)(&array7[num6 - 2]) == *(int*)(&array7[num6 - 1])) ? 1 : 0);
array[num6 - 2] = 0;
num6--;
continue;
}
}
}
else if (16 >= b)
{
if (16 <= b)
{
array5[*(int*)(ptr + num3)] = (sbyte)(*(int*)(&array7[num6 - 1]));
ptr += 8;
num6--;
continue;
}
}
else if (17 >= b)
{
if (17 <= b)
{
num6 = 0;
byte* ptr3 = ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + *(int*)(ptr + num3);
int num7 = ptr2 - ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency;
num8 = 0;
int num9 = 2;
int num10;
for (;;)
{
num10 = (num8 + num9) / 2;
int num11 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + 1681 + num10 * 24 + num3);
int num12 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + 1681 + num10 * 24 + 8 + num3);
if (num7 < num11 + num12)
{
if (num11 <= num7)
{
break;
}
num9 = num10 - 1;
}
else
{
num8 = num10 + 1;
}
}
num13 = num10;
int num14 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + 1681 + num13 * 24 + 16 + num3);
int num15 = num14;
if (-1 != ptr3)
{
if (ptr2 != ptr3)
{
num14 = ptr3 - ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency;
while (num16 != 0)
{
num16--;
int num11 = num14;
num10 = 0;
num9 = 2;
for (;;)
{
num8 = (num10 + num9) / 2;
num7 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + 1753 + num8 * 24 + num3);
int num17 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + 1753 + num8 * 24 + 8 + num3);
if (num11 < num7 + num17)
{
if (num7 <= num11)
{
break;
}
num9 = num8 - 1;
}
else
{
num10 = num8 + 1;
}
}
int num18 = num8;
int num12 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + 1753 + num18 * 24 + 16 + num3);
if (num12 == array10[num16])
{
num16++;
break;
}
}
for (num13 = num15; num13 != -1; num13 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num13 + num3))
{
int num19 = num14;
int num17 = 0;
num7 = 2;
for (;;)
{
num8 = (num17 + num7) / 2;
num9 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + 1681 + num8 * 24 + num3);
num10 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + 1681 + num8 * 24 + 8 + num3);
if (num19 < num9 + num10)
{
if (num9 <= num19)
{
break;
}
num7 = num8 - 1;
}
else
{
num17 = num8 + 1;
}
}
int num12 = num8;
int num18 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + 1681 + num12 * 24 + 16 + num3);
if (num18 == num13)
{
break;
}
num18 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num13 + 16 + num3);
if (num18 != -1)
{
num12 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num18 + 24 + num3);
num6 = 0;
ptr = ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num18 + 24 + num3);
array11[num16] = null;
array10[num16] = num18;
array9[num16] = 0;
num16++;
goto IL_1190;
}
}
}
ptr = ptr3;
ptr3 = -1;
}
IL_1190:
continue;
}
}
}
else if (21 >= b)
{
if (21 <= b)
{
array[num6] = 0;
*(int*)(&array7[num6]) = (int)array5[*(int*)(ptr + num3)];
array2[num6] = null;
num6++;
ptr += 8;
continue;
}
if (19 >= b)
{
if (19 <= b)
{
calli(System.Void(System.IDisposable), (SHA256)array2[num6 - 1], MonoObfuscation.FromEventKeywordsFindIndex[*(int*)(ptr + num3)]);
num6--;
ptr += 8;
continue;
}
}
else if (20 >= b)
{
if (20 <= b)
{
num6 = 0;
num16--;
ex = array11[num16];
if (ex != null)
{
if (num16 != 0 && array9[num16 - 1] == 1)
{
num6 = 1;
array[num6] = 0;
*(int*)(&array7[num6]) = 0;
goto IL_495;
}
int num11 = ptr2 - ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency;
int num10 = 0;
int num9 = 2;
for (;;)
{
num8 = (num10 + num9) / 2;
int num7 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + 1681 + num8 * 24 + num3);
int num17 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + 1681 + num8 * 24 + 8 + num3);
if (num11 < num7 + num17)
{
if (num7 <= num11)
{
break;
}
num9 = num8 - 1;
}
else
{
num10 = num8 + 1;
}
}
int num14 = num8;
int num12 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + 1681 + num14 * 24 + 16 + num3);
int num15 = num12;
int num20;
if (-1 == num15)
{
num20 = 1;
throw ex;
}
int num18 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num15 + 8 + num3);
num12 = num18;
while (num12 != -1)
{
if (*(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num12 + 8 + num3) == 0)
{
int num19 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num12 + 16 + num3);
if (num19 != -1)
{
Type type;
if ((type = array12[num19]) == null)
{
array12[num19] = Type.GetTypeFromHandle(array13[num19]);
type = array12[num19];
}
if (!type.IsInstanceOfType(ex))
{
num12 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num12 + 40 + num3);
continue;
}
}
}
num14 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num12 + 8 + num3);
if (num14 != 1)
{
if (num14 != 2)
{
int num17 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num12 + 24 + num3);
num6 = 1;
array[num6 - 1] = 5;
array2[num6 - 1] = ex;
ptr = ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num12 + 24 + num3);
array11[num16] = ex;
array10[num16] = num12;
array9[num16] = 2;
num16++;
}
else
{
int num17 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num12 + 24 + num3);
num6 = 0;
ptr = ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num12 + 24 + num3);
array11[num16] = ex;
array10[num16] = num12;
array9[num16] = 0;
num16++;
}
}
else
{
int num17 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num12 + 32 + num3);
num6 = 1;
array[num6 - 1] = 5;
array2[num6 - 1] = ex;
ptr = ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num12 + 32 + num3);
array11[num16] = ex;
array10[num16] = num12;
array9[num16] = 1;
num16++;
}
goto IL_1A09;
}
num20 = 1;
throw ex;
}
else
{
num13 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + array10[num16] + num3) + num3);
byte* ptr3;
if (-1 != ptr3)
{
if (ptr2 != ptr3)
{
int num18 = ptr3 - ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency;
while (num16 != 0)
{
num16--;
int num12 = num18;
int num17 = 0;
int num7 = 2;
for (;;)
{
num8 = (num17 + num7) / 2;
int num9 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + 1753 + num8 * 24 + num3);
int num10 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + 1753 + num8 * 24 + 8 + num3);
if (num12 < num9 + num10)
{
if (num9 <= num12)
{
break;
}
num7 = num8 - 1;
}
else
{
num17 = num8 + 1;
}
}
int num19 = num8;
int num14 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + 1753 + num19 * 24 + 16 + num3);
if (num14 == array10[num16])
{
num16++;
break;
}
}
for (int num15 = num13; num15 != -1; num15 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num15 + num3))
{
int num11 = num18;
int num10 = 0;
int num9 = 2;
for (;;)
{
num8 = (num10 + num9) / 2;
int num7 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + 1681 + num8 * 24 + num3);
int num17 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + 1681 + num8 * 24 + 8 + num3);
if (num11 < num7 + num17)
{
if (num7 <= num11)
{
break;
}
num9 = num8 - 1;
}
else
{
num10 = num8 + 1;
}
}
int num14 = num8;
int num19 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + 1681 + num14 * 24 + 16 + num3);
if (num19 == num15)
{
break;
}
num19 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num15 + 16 + num3);
if (num19 != -1)
{
num14 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num19 + 24 + num3);
num6 = 0;
ptr = ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num19 + 24 + num3);
array11[num16] = null;
array10[num16] = num19;
array9[num16] = 0;
num16++;
goto IL_1A08;
}
}
}
ptr = ptr3;
ptr3 = -1;
}
IL_1A08:;
}
IL_1A09:
continue;
}
}
}
else if (22 >= b)
{
if (22 <= b)
{
byte* ptr4 = ptr;
int id = Process.GetCurrentProcess().Id;
int num21 = (id ^ (int)<Module>.XsdTypeNonSpacingMark) - 113;
num5 = 1;
ptr = ptr4 + id * num21;
continue;
}
}
else if (23 >= b)
{
if (23 <= b)
{
}
}
}
IL_495:
num16--;
num13 = array10[num16];
ex = array11[num16];
if (*(int*)(&array7[num6 - 1]) == 0)
{
int num15 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num13 + 40 + num3);
num8 = num15;
while (num8 != -1)
{
if (*(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num8 + 8 + num3) == 0)
{
int num14 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num8 + 16 + num3);
if (num14 != -1)
{
Type type2;
if ((type2 = array12[num14]) == null)
{
array12[num14] = Type.GetTypeFromHandle(array13[num14]);
type2 = array12[num14];
}
if (!type2.IsInstanceOfType(ex))
{
num8 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num8 + 40 + num3);
continue;
}
}
}
int num7 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num8 + 8 + num3);
if (num7 != 1)
{
if (num7 != 2)
{
int num9 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num8 + 24 + num3);
num6 = 1;
array[num6 - 1] = 5;
array2[num6 - 1] = ex;
ptr = ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num8 + 24 + num3);
array11[num16] = ex;
array10[num16] = num8;
array9[num16] = 2;
num16++;
}
else
{
int num9 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num8 + 24 + num3);
num6 = 0;
ptr = ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num8 + 24 + num3);
array11[num16] = ex;
array10[num16] = num8;
array9[num16] = 0;
num16++;
}
}
else
{
int num9 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num8 + 32 + num3);
num6 = 1;
array[num6 - 1] = 5;
array2[num6 - 1] = ex;
ptr = ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num8 + 32 + num3);
array11[num16] = ex;
array10[num16] = num8;
array9[num16] = 1;
num16++;
}
goto IL_859;
}
int num20 = 1;
throw ex;
}
num8 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num13 + 24 + num3);
num6 = 1;
array[num6 - 1] = 5;
array2[num6 - 1] = ex;
ptr = ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num13 + 24 + num3);
array11[num16] = ex;
array10[num16] = num13;
array9[num16] = 2;
num16++;
IL_859:
continue;
}
catch (Exception ex2)
{
int num20;
if (num20 == 1)
{
throw ex2;
}
int num16;
if (num16 != 0 && array9[num16 - 1] == 1)
{
num6 = 1;
array[num6] = 0;
*(int*)(&array7[num6]) = 0;
goto IL_495;
}
int num12 = ptr2 - ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency;
int num17 = 0;
int num7 = 2;
int num8;
for (;;)
{
num8 = (num17 + num7) / 2;
int num9 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + 1681 + num8 * 24 + num3);
int num10 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + 1681 + num8 * 24 + 8 + num3);
if (num12 < num9 + num10)
{
if (num9 <= num12)
{
break;
}
num7 = num8 - 1;
}
else
{
num17 = num8 + 1;
}
}
int num18 = num8;
int num14 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + 1681 + num18 * 24 + 16 + num3);
int num13 = num14;
if (-1 == num13)
{
num20 = 1;
throw ex2;
}
int num19 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num13 + 8 + num3);
num14 = num19;
while (num14 != -1)
{
if (*(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num14 + 8 + num3) == 0)
{
int num11 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num14 + 16 + num3);
if (num11 != -1)
{
Type[] array12;
Type type3;
if ((type3 = array12[num11]) == null)
{
RuntimeTypeHandle[] array13;
array12[num11] = Type.GetTypeFromHandle(array13[num11]);
type3 = array12[num11];
}
if (!type3.IsInstanceOfType(ex2))
{
num14 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num14 + 40 + num3);
continue;
}
}
}
num18 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num14 + 8 + num3);
if (num18 != 1)
{
if (num18 != 2)
{
int num10 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num14 + 24 + num3);
num6 = 1;
array[num6 - 1] = 5;
array2[num6 - 1] = ex2;
ptr = ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num14 + 24 + num3);
array11[num16] = ex2;
array10[num16] = num14;
array9[num16] = 2;
num16++;
}
else
{
int num10 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num14 + 24 + num3);
num6 = 0;
ptr = ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num14 + 24 + num3);
array11[num16] = ex2;
array10[num16] = num14;
array9[num16] = 0;
num16++;
}
}
else
{
int num10 = *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num14 + 32 + num3);
num6 = 1;
array[num6 - 1] = 5;
array2[num6 - 1] = ex2;
ptr = ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + *(ref ConcreteFormattableStringNativeStackRegister.CleanUpManagedDataResourceTypeResourcesDependency + num14 + 32 + num3);
array11[num16] = ex2;
array10[num16] = num14;
array9[num16] = 1;
num16++;
}
goto IL_DC;
}
num20 = 1;
throw ex2;
}
break;
}
return *(int*)(&array7[num6 - 1]) != 0;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment