Skip to content

Instantly share code, notes, and snippets.

@Softanics
Created January 21, 2022 12:55
Show Gist options
  • Save Softanics/46f385d3c11c12f6f6b1c25709393fb9 to your computer and use it in GitHub Desktop.
Save Softanics/46f385d3c11c12f6f6b1c25709393fb9 to your computer and use it in GitHub Desktop.
// 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