public class com.sun.imageio.plugins.common.BitFile
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.imageio.plugins.common.BitFile
  super_class: java.lang.Object
{
  javax.imageio.stream.ImageOutputStream output;
    descriptor: Ljavax/imageio/stream/ImageOutputStream;
    flags: (0x0000) 

  byte[] buffer;
    descriptor: [B
    flags: (0x0000) 

  int index;
    descriptor: I
    flags: (0x0000) 

  int bitsLeft;
    descriptor: I
    flags: (0x0000) 

  boolean blocks;
    descriptor: Z
    flags: (0x0000) 

  public void <init>(javax.imageio.stream.ImageOutputStream, boolean);
    descriptor: (Ljavax/imageio/stream/ImageOutputStream;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.sun.imageio.plugins.common.BitFile this
        start local 1 // javax.imageio.stream.ImageOutputStream output
        start local 2 // boolean blocks
         0: .line 49
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 43
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.common.BitFile.blocks:Z
         2: .line 50
            aload 0 /* this */
            aload 1 /* output */
            putfield com.sun.imageio.plugins.common.BitFile.output:Ljavax/imageio/stream/ImageOutputStream;
         3: .line 51
            aload 0 /* this */
            iload 2 /* blocks */
            putfield com.sun.imageio.plugins.common.BitFile.blocks:Z
         4: .line 52
            aload 0 /* this */
            sipush 256
            newarray 8
            putfield com.sun.imageio.plugins.common.BitFile.buffer:[B
         5: .line 53
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.common.BitFile.index:I
         6: .line 54
            aload 0 /* this */
            bipush 8
            putfield com.sun.imageio.plugins.common.BitFile.bitsLeft:I
         7: .line 55
            return
        end local 2 // boolean blocks
        end local 1 // javax.imageio.stream.ImageOutputStream output
        end local 0 // com.sun.imageio.plugins.common.BitFile this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lcom/sun/imageio/plugins/common/BitFile;
            0    8     1  output  Ljavax/imageio/stream/ImageOutputStream;
            0    8     2  blocks  Z
    MethodParameters:
        Name  Flags
      output  
      blocks  

  public void flush();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.sun.imageio.plugins.common.BitFile this
         0: .line 58
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.index:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.bitsLeft:I
            bipush 8
            if_icmpne 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack: int
         1: iconst_1
      StackMap locals: com.sun.imageio.plugins.common.BitFile
      StackMap stack: int int
         2: iadd
            istore 1 /* numBytes */
        start local 1 // int numBytes
         3: .line 59
            iload 1 /* numBytes */
            ifle 10
         4: .line 60
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.blocks:Z
            ifeq 6
         5: .line 61
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.output:Ljavax/imageio/stream/ImageOutputStream;
            iload 1 /* numBytes */
            invokeinterface javax.imageio.stream.ImageOutputStream.write:(I)V
         6: .line 63
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.output:Ljavax/imageio/stream/ImageOutputStream;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.buffer:[B
            iconst_0
            iload 1 /* numBytes */
            invokeinterface javax.imageio.stream.ImageOutputStream.write:([BII)V
         7: .line 64
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.buffer:[B
            iconst_0
            iconst_0
            bastore
         8: .line 65
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.common.BitFile.index:I
         9: .line 66
            aload 0 /* this */
            bipush 8
            putfield com.sun.imageio.plugins.common.BitFile.bitsLeft:I
        10: .line 68
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int numBytes
        end local 0 // com.sun.imageio.plugins.common.BitFile this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lcom/sun/imageio/plugins/common/BitFile;
            3   11     1  numBytes  I
    Exceptions:
      throws java.io.IOException

  public void writeBits(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // com.sun.imageio.plugins.common.BitFile this
        start local 1 // int bits
        start local 2 // int numbits
         0: .line 72
            sipush 255
            istore 3 /* numBytes */
        start local 3 // int numBytes
         1: .line 75
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.index:I
            sipush 254
            if_icmpne 2
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.bitsLeft:I
            ifeq 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.index:I
            sipush 254
            if_icmple 9
         3: .line 76
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.blocks:Z
            ifeq 5
         4: .line 77
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.output:Ljavax/imageio/stream/ImageOutputStream;
            iload 3 /* numBytes */
            invokeinterface javax.imageio.stream.ImageOutputStream.write:(I)V
         5: .line 80
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.output:Ljavax/imageio/stream/ImageOutputStream;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.buffer:[B
            iconst_0
            iload 3 /* numBytes */
            invokeinterface javax.imageio.stream.ImageOutputStream.write:([BII)V
         6: .line 82
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.buffer:[B
            iconst_0
            iconst_0
            bastore
         7: .line 83
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.common.BitFile.index:I
         8: .line 84
            aload 0 /* this */
            bipush 8
            putfield com.sun.imageio.plugins.common.BitFile.bitsLeft:I
         9: .line 87
      StackMap locals:
      StackMap stack:
            iload 2 /* numbits */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.bitsLeft:I
            if_icmpgt 19
        10: .line 88
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.blocks:Z
            ifeq 15
        11: .line 89
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.buffer:[B
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.index:I
            dup2
            baload
            iload 1 /* bits */
            iconst_1
            iload 2 /* numbits */
            ishl
            iconst_1
            isub
            iand
            bipush 8
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.bitsLeft:I
            isub
            ishl
            ior
            i2b
            bastore
        12: .line 91
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.common.BitFile.bitsLeft:I
            iload 2 /* numbits */
            isub
            putfield com.sun.imageio.plugins.common.BitFile.bitsLeft:I
        13: .line 92
            iconst_0
            istore 2 /* numbits */
        14: .line 93
            goto 31
        15: .line 94
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.buffer:[B
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.index:I
            dup2
            baload
            iload 1 /* bits */
            iconst_1
            iload 2 /* numbits */
            ishl
            iconst_1
            isub
            iand
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.bitsLeft:I
            iload 2 /* numbits */
            isub
            ishl
            ior
            i2b
            bastore
        16: .line 96
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.common.BitFile.bitsLeft:I
            iload 2 /* numbits */
            isub
            putfield com.sun.imageio.plugins.common.BitFile.bitsLeft:I
        17: .line 97
            iconst_0
            istore 2 /* numbits */
        18: .line 99
            goto 31
        19: .line 100
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.blocks:Z
            ifeq 26
        20: .line 103
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.buffer:[B
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.index:I
            dup2
            baload
            iload 1 /* bits */
            iconst_1
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.bitsLeft:I
            ishl
            iconst_1
            isub
            iand
            bipush 8
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.bitsLeft:I
            isub
            ishl
            ior
            i2b
            bastore
        21: .line 105
            iload 1 /* bits */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.bitsLeft:I
            ishr
            istore 1 /* bits */
        22: .line 106
            iload 2 /* numbits */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.bitsLeft:I
            isub
            istore 2 /* numbits */
        23: .line 107
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.buffer:[B
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.common.BitFile.index:I
            iconst_1
            iadd
            dup_x1
            putfield com.sun.imageio.plugins.common.BitFile.index:I
            iconst_0
            bastore
        24: .line 108
            aload 0 /* this */
            bipush 8
            putfield com.sun.imageio.plugins.common.BitFile.bitsLeft:I
        25: .line 109
            goto 31
        26: .line 113
      StackMap locals:
      StackMap stack:
            iload 1 /* bits */
            iload 2 /* numbits */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.bitsLeft:I
            isub
            iushr
            iconst_1
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.bitsLeft:I
            ishl
            iconst_1
            isub
            iand
            istore 4 /* topbits */
        start local 4 // int topbits
        27: .line 114
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.buffer:[B
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.index:I
            dup2
            baload
            iload 4 /* topbits */
            ior
            i2b
            bastore
        28: .line 115
            iload 2 /* numbits */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.bitsLeft:I
            isub
            istore 2 /* numbits */
        29: .line 117
            aload 0 /* this */
            getfield com.sun.imageio.plugins.common.BitFile.buffer:[B
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.common.BitFile.index:I
            iconst_1
            iadd
            dup_x1
            putfield com.sun.imageio.plugins.common.BitFile.index:I
            iconst_0
            bastore
        30: .line 118
            aload 0 /* this */
            bipush 8
            putfield com.sun.imageio.plugins.common.BitFile.bitsLeft:I
        end local 4 // int topbits
        31: .line 121
      StackMap locals:
      StackMap stack:
            iload 2 /* numbits */
            ifne 1
        32: .line 122
            return
        end local 3 // int numBytes
        end local 2 // int numbits
        end local 1 // int bits
        end local 0 // com.sun.imageio.plugins.common.BitFile this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   33     0      this  Lcom/sun/imageio/plugins/common/BitFile;
            0   33     1      bits  I
            0   33     2   numbits  I
            1   33     3  numBytes  I
           27   31     4   topbits  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      bits     
      numbits  
}
SourceFile: "BitFile.java"