final class jdk.internal.jimage.decompressor.ZipDecompressor implements jdk.internal.jimage.decompressor.ResourceDecompressor
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: jdk.internal.jimage.decompressor.ZipDecompressor
  super_class: java.lang.Object
{
  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.jimage.decompressor.ZipDecompressor this
         0: .line 40
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // jdk.internal.jimage.decompressor.ZipDecompressor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jimage/decompressor/ZipDecompressor;

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.jimage.decompressor.ZipDecompressor this
         0: .line 44
            ldc "zip"
            areturn
        end local 0 // jdk.internal.jimage.decompressor.ZipDecompressor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jimage/decompressor/ZipDecompressor;

  static byte[] decompress(byte[], int);
    descriptor: ([BI)[B
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // byte[] bytesIn
        start local 1 // int offset
         0: .line 48
            new java.util.zip.Inflater
            dup
            invokespecial java.util.zip.Inflater.<init>:()V
            astore 2 /* inflater */
        start local 2 // java.util.zip.Inflater inflater
         1: .line 49
            aload 2 /* inflater */
            aload 0 /* bytesIn */
            iload 1 /* offset */
            aload 0 /* bytesIn */
            arraylength
            iload 1 /* offset */
            isub
            invokevirtual java.util.zip.Inflater.setInput:([BII)V
         2: .line 50
            new java.io.ByteArrayOutputStream
            dup
            aload 0 /* bytesIn */
            arraylength
            iload 1 /* offset */
            isub
            invokespecial java.io.ByteArrayOutputStream.<init>:(I)V
            astore 3 /* stream */
        start local 3 // java.io.ByteArrayOutputStream stream
         3: .line 51
            sipush 1024
            newarray 8
            astore 4 /* buffer */
        start local 4 // byte[] buffer
         4: .line 53
            goto 7
         5: .line 54
      StackMap locals: java.util.zip.Inflater java.io.ByteArrayOutputStream byte[]
      StackMap stack:
            aload 2 /* inflater */
            aload 4 /* buffer */
            invokevirtual java.util.zip.Inflater.inflate:([B)I
            istore 5 /* count */
        start local 5 // int count
         6: .line 55
            aload 3 /* stream */
            aload 4 /* buffer */
            iconst_0
            iload 5 /* count */
            invokevirtual java.io.ByteArrayOutputStream.write:([BII)V
        end local 5 // int count
         7: .line 53
      StackMap locals:
      StackMap stack:
            aload 2 /* inflater */
            invokevirtual java.util.zip.Inflater.finished:()Z
            ifeq 5
         8: .line 58
            aload 3 /* stream */
            invokevirtual java.io.ByteArrayOutputStream.close:()V
         9: .line 60
            aload 3 /* stream */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            astore 5 /* bytesOut */
        start local 5 // byte[] bytesOut
        10: .line 61
            aload 2 /* inflater */
            invokevirtual java.util.zip.Inflater.end:()V
        11: .line 63
            aload 5 /* bytesOut */
            areturn
        end local 5 // byte[] bytesOut
        end local 4 // byte[] buffer
        end local 3 // java.io.ByteArrayOutputStream stream
        end local 2 // java.util.zip.Inflater inflater
        end local 1 // int offset
        end local 0 // byte[] bytesIn
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0   bytesIn  [B
            0   12     1    offset  I
            1   12     2  inflater  Ljava/util/zip/Inflater;
            3   12     3    stream  Ljava/io/ByteArrayOutputStream;
            4   12     4    buffer  [B
            6    7     5     count  I
           10   12     5  bytesOut  [B
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
         Name  Flags
      bytesIn  
      offset   

  public byte[] decompress(jdk.internal.jimage.decompressor.ResourceDecompressor$StringsProvider, byte[], int, long);
    descriptor: (Ljdk/internal/jimage/decompressor/ResourceDecompressor$StringsProvider;[BIJ)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=5
        start local 0 // jdk.internal.jimage.decompressor.ZipDecompressor this
        start local 1 // jdk.internal.jimage.decompressor.ResourceDecompressor$StringsProvider reader
        start local 2 // byte[] content
        start local 3 // int offset
        start local 4 // long originalSize
         0: .line 69
            aload 2 /* content */
            iload 3 /* offset */
            invokestatic jdk.internal.jimage.decompressor.ZipDecompressor.decompress:([BI)[B
            astore 6 /* decompressed */
        start local 6 // byte[] decompressed
         1: .line 70
            aload 6 /* decompressed */
            areturn
        end local 6 // byte[] decompressed
        end local 4 // long originalSize
        end local 3 // int offset
        end local 2 // byte[] content
        end local 1 // jdk.internal.jimage.decompressor.ResourceDecompressor$StringsProvider reader
        end local 0 // jdk.internal.jimage.decompressor.ZipDecompressor this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Ljdk/internal/jimage/decompressor/ZipDecompressor;
            0    2     1        reader  Ljdk/internal/jimage/decompressor/ResourceDecompressor$StringsProvider;
            0    2     2       content  [B
            0    2     3        offset  I
            0    2     4  originalSize  J
            1    2     6  decompressed  [B
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
              Name  Flags
      reader        
      content       
      offset        
      originalSize  
}
SourceFile: "ZipDecompressor.java"
InnerClasses:
  public abstract StringsProvider = jdk.internal.jimage.decompressor.ResourceDecompressor$StringsProvider of jdk.internal.jimage.decompressor.ResourceDecompressor