abstract class io.netty.handler.codec.compression.ByteBufChecksum implements java.util.zip.Checksum
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: io.netty.handler.codec.compression.ByteBufChecksum
  super_class: java.lang.Object
{
  private static final java.lang.reflect.Method ADLER32_UPDATE_METHOD;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.reflect.Method CRC32_UPDATE_METHOD;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final io.netty.util.ByteProcessor updateProcessor;
    descriptor: Lio/netty/util/ByteProcessor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 42
            new java.util.zip.Adler32
            dup
            invokespecial java.util.zip.Adler32.<init>:()V
            invokestatic io.netty.handler.codec.compression.ByteBufChecksum.updateByteBuffer:(Ljava/util/zip/Checksum;)Ljava/lang/reflect/Method;
            putstatic io.netty.handler.codec.compression.ByteBufChecksum.ADLER32_UPDATE_METHOD:Ljava/lang/reflect/Method;
         1: .line 43
            new java.util.zip.CRC32
            dup
            invokespecial java.util.zip.CRC32.<init>:()V
            invokestatic io.netty.handler.codec.compression.ByteBufChecksum.updateByteBuffer:(Ljava/util/zip/Checksum;)Ljava/lang/reflect/Method;
            putstatic io.netty.handler.codec.compression.ByteBufChecksum.CRC32_UPDATE_METHOD:Ljava/lang/reflect/Method;
         2: .line 44
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // io.netty.handler.codec.compression.ByteBufChecksum this
         0: .line 35
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 46
            aload 0 /* this */
            new io.netty.handler.codec.compression.ByteBufChecksum$1
            dup
            aload 0 /* this */
            invokespecial io.netty.handler.codec.compression.ByteBufChecksum$1.<init>:(Lio/netty/handler/codec/compression/ByteBufChecksum;)V
            putfield io.netty.handler.codec.compression.ByteBufChecksum.updateProcessor:Lio/netty/util/ByteProcessor;
         2: .line 35
            return
        end local 0 // io.netty.handler.codec.compression.ByteBufChecksum this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/netty/handler/codec/compression/ByteBufChecksum;

  private static java.lang.reflect.Method updateByteBuffer(java.util.zip.Checksum);
    descriptor: (Ljava/util/zip/Checksum;)Ljava/lang/reflect/Method;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // java.util.zip.Checksum checksum
         0: .line 55
            invokestatic io.netty.util.internal.PlatformDependent.javaVersion:()I
            bipush 8
            if_icmplt 7
         1: .line 57
            aload 0 /* checksum */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc "update"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/nio/ByteBuffer;
            aastore
            invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 1 /* method */
        start local 1 // java.lang.reflect.Method method
         2: .line 58
            aload 1 /* method */
            aload 1 /* method */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iconst_1
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            aastore
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 59
            aload 1 /* method */
         4: areturn
        end local 1 // java.lang.reflect.Method method
         5: .line 60
      StackMap locals:
      StackMap stack: java.lang.Throwable
            pop
         6: .line 61
            aconst_null
            areturn
         7: .line 64
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // java.util.zip.Checksum checksum
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0  checksum  Ljava/util/zip/Checksum;
            2    5     1    method  Ljava/lang/reflect/Method;
      Exception table:
        from    to  target  type
           1     4       5  Class java.lang.Throwable
    MethodParameters:
          Name  Flags
      checksum  

  static io.netty.handler.codec.compression.ByteBufChecksum wrapChecksum(java.util.zip.Checksum);
    descriptor: (Ljava/util/zip/Checksum;)Lio/netty/handler/codec/compression/ByteBufChecksum;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.util.zip.Checksum checksum
         0: .line 68
            aload 0 /* checksum */
            ldc "checksum"
            invokestatic io.netty.util.internal.ObjectUtil.checkNotNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 69
            aload 0 /* checksum */
            instanceof java.util.zip.Adler32
            ifeq 3
            getstatic io.netty.handler.codec.compression.ByteBufChecksum.ADLER32_UPDATE_METHOD:Ljava/lang/reflect/Method;
            ifnull 3
         2: .line 70
            new io.netty.handler.codec.compression.ByteBufChecksum$ReflectiveByteBufChecksum
            dup
            aload 0 /* checksum */
            getstatic io.netty.handler.codec.compression.ByteBufChecksum.ADLER32_UPDATE_METHOD:Ljava/lang/reflect/Method;
            invokespecial io.netty.handler.codec.compression.ByteBufChecksum$ReflectiveByteBufChecksum.<init>:(Ljava/util/zip/Checksum;Ljava/lang/reflect/Method;)V
            areturn
         3: .line 72
      StackMap locals:
      StackMap stack:
            aload 0 /* checksum */
            instanceof java.util.zip.CRC32
            ifeq 5
            getstatic io.netty.handler.codec.compression.ByteBufChecksum.CRC32_UPDATE_METHOD:Ljava/lang/reflect/Method;
            ifnull 5
         4: .line 73
            new io.netty.handler.codec.compression.ByteBufChecksum$ReflectiveByteBufChecksum
            dup
            aload 0 /* checksum */
            getstatic io.netty.handler.codec.compression.ByteBufChecksum.CRC32_UPDATE_METHOD:Ljava/lang/reflect/Method;
            invokespecial io.netty.handler.codec.compression.ByteBufChecksum$ReflectiveByteBufChecksum.<init>:(Ljava/util/zip/Checksum;Ljava/lang/reflect/Method;)V
            areturn
         5: .line 75
      StackMap locals:
      StackMap stack:
            new io.netty.handler.codec.compression.ByteBufChecksum$SlowByteBufChecksum
            dup
            aload 0 /* checksum */
            invokespecial io.netty.handler.codec.compression.ByteBufChecksum$SlowByteBufChecksum.<init>:(Ljava/util/zip/Checksum;)V
            areturn
        end local 0 // java.util.zip.Checksum checksum
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0  checksum  Ljava/util/zip/Checksum;
    MethodParameters:
          Name  Flags
      checksum  

  public void update(io.netty.buffer.ByteBuf, int, int);
    descriptor: (Lio/netty/buffer/ByteBuf;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // io.netty.handler.codec.compression.ByteBufChecksum this
        start local 1 // io.netty.buffer.ByteBuf b
        start local 2 // int off
        start local 3 // int len
         0: .line 82
            aload 1 /* b */
            invokevirtual io.netty.buffer.ByteBuf.hasArray:()Z
            ifeq 3
         1: .line 83
            aload 0 /* this */
            aload 1 /* b */
            invokevirtual io.netty.buffer.ByteBuf.array:()[B
            aload 1 /* b */
            invokevirtual io.netty.buffer.ByteBuf.arrayOffset:()I
            iload 2 /* off */
            iadd
            iload 3 /* len */
            invokevirtual io.netty.handler.codec.compression.ByteBufChecksum.update:([BII)V
         2: .line 84
            goto 4
         3: .line 85
      StackMap locals:
      StackMap stack:
            aload 1 /* b */
            iload 2 /* off */
            iload 3 /* len */
            aload 0 /* this */
            getfield io.netty.handler.codec.compression.ByteBufChecksum.updateProcessor:Lio/netty/util/ByteProcessor;
            invokevirtual io.netty.buffer.ByteBuf.forEachByte:(IILio/netty/util/ByteProcessor;)I
            pop
         4: .line 87
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int len
        end local 2 // int off
        end local 1 // io.netty.buffer.ByteBuf b
        end local 0 // io.netty.handler.codec.compression.ByteBufChecksum this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/netty/handler/codec/compression/ByteBufChecksum;
            0    5     1     b  Lio/netty/buffer/ByteBuf;
            0    5     2   off  I
            0    5     3   len  I
    MethodParameters:
      Name  Flags
      b     
      off   
      len   
}
SourceFile: "ByteBufChecksum.java"
NestMembers:
  io.netty.handler.codec.compression.ByteBufChecksum$1  io.netty.handler.codec.compression.ByteBufChecksum$ReflectiveByteBufChecksum  io.netty.handler.codec.compression.ByteBufChecksum$SlowByteBufChecksum
InnerClasses:
  io.netty.handler.codec.compression.ByteBufChecksum$1
  private final ReflectiveByteBufChecksum = io.netty.handler.codec.compression.ByteBufChecksum$ReflectiveByteBufChecksum of io.netty.handler.codec.compression.ByteBufChecksum
  private SlowByteBufChecksum = io.netty.handler.codec.compression.ByteBufChecksum$SlowByteBufChecksum of io.netty.handler.codec.compression.ByteBufChecksum