public class com.sun.imageio.plugins.wbmp.WBMPImageWriter extends javax.imageio.ImageWriter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.imageio.plugins.wbmp.WBMPImageWriter
  super_class: javax.imageio.ImageWriter
{
  private javax.imageio.stream.ImageOutputStream stream;
    descriptor: Ljavax/imageio/stream/ImageOutputStream;
    flags: (0x0002) ACC_PRIVATE

  private static int getNumBits(int);
    descriptor: (I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // int intValue
         0: .line 68
            bipush 32
            istore 1 /* numBits */
        start local 1 // int numBits
         1: .line 69
            ldc -2147483648
            istore 2 /* mask */
        start local 2 // int mask
         2: .line 70
            goto 5
         3: .line 71
      StackMap locals: int int
      StackMap stack:
            iinc 1 /* numBits */ -1
         4: .line 72
            iload 2 /* mask */
            iconst_1
            iushr
            istore 2 /* mask */
         5: .line 70
      StackMap locals:
      StackMap stack:
            iload 2 /* mask */
            ifeq 6
            iload 0 /* intValue */
            iload 2 /* mask */
            iand
            ifeq 3
         6: .line 74
      StackMap locals:
      StackMap stack:
            iload 1 /* numBits */
            ireturn
        end local 2 // int mask
        end local 1 // int numBits
        end local 0 // int intValue
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0  intValue  I
            1    7     1   numBits  I
            2    7     2      mask  I
    MethodParameters:
          Name  Flags
      intValue  

  private static byte[] intToMultiByte(int);
    descriptor: (I)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // int intValue
         0: .line 79
            iload 0 /* intValue */
            invokestatic com.sun.imageio.plugins.wbmp.WBMPImageWriter.getNumBits:(I)I
            istore 1 /* numBitsLeft */
        start local 1 // int numBitsLeft
         1: .line 80
            iload 1 /* numBitsLeft */
            bipush 6
            iadd
            bipush 7
            idiv
            newarray 8
            astore 2 /* multiBytes */
        start local 2 // byte[] multiBytes
         2: .line 82
            aload 2 /* multiBytes */
            arraylength
            iconst_1
            isub
            istore 3 /* maxIndex */
        start local 3 // int maxIndex
         3: .line 83
            iconst_0
            istore 4 /* b */
        start local 4 // int b
         4: goto 9
         5: .line 84
      StackMap locals: int int byte[] int int
      StackMap stack:
            aload 2 /* multiBytes */
            iload 4 /* b */
            iload 0 /* intValue */
            iload 3 /* maxIndex */
            iload 4 /* b */
            isub
            bipush 7
            imul
            iushr
            bipush 127
            iand
            i2b
            bastore
         6: .line 85
            iload 4 /* b */
            iload 3 /* maxIndex */
            if_icmpeq 8
         7: .line 86
            aload 2 /* multiBytes */
            iload 4 /* b */
            dup2
            baload
            bipush -128
            ior
            i2b
            bastore
         8: .line 83
      StackMap locals:
      StackMap stack:
            iinc 4 /* b */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* b */
            iload 3 /* maxIndex */
            if_icmple 5
        end local 4 // int b
        10: .line 90
            aload 2 /* multiBytes */
            areturn
        end local 3 // int maxIndex
        end local 2 // byte[] multiBytes
        end local 1 // int numBitsLeft
        end local 0 // int intValue
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0     intValue  I
            1   11     1  numBitsLeft  I
            2   11     2   multiBytes  [B
            3   11     3     maxIndex  I
            4   10     4            b  I
    MethodParameters:
          Name  Flags
      intValue  

  public void <init>(javax.imageio.spi.ImageWriterSpi);
    descriptor: (Ljavax/imageio/spi/ImageWriterSpi;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.imageio.plugins.wbmp.WBMPImageWriter this
        start local 1 // javax.imageio.spi.ImageWriterSpi originator
         0: .line 97
            aload 0 /* this */
            aload 1 /* originator */
            invokespecial javax.imageio.ImageWriter.<init>:(Ljavax/imageio/spi/ImageWriterSpi;)V
         1: .line 64
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.wbmp.WBMPImageWriter.stream:Ljavax/imageio/stream/ImageOutputStream;
         2: .line 98
            return
        end local 1 // javax.imageio.spi.ImageWriterSpi originator
        end local 0 // com.sun.imageio.plugins.wbmp.WBMPImageWriter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/sun/imageio/plugins/wbmp/WBMPImageWriter;
            0    3     1  originator  Ljavax/imageio/spi/ImageWriterSpi;
    MethodParameters:
            Name  Flags
      originator  

  public void setOutput(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.imageio.plugins.wbmp.WBMPImageWriter this
        start local 1 // java.lang.Object output
         0: .line 101
            aload 0 /* this */
            aload 1 /* output */
            invokespecial javax.imageio.ImageWriter.setOutput:(Ljava/lang/Object;)V
         1: .line 102
            aload 1 /* output */
            ifnull 6
         2: .line 103
            aload 1 /* output */
            instanceof javax.imageio.stream.ImageOutputStream
            ifne 4
         3: .line 104
            new java.lang.IllegalArgumentException
            dup
            ldc "WBMPImageWriter"
            invokestatic com.sun.imageio.plugins.common.I18N.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 105
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* output */
            checkcast javax.imageio.stream.ImageOutputStream
            putfield com.sun.imageio.plugins.wbmp.WBMPImageWriter.stream:Ljavax/imageio/stream/ImageOutputStream;
         5: .line 106
            goto 7
         6: .line 107
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.wbmp.WBMPImageWriter.stream:Ljavax/imageio/stream/ImageOutputStream;
         7: .line 108
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object output
        end local 0 // com.sun.imageio.plugins.wbmp.WBMPImageWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lcom/sun/imageio/plugins/wbmp/WBMPImageWriter;
            0    8     1  output  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      output  

  public javax.imageio.metadata.IIOMetadata getDefaultStreamMetadata(javax.imageio.ImageWriteParam);
    descriptor: (Ljavax/imageio/ImageWriteParam;)Ljavax/imageio/metadata/IIOMetadata;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.sun.imageio.plugins.wbmp.WBMPImageWriter this
        start local 1 // javax.imageio.ImageWriteParam param
         0: .line 111
            aconst_null
            areturn
        end local 1 // javax.imageio.ImageWriteParam param
        end local 0 // com.sun.imageio.plugins.wbmp.WBMPImageWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/sun/imageio/plugins/wbmp/WBMPImageWriter;
            0    1     1  param  Ljavax/imageio/ImageWriteParam;
    MethodParameters:
       Name  Flags
      param  

  public javax.imageio.metadata.IIOMetadata getDefaultImageMetadata(javax.imageio.ImageTypeSpecifier, javax.imageio.ImageWriteParam);
    descriptor: (Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;)Ljavax/imageio/metadata/IIOMetadata;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.sun.imageio.plugins.wbmp.WBMPImageWriter this
        start local 1 // javax.imageio.ImageTypeSpecifier imageType
        start local 2 // javax.imageio.ImageWriteParam param
         0: .line 116
            new com.sun.imageio.plugins.wbmp.WBMPMetadata
            dup
            invokespecial com.sun.imageio.plugins.wbmp.WBMPMetadata.<init>:()V
            astore 3 /* meta */
        start local 3 // com.sun.imageio.plugins.wbmp.WBMPMetadata meta
         1: .line 117
            aload 3 /* meta */
            iconst_0
            putfield com.sun.imageio.plugins.wbmp.WBMPMetadata.wbmpType:I
         2: .line 118
            aload 3 /* meta */
            areturn
        end local 3 // com.sun.imageio.plugins.wbmp.WBMPMetadata meta
        end local 2 // javax.imageio.ImageWriteParam param
        end local 1 // javax.imageio.ImageTypeSpecifier imageType
        end local 0 // com.sun.imageio.plugins.wbmp.WBMPImageWriter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lcom/sun/imageio/plugins/wbmp/WBMPImageWriter;
            0    3     1  imageType  Ljavax/imageio/ImageTypeSpecifier;
            0    3     2      param  Ljavax/imageio/ImageWriteParam;
            1    3     3       meta  Lcom/sun/imageio/plugins/wbmp/WBMPMetadata;
    MethodParameters:
           Name  Flags
      imageType  
      param      

  public javax.imageio.metadata.IIOMetadata convertStreamMetadata(javax.imageio.metadata.IIOMetadata, javax.imageio.ImageWriteParam);
    descriptor: (Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/ImageWriteParam;)Ljavax/imageio/metadata/IIOMetadata;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // com.sun.imageio.plugins.wbmp.WBMPImageWriter this
        start local 1 // javax.imageio.metadata.IIOMetadata inData
        start local 2 // javax.imageio.ImageWriteParam param
         0: .line 123
            aconst_null
            areturn
        end local 2 // javax.imageio.ImageWriteParam param
        end local 1 // javax.imageio.metadata.IIOMetadata inData
        end local 0 // com.sun.imageio.plugins.wbmp.WBMPImageWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/sun/imageio/plugins/wbmp/WBMPImageWriter;
            0    1     1  inData  Ljavax/imageio/metadata/IIOMetadata;
            0    1     2   param  Ljavax/imageio/ImageWriteParam;
    MethodParameters:
        Name  Flags
      inData  
      param   

  public javax.imageio.metadata.IIOMetadata convertImageMetadata(javax.imageio.metadata.IIOMetadata, javax.imageio.ImageTypeSpecifier, javax.imageio.ImageWriteParam);
    descriptor: (Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;)Ljavax/imageio/metadata/IIOMetadata;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=4, args_size=4
        start local 0 // com.sun.imageio.plugins.wbmp.WBMPImageWriter this
        start local 1 // javax.imageio.metadata.IIOMetadata metadata
        start local 2 // javax.imageio.ImageTypeSpecifier type
        start local 3 // javax.imageio.ImageWriteParam param
         0: .line 129
            aconst_null
            areturn
        end local 3 // javax.imageio.ImageWriteParam param
        end local 2 // javax.imageio.ImageTypeSpecifier type
        end local 1 // javax.imageio.metadata.IIOMetadata metadata
        end local 0 // com.sun.imageio.plugins.wbmp.WBMPImageWriter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/sun/imageio/plugins/wbmp/WBMPImageWriter;
            0    1     1  metadata  Ljavax/imageio/metadata/IIOMetadata;
            0    1     2      type  Ljavax/imageio/ImageTypeSpecifier;
            0    1     3     param  Ljavax/imageio/ImageWriteParam;
    MethodParameters:
          Name  Flags
      metadata  
      type      
      param     

  public boolean canWriteRasters();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.wbmp.WBMPImageWriter this
         0: .line 133
            iconst_1
            ireturn
        end local 0 // com.sun.imageio.plugins.wbmp.WBMPImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/imageio/plugins/wbmp/WBMPImageWriter;

  public void write(javax.imageio.metadata.IIOMetadata, javax.imageio.IIOImage, javax.imageio.ImageWriteParam);
    descriptor: (Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/IIOImage;Ljavax/imageio/ImageWriteParam;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=27, args_size=4
        start local 0 // com.sun.imageio.plugins.wbmp.WBMPImageWriter this
        start local 1 // javax.imageio.metadata.IIOMetadata streamMetadata
        start local 2 // javax.imageio.IIOImage image
        start local 3 // javax.imageio.ImageWriteParam param
         0: .line 140
            aload 0 /* this */
            getfield com.sun.imageio.plugins.wbmp.WBMPImageWriter.stream:Ljavax/imageio/stream/ImageOutputStream;
            ifnonnull 2
         1: .line 141
            new java.lang.IllegalStateException
            dup
            ldc "WBMPImageWriter3"
            invokestatic com.sun.imageio.plugins.common.I18N.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 144
      StackMap locals:
      StackMap stack:
            aload 2 /* image */
            ifnonnull 4
         3: .line 145
            new java.lang.IllegalArgumentException
            dup
            ldc "WBMPImageWriter4"
            invokestatic com.sun.imageio.plugins.common.I18N.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 148
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.wbmp.WBMPImageWriter.clearAbortRequest:()V
         5: .line 149
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.imageio.plugins.wbmp.WBMPImageWriter.processImageStarted:(I)V
         6: .line 150
            aload 3 /* param */
            ifnonnull 8
         7: .line 151
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.wbmp.WBMPImageWriter.getDefaultWriteParam:()Ljavax/imageio/ImageWriteParam;
            astore 3 /* param */
         8: .line 153
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* input */
        start local 4 // java.awt.image.RenderedImage input
         9: .line 154
            aconst_null
            astore 5 /* inputRaster */
        start local 5 // java.awt.image.Raster inputRaster
        10: .line 155
            aload 2 /* image */
            invokevirtual javax.imageio.IIOImage.hasRaster:()Z
            istore 6 /* writeRaster */
        start local 6 // boolean writeRaster
        11: .line 156
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getSourceRegion:()Ljava/awt/Rectangle;
            astore 7 /* sourceRegion */
        start local 7 // java.awt.Rectangle sourceRegion
        12: .line 157
            aconst_null
            astore 8 /* sampleModel */
        start local 8 // java.awt.image.SampleModel sampleModel
        13: .line 159
            iload 6 /* writeRaster */
            ifeq 17
        14: .line 160
            aload 2 /* image */
            invokevirtual javax.imageio.IIOImage.getRaster:()Ljava/awt/image/Raster;
            astore 5 /* inputRaster */
        15: .line 161
            aload 5 /* inputRaster */
            invokevirtual java.awt.image.Raster.getSampleModel:()Ljava/awt/image/SampleModel;
            astore 8 /* sampleModel */
        16: .line 162
            goto 20
        17: .line 163
      StackMap locals: com.sun.imageio.plugins.wbmp.WBMPImageWriter javax.imageio.metadata.IIOMetadata javax.imageio.IIOImage javax.imageio.ImageWriteParam java.awt.image.RenderedImage java.awt.image.Raster int java.awt.Rectangle java.awt.image.SampleModel
      StackMap stack:
            aload 2 /* image */
            invokevirtual javax.imageio.IIOImage.getRenderedImage:()Ljava/awt/image/RenderedImage;
            astore 4 /* input */
        18: .line 164
            aload 4 /* input */
            invokeinterface java.awt.image.RenderedImage.getSampleModel:()Ljava/awt/image/SampleModel;
            astore 8 /* sampleModel */
        19: .line 166
            aload 4 /* input */
            invokeinterface java.awt.image.RenderedImage.getData:()Ljava/awt/image/Raster;
            astore 5 /* inputRaster */
        20: .line 169
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 8 /* sampleModel */
            invokevirtual com.sun.imageio.plugins.wbmp.WBMPImageWriter.checkSampleModel:(Ljava/awt/image/SampleModel;)V
        21: .line 170
            aload 7 /* sourceRegion */
            ifnonnull 23
        22: .line 171
            aload 5 /* inputRaster */
            invokevirtual java.awt.image.Raster.getBounds:()Ljava/awt/Rectangle;
            astore 7 /* sourceRegion */
            goto 24
        23: .line 173
      StackMap locals:
      StackMap stack:
            aload 7 /* sourceRegion */
            aload 5 /* inputRaster */
            invokevirtual java.awt.image.Raster.getBounds:()Ljava/awt/Rectangle;
            invokevirtual java.awt.Rectangle.intersection:(Ljava/awt/Rectangle;)Ljava/awt/Rectangle;
            astore 7 /* sourceRegion */
        24: .line 175
      StackMap locals:
      StackMap stack:
            aload 7 /* sourceRegion */
            invokevirtual java.awt.Rectangle.isEmpty:()Z
            ifeq 26
        25: .line 176
            new java.lang.RuntimeException
            dup
            ldc "WBMPImageWriter1"
            invokestatic com.sun.imageio.plugins.common.I18N.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        26: .line 178
      StackMap locals:
      StackMap stack:
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getSourceXSubsampling:()I
            istore 9 /* scaleX */
        start local 9 // int scaleX
        27: .line 179
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getSourceYSubsampling:()I
            istore 10 /* scaleY */
        start local 10 // int scaleY
        28: .line 180
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getSubsamplingXOffset:()I
            istore 11 /* xOffset */
        start local 11 // int xOffset
        29: .line 181
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getSubsamplingYOffset:()I
            istore 12 /* yOffset */
        start local 12 // int yOffset
        30: .line 183
            aload 7 /* sourceRegion */
            iload 11 /* xOffset */
            iload 12 /* yOffset */
            invokevirtual java.awt.Rectangle.translate:(II)V
        31: .line 184
            aload 7 /* sourceRegion */
            dup
            getfield java.awt.Rectangle.width:I
            iload 11 /* xOffset */
            isub
            putfield java.awt.Rectangle.width:I
        32: .line 185
            aload 7 /* sourceRegion */
            dup
            getfield java.awt.Rectangle.height:I
            iload 12 /* yOffset */
            isub
            putfield java.awt.Rectangle.height:I
        33: .line 187
            aload 7 /* sourceRegion */
            getfield java.awt.Rectangle.x:I
            iload 9 /* scaleX */
            idiv
            istore 13 /* minX */
        start local 13 // int minX
        34: .line 188
            aload 7 /* sourceRegion */
            getfield java.awt.Rectangle.y:I
            iload 10 /* scaleY */
            idiv
            istore 14 /* minY */
        start local 14 // int minY
        35: .line 189
            aload 7 /* sourceRegion */
            getfield java.awt.Rectangle.width:I
            iload 9 /* scaleX */
            iadd
            iconst_1
            isub
            iload 9 /* scaleX */
            idiv
            istore 15 /* w */
        start local 15 // int w
        36: .line 190
            aload 7 /* sourceRegion */
            getfield java.awt.Rectangle.height:I
            iload 10 /* scaleY */
            iadd
            iconst_1
            isub
            iload 10 /* scaleY */
            idiv
            istore 16 /* h */
        start local 16 // int h
        37: .line 192
            new java.awt.Rectangle
            dup
            iload 13 /* minX */
            iload 14 /* minY */
            iload 15 /* w */
            iload 16 /* h */
            invokespecial java.awt.Rectangle.<init>:(IIII)V
            astore 17 /* destinationRegion */
        start local 17 // java.awt.Rectangle destinationRegion
        38: .line 193
            aload 8 /* sampleModel */
            iload 15 /* w */
            iload 16 /* h */
            invokevirtual java.awt.image.SampleModel.createCompatibleSampleModel:(II)Ljava/awt/image/SampleModel;
            astore 8 /* sampleModel */
        39: .line 195
            aload 8 /* sampleModel */
            astore 18 /* destSM */
        start local 18 // java.awt.image.SampleModel destSM
        40: .line 198
            aload 8 /* sampleModel */
            invokevirtual java.awt.image.SampleModel.getDataType:()I
            ifne 43
        41: .line 199
            aload 8 /* sampleModel */
            instanceof java.awt.image.MultiPixelPackedSampleModel
            ifeq 43
        42: .line 200
            aload 8 /* sampleModel */
            checkcast java.awt.image.MultiPixelPackedSampleModel
            invokevirtual java.awt.image.MultiPixelPackedSampleModel.getDataBitOffset:()I
            ifeq 48
        43: .line 202
      StackMap locals: com.sun.imageio.plugins.wbmp.WBMPImageWriter javax.imageio.metadata.IIOMetadata javax.imageio.IIOImage javax.imageio.ImageWriteParam java.awt.image.RenderedImage java.awt.image.Raster int java.awt.Rectangle java.awt.image.SampleModel int int int int int int int int java.awt.Rectangle java.awt.image.SampleModel
      StackMap stack:
            new java.awt.image.MultiPixelPackedSampleModel
            dup
            iconst_0
        44: .line 203
            iload 15 /* w */
            iload 16 /* h */
            iconst_1
        45: .line 204
            iload 15 /* w */
            bipush 7
            iadd
            iconst_3
            ishr
            iconst_0
        46: .line 202
            invokespecial java.awt.image.MultiPixelPackedSampleModel.<init>:(IIIIII)V
        47: .line 201
            astore 18 /* destSM */
        48: .line 207
      StackMap locals:
      StackMap stack:
            aload 17 /* destinationRegion */
            aload 7 /* sourceRegion */
            invokevirtual java.awt.Rectangle.equals:(Ljava/lang/Object;)Z
            ifne 76
        49: .line 208
            iload 9 /* scaleX */
            iconst_1
            if_icmpne 55
            iload 10 /* scaleY */
            iconst_1
            if_icmpne 55
        50: .line 209
            aload 5 /* inputRaster */
            aload 5 /* inputRaster */
            invokevirtual java.awt.image.Raster.getMinX:()I
        51: .line 210
            aload 5 /* inputRaster */
            invokevirtual java.awt.image.Raster.getMinY:()I
        52: .line 211
            iload 15 /* w */
            iload 16 /* h */
            iload 13 /* minX */
            iload 14 /* minY */
            aconst_null
        53: .line 209
            invokevirtual java.awt.image.Raster.createChild:(IIIIII[I)Ljava/awt/image/Raster;
            astore 5 /* inputRaster */
        54: .line 211
            goto 76
        55: .line 213
      StackMap locals:
      StackMap stack:
            aload 18 /* destSM */
        56: .line 214
            new java.awt.Point
            dup
            iload 13 /* minX */
            iload 14 /* minY */
            invokespecial java.awt.Point.<init>:(II)V
        57: .line 213
            invokestatic java.awt.image.Raster.createWritableRaster:(Ljava/awt/image/SampleModel;Ljava/awt/Point;)Ljava/awt/image/WritableRaster;
            astore 19 /* ras */
        start local 19 // java.awt.image.WritableRaster ras
        58: .line 216
            aload 19 /* ras */
            invokevirtual java.awt.image.WritableRaster.getDataBuffer:()Ljava/awt/image/DataBuffer;
            checkcast java.awt.image.DataBufferByte
            invokevirtual java.awt.image.DataBufferByte.getData:()[B
            astore 20 /* data */
        start local 20 // byte[] data
        59: .line 218
            iload 14 /* minY */
            istore 21 /* j */
        start local 21 // int j
        60: aload 7 /* sourceRegion */
            getfield java.awt.Rectangle.y:I
            istore 22 /* y */
        start local 22 // int y
        61: iconst_0
            istore 23 /* k */
        start local 23 // int k
        62: .line 219
            goto 73
        63: .line 221
      StackMap locals: com.sun.imageio.plugins.wbmp.WBMPImageWriter javax.imageio.metadata.IIOMetadata javax.imageio.IIOImage javax.imageio.ImageWriteParam java.awt.image.RenderedImage java.awt.image.Raster int java.awt.Rectangle java.awt.image.SampleModel int int int int int int int int java.awt.Rectangle java.awt.image.SampleModel java.awt.image.WritableRaster byte[] int int int
      StackMap stack:
            iconst_0
            istore 24 /* i */
        start local 24 // int i
        64: aload 7 /* sourceRegion */
            getfield java.awt.Rectangle.x:I
            istore 25 /* x */
        start local 25 // int x
        65: .line 222
            goto 69
        66: .line 223
      StackMap locals: int int
      StackMap stack:
            aload 5 /* inputRaster */
            iload 25 /* x */
            iload 22 /* y */
            iconst_0
            invokevirtual java.awt.image.Raster.getSample:(III)I
            istore 26 /* v */
        start local 26 // int v
        67: .line 224
            aload 20 /* data */
            iload 23 /* k */
            iload 24 /* i */
            iconst_3
            ishr
            iadd
            dup2
            baload
            iload 26 /* v */
            bipush 7
            iload 24 /* i */
            bipush 7
            iand
            isub
            ishl
            ior
            i2b
            bastore
        end local 26 // int v
        68: .line 222
            iinc 24 /* i */ 1
            iload 25 /* x */
            iload 9 /* scaleX */
            iadd
            istore 25 /* x */
      StackMap locals:
      StackMap stack:
        69: iload 24 /* i */
            iload 15 /* w */
        70: .line 221
            if_icmplt 66
        end local 25 // int x
        end local 24 // int i
        71: .line 226
            iload 23 /* k */
            iload 15 /* w */
            bipush 7
            iadd
            iconst_3
            ishr
            iadd
            istore 23 /* k */
        72: .line 219
            iinc 21 /* j */ 1
            iload 22 /* y */
            iload 10 /* scaleY */
            iadd
            istore 22 /* y */
      StackMap locals:
      StackMap stack:
        73: iload 21 /* j */
            iload 14 /* minY */
            iload 16 /* h */
            iadd
        74: .line 218
            if_icmplt 63
        end local 23 // int k
        end local 22 // int y
        end local 21 // int j
        75: .line 228
            aload 19 /* ras */
            astore 5 /* inputRaster */
        end local 20 // byte[] data
        end local 19 // java.awt.image.WritableRaster ras
        76: .line 233
      StackMap locals: com.sun.imageio.plugins.wbmp.WBMPImageWriter javax.imageio.metadata.IIOMetadata javax.imageio.IIOImage javax.imageio.ImageWriteParam java.awt.image.RenderedImage java.awt.image.Raster int java.awt.Rectangle java.awt.image.SampleModel int int int int int int int int java.awt.Rectangle java.awt.image.SampleModel
      StackMap stack:
            aload 18 /* destSM */
            aload 5 /* inputRaster */
            invokevirtual java.awt.image.Raster.getSampleModel:()Ljava/awt/image/SampleModel;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 85
        77: .line 235
            aload 18 /* destSM */
        78: .line 236
            new java.awt.Point
            dup
            aload 5 /* inputRaster */
            invokevirtual java.awt.image.Raster.getMinX:()I
        79: .line 237
            aload 5 /* inputRaster */
            invokevirtual java.awt.image.Raster.getMinY:()I
        80: .line 236
            invokespecial java.awt.Point.<init>:(II)V
        81: .line 235
            invokestatic java.awt.image.Raster.createWritableRaster:(Ljava/awt/image/SampleModel;Ljava/awt/Point;)Ljava/awt/image/WritableRaster;
        82: .line 234
            astore 19 /* raster */
        start local 19 // java.awt.image.WritableRaster raster
        83: .line 238
            aload 19 /* raster */
            aload 5 /* inputRaster */
            invokevirtual java.awt.image.WritableRaster.setRect:(Ljava/awt/image/Raster;)V
        84: .line 239
            aload 19 /* raster */
            astore 5 /* inputRaster */
        end local 19 // java.awt.image.WritableRaster raster
        85: .line 243
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 19 /* isWhiteZero */
        start local 19 // boolean isWhiteZero
        86: .line 244
            iload 6 /* writeRaster */
            ifne 91
            aload 4 /* input */
            invokeinterface java.awt.image.RenderedImage.getColorModel:()Ljava/awt/image/ColorModel;
            instanceof java.awt.image.IndexColorModel
            ifeq 91
        87: .line 245
            aload 4 /* input */
            invokeinterface java.awt.image.RenderedImage.getColorModel:()Ljava/awt/image/ColorModel;
            checkcast java.awt.image.IndexColorModel
            astore 20 /* icm */
        start local 20 // java.awt.image.IndexColorModel icm
        88: .line 246
            aload 20 /* icm */
            iconst_0
            invokevirtual java.awt.image.IndexColorModel.getRed:(I)I
            aload 20 /* icm */
            iconst_1
            invokevirtual java.awt.image.IndexColorModel.getRed:(I)I
            if_icmple 89
            iconst_1
            goto 90
      StackMap locals: int java.awt.image.IndexColorModel
      StackMap stack:
        89: iconst_0
      StackMap locals:
      StackMap stack: int
        90: istore 19 /* isWhiteZero */
        end local 20 // java.awt.image.IndexColorModel icm
        91: .line 251
      StackMap locals:
      StackMap stack:
            aload 18 /* destSM */
            checkcast java.awt.image.MultiPixelPackedSampleModel
            invokevirtual java.awt.image.MultiPixelPackedSampleModel.getScanlineStride:()I
        92: .line 250
            istore 20 /* lineStride */
        start local 20 // int lineStride
        93: .line 252
            iload 15 /* w */
            bipush 7
            iadd
            bipush 8
            idiv
            istore 21 /* bytesPerRow */
        start local 21 // int bytesPerRow
        94: .line 253
            aload 5 /* inputRaster */
            invokevirtual java.awt.image.Raster.getDataBuffer:()Ljava/awt/image/DataBuffer;
            checkcast java.awt.image.DataBufferByte
            invokevirtual java.awt.image.DataBufferByte.getData:()[B
            astore 22 /* bdata */
        start local 22 // byte[] bdata
        95: .line 256
            aload 0 /* this */
            getfield com.sun.imageio.plugins.wbmp.WBMPImageWriter.stream:Ljavax/imageio/stream/ImageOutputStream;
            iconst_0
            invokeinterface javax.imageio.stream.ImageOutputStream.write:(I)V
        96: .line 257
            aload 0 /* this */
            getfield com.sun.imageio.plugins.wbmp.WBMPImageWriter.stream:Ljavax/imageio/stream/ImageOutputStream;
            iconst_0
            invokeinterface javax.imageio.stream.ImageOutputStream.write:(I)V
        97: .line 258
            aload 0 /* this */
            getfield com.sun.imageio.plugins.wbmp.WBMPImageWriter.stream:Ljavax/imageio/stream/ImageOutputStream;
            iload 15 /* w */
            invokestatic com.sun.imageio.plugins.wbmp.WBMPImageWriter.intToMultiByte:(I)[B
            invokeinterface javax.imageio.stream.ImageOutputStream.write:([B)V
        98: .line 259
            aload 0 /* this */
            getfield com.sun.imageio.plugins.wbmp.WBMPImageWriter.stream:Ljavax/imageio/stream/ImageOutputStream;
            iload 16 /* h */
            invokestatic com.sun.imageio.plugins.wbmp.WBMPImageWriter.intToMultiByte:(I)[B
            invokeinterface javax.imageio.stream.ImageOutputStream.write:([B)V
        99: .line 262
            iload 19 /* isWhiteZero */
            ifne 103
            iload 20 /* lineStride */
            iload 21 /* bytesPerRow */
            if_icmpne 103
       100: .line 264
            aload 0 /* this */
            getfield com.sun.imageio.plugins.wbmp.WBMPImageWriter.stream:Ljavax/imageio/stream/ImageOutputStream;
            aload 22 /* bdata */
            iconst_0
            iload 16 /* h */
            iload 21 /* bytesPerRow */
            imul
            invokeinterface javax.imageio.stream.ImageOutputStream.write:([BII)V
       101: .line 265
            aload 0 /* this */
            ldc 100.0
            invokevirtual com.sun.imageio.plugins.wbmp.WBMPImageWriter.processImageProgress:(F)V
       102: .line 266
            goto 130
       103: .line 268
      StackMap locals: int int byte[]
      StackMap stack:
            iconst_0
            istore 23 /* offset */
        start local 23 // int offset
       104: .line 269
            iload 19 /* isWhiteZero */
            ifne 115
       105: .line 271
            iconst_0
            istore 24 /* row */
        start local 24 // int row
       106: goto 113
       107: .line 272
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.wbmp.WBMPImageWriter.abortRequested:()Z
            ifeq 109
       108: .line 273
            goto 130
       109: .line 274
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.wbmp.WBMPImageWriter.stream:Ljavax/imageio/stream/ImageOutputStream;
            aload 22 /* bdata */
            iload 23 /* offset */
            iload 21 /* bytesPerRow */
            invokeinterface javax.imageio.stream.ImageOutputStream.write:([BII)V
       110: .line 275
            iload 23 /* offset */
            iload 20 /* lineStride */
            iadd
            istore 23 /* offset */
       111: .line 276
            aload 0 /* this */
            ldc 100.0
            iload 24 /* row */
            i2f
            fmul
            iload 16 /* h */
            i2f
            fdiv
            invokevirtual com.sun.imageio.plugins.wbmp.WBMPImageWriter.processImageProgress:(F)V
       112: .line 271
            iinc 24 /* row */ 1
      StackMap locals:
      StackMap stack:
       113: iload 24 /* row */
            iload 16 /* h */
            if_icmplt 107
        end local 24 // int row
       114: .line 278
            goto 130
       115: .line 280
      StackMap locals:
      StackMap stack:
            iload 21 /* bytesPerRow */
            newarray 8
            astore 24 /* inverted */
        start local 24 // byte[] inverted
       116: .line 281
            iconst_0
            istore 25 /* row */
        start local 25 // int row
       117: goto 129
       118: .line 282
      StackMap locals: byte[] int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.wbmp.WBMPImageWriter.abortRequested:()Z
            ifeq 120
       119: .line 283
            goto 130
       120: .line 284
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 26 /* col */
        start local 26 // int col
       121: goto 124
       122: .line 285
      StackMap locals: int
      StackMap stack:
            aload 24 /* inverted */
            iload 26 /* col */
            aload 22 /* bdata */
            iload 26 /* col */
            iload 23 /* offset */
            iadd
            baload
            iconst_m1
            ixor
            i2b
            bastore
       123: .line 284
            iinc 26 /* col */ 1
      StackMap locals:
      StackMap stack:
       124: iload 26 /* col */
            iload 21 /* bytesPerRow */
            if_icmplt 122
        end local 26 // int col
       125: .line 287
            aload 0 /* this */
            getfield com.sun.imageio.plugins.wbmp.WBMPImageWriter.stream:Ljavax/imageio/stream/ImageOutputStream;
            aload 24 /* inverted */
            iconst_0
            iload 21 /* bytesPerRow */
            invokeinterface javax.imageio.stream.ImageOutputStream.write:([BII)V
       126: .line 288
            iload 23 /* offset */
            iload 20 /* lineStride */
            iadd
            istore 23 /* offset */
       127: .line 289
            aload 0 /* this */
            ldc 100.0
            iload 25 /* row */
            i2f
            fmul
            iload 16 /* h */
            i2f
            fdiv
            invokevirtual com.sun.imageio.plugins.wbmp.WBMPImageWriter.processImageProgress:(F)V
       128: .line 281
            iinc 25 /* row */ 1
      StackMap locals:
      StackMap stack:
       129: iload 25 /* row */
            iload 16 /* h */
            if_icmplt 118
        end local 25 // int row
        end local 24 // byte[] inverted
        end local 23 // int offset
       130: .line 294
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.wbmp.WBMPImageWriter.abortRequested:()Z
            ifeq 132
       131: .line 295
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.wbmp.WBMPImageWriter.processWriteAborted:()V
            goto 134
       132: .line 297
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.wbmp.WBMPImageWriter.processImageComplete:()V
       133: .line 298
            aload 0 /* this */
            getfield com.sun.imageio.plugins.wbmp.WBMPImageWriter.stream:Ljavax/imageio/stream/ImageOutputStream;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.wbmp.WBMPImageWriter.stream:Ljavax/imageio/stream/ImageOutputStream;
            invokeinterface javax.imageio.stream.ImageOutputStream.getStreamPosition:()J
            invokeinterface javax.imageio.stream.ImageOutputStream.flushBefore:(J)V
       134: .line 300
      StackMap locals:
      StackMap stack:
            return
        end local 22 // byte[] bdata
        end local 21 // int bytesPerRow
        end local 20 // int lineStride
        end local 19 // boolean isWhiteZero
        end local 18 // java.awt.image.SampleModel destSM
        end local 17 // java.awt.Rectangle destinationRegion
        end local 16 // int h
        end local 15 // int w
        end local 14 // int minY
        end local 13 // int minX
        end local 12 // int yOffset
        end local 11 // int xOffset
        end local 10 // int scaleY
        end local 9 // int scaleX
        end local 8 // java.awt.image.SampleModel sampleModel
        end local 7 // java.awt.Rectangle sourceRegion
        end local 6 // boolean writeRaster
        end local 5 // java.awt.image.Raster inputRaster
        end local 4 // java.awt.image.RenderedImage input
        end local 3 // javax.imageio.ImageWriteParam param
        end local 2 // javax.imageio.IIOImage image
        end local 1 // javax.imageio.metadata.IIOMetadata streamMetadata
        end local 0 // com.sun.imageio.plugins.wbmp.WBMPImageWriter this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0  135     0               this  Lcom/sun/imageio/plugins/wbmp/WBMPImageWriter;
            0  135     1     streamMetadata  Ljavax/imageio/metadata/IIOMetadata;
            0  135     2              image  Ljavax/imageio/IIOImage;
            0  135     3              param  Ljavax/imageio/ImageWriteParam;
            9  135     4              input  Ljava/awt/image/RenderedImage;
           10  135     5        inputRaster  Ljava/awt/image/Raster;
           11  135     6        writeRaster  Z
           12  135     7       sourceRegion  Ljava/awt/Rectangle;
           13  135     8        sampleModel  Ljava/awt/image/SampleModel;
           27  135     9             scaleX  I
           28  135    10             scaleY  I
           29  135    11            xOffset  I
           30  135    12            yOffset  I
           34  135    13               minX  I
           35  135    14               minY  I
           36  135    15                  w  I
           37  135    16                  h  I
           38  135    17  destinationRegion  Ljava/awt/Rectangle;
           40  135    18             destSM  Ljava/awt/image/SampleModel;
           58   76    19                ras  Ljava/awt/image/WritableRaster;
           59   76    20               data  [B
           60   75    21                  j  I
           61   75    22                  y  I
           62   75    23                  k  I
           64   71    24                  i  I
           65   71    25                  x  I
           67   68    26                  v  I
           83   85    19             raster  Ljava/awt/image/WritableRaster;
           86  135    19        isWhiteZero  Z
           88   91    20                icm  Ljava/awt/image/IndexColorModel;
           93  135    20         lineStride  I
           94  135    21        bytesPerRow  I
           95  135    22              bdata  [B
          104  130    23             offset  I
          106  114    24                row  I
          116  130    24           inverted  [B
          117  130    25                row  I
          121  125    26                col  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      streamMetadata  
      image           
      param           

  public void reset();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.wbmp.WBMPImageWriter this
         0: .line 303
            aload 0 /* this */
            invokespecial javax.imageio.ImageWriter.reset:()V
         1: .line 304
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.wbmp.WBMPImageWriter.stream:Ljavax/imageio/stream/ImageOutputStream;
         2: .line 305
            return
        end local 0 // com.sun.imageio.plugins.wbmp.WBMPImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/imageio/plugins/wbmp/WBMPImageWriter;

  private void checkSampleModel(java.awt.image.SampleModel);
    descriptor: (Ljava/awt/image/SampleModel;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.imageio.plugins.wbmp.WBMPImageWriter this
        start local 1 // java.awt.image.SampleModel sm
         0: .line 308
            aload 1 /* sm */
            invokevirtual java.awt.image.SampleModel.getDataType:()I
            istore 2 /* type */
        start local 2 // int type
         1: .line 309
            iload 2 /* type */
            iflt 3
            iload 2 /* type */
            iconst_3
            if_icmpgt 3
         2: .line 310
            aload 1 /* sm */
            invokevirtual java.awt.image.SampleModel.getNumBands:()I
            iconst_1
            if_icmpne 3
            aload 1 /* sm */
            iconst_0
            invokevirtual java.awt.image.SampleModel.getSampleSize:(I)I
            iconst_1
            if_icmpeq 4
         3: .line 311
      StackMap locals: int
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "WBMPImageWriter2"
            invokestatic com.sun.imageio.plugins.common.I18N.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 312
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int type
        end local 1 // java.awt.image.SampleModel sm
        end local 0 // com.sun.imageio.plugins.wbmp.WBMPImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/imageio/plugins/wbmp/WBMPImageWriter;
            0    5     1    sm  Ljava/awt/image/SampleModel;
            1    5     2  type  I
    MethodParameters:
      Name  Flags
      sm    
}
SourceFile: "WBMPImageWriter.java"