class jtermios.windows.JTermiosImpl$Port
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: jtermios.windows.JTermiosImpl$Port
  super_class: java.lang.Object
{
  volatile int m_FD;
    descriptor: I
    flags: (0x0040) ACC_VOLATILE

  volatile boolean m_Locked;
    descriptor: Z
    flags: (0x0040) ACC_VOLATILE

  volatile jtermios.windows.WinAPI$HANDLE m_Comm;
    descriptor: Ljtermios/windows/WinAPI$HANDLE;
    flags: (0x0040) ACC_VOLATILE

  volatile int m_OpenFlags;
    descriptor: I
    flags: (0x0040) ACC_VOLATILE

  volatile jtermios.windows.WinAPI$DCB m_DCB;
    descriptor: Ljtermios/windows/WinAPI$DCB;
    flags: (0x0040) ACC_VOLATILE

  volatile jtermios.windows.WinAPI$COMMTIMEOUTS m_Timeouts;
    descriptor: Ljtermios/windows/WinAPI$COMMTIMEOUTS;
    flags: (0x0040) ACC_VOLATILE

  volatile jtermios.windows.WinAPI$COMSTAT m_COMSTAT;
    descriptor: Ljtermios/windows/WinAPI$COMSTAT;
    flags: (0x0040) ACC_VOLATILE

  volatile int[] m_ClearErr;
    descriptor: [I
    flags: (0x0040) ACC_VOLATILE

  volatile com.sun.jna.Memory m_RdBuffer;
    descriptor: Lcom/sun/jna/Memory;
    flags: (0x0040) ACC_VOLATILE

  volatile int[] m_RdErr;
    descriptor: [I
    flags: (0x0040) ACC_VOLATILE

  volatile int[] m_RdN;
    descriptor: [I
    flags: (0x0040) ACC_VOLATILE

  volatile jtermios.windows.WinAPI$OVERLAPPED m_RdOVL;
    descriptor: Ljtermios/windows/WinAPI$OVERLAPPED;
    flags: (0x0040) ACC_VOLATILE

  volatile jtermios.windows.WinAPI$HANDLE m_ReadCancelObject;
    descriptor: Ljtermios/windows/WinAPI$HANDLE;
    flags: (0x0040) ACC_VOLATILE

  volatile jtermios.windows.WinAPI$HANDLE[] m_ReadWaitObjects;
    descriptor: [Ljtermios/windows/WinAPI$HANDLE;
    flags: (0x0040) ACC_VOLATILE

  volatile com.sun.jna.Memory m_WrBuffer;
    descriptor: Lcom/sun/jna/Memory;
    flags: (0x0040) ACC_VOLATILE

  volatile jtermios.windows.WinAPI$COMSTAT m_WrStat;
    descriptor: Ljtermios/windows/WinAPI$COMSTAT;
    flags: (0x0040) ACC_VOLATILE

  volatile int[] m_WrErr;
    descriptor: [I
    flags: (0x0040) ACC_VOLATILE

  volatile int[] m_WrN;
    descriptor: [I
    flags: (0x0040) ACC_VOLATILE

  volatile int m_WritePending;
    descriptor: I
    flags: (0x0040) ACC_VOLATILE

  volatile jtermios.windows.WinAPI$OVERLAPPED m_WrOVL;
    descriptor: Ljtermios/windows/WinAPI$OVERLAPPED;
    flags: (0x0040) ACC_VOLATILE

  volatile jtermios.windows.WinAPI$HANDLE m_WriteCancelObject;
    descriptor: Ljtermios/windows/WinAPI$HANDLE;
    flags: (0x0040) ACC_VOLATILE

  volatile jtermios.windows.WinAPI$HANDLE[] m_WriteWaitObjects;
    descriptor: [Ljtermios/windows/WinAPI$HANDLE;
    flags: (0x0040) ACC_VOLATILE

  volatile boolean m_WaitPending;
    descriptor: Z
    flags: (0x0040) ACC_VOLATILE

  volatile int[] m_SelN;
    descriptor: [I
    flags: (0x0040) ACC_VOLATILE

  volatile jtermios.windows.WinAPI$HANDLE WaitCommEventCancelObject;
    descriptor: Ljtermios/windows/WinAPI$HANDLE;
    flags: (0x0040) ACC_VOLATILE

  volatile jtermios.windows.WinAPI$OVERLAPPED m_SelOVL;
    descriptor: Ljtermios/windows/WinAPI$OVERLAPPED;
    flags: (0x0040) ACC_VOLATILE

  volatile com.sun.jna.ptr.IntByReference m_EventFlags;
    descriptor: Lcom/sun/jna/ptr/IntByReference;
    flags: (0x0040) ACC_VOLATILE

  volatile jtermios.Termios m_Termios;
    descriptor: Ljtermios/Termios;
    flags: (0x0040) ACC_VOLATILE

  volatile int MSR;
    descriptor: I
    flags: (0x0040) ACC_VOLATILE

  volatile int m_VTIME;
    descriptor: I
    flags: (0x0040) ACC_VOLATILE

  volatile int m_VMIN;
    descriptor: I
    flags: (0x0040) ACC_VOLATILE

  volatile int m_c_speed;
    descriptor: I
    flags: (0x0040) ACC_VOLATILE

  volatile int m_c_cflag;
    descriptor: I
    flags: (0x0040) ACC_VOLATILE

  volatile int m_c_iflag;
    descriptor: I
    flags: (0x0040) ACC_VOLATILE

  volatile int m_c_oflag;
    descriptor: I
    flags: (0x0040) ACC_VOLATILE

  final jtermios.windows.JTermiosImpl this$0;
    descriptor: Ljtermios/windows/JTermiosImpl;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private void <init>(jtermios.windows.JTermiosImpl);
    descriptor: (Ljtermios/windows/JTermiosImpl;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // jtermios.windows.JTermiosImpl$Port this
         0: .line 53
            aload 0 /* this */
            aload 1
            putfield jtermios.windows.JTermiosImpl$Port.this$0:Ljtermios/windows/JTermiosImpl;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 54
            aload 0 /* this */
            iconst_m1
            putfield jtermios.windows.JTermiosImpl$Port.m_FD:I
         2: .line 58
            aload 0 /* this */
            new jtermios.windows.WinAPI$DCB
            dup
            invokespecial jtermios.windows.WinAPI$DCB.<init>:()V
            putfield jtermios.windows.JTermiosImpl$Port.m_DCB:Ljtermios/windows/WinAPI$DCB;
         3: .line 59
            aload 0 /* this */
            new jtermios.windows.WinAPI$COMMTIMEOUTS
            dup
            invokespecial jtermios.windows.WinAPI$COMMTIMEOUTS.<init>:()V
            putfield jtermios.windows.JTermiosImpl$Port.m_Timeouts:Ljtermios/windows/WinAPI$COMMTIMEOUTS;
         4: .line 60
            aload 0 /* this */
            new jtermios.windows.WinAPI$COMSTAT
            dup
            invokespecial jtermios.windows.WinAPI$COMSTAT.<init>:()V
            putfield jtermios.windows.JTermiosImpl$Port.m_COMSTAT:Ljtermios/windows/WinAPI$COMSTAT;
         5: .line 61
            aload 0 /* this */
            iconst_1
            newarray 10
            putfield jtermios.windows.JTermiosImpl$Port.m_ClearErr:[I
         6: .line 62
            aload 0 /* this */
            new com.sun.jna.Memory
            dup
            ldc 2048
            invokespecial com.sun.jna.Memory.<init>:(J)V
            putfield jtermios.windows.JTermiosImpl$Port.m_RdBuffer:Lcom/sun/jna/Memory;
         7: .line 63
            aload 0 /* this */
            iconst_1
            newarray 10
            putfield jtermios.windows.JTermiosImpl$Port.m_RdErr:[I
         8: .line 64
            aload 0 /* this */
            iconst_1
            newarray 10
            putfield jtermios.windows.JTermiosImpl$Port.m_RdN:[I
         9: .line 65
            aload 0 /* this */
            new jtermios.windows.WinAPI$OVERLAPPED
            dup
            invokespecial jtermios.windows.WinAPI$OVERLAPPED.<init>:()V
            putfield jtermios.windows.JTermiosImpl$Port.m_RdOVL:Ljtermios/windows/WinAPI$OVERLAPPED;
        10: .line 67
            aload 0 /* this */
            iconst_2
            anewarray jtermios.windows.WinAPI$HANDLE
            putfield jtermios.windows.JTermiosImpl$Port.m_ReadWaitObjects:[Ljtermios/windows/WinAPI$HANDLE;
        11: .line 68
            aload 0 /* this */
            new com.sun.jna.Memory
            dup
            ldc 2048
            invokespecial com.sun.jna.Memory.<init>:(J)V
            putfield jtermios.windows.JTermiosImpl$Port.m_WrBuffer:Lcom/sun/jna/Memory;
        12: .line 69
            aload 0 /* this */
            new jtermios.windows.WinAPI$COMSTAT
            dup
            invokespecial jtermios.windows.WinAPI$COMSTAT.<init>:()V
            putfield jtermios.windows.JTermiosImpl$Port.m_WrStat:Ljtermios/windows/WinAPI$COMSTAT;
        13: .line 70
            aload 0 /* this */
            iconst_1
            newarray 10
            putfield jtermios.windows.JTermiosImpl$Port.m_WrErr:[I
        14: .line 71
            aload 0 /* this */
            iconst_1
            newarray 10
            putfield jtermios.windows.JTermiosImpl$Port.m_WrN:[I
        15: .line 73
            aload 0 /* this */
            new jtermios.windows.WinAPI$OVERLAPPED
            dup
            invokespecial jtermios.windows.WinAPI$OVERLAPPED.<init>:()V
            putfield jtermios.windows.JTermiosImpl$Port.m_WrOVL:Ljtermios/windows/WinAPI$OVERLAPPED;
        16: .line 75
            aload 0 /* this */
            iconst_2
            anewarray jtermios.windows.WinAPI$HANDLE
            putfield jtermios.windows.JTermiosImpl$Port.m_WriteWaitObjects:[Ljtermios/windows/WinAPI$HANDLE;
        17: .line 77
            aload 0 /* this */
            iconst_1
            newarray 10
            putfield jtermios.windows.JTermiosImpl$Port.m_SelN:[I
        18: .line 79
            aload 0 /* this */
            new jtermios.windows.WinAPI$OVERLAPPED
            dup
            invokespecial jtermios.windows.WinAPI$OVERLAPPED.<init>:()V
            putfield jtermios.windows.JTermiosImpl$Port.m_SelOVL:Ljtermios/windows/WinAPI$OVERLAPPED;
        19: .line 80
            aload 0 /* this */
            new com.sun.jna.ptr.IntByReference
            dup
            invokespecial com.sun.jna.ptr.IntByReference.<init>:()V
            putfield jtermios.windows.JTermiosImpl$Port.m_EventFlags:Lcom/sun/jna/ptr/IntByReference;
        20: .line 81
            aload 0 /* this */
            new jtermios.Termios
            dup
            invokespecial jtermios.Termios.<init>:()V
            putfield jtermios.windows.JTermiosImpl$Port.m_Termios:Ljtermios/Termios;
        21: .line 84
            aload 0 /* this */
            iconst_m1
            putfield jtermios.windows.JTermiosImpl$Port.m_VTIME:I
        22: .line 85
            aload 0 /* this */
            iconst_m1
            putfield jtermios.windows.JTermiosImpl$Port.m_VMIN:I
        23: .line 86
            aload 0 /* this */
            iconst_m1
            putfield jtermios.windows.JTermiosImpl$Port.m_c_speed:I
        24: .line 87
            aload 0 /* this */
            iconst_m1
            putfield jtermios.windows.JTermiosImpl$Port.m_c_cflag:I
        25: .line 88
            aload 0 /* this */
            iconst_m1
            putfield jtermios.windows.JTermiosImpl$Port.m_c_iflag:I
        26: .line 89
            aload 0 /* this */
            iconst_m1
            putfield jtermios.windows.JTermiosImpl$Port.m_c_oflag:I
        27: .line 53
            return
        end local 0 // jtermios.windows.JTermiosImpl$Port this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   28     0  this  Ljtermios/windows/JTermiosImpl$Port;
    MethodParameters:
        Name  Flags
      this$0  final

  public synchronized void fail();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=8, locals=4, args_size=1
        start local 0 // jtermios.windows.JTermiosImpl$Port this
         0: .line 92
            invokestatic jtermios.windows.WinAPI.GetLastError:()I
            istore 1 /* err */
        start local 1 // int err
         1: .line 93
            new com.sun.jna.Memory
            dup
            ldc 2048
            invokespecial com.sun.jna.Memory.<init>:(J)V
            astore 2 /* buffer */
        start local 2 // com.sun.jna.Memory buffer
         2: .line 94
            sipush 4608
            aconst_null
            iload 1 /* err */
            iconst_0
            iconst_1
            invokestatic jtermios.windows.WinAPI.MAKELANGID:(II)I
            aload 2 /* buffer */
            aload 2 /* buffer */
            invokevirtual com.sun.jna.Memory.size:()J
            l2i
            aconst_null
            invokestatic jtermios.windows.WinAPI.FormatMessageW:(ILcom/sun/jna/Pointer;IILcom/sun/jna/Pointer;ILcom/sun/jna/Pointer;)I
            pop
         3: .line 96
            getstatic jtermios.JTermios$JTermiosLogging.log:Z
            ifeq 4
            iconst_1
            ldc "fail() %s, Windows GetLastError()= %d, %s\n"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            iconst_1
            invokestatic jtermios.JTermios$JTermiosLogging.lineno:(I)Ljava/lang/String;
            aastore
            dup
            iconst_1
            iload 1 /* err */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 2 /* buffer */
            lconst_0
            invokevirtual com.sun.jna.Memory.getWideString:(J)Ljava/lang/String;
            aastore
            invokestatic jtermios.JTermios$JTermiosLogging.log:(ILjava/lang/String;[Ljava/lang/Object;)Z
            ifeq 4
            iconst_1
            goto 5
      StackMap locals: int com.sun.jna.Memory
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: putstatic jtermios.JTermios$JTermiosLogging.log:Z
         6: .line 100
            new jtermios.windows.JTermiosImpl$Fail
            dup
            invokespecial jtermios.windows.JTermiosImpl$Fail.<init>:()V
            astore 3 /* f */
        start local 3 // jtermios.windows.JTermiosImpl$Fail f
         7: .line 101
            aload 3 /* f */
            athrow
        end local 3 // jtermios.windows.JTermiosImpl$Fail f
        end local 2 // com.sun.jna.Memory buffer
        end local 1 // int err
        end local 0 // jtermios.windows.JTermiosImpl$Port this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Ljtermios/windows/JTermiosImpl$Port;
            1    8     1     err  I
            2    8     2  buffer  Lcom/sun/jna/Memory;
            7    8     3       f  Ljtermios/windows/JTermiosImpl$Fail;
    Exceptions:
      throws jtermios.windows.JTermiosImpl$Fail

  public synchronized void lock();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jtermios.windows.JTermiosImpl$Port this
         0: .line 105
            goto 2
         1: .line 106
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Object.wait:()V
         2: .line 105
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_Locked:Z
            ifne 1
         3: .line 107
            aload 0 /* this */
            iconst_1
            putfield jtermios.windows.JTermiosImpl$Port.m_Locked:Z
         4: .line 108
            return
        end local 0 // jtermios.windows.JTermiosImpl$Port this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljtermios/windows/JTermiosImpl$Port;
    Exceptions:
      throws java.lang.InterruptedException

  public synchronized void unlock();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jtermios.windows.JTermiosImpl$Port this
         0: .line 111
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_Locked:Z
            ifne 2
         1: .line 112
            new java.lang.IllegalArgumentException
            dup
            ldc "Port was not locked"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 113
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield jtermios.windows.JTermiosImpl$Port.m_Locked:Z
         3: .line 114
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
         4: .line 115
            return
        end local 0 // jtermios.windows.JTermiosImpl$Port this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljtermios/windows/JTermiosImpl$Port;

  public synchronized void waitUnlock();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jtermios.windows.JTermiosImpl$Port this
         0: .line 118
            goto 4
         1: .line 120
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Object.wait:()V
         2: .line 121
            goto 4
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
         3: pop
         4: .line 118
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_Locked:Z
            ifne 1
         5: .line 125
            return
        end local 0 // jtermios.windows.JTermiosImpl$Port this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljtermios/windows/JTermiosImpl$Port;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.InterruptedException

  public void open(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=5, args_size=3
        start local 0 // jtermios.windows.JTermiosImpl$Port this
        start local 1 // java.lang.String filename
        start local 2 // int flags
         0: .line 128
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.this$0:Ljtermios/windows/JTermiosImpl;
            dup
            astore 3
            monitorenter
         1: .line 129
            aload 0 /* this */
            iconst_m1
            putfield jtermios.windows.JTermiosImpl$Port.m_FD:I
         2: .line 130
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 48
         4: .line 131
      StackMap locals: jtermios.windows.JTermiosImpl int
      StackMap stack:
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.this$0:Ljtermios/windows/JTermiosImpl;
            getfield jtermios.windows.JTermiosImpl.m_PortFDs:[Z
            iload 4 /* i */
            baload
            ifne 47
         5: .line 132
            aload 0 /* this */
            iload 4 /* i */
            putfield jtermios.windows.JTermiosImpl$Port.m_FD:I
         6: .line 133
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.this$0:Ljtermios/windows/JTermiosImpl;
            getfield jtermios.windows.JTermiosImpl.m_PortFDs:[Z
            iload 4 /* i */
            iconst_1
            bastore
         7: .line 134
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.this$0:Ljtermios/windows/JTermiosImpl;
            getfield jtermios.windows.JTermiosImpl.m_OpenPorts:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_FD:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 0 /* this */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 135
            aload 0 /* this */
            iload 2 /* flags */
            putfield jtermios.windows.JTermiosImpl$Port.m_OpenFlags:I
         9: .line 137
            aload 1 /* filename */
            ldc "\\\\"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 11
        10: .line 138
            new java.lang.StringBuilder
            dup
            ldc "\\\\.\\"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* filename */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* filename */
        11: .line 140
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* filename */
            ldc -1073741824
            iconst_0
            aconst_null
            iconst_3
            ldc 1073741824
            aconst_null
            invokestatic jtermios.windows.WinAPI.CreateFile:(Ljava/lang/String;IILjtermios/windows/WinAPI$SECURITY_ATTRIBUTES;IILcom/sun/jna/Pointer;)Ljtermios/windows/WinAPI$HANDLE;
            putfield jtermios.windows.JTermiosImpl$Port.m_Comm:Ljtermios/windows/WinAPI$HANDLE;
        12: .line 142
            getstatic jtermios.windows.WinAPI.INVALID_HANDLE_VALUE:Ljtermios/windows/WinAPI$HANDLE;
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_Comm:Ljtermios/windows/WinAPI$HANDLE;
            if_acmpne 17
        13: .line 143
            invokestatic jtermios.windows.WinAPI.GetLastError:()I
            iconst_2
            if_icmpne 15
        14: .line 144
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.this$0:Ljtermios/windows/JTermiosImpl;
            getstatic jtermios.JTermios.ENOENT:I
            putfield jtermios.windows.JTermiosImpl.m_ErrNo:I
            goto 16
        15: .line 146
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.this$0:Ljtermios/windows/JTermiosImpl;
            getstatic jtermios.JTermios.EBUSY:I
            putfield jtermios.windows.JTermiosImpl.m_ErrNo:I
        16: .line 147
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jtermios.windows.JTermiosImpl$Port.fail:()V
        17: .line 150
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_Comm:Ljtermios/windows/WinAPI$HANDLE;
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_RdBuffer:Lcom/sun/jna/Memory;
            invokevirtual com.sun.jna.Memory.size:()J
            l2i
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_WrBuffer:Lcom/sun/jna/Memory;
            invokevirtual com.sun.jna.Memory.size:()J
            l2i
            invokestatic jtermios.windows.WinAPI.SetupComm:(Ljtermios/windows/WinAPI$HANDLE;II)Z
            ifne 19
        18: .line 151
            aload 0 /* this */
            invokevirtual jtermios.windows.JTermiosImpl$Port.fail:()V
        19: .line 153
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.this$0:Ljtermios/windows/JTermiosImpl;
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_Termios:Ljtermios/Termios;
            invokevirtual jtermios.windows.JTermiosImpl.cfmakeraw:(Ljtermios/Termios;)V
        20: .line 154
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.this$0:Ljtermios/windows/JTermiosImpl;
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_Termios:Ljtermios/Termios;
            getstatic jtermios.JTermios.B9600:I
            invokevirtual jtermios.windows.JTermiosImpl.cfsetispeed:(Ljtermios/Termios;I)I
            pop
        21: .line 155
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.this$0:Ljtermios/windows/JTermiosImpl;
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_Termios:Ljtermios/Termios;
            getstatic jtermios.JTermios.B9600:I
            invokevirtual jtermios.windows.JTermiosImpl.cfsetospeed:(Ljtermios/Termios;I)I
            pop
        22: .line 156
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_Termios:Ljtermios/Termios;
            getfield jtermios.Termios.c_cc:[B
            getstatic jtermios.JTermios.VTIME:I
            iconst_0
            bastore
        23: .line 157
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_Termios:Ljtermios/Termios;
            getfield jtermios.Termios.c_cc:[B
            getstatic jtermios.JTermios.VMIN:I
            iconst_0
            bastore
        24: .line 158
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.this$0:Ljtermios/windows/JTermiosImpl;
            aload 0 /* this */
            invokevirtual jtermios.windows.JTermiosImpl.updateFromTermios:(Ljtermios/windows/JTermiosImpl$Port;)I
            pop
        25: .line 160
            aload 0 /* this */
            aconst_null
            iconst_0
            iconst_0
            aconst_null
            invokestatic jtermios.windows.WinAPI.CreateEvent:(Ljtermios/windows/WinAPI$SECURITY_ATTRIBUTES;ZZLjava/lang/String;)Ljtermios/windows/WinAPI$HANDLE;
            putfield jtermios.windows.JTermiosImpl$Port.WaitCommEventCancelObject:Ljtermios/windows/WinAPI$HANDLE;
        26: .line 161
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.WaitCommEventCancelObject:Ljtermios/windows/WinAPI$HANDLE;
            getstatic jtermios.windows.WinAPI.INVALID_HANDLE_VALUE:Ljtermios/windows/WinAPI$HANDLE;
            if_acmpne 28
        27: .line 162
            aload 0 /* this */
            invokevirtual jtermios.windows.JTermiosImpl$Port.fail:()V
        28: .line 164
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            iconst_1
            iconst_0
            aconst_null
            invokestatic jtermios.windows.WinAPI.CreateEvent:(Ljtermios/windows/WinAPI$SECURITY_ATTRIBUTES;ZZLjava/lang/String;)Ljtermios/windows/WinAPI$HANDLE;
            putfield jtermios.windows.JTermiosImpl$Port.m_ReadCancelObject:Ljtermios/windows/WinAPI$HANDLE;
        29: .line 165
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_ReadCancelObject:Ljtermios/windows/WinAPI$HANDLE;
            getstatic jtermios.windows.WinAPI.INVALID_HANDLE_VALUE:Ljtermios/windows/WinAPI$HANDLE;
            if_acmpne 31
        30: .line 166
            aload 0 /* this */
            invokevirtual jtermios.windows.JTermiosImpl$Port.fail:()V
        31: .line 167
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_ReadWaitObjects:[Ljtermios/windows/WinAPI$HANDLE;
            iconst_1
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_ReadCancelObject:Ljtermios/windows/WinAPI$HANDLE;
            aastore
        32: .line 169
            aload 0 /* this */
            aconst_null
            iconst_1
            iconst_0
            aconst_null
            invokestatic jtermios.windows.WinAPI.CreateEvent:(Ljtermios/windows/WinAPI$SECURITY_ATTRIBUTES;ZZLjava/lang/String;)Ljtermios/windows/WinAPI$HANDLE;
            putfield jtermios.windows.JTermiosImpl$Port.m_WriteCancelObject:Ljtermios/windows/WinAPI$HANDLE;
        33: .line 170
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_WriteCancelObject:Ljtermios/windows/WinAPI$HANDLE;
            getstatic jtermios.windows.WinAPI.INVALID_HANDLE_VALUE:Ljtermios/windows/WinAPI$HANDLE;
            if_acmpne 35
        34: .line 171
            aload 0 /* this */
            invokevirtual jtermios.windows.JTermiosImpl$Port.fail:()V
        35: .line 172
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_WriteWaitObjects:[Ljtermios/windows/WinAPI$HANDLE;
            iconst_1
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_WriteCancelObject:Ljtermios/windows/WinAPI$HANDLE;
            aastore
        36: .line 174
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_RdOVL:Ljtermios/windows/WinAPI$OVERLAPPED;
            ldc "hEvent"
            aconst_null
            iconst_1
            iconst_0
            aconst_null
            invokestatic jtermios.windows.WinAPI.CreateEvent:(Ljtermios/windows/WinAPI$SECURITY_ATTRIBUTES;ZZLjava/lang/String;)Ljtermios/windows/WinAPI$HANDLE;
            invokevirtual jtermios.windows.WinAPI$OVERLAPPED.writeField:(Ljava/lang/String;Ljava/lang/Object;)V
        37: .line 175
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_RdOVL:Ljtermios/windows/WinAPI$OVERLAPPED;
            getfield jtermios.windows.WinAPI$OVERLAPPED.hEvent:Ljtermios/windows/WinAPI$HANDLE;
            getstatic jtermios.windows.WinAPI.INVALID_HANDLE_VALUE:Ljtermios/windows/WinAPI$HANDLE;
            if_acmpne 39
        38: .line 176
            aload 0 /* this */
            invokevirtual jtermios.windows.JTermiosImpl$Port.fail:()V
        39: .line 178
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_WrOVL:Ljtermios/windows/WinAPI$OVERLAPPED;
            ldc "hEvent"
            aconst_null
            iconst_1
            iconst_0
            aconst_null
            invokestatic jtermios.windows.WinAPI.CreateEvent:(Ljtermios/windows/WinAPI$SECURITY_ATTRIBUTES;ZZLjava/lang/String;)Ljtermios/windows/WinAPI$HANDLE;
            invokevirtual jtermios.windows.WinAPI$OVERLAPPED.writeField:(Ljava/lang/String;Ljava/lang/Object;)V
        40: .line 179
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_WrOVL:Ljtermios/windows/WinAPI$OVERLAPPED;
            getfield jtermios.windows.WinAPI$OVERLAPPED.hEvent:Ljtermios/windows/WinAPI$HANDLE;
            getstatic jtermios.windows.WinAPI.INVALID_HANDLE_VALUE:Ljtermios/windows/WinAPI$HANDLE;
            if_acmpne 42
        41: .line 180
            aload 0 /* this */
            invokevirtual jtermios.windows.JTermiosImpl$Port.fail:()V
        42: .line 182
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_SelOVL:Ljtermios/windows/WinAPI$OVERLAPPED;
            ldc "hEvent"
            aconst_null
            iconst_1
            iconst_0
            aconst_null
            invokestatic jtermios.windows.WinAPI.CreateEvent:(Ljtermios/windows/WinAPI$SECURITY_ATTRIBUTES;ZZLjava/lang/String;)Ljtermios/windows/WinAPI$HANDLE;
            invokevirtual jtermios.windows.WinAPI$OVERLAPPED.writeField:(Ljava/lang/String;Ljava/lang/Object;)V
        43: .line 183
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_SelOVL:Ljtermios/windows/WinAPI$OVERLAPPED;
            getfield jtermios.windows.WinAPI$OVERLAPPED.hEvent:Ljtermios/windows/WinAPI$HANDLE;
            getstatic jtermios.windows.WinAPI.INVALID_HANDLE_VALUE:Ljtermios/windows/WinAPI$HANDLE;
            if_acmpne 45
        44: .line 184
            aload 0 /* this */
            invokevirtual jtermios.windows.JTermiosImpl$Port.fail:()V
        45: .line 185
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        46: return
        47: .line 130
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        48: iload 4 /* i */
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.this$0:Ljtermios/windows/JTermiosImpl;
            getfield jtermios.windows.JTermiosImpl.m_PortFDs:[Z
            arraylength
            if_icmplt 4
        end local 4 // int i
        49: .line 189
            new java.lang.RuntimeException
            dup
            ldc "Too many ports open"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        50: .line 128
      StackMap locals: jtermios.windows.JTermiosImpl$Port java.lang.String int jtermios.windows.JTermiosImpl
      StackMap stack: java.lang.Throwable
            aload 3
            monitorexit
        51: athrow
        end local 2 // int flags
        end local 1 // java.lang.String filename
        end local 0 // jtermios.windows.JTermiosImpl$Port this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   52     0      this  Ljtermios/windows/JTermiosImpl$Port;
            0   52     1  filename  Ljava/lang/String;
            0   52     2     flags  I
            3   49     4         i  I
      Exception table:
        from    to  target  type
           1    46      50  any
          47    51      50  any
    Exceptions:
      throws jtermios.windows.JTermiosImpl$Fail
    MethodParameters:
          Name  Flags
      filename  
      flags     

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // jtermios.windows.JTermiosImpl$Port this
         0: .line 194
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.this$0:Ljtermios/windows/JTermiosImpl;
            dup
            astore 1
            monitorenter
         1: .line 195
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_FD:I
            iflt 5
         2: .line 196
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.this$0:Ljtermios/windows/JTermiosImpl;
            getfield jtermios.windows.JTermiosImpl.m_OpenPorts:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_FD:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 197
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.this$0:Ljtermios/windows/JTermiosImpl;
            getfield jtermios.windows.JTermiosImpl.m_PortFDs:[Z
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_FD:I
            iconst_0
            bastore
         4: .line 198
            aload 0 /* this */
            iconst_m1
            putfield jtermios.windows.JTermiosImpl$Port.m_FD:I
         5: .line 203
      StackMap locals: jtermios.windows.JTermiosImpl
      StackMap stack:
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_ReadCancelObject:Ljtermios/windows/WinAPI$HANDLE;
            ifnull 7
         6: .line 204
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_ReadCancelObject:Ljtermios/windows/WinAPI$HANDLE;
            invokestatic jtermios.windows.WinAPI.SetEvent:(Ljtermios/windows/WinAPI$HANDLE;)Z
            pop
         7: .line 205
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_RdBuffer:Lcom/sun/jna/Memory;
            dup
            astore 3
            monitorenter
         8: .line 206
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_RdOVL:Ljtermios/windows/WinAPI$OVERLAPPED;
            ldc "hEvent"
            invokevirtual jtermios.windows.WinAPI$OVERLAPPED.readField:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast jtermios.windows.WinAPI$HANDLE
            astore 2 /* h */
        start local 2 // jtermios.windows.WinAPI$HANDLE h
         9: .line 207
            aload 0 /* this */
            aconst_null
            putfield jtermios.windows.JTermiosImpl$Port.m_RdOVL:Ljtermios/windows/WinAPI$OVERLAPPED;
        10: .line 208
            aload 2 /* h */
            ifnull 12
            aload 2 /* h */
            getstatic jtermios.windows.WinAPI.NULL:Ljtermios/windows/WinAPI$HANDLE;
            invokevirtual jtermios.windows.WinAPI$HANDLE.equals:(Ljava/lang/Object;)Z
            ifne 12
            aload 2 /* h */
            getstatic jtermios.windows.WinAPI.INVALID_HANDLE_VALUE:Ljtermios/windows/WinAPI$HANDLE;
            invokevirtual jtermios.windows.WinAPI$HANDLE.equals:(Ljava/lang/Object;)Z
            ifne 12
        11: .line 209
            aload 2 /* h */
            invokestatic jtermios.windows.WinAPI.CloseHandle:(Ljtermios/windows/WinAPI$HANDLE;)Z
            pop
        12: .line 211
      StackMap locals: jtermios.windows.WinAPI$HANDLE com.sun.jna.Memory
      StackMap stack:
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_ReadCancelObject:Ljtermios/windows/WinAPI$HANDLE;
            ifnull 14
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_ReadCancelObject:Ljtermios/windows/WinAPI$HANDLE;
            getstatic jtermios.windows.WinAPI.NULL:Ljtermios/windows/WinAPI$HANDLE;
            if_acmpeq 14
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_ReadCancelObject:Ljtermios/windows/WinAPI$HANDLE;
            getstatic jtermios.windows.WinAPI.INVALID_HANDLE_VALUE:Ljtermios/windows/WinAPI$HANDLE;
            if_acmpeq 14
        13: .line 212
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_ReadCancelObject:Ljtermios/windows/WinAPI$HANDLE;
            invokestatic jtermios.windows.WinAPI.CloseHandle:(Ljtermios/windows/WinAPI$HANDLE;)Z
            pop
        14: .line 213
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield jtermios.windows.JTermiosImpl$Port.m_ReadCancelObject:Ljtermios/windows/WinAPI$HANDLE;
        15: .line 205
            aload 3
            monitorexit
        16: goto 19
        end local 2 // jtermios.windows.WinAPI$HANDLE h
      StackMap locals: jtermios.windows.JTermiosImpl$Port jtermios.windows.JTermiosImpl top com.sun.jna.Memory
      StackMap stack: java.lang.Throwable
        17: aload 3
            monitorexit
        18: athrow
        start local 2 // jtermios.windows.WinAPI$HANDLE h
        19: .line 216
      StackMap locals: jtermios.windows.JTermiosImpl$Port jtermios.windows.JTermiosImpl jtermios.windows.WinAPI$HANDLE
      StackMap stack:
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_WriteCancelObject:Ljtermios/windows/WinAPI$HANDLE;
            ifnull 21
        20: .line 217
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_WriteCancelObject:Ljtermios/windows/WinAPI$HANDLE;
            invokestatic jtermios.windows.WinAPI.SetEvent:(Ljtermios/windows/WinAPI$HANDLE;)Z
            pop
        21: .line 218
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_WrBuffer:Lcom/sun/jna/Memory;
            dup
            astore 3
            monitorenter
        22: .line 219
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_WrOVL:Ljtermios/windows/WinAPI$OVERLAPPED;
            ldc "hEvent"
            invokevirtual jtermios.windows.WinAPI$OVERLAPPED.readField:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast jtermios.windows.WinAPI$HANDLE
            astore 2 /* h */
        23: .line 220
            aload 0 /* this */
            aconst_null
            putfield jtermios.windows.JTermiosImpl$Port.m_WrOVL:Ljtermios/windows/WinAPI$OVERLAPPED;
        24: .line 222
            aload 2 /* h */
            ifnull 26
            aload 2 /* h */
            getstatic jtermios.windows.WinAPI.NULL:Ljtermios/windows/WinAPI$HANDLE;
            invokevirtual jtermios.windows.WinAPI$HANDLE.equals:(Ljava/lang/Object;)Z
            ifne 26
            aload 2 /* h */
            getstatic jtermios.windows.WinAPI.INVALID_HANDLE_VALUE:Ljtermios/windows/WinAPI$HANDLE;
            invokevirtual jtermios.windows.WinAPI$HANDLE.equals:(Ljava/lang/Object;)Z
            ifne 26
        25: .line 223
            aload 2 /* h */
            invokestatic jtermios.windows.WinAPI.CloseHandle:(Ljtermios/windows/WinAPI$HANDLE;)Z
            pop
        26: .line 225
      StackMap locals: com.sun.jna.Memory
      StackMap stack:
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_WriteCancelObject:Ljtermios/windows/WinAPI$HANDLE;
            ifnull 28
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_WriteCancelObject:Ljtermios/windows/WinAPI$HANDLE;
            getstatic jtermios.windows.WinAPI.NULL:Ljtermios/windows/WinAPI$HANDLE;
            if_acmpeq 28
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_WriteCancelObject:Ljtermios/windows/WinAPI$HANDLE;
            getstatic jtermios.windows.WinAPI.INVALID_HANDLE_VALUE:Ljtermios/windows/WinAPI$HANDLE;
            if_acmpeq 28
        27: .line 226
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_WriteCancelObject:Ljtermios/windows/WinAPI$HANDLE;
            invokestatic jtermios.windows.WinAPI.CloseHandle:(Ljtermios/windows/WinAPI$HANDLE;)Z
            pop
        28: .line 227
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield jtermios.windows.JTermiosImpl$Port.m_ReadCancelObject:Ljtermios/windows/WinAPI$HANDLE;
        29: .line 218
            aload 3
            monitorexit
        30: goto 33
      StackMap locals:
      StackMap stack: java.lang.Throwable
        31: aload 3
            monitorexit
        32: athrow
        33: .line 230
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.WaitCommEventCancelObject:Ljtermios/windows/WinAPI$HANDLE;
            ifnull 35
        34: .line 231
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.WaitCommEventCancelObject:Ljtermios/windows/WinAPI$HANDLE;
            invokestatic jtermios.windows.WinAPI.SetEvent:(Ljtermios/windows/WinAPI$HANDLE;)Z
            pop
        35: .line 232
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jtermios.windows.JTermiosImpl$Port.waitUnlock:()V
        36: .line 233
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.WaitCommEventCancelObject:Ljtermios/windows/WinAPI$HANDLE;
            ifnull 38
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.WaitCommEventCancelObject:Ljtermios/windows/WinAPI$HANDLE;
            getstatic jtermios.windows.WinAPI.NULL:Ljtermios/windows/WinAPI$HANDLE;
            if_acmpeq 38
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.WaitCommEventCancelObject:Ljtermios/windows/WinAPI$HANDLE;
            getstatic jtermios.windows.WinAPI.INVALID_HANDLE_VALUE:Ljtermios/windows/WinAPI$HANDLE;
            if_acmpeq 38
        37: .line 234
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.WaitCommEventCancelObject:Ljtermios/windows/WinAPI$HANDLE;
            invokestatic jtermios.windows.WinAPI.CloseHandle:(Ljtermios/windows/WinAPI$HANDLE;)Z
            pop
        38: .line 235
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield jtermios.windows.JTermiosImpl$Port.WaitCommEventCancelObject:Ljtermios/windows/WinAPI$HANDLE;
        39: .line 237
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_SelOVL:Ljtermios/windows/WinAPI$OVERLAPPED;
            ldc "hEvent"
            invokevirtual jtermios.windows.WinAPI$OVERLAPPED.readField:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast jtermios.windows.WinAPI$HANDLE
            astore 2 /* h */
        40: .line 238
            aload 0 /* this */
            aconst_null
            putfield jtermios.windows.JTermiosImpl$Port.m_SelOVL:Ljtermios/windows/WinAPI$OVERLAPPED;
        41: .line 239
            aload 2 /* h */
            ifnull 43
            aload 2 /* h */
            getstatic jtermios.windows.WinAPI.NULL:Ljtermios/windows/WinAPI$HANDLE;
            invokevirtual jtermios.windows.WinAPI$HANDLE.equals:(Ljava/lang/Object;)Z
            ifne 43
            aload 2 /* h */
            getstatic jtermios.windows.WinAPI.INVALID_HANDLE_VALUE:Ljtermios/windows/WinAPI$HANDLE;
            invokevirtual jtermios.windows.WinAPI$HANDLE.equals:(Ljava/lang/Object;)Z
            ifne 43
        42: .line 240
            aload 2 /* h */
            invokestatic jtermios.windows.WinAPI.CloseHandle:(Ljtermios/windows/WinAPI$HANDLE;)Z
            pop
        43: .line 242
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_Comm:Ljtermios/windows/WinAPI$HANDLE;
            ifnull 45
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_Comm:Ljtermios/windows/WinAPI$HANDLE;
            getstatic jtermios.windows.WinAPI.NULL:Ljtermios/windows/WinAPI$HANDLE;
            if_acmpeq 45
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_Comm:Ljtermios/windows/WinAPI$HANDLE;
            getstatic jtermios.windows.WinAPI.INVALID_HANDLE_VALUE:Ljtermios/windows/WinAPI$HANDLE;
            if_acmpeq 45
        44: .line 243
            aload 0 /* this */
            getfield jtermios.windows.JTermiosImpl$Port.m_Comm:Ljtermios/windows/WinAPI$HANDLE;
            invokestatic jtermios.windows.WinAPI.CloseHandle:(Ljtermios/windows/WinAPI$HANDLE;)Z
            pop
        45: .line 244
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield jtermios.windows.JTermiosImpl$Port.m_Comm:Ljtermios/windows/WinAPI$HANDLE;
        end local 2 // jtermios.windows.WinAPI$HANDLE h
        46: .line 194
            aload 1
            monitorexit
        47: goto 50
      StackMap locals: jtermios.windows.JTermiosImpl$Port jtermios.windows.JTermiosImpl
      StackMap stack: java.lang.Throwable
        48: aload 1
            monitorexit
        49: athrow
        50: .line 246
      StackMap locals:
      StackMap stack:
            return
        end local 0 // jtermios.windows.JTermiosImpl$Port this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   51     0  this  Ljtermios/windows/JTermiosImpl$Port;
            9   17     2     h  Ljtermios/windows/WinAPI$HANDLE;
           19   46     2     h  Ljtermios/windows/WinAPI$HANDLE;
      Exception table:
        from    to  target  type
           8    16      17  any
          17    18      17  any
          22    30      31  any
          31    32      31  any
           1    47      48  any
          48    49      48  any
}
SourceFile: "JTermiosImpl.java"
NestHost: jtermios.windows.JTermiosImpl
InnerClasses:
  public JTermiosLogging = jtermios.JTermios$JTermiosLogging of jtermios.JTermios
  Fail = jtermios.windows.JTermiosImpl$Fail of jtermios.windows.JTermiosImpl
  private Port = jtermios.windows.JTermiosImpl$Port of jtermios.windows.JTermiosImpl
  public COMMTIMEOUTS = jtermios.windows.WinAPI$COMMTIMEOUTS of jtermios.windows.WinAPI
  public COMSTAT = jtermios.windows.WinAPI$COMSTAT of jtermios.windows.WinAPI
  public DCB = jtermios.windows.WinAPI$DCB of jtermios.windows.WinAPI
  public HANDLE = jtermios.windows.WinAPI$HANDLE of jtermios.windows.WinAPI
  public OVERLAPPED = jtermios.windows.WinAPI$OVERLAPPED of jtermios.windows.WinAPI
  public SECURITY_ATTRIBUTES = jtermios.windows.WinAPI$SECURITY_ATTRIBUTES of jtermios.windows.WinAPI