public class sun.nio.ch.IOUtil
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.nio.ch.IOUtil
  super_class: java.lang.Object
{
  static final int IOV_MAX;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  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 37
            ldc Lsun/nio/ch/IOUtil;
            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 sun.nio.ch.IOUtil.$assertionsDisabled:Z
         3: .line 357
            new sun.nio.ch.IOUtil$1
            dup
            invokespecial sun.nio.ch.IOUtil$1.<init>:()V
         4: .line 356
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            pop
         5: .line 365
            invokestatic sun.nio.ch.IOUtil.initIDs:()V
         6: .line 367
            invokestatic sun.nio.ch.IOUtil.iovMax:()I
            putstatic sun.nio.ch.IOUtil.IOV_MAX:I
         7: .line 368
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.nio.ch.IOUtil this
         0: .line 44
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // sun.nio.ch.IOUtil this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/nio/ch/IOUtil;

  static int write(java.io.FileDescriptor, java.nio.ByteBuffer, long, sun.nio.ch.NativeDispatcher);
    descriptor: (Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=12, args_size=4
        start local 0 // java.io.FileDescriptor fd
        start local 1 // java.nio.ByteBuffer src
        start local 2 // long position
        start local 4 // sun.nio.ch.NativeDispatcher nd
         0: .line 50
            aload 1 /* src */
            instanceof sun.nio.ch.DirectBuffer
            ifeq 2
         1: .line 51
            aload 0 /* fd */
            aload 1 /* src */
            lload 2 /* position */
            aload 4 /* nd */
            invokestatic sun.nio.ch.IOUtil.writeFromNativeBuffer:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
            ireturn
         2: .line 54
      StackMap locals:
      StackMap stack:
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 5 /* pos */
        start local 5 // int pos
         3: .line 55
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.limit:()I
            istore 6 /* lim */
        start local 6 // int lim
         4: .line 56
            getstatic sun.nio.ch.IOUtil.$assertionsDisabled:Z
            ifne 5
            iload 5 /* pos */
            iload 6 /* lim */
            if_icmple 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 57
      StackMap locals: int int
      StackMap stack:
            iload 5 /* pos */
            iload 6 /* lim */
            if_icmpgt 6
            iload 6 /* lim */
            iload 5 /* pos */
            isub
            goto 7
      StackMap locals:
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: istore 7 /* rem */
        start local 7 // int rem
         8: .line 58
            iload 7 /* rem */
            invokestatic sun.nio.ch.Util.getTemporaryDirectBuffer:(I)Ljava/nio/ByteBuffer;
            astore 8 /* bb */
        start local 8 // java.nio.ByteBuffer bb
         9: .line 60
            aload 8 /* bb */
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
            pop
        10: .line 61
            aload 8 /* bb */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
        11: .line 63
            aload 1 /* src */
            iload 5 /* pos */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        12: .line 65
            aload 0 /* fd */
            aload 8 /* bb */
            lload 2 /* position */
            aload 4 /* nd */
            invokestatic sun.nio.ch.IOUtil.writeFromNativeBuffer:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
            istore 9 /* n */
        start local 9 // int n
        13: .line 66
            iload 9 /* n */
            ifle 15
        14: .line 68
            aload 1 /* src */
            iload 5 /* pos */
            iload 9 /* n */
            iadd
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        15: .line 70
      StackMap locals: int java.nio.ByteBuffer int
      StackMap stack:
            iload 9 /* n */
            istore 11
        16: .line 72
            aload 8 /* bb */
            invokestatic sun.nio.ch.Util.offerFirstTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
        17: .line 70
            iload 11
            ireturn
        end local 9 // int n
        18: .line 71
      StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer long sun.nio.ch.NativeDispatcher int int int java.nio.ByteBuffer
      StackMap stack: java.lang.Throwable
            astore 10
        19: .line 72
            aload 8 /* bb */
            invokestatic sun.nio.ch.Util.offerFirstTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
        20: .line 73
            aload 10
            athrow
        end local 8 // java.nio.ByteBuffer bb
        end local 7 // int rem
        end local 6 // int lim
        end local 5 // int pos
        end local 4 // sun.nio.ch.NativeDispatcher nd
        end local 2 // long position
        end local 1 // java.nio.ByteBuffer src
        end local 0 // java.io.FileDescriptor fd
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   21     0        fd  Ljava/io/FileDescriptor;
            0   21     1       src  Ljava/nio/ByteBuffer;
            0   21     2  position  J
            0   21     4        nd  Lsun/nio/ch/NativeDispatcher;
            3   21     5       pos  I
            4   21     6       lim  I
            8   21     7       rem  I
            9   21     8        bb  Ljava/nio/ByteBuffer;
           13   18     9         n  I
      Exception table:
        from    to  target  type
           9    16      18  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      fd        
      src       
      position  
      nd        

  private static int writeFromNativeBuffer(java.io.FileDescriptor, java.nio.ByteBuffer, long, sun.nio.ch.NativeDispatcher);
    descriptor: (Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=9, args_size=4
        start local 0 // java.io.FileDescriptor fd
        start local 1 // java.nio.ByteBuffer bb
        start local 2 // long position
        start local 4 // sun.nio.ch.NativeDispatcher nd
         0: .line 80
            aload 1 /* bb */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 5 /* pos */
        start local 5 // int pos
         1: .line 81
            aload 1 /* bb */
            invokevirtual java.nio.ByteBuffer.limit:()I
            istore 6 /* lim */
        start local 6 // int lim
         2: .line 82
            getstatic sun.nio.ch.IOUtil.$assertionsDisabled:Z
            ifne 3
            iload 5 /* pos */
            iload 6 /* lim */
            if_icmple 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 83
      StackMap locals: int int
      StackMap stack:
            iload 5 /* pos */
            iload 6 /* lim */
            if_icmpgt 4
            iload 6 /* lim */
            iload 5 /* pos */
            isub
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 7 /* rem */
        start local 7 // int rem
         6: .line 85
            iconst_0
            istore 8 /* written */
        start local 8 // int written
         7: .line 86
            iload 7 /* rem */
            ifne 9
         8: .line 87
            iconst_0
            ireturn
         9: .line 88
      StackMap locals: int int
      StackMap stack:
            lload 2 /* position */
            ldc -1
            lcmp
            ifeq 15
        10: .line 89
            aload 4 /* nd */
            aload 0 /* fd */
        11: .line 90
            aload 1 /* bb */
            checkcast sun.nio.ch.DirectBuffer
            invokeinterface sun.nio.ch.DirectBuffer.address:()J
            iload 5 /* pos */
            i2l
            ladd
        12: .line 91
            iload 7 /* rem */
            lload 2 /* position */
        13: .line 89
            invokevirtual sun.nio.ch.NativeDispatcher.pwrite:(Ljava/io/FileDescriptor;JIJ)I
            istore 8 /* written */
        14: .line 92
            goto 16
        15: .line 93
      StackMap locals:
      StackMap stack:
            aload 4 /* nd */
            aload 0 /* fd */
            aload 1 /* bb */
            checkcast sun.nio.ch.DirectBuffer
            invokeinterface sun.nio.ch.DirectBuffer.address:()J
            iload 5 /* pos */
            i2l
            ladd
            iload 7 /* rem */
            invokevirtual sun.nio.ch.NativeDispatcher.write:(Ljava/io/FileDescriptor;JI)I
            istore 8 /* written */
        16: .line 95
      StackMap locals:
      StackMap stack:
            iload 8 /* written */
            ifle 18
        17: .line 96
            aload 1 /* bb */
            iload 5 /* pos */
            iload 8 /* written */
            iadd
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        18: .line 97
      StackMap locals:
      StackMap stack:
            iload 8 /* written */
            ireturn
        end local 8 // int written
        end local 7 // int rem
        end local 6 // int lim
        end local 5 // int pos
        end local 4 // sun.nio.ch.NativeDispatcher nd
        end local 2 // long position
        end local 1 // java.nio.ByteBuffer bb
        end local 0 // java.io.FileDescriptor fd
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   19     0        fd  Ljava/io/FileDescriptor;
            0   19     1        bb  Ljava/nio/ByteBuffer;
            0   19     2  position  J
            0   19     4        nd  Lsun/nio/ch/NativeDispatcher;
            1   19     5       pos  I
            2   19     6       lim  I
            6   19     7       rem  I
            7   19     8   written  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      fd        
      bb        
      position  
      nd        

  static long write(java.io.FileDescriptor, java.nio.ByteBuffer[], sun.nio.ch.NativeDispatcher);
    descriptor: (Ljava/io/FileDescriptor;[Ljava/nio/ByteBuffer;Lsun/nio/ch/NativeDispatcher;)J
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.io.FileDescriptor fd
        start local 1 // java.nio.ByteBuffer[] bufs
        start local 2 // sun.nio.ch.NativeDispatcher nd
         0: .line 103
            aload 0 /* fd */
            aload 1 /* bufs */
            iconst_0
            aload 1 /* bufs */
            arraylength
            aload 2 /* nd */
            invokestatic sun.nio.ch.IOUtil.write:(Ljava/io/FileDescriptor;[Ljava/nio/ByteBuffer;IILsun/nio/ch/NativeDispatcher;)J
            lreturn
        end local 2 // sun.nio.ch.NativeDispatcher nd
        end local 1 // java.nio.ByteBuffer[] bufs
        end local 0 // java.io.FileDescriptor fd
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    fd  Ljava/io/FileDescriptor;
            0    1     1  bufs  [Ljava/nio/ByteBuffer;
            0    1     2    nd  Lsun/nio/ch/NativeDispatcher;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      fd    
      bufs  
      nd    

  static long write(java.io.FileDescriptor, java.nio.ByteBuffer[], int, int, sun.nio.ch.NativeDispatcher);
    descriptor: (Ljava/io/FileDescriptor;[Ljava/nio/ByteBuffer;IILsun/nio/ch/NativeDispatcher;)J
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=24, args_size=5
        start local 0 // java.io.FileDescriptor fd
        start local 1 // java.nio.ByteBuffer[] bufs
        start local 2 // int offset
        start local 3 // int length
        start local 4 // sun.nio.ch.NativeDispatcher nd
         0: .line 110
            iload 3 /* length */
            invokestatic sun.nio.ch.IOVecWrapper.get:(I)Lsun/nio/ch/IOVecWrapper;
            astore 5 /* vec */
        start local 5 // sun.nio.ch.IOVecWrapper vec
         1: .line 112
            iconst_0
            istore 6 /* completed */
        start local 6 // boolean completed
         2: .line 113
            iconst_0
            istore 7 /* iov_len */
        start local 7 // int iov_len
         3: .line 117
            iload 2 /* offset */
            iload 3 /* length */
            iadd
            istore 8 /* count */
        start local 8 // int count
         4: .line 118
            iload 2 /* offset */
            istore 9 /* i */
        start local 9 // int i
         5: .line 119
            goto 27
         6: .line 120
      StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int int int
      StackMap stack:
            aload 1 /* bufs */
            iload 9 /* i */
            aaload
            astore 10 /* buf */
        start local 10 // java.nio.ByteBuffer buf
         7: .line 121
            aload 10 /* buf */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 11 /* pos */
        start local 11 // int pos
         8: .line 122
            aload 10 /* buf */
            invokevirtual java.nio.ByteBuffer.limit:()I
            istore 12 /* lim */
        start local 12 // int lim
         9: .line 123
            getstatic sun.nio.ch.IOUtil.$assertionsDisabled:Z
            ifne 10
            iload 11 /* pos */
            iload 12 /* lim */
            if_icmple 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 124
      StackMap locals: java.nio.ByteBuffer int int
      StackMap stack:
            iload 11 /* pos */
            iload 12 /* lim */
            if_icmpgt 11
            iload 12 /* lim */
            iload 11 /* pos */
            isub
            goto 12
      StackMap locals:
      StackMap stack:
        11: iconst_0
      StackMap locals:
      StackMap stack: int
        12: istore 13 /* rem */
        start local 13 // int rem
        13: .line 125
            iload 13 /* rem */
            ifle 26
        14: .line 126
            aload 5 /* vec */
            iload 7 /* iov_len */
            aload 10 /* buf */
            iload 11 /* pos */
            iload 13 /* rem */
            invokevirtual sun.nio.ch.IOVecWrapper.setBuffer:(ILjava/nio/ByteBuffer;II)V
        15: .line 129
            aload 10 /* buf */
            instanceof sun.nio.ch.DirectBuffer
            ifne 23
        16: .line 130
            iload 13 /* rem */
            invokestatic sun.nio.ch.Util.getTemporaryDirectBuffer:(I)Ljava/nio/ByteBuffer;
            astore 14 /* shadow */
        start local 14 // java.nio.ByteBuffer shadow
        17: .line 131
            aload 14 /* shadow */
            aload 10 /* buf */
            invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
            pop
        18: .line 132
            aload 14 /* shadow */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
        19: .line 133
            aload 5 /* vec */
            iload 7 /* iov_len */
            aload 14 /* shadow */
            invokevirtual sun.nio.ch.IOVecWrapper.setShadow:(ILjava/nio/ByteBuffer;)V
        20: .line 134
            aload 10 /* buf */
            iload 11 /* pos */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        21: .line 135
            aload 14 /* shadow */
            astore 10 /* buf */
        22: .line 136
            aload 14 /* shadow */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 11 /* pos */
        end local 14 // java.nio.ByteBuffer shadow
        23: .line 139
      StackMap locals: int
      StackMap stack:
            aload 5 /* vec */
            iload 7 /* iov_len */
            aload 10 /* buf */
            checkcast sun.nio.ch.DirectBuffer
            invokeinterface sun.nio.ch.DirectBuffer.address:()J
            iload 11 /* pos */
            i2l
            ladd
            invokevirtual sun.nio.ch.IOVecWrapper.putBase:(IJ)V
        24: .line 140
            aload 5 /* vec */
            iload 7 /* iov_len */
            iload 13 /* rem */
            i2l
            invokevirtual sun.nio.ch.IOVecWrapper.putLen:(IJ)V
        25: .line 141
            iinc 7 /* iov_len */ 1
        26: .line 143
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
        end local 13 // int rem
        end local 12 // int lim
        end local 11 // int pos
        end local 10 // java.nio.ByteBuffer buf
        27: .line 119
      StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int int int
      StackMap stack:
            iload 9 /* i */
            iload 8 /* count */
            if_icmpge 28
            iload 7 /* iov_len */
            getstatic sun.nio.ch.IOUtil.IOV_MAX:I
            if_icmplt 6
        28: .line 145
      StackMap locals:
      StackMap stack:
            iload 7 /* iov_len */
            ifne 39
        29: .line 174
            iload 6 /* completed */
            ifne 38
        30: .line 175
            iconst_0
            istore 22 /* j */
        start local 22 // int j
        31: goto 37
        32: .line 176
      StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int int int top top top top top top top top top top top top int
      StackMap stack:
            aload 5 /* vec */
            iload 22 /* j */
            invokevirtual sun.nio.ch.IOVecWrapper.getShadow:(I)Ljava/nio/ByteBuffer;
            astore 23 /* shadow */
        start local 23 // java.nio.ByteBuffer shadow
        33: .line 177
            aload 23 /* shadow */
            ifnull 35
        34: .line 178
            aload 23 /* shadow */
            invokestatic sun.nio.ch.Util.offerLastTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
        35: .line 179
      StackMap locals: java.nio.ByteBuffer
      StackMap stack:
            aload 5 /* vec */
            iload 22 /* j */
            invokevirtual sun.nio.ch.IOVecWrapper.clearRefs:(I)V
        end local 23 // java.nio.ByteBuffer shadow
        36: .line 175
            iinc 22 /* j */ 1
      StackMap locals:
      StackMap stack:
        37: iload 22 /* j */
            iload 7 /* iov_len */
            if_icmplt 32
        end local 22 // int j
        38: .line 146
      StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int int int
      StackMap stack:
            lconst_0
            lreturn
        39: .line 148
      StackMap locals:
      StackMap stack:
            aload 4 /* nd */
            aload 0 /* fd */
            aload 5 /* vec */
            getfield sun.nio.ch.IOVecWrapper.address:J
            iload 7 /* iov_len */
            invokevirtual sun.nio.ch.NativeDispatcher.writev:(Ljava/io/FileDescriptor;JI)J
            lstore 10 /* bytesWritten */
        start local 10 // long bytesWritten
        40: .line 151
            lload 10 /* bytesWritten */
            lstore 12 /* left */
        start local 12 // long left
        41: .line 152
            iconst_0
            istore 14 /* j */
        start local 14 // int j
        42: goto 57
        43: .line 153
      StackMap locals: long long int
      StackMap stack:
            lload 12 /* left */
            lconst_0
            lcmp
            ifle 52
        44: .line 154
            aload 5 /* vec */
            iload 14 /* j */
            invokevirtual sun.nio.ch.IOVecWrapper.getBuffer:(I)Ljava/nio/ByteBuffer;
            astore 15 /* buf */
        start local 15 // java.nio.ByteBuffer buf
        45: .line 155
            aload 5 /* vec */
            iload 14 /* j */
            invokevirtual sun.nio.ch.IOVecWrapper.getPosition:(I)I
            istore 16 /* pos */
        start local 16 // int pos
        46: .line 156
            aload 5 /* vec */
            iload 14 /* j */
            invokevirtual sun.nio.ch.IOVecWrapper.getRemaining:(I)I
            istore 17 /* rem */
        start local 17 // int rem
        47: .line 157
            lload 12 /* left */
            iload 17 /* rem */
            i2l
            lcmp
            ifle 48
            iload 17 /* rem */
            goto 49
      StackMap locals: java.nio.ByteBuffer int int
      StackMap stack:
        48: lload 12 /* left */
            l2i
      StackMap locals:
      StackMap stack: int
        49: istore 18 /* n */
        start local 18 // int n
        50: .line 158
            aload 15 /* buf */
            iload 16 /* pos */
            iload 18 /* n */
            iadd
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        51: .line 159
            lload 12 /* left */
            iload 18 /* n */
            i2l
            lsub
            lstore 12 /* left */
        end local 18 // int n
        end local 17 // int rem
        end local 16 // int pos
        end local 15 // java.nio.ByteBuffer buf
        52: .line 162
      StackMap locals:
      StackMap stack:
            aload 5 /* vec */
            iload 14 /* j */
            invokevirtual sun.nio.ch.IOVecWrapper.getShadow:(I)Ljava/nio/ByteBuffer;
            astore 15 /* shadow */
        start local 15 // java.nio.ByteBuffer shadow
        53: .line 163
            aload 15 /* shadow */
            ifnull 55
        54: .line 164
            aload 15 /* shadow */
            invokestatic sun.nio.ch.Util.offerLastTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
        55: .line 165
      StackMap locals: java.nio.ByteBuffer
      StackMap stack:
            aload 5 /* vec */
            iload 14 /* j */
            invokevirtual sun.nio.ch.IOVecWrapper.clearRefs:(I)V
        end local 15 // java.nio.ByteBuffer shadow
        56: .line 152
            iinc 14 /* j */ 1
      StackMap locals:
      StackMap stack:
        57: iload 14 /* j */
            iload 7 /* iov_len */
            if_icmplt 43
        end local 14 // int j
        58: .line 168
            iconst_1
            istore 6 /* completed */
        59: .line 169
            lload 10 /* bytesWritten */
            lstore 20
        60: .line 174
            iload 6 /* completed */
            ifne 69
        61: .line 175
            iconst_0
            istore 22 /* j */
        start local 22 // int j
        62: goto 68
        63: .line 176
      StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int int int long long top top top top top top long int
      StackMap stack:
            aload 5 /* vec */
            iload 22 /* j */
            invokevirtual sun.nio.ch.IOVecWrapper.getShadow:(I)Ljava/nio/ByteBuffer;
            astore 23 /* shadow */
        start local 23 // java.nio.ByteBuffer shadow
        64: .line 177
            aload 23 /* shadow */
            ifnull 66
        65: .line 178
            aload 23 /* shadow */
            invokestatic sun.nio.ch.Util.offerLastTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
        66: .line 179
      StackMap locals: java.nio.ByteBuffer
      StackMap stack:
            aload 5 /* vec */
            iload 22 /* j */
            invokevirtual sun.nio.ch.IOVecWrapper.clearRefs:(I)V
        end local 23 // java.nio.ByteBuffer shadow
        67: .line 175
            iinc 22 /* j */ 1
      StackMap locals:
      StackMap stack:
        68: iload 22 /* j */
            iload 7 /* iov_len */
            if_icmplt 63
        end local 22 // int j
        69: .line 169
      StackMap locals:
      StackMap stack:
            lload 20
            lreturn
        end local 12 // long left
        end local 10 // long bytesWritten
        end local 9 // int i
        end local 8 // int count
        70: .line 171
      StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int
      StackMap stack: java.lang.Throwable
            astore 19
        71: .line 174
            iload 6 /* completed */
            ifne 80
        72: .line 175
            iconst_0
            istore 22 /* j */
        start local 22 // int j
        73: goto 79
        74: .line 176
      StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int top top top top top top top top top top top java.lang.Throwable top top int
      StackMap stack:
            aload 5 /* vec */
            iload 22 /* j */
            invokevirtual sun.nio.ch.IOVecWrapper.getShadow:(I)Ljava/nio/ByteBuffer;
            astore 23 /* shadow */
        start local 23 // java.nio.ByteBuffer shadow
        75: .line 177
            aload 23 /* shadow */
            ifnull 77
        76: .line 178
            aload 23 /* shadow */
            invokestatic sun.nio.ch.Util.offerLastTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
        77: .line 179
      StackMap locals: java.nio.ByteBuffer
      StackMap stack:
            aload 5 /* vec */
            iload 22 /* j */
            invokevirtual sun.nio.ch.IOVecWrapper.clearRefs:(I)V
        end local 23 // java.nio.ByteBuffer shadow
        78: .line 175
            iinc 22 /* j */ 1
      StackMap locals:
      StackMap stack:
        79: iload 22 /* j */
            iload 7 /* iov_len */
            if_icmplt 74
        end local 22 // int j
        80: .line 182
      StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int top top top top top top top top top top top java.lang.Throwable
      StackMap stack:
            aload 19
            athrow
        end local 7 // int iov_len
        end local 6 // boolean completed
        end local 5 // sun.nio.ch.IOVecWrapper vec
        end local 4 // sun.nio.ch.NativeDispatcher nd
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.nio.ByteBuffer[] bufs
        end local 0 // java.io.FileDescriptor fd
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   81     0            fd  Ljava/io/FileDescriptor;
            0   81     1          bufs  [Ljava/nio/ByteBuffer;
            0   81     2        offset  I
            0   81     3        length  I
            0   81     4            nd  Lsun/nio/ch/NativeDispatcher;
            1   81     5           vec  Lsun/nio/ch/IOVecWrapper;
            2   81     6     completed  Z
            3   81     7       iov_len  I
            4   70     8         count  I
            5   70     9             i  I
            7   27    10           buf  Ljava/nio/ByteBuffer;
            8   27    11           pos  I
            9   27    12           lim  I
           13   27    13           rem  I
           17   23    14        shadow  Ljava/nio/ByteBuffer;
           40   70    10  bytesWritten  J
           41   70    12          left  J
           42   58    14             j  I
           45   52    15           buf  Ljava/nio/ByteBuffer;
           46   52    16           pos  I
           47   52    17           rem  I
           50   52    18             n  I
           53   56    15        shadow  Ljava/nio/ByteBuffer;
           31   38    22             j  I
           62   69    22             j  I
           73   80    22             j  I
           33   36    23        shadow  Ljava/nio/ByteBuffer;
           64   67    23        shadow  Ljava/nio/ByteBuffer;
           75   78    23        shadow  Ljava/nio/ByteBuffer;
      Exception table:
        from    to  target  type
           3    29      70  any
          39    60      70  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      fd      
      bufs    
      offset  
      length  
      nd      

  static int read(java.io.FileDescriptor, java.nio.ByteBuffer, long, sun.nio.ch.NativeDispatcher);
    descriptor: (Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // java.io.FileDescriptor fd
        start local 1 // java.nio.ByteBuffer dst
        start local 2 // long position
        start local 4 // sun.nio.ch.NativeDispatcher nd
         0: .line 189
            aload 1 /* dst */
            invokevirtual java.nio.ByteBuffer.isReadOnly:()Z
            ifeq 2
         1: .line 190
            new java.lang.IllegalArgumentException
            dup
            ldc "Read-only buffer"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 191
      StackMap locals:
      StackMap stack:
            aload 1 /* dst */
            instanceof sun.nio.ch.DirectBuffer
            ifeq 4
         3: .line 192
            aload 0 /* fd */
            aload 1 /* dst */
            lload 2 /* position */
            aload 4 /* nd */
            invokestatic sun.nio.ch.IOUtil.readIntoNativeBuffer:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
            ireturn
         4: .line 195
      StackMap locals:
      StackMap stack:
            aload 1 /* dst */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            invokestatic sun.nio.ch.Util.getTemporaryDirectBuffer:(I)Ljava/nio/ByteBuffer;
            astore 5 /* bb */
        start local 5 // java.nio.ByteBuffer bb
         5: .line 197
            aload 0 /* fd */
            aload 5 /* bb */
            lload 2 /* position */
            aload 4 /* nd */
            invokestatic sun.nio.ch.IOUtil.readIntoNativeBuffer:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
            istore 6 /* n */
        start local 6 // int n
         6: .line 198
            aload 5 /* bb */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
         7: .line 199
            iload 6 /* n */
            ifle 9
         8: .line 200
            aload 1 /* dst */
            aload 5 /* bb */
            invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
            pop
         9: .line 201
      StackMap locals: java.nio.ByteBuffer int
      StackMap stack:
            iload 6 /* n */
            istore 8
        10: .line 203
            aload 5 /* bb */
            invokestatic sun.nio.ch.Util.offerFirstTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
        11: .line 201
            iload 8
            ireturn
        end local 6 // int n
        12: .line 202
      StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer long sun.nio.ch.NativeDispatcher java.nio.ByteBuffer
      StackMap stack: java.lang.Throwable
            astore 7
        13: .line 203
            aload 5 /* bb */
            invokestatic sun.nio.ch.Util.offerFirstTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
        14: .line 204
            aload 7
            athrow
        end local 5 // java.nio.ByteBuffer bb
        end local 4 // sun.nio.ch.NativeDispatcher nd
        end local 2 // long position
        end local 1 // java.nio.ByteBuffer dst
        end local 0 // java.io.FileDescriptor fd
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   15     0        fd  Ljava/io/FileDescriptor;
            0   15     1       dst  Ljava/nio/ByteBuffer;
            0   15     2  position  J
            0   15     4        nd  Lsun/nio/ch/NativeDispatcher;
            5   15     5        bb  Ljava/nio/ByteBuffer;
            6   12     6         n  I
      Exception table:
        from    to  target  type
           5    10      12  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      fd        
      dst       
      position  
      nd        

  private static int readIntoNativeBuffer(java.io.FileDescriptor, java.nio.ByteBuffer, long, sun.nio.ch.NativeDispatcher);
    descriptor: (Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=9, args_size=4
        start local 0 // java.io.FileDescriptor fd
        start local 1 // java.nio.ByteBuffer bb
        start local 2 // long position
        start local 4 // sun.nio.ch.NativeDispatcher nd
         0: .line 211
            aload 1 /* bb */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 5 /* pos */
        start local 5 // int pos
         1: .line 212
            aload 1 /* bb */
            invokevirtual java.nio.ByteBuffer.limit:()I
            istore 6 /* lim */
        start local 6 // int lim
         2: .line 213
            getstatic sun.nio.ch.IOUtil.$assertionsDisabled:Z
            ifne 3
            iload 5 /* pos */
            iload 6 /* lim */
            if_icmple 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 214
      StackMap locals: int int
      StackMap stack:
            iload 5 /* pos */
            iload 6 /* lim */
            if_icmpgt 4
            iload 6 /* lim */
            iload 5 /* pos */
            isub
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 7 /* rem */
        start local 7 // int rem
         6: .line 216
            iload 7 /* rem */
            ifne 8
         7: .line 217
            iconst_0
            ireturn
         8: .line 218
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 8 /* n */
        start local 8 // int n
         9: .line 219
            lload 2 /* position */
            ldc -1
            lcmp
            ifeq 14
        10: .line 220
            aload 4 /* nd */
            aload 0 /* fd */
            aload 1 /* bb */
            checkcast sun.nio.ch.DirectBuffer
            invokeinterface sun.nio.ch.DirectBuffer.address:()J
            iload 5 /* pos */
            i2l
            ladd
        11: .line 221
            iload 7 /* rem */
            lload 2 /* position */
        12: .line 220
            invokevirtual sun.nio.ch.NativeDispatcher.pread:(Ljava/io/FileDescriptor;JIJ)I
            istore 8 /* n */
        13: .line 222
            goto 15
        14: .line 223
      StackMap locals: int
      StackMap stack:
            aload 4 /* nd */
            aload 0 /* fd */
            aload 1 /* bb */
            checkcast sun.nio.ch.DirectBuffer
            invokeinterface sun.nio.ch.DirectBuffer.address:()J
            iload 5 /* pos */
            i2l
            ladd
            iload 7 /* rem */
            invokevirtual sun.nio.ch.NativeDispatcher.read:(Ljava/io/FileDescriptor;JI)I
            istore 8 /* n */
        15: .line 225
      StackMap locals:
      StackMap stack:
            iload 8 /* n */
            ifle 17
        16: .line 226
            aload 1 /* bb */
            iload 5 /* pos */
            iload 8 /* n */
            iadd
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        17: .line 227
      StackMap locals:
      StackMap stack:
            iload 8 /* n */
            ireturn
        end local 8 // int n
        end local 7 // int rem
        end local 6 // int lim
        end local 5 // int pos
        end local 4 // sun.nio.ch.NativeDispatcher nd
        end local 2 // long position
        end local 1 // java.nio.ByteBuffer bb
        end local 0 // java.io.FileDescriptor fd
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   18     0        fd  Ljava/io/FileDescriptor;
            0   18     1        bb  Ljava/nio/ByteBuffer;
            0   18     2  position  J
            0   18     4        nd  Lsun/nio/ch/NativeDispatcher;
            1   18     5       pos  I
            2   18     6       lim  I
            6   18     7       rem  I
            9   18     8         n  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      fd        
      bb        
      position  
      nd        

  static long read(java.io.FileDescriptor, java.nio.ByteBuffer[], sun.nio.ch.NativeDispatcher);
    descriptor: (Ljava/io/FileDescriptor;[Ljava/nio/ByteBuffer;Lsun/nio/ch/NativeDispatcher;)J
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.io.FileDescriptor fd
        start local 1 // java.nio.ByteBuffer[] bufs
        start local 2 // sun.nio.ch.NativeDispatcher nd
         0: .line 233
            aload 0 /* fd */
            aload 1 /* bufs */
            iconst_0
            aload 1 /* bufs */
            arraylength
            aload 2 /* nd */
            invokestatic sun.nio.ch.IOUtil.read:(Ljava/io/FileDescriptor;[Ljava/nio/ByteBuffer;IILsun/nio/ch/NativeDispatcher;)J
            lreturn
        end local 2 // sun.nio.ch.NativeDispatcher nd
        end local 1 // java.nio.ByteBuffer[] bufs
        end local 0 // java.io.FileDescriptor fd
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    fd  Ljava/io/FileDescriptor;
            0    1     1  bufs  [Ljava/nio/ByteBuffer;
            0    1     2    nd  Lsun/nio/ch/NativeDispatcher;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      fd    
      bufs  
      nd    

  static long read(java.io.FileDescriptor, java.nio.ByteBuffer[], int, int, sun.nio.ch.NativeDispatcher);
    descriptor: (Ljava/io/FileDescriptor;[Ljava/nio/ByteBuffer;IILsun/nio/ch/NativeDispatcher;)J
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=25, args_size=5
        start local 0 // java.io.FileDescriptor fd
        start local 1 // java.nio.ByteBuffer[] bufs
        start local 2 // int offset
        start local 3 // int length
        start local 4 // sun.nio.ch.NativeDispatcher nd
         0: .line 240
            iload 3 /* length */
            invokestatic sun.nio.ch.IOVecWrapper.get:(I)Lsun/nio/ch/IOVecWrapper;
            astore 5 /* vec */
        start local 5 // sun.nio.ch.IOVecWrapper vec
         1: .line 242
            iconst_0
            istore 6 /* completed */
        start local 6 // boolean completed
         2: .line 243
            iconst_0
            istore 7 /* iov_len */
        start local 7 // int iov_len
         3: .line 247
            iload 2 /* offset */
            iload 3 /* length */
            iadd
            istore 8 /* count */
        start local 8 // int count
         4: .line 248
            iload 2 /* offset */
            istore 9 /* i */
        start local 9 // int i
         5: .line 249
            goto 26
         6: .line 250
      StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int int int
      StackMap stack:
            aload 1 /* bufs */
            iload 9 /* i */
            aaload
            astore 10 /* buf */
        start local 10 // java.nio.ByteBuffer buf
         7: .line 251
            aload 10 /* buf */
            invokevirtual java.nio.ByteBuffer.isReadOnly:()Z
            ifeq 9
         8: .line 252
            new java.lang.IllegalArgumentException
            dup
            ldc "Read-only buffer"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 253
      StackMap locals: java.nio.ByteBuffer
      StackMap stack:
            aload 10 /* buf */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 11 /* pos */
        start local 11 // int pos
        10: .line 254
            aload 10 /* buf */
            invokevirtual java.nio.ByteBuffer.limit:()I
            istore 12 /* lim */
        start local 12 // int lim
        11: .line 255
            getstatic sun.nio.ch.IOUtil.$assertionsDisabled:Z
            ifne 12
            iload 11 /* pos */
            iload 12 /* lim */
            if_icmple 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 256
      StackMap locals: int int
      StackMap stack:
            iload 11 /* pos */
            iload 12 /* lim */
            if_icmpgt 13
            iload 12 /* lim */
            iload 11 /* pos */
            isub
            goto 14
      StackMap locals:
      StackMap stack:
        13: iconst_0
      StackMap locals:
      StackMap stack: int
        14: istore 13 /* rem */
        start local 13 // int rem
        15: .line 258
            iload 13 /* rem */
            ifle 25
        16: .line 259
            aload 5 /* vec */
            iload 7 /* iov_len */
            aload 10 /* buf */
            iload 11 /* pos */
            iload 13 /* rem */
            invokevirtual sun.nio.ch.IOVecWrapper.setBuffer:(ILjava/nio/ByteBuffer;II)V
        17: .line 262
            aload 10 /* buf */
            instanceof sun.nio.ch.DirectBuffer
            ifne 22
        18: .line 263
            iload 13 /* rem */
            invokestatic sun.nio.ch.Util.getTemporaryDirectBuffer:(I)Ljava/nio/ByteBuffer;
            astore 14 /* shadow */
        start local 14 // java.nio.ByteBuffer shadow
        19: .line 264
            aload 5 /* vec */
            iload 7 /* iov_len */
            aload 14 /* shadow */
            invokevirtual sun.nio.ch.IOVecWrapper.setShadow:(ILjava/nio/ByteBuffer;)V
        20: .line 265
            aload 14 /* shadow */
            astore 10 /* buf */
        21: .line 266
            aload 14 /* shadow */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 11 /* pos */
        end local 14 // java.nio.ByteBuffer shadow
        22: .line 269
      StackMap locals: int
      StackMap stack:
            aload 5 /* vec */
            iload 7 /* iov_len */
            aload 10 /* buf */
            checkcast sun.nio.ch.DirectBuffer
            invokeinterface sun.nio.ch.DirectBuffer.address:()J
            iload 11 /* pos */
            i2l
            ladd
            invokevirtual sun.nio.ch.IOVecWrapper.putBase:(IJ)V
        23: .line 270
            aload 5 /* vec */
            iload 7 /* iov_len */
            iload 13 /* rem */
            i2l
            invokevirtual sun.nio.ch.IOVecWrapper.putLen:(IJ)V
        24: .line 271
            iinc 7 /* iov_len */ 1
        25: .line 273
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
        end local 13 // int rem
        end local 12 // int lim
        end local 11 // int pos
        end local 10 // java.nio.ByteBuffer buf
        26: .line 249
      StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int int int
      StackMap stack:
            iload 9 /* i */
            iload 8 /* count */
            if_icmpge 27
            iload 7 /* iov_len */
            getstatic sun.nio.ch.IOUtil.IOV_MAX:I
            if_icmplt 6
        27: .line 275
      StackMap locals:
      StackMap stack:
            iload 7 /* iov_len */
            ifne 38
        28: .line 308
            iload 6 /* completed */
            ifne 37
        29: .line 309
            iconst_0
            istore 23 /* j */
        start local 23 // int j
        30: goto 36
        31: .line 310
      StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int int int top top top top top top top top top top top top top int
      StackMap stack:
            aload 5 /* vec */
            iload 23 /* j */
            invokevirtual sun.nio.ch.IOVecWrapper.getShadow:(I)Ljava/nio/ByteBuffer;
            astore 24 /* shadow */
        start local 24 // java.nio.ByteBuffer shadow
        32: .line 311
            aload 24 /* shadow */
            ifnull 34
        33: .line 312
            aload 24 /* shadow */
            invokestatic sun.nio.ch.Util.offerLastTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
        34: .line 313
      StackMap locals: java.nio.ByteBuffer
      StackMap stack:
            aload 5 /* vec */
            iload 23 /* j */
            invokevirtual sun.nio.ch.IOVecWrapper.clearRefs:(I)V
        end local 24 // java.nio.ByteBuffer shadow
        35: .line 309
            iinc 23 /* j */ 1
      StackMap locals:
      StackMap stack:
        36: iload 23 /* j */
            iload 7 /* iov_len */
            if_icmplt 31
        end local 23 // int j
        37: .line 276
      StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int int int
      StackMap stack:
            lconst_0
            lreturn
        38: .line 278
      StackMap locals:
      StackMap stack:
            aload 4 /* nd */
            aload 0 /* fd */
            aload 5 /* vec */
            getfield sun.nio.ch.IOVecWrapper.address:J
            iload 7 /* iov_len */
            invokevirtual sun.nio.ch.NativeDispatcher.readv:(Ljava/io/FileDescriptor;JI)J
            lstore 10 /* bytesRead */
        start local 10 // long bytesRead
        39: .line 281
            lload 10 /* bytesRead */
            lstore 12 /* left */
        start local 12 // long left
        40: .line 282
            iconst_0
            istore 14 /* j */
        start local 14 // int j
        41: goto 60
        42: .line 283
      StackMap locals: long long int
      StackMap stack:
            aload 5 /* vec */
            iload 14 /* j */
            invokevirtual sun.nio.ch.IOVecWrapper.getShadow:(I)Ljava/nio/ByteBuffer;
            astore 15 /* shadow */
        start local 15 // java.nio.ByteBuffer shadow
        43: .line 284
            lload 12 /* left */
            lconst_0
            lcmp
            ifle 56
        44: .line 285
            aload 5 /* vec */
            iload 14 /* j */
            invokevirtual sun.nio.ch.IOVecWrapper.getBuffer:(I)Ljava/nio/ByteBuffer;
            astore 16 /* buf */
        start local 16 // java.nio.ByteBuffer buf
        45: .line 286
            aload 5 /* vec */
            iload 14 /* j */
            invokevirtual sun.nio.ch.IOVecWrapper.getRemaining:(I)I
            istore 17 /* rem */
        start local 17 // int rem
        46: .line 287
            lload 12 /* left */
            iload 17 /* rem */
            i2l
            lcmp
            ifle 47
            iload 17 /* rem */
            goto 48
      StackMap locals: java.nio.ByteBuffer java.nio.ByteBuffer int
      StackMap stack:
        47: lload 12 /* left */
            l2i
      StackMap locals:
      StackMap stack: int
        48: istore 18 /* n */
        start local 18 // int n
        49: .line 288
            aload 15 /* shadow */
            ifnonnull 53
        50: .line 289
            aload 5 /* vec */
            iload 14 /* j */
            invokevirtual sun.nio.ch.IOVecWrapper.getPosition:(I)I
            istore 19 /* pos */
        start local 19 // int pos
        51: .line 290
            aload 16 /* buf */
            iload 19 /* pos */
            iload 18 /* n */
            iadd
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        end local 19 // int pos
        52: .line 291
            goto 55
        53: .line 292
      StackMap locals: int
      StackMap stack:
            aload 15 /* shadow */
            aload 15 /* shadow */
            invokevirtual java.nio.ByteBuffer.position:()I
            iload 18 /* n */
            iadd
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        54: .line 293
            aload 16 /* buf */
            aload 15 /* shadow */
            invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
            pop
        55: .line 295
      StackMap locals:
      StackMap stack:
            lload 12 /* left */
            iload 18 /* n */
            i2l
            lsub
            lstore 12 /* left */
        end local 18 // int n
        end local 17 // int rem
        end local 16 // java.nio.ByteBuffer buf
        56: .line 297
      StackMap locals:
      StackMap stack:
            aload 15 /* shadow */
            ifnull 58
        57: .line 298
            aload 15 /* shadow */
            invokestatic sun.nio.ch.Util.offerLastTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
        58: .line 299
      StackMap locals:
      StackMap stack:
            aload 5 /* vec */
            iload 14 /* j */
            invokevirtual sun.nio.ch.IOVecWrapper.clearRefs:(I)V
        end local 15 // java.nio.ByteBuffer shadow
        59: .line 282
            iinc 14 /* j */ 1
      StackMap locals:
      StackMap stack:
        60: iload 14 /* j */
            iload 7 /* iov_len */
            if_icmplt 42
        end local 14 // int j
        61: .line 302
            iconst_1
            istore 6 /* completed */
        62: .line 303
            lload 10 /* bytesRead */
            lstore 21
        63: .line 308
            iload 6 /* completed */
            ifne 72
        64: .line 309
            iconst_0
            istore 23 /* j */
        start local 23 // int j
        65: goto 71
        66: .line 310
      StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int int int long long top top top top top top top long int
      StackMap stack:
            aload 5 /* vec */
            iload 23 /* j */
            invokevirtual sun.nio.ch.IOVecWrapper.getShadow:(I)Ljava/nio/ByteBuffer;
            astore 24 /* shadow */
        start local 24 // java.nio.ByteBuffer shadow
        67: .line 311
            aload 24 /* shadow */
            ifnull 69
        68: .line 312
            aload 24 /* shadow */
            invokestatic sun.nio.ch.Util.offerLastTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
        69: .line 313
      StackMap locals: java.nio.ByteBuffer
      StackMap stack:
            aload 5 /* vec */
            iload 23 /* j */
            invokevirtual sun.nio.ch.IOVecWrapper.clearRefs:(I)V
        end local 24 // java.nio.ByteBuffer shadow
        70: .line 309
            iinc 23 /* j */ 1
      StackMap locals:
      StackMap stack:
        71: iload 23 /* j */
            iload 7 /* iov_len */
            if_icmplt 66
        end local 23 // int j
        72: .line 303
      StackMap locals:
      StackMap stack:
            lload 21
            lreturn
        end local 12 // long left
        end local 10 // long bytesRead
        end local 9 // int i
        end local 8 // int count
        73: .line 305
      StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int
      StackMap stack: java.lang.Throwable
            astore 20
        74: .line 308
            iload 6 /* completed */
            ifne 83
        75: .line 309
            iconst_0
            istore 23 /* j */
        start local 23 // int j
        76: goto 82
        77: .line 310
      StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int top top top top top top top top top top top top java.lang.Throwable top top int
      StackMap stack:
            aload 5 /* vec */
            iload 23 /* j */
            invokevirtual sun.nio.ch.IOVecWrapper.getShadow:(I)Ljava/nio/ByteBuffer;
            astore 24 /* shadow */
        start local 24 // java.nio.ByteBuffer shadow
        78: .line 311
            aload 24 /* shadow */
            ifnull 80
        79: .line 312
            aload 24 /* shadow */
            invokestatic sun.nio.ch.Util.offerLastTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
        80: .line 313
      StackMap locals: java.nio.ByteBuffer
      StackMap stack:
            aload 5 /* vec */
            iload 23 /* j */
            invokevirtual sun.nio.ch.IOVecWrapper.clearRefs:(I)V
        end local 24 // java.nio.ByteBuffer shadow
        81: .line 309
            iinc 23 /* j */ 1
      StackMap locals:
      StackMap stack:
        82: iload 23 /* j */
            iload 7 /* iov_len */
            if_icmplt 77
        end local 23 // int j
        83: .line 316
      StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int top top top top top top top top top top top top java.lang.Throwable
      StackMap stack:
            aload 20
            athrow
        end local 7 // int iov_len
        end local 6 // boolean completed
        end local 5 // sun.nio.ch.IOVecWrapper vec
        end local 4 // sun.nio.ch.NativeDispatcher nd
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.nio.ByteBuffer[] bufs
        end local 0 // java.io.FileDescriptor fd
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   84     0         fd  Ljava/io/FileDescriptor;
            0   84     1       bufs  [Ljava/nio/ByteBuffer;
            0   84     2     offset  I
            0   84     3     length  I
            0   84     4         nd  Lsun/nio/ch/NativeDispatcher;
            1   84     5        vec  Lsun/nio/ch/IOVecWrapper;
            2   84     6  completed  Z
            3   84     7    iov_len  I
            4   73     8      count  I
            5   73     9          i  I
            7   26    10        buf  Ljava/nio/ByteBuffer;
           10   26    11        pos  I
           11   26    12        lim  I
           15   26    13        rem  I
           19   22    14     shadow  Ljava/nio/ByteBuffer;
           39   73    10  bytesRead  J
           40   73    12       left  J
           41   61    14          j  I
           43   59    15     shadow  Ljava/nio/ByteBuffer;
           45   56    16        buf  Ljava/nio/ByteBuffer;
           46   56    17        rem  I
           49   56    18          n  I
           51   52    19        pos  I
           30   37    23          j  I
           65   72    23          j  I
           76   83    23          j  I
           32   35    24     shadow  Ljava/nio/ByteBuffer;
           67   70    24     shadow  Ljava/nio/ByteBuffer;
           78   81    24     shadow  Ljava/nio/ByteBuffer;
      Exception table:
        from    to  target  type
           3    28      73  any
          38    63      73  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      fd      
      bufs    
      offset  
      length  
      nd      

  public static java.io.FileDescriptor newFD(int);
    descriptor: (I)Ljava/io/FileDescriptor;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // int i
         0: .line 320
            new java.io.FileDescriptor
            dup
            invokespecial java.io.FileDescriptor.<init>:()V
            astore 1 /* fd */
        start local 1 // java.io.FileDescriptor fd
         1: .line 321
            aload 1 /* fd */
            iload 0 /* i */
            invokestatic sun.nio.ch.IOUtil.setfdVal:(Ljava/io/FileDescriptor;I)V
         2: .line 322
            aload 1 /* fd */
            areturn
        end local 1 // java.io.FileDescriptor fd
        end local 0 // int i
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     i  I
            1    3     1    fd  Ljava/io/FileDescriptor;
    MethodParameters:
      Name  Flags
      i     

  static native boolean randomBytes(byte[]);
    descriptor: ([B)Z
    flags: (0x0108) ACC_STATIC, ACC_NATIVE
    MethodParameters:
           Name  Flags
      someBytes  

  static native long makePipe(boolean);
    descriptor: (Z)J
    flags: (0x0108) ACC_STATIC, ACC_NATIVE
    MethodParameters:
          Name  Flags
      blocking  

  static native boolean drain(int);
    descriptor: (I)Z
    flags: (0x0108) ACC_STATIC, ACC_NATIVE
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      fd    

  public static native void configureBlocking(java.io.FileDescriptor, boolean);
    descriptor: (Ljava/io/FileDescriptor;Z)V
    flags: (0x0109) ACC_PUBLIC, ACC_STATIC, ACC_NATIVE
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      fd        
      blocking  

  public static native int fdVal(java.io.FileDescriptor);
    descriptor: (Ljava/io/FileDescriptor;)I
    flags: (0x0109) ACC_PUBLIC, ACC_STATIC, ACC_NATIVE
    MethodParameters:
      Name  Flags
      fd    

  static native void setfdVal(java.io.FileDescriptor, int);
    descriptor: (Ljava/io/FileDescriptor;I)V
    flags: (0x0108) ACC_STATIC, ACC_NATIVE
    MethodParameters:
       Name  Flags
      fd     
      value  

  static native int fdLimit();
    descriptor: ()I
    flags: (0x0108) ACC_STATIC, ACC_NATIVE

  static native int iovMax();
    descriptor: ()I
    flags: (0x0108) ACC_STATIC, ACC_NATIVE

  static native void initIDs();
    descriptor: ()V
    flags: (0x0108) ACC_STATIC, ACC_NATIVE

  public static void load();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=0, locals=0, args_size=0
         0: .line 353
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "IOUtil.java"
NestMembers:
  sun.nio.ch.IOUtil$1
InnerClasses:
  sun.nio.ch.IOUtil$1