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 sun.misc.JavaIOFileDescriptorAccess fdAccess;
    descriptor: Lsun/misc/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 sun.misc.SharedSecrets.getJavaIOFileDescriptorAccess:()Lsun/misc/JavaIOFileDescriptorAccess;
         4: .line 45
            putstatic sun.nio.ch.WindowsAsynchronousFileChannelImpl.fdAccess:Lsun/misc/JavaIOFileDescriptorAccess;
         5: .line 66
            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 758
            invokestatic sun.nio.ch.IOUtil.load:()V
         7: .line 759
            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 90
            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 91
            aload 0 /* this */
            getstatic sun.nio.ch.WindowsAsynchronousFileChannelImpl.fdAccess:Lsun/misc/JavaIOFileDescriptorAccess;
            aload 1 /* fdObj */
            invokeinterface sun.misc.JavaIOFileDescriptorAccess.getHandle:(Ljava/io/FileDescriptor;)J
            putfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.handle:J
         2: .line 92
            aload 0 /* this */
            aload 4 /* iocp */
            putfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.iocp:Lsun/nio/ch/Iocp;
         3: .line 93
            aload 0 /* this */
            iload 5 /* isDefaultIocp */
            putfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.isDefaultIocp:Z
         4: .line 94
            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 95
            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 96
            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 106
            aload 3 /* pool */
            ifnonnull 4
         1: .line 107
            getstatic sun.nio.ch.WindowsAsynchronousFileChannelImpl$DefaultIocpHolder.defaultIocp:Lsun/nio/ch/Iocp;
            astore 4 /* iocp */
        start local 4 // sun.nio.ch.Iocp iocp
         2: .line 108
            iconst_1
            istore 5 /* isDefaultIocp */
        start local 5 // boolean isDefaultIocp
         3: .line 109
            goto 6
        end local 5 // boolean isDefaultIocp
        end local 4 // sun.nio.ch.Iocp iocp
         4: .line 110
      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 111
            iconst_0
            istore 5 /* isDefaultIocp */
        start local 5 // boolean isDefaultIocp
         6: .line 115
      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 114
            invokespecial sun.nio.ch.WindowsAsynchronousFileChannelImpl.<init>:(Ljava/io/FileDescriptor;ZZLsun/nio/ch/Iocp;Z)V
         8: areturn
         9: .line 116
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 6 /* x */
        start local 6 // java.io.IOException x
        10: .line 118
            iload 5 /* isDefaultIocp */
            ifne 12
        11: .line 119
            aload 4 /* iocp */
            invokevirtual sun.nio.ch.Iocp.implClose:()V
        12: .line 120
      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 126
            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 131
            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 133
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.closed:Z
            ifeq 4
         2: .line 137
            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 134
            return
         4: .line 135
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.closed:Z
         5: .line 136
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 1
         7: .line 137
            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 138
            aload 1
            athrow
         9: .line 137
      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 141
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.invalidateAllLocks:()V
        11: .line 144
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.handle:J
            invokestatic sun.nio.ch.WindowsAsynchronousFileChannelImpl.close0:(J)V
        12: .line 147
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.ioCache:Lsun/nio/ch/PendingIoCache;
            invokevirtual sun.nio.ch.PendingIoCache.close:()V
        13: .line 150
            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 153
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.isDefaultIocp:Z
            ifne 16
        15: .line 154
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.iocp:Lsun/nio/ch/Iocp;
            invokevirtual sun.nio.ch.Iocp.detachFromThreadPool:()V
        16: .line 155
      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 159
            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 166
            aload 0 /* x */
            instanceof java.io.IOException
            ifeq 4
         1: .line 167
            aload 0 /* x */
            instanceof java.nio.channels.ClosedChannelException
            ifeq 3
         2: .line 168
            new java.nio.channels.AsynchronousCloseException
            dup
            invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
            astore 0 /* x */
         3: .line 169
      StackMap locals:
      StackMap stack:
            aload 0 /* x */
            checkcast java.io.IOException
            areturn
         4: .line 171
      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 177
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.begin:()V
         1: .line 178
            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 180
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.end:()V
         3: .line 178
            lload 2
            lreturn
         4: .line 179
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         5: .line 180
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.end:()V
         6: .line 181
            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 186
            lload 1 /* size */
            lconst_0
            lcmp
            ifge 2
         1: .line 187
            new java.lang.IllegalArgumentException
            dup
            ldc "Negative size"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 188
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.writing:Z
            ifne 4
         3: .line 189
            new java.nio.channels.NonWritableChannelException
            dup
            invokespecial java.nio.channels.NonWritableChannelException.<init>:()V
            athrow
         4: .line 191
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.begin:()V
         5: .line 192
            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 193
            aload 0 /* this */
            astore 4
         7: .line 196
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.end:()V
         8: .line 193
            aload 4
            areturn
         9: .line 194
      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 195
            goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 3
        12: .line 196
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.end:()V
        13: .line 197
            aload 3
            athrow
        14: .line 196
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.end:()V
        15: .line 198
            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=4, locals=3, args_size=2
        start local 0 // sun.nio.ch.WindowsAsynchronousFileChannelImpl this
        start local 1 // boolean metaData
         0: .line 204
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.begin:()V
         1: .line 206
            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 */
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.writing:Z
            invokevirtual sun.nio.ch.FileDispatcher.force:(Ljava/io/FileDescriptor;ZZ)I
            pop
         2: .line 207
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2
         4: .line 208
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.end:()V
         5: .line 209
            aload 2
            athrow
         6: .line 208
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.end:()V
         7: .line 210
            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=13, 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 302
            iload 5 /* shared */
            ifeq 2
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.reading:Z
            ifne 2
         1: .line 303
            new java.nio.channels.NonReadableChannelException
            dup
            invokespecial java.nio.channels.NonReadableChannelException.<init>:()V
            athrow
         2: .line 304
      StackMap locals:
      StackMap stack:
            iload 5 /* shared */
            ifne 4
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.writing:Z
            ifne 4
         3: .line 305
            new java.nio.channels.NonWritableChannelException
            dup
            invokespecial java.nio.channels.NonWritableChannelException.<init>:()V
            athrow
         4: .line 308
      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 309
            aload 8 /* fli */
            ifnonnull 11
         6: .line 310
            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 311
            aload 7 /* handler */
            ifnonnull 9
         8: .line 312
            aload 9 /* exc */
            invokestatic sun.nio.ch.CompletedFuture.withFailure:(Ljava/lang/Throwable;)Lsun/nio/ch/CompletedFuture;
            areturn
         9: .line 313
      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 314
            aconst_null
            areturn
        end local 9 // java.lang.Throwable exc
        11: .line 319
      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 318
            astore 9 /* result */
        start local 9 // sun.nio.ch.PendingFuture result
        13: .line 320
            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 321
            aload 9 /* result */
            aload 10 /* lockTask */
            invokevirtual sun.nio.ch.PendingFuture.setContext:(Ljava/lang/Object;)V
        15: .line 324
            invokestatic sun.nio.ch.Iocp.supportsThreadAgnosticIo:()Z
            ifeq 18
        16: .line 325
            aload 10 /* lockTask */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl$LockTask.run:()V
        17: .line 326
            goto 28
        18: .line 327
      StackMap locals: sun.nio.ch.PendingFuture sun.nio.ch.WindowsAsynchronousFileChannelImpl$LockTask
      StackMap stack:
            iconst_0
            istore 11 /* executed */
        start local 11 // boolean executed
        19: .line 329
            aload 0 /* this */
            aload 10 /* lockTask */
            invokestatic sun.nio.ch.Invoker.invokeOnThreadInThreadPool:(Lsun/nio/ch/Groupable;Ljava/lang/Runnable;)V
        20: .line 330
            iconst_1
            istore 11 /* executed */
        21: .line 331
            goto 26
      StackMap locals: sun.nio.ch.WindowsAsynchronousFileChannelImpl long long int java.lang.Object java.nio.channels.CompletionHandler sun.nio.ch.FileLockImpl sun.nio.ch.PendingFuture sun.nio.ch.WindowsAsynchronousFileChannelImpl$LockTask int
      StackMap stack: java.lang.Throwable
        22: astore 12
        23: .line 332
            iload 11 /* executed */
            ifne 25
        24: .line 334
            aload 0 /* this */
            aload 8 /* fli */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.removeFromFileLockTable:(Lsun/nio/ch/FileLockImpl;)V
        25: .line 336
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 12
            athrow
        26: .line 332
      StackMap locals:
      StackMap stack:
            iload 11 /* executed */
            ifne 28
        27: .line 334
            aload 0 /* this */
            aload 8 /* fli */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.removeFromFileLockTable:(Lsun/nio/ch/FileLockImpl;)V
        end local 11 // boolean executed
        28: .line 338
      StackMap locals:
      StackMap stack:
            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   29     0        this  Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;
            0   29     1    position  J
            0   29     3        size  J
            0   29     5      shared  Z
            0   29     6  attachment  TA;
            0   29     7     handler  Ljava/nio/channels/CompletionHandler<Ljava/nio/channels/FileLock;-TA;>;
            5   29     8         fli  Lsun/nio/ch/FileLockImpl;
            7   11     9         exc  Ljava/lang/Throwable;
           13   29     9      result  Lsun/nio/ch/PendingFuture<Ljava/nio/channels/FileLock;TA;>;
           14   29    10    lockTask  Lsun/nio/ch/WindowsAsynchronousFileChannelImpl$LockTask<TA;>;
           19   28    11    executed  Z
      Exception table:
        from    to  target  type
          19    22      22  any
    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 348
            iload 5 /* shared */
            ifeq 2
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.reading:Z
            ifne 2
         1: .line 349
            new java.nio.channels.NonReadableChannelException
            dup
            invokespecial java.nio.channels.NonReadableChannelException.<init>:()V
            athrow
         2: .line 350
      StackMap locals:
      StackMap stack:
            iload 5 /* shared */
            ifne 4
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.writing:Z
            ifne 4
         3: .line 351
            new java.nio.channels.NonWritableChannelException
            dup
            invokespecial java.nio.channels.NonWritableChannelException.<init>:()V
            athrow
         4: .line 354
      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 355
            aload 6 /* fli */
            ifnonnull 7
         6: .line 356
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            athrow
         7: .line 358
      StackMap locals: sun.nio.ch.FileLockImpl
      StackMap stack:
            iconst_0
            istore 7 /* gotLock */
        start local 7 // boolean gotLock
         8: .line 360
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.begin:()V
         9: .line 362
            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 363
            iload 8 /* res */
            iconst_m1
            if_icmpne 15
        11: .line 368
            iload 7 /* gotLock */
            ifne 13
        12: .line 369
            aload 0 /* this */
            aload 6 /* fli */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.removeFromFileLockTable:(Lsun/nio/ch/FileLockImpl;)V
        13: .line 370
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.end:()V
        14: .line 364
            aconst_null
            areturn
        15: .line 365
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 7 /* gotLock */
        16: .line 366
            aload 6 /* fli */
            astore 10
        17: .line 368
            iload 7 /* gotLock */
            ifne 19
        18: .line 369
            aload 0 /* this */
            aload 6 /* fli */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.removeFromFileLockTable:(Lsun/nio/ch/FileLockImpl;)V
        19: .line 370
      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 366
            aload 10
            areturn
        end local 8 // int res
        21: .line 367
      StackMap locals: sun.nio.ch.WindowsAsynchronousFileChannelImpl long long int sun.nio.ch.FileLockImpl int
      StackMap stack: java.lang.Throwable
            astore 9
        22: .line 368
            iload 7 /* gotLock */
            ifne 24
        23: .line 369
            aload 0 /* this */
            aload 6 /* fli */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.removeFromFileLockTable:(Lsun/nio/ch/FileLockImpl;)V
        24: .line 370
      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 371
            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 376
            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 377
            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 526
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.reading:Z
            ifne 2
         1: .line 527
            new java.nio.channels.NonReadableChannelException
            dup
            invokespecial java.nio.channels.NonReadableChannelException.<init>:()V
            athrow
         2: .line 528
      StackMap locals:
      StackMap stack:
            lload 2 /* position */
            lconst_0
            lcmp
            ifge 4
         3: .line 529
            new java.lang.IllegalArgumentException
            dup
            ldc "Negative position"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 530
      StackMap locals:
      StackMap stack:
            aload 1 /* dst */
            invokevirtual java.nio.ByteBuffer.isReadOnly:()Z
            ifeq 6
         5: .line 531
            new java.lang.IllegalArgumentException
            dup
            ldc "Read-only buffer"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 534
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.isOpen:()Z
            ifne 12
         7: .line 535
            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 536
            aload 5 /* handler */
            ifnonnull 10
         9: .line 537
            aload 6 /* exc */
            invokestatic sun.nio.ch.CompletedFuture.withFailure:(Ljava/lang/Throwable;)Lsun/nio/ch/CompletedFuture;
            areturn
        10: .line 538
      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 539
            aconst_null
            areturn
        end local 6 // java.lang.Throwable exc
        12: .line 542
      StackMap locals:
      StackMap stack:
            aload 1 /* dst */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 6 /* pos */
        start local 6 // int pos
        13: .line 543
            aload 1 /* dst */
            invokevirtual java.nio.ByteBuffer.limit:()I
            istore 7 /* lim */
        start local 7 // int lim
        14: .line 544
            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 545
      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 548
            iload 8 /* rem */
            ifne 23
        19: .line 549
            aload 5 /* handler */
            ifnonnull 21
        20: .line 550
            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 551
      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 552
            aconst_null
            areturn
        23: .line 557
      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 556
            astore 9 /* result */
        start local 9 // sun.nio.ch.PendingFuture result
        25: .line 558
            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 559
            aload 9 /* result */
            aload 10 /* readTask */
            invokevirtual sun.nio.ch.PendingFuture.setContext:(Ljava/lang/Object;)V
        27: .line 562
            invokestatic sun.nio.ch.Iocp.supportsThreadAgnosticIo:()Z
            ifeq 30
        28: .line 563
            aload 10 /* readTask */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl$ReadTask.run:()V
        29: .line 564
            goto 31
        30: .line 565
      StackMap locals: sun.nio.ch.PendingFuture sun.nio.ch.WindowsAsynchronousFileChannelImpl$ReadTask
      StackMap stack:
            aload 0 /* this */
            aload 10 /* readTask */
            invokestatic sun.nio.ch.Invoker.invokeOnThreadInThreadPool:(Lsun/nio/ch/Groupable;Ljava/lang/Runnable;)V
        31: .line 567
      StackMap locals:
      StackMap stack:
            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   32     0        this  Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;
            0   32     1         dst  Ljava/nio/ByteBuffer;
            0   32     2    position  J
            0   32     4  attachment  TA;
            0   32     5     handler  Ljava/nio/channels/CompletionHandler<Ljava/lang/Integer;-TA;>;
            8   12     6         exc  Ljava/lang/Throwable;
           13   32     6         pos  I
           14   32     7         lim  I
           18   32     8         rem  I
           25   32     9      result  Lsun/nio/ch/PendingFuture<Ljava/lang/Integer;TA;>;
           26   32    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 702
            aload 0 /* this */
            getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.writing:Z
            ifne 2
         1: .line 703
            new java.nio.channels.NonWritableChannelException
            dup
            invokespecial java.nio.channels.NonWritableChannelException.<init>:()V
            athrow
         2: .line 704
      StackMap locals:
      StackMap stack:
            lload 2 /* position */
            lconst_0
            lcmp
            ifge 4
         3: .line 705
            new java.lang.IllegalArgumentException
            dup
            ldc "Negative position"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 708
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.isOpen:()Z
            ifne 10
         5: .line 709
            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 710
            aload 5 /* handler */
            ifnonnull 8
         7: .line 711
            aload 6 /* exc */
            invokestatic sun.nio.ch.CompletedFuture.withFailure:(Ljava/lang/Throwable;)Lsun/nio/ch/CompletedFuture;
            areturn
         8: .line 712
      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 713
            aconst_null
            areturn
        end local 6 // java.lang.Throwable exc
        10: .line 716
      StackMap locals:
      StackMap stack:
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 6 /* pos */
        start local 6 // int pos
        11: .line 717
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.limit:()I
            istore 7 /* lim */
        start local 7 // int lim
        12: .line 718
            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 719
      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 722
            iload 8 /* rem */
            ifne 21
        17: .line 723
            aload 5 /* handler */
            ifnonnull 19
        18: .line 724
            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 725
      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 726
            aconst_null
            areturn
        21: .line 731
      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 730
            astore 9 /* result */
        start local 9 // sun.nio.ch.PendingFuture result
        23: .line 732
            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 733
            aload 9 /* result */
            aload 10 /* writeTask */
            invokevirtual sun.nio.ch.PendingFuture.setContext:(Ljava/lang/Object;)V
        25: .line 736
            invokestatic sun.nio.ch.Iocp.supportsThreadAgnosticIo:()Z
            ifeq 28
        26: .line 737
            aload 10 /* writeTask */
            invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl$WriteTask.run:()V
        27: .line 738
            goto 29
        28: .line 739
      StackMap locals: sun.nio.ch.PendingFuture sun.nio.ch.WindowsAsynchronousFileChannelImpl$WriteTask
      StackMap stack:
            aload 0 /* this */
            aload 10 /* writeTask */
            invokestatic sun.nio.ch.Invoker.invokeOnThreadInThreadPool:(Lsun/nio/ch/Groupable;Ljava/lang/Runnable;)V
        29: .line 741
      StackMap locals:
      StackMap stack:
            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   30     0        this  Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;
            0   30     1         src  Ljava/nio/ByteBuffer;
            0   30     2    position  J
            0   30     4  attachment  TA;
            0   30     5     handler  Ljava/nio/channels/CompletionHandler<Ljava/lang/Integer;-TA;>;
            6   10     6         exc  Ljava/lang/Throwable;
           11   30     6         pos  I
           12   30     7         lim  I
           16   30     8         rem  I
           23   30     9      result  Lsun/nio/ch/PendingFuture<Ljava/lang/Integer;TA;>;
           24   30    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  

  private static native void close0(long);
    descriptor: (J)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      handle  
}
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