class com.sun.java.util.jar.pack.NativeUnpack
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.sun.java.util.jar.pack.NativeUnpack
  super_class: java.lang.Object
{
  private long unpackerPtr;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private java.io.BufferedInputStream in;
    descriptor: Ljava/io/BufferedInputStream;
    flags: (0x0002) ACC_PRIVATE

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

  private long _byteCount;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

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

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

  private long _estByteLimit;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

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

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

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

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

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

  private com.sun.java.util.jar.pack.UnpackerImpl _p200;
    descriptor: Lcom/sun/java/util/jar/pack/UnpackerImpl;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.java.util.jar.pack.PropMap _props;
    descriptor: Lcom/sun/java/util/jar/pack/PropMap;
    flags: (0x0002) ACC_PRIVATE

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 43
            ldc Lcom/sun/java/util/jar/pack/NativeUnpack;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.sun.java.util.jar.pack.NativeUnpack.$assertionsDisabled:Z
         3: .line 91
            new com.sun.java.util.jar.pack.NativeUnpack$1
            dup
            invokespecial com.sun.java.util.jar.pack.NativeUnpack$1.<init>:()V
         4: .line 90
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            pop
         5: .line 97
            invokestatic com.sun.java.util.jar.pack.NativeUnpack.initIDs:()V
         6: .line 98
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static synchronized native void initIDs();
    descriptor: ()V
    flags: (0x012a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED, ACC_NATIVE

  private synchronized native long start(java.nio.ByteBuffer, long);
    descriptor: (Ljava/nio/ByteBuffer;J)J
    flags: (0x0122) ACC_PRIVATE, ACC_SYNCHRONIZED, ACC_NATIVE
    MethodParameters:
        Name  Flags
      buf     
      offset  

  private synchronized native boolean getNextFile(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)Z
    flags: (0x0122) ACC_PRIVATE, ACC_SYNCHRONIZED, ACC_NATIVE
    MethodParameters:
       Name  Flags
      parts  

  private synchronized native java.nio.ByteBuffer getUnusedInput();
    descriptor: ()Ljava/nio/ByteBuffer;
    flags: (0x0122) ACC_PRIVATE, ACC_SYNCHRONIZED, ACC_NATIVE

  private synchronized native long finish();
    descriptor: ()J
    flags: (0x0122) ACC_PRIVATE, ACC_SYNCHRONIZED, ACC_NATIVE

  protected synchronized native boolean setOption(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x0124) ACC_PROTECTED, ACC_SYNCHRONIZED, ACC_NATIVE
    MethodParameters:
       Name  Flags
      opt    
      value  

  protected synchronized native java.lang.String getOption(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0124) ACC_PROTECTED, ACC_SYNCHRONIZED, ACC_NATIVE
    MethodParameters:
      Name  Flags
      opt   

  void <init>(com.sun.java.util.jar.pack.UnpackerImpl);
    descriptor: (Lcom/sun/java/util/jar/pack/UnpackerImpl;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.java.util.jar.pack.NativeUnpack this
        start local 1 // com.sun.java.util.jar.pack.UnpackerImpl p200
         0: .line 101
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 79
            aload 0 /* this */
            iconst_m1
            putfield com.sun.java.util.jar.pack.NativeUnpack._prevPercent:I
         2: .line 81
            aload 0 /* this */
            new java.util.zip.CRC32
            dup
            invokespecial java.util.zip.CRC32.<init>:()V
            putfield com.sun.java.util.jar.pack.NativeUnpack._crc32:Ljava/util/zip/CRC32;
         3: .line 82
            aload 0 /* this */
            sipush 16384
            newarray 8
            putfield com.sun.java.util.jar.pack.NativeUnpack._buf:[B
         4: .line 102
            aload 0 /* this */
            aload 1 /* p200 */
            putfield com.sun.java.util.jar.pack.NativeUnpack._p200:Lcom/sun/java/util/jar/pack/UnpackerImpl;
         5: .line 103
            aload 0 /* this */
            aload 1 /* p200 */
            getfield com.sun.java.util.jar.pack.UnpackerImpl.props:Lcom/sun/java/util/jar/pack/PropMap;
            putfield com.sun.java.util.jar.pack.NativeUnpack._props:Lcom/sun/java/util/jar/pack/PropMap;
         6: .line 104
            aload 1 /* p200 */
            aload 0 /* this */
            putfield com.sun.java.util.jar.pack.UnpackerImpl._nunp:Ljava/lang/Object;
         7: .line 105
            return
        end local 1 // com.sun.java.util.jar.pack.UnpackerImpl p200
        end local 0 // com.sun.java.util.jar.pack.NativeUnpack this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/java/util/jar/pack/NativeUnpack;
            0    8     1  p200  Lcom/sun/java/util/jar/pack/UnpackerImpl;
    MethodParameters:
      Name  Flags
      p200  

  private static java.lang.Object currentInstance();
    descriptor: ()Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=0
         0: .line 109
            invokestatic com.sun.java.util.jar.pack.Utils.getTLGlobals:()Lcom/sun/java/util/jar/pack/TLGlobals;
            checkcast com.sun.java.util.jar.pack.UnpackerImpl
            astore 0 /* p200 */
        start local 0 // com.sun.java.util.jar.pack.UnpackerImpl p200
         1: .line 110
            aload 0 /* p200 */
            ifnonnull 2
            aconst_null
            goto 3
      StackMap locals: com.sun.java.util.jar.pack.UnpackerImpl
      StackMap stack:
         2: aload 0 /* p200 */
            getfield com.sun.java.util.jar.pack.UnpackerImpl._nunp:Ljava/lang/Object;
      StackMap locals:
      StackMap stack: java.lang.Object
         3: areturn
        end local 0 // com.sun.java.util.jar.pack.UnpackerImpl p200
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    4     0  p200  Lcom/sun/java/util/jar/pack/UnpackerImpl;

  private synchronized long getUnpackerPtr();
    descriptor: ()J
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.java.util.jar.pack.NativeUnpack this
         0: .line 114
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack.unpackerPtr:J
            lreturn
        end local 0 // com.sun.java.util.jar.pack.NativeUnpack this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/java/util/jar/pack/NativeUnpack;

  private long readInputFn(java.nio.ByteBuffer, long);
    descriptor: (Ljava/nio/ByteBuffer;J)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // com.sun.java.util.jar.pack.NativeUnpack this
        start local 1 // java.nio.ByteBuffer pbuf
        start local 2 // long minlen
         0: .line 119
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack.in:Ljava/io/BufferedInputStream;
            ifnonnull 1
            lconst_0
            lreturn
         1: .line 120
      StackMap locals:
      StackMap stack:
            aload 1 /* pbuf */
            invokevirtual java.nio.ByteBuffer.capacity:()I
            aload 1 /* pbuf */
            invokevirtual java.nio.ByteBuffer.position:()I
            isub
            i2l
            lstore 4 /* maxlen */
        start local 4 // long maxlen
         2: .line 121
            getstatic com.sun.java.util.jar.pack.NativeUnpack.$assertionsDisabled:Z
            ifne 3
            lload 2 /* minlen */
            lload 4 /* maxlen */
            lcmp
            ifle 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 122
      StackMap locals: long
      StackMap stack:
            lconst_0
            lstore 6 /* numread */
        start local 6 // long numread
         4: .line 123
            iconst_0
            istore 8 /* steps */
        start local 8 // int steps
         5: .line 124
            goto 15
         6: .line 125
      StackMap locals: long int
      StackMap stack:
            iinc 8 /* steps */ 1
         7: .line 127
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._buf:[B
            arraylength
            istore 9 /* readlen */
        start local 9 // int readlen
         8: .line 128
            iload 9 /* readlen */
            i2l
            lload 4 /* maxlen */
            lload 6 /* numread */
            lsub
            lcmp
            ifle 10
         9: .line 129
            lload 4 /* maxlen */
            lload 6 /* numread */
            lsub
            l2i
            istore 9 /* readlen */
        10: .line 130
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack.in:Ljava/io/BufferedInputStream;
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._buf:[B
            iconst_0
            iload 9 /* readlen */
            invokevirtual java.io.BufferedInputStream.read:([BII)I
            istore 10 /* nr */
        start local 10 // int nr
        11: .line 131
            iload 10 /* nr */
            ifgt 12
            goto 16
        12: .line 132
      StackMap locals: int
      StackMap stack:
            lload 6 /* numread */
            iload 10 /* nr */
            i2l
            ladd
            lstore 6 /* numread */
        13: .line 133
            getstatic com.sun.java.util.jar.pack.NativeUnpack.$assertionsDisabled:Z
            ifne 14
            lload 6 /* numread */
            lload 4 /* maxlen */
            lcmp
            ifle 14
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        14: .line 135
      StackMap locals:
      StackMap stack:
            aload 1 /* pbuf */
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._buf:[B
            iconst_0
            iload 10 /* nr */
            invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
            pop
        end local 10 // int nr
        end local 9 // int readlen
        15: .line 124
      StackMap locals:
      StackMap stack:
            lload 6 /* numread */
            lload 2 /* minlen */
            lcmp
            iflt 6
        16: .line 137
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._verbose:I
            iconst_1
            if_icmple 18
        17: .line 138
            getstatic com.sun.java.util.jar.pack.Utils.log:Lcom/sun/java/util/jar/pack/Utils$Pack200Logger;
            new java.lang.StringBuilder
            dup
            ldc "readInputFn("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 2 /* minlen */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ","
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 4 /* maxlen */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ") => "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 6 /* numread */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " steps="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 8 /* steps */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.java.util.jar.pack.Utils$Pack200Logger.fine:(Ljava/lang/String;)V
        18: .line 139
      StackMap locals:
      StackMap stack:
            lload 4 /* maxlen */
            ldc 100
            lcmp
            ifle 21
        19: .line 140
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._byteCount:J
            lload 4 /* maxlen */
            ladd
            putfield com.sun.java.util.jar.pack.NativeUnpack._estByteLimit:J
        20: .line 141
            goto 22
        21: .line 142
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._byteCount:J
            lload 6 /* numread */
            ladd
            ldc 20
            lmul
            putfield com.sun.java.util.jar.pack.NativeUnpack._estByteLimit:J
        22: .line 144
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.sun.java.util.jar.pack.NativeUnpack._byteCount:J
            lload 6 /* numread */
            ladd
            putfield com.sun.java.util.jar.pack.NativeUnpack._byteCount:J
        23: .line 145
            aload 0 /* this */
            invokevirtual com.sun.java.util.jar.pack.NativeUnpack.updateProgress:()V
        24: .line 146
            lload 6 /* numread */
            lreturn
        end local 8 // int steps
        end local 6 // long numread
        end local 4 // long maxlen
        end local 2 // long minlen
        end local 1 // java.nio.ByteBuffer pbuf
        end local 0 // com.sun.java.util.jar.pack.NativeUnpack this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   25     0     this  Lcom/sun/java/util/jar/pack/NativeUnpack;
            0   25     1     pbuf  Ljava/nio/ByteBuffer;
            0   25     2   minlen  J
            2   25     4   maxlen  J
            4   25     6  numread  J
            5   25     8    steps  I
            8   15     9  readlen  I
           11   15    10       nr  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      pbuf    
      minlen  

  private void updateProgress();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=8, args_size=1
        start local 0 // com.sun.java.util.jar.pack.NativeUnpack this
         0: .line 153
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._segCount:I
            i2d
            dstore 1 /* readProgress */
        start local 1 // double readProgress
         1: .line 154
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._estByteLimit:J
            lconst_0
            lcmp
            ifle 3
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._byteCount:J
            lconst_0
            lcmp
            ifle 3
         2: .line 155
            dload 1 /* readProgress */
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._byteCount:J
            l2d
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._estByteLimit:J
            l2d
            ddiv
            dadd
            dstore 1 /* readProgress */
         3: .line 156
      StackMap locals: double
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._fileCount:I
            i2d
            dstore 3 /* writeProgress */
        start local 3 // double writeProgress
         4: .line 158
            ldc 0.33
            dload 1 /* readProgress */
            dmul
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._estSegLimit:I
            iconst_1
            invokestatic java.lang.Math.max:(II)I
            i2d
            ddiv
         5: .line 159
            ldc 0.67
            dload 3 /* writeProgress */
            dmul
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._estFileLimit:I
            iconst_1
            invokestatic java.lang.Math.max:(II)I
            i2d
            ddiv
         6: .line 158
            dadd
         7: .line 157
            dstore 5 /* scaledProgress */
        start local 5 // double scaledProgress
         8: .line 160
            ldc 100.0
            dload 5 /* scaledProgress */
            dmul
            invokestatic java.lang.Math.round:(D)J
            l2i
            istore 7 /* percent */
        start local 7 // int percent
         9: .line 161
            iload 7 /* percent */
            bipush 100
            if_icmple 10
            bipush 100
            istore 7 /* percent */
        10: .line 162
      StackMap locals: double double int
      StackMap stack:
            iload 7 /* percent */
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._prevPercent:I
            if_icmple 15
        11: .line 163
            aload 0 /* this */
            iload 7 /* percent */
            putfield com.sun.java.util.jar.pack.NativeUnpack._prevPercent:I
        12: .line 164
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._props:Lcom/sun/java/util/jar/pack/PropMap;
            ldc "unpack.progress"
            iload 7 /* percent */
            invokevirtual com.sun.java.util.jar.pack.PropMap.setInteger:(Ljava/lang/String;I)I
            pop
        13: .line 165
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._verbose:I
            ifle 15
        14: .line 166
            getstatic com.sun.java.util.jar.pack.Utils.log:Lcom/sun/java/util/jar/pack/Utils$Pack200Logger;
            new java.lang.StringBuilder
            dup
            ldc "progress = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 7 /* percent */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.java.util.jar.pack.Utils$Pack200Logger.info:(Ljava/lang/String;)V
        15: .line 168
      StackMap locals:
      StackMap stack:
            return
        end local 7 // int percent
        end local 5 // double scaledProgress
        end local 3 // double writeProgress
        end local 1 // double readProgress
        end local 0 // com.sun.java.util.jar.pack.NativeUnpack this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   16     0            this  Lcom/sun/java/util/jar/pack/NativeUnpack;
            1   16     1    readProgress  D
            4   16     3   writeProgress  D
            8   16     5  scaledProgress  D
            9   16     7         percent  I

  private void copyInOption(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.sun.java.util.jar.pack.NativeUnpack this
        start local 1 // java.lang.String opt
         0: .line 171
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._props:Lcom/sun/java/util/jar/pack/PropMap;
            aload 1 /* opt */
            invokevirtual com.sun.java.util.jar.pack.PropMap.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* val */
        start local 2 // java.lang.String val
         1: .line 172
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._verbose:I
            ifle 3
         2: .line 173
            getstatic com.sun.java.util.jar.pack.Utils.log:Lcom/sun/java/util/jar/pack/Utils$Pack200Logger;
            new java.lang.StringBuilder
            dup
            ldc "set "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* opt */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* val */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.java.util.jar.pack.Utils$Pack200Logger.info:(Ljava/lang/String;)V
         3: .line 174
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* val */
            ifnull 7
         4: .line 175
            aload 0 /* this */
            aload 1 /* opt */
            aload 2 /* val */
            invokevirtual com.sun.java.util.jar.pack.NativeUnpack.setOption:(Ljava/lang/String;Ljava/lang/String;)Z
            istore 3 /* set */
        start local 3 // boolean set
         5: .line 176
            iload 3 /* set */
            ifne 7
         6: .line 177
            getstatic com.sun.java.util.jar.pack.Utils.log:Lcom/sun/java/util/jar/pack/Utils$Pack200Logger;
            new java.lang.StringBuilder
            dup
            ldc "Invalid option "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* opt */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* val */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.java.util.jar.pack.Utils$Pack200Logger.warning:(Ljava/lang/String;)V
        end local 3 // boolean set
         7: .line 179
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String val
        end local 1 // java.lang.String opt
        end local 0 // com.sun.java.util.jar.pack.NativeUnpack this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/java/util/jar/pack/NativeUnpack;
            0    8     1   opt  Ljava/lang/String;
            1    8     2   val  Ljava/lang/String;
            5    7     3   set  Z
    MethodParameters:
      Name  Flags
      opt   

  void run(java.io.InputStream, java.util.jar.JarOutputStream, java.nio.ByteBuffer);
    descriptor: (Ljava/io/InputStream;Ljava/util/jar/JarOutputStream;Ljava/nio/ByteBuffer;)V
    flags: (0x0000) 
    Code:
      stack=10, locals=22, args_size=4
        start local 0 // com.sun.java.util.jar.pack.NativeUnpack this
        start local 1 // java.io.InputStream inRaw
        start local 2 // java.util.jar.JarOutputStream jstream
        start local 3 // java.nio.ByteBuffer presetInput
         0: .line 183
            new java.io.BufferedInputStream
            dup
            aload 1 /* inRaw */
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            astore 4 /* in0 */
        start local 4 // java.io.BufferedInputStream in0
         1: .line 184
            aload 0 /* this */
            aload 4 /* in0 */
            putfield com.sun.java.util.jar.pack.NativeUnpack.in:Ljava/io/BufferedInputStream;
         2: .line 185
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._props:Lcom/sun/java/util/jar/pack/PropMap;
            ldc "com.sun.java.util.jar.pack.verbose"
            invokevirtual com.sun.java.util.jar.pack.PropMap.getInteger:(Ljava/lang/String;)I
            putfield com.sun.java.util.jar.pack.NativeUnpack._verbose:I
         3: .line 189
            ldc "keep"
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._props:Lcom/sun/java/util/jar/pack/PropMap;
            ldc "com.sun.java.util.jar.pack.unpack.modification.time"
            ldc "0"
            invokevirtual com.sun.java.util.jar.pack.PropMap.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 190
            iconst_0
            goto 6
      StackMap locals: java.io.BufferedInputStream
      StackMap stack:
         5: aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._props:Lcom/sun/java/util/jar/pack/PropMap;
            ldc "com.sun.java.util.jar.pack.unpack.modification.time"
            invokevirtual com.sun.java.util.jar.pack.PropMap.getTime:(Ljava/lang/String;)I
         6: .line 189
      StackMap locals:
      StackMap stack: int
            istore 5 /* modtime */
        start local 5 // int modtime
         7: .line 192
            aload 0 /* this */
            ldc "com.sun.java.util.jar.pack.verbose"
            invokevirtual com.sun.java.util.jar.pack.NativeUnpack.copyInOption:(Ljava/lang/String;)V
         8: .line 193
            aload 0 /* this */
            ldc "unpack.deflate.hint"
            invokevirtual com.sun.java.util.jar.pack.NativeUnpack.copyInOption:(Ljava/lang/String;)V
         9: .line 194
            iload 5 /* modtime */
            ifne 11
        10: .line 195
            aload 0 /* this */
            ldc "com.sun.java.util.jar.pack.unpack.modification.time"
            invokevirtual com.sun.java.util.jar.pack.NativeUnpack.copyInOption:(Ljava/lang/String;)V
        11: .line 196
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.java.util.jar.pack.NativeUnpack.updateProgress:()V
        12: .line 199
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* presetInput */
            lconst_0
            invokevirtual com.sun.java.util.jar.pack.NativeUnpack.start:(Ljava/nio/ByteBuffer;J)J
            lstore 6 /* counts */
        start local 6 // long counts
        13: .line 200
            aload 0 /* this */
            aload 0 /* this */
            lconst_0
            dup2_x1
            putfield com.sun.java.util.jar.pack.NativeUnpack._estByteLimit:J
            putfield com.sun.java.util.jar.pack.NativeUnpack._byteCount:J
        14: .line 201
            aload 0 /* this */
            dup
            getfield com.sun.java.util.jar.pack.NativeUnpack._segCount:I
            iconst_1
            iadd
            putfield com.sun.java.util.jar.pack.NativeUnpack._segCount:I
        15: .line 202
            lload 6 /* counts */
            bipush 32
            lushr
            l2i
            istore 8 /* nextSeg */
        start local 8 // int nextSeg
        16: .line 203
            lload 6 /* counts */
            iconst_0
            lushr
            l2i
            istore 9 /* nextFile */
        start local 9 // int nextFile
        17: .line 206
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._segCount:I
            iload 8 /* nextSeg */
            iadd
            putfield com.sun.java.util.jar.pack.NativeUnpack._estSegLimit:I
        18: .line 207
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._fileCount:I
            iload 9 /* nextFile */
            iadd
            i2d
            dstore 10 /* filesAfterThisSeg */
        start local 10 // double filesAfterThisSeg
        19: .line 208
            aload 0 /* this */
            dload 10 /* filesAfterThisSeg */
        20: .line 209
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._estSegLimit:I
            i2d
            dmul
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._segCount:I
            i2d
            ddiv
            d2i
        21: .line 208
            putfield com.sun.java.util.jar.pack.NativeUnpack._estFileLimit:I
        22: .line 212
            iconst_4
            newarray 10
            astore 12 /* intParts */
        start local 12 // int[] intParts
        23: .line 214
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 12 /* intParts */
            aastore
            astore 13 /* parts */
        start local 13 // java.lang.Object[] parts
        24: .line 216
            goto 43
        25: .line 218
      StackMap locals: com.sun.java.util.jar.pack.NativeUnpack java.io.InputStream java.util.jar.JarOutputStream java.nio.ByteBuffer java.io.BufferedInputStream int long int int double int[] java.lang.Object[]
      StackMap stack:
            aload 13 /* parts */
            iconst_1
            aaload
            checkcast java.lang.String
            astore 14 /* name */
        start local 14 // java.lang.String name
        26: .line 219
            aload 12 /* intParts */
            iconst_0
            iaload
            i2l
            bipush 32
            lshl
        27: .line 220
            aload 12 /* intParts */
            iconst_1
            iaload
            i2l
            bipush 32
            lshl
            bipush 32
            lushr
        28: .line 219
            ladd
            lstore 15 /* size */
        start local 15 // long size
        29: .line 222
            iload 5 /* modtime */
            ifeq 31
        30: .line 223
            iload 5 /* modtime */
            goto 32
      StackMap locals: java.lang.String long
      StackMap stack:
        31: aload 12 /* intParts */
            iconst_2
            iaload
        32: .line 222
      StackMap locals:
      StackMap stack: int
            i2l
            lstore 17 /* mtime */
        start local 17 // long mtime
        33: .line 224
            aload 12 /* intParts */
            iconst_3
            iaload
            ifeq 34
            iconst_1
            goto 35
      StackMap locals: long
      StackMap stack:
        34: iconst_0
      StackMap locals:
      StackMap stack: int
        35: istore 19 /* deflateHint */
        start local 19 // boolean deflateHint
        36: .line 225
            aload 13 /* parts */
            iconst_2
            aaload
            checkcast java.nio.ByteBuffer
            astore 20 /* data0 */
        start local 20 // java.nio.ByteBuffer data0
        37: .line 226
            aload 13 /* parts */
            iconst_3
            aaload
            checkcast java.nio.ByteBuffer
            astore 21 /* data1 */
        start local 21 // java.nio.ByteBuffer data1
        38: .line 227
            aload 0 /* this */
            aload 2 /* jstream */
            aload 14 /* name */
            lload 17 /* mtime */
            lload 15 /* size */
            iload 19 /* deflateHint */
        39: .line 228
            aload 20 /* data0 */
            aload 21 /* data1 */
        40: .line 227
            invokevirtual com.sun.java.util.jar.pack.NativeUnpack.writeEntry:(Ljava/util/jar/JarOutputStream;Ljava/lang/String;JJZLjava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)V
        41: .line 229
            aload 0 /* this */
            dup
            getfield com.sun.java.util.jar.pack.NativeUnpack._fileCount:I
            iconst_1
            iadd
            putfield com.sun.java.util.jar.pack.NativeUnpack._fileCount:I
        42: .line 230
            aload 0 /* this */
            invokevirtual com.sun.java.util.jar.pack.NativeUnpack.updateProgress:()V
        end local 21 // java.nio.ByteBuffer data1
        end local 20 // java.nio.ByteBuffer data0
        end local 19 // boolean deflateHint
        end local 17 // long mtime
        end local 15 // long size
        end local 14 // java.lang.String name
        43: .line 216
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 13 /* parts */
            invokevirtual com.sun.java.util.jar.pack.NativeUnpack.getNextFile:([Ljava/lang/Object;)Z
            ifne 25
        44: .line 232
            aload 0 /* this */
            invokevirtual com.sun.java.util.jar.pack.NativeUnpack.getUnusedInput:()Ljava/nio/ByteBuffer;
            astore 3 /* presetInput */
        45: .line 233
            aload 0 /* this */
            invokevirtual com.sun.java.util.jar.pack.NativeUnpack.finish:()J
            lstore 14 /* consumed */
        start local 14 // long consumed
        46: .line 234
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._verbose:I
            ifle 48
        47: .line 235
            getstatic com.sun.java.util.jar.pack.Utils.log:Lcom/sun/java/util/jar/pack/Utils$Pack200Logger;
            new java.lang.StringBuilder
            dup
            ldc "bytes consumed = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 14 /* consumed */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.java.util.jar.pack.Utils$Pack200Logger.info:(Ljava/lang/String;)V
        48: .line 236
      StackMap locals: long
      StackMap stack:
            aload 3 /* presetInput */
            ifnonnull 51
        49: .line 237
            aload 4 /* in0 */
            invokestatic com.sun.java.util.jar.pack.Utils.readMagic:(Ljava/io/BufferedInputStream;)[B
            invokestatic com.sun.java.util.jar.pack.Utils.isPackMagic:([B)Z
            ifne 51
        50: .line 238
            goto 55
        51: .line 240
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._verbose:I
            ifle 12
        52: .line 241
            aload 3 /* presetInput */
            ifnull 12
        53: .line 242
            getstatic com.sun.java.util.jar.pack.Utils.log:Lcom/sun/java/util/jar/pack/Utils$Pack200Logger;
            new java.lang.StringBuilder
            dup
            ldc "unused input = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* presetInput */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.java.util.jar.pack.Utils$Pack200Logger.info:(Ljava/lang/String;)V
        end local 14 // long consumed
        end local 13 // java.lang.Object[] parts
        end local 12 // int[] intParts
        end local 10 // double filesAfterThisSeg
        end local 9 // int nextFile
        end local 8 // int nextSeg
        end local 6 // long counts
        54: .line 197
            goto 12
        55: .line 245
      StackMap locals: com.sun.java.util.jar.pack.NativeUnpack java.io.InputStream java.util.jar.JarOutputStream java.nio.ByteBuffer java.io.BufferedInputStream int
      StackMap stack:
            return
        end local 5 // int modtime
        end local 4 // java.io.BufferedInputStream in0
        end local 3 // java.nio.ByteBuffer presetInput
        end local 2 // java.util.jar.JarOutputStream jstream
        end local 1 // java.io.InputStream inRaw
        end local 0 // com.sun.java.util.jar.pack.NativeUnpack this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   56     0               this  Lcom/sun/java/util/jar/pack/NativeUnpack;
            0   56     1              inRaw  Ljava/io/InputStream;
            0   56     2            jstream  Ljava/util/jar/JarOutputStream;
            0   56     3        presetInput  Ljava/nio/ByteBuffer;
            1   56     4                in0  Ljava/io/BufferedInputStream;
            7   56     5            modtime  I
           13   54     6             counts  J
           16   54     8            nextSeg  I
           17   54     9           nextFile  I
           19   54    10  filesAfterThisSeg  D
           23   54    12           intParts  [I
           24   54    13              parts  [Ljava/lang/Object;
           26   43    14               name  Ljava/lang/String;
           29   43    15               size  J
           33   43    17              mtime  J
           36   43    19        deflateHint  Z
           37   43    20              data0  Ljava/nio/ByteBuffer;
           38   43    21              data1  Ljava/nio/ByteBuffer;
           46   54    14           consumed  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      inRaw        
      jstream      
      presetInput  

  void run(java.io.InputStream, java.util.jar.JarOutputStream);
    descriptor: (Ljava/io/InputStream;Ljava/util/jar/JarOutputStream;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.sun.java.util.jar.pack.NativeUnpack this
        start local 1 // java.io.InputStream in
        start local 2 // java.util.jar.JarOutputStream jstream
         0: .line 248
            aload 0 /* this */
            aload 1 /* in */
            aload 2 /* jstream */
            aconst_null
            invokevirtual com.sun.java.util.jar.pack.NativeUnpack.run:(Ljava/io/InputStream;Ljava/util/jar/JarOutputStream;Ljava/nio/ByteBuffer;)V
         1: .line 249
            return
        end local 2 // java.util.jar.JarOutputStream jstream
        end local 1 // java.io.InputStream in
        end local 0 // com.sun.java.util.jar.pack.NativeUnpack this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/sun/java/util/jar/pack/NativeUnpack;
            0    2     1       in  Ljava/io/InputStream;
            0    2     2  jstream  Ljava/util/jar/JarOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      in       
      jstream  

  void run(java.io.File, java.util.jar.JarOutputStream);
    descriptor: (Ljava/io/File;Ljava/util/jar/JarOutputStream;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // com.sun.java.util.jar.pack.NativeUnpack this
        start local 1 // java.io.File inFile
        start local 2 // java.util.jar.JarOutputStream jstream
         0: .line 253
            aconst_null
            astore 3 /* mappedFile */
        start local 3 // java.nio.ByteBuffer mappedFile
         1: .line 254
            aconst_null
            astore 4
            aconst_null
            astore 5
         2: new java.io.FileInputStream
            dup
            aload 1 /* inFile */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            astore 6 /* fis */
        start local 6 // java.io.FileInputStream fis
         3: .line 255
            aload 0 /* this */
            aload 6 /* fis */
            aload 2 /* jstream */
            aload 3 /* mappedFile */
            invokevirtual com.sun.java.util.jar.pack.NativeUnpack.run:(Ljava/io/InputStream;Ljava/util/jar/JarOutputStream;Ljava/nio/ByteBuffer;)V
         4: .line 256
            aload 6 /* fis */
            ifnull 10
            aload 6 /* fis */
            invokevirtual java.io.FileInputStream.close:()V
            goto 10
      StackMap locals: com.sun.java.util.jar.pack.NativeUnpack java.io.File java.util.jar.JarOutputStream java.nio.ByteBuffer java.lang.Throwable java.lang.Throwable java.io.FileInputStream
      StackMap stack: java.lang.Throwable
         5: astore 4
            aload 6 /* fis */
            ifnull 6
            aload 6 /* fis */
            invokevirtual java.io.FileInputStream.close:()V
        end local 6 // java.io.FileInputStream fis
      StackMap locals:
      StackMap stack:
         6: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 5
            aload 4
            ifnonnull 8
            aload 5
            astore 4
            goto 9
      StackMap locals:
      StackMap stack:
         8: aload 4
            aload 5
            if_acmpeq 9
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
         9: aload 4
            athrow
        10: .line 258
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.nio.ByteBuffer mappedFile
        end local 2 // java.util.jar.JarOutputStream jstream
        end local 1 // java.io.File inFile
        end local 0 // com.sun.java.util.jar.pack.NativeUnpack this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Lcom/sun/java/util/jar/pack/NativeUnpack;
            0   11     1      inFile  Ljava/io/File;
            0   11     2     jstream  Ljava/util/jar/JarOutputStream;
            1   11     3  mappedFile  Ljava/nio/ByteBuffer;
            3    6     6         fis  Ljava/io/FileInputStream;
      Exception table:
        from    to  target  type
           3     4       5  any
           2     7       7  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      inFile   
      jstream  

  private void writeEntry(java.util.jar.JarOutputStream, java.lang.String, long, long, boolean, java.nio.ByteBuffer, java.nio.ByteBuffer);
    descriptor: (Ljava/util/jar/JarOutputStream;Ljava/lang/String;JJZLjava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=14, args_size=8
        start local 0 // com.sun.java.util.jar.pack.NativeUnpack this
        start local 1 // java.util.jar.JarOutputStream j
        start local 2 // java.lang.String name
        start local 3 // long mtime
        start local 5 // long lsize
        start local 7 // boolean deflateHint
        start local 8 // java.nio.ByteBuffer data0
        start local 9 // java.nio.ByteBuffer data1
         0: .line 263
            lload 5 /* lsize */
            l2i
            istore 10 /* size */
        start local 10 // int size
         1: .line 264
            iload 10 /* size */
            i2l
            lload 5 /* lsize */
            lcmp
            ifeq 3
         2: .line 265
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "file too large: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 5 /* lsize */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 267
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._crc32:Ljava/util/zip/CRC32;
            astore 11 /* crc32 */
        start local 11 // java.util.zip.CRC32 crc32
         4: .line 269
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._verbose:I
            iconst_1
            if_icmple 10
         5: .line 270
            getstatic com.sun.java.util.jar.pack.Utils.log:Lcom/sun/java/util/jar/pack/Utils$Pack200Logger;
            new java.lang.StringBuilder
            dup
            ldc "Writing entry: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " size="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 10 /* size */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         6: .line 271
            iload 7 /* deflateHint */
            ifeq 7
            ldc " deflated"
            goto 8
      StackMap locals: com.sun.java.util.jar.pack.NativeUnpack java.util.jar.JarOutputStream java.lang.String long long int java.nio.ByteBuffer java.nio.ByteBuffer int java.util.zip.CRC32
      StackMap stack: com.sun.java.util.jar.pack.Utils$Pack200Logger java.lang.StringBuilder
         7: ldc ""
      StackMap locals: com.sun.java.util.jar.pack.NativeUnpack java.util.jar.JarOutputStream java.lang.String long long int java.nio.ByteBuffer java.nio.ByteBuffer int java.util.zip.CRC32
      StackMap stack: com.sun.java.util.jar.pack.Utils$Pack200Logger java.lang.StringBuilder java.lang.String
         8: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 270
            invokevirtual com.sun.java.util.jar.pack.Utils$Pack200Logger.fine:(Ljava/lang/String;)V
        10: .line 273
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._buf:[B
            arraylength
            iload 10 /* size */
            if_icmpge 19
        11: .line 274
            iload 10 /* size */
            istore 12 /* newSize */
        start local 12 // int newSize
        12: .line 275
            goto 17
        13: .line 276
      StackMap locals: int
      StackMap stack:
            iload 12 /* newSize */
            iconst_1
            ishl
            istore 12 /* newSize */
        14: .line 277
            iload 12 /* newSize */
            ifgt 17
        15: .line 278
            iload 10 /* size */
            istore 12 /* newSize */
        16: .line 279
            goto 18
        17: .line 275
      StackMap locals:
      StackMap stack:
            iload 12 /* newSize */
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._buf:[B
            arraylength
            if_icmplt 13
        18: .line 282
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 12 /* newSize */
            newarray 8
            putfield com.sun.java.util.jar.pack.NativeUnpack._buf:[B
        end local 12 // int newSize
        19: .line 284
      StackMap locals:
      StackMap stack:
            getstatic com.sun.java.util.jar.pack.NativeUnpack.$assertionsDisabled:Z
            ifne 20
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._buf:[B
            arraylength
            iload 10 /* size */
            if_icmpge 20
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        20: .line 286
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 12 /* fillp */
        start local 12 // int fillp
        21: .line 287
            aload 8 /* data0 */
            ifnull 25
        22: .line 288
            aload 8 /* data0 */
            invokevirtual java.nio.ByteBuffer.capacity:()I
            istore 13 /* size0 */
        start local 13 // int size0
        23: .line 289
            aload 8 /* data0 */
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._buf:[B
            iload 12 /* fillp */
            iload 13 /* size0 */
            invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
            pop
        24: .line 290
            iload 12 /* fillp */
            iload 13 /* size0 */
            iadd
            istore 12 /* fillp */
        end local 13 // int size0
        25: .line 292
      StackMap locals: int
      StackMap stack:
            aload 9 /* data1 */
            ifnull 33
        26: .line 293
            aload 9 /* data1 */
            invokevirtual java.nio.ByteBuffer.capacity:()I
            istore 13 /* size1 */
        start local 13 // int size1
        27: .line 294
            aload 9 /* data1 */
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._buf:[B
            iload 12 /* fillp */
            iload 13 /* size1 */
            invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
            pop
        28: .line 295
            iload 12 /* fillp */
            iload 13 /* size1 */
            iadd
            istore 12 /* fillp */
        end local 13 // int size1
        29: .line 297
            goto 33
        30: .line 299
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack.in:Ljava/io/BufferedInputStream;
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._buf:[B
            iload 12 /* fillp */
            iload 10 /* size */
            iload 12 /* fillp */
            isub
            invokevirtual java.io.BufferedInputStream.read:([BII)I
            istore 13 /* nr */
        start local 13 // int nr
        31: .line 300
            iload 13 /* nr */
            ifgt 32
            new java.io.IOException
            dup
            ldc "EOF at end of archive"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        32: .line 301
      StackMap locals: int
      StackMap stack:
            iload 12 /* fillp */
            iload 13 /* nr */
            iadd
            istore 12 /* fillp */
        end local 13 // int nr
        33: .line 297
      StackMap locals:
      StackMap stack:
            iload 12 /* fillp */
            iload 10 /* size */
            if_icmplt 30
        34: .line 304
            new java.util.zip.ZipEntry
            dup
            aload 2 /* name */
            invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
            astore 13 /* z */
        start local 13 // java.util.zip.ZipEntry z
        35: .line 305
            aload 13 /* z */
            lload 3 /* mtime */
            ldc 1000
            lmul
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
        36: .line 307
            iload 10 /* size */
            ifne 42
        37: .line 308
            aload 13 /* z */
            iconst_0
            invokevirtual java.util.zip.ZipEntry.setMethod:(I)V
        38: .line 309
            aload 13 /* z */
            lconst_0
            invokevirtual java.util.zip.ZipEntry.setSize:(J)V
        39: .line 310
            aload 13 /* z */
            lconst_0
            invokevirtual java.util.zip.ZipEntry.setCrc:(J)V
        40: .line 311
            aload 13 /* z */
            lconst_0
            invokevirtual java.util.zip.ZipEntry.setCompressedSize:(J)V
        41: .line 312
            goto 52
      StackMap locals: java.util.zip.ZipEntry
      StackMap stack:
        42: iload 7 /* deflateHint */
            ifne 50
        43: .line 313
            aload 13 /* z */
            iconst_0
            invokevirtual java.util.zip.ZipEntry.setMethod:(I)V
        44: .line 314
            aload 13 /* z */
            iload 10 /* size */
            i2l
            invokevirtual java.util.zip.ZipEntry.setSize:(J)V
        45: .line 315
            aload 13 /* z */
            iload 10 /* size */
            i2l
            invokevirtual java.util.zip.ZipEntry.setCompressedSize:(J)V
        46: .line 316
            aload 11 /* crc32 */
            invokevirtual java.util.zip.CRC32.reset:()V
        47: .line 317
            aload 11 /* crc32 */
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._buf:[B
            iconst_0
            iload 10 /* size */
            invokevirtual java.util.zip.CRC32.update:([BII)V
        48: .line 318
            aload 13 /* z */
            aload 11 /* crc32 */
            invokevirtual java.util.zip.CRC32.getValue:()J
            invokevirtual java.util.zip.ZipEntry.setCrc:(J)V
        49: .line 319
            goto 52
        50: .line 320
      StackMap locals:
      StackMap stack:
            aload 13 /* z */
            bipush 8
            invokevirtual java.util.zip.ZipEntry.setMethod:(I)V
        51: .line 321
            aload 13 /* z */
            iload 10 /* size */
            i2l
            invokevirtual java.util.zip.ZipEntry.setSize:(J)V
        52: .line 324
      StackMap locals:
      StackMap stack:
            aload 1 /* j */
            aload 13 /* z */
            invokevirtual java.util.jar.JarOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
        53: .line 326
            iload 10 /* size */
            ifle 55
        54: .line 327
            aload 1 /* j */
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._buf:[B
            iconst_0
            iload 10 /* size */
            invokevirtual java.util.jar.JarOutputStream.write:([BII)V
        55: .line 329
      StackMap locals:
      StackMap stack:
            aload 1 /* j */
            invokevirtual java.util.jar.JarOutputStream.closeEntry:()V
        56: .line 330
            aload 0 /* this */
            getfield com.sun.java.util.jar.pack.NativeUnpack._verbose:I
            ifle 57
            getstatic com.sun.java.util.jar.pack.Utils.log:Lcom/sun/java/util/jar/pack/Utils$Pack200Logger;
            new java.lang.StringBuilder
            dup
            ldc "Writing "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 13 /* z */
            invokestatic com.sun.java.util.jar.pack.Utils.zeString:(Ljava/util/zip/ZipEntry;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.java.util.jar.pack.Utils$Pack200Logger.info:(Ljava/lang/String;)V
        57: .line 331
      StackMap locals:
      StackMap stack:
            return
        end local 13 // java.util.zip.ZipEntry z
        end local 12 // int fillp
        end local 11 // java.util.zip.CRC32 crc32
        end local 10 // int size
        end local 9 // java.nio.ByteBuffer data1
        end local 8 // java.nio.ByteBuffer data0
        end local 7 // boolean deflateHint
        end local 5 // long lsize
        end local 3 // long mtime
        end local 2 // java.lang.String name
        end local 1 // java.util.jar.JarOutputStream j
        end local 0 // com.sun.java.util.jar.pack.NativeUnpack this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   58     0         this  Lcom/sun/java/util/jar/pack/NativeUnpack;
            0   58     1            j  Ljava/util/jar/JarOutputStream;
            0   58     2         name  Ljava/lang/String;
            0   58     3        mtime  J
            0   58     5        lsize  J
            0   58     7  deflateHint  Z
            0   58     8        data0  Ljava/nio/ByteBuffer;
            0   58     9        data1  Ljava/nio/ByteBuffer;
            1   58    10         size  I
            4   58    11        crc32  Ljava/util/zip/CRC32;
           12   19    12      newSize  I
           21   58    12        fillp  I
           23   25    13        size0  I
           27   29    13        size1  I
           31   33    13           nr  I
           35   58    13            z  Ljava/util/zip/ZipEntry;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      j            
      name         
      mtime        
      lsize        
      deflateHint  
      data0        
      data1        
}
SourceFile: "NativeUnpack.java"
NestMembers:
  com.sun.java.util.jar.pack.NativeUnpack$1
InnerClasses:
  com.sun.java.util.jar.pack.NativeUnpack$1
  Pack200Logger = com.sun.java.util.jar.pack.Utils$Pack200Logger of com.sun.java.util.jar.pack.Utils