public class io.netty.handler.codec.compression.FastLzFrameEncoder extends io.netty.handler.codec.MessageToByteEncoder<io.netty.buffer.ByteBuf>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.netty.handler.codec.compression.FastLzFrameEncoder
  super_class: io.netty.handler.codec.MessageToByteEncoder
{
  private final int level;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.zip.Checksum checksum;
    descriptor: Ljava/util/zip/Checksum;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.netty.handler.codec.compression.FastLzFrameEncoder this
         0: .line 47
            aload 0 /* this */
            iconst_0
            aconst_null
            invokespecial io.netty.handler.codec.compression.FastLzFrameEncoder.<init>:(ILjava/util/zip/Checksum;)V
         1: .line 48
            return
        end local 0 // io.netty.handler.codec.compression.FastLzFrameEncoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/handler/codec/compression/FastLzFrameEncoder;

  public void <init>(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.netty.handler.codec.compression.FastLzFrameEncoder this
        start local 1 // int level
         0: .line 59
            aload 0 /* this */
            iload 1 /* level */
            aconst_null
            invokespecial io.netty.handler.codec.compression.FastLzFrameEncoder.<init>:(ILjava/util/zip/Checksum;)V
         1: .line 60
            return
        end local 1 // int level
        end local 0 // io.netty.handler.codec.compression.FastLzFrameEncoder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lio/netty/handler/codec/compression/FastLzFrameEncoder;
            0    2     1  level  I
    MethodParameters:
       Name  Flags
      level  

  public void <init>(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.netty.handler.codec.compression.FastLzFrameEncoder this
        start local 1 // boolean validateChecksums
         0: .line 73
            aload 0 /* this */
            iconst_0
            iload 1 /* validateChecksums */
            ifeq 1
            new java.util.zip.Adler32
            dup
            invokespecial java.util.zip.Adler32.<init>:()V
            goto 2
      StackMap locals: uninitialized-this int
      StackMap stack: uninitialized-this int
         1: aconst_null
      StackMap locals: uninitialized-this int
      StackMap stack: uninitialized-this int java.util.zip.Adler32
         2: invokespecial io.netty.handler.codec.compression.FastLzFrameEncoder.<init>:(ILjava/util/zip/Checksum;)V
         3: .line 74
            return
        end local 1 // boolean validateChecksums
        end local 0 // io.netty.handler.codec.compression.FastLzFrameEncoder this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               this  Lio/netty/handler/codec/compression/FastLzFrameEncoder;
            0    4     1  validateChecksums  Z
    MethodParameters:
                   Name  Flags
      validateChecksums  

  public void <init>(int, java.util.zip.Checksum);
    descriptor: (ILjava/util/zip/Checksum;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // io.netty.handler.codec.compression.FastLzFrameEncoder this
        start local 1 // int level
        start local 2 // java.util.zip.Checksum checksum
         0: .line 88
            aload 0 /* this */
            iconst_0
            invokespecial io.netty.handler.codec.MessageToByteEncoder.<init>:(Z)V
         1: .line 89
            iload 1 /* level */
            ifeq 5
            iload 1 /* level */
            iconst_1
            if_icmpeq 5
            iload 1 /* level */
            iconst_2
            if_icmpeq 5
         2: .line 90
            new java.lang.IllegalArgumentException
            dup
         3: .line 91
            ldc "level: %d (expected: %d or %d or %d)"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            iload 1 /* level */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_3
            iconst_2
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
         4: .line 90
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 93
      StackMap locals: io.netty.handler.codec.compression.FastLzFrameEncoder int java.util.zip.Checksum
      StackMap stack:
            aload 0 /* this */
            iload 1 /* level */
            putfield io.netty.handler.codec.compression.FastLzFrameEncoder.level:I
         6: .line 94
            aload 0 /* this */
            aload 2 /* checksum */
            putfield io.netty.handler.codec.compression.FastLzFrameEncoder.checksum:Ljava/util/zip/Checksum;
         7: .line 95
            return
        end local 2 // java.util.zip.Checksum checksum
        end local 1 // int level
        end local 0 // io.netty.handler.codec.compression.FastLzFrameEncoder this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lio/netty/handler/codec/compression/FastLzFrameEncoder;
            0    8     1     level  I
            0    8     2  checksum  Ljava/util/zip/Checksum;
    MethodParameters:
          Name  Flags
      level     
      checksum  

  protected void encode(io.netty.channel.ChannelHandlerContext, io.netty.buffer.ByteBuf, io.netty.buffer.ByteBuf);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Lio/netty/buffer/ByteBuf;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=17, args_size=4
        start local 0 // io.netty.handler.codec.compression.FastLzFrameEncoder this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // io.netty.buffer.ByteBuf in
        start local 3 // io.netty.buffer.ByteBuf out
         0: .line 99
            aload 0 /* this */
            getfield io.netty.handler.codec.compression.FastLzFrameEncoder.checksum:Ljava/util/zip/Checksum;
            astore 4 /* checksum */
        start local 4 // java.util.zip.Checksum checksum
         1: .line 102
      StackMap locals: java.util.zip.Checksum
      StackMap stack:
            aload 2 /* in */
            invokevirtual io.netty.buffer.ByteBuf.isReadable:()Z
            ifne 3
         2: .line 103
            return
         3: .line 105
      StackMap locals:
      StackMap stack:
            aload 2 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
            istore 5 /* idx */
        start local 5 // int idx
         4: .line 106
            aload 2 /* in */
            invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
            ldc 65535
            invokestatic java.lang.Math.min:(II)I
            istore 6 /* length */
        start local 6 // int length
         5: .line 108
            aload 3 /* out */
            invokevirtual io.netty.buffer.ByteBuf.writerIndex:()I
            istore 7 /* outputIdx */
        start local 7 // int outputIdx
         6: .line 109
            aload 3 /* out */
            iload 7 /* outputIdx */
            ldc 4607066
            invokevirtual io.netty.buffer.ByteBuf.setMedium:(II)Lio/netty/buffer/ByteBuf;
            pop
         7: .line 110
            iload 7 /* outputIdx */
            iconst_4
            iadd
            aload 4 /* checksum */
            ifnull 8
            iconst_4
            goto 9
      StackMap locals: io.netty.handler.codec.compression.FastLzFrameEncoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf io.netty.buffer.ByteBuf java.util.zip.Checksum int int int
      StackMap stack: int
         8: iconst_0
      StackMap locals: io.netty.handler.codec.compression.FastLzFrameEncoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf io.netty.buffer.ByteBuf java.util.zip.Checksum int int int
      StackMap stack: int int
         9: iadd
            istore 8 /* outputOffset */
        start local 8 // int outputOffset
        10: .line 114
            iload 6 /* length */
            bipush 32
            if_icmpge 31
        11: .line 115
            iconst_0
            istore 9 /* blockType */
        start local 9 // byte blockType
        12: .line 117
            aload 3 /* out */
            iload 8 /* outputOffset */
            iconst_2
            iadd
            iload 6 /* length */
            iadd
            invokevirtual io.netty.buffer.ByteBuf.ensureWritable:(I)Lio/netty/buffer/ByteBuf;
            pop
        13: .line 118
            aload 3 /* out */
            invokevirtual io.netty.buffer.ByteBuf.array:()[B
            astore 11 /* output */
        start local 11 // byte[] output
        14: .line 119
            aload 3 /* out */
            invokevirtual io.netty.buffer.ByteBuf.arrayOffset:()I
            iload 8 /* outputOffset */
            iadd
            iconst_2
            iadd
            istore 12 /* outputPtr */
        start local 12 // int outputPtr
        15: .line 121
            aload 4 /* checksum */
            ifnull 28
        16: .line 124
            aload 2 /* in */
            invokevirtual io.netty.buffer.ByteBuf.hasArray:()Z
            ifeq 20
        17: .line 125
            aload 2 /* in */
            invokevirtual io.netty.buffer.ByteBuf.array:()[B
            astore 13 /* input */
        start local 13 // byte[] input
        18: .line 126
            aload 2 /* in */
            invokevirtual io.netty.buffer.ByteBuf.arrayOffset:()I
            iload 5 /* idx */
            iadd
            istore 14 /* inputPtr */
        start local 14 // int inputPtr
        19: .line 127
            goto 23
        end local 14 // int inputPtr
        end local 13 // byte[] input
        20: .line 128
      StackMap locals: io.netty.handler.codec.compression.FastLzFrameEncoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf io.netty.buffer.ByteBuf java.util.zip.Checksum int int int int int top byte[] int
      StackMap stack:
            iload 6 /* length */
            newarray 8
            astore 13 /* input */
        start local 13 // byte[] input
        21: .line 129
            aload 2 /* in */
            iload 5 /* idx */
            aload 13 /* input */
            invokevirtual io.netty.buffer.ByteBuf.getBytes:(I[B)Lio/netty/buffer/ByteBuf;
            pop
        22: .line 130
            iconst_0
            istore 14 /* inputPtr */
        start local 14 // int inputPtr
        23: .line 133
      StackMap locals: byte[] int
      StackMap stack:
            aload 4 /* checksum */
            invokeinterface java.util.zip.Checksum.reset:()V
        24: .line 134
            aload 4 /* checksum */
            aload 13 /* input */
            iload 14 /* inputPtr */
            iload 6 /* length */
            invokeinterface java.util.zip.Checksum.update:([BII)V
        25: .line 135
            aload 3 /* out */
            iload 7 /* outputIdx */
            iconst_4
            iadd
            aload 4 /* checksum */
            invokeinterface java.util.zip.Checksum.getValue:()J
            l2i
            invokevirtual io.netty.buffer.ByteBuf.setInt:(II)Lio/netty/buffer/ByteBuf;
            pop
        26: .line 137
            aload 13 /* input */
            iload 14 /* inputPtr */
            aload 11 /* output */
            iload 12 /* outputPtr */
            iload 6 /* length */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        end local 14 // int inputPtr
        end local 13 // byte[] input
        27: .line 138
            goto 29
        28: .line 139
      StackMap locals:
      StackMap stack:
            aload 2 /* in */
            iload 5 /* idx */
            aload 11 /* output */
            iload 12 /* outputPtr */
            iload 6 /* length */
            invokevirtual io.netty.buffer.ByteBuf.getBytes:(I[BII)Lio/netty/buffer/ByteBuf;
            pop
        29: .line 141
      StackMap locals:
      StackMap stack:
            iload 6 /* length */
            istore 10 /* chunkLength */
        end local 12 // int outputPtr
        end local 11 // byte[] output
        start local 10 // int chunkLength
        30: .line 142
            goto 56
        end local 10 // int chunkLength
        end local 9 // byte blockType
        31: .line 146
      StackMap locals: io.netty.handler.codec.compression.FastLzFrameEncoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf io.netty.buffer.ByteBuf java.util.zip.Checksum int int int int
      StackMap stack:
            aload 2 /* in */
            invokevirtual io.netty.buffer.ByteBuf.hasArray:()Z
            ifeq 35
        32: .line 147
            aload 2 /* in */
            invokevirtual io.netty.buffer.ByteBuf.array:()[B
            astore 11 /* input */
        start local 11 // byte[] input
        33: .line 148
            aload 2 /* in */
            invokevirtual io.netty.buffer.ByteBuf.arrayOffset:()I
            iload 5 /* idx */
            iadd
            istore 12 /* inputPtr */
        start local 12 // int inputPtr
        34: .line 149
            goto 38
        end local 12 // int inputPtr
        end local 11 // byte[] input
        35: .line 150
      StackMap locals:
      StackMap stack:
            iload 6 /* length */
            newarray 8
            astore 11 /* input */
        start local 11 // byte[] input
        36: .line 151
            aload 2 /* in */
            iload 5 /* idx */
            aload 11 /* input */
            invokevirtual io.netty.buffer.ByteBuf.getBytes:(I[B)Lio/netty/buffer/ByteBuf;
            pop
        37: .line 152
            iconst_0
            istore 12 /* inputPtr */
        start local 12 // int inputPtr
        38: .line 155
      StackMap locals: io.netty.handler.codec.compression.FastLzFrameEncoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf io.netty.buffer.ByteBuf java.util.zip.Checksum int int int int top top byte[] int
      StackMap stack:
            aload 4 /* checksum */
            ifnull 42
        39: .line 156
            aload 4 /* checksum */
            invokeinterface java.util.zip.Checksum.reset:()V
        40: .line 157
            aload 4 /* checksum */
            aload 11 /* input */
            iload 12 /* inputPtr */
            iload 6 /* length */
            invokeinterface java.util.zip.Checksum.update:([BII)V
        41: .line 158
            aload 3 /* out */
            iload 7 /* outputIdx */
            iconst_4
            iadd
            aload 4 /* checksum */
            invokeinterface java.util.zip.Checksum.getValue:()J
            l2i
            invokevirtual io.netty.buffer.ByteBuf.setInt:(II)Lio/netty/buffer/ByteBuf;
            pop
        42: .line 161
      StackMap locals:
      StackMap stack:
            iload 6 /* length */
            invokestatic io.netty.handler.codec.compression.FastLz.calculateOutputBufferLength:(I)I
            istore 13 /* maxOutputLength */
        start local 13 // int maxOutputLength
        43: .line 162
            aload 3 /* out */
            iload 8 /* outputOffset */
            iconst_4
            iadd
            iload 13 /* maxOutputLength */
            iadd
            invokevirtual io.netty.buffer.ByteBuf.ensureWritable:(I)Lio/netty/buffer/ByteBuf;
            pop
        44: .line 163
            aload 3 /* out */
            invokevirtual io.netty.buffer.ByteBuf.array:()[B
            astore 14 /* output */
        start local 14 // byte[] output
        45: .line 164
            aload 3 /* out */
            invokevirtual io.netty.buffer.ByteBuf.arrayOffset:()I
            iload 8 /* outputOffset */
            iadd
            iconst_4
            iadd
            istore 15 /* outputPtr */
        start local 15 // int outputPtr
        46: .line 165
            aload 11 /* input */
            iload 12 /* inputPtr */
            iload 6 /* length */
            aload 14 /* output */
            iload 15 /* outputPtr */
            aload 0 /* this */
            getfield io.netty.handler.codec.compression.FastLzFrameEncoder.level:I
            invokestatic io.netty.handler.codec.compression.FastLz.compress:([BII[BII)I
            istore 16 /* compressedLength */
        start local 16 // int compressedLength
        47: .line 166
            iload 16 /* compressedLength */
            iload 6 /* length */
            if_icmpge 53
        48: .line 167
            iconst_1
            istore 9 /* blockType */
        start local 9 // byte blockType
        49: .line 168
            iload 16 /* compressedLength */
            istore 10 /* chunkLength */
        start local 10 // int chunkLength
        50: .line 170
            aload 3 /* out */
            iload 8 /* outputOffset */
            iload 10 /* chunkLength */
            invokevirtual io.netty.buffer.ByteBuf.setShort:(II)Lio/netty/buffer/ByteBuf;
            pop
        51: .line 171
            iinc 8 /* outputOffset */ 2
        52: .line 172
            goto 56
        end local 10 // int chunkLength
        end local 9 // byte blockType
        53: .line 173
      StackMap locals: io.netty.handler.codec.compression.FastLzFrameEncoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf io.netty.buffer.ByteBuf java.util.zip.Checksum int int int int top top byte[] int int byte[] int int
      StackMap stack:
            iconst_0
            istore 9 /* blockType */
        start local 9 // byte blockType
        54: .line 174
            aload 11 /* input */
            iload 12 /* inputPtr */
            aload 14 /* output */
            iload 15 /* outputPtr */
            iconst_2
            isub
            iload 6 /* length */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        55: .line 175
            iload 6 /* length */
            istore 10 /* chunkLength */
        end local 16 // int compressedLength
        end local 15 // int outputPtr
        end local 14 // byte[] output
        end local 13 // int maxOutputLength
        end local 12 // int inputPtr
        end local 11 // byte[] input
        start local 10 // int chunkLength
        56: .line 178
      StackMap locals: io.netty.handler.codec.compression.FastLzFrameEncoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf io.netty.buffer.ByteBuf java.util.zip.Checksum int int int int int int
      StackMap stack:
            aload 3 /* out */
            iload 8 /* outputOffset */
            iload 6 /* length */
            invokevirtual io.netty.buffer.ByteBuf.setShort:(II)Lio/netty/buffer/ByteBuf;
            pop
        57: .line 180
            aload 3 /* out */
            iload 7 /* outputIdx */
            iconst_3
            iadd
        58: .line 181
            iload 9 /* blockType */
            aload 4 /* checksum */
            ifnull 59
            bipush 16
            goto 60
      StackMap locals: io.netty.handler.codec.compression.FastLzFrameEncoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf io.netty.buffer.ByteBuf java.util.zip.Checksum int int int int int int
      StackMap stack: io.netty.buffer.ByteBuf int int
        59: iconst_0
      StackMap locals: io.netty.handler.codec.compression.FastLzFrameEncoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf io.netty.buffer.ByteBuf java.util.zip.Checksum int int int int int int
      StackMap stack: io.netty.buffer.ByteBuf int int int
        60: ior
        61: .line 180
            invokevirtual io.netty.buffer.ByteBuf.setByte:(II)Lio/netty/buffer/ByteBuf;
            pop
        62: .line 182
            aload 3 /* out */
            iload 8 /* outputOffset */
            iconst_2
            iadd
            iload 10 /* chunkLength */
            iadd
            invokevirtual io.netty.buffer.ByteBuf.writerIndex:(I)Lio/netty/buffer/ByteBuf;
            pop
        63: .line 183
            aload 2 /* in */
            iload 6 /* length */
            invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
            pop
        end local 10 // int chunkLength
        end local 9 // byte blockType
        end local 8 // int outputOffset
        end local 7 // int outputIdx
        end local 6 // int length
        end local 5 // int idx
        64: .line 101
            goto 1
        end local 4 // java.util.zip.Checksum checksum
        end local 3 // io.netty.buffer.ByteBuf out
        end local 2 // io.netty.buffer.ByteBuf in
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.codec.compression.FastLzFrameEncoder this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   65     0              this  Lio/netty/handler/codec/compression/FastLzFrameEncoder;
            0   65     1               ctx  Lio/netty/channel/ChannelHandlerContext;
            0   65     2                in  Lio/netty/buffer/ByteBuf;
            0   65     3               out  Lio/netty/buffer/ByteBuf;
            1   65     4          checksum  Ljava/util/zip/Checksum;
            4   64     5               idx  I
            5   64     6            length  I
            6   64     7         outputIdx  I
           10   64     8      outputOffset  I
           12   31     9         blockType  B
           49   53     9         blockType  B
           54   64     9         blockType  B
           30   31    10       chunkLength  I
           50   53    10       chunkLength  I
           56   64    10       chunkLength  I
           14   30    11            output  [B
           15   30    12         outputPtr  I
           18   20    13             input  [B
           21   27    13             input  [B
           19   20    14          inputPtr  I
           23   27    14          inputPtr  I
           33   35    11             input  [B
           36   56    11             input  [B
           34   35    12          inputPtr  I
           38   56    12          inputPtr  I
           43   56    13   maxOutputLength  I
           45   56    14            output  [B
           46   56    15         outputPtr  I
           47   56    16  compressedLength  I
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      ctx   
      in    
      out   

  protected void encode(io.netty.channel.ChannelHandlerContext, java.lang.Object, io.netty.buffer.ByteBuf);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;Lio/netty/buffer/ByteBuf;)V
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
         0: .line 1
            aload 0
            aload 1
            aload 2
            checkcast io.netty.buffer.ByteBuf
            aload 3
            invokevirtual io.netty.handler.codec.compression.FastLzFrameEncoder.encode:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Lio/netty/buffer/ByteBuf;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.Exception
}
Signature: Lio/netty/handler/codec/MessageToByteEncoder<Lio/netty/buffer/ByteBuf;>;
SourceFile: "FastLzFrameEncoder.java"