class com.sun.media.sound.RealTimeSequencer$DataPump
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.sun.media.sound.RealTimeSequencer$DataPump
  super_class: java.lang.Object
{
  private float currTempo;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  private float tempoFactor;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  private float inverseTempoFactor;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  private long ignoreTempoEventAt;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private int resolution;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private float divisionType;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  private long checkPointMillis;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long checkPointTick;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private int[] noteOnCache;
    descriptor: [I
    flags: (0x0002) ACC_PRIVATE

  private javax.sound.midi.Track[] tracks;
    descriptor: [Ljavax/sound/midi/Track;
    flags: (0x0002) ACC_PRIVATE

  private boolean[] trackDisabled;
    descriptor: [Z
    flags: (0x0002) ACC_PRIVATE

  private int[] trackReadPos;
    descriptor: [I
    flags: (0x0002) ACC_PRIVATE

  private long lastTick;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private boolean needReindex;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private int currLoopCounter;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  final com.sun.media.sound.RealTimeSequencer this$0;
    descriptor: Lcom/sun/media/sound/RealTimeSequencer;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(com.sun.media.sound.RealTimeSequencer);
    descriptor: (Lcom/sun/media/sound/RealTimeSequencer;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
         0: .line 1354
            aload 0 /* this */
            aload 1
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 1348
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.needReindex:Z
         2: .line 1349
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.currLoopCounter:I
         3: .line 1355
            aload 0 /* this */
            invokevirtual com.sun.media.sound.RealTimeSequencer$DataPump.init:()V
         4: .line 1356
            return
        end local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/media/sound/RealTimeSequencer$DataPump;
    MethodParameters:
        Name  Flags
      this$0  final

  synchronized void init();
    descriptor: ()V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
         0: .line 1359
            aload 0 /* this */
            ldc -1
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.ignoreTempoEventAt:J
         1: .line 1360
            aload 0 /* this */
            fconst_1
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.tempoFactor:F
         2: .line 1361
            aload 0 /* this */
            fconst_1
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.inverseTempoFactor:F
         3: .line 1362
            aload 0 /* this */
            sipush 128
            newarray 10
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.noteOnCache:[I
         4: .line 1363
            aload 0 /* this */
            aconst_null
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.tracks:[Ljavax/sound/midi/Track;
         5: .line 1364
            aload 0 /* this */
            aconst_null
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.trackDisabled:[Z
         6: .line 1365
            return
        end local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/sun/media/sound/RealTimeSequencer$DataPump;

  synchronized void setTickPos(long);
    descriptor: (J)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
        start local 1 // long tickPos
         0: .line 1368
            lload 1 /* tickPos */
            lstore 3 /* oldLastTick */
        start local 3 // long oldLastTick
         1: .line 1369
            aload 0 /* this */
            lload 1 /* tickPos */
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.lastTick:J
         2: .line 1370
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            getfield com.sun.media.sound.RealTimeSequencer.running:Z
            ifeq 4
         3: .line 1371
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.media.sound.RealTimeSequencer$DataPump.notesOff:(Z)V
         4: .line 1373
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            getfield com.sun.media.sound.RealTimeSequencer.running:Z
            ifne 5
            lload 1 /* tickPos */
            lconst_0
            lcmp
            ifle 7
         5: .line 1375
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 3 /* oldLastTick */
            lload 1 /* tickPos */
            invokevirtual com.sun.media.sound.RealTimeSequencer$DataPump.chaseEvents:(JJ)V
         6: .line 1376
            goto 8
         7: .line 1377
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.needReindex:Z
         8: .line 1379
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.media.sound.RealTimeSequencer$DataPump.hasCachedTempo:()Z
            ifne 11
         9: .line 1380
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            invokevirtual com.sun.media.sound.RealTimeSequencer.getTempoCache:()Lcom/sun/media/sound/MidiUtils$TempoCache;
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.lastTick:J
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.currTempo:F
            invokevirtual com.sun.media.sound.MidiUtils$TempoCache.getTempoMPQAt:(JF)F
            invokevirtual com.sun.media.sound.RealTimeSequencer$DataPump.setTempoMPQ:(F)V
        10: .line 1382
            aload 0 /* this */
            ldc -1
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.ignoreTempoEventAt:J
        11: .line 1385
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lconst_0
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.checkPointMillis:J
        12: .line 1386
            return
        end local 3 // long oldLastTick
        end local 1 // long tickPos
        end local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0         this  Lcom/sun/media/sound/RealTimeSequencer$DataPump;
            0   13     1      tickPos  J
            1   13     3  oldLastTick  J
    MethodParameters:
         Name  Flags
      tickPos  

  long getTickPos();
    descriptor: ()J
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
         0: .line 1389
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.lastTick:J
            lreturn
        end local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/media/sound/RealTimeSequencer$DataPump;

  boolean hasCachedTempo();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
         0: .line 1394
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.ignoreTempoEventAt:J
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.lastTick:J
            lcmp
            ifeq 2
         1: .line 1395
            aload 0 /* this */
            ldc -1
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.ignoreTempoEventAt:J
         2: .line 1397
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.ignoreTempoEventAt:J
            lconst_0
            lcmp
            iflt 3
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/media/sound/RealTimeSequencer$DataPump;

  synchronized void setTempoMPQ(float);
    descriptor: (F)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
        start local 1 // float tempoMPQ
         0: .line 1402
            fload 1 /* tempoMPQ */
            fconst_0
            fcmpl
            ifle 4
            fload 1 /* tempoMPQ */
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.currTempo:F
            fcmpl
            ifeq 4
         1: .line 1403
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.lastTick:J
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.ignoreTempoEventAt:J
         2: .line 1404
            aload 0 /* this */
            fload 1 /* tempoMPQ */
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.currTempo:F
         3: .line 1406
            aload 0 /* this */
            lconst_0
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.checkPointMillis:J
         4: .line 1408
      StackMap locals:
      StackMap stack:
            return
        end local 1 // float tempoMPQ
        end local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lcom/sun/media/sound/RealTimeSequencer$DataPump;
            0    5     1  tempoMPQ  F
    MethodParameters:
          Name  Flags
      tempoMPQ  

  float getTempoMPQ();
    descriptor: ()F
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
         0: .line 1411
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.currTempo:F
            freturn
        end local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/media/sound/RealTimeSequencer$DataPump;

  synchronized void setTempoFactor(float);
    descriptor: (F)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
        start local 1 // float factor
         0: .line 1415
            fload 1 /* factor */
            fconst_0
            fcmpl
            ifle 4
            fload 1 /* factor */
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.tempoFactor:F
            fcmpl
            ifeq 4
         1: .line 1416
            aload 0 /* this */
            fload 1 /* factor */
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.tempoFactor:F
         2: .line 1417
            aload 0 /* this */
            fconst_1
            fload 1 /* factor */
            fdiv
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.inverseTempoFactor:F
         3: .line 1419
            aload 0 /* this */
            lconst_0
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.checkPointMillis:J
         4: .line 1421
      StackMap locals:
      StackMap stack:
            return
        end local 1 // float factor
        end local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/sun/media/sound/RealTimeSequencer$DataPump;
            0    5     1  factor  F
    MethodParameters:
        Name  Flags
      factor  

  float getTempoFactor();
    descriptor: ()F
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
         0: .line 1424
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.tempoFactor:F
            freturn
        end local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/media/sound/RealTimeSequencer$DataPump;

  synchronized void muteSoloChanged();
    descriptor: ()V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
         0: .line 1428
            aload 0 /* this */
            invokevirtual com.sun.media.sound.RealTimeSequencer$DataPump.makeDisabledArray:()[Z
            astore 1 /* newDisabled */
        start local 1 // boolean[] newDisabled
         1: .line 1429
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            getfield com.sun.media.sound.RealTimeSequencer.running:Z
            ifeq 3
         2: .line 1430
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.trackDisabled:[Z
            aload 1 /* newDisabled */
            invokevirtual com.sun.media.sound.RealTimeSequencer$DataPump.applyDisabledTracks:([Z[Z)V
         3: .line 1432
      StackMap locals: boolean[]
      StackMap stack:
            aload 0 /* this */
            aload 1 /* newDisabled */
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.trackDisabled:[Z
         4: .line 1433
            return
        end local 1 // boolean[] newDisabled
        end local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lcom/sun/media/sound/RealTimeSequencer$DataPump;
            1    5     1  newDisabled  [Z

  synchronized void setSequence(javax.sound.midi.Sequence);
    descriptor: (Ljavax/sound/midi/Sequence;)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
        start local 1 // javax.sound.midi.Sequence seq
         0: .line 1436
            aload 1 /* seq */
            ifnonnull 3
         1: .line 1437
            aload 0 /* this */
            invokevirtual com.sun.media.sound.RealTimeSequencer$DataPump.init:()V
         2: .line 1438
            return
         3: .line 1440
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* seq */
            invokevirtual javax.sound.midi.Sequence.getTracks:()[Ljavax/sound/midi/Track;
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.tracks:[Ljavax/sound/midi/Track;
         4: .line 1441
            aload 0 /* this */
            invokevirtual com.sun.media.sound.RealTimeSequencer$DataPump.muteSoloChanged:()V
         5: .line 1442
            aload 0 /* this */
            aload 1 /* seq */
            invokevirtual javax.sound.midi.Sequence.getResolution:()I
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.resolution:I
         6: .line 1443
            aload 0 /* this */
            aload 1 /* seq */
            invokevirtual javax.sound.midi.Sequence.getDivisionType:()F
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.divisionType:F
         7: .line 1444
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.tracks:[Ljavax/sound/midi/Track;
            arraylength
            newarray 10
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.trackReadPos:[I
         8: .line 1446
            aload 0 /* this */
            lconst_0
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.checkPointMillis:J
         9: .line 1447
            aload 0 /* this */
            iconst_1
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.needReindex:Z
        10: .line 1448
            return
        end local 1 // javax.sound.midi.Sequence seq
        end local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lcom/sun/media/sound/RealTimeSequencer$DataPump;
            0   11     1   seq  Ljavax/sound/midi/Sequence;
    MethodParameters:
      Name  Flags
      seq   

  synchronized void resetLoopCount();
    descriptor: ()V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
         0: .line 1451
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            getfield com.sun.media.sound.RealTimeSequencer.loopCount:I
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.currLoopCounter:I
         1: .line 1452
            return
        end local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/media/sound/RealTimeSequencer$DataPump;

  void clearNoteOnCache();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
         0: .line 1455
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         1: goto 4
         2: .line 1456
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.noteOnCache:[I
            iload 1 /* i */
            iconst_0
            iastore
         3: .line 1455
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         4: iload 1 /* i */
            sipush 128
            if_icmplt 2
        end local 1 // int i
         5: .line 1458
            return
        end local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/media/sound/RealTimeSequencer$DataPump;
            1    5     1     i  I

  void notesOff(boolean);
    descriptor: (Z)V
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
        start local 1 // boolean doControllers
         0: .line 1462
            iconst_0
            istore 2 /* ch */
        start local 2 // int ch
         1: goto 15
         2: .line 1463
      StackMap locals: int
      StackMap stack:
            iconst_1
            iload 2 /* ch */
            ishl
            istore 3 /* channelMask */
        start local 3 // int channelMask
         3: .line 1464
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: goto 9
         5: .line 1465
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.noteOnCache:[I
            iload 4 /* i */
            iaload
            iload 3 /* channelMask */
            iand
            ifeq 8
         6: .line 1466
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.noteOnCache:[I
            iload 4 /* i */
            dup2
            iaload
            iload 3 /* channelMask */
            ixor
            iastore
         7: .line 1468
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            invokevirtual com.sun.media.sound.RealTimeSequencer.getTransmitterList:()Lcom/sun/media/sound/AbstractMidiDevice$TransmitterList;
            sipush 144
            iload 2 /* ch */
            ior
            iload 4 /* i */
            bipush 8
            ishl
            ior
            ldc -1
            invokevirtual com.sun.media.sound.AbstractMidiDevice$TransmitterList.sendMessage:(IJ)V
         8: .line 1464
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* i */
            sipush 128
            if_icmplt 5
        end local 4 // int i
        10: .line 1473
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            invokevirtual com.sun.media.sound.RealTimeSequencer.getTransmitterList:()Lcom/sun/media/sound/AbstractMidiDevice$TransmitterList;
            sipush 176
            iload 2 /* ch */
            ior
            sipush 31488
            ior
            ldc -1
            invokevirtual com.sun.media.sound.AbstractMidiDevice$TransmitterList.sendMessage:(IJ)V
        11: .line 1475
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            invokevirtual com.sun.media.sound.RealTimeSequencer.getTransmitterList:()Lcom/sun/media/sound/AbstractMidiDevice$TransmitterList;
            sipush 176
            iload 2 /* ch */
            ior
            sipush 16384
            ior
            ldc -1
            invokevirtual com.sun.media.sound.AbstractMidiDevice$TransmitterList.sendMessage:(IJ)V
        12: .line 1476
            iload 1 /* doControllers */
            ifeq 14
        13: .line 1478
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            invokevirtual com.sun.media.sound.RealTimeSequencer.getTransmitterList:()Lcom/sun/media/sound/AbstractMidiDevice$TransmitterList;
            sipush 176
            iload 2 /* ch */
            ior
            sipush 30976
            ior
            ldc -1
            invokevirtual com.sun.media.sound.AbstractMidiDevice$TransmitterList.sendMessage:(IJ)V
        end local 3 // int channelMask
        14: .line 1462
      StackMap locals:
      StackMap stack:
            iinc 2 /* ch */ 1
      StackMap locals:
      StackMap stack:
        15: iload 2 /* ch */
            bipush 16
            if_icmplt 2
        end local 2 // int ch
        16: .line 1482
            return
        end local 1 // boolean doControllers
        end local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   17     0           this  Lcom/sun/media/sound/RealTimeSequencer$DataPump;
            0   17     1  doControllers  Z
            1   16     2             ch  I
            3   14     3    channelMask  I
            4   10     4              i  I
    MethodParameters:
               Name  Flags
      doControllers  

  private boolean[] makeDisabledArray();
    descriptor: ()[Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
         0: .line 1485
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.tracks:[Ljavax/sound/midi/Track;
            ifnonnull 2
         1: .line 1486
            aconst_null
            areturn
         2: .line 1488
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.tracks:[Ljavax/sound/midi/Track;
            arraylength
            newarray 4
            astore 1 /* newTrackDisabled */
        start local 1 // boolean[] newTrackDisabled
         3: .line 1491
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            dup
            astore 4
            monitorenter
         4: .line 1492
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            getfield com.sun.media.sound.RealTimeSequencer.trackMuted:[Z
            astore 3 /* mute */
        start local 3 // boolean[] mute
         5: .line 1493
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            getfield com.sun.media.sound.RealTimeSequencer.trackSolo:[Z
            astore 2 /* solo */
        start local 2 // boolean[] solo
         6: .line 1491
            aload 4
            monitorexit
         7: goto 10
        end local 3 // boolean[] mute
        end local 2 // boolean[] solo
      StackMap locals: com.sun.media.sound.RealTimeSequencer$DataPump boolean[] top top com.sun.media.sound.RealTimeSequencer
      StackMap stack: java.lang.Throwable
         8: aload 4
            monitorexit
         9: athrow
        start local 2 // boolean[] solo
        start local 3 // boolean[] mute
        10: .line 1496
      StackMap locals: com.sun.media.sound.RealTimeSequencer$DataPump boolean[] boolean[] boolean[]
      StackMap stack:
            iconst_0
            istore 4 /* hasSolo */
        start local 4 // boolean hasSolo
        11: .line 1497
            aload 2 /* solo */
            ifnull 19
        12: .line 1498
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        13: goto 18
        14: .line 1499
      StackMap locals: int int
      StackMap stack:
            aload 2 /* solo */
            iload 5 /* i */
            baload
            ifeq 17
        15: .line 1500
            iconst_1
            istore 4 /* hasSolo */
        16: .line 1501
            goto 19
        17: .line 1498
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 5 /* i */
            aload 2 /* solo */
            arraylength
            if_icmplt 14
        end local 5 // int i
        19: .line 1505
      StackMap locals:
      StackMap stack:
            iload 4 /* hasSolo */
            ifeq 28
        20: .line 1507
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        21: goto 26
        22: .line 1508
      StackMap locals: int
      StackMap stack:
            aload 1 /* newTrackDisabled */
            iload 5 /* i */
            iload 5 /* i */
            aload 2 /* solo */
            arraylength
            if_icmpge 23
            aload 2 /* solo */
            iload 5 /* i */
            baload
            ifeq 23
            iconst_0
            goto 24
      StackMap locals: com.sun.media.sound.RealTimeSequencer$DataPump boolean[] boolean[] boolean[] int int
      StackMap stack: boolean[] int
        23: iconst_1
      StackMap locals: com.sun.media.sound.RealTimeSequencer$DataPump boolean[] boolean[] boolean[] int int
      StackMap stack: boolean[] int int
        24: bastore
        25: .line 1507
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 5 /* i */
            aload 1 /* newTrackDisabled */
            arraylength
            if_icmplt 22
        end local 5 // int i
        27: .line 1510
            goto 35
        28: .line 1512
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        29: goto 34
        30: .line 1513
      StackMap locals: int
      StackMap stack:
            aload 1 /* newTrackDisabled */
            iload 5 /* i */
            aload 3 /* mute */
            ifnull 31
            iload 5 /* i */
            aload 3 /* mute */
            arraylength
            if_icmpge 31
            aload 3 /* mute */
            iload 5 /* i */
            baload
            ifeq 31
            iconst_1
            goto 32
      StackMap locals: com.sun.media.sound.RealTimeSequencer$DataPump boolean[] boolean[] boolean[] int int
      StackMap stack: boolean[] int
        31: iconst_0
      StackMap locals: com.sun.media.sound.RealTimeSequencer$DataPump boolean[] boolean[] boolean[] int int
      StackMap stack: boolean[] int int
        32: bastore
        33: .line 1512
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        34: iload 5 /* i */
            aload 1 /* newTrackDisabled */
            arraylength
            if_icmplt 30
        end local 5 // int i
        35: .line 1516
      StackMap locals:
      StackMap stack:
            aload 1 /* newTrackDisabled */
            areturn
        end local 4 // boolean hasSolo
        end local 3 // boolean[] mute
        end local 2 // boolean[] solo
        end local 1 // boolean[] newTrackDisabled
        end local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   36     0              this  Lcom/sun/media/sound/RealTimeSequencer$DataPump;
            3   36     1  newTrackDisabled  [Z
            6    8     2              solo  [Z
           10   36     2              solo  [Z
            5    8     3              mute  [Z
           10   36     3              mute  [Z
           11   36     4           hasSolo  Z
           13   19     5                 i  I
           21   27     5                 i  I
           29   35     5                 i  I
      Exception table:
        from    to  target  type
           4     7       8  any
           8     9       8  any

  private void sendNoteOffIfOn(javax.sound.midi.Track, long);
    descriptor: (Ljavax/sound/midi/Track;J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=12, args_size=3
        start local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
        start local 1 // javax.sound.midi.Track track
        start local 2 // long endTick
         0: .line 1528
            aload 1 /* track */
            invokevirtual javax.sound.midi.Track.size:()I
            istore 4 /* size */
        start local 4 // int size
         1: .line 1531
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         2: goto 24
         3: .line 1532
      StackMap locals: int int
      StackMap stack:
            aload 1 /* track */
            iload 5 /* i */
            invokevirtual javax.sound.midi.Track.get:(I)Ljavax/sound/midi/MidiEvent;
            astore 6 /* event */
        start local 6 // javax.sound.midi.MidiEvent event
         4: .line 1533
            aload 6 /* event */
            invokevirtual javax.sound.midi.MidiEvent.getTick:()J
            lload 2 /* endTick */
            lcmp
            ifle 5
            goto 27
         5: .line 1534
      StackMap locals: javax.sound.midi.MidiEvent
      StackMap stack:
            aload 6 /* event */
            invokevirtual javax.sound.midi.MidiEvent.getMessage:()Ljavax/sound/midi/MidiMessage;
            astore 7 /* msg */
        start local 7 // javax.sound.midi.MidiMessage msg
         6: .line 1535
            aload 7 /* msg */
            invokevirtual javax.sound.midi.MidiMessage.getStatus:()I
            istore 8 /* status */
        start local 8 // int status
         7: .line 1536
            aload 7 /* msg */
            invokevirtual javax.sound.midi.MidiMessage.getLength:()I
            istore 9 /* len */
        start local 9 // int len
         8: .line 1537
            iload 9 /* len */
            iconst_3
            if_icmpne 23
            iload 8 /* status */
            sipush 240
            iand
            sipush 144
            if_icmpne 23
         9: .line 1538
            iconst_m1
            istore 10 /* note */
        start local 10 // int note
        10: .line 1539
            aload 7 /* msg */
            instanceof javax.sound.midi.ShortMessage
            ifeq 15
        11: .line 1540
            aload 7 /* msg */
            checkcast javax.sound.midi.ShortMessage
            astore 11 /* smsg */
        start local 11 // javax.sound.midi.ShortMessage smsg
        12: .line 1541
            aload 11 /* smsg */
            invokevirtual javax.sound.midi.ShortMessage.getData2:()I
            ifle 18
        13: .line 1543
            aload 11 /* smsg */
            invokevirtual javax.sound.midi.ShortMessage.getData1:()I
            istore 10 /* note */
        end local 11 // javax.sound.midi.ShortMessage smsg
        14: .line 1545
            goto 18
        15: .line 1546
      StackMap locals: com.sun.media.sound.RealTimeSequencer$DataPump javax.sound.midi.Track long int int javax.sound.midi.MidiEvent javax.sound.midi.MidiMessage int int int
      StackMap stack:
            aload 7 /* msg */
            invokevirtual javax.sound.midi.MidiMessage.getMessage:()[B
            astore 11 /* data */
        start local 11 // byte[] data
        16: .line 1547
            aload 11 /* data */
            iconst_2
            baload
            bipush 127
            iand
            ifle 18
        17: .line 1549
            aload 11 /* data */
            iconst_1
            baload
            bipush 127
            iand
            istore 10 /* note */
        end local 11 // byte[] data
        18: .line 1552
      StackMap locals:
      StackMap stack:
            iload 10 /* note */
            iflt 23
        19: .line 1553
            iconst_1
            iload 8 /* status */
            bipush 15
            iand
            ishl
            istore 11 /* bit */
        start local 11 // int bit
        20: .line 1554
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.noteOnCache:[I
            iload 10 /* note */
            iaload
            iload 11 /* bit */
            iand
            ifeq 23
        21: .line 1556
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            invokevirtual com.sun.media.sound.RealTimeSequencer.getTransmitterList:()Lcom/sun/media/sound/AbstractMidiDevice$TransmitterList;
            iload 8 /* status */
            iload 10 /* note */
            bipush 8
            ishl
            ior
            ldc -1
            invokevirtual com.sun.media.sound.AbstractMidiDevice$TransmitterList.sendMessage:(IJ)V
        22: .line 1558
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.noteOnCache:[I
            iload 10 /* note */
            dup2
            iaload
            ldc 65535
            iload 11 /* bit */
            ixor
            iand
            iastore
        end local 11 // int bit
        end local 10 // int note
        end local 9 // int len
        end local 8 // int status
        end local 7 // javax.sound.midi.MidiMessage msg
        end local 6 // javax.sound.midi.MidiEvent event
        23: .line 1531
      StackMap locals: com.sun.media.sound.RealTimeSequencer$DataPump javax.sound.midi.Track long int int
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        24: iload 5 /* i */
            iload 4 /* size */
            if_icmplt 3
        end local 5 // int i
        25: .line 1564
            goto 27
      StackMap locals: com.sun.media.sound.RealTimeSequencer$DataPump javax.sound.midi.Track long int
      StackMap stack: java.lang.ArrayIndexOutOfBoundsException
        26: pop
        27: .line 1568
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int size
        end local 2 // long endTick
        end local 1 // javax.sound.midi.Track track
        end local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   28     0     this  Lcom/sun/media/sound/RealTimeSequencer$DataPump;
            0   28     1    track  Ljavax/sound/midi/Track;
            0   28     2  endTick  J
            1   28     4     size  I
            2   25     5        i  I
            4   23     6    event  Ljavax/sound/midi/MidiEvent;
            6   23     7      msg  Ljavax/sound/midi/MidiMessage;
            7   23     8   status  I
            8   23     9      len  I
           10   23    10     note  I
           12   14    11     smsg  Ljavax/sound/midi/ShortMessage;
           16   18    11     data  [B
           20   23    11      bit  I
      Exception table:
        from    to  target  type
           1    25      26  Class java.lang.ArrayIndexOutOfBoundsException
    MethodParameters:
         Name  Flags
      track    
      endTick  

  private void applyDisabledTracks(boolean[], boolean[]);
    descriptor: ([Z[Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=6, args_size=3
        start local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
        start local 1 // boolean[] oldDisabled
        start local 2 // boolean[] newDisabled
         0: .line 1576
            aconst_null
            astore 3 /* tempArray */
        start local 3 // byte[][] tempArray
         1: .line 1577
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            dup
            astore 4
            monitorenter
         2: .line 1578
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: goto 19
         4: .line 1579
      StackMap locals: byte[][] com.sun.media.sound.RealTimeSequencer int
      StackMap stack:
            aload 1 /* oldDisabled */
            ifnull 7
         5: .line 1580
            iload 5 /* i */
            aload 1 /* oldDisabled */
            arraylength
            if_icmpge 7
         6: .line 1581
            aload 1 /* oldDisabled */
            iload 5 /* i */
            baload
            ifne 11
         7: .line 1582
      StackMap locals:
      StackMap stack:
            aload 2 /* newDisabled */
            iload 5 /* i */
            baload
            ifeq 11
         8: .line 1587
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.tracks:[Ljavax/sound/midi/Track;
            arraylength
            iload 5 /* i */
            if_icmple 18
         9: .line 1588
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.tracks:[Ljavax/sound/midi/Track;
            iload 5 /* i */
            aaload
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.lastTick:J
            invokevirtual com.sun.media.sound.RealTimeSequencer$DataPump.sendNoteOffIfOn:(Ljavax/sound/midi/Track;J)V
        10: .line 1590
            goto 18
        11: .line 1591
      StackMap locals:
      StackMap stack:
            aload 1 /* oldDisabled */
            ifnull 18
        12: .line 1592
            iload 5 /* i */
            aload 1 /* oldDisabled */
            arraylength
            if_icmpge 18
        13: .line 1593
            aload 1 /* oldDisabled */
            iload 5 /* i */
            baload
            ifeq 18
        14: .line 1594
            aload 2 /* newDisabled */
            iload 5 /* i */
            baload
            ifne 18
        15: .line 1597
            aload 3 /* tempArray */
            ifnonnull 17
        16: .line 1598
            sipush 128
            bipush 16
            multianewarray [[B 2
            astore 3 /* tempArray */
        17: .line 1600
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 5 /* i */
            lconst_0
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.lastTick:J
            iconst_1
            aload 3 /* tempArray */
            invokevirtual com.sun.media.sound.RealTimeSequencer$DataPump.chaseTrackEvents:(IJJZ[[B)V
        18: .line 1578
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 5 /* i */
            aload 2 /* newDisabled */
            arraylength
            if_icmplt 4
        end local 5 // int i
        20: .line 1577
            aload 4
            monitorexit
        21: goto 24
      StackMap locals: com.sun.media.sound.RealTimeSequencer$DataPump boolean[] boolean[] byte[][] com.sun.media.sound.RealTimeSequencer
      StackMap stack: java.lang.Throwable
        22: aload 4
            monitorexit
        23: athrow
        24: .line 1604
      StackMap locals:
      StackMap stack:
            return
        end local 3 // byte[][] tempArray
        end local 2 // boolean[] newDisabled
        end local 1 // boolean[] oldDisabled
        end local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   25     0         this  Lcom/sun/media/sound/RealTimeSequencer$DataPump;
            0   25     1  oldDisabled  [Z
            0   25     2  newDisabled  [Z
            1   25     3    tempArray  [[B
            3   20     5            i  I
      Exception table:
        from    to  target  type
           2    21      22  any
          22    23      22  any
    MethodParameters:
             Name  Flags
      oldDisabled  
      newDisabled  

  private void chaseTrackEvents(int, long, long, boolean, byte[][]);
    descriptor: (IJJZ[[B)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=17, args_size=6
        start local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
        start local 1 // int trackNum
        start local 2 // long startTick
        start local 4 // long endTick
        start local 6 // boolean doReindex
        start local 7 // byte[][] tempArray
         0: .line 1618
            lload 2 /* startTick */
            lload 4 /* endTick */
            lcmp
            ifle 2
         1: .line 1620
            lconst_0
            lstore 2 /* startTick */
         2: .line 1622
      StackMap locals:
      StackMap stack:
            bipush 16
            newarray 8
            astore 8 /* progs */
        start local 8 // byte[] progs
         3: .line 1624
            iconst_0
            istore 9 /* ch */
        start local 9 // int ch
         4: goto 12
         5: .line 1625
      StackMap locals: byte[] int
      StackMap stack:
            aload 8 /* progs */
            iload 9 /* ch */
            iconst_m1
            bastore
         6: .line 1626
            iconst_0
            istore 10 /* co */
        start local 10 // int co
         7: goto 10
         8: .line 1627
      StackMap locals: int
      StackMap stack:
            aload 7 /* tempArray */
            iload 10 /* co */
            aaload
            iload 9 /* ch */
            iconst_m1
            bastore
         9: .line 1626
            iinc 10 /* co */ 1
      StackMap locals:
      StackMap stack:
        10: iload 10 /* co */
            sipush 128
            if_icmplt 8
        end local 10 // int co
        11: .line 1624
            iinc 9 /* ch */ 1
      StackMap locals:
      StackMap stack:
        12: iload 9 /* ch */
            bipush 16
            if_icmplt 5
        end local 9 // int ch
        13: .line 1630
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.tracks:[Ljavax/sound/midi/Track;
            iload 1 /* trackNum */
            aaload
            astore 9 /* track */
        start local 9 // javax.sound.midi.Track track
        14: .line 1631
            aload 9 /* track */
            invokevirtual javax.sound.midi.Track.size:()I
            istore 10 /* size */
        start local 10 // int size
        15: .line 1633
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        16: goto 42
        17: .line 1634
      StackMap locals: com.sun.media.sound.RealTimeSequencer$DataPump int long long int byte[][] byte[] javax.sound.midi.Track int int
      StackMap stack:
            aload 9 /* track */
            iload 11 /* i */
            invokevirtual javax.sound.midi.Track.get:(I)Ljavax/sound/midi/MidiEvent;
            astore 12 /* event */
        start local 12 // javax.sound.midi.MidiEvent event
        18: .line 1635
            aload 12 /* event */
            invokevirtual javax.sound.midi.MidiEvent.getTick:()J
            lload 4 /* endTick */
            lcmp
            iflt 24
        19: .line 1636
            iload 6 /* doReindex */
            ifeq 45
            iload 1 /* trackNum */
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.trackReadPos:[I
            arraylength
            if_icmpge 45
        20: .line 1637
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.trackReadPos:[I
            iload 1 /* trackNum */
            iload 11 /* i */
            ifle 21
            iload 11 /* i */
            iconst_1
            isub
            goto 22
      StackMap locals: com.sun.media.sound.RealTimeSequencer$DataPump int long long int byte[][] byte[] javax.sound.midi.Track int int javax.sound.midi.MidiEvent
      StackMap stack: int[] int
        21: iconst_0
      StackMap locals: com.sun.media.sound.RealTimeSequencer$DataPump int long long int byte[][] byte[] javax.sound.midi.Track int int javax.sound.midi.MidiEvent
      StackMap stack: int[] int int
        22: iastore
        23: .line 1639
            goto 45
        24: .line 1641
      StackMap locals:
      StackMap stack:
            aload 12 /* event */
            invokevirtual javax.sound.midi.MidiEvent.getMessage:()Ljavax/sound/midi/MidiMessage;
            astore 13 /* msg */
        start local 13 // javax.sound.midi.MidiMessage msg
        25: .line 1642
            aload 13 /* msg */
            invokevirtual javax.sound.midi.MidiMessage.getStatus:()I
            istore 14 /* status */
        start local 14 // int status
        26: .line 1643
            aload 13 /* msg */
            invokevirtual javax.sound.midi.MidiMessage.getLength:()I
            istore 15 /* len */
        start local 15 // int len
        27: .line 1644
            iload 15 /* len */
            iconst_3
            if_icmpne 34
            iload 14 /* status */
            sipush 240
            iand
            sipush 176
            if_icmpne 34
        28: .line 1645
            aload 13 /* msg */
            instanceof javax.sound.midi.ShortMessage
            ifeq 32
        29: .line 1646
            aload 13 /* msg */
            checkcast javax.sound.midi.ShortMessage
            astore 16 /* smsg */
        start local 16 // javax.sound.midi.ShortMessage smsg
        30: .line 1647
            aload 7 /* tempArray */
            aload 16 /* smsg */
            invokevirtual javax.sound.midi.ShortMessage.getData1:()I
            bipush 127
            iand
            aaload
            iload 14 /* status */
            bipush 15
            iand
            aload 16 /* smsg */
            invokevirtual javax.sound.midi.ShortMessage.getData2:()I
            i2b
            bastore
        end local 16 // javax.sound.midi.ShortMessage smsg
        31: .line 1648
            goto 34
        32: .line 1649
      StackMap locals: javax.sound.midi.MidiMessage int int
      StackMap stack:
            aload 13 /* msg */
            invokevirtual javax.sound.midi.MidiMessage.getMessage:()[B
            astore 16 /* data */
        start local 16 // byte[] data
        33: .line 1650
            aload 7 /* tempArray */
            aload 16 /* data */
            iconst_1
            baload
            bipush 127
            iand
            aaload
            iload 14 /* status */
            bipush 15
            iand
            aload 16 /* data */
            iconst_2
            baload
            bastore
        end local 16 // byte[] data
        34: .line 1653
      StackMap locals:
      StackMap stack:
            iload 15 /* len */
            iconst_2
            if_icmpne 41
            iload 14 /* status */
            sipush 240
            iand
            sipush 192
            if_icmpne 41
        35: .line 1654
            aload 13 /* msg */
            instanceof javax.sound.midi.ShortMessage
            ifeq 39
        36: .line 1655
            aload 13 /* msg */
            checkcast javax.sound.midi.ShortMessage
            astore 16 /* smsg */
        start local 16 // javax.sound.midi.ShortMessage smsg
        37: .line 1656
            aload 8 /* progs */
            iload 14 /* status */
            bipush 15
            iand
            aload 16 /* smsg */
            invokevirtual javax.sound.midi.ShortMessage.getData1:()I
            i2b
            bastore
        end local 16 // javax.sound.midi.ShortMessage smsg
        38: .line 1657
            goto 41
        39: .line 1658
      StackMap locals:
      StackMap stack:
            aload 13 /* msg */
            invokevirtual javax.sound.midi.MidiMessage.getMessage:()[B
            astore 16 /* data */
        start local 16 // byte[] data
        40: .line 1659
            aload 8 /* progs */
            iload 14 /* status */
            bipush 15
            iand
            aload 16 /* data */
            iconst_1
            baload
            bastore
        end local 16 // byte[] data
        end local 15 // int len
        end local 14 // int status
        end local 13 // javax.sound.midi.MidiMessage msg
        end local 12 // javax.sound.midi.MidiEvent event
        41: .line 1633
      StackMap locals: com.sun.media.sound.RealTimeSequencer$DataPump int long long int byte[][] byte[] javax.sound.midi.Track int int
      StackMap stack:
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        42: iload 11 /* i */
            iload 10 /* size */
            if_icmplt 17
        end local 11 // int i
        43: .line 1663
            goto 45
      StackMap locals: com.sun.media.sound.RealTimeSequencer$DataPump int long long int byte[][] byte[] javax.sound.midi.Track int
      StackMap stack: java.lang.ArrayIndexOutOfBoundsException
        44: pop
        45: .line 1669
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 11 /* ch */
        start local 11 // int ch
        46: goto 61
        47: .line 1670
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 12 /* co */
        start local 12 // int co
        48: goto 54
        49: .line 1671
      StackMap locals: int
      StackMap stack:
            aload 7 /* tempArray */
            iload 12 /* co */
            aaload
            iload 11 /* ch */
            baload
            istore 13 /* controllerValue */
        start local 13 // byte controllerValue
        50: .line 1672
            iload 13 /* controllerValue */
            iflt 53
        51: .line 1673
            sipush 176
            iload 11 /* ch */
            ior
            iload 12 /* co */
            bipush 8
            ishl
            ior
            iload 13 /* controllerValue */
            bipush 16
            ishl
            ior
            istore 14 /* packedMsg */
        start local 14 // int packedMsg
        52: .line 1674
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            invokevirtual com.sun.media.sound.RealTimeSequencer.getTransmitterList:()Lcom/sun/media/sound/AbstractMidiDevice$TransmitterList;
            iload 14 /* packedMsg */
            ldc -1
            invokevirtual com.sun.media.sound.AbstractMidiDevice$TransmitterList.sendMessage:(IJ)V
        end local 14 // int packedMsg
        end local 13 // byte controllerValue
        53: .line 1670
      StackMap locals:
      StackMap stack:
            iinc 12 /* co */ 1
      StackMap locals:
      StackMap stack:
        54: iload 12 /* co */
            sipush 128
            if_icmplt 49
        end local 12 // int co
        55: .line 1680
            aload 8 /* progs */
            iload 11 /* ch */
            baload
            iflt 57
        56: .line 1681
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            invokevirtual com.sun.media.sound.RealTimeSequencer.getTransmitterList:()Lcom/sun/media/sound/AbstractMidiDevice$TransmitterList;
            sipush 192
            iload 11 /* ch */
            ior
            aload 8 /* progs */
            iload 11 /* ch */
            baload
            bipush 8
            ishl
            ior
            ldc -1
            invokevirtual com.sun.media.sound.AbstractMidiDevice$TransmitterList.sendMessage:(IJ)V
        57: .line 1683
      StackMap locals:
      StackMap stack:
            aload 8 /* progs */
            iload 11 /* ch */
            baload
            ifge 58
            lload 2 /* startTick */
            lconst_0
            lcmp
            ifeq 58
            lload 4 /* endTick */
            lconst_0
            lcmp
            ifne 60
        58: .line 1685
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            invokevirtual com.sun.media.sound.RealTimeSequencer.getTransmitterList:()Lcom/sun/media/sound/AbstractMidiDevice$TransmitterList;
            sipush 224
            iload 11 /* ch */
            ior
            ldc 4194304
            ior
            ldc -1
            invokevirtual com.sun.media.sound.AbstractMidiDevice$TransmitterList.sendMessage:(IJ)V
        59: .line 1687
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            invokevirtual com.sun.media.sound.RealTimeSequencer.getTransmitterList:()Lcom/sun/media/sound/AbstractMidiDevice$TransmitterList;
            sipush 176
            iload 11 /* ch */
            ior
            sipush 16384
            ior
            ldc -1
            invokevirtual com.sun.media.sound.AbstractMidiDevice$TransmitterList.sendMessage:(IJ)V
        60: .line 1669
      StackMap locals:
      StackMap stack:
            iinc 11 /* ch */ 1
      StackMap locals:
      StackMap stack:
        61: iload 11 /* ch */
            bipush 16
            if_icmplt 47
        end local 11 // int ch
        62: .line 1690
            return
        end local 10 // int size
        end local 9 // javax.sound.midi.Track track
        end local 8 // byte[] progs
        end local 7 // byte[][] tempArray
        end local 6 // boolean doReindex
        end local 4 // long endTick
        end local 2 // long startTick
        end local 1 // int trackNum
        end local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   63     0             this  Lcom/sun/media/sound/RealTimeSequencer$DataPump;
            0   63     1         trackNum  I
            0   63     2        startTick  J
            0   63     4          endTick  J
            0   63     6        doReindex  Z
            0   63     7        tempArray  [[B
            3   63     8            progs  [B
            4   13     9               ch  I
            7   11    10               co  I
           14   63     9            track  Ljavax/sound/midi/Track;
           15   63    10             size  I
           16   43    11                i  I
           18   41    12            event  Ljavax/sound/midi/MidiEvent;
           25   41    13              msg  Ljavax/sound/midi/MidiMessage;
           26   41    14           status  I
           27   41    15              len  I
           30   31    16             smsg  Ljavax/sound/midi/ShortMessage;
           33   34    16             data  [B
           37   38    16             smsg  Ljavax/sound/midi/ShortMessage;
           40   41    16             data  [B
           46   62    11               ch  I
           48   55    12               co  I
           50   53    13  controllerValue  B
           52   53    14        packedMsg  I
      Exception table:
        from    to  target  type
          15    43      44  Class java.lang.ArrayIndexOutOfBoundsException
    MethodParameters:
           Name  Flags
      trackNum   
      startTick  
      endTick    
      doReindex  
      tempArray  

  synchronized void chaseEvents(long, long);
    descriptor: (JJ)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=8, locals=7, args_size=3
        start local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
        start local 1 // long startTick
        start local 3 // long endTick
         0: .line 1696
            sipush 128
            bipush 16
            multianewarray [[B 2
            astore 5 /* tempArray */
        start local 5 // byte[][] tempArray
         1: .line 1697
            iconst_0
            istore 6 /* t */
        start local 6 // int t
         2: goto 8
         3: .line 1698
      StackMap locals: byte[][] int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.trackDisabled:[Z
            ifnull 6
         4: .line 1699
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.trackDisabled:[Z
            arraylength
            iload 6 /* t */
            if_icmple 6
         5: .line 1700
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.trackDisabled:[Z
            iload 6 /* t */
            baload
            ifne 7
         6: .line 1702
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 6 /* t */
            lload 1 /* startTick */
            lload 3 /* endTick */
            iconst_1
            aload 5 /* tempArray */
            invokevirtual com.sun.media.sound.RealTimeSequencer$DataPump.chaseTrackEvents:(IJJZ[[B)V
         7: .line 1697
      StackMap locals:
      StackMap stack:
            iinc 6 /* t */ 1
      StackMap locals:
      StackMap stack:
         8: iload 6 /* t */
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.tracks:[Ljavax/sound/midi/Track;
            arraylength
            if_icmplt 3
        end local 6 // int t
         9: .line 1705
            return
        end local 5 // byte[][] tempArray
        end local 3 // long endTick
        end local 1 // long startTick
        end local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lcom/sun/media/sound/RealTimeSequencer$DataPump;
            0   10     1  startTick  J
            0   10     3    endTick  J
            1   10     5  tempArray  [[B
            2    9     6          t  I
    MethodParameters:
           Name  Flags
      startTick  
      endTick    

  private long getCurrentTimeMillis();
    descriptor: ()J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
         0: .line 1710
            invokestatic java.lang.System.nanoTime:()J
            ldc 1000000
            ldiv
            lreturn
        end local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/media/sound/RealTimeSequencer$DataPump;

  private long millis2tick(long);
    descriptor: (J)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
        start local 1 // long millis
         0: .line 1715
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.divisionType:F
            fconst_0
            fcmpl
            ifeq 9
         1: .line 1716
            lload 1 /* millis */
            l2d
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.tempoFactor:F
            f2d
            dmul
         2: .line 1717
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.divisionType:F
            f2d
         3: .line 1716
            dmul
         4: .line 1718
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.resolution:I
            i2d
         5: .line 1716
            dmul
         6: .line 1719
            ldc 1000.0
         7: .line 1716
            ddiv
            dstore 3 /* dTick */
        start local 3 // double dTick
         8: .line 1720
            dload 3 /* dTick */
            d2l
            lreturn
        end local 3 // double dTick
         9: .line 1722
      StackMap locals:
      StackMap stack:
            lload 1 /* millis */
            ldc 1000
            lmul
        10: .line 1723
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.currTempo:F
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.inverseTempoFactor:F
            fmul
            f2d
        11: .line 1724
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.resolution:I
        12: .line 1722
            invokestatic com.sun.media.sound.MidiUtils.microsec2ticks:(JDI)J
            lreturn
        end local 1 // long millis
        end local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0    this  Lcom/sun/media/sound/RealTimeSequencer$DataPump;
            0   13     1  millis  J
            8    9     3   dTick  D
    MethodParameters:
        Name  Flags
      millis  

  private long tick2millis(long);
    descriptor: (J)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
        start local 1 // long tick
         0: .line 1728
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.divisionType:F
            fconst_0
            fcmpl
            ifeq 5
         1: .line 1729
            lload 1 /* tick */
            l2d
            ldc 1000.0
            dmul
         2: .line 1730
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.tempoFactor:F
            f2d
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.divisionType:F
            f2d
            dmul
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.resolution:I
            i2d
            dmul
         3: .line 1729
            ddiv
            dstore 3 /* dMillis */
        start local 3 // double dMillis
         4: .line 1731
            dload 3 /* dMillis */
            d2l
            lreturn
        end local 3 // double dMillis
         5: .line 1733
      StackMap locals:
      StackMap stack:
            lload 1 /* tick */
         6: .line 1734
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.currTempo:F
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.inverseTempoFactor:F
            fmul
            f2d
         7: .line 1735
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.resolution:I
         8: .line 1733
            invokestatic com.sun.media.sound.MidiUtils.ticks2microsec:(JDI)J
         9: .line 1735
            ldc 1000
        10: .line 1733
            ldiv
            lreturn
        end local 1 // long tick
        end local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lcom/sun/media/sound/RealTimeSequencer$DataPump;
            0   11     1     tick  J
            4    5     3  dMillis  D
    MethodParameters:
      Name  Flags
      tick  

  private void ReindexTrack(int, long);
    descriptor: (IJ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
        start local 1 // int trackNum
        start local 2 // long tick
         0: .line 1739
            iload 1 /* trackNum */
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.trackReadPos:[I
            arraylength
            if_icmpge 2
            iload 1 /* trackNum */
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.tracks:[Ljavax/sound/midi/Track;
            arraylength
            if_icmpge 2
         1: .line 1740
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.trackReadPos:[I
            iload 1 /* trackNum */
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.tracks:[Ljavax/sound/midi/Track;
            iload 1 /* trackNum */
            aaload
            lload 2 /* tick */
            invokestatic com.sun.media.sound.MidiUtils.tick2index:(Ljavax/sound/midi/Track;J)I
            iastore
         2: .line 1742
      StackMap locals:
      StackMap stack:
            return
        end local 2 // long tick
        end local 1 // int trackNum
        end local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/sun/media/sound/RealTimeSequencer$DataPump;
            0    3     1  trackNum  I
            0    3     2      tick  J
    MethodParameters:
          Name  Flags
      trackNum  
      tick      

  private boolean dispatchMessage(int, javax.sound.midi.MidiEvent);
    descriptor: (ILjavax/sound/midi/MidiEvent;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=10, args_size=3
        start local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
        start local 1 // int trackNum
        start local 2 // javax.sound.midi.MidiEvent event
         0: .line 1746
            iconst_0
            istore 3 /* changesPending */
        start local 3 // boolean changesPending
         1: .line 1747
            aload 2 /* event */
            invokevirtual javax.sound.midi.MidiEvent.getMessage:()Ljavax/sound/midi/MidiMessage;
            astore 4 /* message */
        start local 4 // javax.sound.midi.MidiMessage message
         2: .line 1748
            aload 4 /* message */
            invokevirtual javax.sound.midi.MidiMessage.getStatus:()I
            istore 5 /* msgStatus */
        start local 5 // int msgStatus
         3: .line 1749
            aload 4 /* message */
            invokevirtual javax.sound.midi.MidiMessage.getLength:()I
            istore 6 /* msgLen */
        start local 6 // int msgLen
         4: .line 1750
            iload 5 /* msgStatus */
            sipush 255
            if_icmpne 14
            iload 6 /* msgLen */
            iconst_2
            if_icmplt 14
         5: .line 1757
            iload 1 /* trackNum */
            ifne 12
         6: .line 1758
            aload 4 /* message */
            invokestatic com.sun.media.sound.MidiUtils.getTempoMPQ:(Ljavax/sound/midi/MidiMessage;)I
            istore 7 /* newTempo */
        start local 7 // int newTempo
         7: .line 1759
            iload 7 /* newTempo */
            ifle 12
         8: .line 1760
            aload 2 /* event */
            invokevirtual javax.sound.midi.MidiEvent.getTick:()J
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.ignoreTempoEventAt:J
            lcmp
            ifeq 11
         9: .line 1761
            aload 0 /* this */
            iload 7 /* newTempo */
            i2f
            invokevirtual com.sun.media.sound.RealTimeSequencer$DataPump.setTempoMPQ:(F)V
        10: .line 1762
            iconst_1
            istore 3 /* changesPending */
        11: .line 1765
      StackMap locals: com.sun.media.sound.RealTimeSequencer$DataPump int javax.sound.midi.MidiEvent int javax.sound.midi.MidiMessage int int int
      StackMap stack:
            aload 0 /* this */
            ldc -1
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.ignoreTempoEventAt:J
        end local 7 // int newTempo
        12: .line 1769
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            aload 4 /* message */
            invokevirtual com.sun.media.sound.RealTimeSequencer.sendMetaEvents:(Ljavax/sound/midi/MidiMessage;)V
        13: .line 1771
            goto 28
        14: .line 1773
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            invokevirtual com.sun.media.sound.RealTimeSequencer.getTransmitterList:()Lcom/sun/media/sound/AbstractMidiDevice$TransmitterList;
            aload 4 /* message */
            ldc -1
            invokevirtual com.sun.media.sound.AbstractMidiDevice$TransmitterList.sendMessage:(Ljavax/sound/midi/MidiMessage;J)V
        15: .line 1775
            iload 5 /* msgStatus */
            sipush 240
            iand
            lookupswitch { // 3
                  128: 16
                  144: 19
                  176: 27
              default: 28
          }
        16: .line 1778
      StackMap locals:
      StackMap stack:
            aload 4 /* message */
            checkcast javax.sound.midi.ShortMessage
            invokevirtual javax.sound.midi.ShortMessage.getData1:()I
            bipush 127
            iand
            istore 7 /* note */
        start local 7 // int note
        17: .line 1779
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.noteOnCache:[I
            iload 7 /* note */
            dup2
            iaload
            ldc 65535
            iconst_1
            iload 5 /* msgStatus */
            bipush 15
            iand
            ishl
            ixor
            iand
            iastore
        18: .line 1780
            goto 28
        end local 7 // int note
        19: .line 1785
      StackMap locals:
      StackMap stack:
            aload 4 /* message */
            checkcast javax.sound.midi.ShortMessage
            astore 7 /* smsg */
        start local 7 // javax.sound.midi.ShortMessage smsg
        20: .line 1786
            aload 7 /* smsg */
            invokevirtual javax.sound.midi.ShortMessage.getData1:()I
            bipush 127
            iand
            istore 8 /* note */
        start local 8 // int note
        21: .line 1787
            aload 7 /* smsg */
            invokevirtual javax.sound.midi.ShortMessage.getData2:()I
            bipush 127
            iand
            istore 9 /* vel */
        start local 9 // int vel
        22: .line 1788
            iload 9 /* vel */
            ifle 25
        23: .line 1790
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.noteOnCache:[I
            iload 8 /* note */
            dup2
            iaload
            iconst_1
            iload 5 /* msgStatus */
            bipush 15
            iand
            ishl
            ior
            iastore
        24: .line 1791
            goto 28
        25: .line 1793
      StackMap locals: javax.sound.midi.ShortMessage int int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.noteOnCache:[I
            iload 8 /* note */
            dup2
            iaload
            ldc 65535
            iconst_1
            iload 5 /* msgStatus */
            bipush 15
            iand
            ishl
            ixor
            iand
            iastore
        26: .line 1795
            goto 28
        end local 9 // int vel
        end local 8 // int note
        end local 7 // javax.sound.midi.ShortMessage smsg
        27: .line 1800
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            aload 4 /* message */
            invokevirtual com.sun.media.sound.RealTimeSequencer.sendControllerEvents:(Ljavax/sound/midi/MidiMessage;)V
        28: .line 1805
      StackMap locals:
      StackMap stack:
            iload 3 /* changesPending */
            ireturn
        end local 6 // int msgLen
        end local 5 // int msgStatus
        end local 4 // javax.sound.midi.MidiMessage message
        end local 3 // boolean changesPending
        end local 2 // javax.sound.midi.MidiEvent event
        end local 1 // int trackNum
        end local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   29     0            this  Lcom/sun/media/sound/RealTimeSequencer$DataPump;
            0   29     1        trackNum  I
            0   29     2           event  Ljavax/sound/midi/MidiEvent;
            1   29     3  changesPending  Z
            2   29     4         message  Ljavax/sound/midi/MidiMessage;
            3   29     5       msgStatus  I
            4   29     6          msgLen  I
            7   12     7        newTempo  I
           17   19     7            note  I
           20   27     7            smsg  Ljavax/sound/midi/ShortMessage;
           21   27     8            note  I
           22   27     9             vel  I
    MethodParameters:
          Name  Flags
      trackNum  
      event     

  synchronized boolean pump();
    descriptor: ()Z
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=8, locals=15, args_size=1
        start local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
         0: .line 1813
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.lastTick:J
            lstore 3 /* targetTick */
        start local 3 // long targetTick
         1: .line 1815
            iconst_0
            istore 6 /* changesPending */
        start local 6 // boolean changesPending
         2: .line 1816
            iconst_0
            istore 7 /* doLoop */
        start local 7 // boolean doLoop
         3: .line 1817
            iconst_0
            istore 8 /* EOM */
        start local 8 // boolean EOM
         4: .line 1819
            aload 0 /* this */
            invokevirtual com.sun.media.sound.RealTimeSequencer$DataPump.getCurrentTimeMillis:()J
            lstore 1 /* currMillis */
        start local 1 // long currMillis
         5: .line 1820
            iconst_0
            istore 9 /* finishedTracks */
        start local 9 // int finishedTracks
         6: .line 1822
      StackMap locals: com.sun.media.sound.RealTimeSequencer$DataPump long long top int int int int
      StackMap stack:
            iconst_0
            istore 6 /* changesPending */
         7: .line 1825
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.needReindex:Z
            ifeq 17
         8: .line 1826
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.trackReadPos:[I
            arraylength
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.tracks:[Ljavax/sound/midi/Track;
            arraylength
            if_icmpge 10
         9: .line 1827
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.tracks:[Ljavax/sound/midi/Track;
            arraylength
            newarray 10
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.trackReadPos:[I
        10: .line 1829
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 10 /* t */
        start local 10 // int t
        11: goto 14
        12: .line 1830
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 10 /* t */
            lload 3 /* targetTick */
            invokevirtual com.sun.media.sound.RealTimeSequencer$DataPump.ReindexTrack:(IJ)V
        13: .line 1829
            iinc 10 /* t */ 1
      StackMap locals:
      StackMap stack:
        14: iload 10 /* t */
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.tracks:[Ljavax/sound/midi/Track;
            arraylength
            if_icmplt 12
        end local 10 // int t
        15: .line 1832
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.needReindex:Z
        16: .line 1833
            aload 0 /* this */
            lconst_0
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.checkPointMillis:J
        17: .line 1837
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.checkPointMillis:J
            lconst_0
            lcmp
            ifne 23
        18: .line 1839
            aload 0 /* this */
            invokevirtual com.sun.media.sound.RealTimeSequencer$DataPump.getCurrentTimeMillis:()J
            lstore 1 /* currMillis */
        19: .line 1840
            aload 0 /* this */
            lload 1 /* currMillis */
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.checkPointMillis:J
        20: .line 1841
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.lastTick:J
            lstore 3 /* targetTick */
        21: .line 1842
            aload 0 /* this */
            lload 3 /* targetTick */
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.checkPointTick:J
        22: .line 1843
            goto 31
        23: .line 1845
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.checkPointTick:J
            aload 0 /* this */
            lload 1 /* currMillis */
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.checkPointMillis:J
            lsub
            invokevirtual com.sun.media.sound.RealTimeSequencer$DataPump.millis2tick:(J)J
            ladd
            lstore 3 /* targetTick */
        24: .line 1846
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            getfield com.sun.media.sound.RealTimeSequencer.loopEnd:J
            ldc -1
            lcmp
            ifeq 30
        25: .line 1847
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            getfield com.sun.media.sound.RealTimeSequencer.loopCount:I
            ifle 26
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.currLoopCounter:I
            ifgt 27
        26: .line 1848
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            getfield com.sun.media.sound.RealTimeSequencer.loopCount:I
            iconst_m1
            if_icmpne 30
        27: .line 1849
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.lastTick:J
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            getfield com.sun.media.sound.RealTimeSequencer.loopEnd:J
            lcmp
            ifgt 30
            lload 3 /* targetTick */
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            getfield com.sun.media.sound.RealTimeSequencer.loopEnd:J
            lcmp
            iflt 30
        28: .line 1852
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            getfield com.sun.media.sound.RealTimeSequencer.loopEnd:J
            lconst_1
            lsub
            lstore 3 /* targetTick */
        29: .line 1853
            iconst_1
            istore 7 /* doLoop */
        30: .line 1856
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 3 /* targetTick */
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.lastTick:J
        31: .line 1859
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 9 /* finishedTracks */
        32: .line 1861
            iconst_0
            istore 10 /* t */
        start local 10 // int t
        33: goto 62
        34: .line 1863
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.trackDisabled:[Z
            iload 10 /* t */
            baload
            istore 11 /* disabled */
        start local 11 // boolean disabled
        35: .line 1864
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.tracks:[Ljavax/sound/midi/Track;
            iload 10 /* t */
            aaload
            astore 12 /* thisTrack */
        start local 12 // javax.sound.midi.Track thisTrack
        36: .line 1865
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.trackReadPos:[I
            iload 10 /* t */
            iaload
            istore 13 /* readPos */
        start local 13 // int readPos
        37: .line 1866
            aload 12 /* thisTrack */
            invokevirtual javax.sound.midi.Track.size:()I
            istore 14 /* size */
        start local 14 // int size
        38: .line 1868
            goto 46
        start local 5 // javax.sound.midi.MidiEvent currEvent
        39: .line 1871
      StackMap locals: com.sun.media.sound.RealTimeSequencer$DataPump long long javax.sound.midi.MidiEvent int int int int int int javax.sound.midi.Track int int
      StackMap stack:
            iload 13 /* readPos */
            iload 14 /* size */
            iconst_1
            isub
            if_icmpne 42
            aload 5 /* currEvent */
            invokevirtual javax.sound.midi.MidiEvent.getMessage:()Ljavax/sound/midi/MidiMessage;
            invokestatic com.sun.media.sound.MidiUtils.isMetaEndOfTrack:(Ljavax/sound/midi/MidiMessage;)Z
            ifeq 42
        40: .line 1873
            iload 14 /* size */
            istore 13 /* readPos */
        41: .line 1874
            goto 50
        42: .line 1879
      StackMap locals:
      StackMap stack:
            iinc 13 /* readPos */ 1
        43: .line 1884
            iload 11 /* disabled */
            ifeq 45
        44: .line 1885
            iload 10 /* t */
            ifne 46
            aload 5 /* currEvent */
            invokevirtual javax.sound.midi.MidiEvent.getMessage:()Ljavax/sound/midi/MidiMessage;
            invokestatic com.sun.media.sound.MidiUtils.isMetaTempo:(Ljavax/sound/midi/MidiMessage;)Z
            ifeq 46
        45: .line 1886
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 10 /* t */
            aload 5 /* currEvent */
            invokevirtual com.sun.media.sound.RealTimeSequencer$DataPump.dispatchMessage:(ILjavax/sound/midi/MidiEvent;)Z
            istore 6 /* changesPending */
        end local 5 // javax.sound.midi.MidiEvent currEvent
        46: .line 1868
      StackMap locals: com.sun.media.sound.RealTimeSequencer$DataPump long long top int int int int int int javax.sound.midi.Track int int
      StackMap stack:
            iload 6 /* changesPending */
            ifne 50
            iload 13 /* readPos */
            iload 14 /* size */
            if_icmpge 50
        47: .line 1869
            aload 12 /* thisTrack */
            iload 13 /* readPos */
            invokevirtual javax.sound.midi.Track.get:(I)Ljavax/sound/midi/MidiEvent;
            dup
            astore 5 /* currEvent */
        start local 5 // javax.sound.midi.MidiEvent currEvent
        48: invokevirtual javax.sound.midi.MidiEvent.getTick:()J
            lload 3 /* targetTick */
        49: .line 1868
            lcmp
            ifle 39
        end local 5 // javax.sound.midi.MidiEvent currEvent
        50: .line 1889
      StackMap locals:
      StackMap stack:
            iload 13 /* readPos */
            iload 14 /* size */
            if_icmplt 52
        51: .line 1890
            iinc 9 /* finishedTracks */ 1
        52: .line 1892
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.trackReadPos:[I
            iload 10 /* t */
            iload 13 /* readPos */
            iastore
        end local 14 // int size
        end local 13 // int readPos
        end local 12 // javax.sound.midi.Track thisTrack
        end local 11 // boolean disabled
        53: .line 1893
            goto 59
      StackMap locals: com.sun.media.sound.RealTimeSequencer$DataPump long long top int int int int int
      StackMap stack: java.lang.Exception
        54: astore 11 /* e */
        start local 11 // java.lang.Exception e
        55: .line 1894
            getstatic com.sun.media.sound.Printer.err:Z
            ifeq 56
            aload 11 /* e */
            invokevirtual java.lang.Exception.printStackTrace:()V
        56: .line 1895
      StackMap locals: java.lang.Exception
      StackMap stack:
            aload 11 /* e */
            instanceof java.lang.ArrayIndexOutOfBoundsException
            ifeq 59
        57: .line 1896
            aload 0 /* this */
            iconst_1
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.needReindex:Z
        58: .line 1897
            iconst_1
            istore 6 /* changesPending */
        end local 11 // java.lang.Exception e
        59: .line 1900
      StackMap locals:
      StackMap stack:
            iload 6 /* changesPending */
            ifeq 61
        60: .line 1901
            goto 63
        61: .line 1861
      StackMap locals:
      StackMap stack:
            iinc 10 /* t */ 1
      StackMap locals:
      StackMap stack:
        62: iload 10 /* t */
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.tracks:[Ljavax/sound/midi/Track;
            arraylength
            if_icmplt 34
        end local 10 // int t
        63: .line 1904
      StackMap locals:
      StackMap stack:
            iload 9 /* finishedTracks */
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.tracks:[Ljavax/sound/midi/Track;
            arraylength
            if_icmpne 64
            iconst_1
            goto 65
      StackMap locals:
      StackMap stack:
        64: iconst_0
      StackMap locals:
      StackMap stack: int
        65: istore 8 /* EOM */
        66: .line 1905
            iload 7 /* doLoop */
            ifne 72
        67: .line 1906
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            getfield com.sun.media.sound.RealTimeSequencer.loopCount:I
            ifle 68
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.currLoopCounter:I
            ifgt 69
        68: .line 1907
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            getfield com.sun.media.sound.RealTimeSequencer.loopCount:I
            iconst_m1
            if_icmpne 85
        69: .line 1908
      StackMap locals:
      StackMap stack:
            iload 6 /* changesPending */
            ifne 85
        70: .line 1909
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            getfield com.sun.media.sound.RealTimeSequencer.loopEnd:J
            ldc -1
            lcmp
            ifne 85
        71: .line 1910
            iload 8 /* EOM */
            ifeq 85
        72: .line 1912
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.checkPointMillis:J
            lstore 10 /* oldCheckPointMillis */
        start local 10 // long oldCheckPointMillis
        73: .line 1913
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            getfield com.sun.media.sound.RealTimeSequencer.loopEnd:J
            lstore 12 /* loopEndTick */
        start local 12 // long loopEndTick
        74: .line 1914
            lload 12 /* loopEndTick */
            ldc -1
            lcmp
            ifne 76
        75: .line 1915
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.lastTick:J
            lstore 12 /* loopEndTick */
        76: .line 1919
      StackMap locals: long long
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            getfield com.sun.media.sound.RealTimeSequencer.loopCount:I
            iconst_m1
            if_icmpeq 78
        77: .line 1920
            aload 0 /* this */
            dup
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.currLoopCounter:I
            iconst_1
            isub
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.currLoopCounter:I
        78: .line 1922
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            getfield com.sun.media.sound.RealTimeSequencer.loopStart:J
            invokevirtual com.sun.media.sound.RealTimeSequencer$DataPump.setTickPos:(J)V
        79: .line 1931
            aload 0 /* this */
            lload 10 /* oldCheckPointMillis */
            aload 0 /* this */
            lload 12 /* loopEndTick */
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.checkPointTick:J
            lsub
            invokevirtual com.sun.media.sound.RealTimeSequencer$DataPump.tick2millis:(J)J
            ladd
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.checkPointMillis:J
        80: .line 1932
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.media.sound.RealTimeSequencer$DataPump.this$0:Lcom/sun/media/sound/RealTimeSequencer;
            getfield com.sun.media.sound.RealTimeSequencer.loopStart:J
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.checkPointTick:J
        81: .line 1934
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.RealTimeSequencer$DataPump.needReindex:Z
        82: .line 1935
            iconst_0
            istore 6 /* changesPending */
        83: .line 1937
            iconst_0
            istore 7 /* doLoop */
        84: .line 1938
            iconst_0
            istore 8 /* EOM */
        end local 12 // long loopEndTick
        end local 10 // long oldCheckPointMillis
        85: .line 1940
      StackMap locals:
      StackMap stack:
            iload 6 /* changesPending */
            ifne 6
        86: .line 1942
            iload 8 /* EOM */
            ireturn
        end local 9 // int finishedTracks
        end local 8 // boolean EOM
        end local 7 // boolean doLoop
        end local 6 // boolean changesPending
        end local 3 // long targetTick
        end local 1 // long currMillis
        end local 0 // com.sun.media.sound.RealTimeSequencer$DataPump this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   87     0                 this  Lcom/sun/media/sound/RealTimeSequencer$DataPump;
            5   87     1           currMillis  J
            1   87     3           targetTick  J
           39   46     5            currEvent  Ljavax/sound/midi/MidiEvent;
           48   50     5            currEvent  Ljavax/sound/midi/MidiEvent;
            2   87     6       changesPending  Z
            3   87     7               doLoop  Z
            4   87     8                  EOM  Z
            6   87     9       finishedTracks  I
           11   15    10                    t  I
           33   63    10                    t  I
           35   53    11             disabled  Z
           36   53    12            thisTrack  Ljavax/sound/midi/Track;
           37   53    13              readPos  I
           38   53    14                 size  I
           55   59    11                    e  Ljava/lang/Exception;
           73   85    10  oldCheckPointMillis  J
           74   85    12          loopEndTick  J
      Exception table:
        from    to  target  type
          34    53      54  Class java.lang.Exception
}
SourceFile: "RealTimeSequencer.java"
NestHost: com.sun.media.sound.RealTimeSequencer
InnerClasses:
  final TransmitterList = com.sun.media.sound.AbstractMidiDevice$TransmitterList of com.sun.media.sound.AbstractMidiDevice
  public final TempoCache = com.sun.media.sound.MidiUtils$TempoCache of com.sun.media.sound.MidiUtils
  private DataPump = com.sun.media.sound.RealTimeSequencer$DataPump of com.sun.media.sound.RealTimeSequencer