public class org.h2.compress.LZFOutputStream extends java.io.OutputStream
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.h2.compress.LZFOutputStream
  super_class: java.io.OutputStream
{
  static final int MAGIC;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1211255123

  private final java.io.OutputStream out;
    descriptor: Ljava/io/OutputStream;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.h2.compress.CompressLZF compress;
    descriptor: Lorg/h2/compress/CompressLZF;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final byte[] buffer;
    descriptor: [B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private int pos;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private byte[] outBuffer;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  public void <init>(java.io.OutputStream);
    descriptor: (Ljava/io/OutputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.h2.compress.LZFOutputStream this
        start local 1 // java.io.OutputStream out
         0: .line 29
            aload 0 /* this */
            invokespecial java.io.OutputStream.<init>:()V
         1: .line 24
            aload 0 /* this */
            new org.h2.compress.CompressLZF
            dup
            invokespecial org.h2.compress.CompressLZF.<init>:()V
            putfield org.h2.compress.LZFOutputStream.compress:Lorg/h2/compress/CompressLZF;
         2: .line 30
            aload 0 /* this */
            aload 1 /* out */
            putfield org.h2.compress.LZFOutputStream.out:Ljava/io/OutputStream;
         3: .line 31
            ldc 131072
            istore 2 /* len */
        start local 2 // int len
         4: .line 32
            aload 0 /* this */
            iload 2 /* len */
            newarray 8
            putfield org.h2.compress.LZFOutputStream.buffer:[B
         5: .line 33
            aload 0 /* this */
            iload 2 /* len */
            invokevirtual org.h2.compress.LZFOutputStream.ensureOutput:(I)V
         6: .line 34
            aload 0 /* this */
            ldc 1211255123
            invokevirtual org.h2.compress.LZFOutputStream.writeInt:(I)V
         7: .line 35
            return
        end local 2 // int len
        end local 1 // java.io.OutputStream out
        end local 0 // org.h2.compress.LZFOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/h2/compress/LZFOutputStream;
            0    8     1   out  Ljava/io/OutputStream;
            4    8     2   len  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      out   

  private void ensureOutput(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.h2.compress.LZFOutputStream this
        start local 1 // int len
         0: .line 40
            iload 1 /* len */
            bipush 100
            if_icmpge 1
            iload 1 /* len */
            bipush 100
            iadd
            goto 2
      StackMap locals:
      StackMap stack:
         1: iload 1 /* len */
      StackMap locals:
      StackMap stack: int
         2: iconst_2
            imul
            istore 2 /* outputLen */
        start local 2 // int outputLen
         3: .line 41
            aload 0 /* this */
            getfield org.h2.compress.LZFOutputStream.outBuffer:[B
            ifnull 4
            aload 0 /* this */
            getfield org.h2.compress.LZFOutputStream.outBuffer:[B
            arraylength
            iload 2 /* outputLen */
            if_icmpge 5
         4: .line 42
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 2 /* outputLen */
            newarray 8
            putfield org.h2.compress.LZFOutputStream.outBuffer:[B
         5: .line 44
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int outputLen
        end local 1 // int len
        end local 0 // org.h2.compress.LZFOutputStream this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/h2/compress/LZFOutputStream;
            0    6     1        len  I
            3    6     2  outputLen  I
    MethodParameters:
      Name  Flags
      len   

  public void write(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.h2.compress.LZFOutputStream this
        start local 1 // int b
         0: .line 48
            aload 0 /* this */
            getfield org.h2.compress.LZFOutputStream.pos:I
            aload 0 /* this */
            getfield org.h2.compress.LZFOutputStream.buffer:[B
            arraylength
            if_icmplt 2
         1: .line 49
            aload 0 /* this */
            invokevirtual org.h2.compress.LZFOutputStream.flush:()V
         2: .line 51
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.compress.LZFOutputStream.buffer:[B
            aload 0 /* this */
            dup
            getfield org.h2.compress.LZFOutputStream.pos:I
            dup_x1
            iconst_1
            iadd
            putfield org.h2.compress.LZFOutputStream.pos:I
            iload 1 /* b */
            i2b
            bastore
         3: .line 52
            return
        end local 1 // int b
        end local 0 // org.h2.compress.LZFOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/h2/compress/LZFOutputStream;
            0    4     1     b  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      b     

  private void compressAndWrite(byte[], int);
    descriptor: ([BI)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.h2.compress.LZFOutputStream this
        start local 1 // byte[] buff
        start local 2 // int len
         0: .line 55
            iload 2 /* len */
            ifle 10
         1: .line 56
            aload 0 /* this */
            iload 2 /* len */
            invokevirtual org.h2.compress.LZFOutputStream.ensureOutput:(I)V
         2: .line 57
            aload 0 /* this */
            getfield org.h2.compress.LZFOutputStream.compress:Lorg/h2/compress/CompressLZF;
            aload 1 /* buff */
            iload 2 /* len */
            aload 0 /* this */
            getfield org.h2.compress.LZFOutputStream.outBuffer:[B
            iconst_0
            invokevirtual org.h2.compress.CompressLZF.compress:([BI[BI)I
            istore 3 /* compressed */
        start local 3 // int compressed
         3: .line 58
            iload 3 /* compressed */
            iload 2 /* len */
            if_icmple 7
         4: .line 59
            aload 0 /* this */
            iload 2 /* len */
            ineg
            invokevirtual org.h2.compress.LZFOutputStream.writeInt:(I)V
         5: .line 60
            aload 0 /* this */
            getfield org.h2.compress.LZFOutputStream.out:Ljava/io/OutputStream;
            aload 1 /* buff */
            iconst_0
            iload 2 /* len */
            invokevirtual java.io.OutputStream.write:([BII)V
         6: .line 61
            goto 10
         7: .line 62
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 3 /* compressed */
            invokevirtual org.h2.compress.LZFOutputStream.writeInt:(I)V
         8: .line 63
            aload 0 /* this */
            iload 2 /* len */
            invokevirtual org.h2.compress.LZFOutputStream.writeInt:(I)V
         9: .line 64
            aload 0 /* this */
            getfield org.h2.compress.LZFOutputStream.out:Ljava/io/OutputStream;
            aload 0 /* this */
            getfield org.h2.compress.LZFOutputStream.outBuffer:[B
            iconst_0
            iload 3 /* compressed */
            invokevirtual java.io.OutputStream.write:([BII)V
        end local 3 // int compressed
        10: .line 67
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int len
        end local 1 // byte[] buff
        end local 0 // org.h2.compress.LZFOutputStream this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Lorg/h2/compress/LZFOutputStream;
            0   11     1        buff  [B
            0   11     2         len  I
            3   10     3  compressed  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      buff  
      len   

  private void writeInt(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.h2.compress.LZFOutputStream this
        start local 1 // int x
         0: .line 70
            aload 0 /* this */
            getfield org.h2.compress.LZFOutputStream.out:Ljava/io/OutputStream;
            iload 1 /* x */
            bipush 24
            ishr
            i2b
            invokevirtual java.io.OutputStream.write:(I)V
         1: .line 71
            aload 0 /* this */
            getfield org.h2.compress.LZFOutputStream.out:Ljava/io/OutputStream;
            iload 1 /* x */
            bipush 16
            ishr
            i2b
            invokevirtual java.io.OutputStream.write:(I)V
         2: .line 72
            aload 0 /* this */
            getfield org.h2.compress.LZFOutputStream.out:Ljava/io/OutputStream;
            iload 1 /* x */
            bipush 8
            ishr
            i2b
            invokevirtual java.io.OutputStream.write:(I)V
         3: .line 73
            aload 0 /* this */
            getfield org.h2.compress.LZFOutputStream.out:Ljava/io/OutputStream;
            iload 1 /* x */
            i2b
            invokevirtual java.io.OutputStream.write:(I)V
         4: .line 74
            return
        end local 1 // int x
        end local 0 // org.h2.compress.LZFOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/h2/compress/LZFOutputStream;
            0    5     1     x  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      x     

  public void write(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.h2.compress.LZFOutputStream this
        start local 1 // byte[] buff
        start local 2 // int off
        start local 3 // int len
         0: .line 78
            goto 8
         1: .line 79
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.compress.LZFOutputStream.buffer:[B
            arraylength
            aload 0 /* this */
            getfield org.h2.compress.LZFOutputStream.pos:I
            isub
            iload 3 /* len */
            invokestatic java.lang.Math.min:(II)I
            istore 4 /* copy */
        start local 4 // int copy
         2: .line 80
            aload 1 /* buff */
            iload 2 /* off */
            aload 0 /* this */
            getfield org.h2.compress.LZFOutputStream.buffer:[B
            aload 0 /* this */
            getfield org.h2.compress.LZFOutputStream.pos:I
            iload 4 /* copy */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         3: .line 81
            aload 0 /* this */
            dup
            getfield org.h2.compress.LZFOutputStream.pos:I
            iload 4 /* copy */
            iadd
            putfield org.h2.compress.LZFOutputStream.pos:I
         4: .line 82
            aload 0 /* this */
            getfield org.h2.compress.LZFOutputStream.pos:I
            aload 0 /* this */
            getfield org.h2.compress.LZFOutputStream.buffer:[B
            arraylength
            if_icmplt 6
         5: .line 83
            aload 0 /* this */
            invokevirtual org.h2.compress.LZFOutputStream.flush:()V
         6: .line 85
      StackMap locals: int
      StackMap stack:
            iload 2 /* off */
            iload 4 /* copy */
            iadd
            istore 2 /* off */
         7: .line 86
            iload 3 /* len */
            iload 4 /* copy */
            isub
            istore 3 /* len */
        end local 4 // int copy
         8: .line 78
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            ifgt 1
         9: .line 88
            return
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] buff
        end local 0 // org.h2.compress.LZFOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lorg/h2/compress/LZFOutputStream;
            0   10     1  buff  [B
            0   10     2   off  I
            0   10     3   len  I
            2    8     4  copy  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      buff  
      off   
      len   

  public void flush();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.h2.compress.LZFOutputStream this
         0: .line 92
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.compress.LZFOutputStream.buffer:[B
            aload 0 /* this */
            getfield org.h2.compress.LZFOutputStream.pos:I
            invokevirtual org.h2.compress.LZFOutputStream.compressAndWrite:([BI)V
         1: .line 93
            aload 0 /* this */
            iconst_0
            putfield org.h2.compress.LZFOutputStream.pos:I
         2: .line 94
            return
        end local 0 // org.h2.compress.LZFOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/compress/LZFOutputStream;
    Exceptions:
      throws java.io.IOException

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.compress.LZFOutputStream this
         0: .line 98
            aload 0 /* this */
            invokevirtual org.h2.compress.LZFOutputStream.flush:()V
         1: .line 99
            aload 0 /* this */
            getfield org.h2.compress.LZFOutputStream.out:Ljava/io/OutputStream;
            invokevirtual java.io.OutputStream.close:()V
         2: .line 100
            return
        end local 0 // org.h2.compress.LZFOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/compress/LZFOutputStream;
    Exceptions:
      throws java.io.IOException
}
SourceFile: "LZFOutputStream.java"