public class sun.nio.ch.WindowsAsynchronousFileChannelImpl extends sun.nio.ch.AsynchronousFileChannelImpl implements sun.nio.ch.Iocp$OverlappedChannel, sun.nio.ch.Groupable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.nio.ch.WindowsAsynchronousFileChannelImpl
  super_class: sun.nio.ch.AsynchronousFileChannelImpl
{
  private static final jdk.internal.access.JavaIOFileDescriptorAccess fdAccess;
    descriptor: Ljdk/internal/access/JavaIOFileDescriptorAccess;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int ERROR_HANDLE_EOF;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 38

  private static final sun.nio.ch.FileDispatcher nd;
    descriptor: Lsun/nio/ch/FileDispatcher;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final long handle;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int completionKey;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final sun.nio.ch.Iocp iocp;
    descriptor: Lsun/nio/ch/Iocp;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean isDefaultIocp;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final sun.nio.ch.PendingIoCache ioCache;
    descriptor: Lsun/nio/ch/PendingIoCache;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static final int NO_LOCK;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  static final int LOCKED;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  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 41
            ldc Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;
            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.WindowsAsynchronousFileChannelImpl.$assertionsDisabled:Z
         3: .line 46
            invokestatic jdk.internal.access.SharedSecrets.getJavaIOFileDescriptorAccess:()Ljdk/internal/access/JavaIOFileDescriptorAccess;
         4: .line 45
            putstatic sun.nio.ch.WindowsAsynchronousFileChannelImpl.fdAccess:Ljdk/internal/access/JavaIOFileDescriptorAccess;
         5: .line 64
            new sun.nio.ch.FileDispatcherImpl
            dup
            invokespecial sun.nio.ch.FileDispatcherImpl.<init>:()V
            putstatic sun.nio.ch.WindowsAsynchronousFileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
         6: .line 729
            invokestatic sun.nio.ch.IOUtil.load:()V
         7: .line 730
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(java.io.FileDescriptor, boolean, boolean, sun.nio.ch.Iocp, boolean);
    descriptor: (Ljava/io/FileDescriptor;ZZLsun/nio/ch/Iocp;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=6
        start local 0 // sun.nio.ch.WindowsAsynchronousFileChannelImpl this
        start local 1 // java.io.FileDescriptor fdObj
        start local 2 // boolean reading
        start local 3 // boolean writing
        start local 4 // sun.nio.ch.Iocp iocp
        start local 5 // boolean isDefaultIocp
         0: .line 88
            aload 0 /* this */
            aload 1 /* fdObj */
            iload 2 /* reading */
            iload 3 /* writing */
            aload 4 /* iocp */
            invokevirtual sun.nio.ch.Iocp.executor:()Ljava/util/concurrent/ExecutorService;
            invokespecial sun.nio.ch.AsynchronousFileChannelImpl.<init>:(Ljava/io/FileDescriptor;ZZLjava/util/concurrent/ExecutorService;)V
         1: .line 89
            aload 0 /* this */
            getstatic sun.nio.ch.WindowsAsynchronousFileChannelImpl.fdAccess:Ljdk/internal/access/JavaIOFileDescriptorAccess;
            aload 1 /* fdObj */
            invokeinterface jdk.internal.access.JavaIOFileDescriptorAccess.getHandle:(Ljava/io/FileDescriptor;)J
            putfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.handle:J
         2: .line 90
            aload 0 /* this */
            aload 4 /* iocp */
            putfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.iocp:Lsun/nio/ch/Iocp;
         3: .line 91
            aload 0 /* this */
            iload 5 /* isDefaultIocp */
            putfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.isDefaultIocp:Z
         4: .line 92
            aload 0 /* this */
            new sun.nio.ch.PendingIoCache
            dup
            invokespecial sun.nio.ch.PendingIoCache.<init>:()V
            putfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.ioCache:Lsun/nio/ch/PendingIoCache;
         5: .line 93
            aload 0 /* this */
            aload 4 /* iocp */
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.handle:J
            invokevirtual sun.nio.ch.Iocp.associate:(Lsun/nio/ch/Iocp$OverlappedChannel;J)I
            putfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.completionKey:I
         6: .line 94
            return
        end local 5 // boolean isDefaultIocp
        end local 4 // sun.nio.ch.Iocp iocp
        end local 3 // boolean writing
        end local 2 // boolean reading
        end local 1 // java.io.FileDescriptor fdObj
        end local 0 // sun.nio.ch.WindowsAsynchronousFileChannelImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;
            0    7     1          fdObj  Ljava/io/FileDescriptor;
            0    7     2        reading  Z
            0    7     3        writing  Z
            0    7     4           iocp  Lsun/nio/ch/Iocp;
            0    7     5  isDefaultIocp  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      fdObj          
      reading        
      writing        
      iocp           
      isDefaultIocp  

  public static java.nio.channels.AsynchronousFileChannel open(java.io.FileDescriptor, boolean, boolean, sun.nio.ch.ThreadPool);
    descriptor: (Ljava/io/FileDescriptor;ZZLsun/nio/ch/ThreadPool;)Ljava/nio/channels/AsynchronousFileChannel;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=7, args_size=4
        start local 0 // java.io.FileDescriptor fdo
        start local 1 // boolean reading
        start local 2 // boolean writing
        start local 3 // sun.nio.ch.ThreadPool pool
         0: .line 104
            aload 3 /* pool */
            ifnonnull 4
         1: .line 105
            getstatic sun.nio.ch.WindowsAsynchronousFileChannelImpl$DefaultIocpHolder.defaultIocp:Lsun/nio/ch/Iocp;
            astore 4 /* iocp */
        start local 4 // sun.nio.ch.Iocp iocp
         2: .line 106
            iconst_1
            istore 5 /* isDefaultIocp */
        start local 5 // boolean isDefaultIocp
         3: .line 107
            goto 6
        end local 5 // boolean isDefaultIocp
        end local 4 // sun.nio.ch.Iocp iocp
         4: .line 108
      StackMap locals:
      StackMap stack:
            new sun.nio.ch.Iocp
            dup
            aconst_null
            aload 3 /* pool */
            invokespecial sun.nio.ch.Iocp.<init>:(Ljava/nio/channels/spi/AsynchronousChannelProvider;Lsun/nio/ch/ThreadPool;)V
            invokevirtual sun.nio.ch.Iocp.start:()Lsun/nio/ch/Iocp;
            astore 4 /* iocp */
        start local 4 // sun.nio.ch.Iocp iocp
         5: .line 109
            iconst_0
            istore 5 /* isDefaultIocp */
        start local 5 // boolean isDefaultIocp
         6: .line 113
      StackMap locals: sun.nio.ch.Iocp int
      StackMap stack:
            new sun.nio.ch.WindowsAsynchronousFileChannelImpl
            dup
            aload 0 /* fdo */
            iload 1 /* reading */
            iload 2 /* writing */
            aload 4 /* iocp */
            iload 5 /* isDefaultIocp */
         7: .line 112
            invokespecial sun.nio.ch.WindowsAsynchronousFileChannelImpl.<init>:(Ljava/io/FileDescriptor;ZZLsun/nio/ch/Iocp;Z)V
         8: areturn
         9: .line 114
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 6 /* x */
        start local 6 // java.io.IOException x
        10: .line 116
            iload 5 /* isDefaultIocp */
            ifne 12
        11: .line 117
            aload 4 /* iocp */
            invokevirtual sun.nio.ch.Iocp.implClose:()V
        12: .line 118
      StackMap locals: java.io.IOException
      StackMap stack:
            aload 6 /* x */
            athrow
        end local 6 // java.io.IOException x
        end local 5 // boolean isDefaultIocp
        end local 4 // sun.nio.ch.Iocp iocp
        end local 3 // sun.nio.ch.ThreadPool pool
        end local 2 // boolean writing
        end local 1 // boolean reading
        end local 0 // java.io.FileDescriptor fdo
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   13     0            fdo  Ljava/io/FileDescriptor;
            0   13     1        reading  Z
            0   13     2        writing  Z
            0   13     3           pool  Lsun/nio/ch/ThreadPool;
            2    4     4           iocp  Lsun/nio/ch/Iocp;
            5   13     4           iocp  Lsun/nio/ch/Iocp;
            3    4     5  isDefaultIocp  Z
            6   13     5  isDefaultIocp  Z
           10   13     6              x  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           6     8       9  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      fdo      
      reading  
      writing  
      pool     

  public <V, A> sun.nio.ch.PendingFuture<V, A> getByOverlapped(long);
    descriptor: (J)Lsun/nio/ch/PendingFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.nio.ch.WindowsAsynchronousFileChannelImpl this
        start local 1 // long overlapped
         0: .line 124
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.ioCache:Lsun/nio/ch/PendingIoCache;
            lload 1 /* overlapped */
            invokevirtual sun.nio.ch.PendingIoCache.remove:(J)Lsun/nio/ch/PendingFuture;
            areturn
        end local 1 // long overlapped
        end local 0 // sun.nio.ch.WindowsAsynchronousFileChannelImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;
            0    1     1  overlapped  J
    Signature: <V:Ljava/lang/Object;A:Ljava/lang/Object;>(J)Lsun/nio/ch/PendingFuture<TV;TA;>;
    MethodParameters:
            Name  Flags
      overlapped  

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.nio.ch.WindowsAsynchronousFileChannelImpl this
         0: .line 129
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.closeLock:Ljava/util/concurrent/locks/ReadWriteLock;
            invokeinterface java.util.concurrent.locks.ReadWriteLock.writeLock:()Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         1: .line 131
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.closed:Z
            ifeq 4
         2: .line 135
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.closeLock:Ljava/util/concurrent/locks/ReadWriteLock;
            invokeinterface java.util.concurrent.locks.ReadWriteLock.writeLock:()Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         3: .line 132
            return
         4: .line 133
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.closed:Z
         5: .line 134
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 1
         7: .line 135
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.closeLock:Ljava/util/concurrent/locks/ReadWriteLock;
            invokeinterface java.util.concurrent.locks.ReadWriteLock.writeLock:()Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         8: .line 136
            aload 1
            athrow
         9: .line 135
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.closeLock:Ljava/util/concurrent/locks/ReadWriteLock;
            invokeinterface java.util.concurrent.locks.ReadWriteLock.writeLock:()Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        10: .line 139
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.invalidateAllLocks:()V
        11: .line 142
            getstatic sun.nio.ch.WindowsAsynchronousFileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.fdObj:Ljava/io/FileDescriptor;
            invokevirtual sun.nio.ch.FileDispatcher.close:(Ljava/io/FileDescriptor;)V
        12: .line 145
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.ioCache:Lsun/nio/ch/PendingIoCache;
            invokevirtual sun.nio.ch.PendingIoCache.close:()V
        13: .line 148
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.iocp:Lsun/nio/ch/Iocp;
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.completionKey:I
            invokevirtual sun.nio.ch.Iocp.disassociate:(I)V
        14: .line 151
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.isDefaultIocp:Z
            ifne 16
        15: .line 152
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.iocp:Lsun/nio/ch/Iocp;
            invokevirtual sun.nio.ch.Iocp.detachFromThreadPool:()V
        16: .line 153
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.nio.ch.WindowsAsynchronousFileChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;
      Exception table:
        from    to  target  type
           1     2       6  any
           4     6       6  any
    Exceptions:
      throws java.io.IOException

  public sun.nio.ch.AsynchronousChannelGroupImpl group();
    descriptor: ()Lsun/nio/ch/AsynchronousChannelGroupImpl;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.nio.ch.WindowsAsynchronousFileChannelImpl this
         0: .line 157
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.iocp:Lsun/nio/ch/Iocp;
            areturn
        end local 0 // sun.nio.ch.WindowsAsynchronousFileChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;

  private static java.io.IOException toIOException(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Ljava/io/IOException;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Throwable x
         0: .line 164
            aload 0 /* x */
            instanceof java.io.IOException
            ifeq 4
         1: .line 165
            aload 0 /* x */
            instanceof java.nio.channels.ClosedChannelException
            ifeq 3
         2: .line 166
            new java.nio.channels.AsynchronousCloseException
            dup
            invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
            astore 0 /* x */
         3: .line 167
      StackMap locals:
      StackMap stack:
            aload 0 /* x */
            checkcast java.io.IOException
            areturn
         4: .line 169
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            aload 0 /* x */
            invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
            areturn
        end local 0 // java.lang.Throwable x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     x  Ljava/lang/Throwable;
    MethodParameters:
      Name  Flags
      x     

  public long size();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // sun.nio.ch.WindowsAsynchronousFileChannelImpl this
         0: .line 175
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.begin:()V
         1: .line 176
            getstatic sun.nio.ch.WindowsAsynchronousFileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.fdObj:Ljava/io/FileDescriptor;
            invokevirtual sun.nio.ch.FileDispatcher.size:(Ljava/io/FileDescriptor;)J
            lstore 2
         2: .line 178
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.end:()V
         3: .line 176
            lload 2
            lreturn
         4: .line 177
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         5: .line 178
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.end:()V
         6: .line 179
            aload 1
            athrow
        end local 0 // sun.nio.ch.WindowsAsynchronousFileChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;
      Exception table:
        from    to  target  type
           0     2       4  any
    Exceptions:
      throws java.io.IOException

  public java.nio.channels.AsynchronousFileChannel truncate(long);
    descriptor: (J)Ljava/nio/channels/AsynchronousFileChannel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // sun.nio.ch.WindowsAsynchronousFileChannelImpl this
        start local 1 // long size
         0: .line 184
            lload 1 /* size */
            lconst_0
            lcmp
            ifge 2
         1: .line 185
            new java.lang.IllegalArgumentException
            dup
            ldc "Negative size"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 186
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.writing:Z
            ifne 4
         3: .line 187
            new java.nio.channels.NonWritableChannelException
            dup
            invokespecial java.nio.channels.NonWritableChannelException.<init>:()V
            athrow
         4: .line 189
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.begin:()V
         5: .line 190
            lload 1 /* size */
            getstatic sun.nio.ch.WindowsAsynchronousFileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.fdObj:Ljava/io/FileDescriptor;
            invokevirtual sun.nio.ch.FileDispatcher.size:(Ljava/io/FileDescriptor;)J
            lcmp
            ifle 9
         6: .line 191
            aload 0 /* this */
            astore 4
         7: .line 194
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.end:()V
         8: .line 191
            aload 4
            areturn
         9: .line 192
      StackMap locals:
      StackMap stack:
            getstatic sun.nio.ch.WindowsAsynchronousFileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.fdObj:Ljava/io/FileDescriptor;
            lload 1 /* size */
            invokevirtual sun.nio.ch.FileDispatcher.truncate:(Ljava/io/FileDescriptor;J)I
            pop
        10: .line 193
            goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 3
        12: .line 194
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.end:()V
        13: .line 195
            aload 3
            athrow
        14: .line 194
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.end:()V
        15: .line 196
            aload 0 /* this */
            areturn
        end local 1 // long size
        end local 0 // sun.nio.ch.WindowsAsynchronousFileChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0  this  Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;
            0   16     1  size  J
      Exception table:
        from    to  target  type
           4     7      11  any
           9    11      11  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      size  

  public void force(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.nio.ch.WindowsAsynchronousFileChannelImpl this
        start local 1 // boolean metaData
         0: .line 202
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.begin:()V
         1: .line 203
            getstatic sun.nio.ch.WindowsAsynchronousFileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.fdObj:Ljava/io/FileDescriptor;
            iload 1 /* metaData */
            invokevirtual sun.nio.ch.FileDispatcher.force:(Ljava/io/FileDescriptor;Z)I
            pop
         2: .line 204
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2
         4: .line 205
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.end:()V
         5: .line 206
            aload 2
            athrow
         6: .line 205
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.end:()V
         7: .line 207
            return
        end local 1 // boolean metaData
        end local 0 // sun.nio.ch.WindowsAsynchronousFileChannelImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;
            0    8     1  metaData  Z
      Exception table:
        from    to  target  type
           0     3       3  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      metaData  

  <A> java.util.concurrent.Future<java.nio.channels.FileLock> implLock(long, long, boolean, A, java.nio.channels.CompletionHandler<java.nio.channels.FileLock, ? super A>);
    descriptor: (JJZLjava/lang/Object;Ljava/nio/channels/CompletionHandler;)Ljava/util/concurrent/Future;
    flags: (0x0000) 
    Code:
      stack=7, locals=11, args_size=6
        start local 0 // sun.nio.ch.WindowsAsynchronousFileChannelImpl this
        start local 1 // long position
        start local 3 // long size
        start local 5 // boolean shared
        start local 6 // java.lang.Object attachment
        start local 7 // java.nio.channels.CompletionHandler handler
         0: .line 297
            iload 5 /* shared */
            ifeq 2
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.reading:Z
            ifne 2
         1: .line 298
            new java.nio.channels.NonReadableChannelException
            dup
            invokespecial java.nio.channels.NonReadableChannelException.<init>:()V
            athrow
         2: .line 299
      StackMap locals:
      StackMap stack:
            iload 5 /* shared */
            ifne 4
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.writing:Z
            ifne 4
         3: .line 300
            new java.nio.channels.NonWritableChannelException
            dup
            invokespecial java.nio.channels.NonWritableChannelException.<init>:()V
            athrow
         4: .line 303
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* position */
            lload 3 /* size */
            iload 5 /* shared */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.addToFileLockTable:(JJZ)Lsun/nio/ch/FileLockImpl;
            astore 8 /* fli */
        start local 8 // sun.nio.ch.FileLockImpl fli
         5: .line 304
            aload 8 /* fli */
            ifnonnull 11
         6: .line 305
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            astore 9 /* exc */
        start local 9 // java.lang.Throwable exc
         7: .line 306
            aload 7 /* handler */
            ifnonnull 9
         8: .line 307
            aload 9 /* exc */
            invokestatic sun.nio.ch.CompletedFuture.withFailure:(Ljava/lang/Throwable;)Lsun/nio/ch/CompletedFuture;
            areturn
         9: .line 308
      StackMap locals: sun.nio.ch.FileLockImpl java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            aload 7 /* handler */
            aload 6 /* attachment */
            aconst_null
            aload 9 /* exc */
            invokestatic sun.nio.ch.Invoker.invoke:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
        10: .line 309
            aconst_null
            areturn
        end local 9 // java.lang.Throwable exc
        11: .line 314
      StackMap locals:
      StackMap stack:
            new sun.nio.ch.PendingFuture
            dup
            aload 0 /* this */
            aload 7 /* handler */
            aload 6 /* attachment */
            invokespecial sun.nio.ch.PendingFuture.<init>:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;)V
        12: .line 313
            astore 9 /* result */
        start local 9 // sun.nio.ch.PendingFuture result
        13: .line 315
            new sun.nio.ch.WindowsAsynchronousFileChannelImpl$LockTask
            dup
            aload 0 /* this */
            lload 1 /* position */
            aload 8 /* fli */
            aload 9 /* result */
            invokespecial sun.nio.ch.WindowsAsynchronousFileChannelImpl$LockTask.<init>:(Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;JLsun/nio/ch/FileLockImpl;Lsun/nio/ch/PendingFuture;)V
            astore 10 /* lockTask */
        start local 10 // sun.nio.ch.WindowsAsynchronousFileChannelImpl$LockTask lockTask
        14: .line 316
            aload 9 /* result */
            aload 10 /* lockTask */
            invokevirtual sun.nio.ch.PendingFuture.setContext:(Ljava/lang/Object;)V
        15: .line 319
            aload 10 /* lockTask */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl$LockTask.run:()V
        16: .line 320
            aload 9 /* result */
            areturn
        end local 10 // sun.nio.ch.WindowsAsynchronousFileChannelImpl$LockTask lockTask
        end local 9 // sun.nio.ch.PendingFuture result
        end local 8 // sun.nio.ch.FileLockImpl fli
        end local 7 // java.nio.channels.CompletionHandler handler
        end local 6 // java.lang.Object attachment
        end local 5 // boolean shared
        end local 3 // long size
        end local 1 // long position
        end local 0 // sun.nio.ch.WindowsAsynchronousFileChannelImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0        this  Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;
            0   17     1    position  J
            0   17     3        size  J
            0   17     5      shared  Z
            0   17     6  attachment  TA;
            0   17     7     handler  Ljava/nio/channels/CompletionHandler<Ljava/nio/channels/FileLock;-TA;>;
            5   17     8         fli  Lsun/nio/ch/FileLockImpl;
            7   11     9         exc  Ljava/lang/Throwable;
           13   17     9      result  Lsun/nio/ch/PendingFuture<Ljava/nio/channels/FileLock;TA;>;
           14   17    10    lockTask  Lsun/nio/ch/WindowsAsynchronousFileChannelImpl$LockTask<TA;>;
    Signature: <A:Ljava/lang/Object;>(JJZTA;Ljava/nio/channels/CompletionHandler<Ljava/nio/channels/FileLock;-TA;>;)Ljava/util/concurrent/Future<Ljava/nio/channels/FileLock;>;
    MethodParameters:
            Name  Flags
      position    final
      size        final
      shared      final
      attachment  
      handler     final

  public java.nio.channels.FileLock tryLock(long, long, boolean);
    descriptor: (JJZ)Ljava/nio/channels/FileLock;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=11, args_size=4
        start local 0 // sun.nio.ch.WindowsAsynchronousFileChannelImpl this
        start local 1 // long position
        start local 3 // long size
        start local 5 // boolean shared
         0: .line 330
            iload 5 /* shared */
            ifeq 2
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.reading:Z
            ifne 2
         1: .line 331
            new java.nio.channels.NonReadableChannelException
            dup
            invokespecial java.nio.channels.NonReadableChannelException.<init>:()V
            athrow
         2: .line 332
      StackMap locals:
      StackMap stack:
            iload 5 /* shared */
            ifne 4
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.writing:Z
            ifne 4
         3: .line 333
            new java.nio.channels.NonWritableChannelException
            dup
            invokespecial java.nio.channels.NonWritableChannelException.<init>:()V
            athrow
         4: .line 336
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* position */
            lload 3 /* size */
            iload 5 /* shared */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.addToFileLockTable:(JJZ)Lsun/nio/ch/FileLockImpl;
            astore 6 /* fli */
        start local 6 // sun.nio.ch.FileLockImpl fli
         5: .line 337
            aload 6 /* fli */
            ifnonnull 7
         6: .line 338
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            athrow
         7: .line 340
      StackMap locals: sun.nio.ch.FileLockImpl
      StackMap stack:
            iconst_0
            istore 7 /* gotLock */
        start local 7 // boolean gotLock
         8: .line 342
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.begin:()V
         9: .line 344
            getstatic sun.nio.ch.WindowsAsynchronousFileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.fdObj:Ljava/io/FileDescriptor;
            iconst_0
            lload 1 /* position */
            lload 3 /* size */
            iload 5 /* shared */
            invokevirtual sun.nio.ch.FileDispatcher.lock:(Ljava/io/FileDescriptor;ZJJZ)I
            istore 8 /* res */
        start local 8 // int res
        10: .line 345
            iload 8 /* res */
            iconst_m1
            if_icmpne 15
        11: .line 350
            iload 7 /* gotLock */
            ifne 13
        12: .line 351
            aload 0 /* this */
            aload 6 /* fli */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.removeFromFileLockTable:(Lsun/nio/ch/FileLockImpl;)V
        13: .line 352
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.end:()V
        14: .line 346
            aconst_null
            areturn
        15: .line 347
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 7 /* gotLock */
        16: .line 348
            aload 6 /* fli */
            astore 10
        17: .line 350
            iload 7 /* gotLock */
            ifne 19
        18: .line 351
            aload 0 /* this */
            aload 6 /* fli */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.removeFromFileLockTable:(Lsun/nio/ch/FileLockImpl;)V
        19: .line 352
      StackMap locals: sun.nio.ch.WindowsAsynchronousFileChannelImpl long long int sun.nio.ch.FileLockImpl int int top java.nio.channels.FileLock
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.end:()V
        20: .line 348
            aload 10
            areturn
        end local 8 // int res
        21: .line 349
      StackMap locals: sun.nio.ch.WindowsAsynchronousFileChannelImpl long long int sun.nio.ch.FileLockImpl int
      StackMap stack: java.lang.Throwable
            astore 9
        22: .line 350
            iload 7 /* gotLock */
            ifne 24
        23: .line 351
            aload 0 /* this */
            aload 6 /* fli */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.removeFromFileLockTable:(Lsun/nio/ch/FileLockImpl;)V
        24: .line 352
      StackMap locals: sun.nio.ch.WindowsAsynchronousFileChannelImpl long long int sun.nio.ch.FileLockImpl int top java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.end:()V
        25: .line 353
            aload 9
            athrow
        end local 7 // boolean gotLock
        end local 6 // sun.nio.ch.FileLockImpl fli
        end local 5 // boolean shared
        end local 3 // long size
        end local 1 // long position
        end local 0 // sun.nio.ch.WindowsAsynchronousFileChannelImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   26     0      this  Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;
            0   26     1  position  J
            0   26     3      size  J
            0   26     5    shared  Z
            5   26     6       fli  Lsun/nio/ch/FileLockImpl;
            8   26     7   gotLock  Z
           10   21     8       res  I
      Exception table:
        from    to  target  type
           8    11      21  any
          15    17      21  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      position  
      size      
      shared    

  protected void implRelease(sun.nio.ch.FileLockImpl);
    descriptor: (Lsun/nio/ch/FileLockImpl;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // sun.nio.ch.WindowsAsynchronousFileChannelImpl this
        start local 1 // sun.nio.ch.FileLockImpl fli
         0: .line 358
            getstatic sun.nio.ch.WindowsAsynchronousFileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.fdObj:Ljava/io/FileDescriptor;
            aload 1 /* fli */
            invokevirtual sun.nio.ch.FileLockImpl.position:()J
            aload 1 /* fli */
            invokevirtual sun.nio.ch.FileLockImpl.size:()J
            invokevirtual sun.nio.ch.FileDispatcher.release:(Ljava/io/FileDescriptor;JJ)V
         1: .line 359
            return
        end local 1 // sun.nio.ch.FileLockImpl fli
        end local 0 // sun.nio.ch.WindowsAsynchronousFileChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;
            0    2     1   fli  Lsun/nio/ch/FileLockImpl;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      fli   

  <A> java.util.concurrent.Future<java.lang.Integer> implRead(java.nio.ByteBuffer, long, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
    descriptor: (Ljava/nio/ByteBuffer;JLjava/lang/Object;Ljava/nio/channels/CompletionHandler;)Ljava/util/concurrent/Future;
    flags: (0x0000) 
    Code:
      stack=9, locals=11, args_size=5
        start local 0 // sun.nio.ch.WindowsAsynchronousFileChannelImpl this
        start local 1 // java.nio.ByteBuffer dst
        start local 2 // long position
        start local 4 // java.lang.Object attachment
        start local 5 // java.nio.channels.CompletionHandler handler
         0: .line 507
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.reading:Z
            ifne 2
         1: .line 508
            new java.nio.channels.NonReadableChannelException
            dup
            invokespecial java.nio.channels.NonReadableChannelException.<init>:()V
            athrow
         2: .line 509
      StackMap locals:
      StackMap stack:
            lload 2 /* position */
            lconst_0
            lcmp
            ifge 4
         3: .line 510
            new java.lang.IllegalArgumentException
            dup
            ldc "Negative position"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 511
      StackMap locals:
      StackMap stack:
            aload 1 /* dst */
            invokevirtual java.nio.ByteBuffer.isReadOnly:()Z
            ifeq 6
         5: .line 512
            new java.lang.IllegalArgumentException
            dup
            ldc "Read-only buffer"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 515
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.isOpen:()Z
            ifne 12
         7: .line 516
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            astore 6 /* exc */
        start local 6 // java.lang.Throwable exc
         8: .line 517
            aload 5 /* handler */
            ifnonnull 10
         9: .line 518
            aload 6 /* exc */
            invokestatic sun.nio.ch.CompletedFuture.withFailure:(Ljava/lang/Throwable;)Lsun/nio/ch/CompletedFuture;
            areturn
        10: .line 519
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            aload 5 /* handler */
            aload 4 /* attachment */
            aconst_null
            aload 6 /* exc */
            invokestatic sun.nio.ch.Invoker.invoke:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
        11: .line 520
            aconst_null
            areturn
        end local 6 // java.lang.Throwable exc
        12: .line 523
      StackMap locals:
      StackMap stack:
            aload 1 /* dst */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 6 /* pos */
        start local 6 // int pos
        13: .line 524
            aload 1 /* dst */
            invokevirtual java.nio.ByteBuffer.limit:()I
            istore 7 /* lim */
        start local 7 // int lim
        14: .line 525
            getstatic sun.nio.ch.WindowsAsynchronousFileChannelImpl.$assertionsDisabled:Z
            ifne 15
            iload 6 /* pos */
            iload 7 /* lim */
            if_icmple 15
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        15: .line 526
      StackMap locals: int int
      StackMap stack:
            iload 6 /* pos */
            iload 7 /* lim */
            if_icmpgt 16
            iload 7 /* lim */
            iload 6 /* pos */
            isub
            goto 17
      StackMap locals:
      StackMap stack:
        16: iconst_0
      StackMap locals:
      StackMap stack: int
        17: istore 8 /* rem */
        start local 8 // int rem
        18: .line 529
            iload 8 /* rem */
            ifne 23
        19: .line 530
            aload 5 /* handler */
            ifnonnull 21
        20: .line 531
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic sun.nio.ch.CompletedFuture.withResult:(Ljava/lang/Object;)Lsun/nio/ch/CompletedFuture;
            areturn
        21: .line 532
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 5 /* handler */
            aload 4 /* attachment */
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aconst_null
            invokestatic sun.nio.ch.Invoker.invoke:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
        22: .line 533
            aconst_null
            areturn
        23: .line 538
      StackMap locals:
      StackMap stack:
            new sun.nio.ch.PendingFuture
            dup
            aload 0 /* this */
            aload 5 /* handler */
            aload 4 /* attachment */
            invokespecial sun.nio.ch.PendingFuture.<init>:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;)V
        24: .line 537
            astore 9 /* result */
        start local 9 // sun.nio.ch.PendingFuture result
        25: .line 539
            new sun.nio.ch.WindowsAsynchronousFileChannelImpl$ReadTask
            dup
            aload 0 /* this */
            aload 1 /* dst */
            iload 6 /* pos */
            iload 8 /* rem */
            lload 2 /* position */
            aload 9 /* result */
            invokespecial sun.nio.ch.WindowsAsynchronousFileChannelImpl$ReadTask.<init>:(Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;Ljava/nio/ByteBuffer;IIJLsun/nio/ch/PendingFuture;)V
            astore 10 /* readTask */
        start local 10 // sun.nio.ch.WindowsAsynchronousFileChannelImpl$ReadTask readTask
        26: .line 540
            aload 9 /* result */
            aload 10 /* readTask */
            invokevirtual sun.nio.ch.PendingFuture.setContext:(Ljava/lang/Object;)V
        27: .line 543
            aload 10 /* readTask */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl$ReadTask.run:()V
        28: .line 544
            aload 9 /* result */
            areturn
        end local 10 // sun.nio.ch.WindowsAsynchronousFileChannelImpl$ReadTask readTask
        end local 9 // sun.nio.ch.PendingFuture result
        end local 8 // int rem
        end local 7 // int lim
        end local 6 // int pos
        end local 5 // java.nio.channels.CompletionHandler handler
        end local 4 // java.lang.Object attachment
        end local 2 // long position
        end local 1 // java.nio.ByteBuffer dst
        end local 0 // sun.nio.ch.WindowsAsynchronousFileChannelImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   29     0        this  Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;
            0   29     1         dst  Ljava/nio/ByteBuffer;
            0   29     2    position  J
            0   29     4  attachment  TA;
            0   29     5     handler  Ljava/nio/channels/CompletionHandler<Ljava/lang/Integer;-TA;>;
            8   12     6         exc  Ljava/lang/Throwable;
           13   29     6         pos  I
           14   29     7         lim  I
           18   29     8         rem  I
           25   29     9      result  Lsun/nio/ch/PendingFuture<Ljava/lang/Integer;TA;>;
           26   29    10    readTask  Lsun/nio/ch/WindowsAsynchronousFileChannelImpl$ReadTask<TA;>;
    Signature: <A:Ljava/lang/Object;>(Ljava/nio/ByteBuffer;JTA;Ljava/nio/channels/CompletionHandler<Ljava/lang/Integer;-TA;>;)Ljava/util/concurrent/Future<Ljava/lang/Integer;>;
    MethodParameters:
            Name  Flags
      dst         
      position    
      attachment  
      handler     

  <A> java.util.concurrent.Future<java.lang.Integer> implWrite(java.nio.ByteBuffer, long, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
    descriptor: (Ljava/nio/ByteBuffer;JLjava/lang/Object;Ljava/nio/channels/CompletionHandler;)Ljava/util/concurrent/Future;
    flags: (0x0000) 
    Code:
      stack=9, locals=11, args_size=5
        start local 0 // sun.nio.ch.WindowsAsynchronousFileChannelImpl this
        start local 1 // java.nio.ByteBuffer src
        start local 2 // long position
        start local 4 // java.lang.Object attachment
        start local 5 // java.nio.channels.CompletionHandler handler
         0: .line 679
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.writing:Z
            ifne 2
         1: .line 680
            new java.nio.channels.NonWritableChannelException
            dup
            invokespecial java.nio.channels.NonWritableChannelException.<init>:()V
            athrow
         2: .line 681
      StackMap locals:
      StackMap stack:
            lload 2 /* position */
            lconst_0
            lcmp
            ifge 4
         3: .line 682
            new java.lang.IllegalArgumentException
            dup
            ldc "Negative position"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 685
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.isOpen:()Z
            ifne 10
         5: .line 686
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            astore 6 /* exc */
        start local 6 // java.lang.Throwable exc
         6: .line 687
            aload 5 /* handler */
            ifnonnull 8
         7: .line 688
            aload 6 /* exc */
            invokestatic sun.nio.ch.CompletedFuture.withFailure:(Ljava/lang/Throwable;)Lsun/nio/ch/CompletedFuture;
            areturn
         8: .line 689
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            aload 5 /* handler */
            aload 4 /* attachment */
            aconst_null
            aload 6 /* exc */
            invokestatic sun.nio.ch.Invoker.invoke:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
         9: .line 690
            aconst_null
            areturn
        end local 6 // java.lang.Throwable exc
        10: .line 693
      StackMap locals:
      StackMap stack:
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 6 /* pos */
        start local 6 // int pos
        11: .line 694
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.limit:()I
            istore 7 /* lim */
        start local 7 // int lim
        12: .line 695
            getstatic sun.nio.ch.WindowsAsynchronousFileChannelImpl.$assertionsDisabled:Z
            ifne 13
            iload 6 /* pos */
            iload 7 /* lim */
            if_icmple 13
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        13: .line 696
      StackMap locals: int int
      StackMap stack:
            iload 6 /* pos */
            iload 7 /* lim */
            if_icmpgt 14
            iload 7 /* lim */
            iload 6 /* pos */
            isub
            goto 15
      StackMap locals:
      StackMap stack:
        14: iconst_0
      StackMap locals:
      StackMap stack: int
        15: istore 8 /* rem */
        start local 8 // int rem
        16: .line 699
            iload 8 /* rem */
            ifne 21
        17: .line 700
            aload 5 /* handler */
            ifnonnull 19
        18: .line 701
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic sun.nio.ch.CompletedFuture.withResult:(Ljava/lang/Object;)Lsun/nio/ch/CompletedFuture;
            areturn
        19: .line 702
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 5 /* handler */
            aload 4 /* attachment */
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aconst_null
            invokestatic sun.nio.ch.Invoker.invoke:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
        20: .line 703
            aconst_null
            areturn
        21: .line 708
      StackMap locals:
      StackMap stack:
            new sun.nio.ch.PendingFuture
            dup
            aload 0 /* this */
            aload 5 /* handler */
            aload 4 /* attachment */
            invokespecial sun.nio.ch.PendingFuture.<init>:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;)V
        22: .line 707
            astore 9 /* result */
        start local 9 // sun.nio.ch.PendingFuture result
        23: .line 709
            new sun.nio.ch.WindowsAsynchronousFileChannelImpl$WriteTask
            dup
            aload 0 /* this */
            aload 1 /* src */
            iload 6 /* pos */
            iload 8 /* rem */
            lload 2 /* position */
            aload 9 /* result */
            invokespecial sun.nio.ch.WindowsAsynchronousFileChannelImpl$WriteTask.<init>:(Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;Ljava/nio/ByteBuffer;IIJLsun/nio/ch/PendingFuture;)V
            astore 10 /* writeTask */
        start local 10 // sun.nio.ch.WindowsAsynchronousFileChannelImpl$WriteTask writeTask
        24: .line 710
            aload 9 /* result */
            aload 10 /* writeTask */
            invokevirtual sun.nio.ch.PendingFuture.setContext:(Ljava/lang/Object;)V
        25: .line 713
            aload 10 /* writeTask */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl$WriteTask.run:()V
        26: .line 714
            aload 9 /* result */
            areturn
        end local 10 // sun.nio.ch.WindowsAsynchronousFileChannelImpl$WriteTask writeTask
        end local 9 // sun.nio.ch.PendingFuture result
        end local 8 // int rem
        end local 7 // int lim
        end local 6 // int pos
        end local 5 // java.nio.channels.CompletionHandler handler
        end local 4 // java.lang.Object attachment
        end local 2 // long position
        end local 1 // java.nio.ByteBuffer src
        end local 0 // sun.nio.ch.WindowsAsynchronousFileChannelImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   27     0        this  Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;
            0   27     1         src  Ljava/nio/ByteBuffer;
            0   27     2    position  J
            0   27     4  attachment  TA;
            0   27     5     handler  Ljava/nio/channels/CompletionHandler<Ljava/lang/Integer;-TA;>;
            6   10     6         exc  Ljava/lang/Throwable;
           11   27     6         pos  I
           12   27     7         lim  I
           16   27     8         rem  I
           23   27     9      result  Lsun/nio/ch/PendingFuture<Ljava/lang/Integer;TA;>;
           24   27    10   writeTask  Lsun/nio/ch/WindowsAsynchronousFileChannelImpl$WriteTask<TA;>;
    Signature: <A:Ljava/lang/Object;>(Ljava/nio/ByteBuffer;JTA;Ljava/nio/channels/CompletionHandler<Ljava/lang/Integer;-TA;>;)Ljava/util/concurrent/Future<Ljava/lang/Integer;>;
    MethodParameters:
            Name  Flags
      src         
      position    
      attachment  
      handler     

  private static native int readFile(long, long, int, long, long);
    descriptor: (JJIJJ)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      handle      
      address     
      len         
      offset      
      overlapped  

  private static native int writeFile(long, long, int, long, long);
    descriptor: (JJIJJ)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      handle      
      address     
      len         
      offset      
      overlapped  

  private static native int lockFile(long, long, long, boolean, long);
    descriptor: (JJJZJ)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      handle      
      position    
      size        
      shared      
      overlapped  
}
SourceFile: "WindowsAsynchronousFileChannelImpl.java"
NestMembers:
  sun.nio.ch.WindowsAsynchronousFileChannelImpl$DefaultIocpHolder  sun.nio.ch.WindowsAsynchronousFileChannelImpl$LockTask  sun.nio.ch.WindowsAsynchronousFileChannelImpl$ReadTask  sun.nio.ch.WindowsAsynchronousFileChannelImpl$WriteTask
InnerClasses:
  abstract OverlappedChannel = sun.nio.ch.Iocp$OverlappedChannel of sun.nio.ch.Iocp
  private DefaultIocpHolder = sun.nio.ch.WindowsAsynchronousFileChannelImpl$DefaultIocpHolder of sun.nio.ch.WindowsAsynchronousFileChannelImpl
  private LockTask = sun.nio.ch.WindowsAsynchronousFileChannelImpl$LockTask of sun.nio.ch.WindowsAsynchronousFileChannelImpl
  private ReadTask = sun.nio.ch.WindowsAsynchronousFileChannelImpl$ReadTask of sun.nio.ch.WindowsAsynchronousFileChannelImpl
  private WriteTask = sun.nio.ch.WindowsAsynchronousFileChannelImpl$WriteTask of sun.nio.ch.WindowsAsynchronousFileChannelImpl