public class jtermios.windows.testsuite.TestSuite
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: jtermios.windows.testsuite.TestSuite
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jtermios.windows.testsuite.TestSuite this
         0: .line 64
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // jtermios.windows.testsuite.TestSuite this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljtermios/windows/testsuite/TestSuite;

  private void check(boolean, java.lang.String);
    descriptor: (ZLjava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // jtermios.windows.testsuite.TestSuite this
        start local 1 // boolean ok
        start local 2 // java.lang.String what
         0: .line 67
            iload 1 /* ok */
            ifne 3
         1: .line 68
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            aload 2 /* what */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " failed, error "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic jtermios.windows.WinAPI.GetLastError:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 69
            iconst_0
            invokestatic java.lang.System.exit:(I)V
         3: .line 71
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String what
        end local 1 // boolean ok
        end local 0 // jtermios.windows.testsuite.TestSuite this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljtermios/windows/testsuite/TestSuite;
            0    4     1    ok  Z
            0    4     2  what  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      ok    
      what  

  public void test1();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=17, args_size=1
        start local 0 // jtermios.windows.testsuite.TestSuite this
         0: .line 74
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "A contorted loopback test with overlapped IO for WinAPI"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 76
            ldc "COM5:"
            astore 1 /* COM */
        start local 1 // java.lang.String COM
         2: .line 77
            aload 1 /* COM */
            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;
            astore 2 /* hComm */
        start local 2 // jtermios.windows.WinAPI$HANDLE hComm
         3: .line 79
            aload 0 /* this */
            aload 2 /* hComm */
            sipush 2048
            sipush 2048
            invokestatic jtermios.windows.WinAPI.SetupComm:(Ljtermios/windows/WinAPI$HANDLE;II)Z
            ldc "SetupComm "
            invokevirtual jtermios.windows.testsuite.TestSuite.check:(ZLjava/lang/String;)V
         4: .line 81
            new jtermios.windows.WinAPI$DCB
            dup
            invokespecial jtermios.windows.WinAPI$DCB.<init>:()V
            astore 3 /* dcb */
        start local 3 // jtermios.windows.WinAPI$DCB dcb
         5: .line 82
            aload 3 /* dcb */
            aload 3 /* dcb */
            invokevirtual jtermios.windows.WinAPI$DCB.size:()I
            putfield jtermios.windows.WinAPI$DCB.DCBlength:I
         6: .line 83
            aload 3 /* dcb */
            sipush 1200
            putfield jtermios.windows.WinAPI$DCB.BaudRate:I
         7: .line 84
            aload 3 /* dcb */
            bipush 8
            putfield jtermios.windows.WinAPI$DCB.ByteSize:B
         8: .line 85
            aload 3 /* dcb */
            iconst_0
            putfield jtermios.windows.WinAPI$DCB.fFlags:I
         9: .line 86
            aload 3 /* dcb */
            iconst_0
            putfield jtermios.windows.WinAPI$DCB.Parity:B
        10: .line 87
            aload 3 /* dcb */
            bipush 17
            putfield jtermios.windows.WinAPI$DCB.XonChar:B
        11: .line 88
            aload 3 /* dcb */
            iconst_0
            putfield jtermios.windows.WinAPI$DCB.StopBits:B
        12: .line 89
            aload 3 /* dcb */
            bipush 19
            putfield jtermios.windows.WinAPI$DCB.XonChar:B
        13: .line 91
            aload 0 /* this */
            aload 2 /* hComm */
            aload 3 /* dcb */
            invokestatic jtermios.windows.WinAPI.SetCommState:(Ljtermios/windows/WinAPI$HANDLE;Ljtermios/windows/WinAPI$DCB;)Z
            ldc "SetCommState "
            invokevirtual jtermios.windows.testsuite.TestSuite.check:(ZLjava/lang/String;)V
        14: .line 93
            new jtermios.windows.WinAPI$COMMTIMEOUTS
            dup
            invokespecial jtermios.windows.WinAPI$COMMTIMEOUTS.<init>:()V
            astore 4 /* touts */
        start local 4 // jtermios.windows.WinAPI$COMMTIMEOUTS touts
        15: .line 94
            aload 0 /* this */
            aload 2 /* hComm */
            aload 4 /* touts */
            invokestatic jtermios.windows.WinAPI.SetCommTimeouts:(Ljtermios/windows/WinAPI$HANDLE;Ljtermios/windows/WinAPI$COMMTIMEOUTS;)Z
            ldc "SetCommTimeouts "
            invokevirtual jtermios.windows.testsuite.TestSuite.check:(ZLjava/lang/String;)V
        16: .line 96
            aload 0 /* this */
            getstatic jtermios.windows.WinAPI.INVALID_HANDLE_VALUE:Ljtermios/windows/WinAPI$HANDLE;
            aload 2 /* hComm */
            invokevirtual jtermios.windows.WinAPI$HANDLE.equals:(Ljava/lang/Object;)Z
            ifeq 17
            iconst_0
            goto 18
      StackMap locals: jtermios.windows.testsuite.TestSuite java.lang.String jtermios.windows.WinAPI$HANDLE jtermios.windows.WinAPI$DCB jtermios.windows.WinAPI$COMMTIMEOUTS
      StackMap stack: jtermios.windows.testsuite.TestSuite
        17: iconst_1
      StackMap locals: jtermios.windows.testsuite.TestSuite java.lang.String jtermios.windows.WinAPI$HANDLE jtermios.windows.WinAPI$DCB jtermios.windows.WinAPI$COMMTIMEOUTS
      StackMap stack: jtermios.windows.testsuite.TestSuite int
        18: new java.lang.StringBuilder
            dup
            ldc "CreateFile "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* COM */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual jtermios.windows.testsuite.TestSuite.check:(ZLjava/lang/String;)V
        19: .line 97
            ldc "Hello World"
            astore 5 /* send */
        start local 5 // java.lang.String send
        20: .line 98
            aload 5 /* send */
            invokevirtual java.lang.String.getBytes:()[B
            arraylength
            istore 6 /* tlen */
        start local 6 // int tlen
        21: .line 100
            iconst_1
            newarray 10
            astore 7 /* txn */
        start local 7 // int[] txn
        22: .line 101
            new com.sun.jna.Memory
            dup
            iload 6 /* tlen */
            iconst_1
            iadd
            i2l
            invokespecial com.sun.jna.Memory.<init>:(J)V
            astore 8 /* txm */
        start local 8 // com.sun.jna.Memory txm
        23: .line 102
            aload 8 /* txm */
            invokevirtual com.sun.jna.Memory.clear:()V
        24: .line 103
            aload 8 /* txm */
            lconst_0
            aload 5 /* send */
            invokevirtual java.lang.String.getBytes:()[B
            iconst_0
            iload 6 /* tlen */
            invokevirtual com.sun.jna.Memory.write:(J[BII)V
        25: .line 105
            iconst_1
            newarray 10
            astore 9 /* rxn */
        start local 9 // int[] rxn
        26: .line 106
            new com.sun.jna.Memory
            dup
            iload 6 /* tlen */
            i2l
            invokespecial com.sun.jna.Memory.<init>:(J)V
            astore 10 /* rxm */
        start local 10 // com.sun.jna.Memory rxm
        27: .line 108
            new jtermios.windows.WinAPI$OVERLAPPED
            dup
            invokespecial jtermios.windows.WinAPI$OVERLAPPED.<init>:()V
            astore 11 /* osReader */
        start local 11 // jtermios.windows.WinAPI$OVERLAPPED osReader
        28: .line 109
            aload 11 /* osReader */
            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
        29: .line 110
            aload 0 /* this */
            aload 11 /* osReader */
            getfield jtermios.windows.WinAPI$OVERLAPPED.hEvent:Ljtermios/windows/WinAPI$HANDLE;
            ifnull 30
            iconst_1
            goto 31
      StackMap locals: jtermios.windows.testsuite.TestSuite java.lang.String jtermios.windows.WinAPI$HANDLE jtermios.windows.WinAPI$DCB jtermios.windows.WinAPI$COMMTIMEOUTS java.lang.String int int[] com.sun.jna.Memory int[] com.sun.jna.Memory jtermios.windows.WinAPI$OVERLAPPED
      StackMap stack: jtermios.windows.testsuite.TestSuite
        30: iconst_0
      StackMap locals: jtermios.windows.testsuite.TestSuite java.lang.String jtermios.windows.WinAPI$HANDLE jtermios.windows.WinAPI$DCB jtermios.windows.WinAPI$COMMTIMEOUTS java.lang.String int int[] com.sun.jna.Memory int[] com.sun.jna.Memory jtermios.windows.WinAPI$OVERLAPPED
      StackMap stack: jtermios.windows.testsuite.TestSuite int
        31: ldc "CreateEvent/osReader"
            invokevirtual jtermios.windows.testsuite.TestSuite.check:(ZLjava/lang/String;)V
        32: .line 112
            new jtermios.windows.WinAPI$OVERLAPPED
            dup
            invokespecial jtermios.windows.WinAPI$OVERLAPPED.<init>:()V
            astore 12 /* osWriter */
        start local 12 // jtermios.windows.WinAPI$OVERLAPPED osWriter
        33: .line 113
            aload 12 /* osWriter */
            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
        34: .line 114
            aload 0 /* this */
            aload 12 /* osWriter */
            getfield jtermios.windows.WinAPI$OVERLAPPED.hEvent:Ljtermios/windows/WinAPI$HANDLE;
            ifnull 35
            iconst_1
            goto 36
      StackMap locals: jtermios.windows.testsuite.TestSuite java.lang.String jtermios.windows.WinAPI$HANDLE jtermios.windows.WinAPI$DCB jtermios.windows.WinAPI$COMMTIMEOUTS java.lang.String int int[] com.sun.jna.Memory int[] com.sun.jna.Memory jtermios.windows.WinAPI$OVERLAPPED jtermios.windows.WinAPI$OVERLAPPED
      StackMap stack: jtermios.windows.testsuite.TestSuite
        35: iconst_0
      StackMap locals: jtermios.windows.testsuite.TestSuite java.lang.String jtermios.windows.WinAPI$HANDLE jtermios.windows.WinAPI$DCB jtermios.windows.WinAPI$COMMTIMEOUTS java.lang.String int int[] com.sun.jna.Memory int[] com.sun.jna.Memory jtermios.windows.WinAPI$OVERLAPPED jtermios.windows.WinAPI$OVERLAPPED
      StackMap stack: jtermios.windows.testsuite.TestSuite int
        36: ldc "CreateEvent/osWriter"
            invokevirtual jtermios.windows.testsuite.TestSuite.check:(ZLjava/lang/String;)V
        37: .line 116
            iconst_1
            istore 13 /* first */
        start local 13 // boolean first
        38: .line 119
            iconst_0
            istore 13 /* first */
        39: .line 120
            aload 0 /* this */
            aload 12 /* osWriter */
            getfield jtermios.windows.WinAPI$OVERLAPPED.hEvent:Ljtermios/windows/WinAPI$HANDLE;
            invokestatic jtermios.windows.WinAPI.ResetEvent:(Ljtermios/windows/WinAPI$HANDLE;)Z
            ldc "ResetEvent/osWriter.hEvent"
            invokevirtual jtermios.windows.testsuite.TestSuite.check:(ZLjava/lang/String;)V
        40: .line 121
            aload 2 /* hComm */
            aload 8 /* txm */
            iload 6 /* tlen */
            aload 7 /* txn */
            aload 12 /* osWriter */
            invokestatic jtermios.windows.WinAPI.WriteFile:(Ljtermios/windows/WinAPI$HANDLE;Lcom/sun/jna/Pointer;I[ILjtermios/windows/WinAPI$OVERLAPPED;)Z
            istore 14 /* write */
        start local 14 // boolean write
        41: .line 122
            iload 14 /* write */
            ifne 59
        42: .line 123
            aload 0 /* this */
            invokestatic jtermios.windows.WinAPI.GetLastError:()I
            sipush 997
            if_icmpne 43
            iconst_1
            goto 44
      StackMap locals: jtermios.windows.testsuite.TestSuite java.lang.String jtermios.windows.WinAPI$HANDLE jtermios.windows.WinAPI$DCB jtermios.windows.WinAPI$COMMTIMEOUTS java.lang.String int int[] com.sun.jna.Memory int[] com.sun.jna.Memory jtermios.windows.WinAPI$OVERLAPPED jtermios.windows.WinAPI$OVERLAPPED int int
      StackMap stack: jtermios.windows.testsuite.TestSuite
        43: iconst_0
      StackMap locals: jtermios.windows.testsuite.TestSuite java.lang.String jtermios.windows.WinAPI$HANDLE jtermios.windows.WinAPI$DCB jtermios.windows.WinAPI$COMMTIMEOUTS java.lang.String int int[] com.sun.jna.Memory int[] com.sun.jna.Memory jtermios.windows.WinAPI$OVERLAPPED jtermios.windows.WinAPI$OVERLAPPED int int
      StackMap stack: jtermios.windows.testsuite.TestSuite int
        44: ldc "WriteFile"
            invokevirtual jtermios.windows.testsuite.TestSuite.check:(ZLjava/lang/String;)V
        45: .line 124
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Write pending"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        46: .line 126
            goto 59
        47: .line 127
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "WaitForSingleObject/write"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        48: .line 128
            aload 12 /* osWriter */
            getfield jtermios.windows.WinAPI$OVERLAPPED.hEvent:Ljtermios/windows/WinAPI$HANDLE;
            sipush 1000
            invokestatic jtermios.windows.WinAPI.WaitForSingleObject:(Ljtermios/windows/WinAPI$HANDLE;I)I
            istore 15 /* dwRes */
        start local 15 // int dwRes
        49: .line 129
            iload 15 /* dwRes */
            lookupswitch { // 2
                    0: 50
                  258: 56
              default: 58
          }
        50: .line 131
      StackMap locals: int
      StackMap stack:
            aload 2 /* hComm */
            aload 12 /* osWriter */
            aload 7 /* txn */
            iconst_1
            invokestatic jtermios.windows.WinAPI.GetOverlappedResult:(Ljtermios/windows/WinAPI$HANDLE;Ljtermios/windows/WinAPI$OVERLAPPED;[IZ)Z
            ifne 54
        51: .line 132
            aload 0 /* this */
            invokestatic jtermios.windows.WinAPI.GetLastError:()I
            sipush 996
            if_icmpne 52
            iconst_1
            goto 53
      StackMap locals:
      StackMap stack: jtermios.windows.testsuite.TestSuite
        52: iconst_0
      StackMap locals: jtermios.windows.testsuite.TestSuite java.lang.String jtermios.windows.WinAPI$HANDLE jtermios.windows.WinAPI$DCB jtermios.windows.WinAPI$COMMTIMEOUTS java.lang.String int int[] com.sun.jna.Memory int[] com.sun.jna.Memory jtermios.windows.WinAPI$OVERLAPPED jtermios.windows.WinAPI$OVERLAPPED int int int
      StackMap stack: jtermios.windows.testsuite.TestSuite int
        53: ldc "GetOverlappedResult/osWriter"
            invokevirtual jtermios.windows.testsuite.TestSuite.check:(ZLjava/lang/String;)V
            goto 59
        54: .line 134
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 14 /* write */
        55: .line 135
            goto 59
        56: .line 137
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "write TIMEOT"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        57: .line 138
            goto 59
        58: .line 140
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            ldc "WaitForSingleObject/write"
            invokevirtual jtermios.windows.testsuite.TestSuite.check:(ZLjava/lang/String;)V
        end local 15 // int dwRes
        59: .line 126
      StackMap locals:
      StackMap stack:
            iload 14 /* write */
            ifeq 47
        60: .line 144
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Transmit: '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* txm */
            lconst_0
            invokevirtual com.sun.jna.Memory.getString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' , len="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* txn */
            iconst_0
            iaload
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        61: .line 147
            aload 0 /* this */
            aload 11 /* osReader */
            getfield jtermios.windows.WinAPI$OVERLAPPED.hEvent:Ljtermios/windows/WinAPI$HANDLE;
            invokestatic jtermios.windows.WinAPI.ResetEvent:(Ljtermios/windows/WinAPI$HANDLE;)Z
            ldc "ResetEvent/osReader.hEvent "
            invokevirtual jtermios.windows.testsuite.TestSuite.check:(ZLjava/lang/String;)V
        62: .line 148
            aload 2 /* hComm */
            aload 10 /* rxm */
            iload 6 /* tlen */
            aload 9 /* rxn */
            aload 11 /* osReader */
            invokestatic jtermios.windows.WinAPI.ReadFile:(Ljtermios/windows/WinAPI$HANDLE;Lcom/sun/jna/Pointer;I[ILjtermios/windows/WinAPI$OVERLAPPED;)Z
            istore 15 /* read */
        start local 15 // boolean read
        63: .line 149
            iload 15 /* read */
            ifne 82
        64: .line 150
            aload 0 /* this */
            invokestatic jtermios.windows.WinAPI.GetLastError:()I
            sipush 997
            if_icmpne 65
            iconst_1
            goto 66
      StackMap locals: jtermios.windows.testsuite.TestSuite java.lang.String jtermios.windows.WinAPI$HANDLE jtermios.windows.WinAPI$DCB jtermios.windows.WinAPI$COMMTIMEOUTS java.lang.String int int[] com.sun.jna.Memory int[] com.sun.jna.Memory jtermios.windows.WinAPI$OVERLAPPED jtermios.windows.WinAPI$OVERLAPPED int int int
      StackMap stack: jtermios.windows.testsuite.TestSuite
        65: iconst_0
      StackMap locals: jtermios.windows.testsuite.TestSuite java.lang.String jtermios.windows.WinAPI$HANDLE jtermios.windows.WinAPI$DCB jtermios.windows.WinAPI$COMMTIMEOUTS java.lang.String int int[] com.sun.jna.Memory int[] com.sun.jna.Memory jtermios.windows.WinAPI$OVERLAPPED jtermios.windows.WinAPI$OVERLAPPED int int int
      StackMap stack: jtermios.windows.testsuite.TestSuite int
        66: ldc "ReadFile"
            invokevirtual jtermios.windows.testsuite.TestSuite.check:(ZLjava/lang/String;)V
        67: .line 151
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Read pending"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        68: .line 154
            goto 82
        69: .line 158
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "WaitForSingleObject/read"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        70: .line 159
            aload 0 /* this */
            aload 11 /* osReader */
            getfield jtermios.windows.WinAPI$OVERLAPPED.hEvent:Ljtermios/windows/WinAPI$HANDLE;
            invokestatic jtermios.windows.WinAPI.ResetEvent:(Ljtermios/windows/WinAPI$HANDLE;)Z
            ldc "ResetEvent/osReader.hEvent"
            invokevirtual jtermios.windows.testsuite.TestSuite.check:(ZLjava/lang/String;)V
        71: .line 160
            aload 11 /* osReader */
            getfield jtermios.windows.WinAPI$OVERLAPPED.hEvent:Ljtermios/windows/WinAPI$HANDLE;
            sipush 1000
            invokestatic jtermios.windows.WinAPI.WaitForSingleObject:(Ljtermios/windows/WinAPI$HANDLE;I)I
            istore 16 /* dwRes */
        start local 16 // int dwRes
        72: .line 161
            iload 16 /* dwRes */
            lookupswitch { // 2
                    0: 73
                  258: 79
              default: 81
          }
        73: .line 163
      StackMap locals: int
      StackMap stack:
            aload 2 /* hComm */
            aload 11 /* osReader */
            aload 9 /* rxn */
            iconst_0
            invokestatic jtermios.windows.WinAPI.GetOverlappedResult:(Ljtermios/windows/WinAPI$HANDLE;Ljtermios/windows/WinAPI$OVERLAPPED;[IZ)Z
            ifne 77
        74: .line 164
            aload 0 /* this */
            invokestatic jtermios.windows.WinAPI.GetLastError:()I
            sipush 996
            if_icmpne 75
            iconst_1
            goto 76
      StackMap locals:
      StackMap stack: jtermios.windows.testsuite.TestSuite
        75: iconst_0
      StackMap locals: jtermios.windows.testsuite.TestSuite java.lang.String jtermios.windows.WinAPI$HANDLE jtermios.windows.WinAPI$DCB jtermios.windows.WinAPI$COMMTIMEOUTS java.lang.String int int[] com.sun.jna.Memory int[] com.sun.jna.Memory jtermios.windows.WinAPI$OVERLAPPED jtermios.windows.WinAPI$OVERLAPPED int int int int
      StackMap stack: jtermios.windows.testsuite.TestSuite int
        76: ldc "GetOverlappedResult/osReader"
            invokevirtual jtermios.windows.testsuite.TestSuite.check:(ZLjava/lang/String;)V
            goto 82
        77: .line 166
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 15 /* read */
        78: .line 167
            goto 82
        79: .line 170
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "WAIT_TIMEOUT"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        80: .line 171
            goto 82
        81: .line 174
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            ldc "WaitForSingleObject/osReader.hEvent"
            invokevirtual jtermios.windows.testsuite.TestSuite.check:(ZLjava/lang/String;)V
        end local 16 // int dwRes
        82: .line 154
      StackMap locals:
      StackMap stack:
            iload 15 /* read */
            ifeq 69
        83: .line 179
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Received: '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* rxm */
            lconst_0
            invokevirtual com.sun.jna.Memory.getString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' , len="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* rxn */
            iconst_0
            iaload
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        84: .line 180
            aload 0 /* this */
            aload 12 /* osWriter */
            getfield jtermios.windows.WinAPI$OVERLAPPED.hEvent:Ljtermios/windows/WinAPI$HANDLE;
            invokestatic jtermios.windows.WinAPI.CloseHandle:(Ljtermios/windows/WinAPI$HANDLE;)Z
            ldc "CloseHandle/osWriter.hEvent"
            invokevirtual jtermios.windows.testsuite.TestSuite.check:(ZLjava/lang/String;)V
        85: .line 181
            aload 0 /* this */
            aload 11 /* osReader */
            getfield jtermios.windows.WinAPI$OVERLAPPED.hEvent:Ljtermios/windows/WinAPI$HANDLE;
            invokestatic jtermios.windows.WinAPI.CloseHandle:(Ljtermios/windows/WinAPI$HANDLE;)Z
            ldc "CloseHandle/osReader.hEvent"
            invokevirtual jtermios.windows.testsuite.TestSuite.check:(ZLjava/lang/String;)V
        86: .line 182
            aload 0 /* this */
            aload 2 /* hComm */
            invokestatic jtermios.windows.WinAPI.CloseHandle:(Ljtermios/windows/WinAPI$HANDLE;)Z
            ldc "CloseHandle/hComm"
            invokevirtual jtermios.windows.testsuite.TestSuite.check:(ZLjava/lang/String;)V
        87: .line 183
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "All done"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        88: .line 184
            return
        end local 15 // boolean read
        end local 14 // boolean write
        end local 13 // boolean first
        end local 12 // jtermios.windows.WinAPI$OVERLAPPED osWriter
        end local 11 // jtermios.windows.WinAPI$OVERLAPPED osReader
        end local 10 // com.sun.jna.Memory rxm
        end local 9 // int[] rxn
        end local 8 // com.sun.jna.Memory txm
        end local 7 // int[] txn
        end local 6 // int tlen
        end local 5 // java.lang.String send
        end local 4 // jtermios.windows.WinAPI$COMMTIMEOUTS touts
        end local 3 // jtermios.windows.WinAPI$DCB dcb
        end local 2 // jtermios.windows.WinAPI$HANDLE hComm
        end local 1 // java.lang.String COM
        end local 0 // jtermios.windows.testsuite.TestSuite this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   89     0      this  Ljtermios/windows/testsuite/TestSuite;
            2   89     1       COM  Ljava/lang/String;
            3   89     2     hComm  Ljtermios/windows/WinAPI$HANDLE;
            5   89     3       dcb  Ljtermios/windows/WinAPI$DCB;
           15   89     4     touts  Ljtermios/windows/WinAPI$COMMTIMEOUTS;
           20   89     5      send  Ljava/lang/String;
           21   89     6      tlen  I
           22   89     7       txn  [I
           23   89     8       txm  Lcom/sun/jna/Memory;
           26   89     9       rxn  [I
           27   89    10       rxm  Lcom/sun/jna/Memory;
           28   89    11  osReader  Ljtermios/windows/WinAPI$OVERLAPPED;
           33   89    12  osWriter  Ljtermios/windows/WinAPI$OVERLAPPED;
           38   89    13     first  Z
           41   89    14     write  Z
           49   59    15     dwRes  I
           63   89    15      read  Z
           72   82    16     dwRes  I

  private void run();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jtermios.windows.testsuite.TestSuite this
         0: .line 187
            aload 0 /* this */
            invokevirtual jtermios.windows.testsuite.TestSuite.test1:()V
         1: .line 188
            return
        end local 0 // jtermios.windows.testsuite.TestSuite this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljtermios/windows/testsuite/TestSuite;

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 191
            new jtermios.windows.testsuite.TestSuite
            dup
            invokespecial jtermios.windows.testsuite.TestSuite.<init>:()V
            astore 1 /* ts */
        start local 1 // jtermios.windows.testsuite.TestSuite ts
         1: .line 192
            aload 1 /* ts */
            invokevirtual jtermios.windows.testsuite.TestSuite.run:()V
         2: .line 193
            return
        end local 1 // jtermios.windows.testsuite.TestSuite ts
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  args  [Ljava/lang/String;
            1    3     1    ts  Ljtermios/windows/testsuite/TestSuite;
    MethodParameters:
      Name  Flags
      args  
}
SourceFile: "TestSuite.java"
InnerClasses:
  public COMMTIMEOUTS = jtermios.windows.WinAPI$COMMTIMEOUTS 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