// Token: 0x060016B1 RID: 5809 RVA: 0x00036B40 File Offset: 0x00034D40
 public unsafe void method_6(Rectangle bounds, out Class125 result)
 {
     if (bounds.Width > 0 && bounds.Height > 0)
     {
         if (this.Width >= bounds.Right && this.Height >= bounds.Bottom)
         {
             result = new Class125(new Size(bounds.Width, bounds.Height));
             using (new Class125.Class153(this))
             {
                 using (new Class125.Class153(result))
                 {
                     Struct33 *ptr = result.pStruct33_0;
                     for (int i = bounds.Top; i < bounds.Bottom; i++)
                     {
                         Struct33 *ptr2 = this.pStruct33_0 + i * this.rectangle_0.Width + bounds.Left;
                         for (int j = 0; j < bounds.Width; j++)
                         {
                             *ptr = *ptr2;
                             ptr++;
                             ptr2++;
                         }
                     }
                 }
                 return;
             }
         }
         throw new ArgumentOutOfRangeException("bounds", "width or height too large");
     }
     throw new ArgumentOutOfRangeException("bounds", "width or height too small");
 }
 // Token: 0x060016B2 RID: 5810 RVA: 0x00036C90 File Offset: 0x00034E90
 public unsafe static void smethod_1(Bitmap original)
 {
     using (Class125 @class = new Class125(original))
     {
         using (new Class125.Class153(@class))
         {
             Struct33 *ptr = @class.pStruct33_0;
             int       num = original.Height * original.Width;
             for (int i = 0; i < num; i++)
             {
                 byte b   = (byte)((double)ptr->R * 0.3 + (double)ptr->G * 0.59 + (double)ptr->B * 0.11);
                 *    ptr = new Struct33(b, b, b, ptr->A);
                 ptr++;
             }
         }
     }
 }
        // Token: 0x060016B3 RID: 5811 RVA: 0x00036D5C File Offset: 0x00034F5C
        public unsafe static Class125 smethod_2(Bitmap[] bitmaps)
        {
            if (bitmaps == null)
            {
                throw new ArgumentNullException("bitmaps");
            }
            if (bitmaps.Length != 0 && bitmaps.Length <= 255)
            {
                Size size = bitmaps[0].Size;
                for (int i = 1; i < bitmaps.Length; i++)
                {
                    if (bitmaps[i].Size != size)
                    {
IL_28C:
                        throw new ArgumentException("To mode bitmaps, all must have same size.");
                    }
                }
                Class125 @class = null;
                try
                {
                    @class = new Class125(size);
                    using (Class125.Class155 class2 = new Class125.Class155(bitmaps))
                    {
                        using (new Class125.Class154(class2))
                        {
                            using (new Class125.Class153(@class))
                            {
                                int                num  = bitmaps.Length;
                                int                num2 = Class227.smethod_0(num);
                                byte               b    = 0;
                                Struct33 *         ptr  = @class.pStruct33_0;
                                Struct33 **        ptr2;
                                Struct33 **        ptr3;
                                int *              ptr4;
                                int *              ptr5;
                                Class125.Struct18 *ptr6;
                                int                num3;
                                checked
                                {
                                    ptr2 = stackalloc Struct33 *[unchecked ((UIntPtr)num) * (UIntPtr)sizeof(Struct33 *)];