internal unsafe static Assembly PrepareIterator(object def, ResolveEventArgs cfg) { //Discarded unreachable code: IL_0002 //IL_0003: Incompatible stack heights: 0 vs 1 //IL_02e0: Incompatible stack heights: 0 vs 2 //IL_02ea: Incompatible stack heights: 0 vs 1 //IL_02fe: Incompatible stack heights: 0 vs 1 //IL_030e: Incompatible stack heights: 0 vs 1 //IL_0314: Incompatible stack heights: 0 vs 1 //IL_031e: Incompatible stack heights: 0 vs 1 void * ptr = stackalloc byte[16]; ClassReader classReader = default(ClassReader); _ = ref classReader; _ = ((ResolveEventArgs) /*Error near IL_02ea: Stack underflow*/).Name; *(ClassReader *)/*Error near IL_02f4: Stack underflow*/ = new ClassReader((string) /*Error near IL_02f4: Stack underflow*/); string text2; bool flag; bool flag2; while (true) { classReader.ReadIterator(isparam: false); string text = (string) /*Error near IL_0304: Stack underflow*/; _ = Encoding.UTF8; ((Encoding) /*Error near IL_031e: Stack underflow*/).GetBytes((string) /*Error near IL_031e: Stack underflow*/); string b = Convert.ToBase64String((byte[]) /*Error near IL_0040: Stack underflow*/); string[] array = "e2RiYTA4ZDg4LTkyM2YtNGQ1NS1iY2U4LTNmYWIyNzQwZThjN30sIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49M2U1NjM1MDY5M2Y3MzU1ZQ==,[z]{f0ac8481-2a23-4c93-9d4b-c36e2fae6ec0},e2RiYTA4ZDg4LTkyM2YtNGQ1NS1iY2U4LTNmYWIyNzQwZThjN30=,[z]{f0ac8481-2a23-4c93-9d4b-c36e2fae6ec0}".Split(','); text2 = string.Empty; flag = false; flag2 = false; *(int *)ptr = 0; while (*(int *)ptr < array.Length - 1) { if (array[*(int *)ptr] == b) { text2 = array[*(int *)ptr + 1]; break; } *(int *)ptr += 2; } if (text2.Length != 0 || classReader._MethodReader.Length != 0) { break; } b = Convert.ToBase64String(Encoding.UTF8.GetBytes(classReader.m_RequestReader)); *(int *)((byte *)ptr + 4) = 0; while (*(int *)((byte *)ptr + 4) < array.Length - 1) { if (!(array[*(int *)((byte *)ptr + 4)] == b)) { *(int *)((byte *)ptr + 4) += 2; continue; } goto IL_00ed; } break; IL_00ed: if (0 == 0) { text2 = array[*(int *)((byte *)ptr + 4) + 1]; break; } } if (text2.Length > 0) { if (text2[0] == '[') { *(int *)((byte *)ptr + 8) = text2.IndexOf(']'); string text3 = text2.Substring(1, *(int *)((byte *)ptr + 8) - 1); flag = (text3.IndexOf('z') >= 0); flag2 = (text3.IndexOf('t') >= 0); text2 = text2.Substring(*(int *)((byte *)ptr + 8) + 1); } lock (m_BroadcasterReader) { if (m_BroadcasterReader.ContainsKey(text2)) { return(m_BroadcasterReader[text2]); } Stream manifestResourceStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(text2); if (manifestResourceStream != null) { *(int *)((byte *)ptr + 12) = (int)manifestResourceStream.Length; byte[] array2 = new byte[*(int *)((byte *)ptr + 12)]; manifestResourceStream.Read(array2, 0, *(int *)((byte *)ptr + 12)); if (flag) { array2 = PolicyReader.ComputeIterator(array2); } Assembly assembly = null; if (!flag2) { try { assembly = Assembly.Load(array2); } catch (FileLoadException) { flag2 = true; } catch (BadImageFormatException) { flag2 = true; } } if (flag2) { try { string text4 = $"{Path.GetTempPath()}{text2}\\"; Directory.CreateDirectory(text4); string text5 = text4 + classReader.m_RequestReader + ".dll"; if (!File.Exists(text5)) { FileStream fileStream = File.OpenWrite(text5); fileStream.Write(array2, 0, array2.Length); fileStream.Close(); IncludeIterator(text5, null, 4); IncludeIterator(text4, null, 4); } assembly = Assembly.LoadFile(text5); } catch { } } m_BroadcasterReader[text2] = assembly; return(assembly); } } } return(null); }