Created
January 21, 2022 12:55
-
-
Save Softanics/46f385d3c11c12f6f6b1c25709393fb9 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Program | |
// Token: 0x0600000B RID: 11 RVA: 0x00002E78 File Offset: 0x00001078 | |
public unsafe static string AssemblyReferenceDependentAssemblySizeMiddleEastFrench(byte[] data) | |
{ | |
int num = 1; | |
int num2 = num; | |
int num3 = num2 * 4; | |
int num4 = num2 * 8; | |
byte[] array = new byte[4]; | |
object[] array2 = new object[4]; | |
int[] array3 = new int[4]; | |
long[] array5; | |
fixed (long[] array4 = array5 = new long[4]) | |
{ | |
object[] array6 = new object[6]; | |
array6[0] = data; | |
int[] array7 = new int[1]; | |
int[] array8 = new int[1]; | |
Exception[] array9 = new Exception[1]; | |
byte* ptr = (byte*)(&EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve); | |
byte* ptr2 = ptr; | |
IL_C9: | |
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[] array10; | |
RuntimeTypeHandle[] array11; | |
if (b >= 1 && b <= 24) | |
{ | |
if (12 >= b) | |
{ | |
if (12 <= b) | |
{ | |
array6[*(int*)(ptr + num3)] = array2[num6 - 1]; | |
ptr += 8; | |
num6--; | |
continue; | |
} | |
if (6 >= b) | |
{ | |
if (6 <= b) | |
{ | |
array2[num6] = array6[*(int*)(ptr + num3)]; | |
array[num6] = 5; | |
num6++; | |
ptr += 8; | |
continue; | |
} | |
if (3 >= b) | |
{ | |
if (3 <= b) | |
{ | |
array2[num6] = calli(Program/<StartupCode$FSharpObfuscationSample>.SYSTEMINFOIsNotPublic.AllowParenthesesTicks(), Program.getExtraInfoIntrospectionExtensions[*(int*)(ptr + num3)]); | |
array[num6] = 5; | |
num6++; | |
ptr += 8; | |
continue; | |
} | |
if (1 >= b) | |
{ | |
if (1 <= b) | |
{ | |
array[num6] = 5; | |
array2[num6] = calli(System.Security.Cryptography.SHA256(), Program.getExtraInfoIntrospectionExtensions[*(int*)(ptr + num3)]); | |
num6++; | |
ptr += 8; | |
continue; | |
} | |
} | |
else if (2 >= b) | |
{ | |
if (2 <= b) | |
{ | |
array6[*(int*)(ptr + num3)] = array2[num6 - 1]; | |
ptr += 8; | |
num6--; | |
continue; | |
} | |
} | |
} | |
else if (4 >= b) | |
{ | |
if (4 <= b) | |
{ | |
array[num6] = 5; | |
array2[num6] = calli(System.Text.StringBuilder(), Program.getExtraInfoIntrospectionExtensions[*(int*)(ptr + num3)]); | |
num6++; | |
ptr += 8; | |
continue; | |
} | |
} | |
else if (5 >= b) | |
{ | |
if (5 <= b) | |
{ | |
array[num6] = 5; | |
array2[num6] = array6[*(int*)(ptr + num3)]; | |
num6++; | |
ptr += 8; | |
continue; | |
} | |
} | |
} | |
else if (9 >= b) | |
{ | |
if (9 <= b) | |
{ | |
array6[*(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.Security.Cryptography.HashAlgorithm,System.Byte[]), (SHA256)array2[num6 - 2], (byte[])array2[num6 - 1], Program.getExtraInfoIntrospectionExtensions[*(int*)(ptr + num3)]); | |
num6--; | |
ptr += 8; | |
continue; | |
} | |
} | |
else if (8 >= b) | |
{ | |
if (8 <= b) | |
{ | |
array[num6 - 3] = 5; | |
array2[num6 - 3] = calli(System.Text.StringBuilder(Microsoft.FSharp.Core.FSharpFunc`2<System.Text.StringBuilder,Microsoft.FSharp.Core.FSharpFunc`2<System.Byte,System.Text.StringBuilder>>,System.Text.StringBuilder,System.Byte[]), (Program.AllowParenthesesTicks)array2[num6 - 3], (StringBuilder)array2[num6 - 2], (byte[])array2[num6 - 1], Program.getExtraInfoIntrospectionExtensions[*(int*)(ptr + num3)]); | |
num6 -= 2; | |
ptr += 8; | |
continue; | |
} | |
} | |
} | |
else if (10 >= b) | |
{ | |
if (10 <= b) | |
{ | |
array[num6] = 5; | |
array2[num6] = array6[*(int*)(ptr + num3)]; | |
num6++; | |
ptr += 8; | |
continue; | |
} | |
} | |
else if (11 >= b) | |
{ | |
if (11 <= b) | |
{ | |
array[num6 - 1] = 5; | |
array2[num6 - 1] = calli(System.String(System.Object), (StringBuilder)array2[num6 - 1], Program.getExtraInfoIntrospectionExtensions[*(int*)(ptr + num3)]); | |
ptr += 8; | |
continue; | |
} | |
} | |
} | |
else if (18 >= b) | |
{ | |
if (18 <= b) | |
{ | |
calli(System.Void(System.IDisposable), (IDisposable)array2[num6 - 1], Program.getExtraInfoIntrospectionExtensions[*(int*)(ptr + num3)]); | |
num6--; | |
ptr += 8; | |
continue; | |
} | |
if (15 >= b) | |
{ | |
if (15 <= b) | |
{ | |
array[num6] = 5; | |
array2[num6] = array6[*(int*)(ptr + num3)]; | |
num6++; | |
ptr += 8; | |
continue; | |
} | |
if (13 >= b) | |
{ | |
if (13 <= b) | |
{ | |
num6 = 0; | |
byte* ptr3 = ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + *(int*)(ptr + num3); | |
int num7 = ptr2 - ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve; | |
num8 = 0; | |
int num9 = 2; | |
int num10; | |
for (;;) | |
{ | |
num10 = (num8 + num9) / 2; | |
int num11 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + 304 + num10 * 24 + num3); | |
int num12 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + 304 + num10 * 24 + 8 + num3); | |
if (num7 < num11 + num12) | |
{ | |
if (num11 <= num7) | |
{ | |
break; | |
} | |
num9 = num10 - 1; | |
} | |
else | |
{ | |
num8 = num10 + 1; | |
} | |
} | |
num13 = num10; | |
int num14 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + 304 + num13 * 24 + 16 + num3); | |
int num15 = num14; | |
if (-1 != ptr3) | |
{ | |
if (ptr2 != ptr3) | |
{ | |
num14 = ptr3 - ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve; | |
while (num16 != 0) | |
{ | |
num16--; | |
int num11 = num14; | |
num10 = 0; | |
num9 = 2; | |
for (;;) | |
{ | |
num8 = (num10 + num9) / 2; | |
num7 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + 376 + num8 * 24 + num3); | |
int num17 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + 376 + 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 EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + 376 + num18 * 24 + 16 + num3); | |
if (num12 == array8[num16]) | |
{ | |
num16++; | |
break; | |
} | |
} | |
for (num13 = num15; num13 != -1; num13 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num13 + num3)) | |
{ | |
int num19 = num14; | |
int num17 = 0; | |
num7 = 2; | |
for (;;) | |
{ | |
num8 = (num17 + num7) / 2; | |
num9 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + 304 + num8 * 24 + num3); | |
num10 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + 304 + 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 EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + 304 + num12 * 24 + 16 + num3); | |
if (num18 == num13) | |
{ | |
break; | |
} | |
num18 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num13 + 16 + num3); | |
if (num18 != -1) | |
{ | |
num12 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num18 + 24 + num3); | |
num6 = 0; | |
ptr = ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num18 + 24 + num3); | |
array9[num16] = null; | |
array8[num16] = num18; | |
array7[num16] = 0; | |
num16++; | |
goto IL_109E; | |
} | |
} | |
} | |
ptr = ptr3; | |
ptr3 = -1; | |
} | |
IL_109E: | |
continue; | |
} | |
} | |
else if (14 >= b) | |
{ | |
if (14 <= b) | |
{ | |
array2[num6 - 1] = (array2[num6 - 1] as IDisposable); | |
array[num6 - 1] = 5; | |
continue; | |
} | |
} | |
} | |
else if (16 >= b) | |
{ | |
if (16 <= b) | |
{ | |
ptr = ((array2[num6 - 1] == null) ? 1 : 0) * (*(int*)(ptr + num3) - *(int*)(ptr + 8 + num3)) + *(int*)(ptr + 8 + num3) + ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve; | |
num6--; | |
continue; | |
} | |
} | |
else if (17 >= b) | |
{ | |
if (17 <= b) | |
{ | |
ptr = ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + *(int*)(ptr + num3); | |
continue; | |
} | |
} | |
} | |
else if (21 >= b) | |
{ | |
if (21 <= b) | |
{ | |
num6 = 0; | |
num16--; | |
ex = array9[num16]; | |
if (ex != null) | |
{ | |
if (num16 != 0 && array7[num16 - 1] == 1) | |
{ | |
num6 = 1; | |
array[num6] = 0; | |
*(int*)(&array5[num6]) = 0; | |
goto IL_4A8; | |
} | |
int num11 = ptr2 - ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve; | |
int num10 = 0; | |
int num9 = 2; | |
for (;;) | |
{ | |
num8 = (num10 + num9) / 2; | |
int num7 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + 304 + num8 * 24 + num3); | |
int num17 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + 304 + 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 EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + 304 + num14 * 24 + 16 + num3); | |
int num15 = num12; | |
int num20; | |
if (-1 == num15) | |
{ | |
num20 = 1; | |
throw ex; | |
} | |
int num18 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num15 + 8 + num3); | |
num12 = num18; | |
while (num12 != -1) | |
{ | |
if (*(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num12 + 8 + num3) == 0) | |
{ | |
int num19 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num12 + 16 + num3); | |
if (num19 != -1) | |
{ | |
Type type; | |
if ((type = array10[num19]) == null) | |
{ | |
array10[num19] = Type.GetTypeFromHandle(array11[num19]); | |
type = array10[num19]; | |
} | |
if (!type.IsInstanceOfType(ex)) | |
{ | |
num12 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num12 + 40 + num3); | |
continue; | |
} | |
} | |
} | |
num14 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num12 + 8 + num3); | |
if (num14 != 1) | |
{ | |
if (num14 != 2) | |
{ | |
int num17 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num12 + 24 + num3); | |
num6 = 1; | |
array[num6 - 1] = 5; | |
array2[num6 - 1] = ex; | |
ptr = ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num12 + 24 + num3); | |
array9[num16] = ex; | |
array8[num16] = num12; | |
array7[num16] = 2; | |
num16++; | |
} | |
else | |
{ | |
int num17 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num12 + 24 + num3); | |
num6 = 0; | |
ptr = ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num12 + 24 + num3); | |
array9[num16] = ex; | |
array8[num16] = num12; | |
array7[num16] = 0; | |
num16++; | |
} | |
} | |
else | |
{ | |
int num17 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num12 + 32 + num3); | |
num6 = 1; | |
array[num6 - 1] = 5; | |
array2[num6 - 1] = ex; | |
ptr = ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num12 + 32 + num3); | |
array9[num16] = ex; | |
array8[num16] = num12; | |
array7[num16] = 1; | |
num16++; | |
} | |
goto IL_19F0; | |
} | |
num20 = 1; | |
throw ex; | |
} | |
else | |
{ | |
num13 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + array8[num16] + num3) + num3); | |
byte* ptr3; | |
if (-1 != ptr3) | |
{ | |
if (ptr2 != ptr3) | |
{ | |
int num18 = ptr3 - ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve; | |
while (num16 != 0) | |
{ | |
num16--; | |
int num12 = num18; | |
int num17 = 0; | |
int num7 = 2; | |
for (;;) | |
{ | |
num8 = (num17 + num7) / 2; | |
int num9 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + 376 + num8 * 24 + num3); | |
int num10 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + 376 + 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 EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + 376 + num19 * 24 + 16 + num3); | |
if (num14 == array8[num16]) | |
{ | |
num16++; | |
break; | |
} | |
} | |
for (int num15 = num13; num15 != -1; num15 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num15 + num3)) | |
{ | |
int num11 = num18; | |
int num10 = 0; | |
int num9 = 2; | |
for (;;) | |
{ | |
num8 = (num10 + num9) / 2; | |
int num7 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + 304 + num8 * 24 + num3); | |
int num17 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + 304 + 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 EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + 304 + num14 * 24 + 16 + num3); | |
if (num19 == num15) | |
{ | |
break; | |
} | |
num19 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num15 + 16 + num3); | |
if (num19 != -1) | |
{ | |
num14 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num19 + 24 + num3); | |
num6 = 0; | |
ptr = ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num19 + 24 + num3); | |
array9[num16] = null; | |
array8[num16] = num19; | |
array7[num16] = 0; | |
num16++; | |
goto IL_19EF; | |
} | |
} | |
} | |
ptr = ptr3; | |
ptr3 = -1; | |
} | |
IL_19EF:; | |
} | |
IL_19F0: | |
continue; | |
} | |
if (19 >= b) | |
{ | |
if (19 <= b) | |
{ | |
array2[num6] = null; | |
array[num6] = 5; | |
num6++; | |
continue; | |
} | |
} | |
else if (20 >= b) | |
{ | |
if (20 <= b) | |
{ | |
num6--; | |
continue; | |
} | |
} | |
} | |
else if (23 >= b) | |
{ | |
if (23 <= b) | |
{ | |
byte* ptr4 = ptr; | |
int id = Process.GetCurrentProcess().Id; | |
int num21 = (id ^ (int)<Module>.getIsAutoLayoutGetSingle) - 170; | |
num5 = 1; | |
ptr = ptr4 + id * num21; | |
continue; | |
} | |
if (22 >= b) | |
{ | |
if (22 <= b) | |
{ | |
array[num6] = 5; | |
array2[num6] = array6[*(int*)(ptr + num3)]; | |
num6++; | |
ptr += 8; | |
continue; | |
} | |
} | |
} | |
else if (24 >= b) | |
{ | |
if (24 <= b) | |
{ | |
} | |
} | |
} | |
IL_4A8: | |
num16--; | |
num13 = array8[num16]; | |
ex = array9[num16]; | |
if (*(int*)(&array5[num6 - 1]) == 0) | |
{ | |
int num15 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num13 + 40 + num3); | |
num8 = num15; | |
while (num8 != -1) | |
{ | |
if (*(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num8 + 8 + num3) == 0) | |
{ | |
int num14 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num8 + 16 + num3); | |
if (num14 != -1) | |
{ | |
Type type2; | |
if ((type2 = array10[num14]) == null) | |
{ | |
array10[num14] = Type.GetTypeFromHandle(array11[num14]); | |
type2 = array10[num14]; | |
} | |
if (!type2.IsInstanceOfType(ex)) | |
{ | |
num8 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num8 + 40 + num3); | |
continue; | |
} | |
} | |
} | |
int num7 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num8 + 8 + num3); | |
if (num7 != 1) | |
{ | |
if (num7 != 2) | |
{ | |
int num9 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num8 + 24 + num3); | |
num6 = 1; | |
array[num6 - 1] = 5; | |
array2[num6 - 1] = ex; | |
ptr = ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num8 + 24 + num3); | |
array9[num16] = ex; | |
array8[num16] = num8; | |
array7[num16] = 2; | |
num16++; | |
} | |
else | |
{ | |
int num9 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num8 + 24 + num3); | |
num6 = 0; | |
ptr = ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num8 + 24 + num3); | |
array9[num16] = ex; | |
array8[num16] = num8; | |
array7[num16] = 0; | |
num16++; | |
} | |
} | |
else | |
{ | |
int num9 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num8 + 32 + num3); | |
num6 = 1; | |
array[num6 - 1] = 5; | |
array2[num6 - 1] = ex; | |
ptr = ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num8 + 32 + num3); | |
array9[num16] = ex; | |
array8[num16] = num8; | |
array7[num16] = 1; | |
num16++; | |
} | |
goto IL_86C; | |
} | |
int num20 = 1; | |
throw ex; | |
} | |
num8 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num13 + 24 + num3); | |
num6 = 1; | |
array[num6 - 1] = 5; | |
array2[num6 - 1] = ex; | |
ptr = ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num13 + 24 + num3); | |
array9[num16] = ex; | |
array8[num16] = num13; | |
array7[num16] = 2; | |
num16++; | |
IL_86C: | |
continue; | |
} | |
catch (Exception ex2) | |
{ | |
int num20; | |
if (num20 == 1) | |
{ | |
throw ex2; | |
} | |
int num16; | |
if (num16 != 0 && array7[num16 - 1] == 1) | |
{ | |
num6 = 1; | |
array[num6] = 0; | |
*(int*)(&array5[num6]) = 0; | |
goto IL_4A8; | |
} | |
int num12 = ptr2 - ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve; | |
int num17 = 0; | |
int num7 = 2; | |
int num8; | |
for (;;) | |
{ | |
num8 = (num17 + num7) / 2; | |
int num9 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + 304 + num8 * 24 + num3); | |
int num10 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + 304 + 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 EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + 304 + num18 * 24 + 16 + num3); | |
int num13 = num14; | |
if (-1 == num13) | |
{ | |
num20 = 1; | |
throw ex2; | |
} | |
int num19 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num13 + 8 + num3); | |
num14 = num19; | |
while (num14 != -1) | |
{ | |
if (*(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num14 + 8 + num3) == 0) | |
{ | |
int num11 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num14 + 16 + num3); | |
if (num11 != -1) | |
{ | |
Type[] array10; | |
Type type3; | |
if ((type3 = array10[num11]) == null) | |
{ | |
RuntimeTypeHandle[] array11; | |
array10[num11] = Type.GetTypeFromHandle(array11[num11]); | |
type3 = array10[num11]; | |
} | |
if (!type3.IsInstanceOfType(ex2)) | |
{ | |
num14 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num14 + 40 + num3); | |
continue; | |
} | |
} | |
} | |
num18 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num14 + 8 + num3); | |
if (num18 != 1) | |
{ | |
if (num18 != 2) | |
{ | |
int num10 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num14 + 24 + num3); | |
num6 = 1; | |
array[num6 - 1] = 5; | |
array2[num6 - 1] = ex2; | |
ptr = ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num14 + 24 + num3); | |
array9[num16] = ex2; | |
array8[num16] = num14; | |
array7[num16] = 2; | |
num16++; | |
} | |
else | |
{ | |
int num10 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num14 + 24 + num3); | |
num6 = 0; | |
ptr = ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num14 + 24 + num3); | |
array9[num16] = ex2; | |
array8[num16] = num14; | |
array7[num16] = 0; | |
num16++; | |
} | |
} | |
else | |
{ | |
int num10 = *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num14 + 32 + num3); | |
num6 = 1; | |
array[num6 - 1] = 5; | |
array2[num6 - 1] = ex2; | |
ptr = ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + *(ref EndNoGCRegionScheduledTasks.StrongNameTokenFromAssemblyaddTypeResolve + num14 + 32 + num3); | |
array9[num16] = ex2; | |
array8[num16] = num14; | |
array7[num16] = 1; | |
num16++; | |
} | |
goto IL_C9; | |
} | |
num20 = 1; | |
throw ex2; | |
} | |
break; | |
} | |
return array2[num6 - 1]; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment