Class #9            -
  Class descriptor  : 'Lcom/valentinedesigns/chromalink/ArcadeAudio;'
  Access flags      : 0x0011 (PUBLIC FINAL)
  Superclass        : 'Ljava/lang/Object;'
  Interfaces        -
  Static fields     -
    #0              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'CHANNELS'
      type          : 'I'
      access        : 0x001a (PRIVATE STATIC FINAL)
      value         : 2
    #1              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'CHUNK_FRAMES'
      type          : 'I'
      access        : 0x001a (PRIVATE STATIC FINAL)
      value         : 512
    #2              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'MAX_FRAMES'
      type          : 'I'
      access        : 0x001a (PRIVATE STATIC FINAL)
      value         : 10584000
    #3              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'SAMPLE_RATE'
      type          : 'I'
      access        : 0x001a (PRIVATE STATIC FINAL)
      value         : 44100
    #4              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'TRACK_IDS'
      type          : '[Ljava/lang/String;'
      access        : 0x0049 (PUBLIC STATIC VOLATILE)
    #5              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'TRACK_NAMES'
      type          : '[Ljava/lang/String;'
      access        : 0x0049 (PUBLIC STATIC VOLATILE)
  Instance fields   -
    #0              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'assets'
      type          : 'Landroid/content/res/AssetManager;'
      access        : 0x0012 (PRIVATE FINAL)
    #1              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'audibleBundle'
      type          : 'Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;'
      access        : 0x0042 (PRIVATE VOLATILE)
    #2              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'audibleSongFrame'
      type          : 'J'
      access        : 0x0042 (PRIVATE VOLATILE)
    #3              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'automaticChangeAllowed'
      type          : 'Z'
      access        : 0x0042 (PRIVATE VOLATILE)
    #4              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'automaticRequest'
      type          : 'Z'
      access        : 0x0042 (PRIVATE VOLATILE)
    #5              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'automaticTracks'
      type          : '[Z'
      access        : 0x0012 (PRIVATE FINAL)
    #6              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'currentIndex'
      type          : 'I'
      access        : 0x0042 (PRIVATE VOLATILE)
    #7              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'decodeGeneration'
      type          : 'I'
      access        : 0x0042 (PRIVATE VOLATILE)
    #8              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'decodeSignal'
      type          : 'Ljava/lang/Object;'
      access        : 0x0012 (PRIVATE FINAL)
    #9              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'decoderThread'
      type          : 'Ljava/lang/Thread;'
      access        : 0x0012 (PRIVATE FINAL)
    #10              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'effects'
      type          : 'Ljava/util/concurrent/ConcurrentLinkedQueue;'
      access        : 0x0012 (PRIVATE FINAL)
    #11              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'effectsEnabled'
      type          : 'Z'
      access        : 0x0042 (PRIVATE VOLATILE)
    #12              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'effectsVolume'
      type          : 'F'
      access        : 0x0042 (PRIVATE VOLATILE)
    #13              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'loss'
      type          : 'Z'
      access        : 0x0042 (PRIVATE VOLATILE)
    #14              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'lossCue'
      type          : 'Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm;'
      access        : 0x0042 (PRIVATE VOLATILE)
    #15              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'masterMuted'
      type          : 'Z'
      access        : 0x0042 (PRIVATE VOLATILE)
    #16              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'mixerThread'
      type          : 'Ljava/lang/Thread;'
      access        : 0x0012 (PRIVATE FINAL)
    #17              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'musicEnabled'
      type          : 'Z'
      access        : 0x0042 (PRIVATE VOLATILE)
    #18              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'musicFade'
      type          : 'Lcom/valentinedesigns/chromalink/MusicFade;'
      access        : 0x0012 (PRIVATE FINAL)
    #19              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'musicVolume'
      type          : 'F'
      access        : 0x0042 (PRIVATE VOLATILE)
    #20              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'playbackSignal'
      type          : 'Ljava/lang/Object;'
      access        : 0x0012 (PRIVATE FINAL)
    #21              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'playingBundle'
      type          : 'Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;'
      access        : 0x0042 (PRIVATE VOLATILE)
    #22              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'prefetchedBundle'
      type          : 'Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;'
      access        : 0x0042 (PRIVATE VOLATILE)
    #23              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'pressure'
      type          : 'F'
      access        : 0x0042 (PRIVATE VOLATILE)
    #24              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'previousBundle'
      type          : 'Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;'
      access        : 0x0042 (PRIVATE VOLATILE)
    #25              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'released'
      type          : 'Z'
      access        : 0x0042 (PRIVATE VOLATILE)
    #26              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'retryLoop'
      type          : 'Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm;'
      access        : 0x0042 (PRIVATE VOLATILE)
    #27              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'roots'
      type          : '[F'
      access        : 0x0042 (PRIVATE VOLATILE)
    #28              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'rotateTracks'
      type          : 'Z'
      access        : 0x0042 (PRIVATE VOLATILE)
    #29              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'selectedBundle'
      type          : 'Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;'
      access        : 0x0042 (PRIVATE VOLATILE)
    #30              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'selectedIndex'
      type          : 'I'
      access        : 0x0042 (PRIVATE VOLATILE)
    #31              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'selectionVersion'
      type          : 'I'
      access        : 0x0042 (PRIVATE VOLATILE)
    #32              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'state'
      type          : 'Ljava/lang/String;'
      access        : 0x0042 (PRIVATE VOLATILE)
    #33              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'suspended'
      type          : 'Z'
      access        : 0x0042 (PRIVATE VOLATILE)
    #34              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'trackSpecs'
      type          : '[Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec;'
      access        : 0x0012 (PRIVATE FINAL)
  Direct methods    -
    #0              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : '$r8$lambda$jGqMK3RM-B7svODPZIKL7hrHNzs'
      type          : '(Lcom/valentinedesigns/chromalink/ArcadeAudio;)V'
      access        : 0x1009 (PUBLIC STATIC SYNTHETIC)
      code          -
      registers     : 1
      ins           : 1
      outs          : 1
      insns size    : 4 16-bit code units
00c930:                                        |[00c930] com.valentinedesigns.chromalink.ArcadeAudio.$r8$lambda$jGqMK3RM-B7svODPZIKL7hrHNzs:(Lcom/valentinedesigns/chromalink/ArcadeAudio;)V
00c940: 7010 ff01 0000                         |0000: invoke-direct {v0}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.mixLoop:()V // method@01ff
00c946: 0e00                                   |0003: return-void
      catches       : (none)
      positions     :
      locals        :

    #1              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : '$r8$lambda$qkLTcuJN0NJo89i3L71TpQPeRtI'
      type          : '(Lcom/valentinedesigns/chromalink/ArcadeAudio;)V'
      access        : 0x1009 (PUBLIC STATIC SYNTHETIC)
      code          -
      registers     : 1
      ins           : 1
      outs          : 1
      insns size    : 4 16-bit code units
00c948:                                        |[00c948] com.valentinedesigns.chromalink.ArcadeAudio.$r8$lambda$qkLTcuJN0NJo89i3L71TpQPeRtI:(Lcom/valentinedesigns/chromalink/ArcadeAudio;)V
00c958: 7010 f701 0000                         |0000: invoke-direct {v0}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decodeLoop:()V // method@01f7
00c95e: 0e00                                   |0003: return-void
      catches       : (none)
      positions     :
      locals        :

    #2              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : '<clinit>'
      type          : '()V'
      access        : 0x10008 (STATIC CONSTRUCTOR)
      code          -
      registers     : 5
      ins           : 0
      outs          : 5
      insns size    : 33 16-bit code units
00c960:                                        |[00c960] com.valentinedesigns.chromalink.ArcadeAudio.<clinit>:()V
00c970: 1a00 8c08                              |0000: const-string v0, "neon-noodle" // string@088c
00c974: 1a01 2109                              |0002: const-string v1, "pixel-parade" // string@0921
00c978: 1a02 5609                              |0004: const-string v2, "quarter-goblin" // string@0956
00c97c: 1a03 c90a                              |0006: const-string v3, "sugar-rush" // string@0ac9
00c980: 1a04 2a07                              |0008: const-string v4, "full-tilt" // string@072a
00c984: 2451 8001 3204                         |000a: filled-new-array {v2, v3, v4, v0, v1}, [Ljava/lang/String; // type@0180
00c98a: 0c00                                   |000d: move-result-object v0
00c98c: 6900 4c00                              |000e: sput-object v0, Lcom/valentinedesigns/chromalink/ArcadeAudio;.TRACK_IDS:[Ljava/lang/String; // field@004c
00c990: 1a00 e103                              |0010: const-string v0, "Neon Noodle" // string@03e1
00c994: 1a01 2704                              |0012: const-string v1, "Pixel Parade" // string@0427
00c998: 1a02 3904                              |0014: const-string v2, "Quarter Goblin" // string@0439
00c99c: 1a03 9304                              |0016: const-string v3, "Sugar Rush" // string@0493
00c9a0: 1a04 9901                              |0018: const-string v4, "Full Tilt" // string@0199
00c9a4: 2451 8001 3204                         |001a: filled-new-array {v2, v3, v4, v0, v1}, [Ljava/lang/String; // type@0180
00c9aa: 0c00                                   |001d: move-result-object v0
00c9ac: 6900 4d00                              |001e: sput-object v0, Lcom/valentinedesigns/chromalink/ArcadeAudio;.TRACK_NAMES:[Ljava/lang/String; // field@004d
00c9b0: 0e00                                   |0020: return-void
      catches       : (none)
      positions     :
        0x0000 line=45
        0x0010 line=48
      locals        :

    #3              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : '<init>'
      type          : '(Landroid/content/Context;)V'
      access        : 0x10001 (PUBLIC CONSTRUCTOR)
      code          -
      registers     : 4
      ins           : 2
      outs          : 3
      insns size    : 182 16-bit code units
00c9b4:                                        |[00c9b4] com.valentinedesigns.chromalink.ArcadeAudio.<init>:(Landroid/content/Context;)V
00c9c4: 7010 5006 0200                         |0000: invoke-direct {v2}, Ljava/lang/Object;.<init>:()V // method@0650
00c9ca: 2200 4301                              |0003: new-instance v0, Ljava/lang/Object; // type@0143
00c9ce: 7010 5006 0000                         |0005: invoke-direct {v0}, Ljava/lang/Object;.<init>:()V // method@0650
00c9d4: 5b20 5600                              |0008: iput-object v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decodeSignal:Ljava/lang/Object; // field@0056
00c9d8: 2200 4301                              |000a: new-instance v0, Ljava/lang/Object; // type@0143
00c9dc: 7010 5006 0000                         |000c: invoke-direct {v0}, Ljava/lang/Object;.<init>:()V // method@0650
00c9e2: 5b20 6200                              |000f: iput-object v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.playbackSignal:Ljava/lang/Object; // field@0062
00c9e6: 2200 6701                              |0011: new-instance v0, Ljava/util/concurrent/ConcurrentLinkedQueue; // type@0167
00c9ea: 7010 a506 0000                         |0013: invoke-direct {v0}, Ljava/util/concurrent/ConcurrentLinkedQueue;.<init>:()V // method@06a5
00c9f0: 5b20 5800                              |0016: iput-object v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.effects:Ljava/util/concurrent/ConcurrentLinkedQueue; // field@0058
00c9f4: 1210                                   |0018: const/4 v0, #int 1 // #1
00c9f6: 5c20 6f00                              |0019: iput-boolean v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.suspended:Z // field@006f
00c9fa: 5c20 5f00                              |001b: iput-boolean v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.musicEnabled:Z // field@005f
00c9fe: 5c20 5900                              |001d: iput-boolean v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.effectsEnabled:Z // field@0059
00ca02: 5c20 6a00                              |001f: iput-boolean v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.rotateTracks:Z // field@006a
00ca06: 5c20 5100                              |0021: iput-boolean v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.automaticChangeAllowed:Z // field@0051
00ca0a: 5920 5500                              |0023: iput v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decodeGeneration:I // field@0055
00ca0e: 1400 9a99 593f                         |0025: const v0, #float 0.85 // #3f59999a
00ca14: 5920 6100                              |0028: iput v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.musicVolume:F // field@0061
00ca18: 1400 cdcc 4c3f                         |002a: const v0, #float 0.8 // #3f4ccccd
00ca1e: 5920 5a00                              |002d: iput v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.effectsVolume:F // field@005a
00ca22: 2200 1201                              |002f: new-instance v0, Lcom/valentinedesigns/chromalink/MusicFade; // type@0112
00ca26: 7010 6005 0000                         |0031: invoke-direct {v0}, Lcom/valentinedesigns/chromalink/MusicFade;.<init>:()V // method@0560
00ca2c: 5b20 6000                              |0034: iput-object v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.musicFade:Lcom/valentinedesigns/chromalink/MusicFade; // field@0060
00ca30: 1a00 a203                              |0036: const-string v0, "Loading music" // string@03a2
00ca34: 5b20 6e00                              |0038: iput-object v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.state:Ljava/lang/String; // field@006e
00ca38: 1250                                   |003a: const/4 v0, #int 5 // #5
00ca3a: 2300 7401                              |003b: new-array v0, v0, [F // type@0174
00ca3e: 2600 6b00 0000                         |003d: fill-array-data v0, 000000a8 // +0000006b
00ca44: 5b20 6900                              |0040: iput-object v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.roots:[F // field@0069
00ca48: 6e10 0d00 0300                         |0042: invoke-virtual {v3}, Landroid/content/Context;.getApplicationContext:()Landroid/content/Context; // method@000d
00ca4e: 0c03                                   |0045: move-result-object v3
00ca50: 6e10 0f00 0300                         |0046: invoke-virtual {v3}, Landroid/content/Context;.getAssets:()Landroid/content/res/AssetManager; // method@000f
00ca56: 0c03                                   |0049: move-result-object v3
00ca58: 5b23 4e00                              |004a: iput-object v3, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.assets:Landroid/content/res/AssetManager; // field@004e
00ca5c: 7010 0402 0200                         |004c: invoke-direct {v2}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.readTrackSpecs:()[Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec; // method@0204
00ca62: 0c03                                   |004f: move-result-object v3
00ca64: 5b23 7000                              |0050: iput-object v3, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.trackSpecs:[Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec; // field@0070
00ca68: 0000                                   |0052: nop // spacer
00ca6a: 5423 7000                              |0053: iget-object v3, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.trackSpecs:[Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec; // field@0070
00ca6e: 2133                                   |0055: array-length v3, v3
00ca70: 2333 8301                              |0056: new-array v3, v3, [Z // type@0183
00ca74: 5b23 5300                              |0058: iput-object v3, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.automaticTracks:[Z // field@0053
00ca78: 1203                                   |005a: const/4 v3, #int 0 // #0
00ca7a: 5420 7000                              |005b: iget-object v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.trackSpecs:[Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec; // field@0070
00ca7e: 2100                                   |005d: array-length v0, v0
00ca80: 3503 0f00                              |005e: if-ge v3, v0, 006d // +000f
00ca84: 5420 5300                              |0060: iget-object v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.automaticTracks:[Z // field@0053
00ca88: 5421 7000                              |0062: iget-object v1, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.trackSpecs:[Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec; // field@0070
00ca8c: 4601 0103                              |0064: aget-object v1, v1, v3
00ca90: 5511 3300                              |0066: iget-boolean v1, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec;.autoRotate:Z // field@0033
00ca94: 4e01 0003                              |0068: aput-boolean v1, v0, v3
00ca98: d803 0301                              |006a: add-int/lit8 v3, v3, #int 1 // #01
00ca9c: 28ef                                   |006c: goto 005b // -0011
00ca9e: 12f3                                   |006d: const/4 v3, #int -1 // #ff
00caa0: 5420 5300                              |006e: iget-object v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.automaticTracks:[Z // field@0053
00caa4: 7120 6f05 0300                         |0070: invoke-static {v3, v0}, Lcom/valentinedesigns/chromalink/MusicFade;.nextTrack:(I[Z)I // method@056f
00caaa: 0a03                                   |0073: move-result v3
00caac: 5923 5400                              |0074: iput v3, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.currentIndex:I // field@0054
00cab0: 5923 6c00                              |0076: iput v3, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.selectedIndex:I // field@006c
00cab4: 2203 4b01                              |0078: new-instance v3, Ljava/lang/Thread; // type@014b
00cab8: 2200 8900                              |007a: new-instance v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$$ExternalSyntheticLambda0; // type@0089
00cabc: 7020 dc01 2000                         |007c: invoke-direct {v0, v2}, Lcom/valentinedesigns/chromalink/ArcadeAudio$$ExternalSyntheticLambda0;.<init>:(Lcom/valentinedesigns/chromalink/ArcadeAudio;)V // method@01dc
00cac2: 1a01 4001                              |007f: const-string v1, "Chromalink decode" // string@0140
00cac6: 7030 6e06 0301                         |0081: invoke-direct {v3, v0, v1}, Ljava/lang/Thread;.<init>:(Ljava/lang/Runnable;Ljava/lang/String;)V // method@066e
00cacc: 5b23 5700                              |0084: iput-object v3, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decoderThread:Ljava/lang/Thread; // field@0057
00cad0: 2203 4b01                              |0086: new-instance v3, Ljava/lang/Thread; // type@014b
00cad4: 2200 8a00                              |0088: new-instance v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$$ExternalSyntheticLambda1; // type@008a
00cad8: 7020 de01 2000                         |008a: invoke-direct {v0, v2}, Lcom/valentinedesigns/chromalink/ArcadeAudio$$ExternalSyntheticLambda1;.<init>:(Lcom/valentinedesigns/chromalink/ArcadeAudio;)V // method@01de
00cade: 1a01 3f01                              |008d: const-string v1, "Chromalink audio" // string@013f
00cae2: 7030 6e06 0301                         |008f: invoke-direct {v3, v0, v1}, Ljava/lang/Thread;.<init>:(Ljava/lang/Runnable;Ljava/lang/String;)V // method@066e
00cae8: 5b23 5e00                              |0092: iput-object v3, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.mixerThread:Ljava/lang/Thread; // field@005e
00caec: 5423 5700                              |0094: iget-object v3, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decoderThread:Ljava/lang/Thread; // field@0057
00caf0: 6e10 7006 0300                         |0096: invoke-virtual {v3}, Ljava/lang/Thread;.start:()V // method@0670
00caf6: 5423 5e00                              |0099: iget-object v3, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.mixerThread:Ljava/lang/Thread; // field@005e
00cafa: 6e10 7006 0300                         |009b: invoke-virtual {v3}, Ljava/lang/Thread;.start:()V // method@0670
00cb00: 0e00                                   |009e: return-void
00cb02: 0d03                                   |009f: move-exception v3
00cb04: 2200 3e01                              |00a0: new-instance v0, Ljava/lang/IllegalStateException; // type@013e
00cb08: 1a01 d503                              |00a2: const-string v1, "Music catalog unavailable" // string@03d5
00cb0c: 7030 3006 1003                         |00a4: invoke-direct {v0, v1, v3}, Ljava/lang/IllegalStateException;.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V // method@0630
00cb12: 2700                                   |00a7: throw v0
00cb14: 0003 0400 0500 0000 10d0 0244 4290 ... |00a8: array-data (14 units)
      catches       : 1
        0x004c - 0x0052
          Ljava/io/IOException; -> 0x009f
      positions     :
        0x0000 line=70
        0x0003 line=56
        0x0011 line=57
        0x0018 line=59
        0x0023 line=60
        0x0025 line=61
        0x002f line=63
        0x0036 line=66
        0x003a line=67
        0x0042 line=71
        0x004c line=72
        0x0052 line=73
        0x0053 line=74
        0x005a line=75
        0x006d line=77
        0x0078 line=78
        0x0086 line=79
        0x0094 line=80
        0x009e line=81
        0x009f line=73
      locals        :
        0x0000 - 0x00b6 reg=2 this Lcom/valentinedesigns/chromalink/ArcadeAudio;
        0x0000 - 0x00b6 reg=3 (null) Landroid/content/Context;

    #4              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'assetName'
      type          : '(Lorg/json/JSONObject;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;'
      access        : 0x000a (PRIVATE STATIC)
      code          -
      registers     : 3
      ins           : 3
      outs          : 3
      insns size    : 48 16-bit code units
00c730:                                        |[00c730] com.valentinedesigns.chromalink.ArcadeAudio.assetName:(Lorg/json/JSONObject;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
00c740: 6e30 c606 1002                         |0000: invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;.optString:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; // method@06c6
00c746: 0c00                                   |0003: move-result-object v0
00c748: 3800 2a00                              |0004: if-eqz v0, 002e // +002a
00c74c: 6e10 5e06 0000                         |0006: invoke-virtual {v0}, Ljava/lang/String;.isEmpty:()Z // method@065e
00c752: 0a01                                   |0009: move-result v1
00c754: 3801 0300                              |000a: if-eqz v1, 000d // +0003
00c758: 2822                                   |000c: goto 002e // +0022
00c75a: 1a01 b700                              |000d: const-string v1, "/" // string@00b7
00c75e: 6e20 5806 1000                         |000f: invoke-virtual {v0, v1}, Ljava/lang/String;.contains:(Ljava/lang/CharSequence;)Z // method@0658
00c764: 0a01                                   |0012: move-result v1
00c766: 3901 1300                              |0013: if-nez v1, 0026 // +0013
00c76a: 1a01 9b05                              |0015: const-string v1, "\\" // string@059b
00c76e: 6e20 5806 1000                         |0017: invoke-virtual {v0, v1}, Ljava/lang/String;.contains:(Ljava/lang/CharSequence;)Z // method@0658
00c774: 0a01                                   |001a: move-result v1
00c776: 3901 0b00                              |001b: if-nez v1, 0026 // +000b
00c77a: 1a01 b100                              |001d: const-string v1, ".." // string@00b1
00c77e: 6e20 5806 1000                         |001f: invoke-virtual {v0, v1}, Ljava/lang/String;.contains:(Ljava/lang/CharSequence;)Z // method@0658
00c784: 0a01                                   |0022: move-result v1
00c786: 3901 0300                              |0023: if-nez v1, 0026 // +0003
00c78a: 1100                                   |0025: return-object v0
00c78c: 2200 3401                              |0026: new-instance v0, Ljava/io/IOException; // type@0134
00c790: 1a01 e801                              |0028: const-string v1, "Invalid audio asset name" // string@01e8
00c794: 7020 2006 1000                         |002a: invoke-direct {v0, v1}, Ljava/io/IOException;.<init>:(Ljava/lang/String;)V // method@0620
00c79a: 2700                                   |002d: throw v0
00c79c: 1200                                   |002e: const/4 v0, #int 0 // #0
00c79e: 1100                                   |002f: return-object v0
      catches       : (none)
      positions     :
        0x0000 line=283
        0x0004 line=284
        0x000d line=285
        0x0025 line=286
        0x0026 line=285
        0x002e line=284
      locals        :
        0x0000 - 0x0030 reg=0 (null) Lorg/json/JSONObject;
        0x0000 - 0x0030 reg=1 (null) Ljava/lang/String;
        0x0000 - 0x0030 reg=2 (null) Ljava/lang/String;

    #5              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'checkCancelled'
      type          : '(I)V'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 3
      ins           : 2
      outs          : 2
      insns size    : 18 16-bit code units
00cb40:                                        |[00cb40] com.valentinedesigns.chromalink.ArcadeAudio.checkCancelled:(I)V
00cb50: 5510 6700                              |0000: iget-boolean v0, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.released:Z // field@0067
00cb54: 3900 0900                              |0002: if-nez v0, 000b // +0009
00cb58: 3a02 0600                              |0004: if-ltz v2, 000a // +0006
00cb5c: 5210 5500                              |0006: iget v0, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decodeGeneration:I // field@0055
00cb60: 3302 0300                              |0008: if-ne v2, v0, 000b // +0003
00cb64: 0e00                                   |000a: return-void
00cb66: 2202 8c00                              |000b: new-instance v2, Lcom/valentinedesigns/chromalink/ArcadeAudio$Cancelled; // type@008c
00cb6a: 1200                                   |000d: const/4 v0, #int 0 // #0
00cb6c: 7020 e101 0200                         |000e: invoke-direct {v2, v0}, Lcom/valentinedesigns/chromalink/ArcadeAudio$Cancelled;.<init>:(Lcom/valentinedesigns/chromalink/ArcadeAudio$Cancelled-IA;)V // method@01e1
00cb72: 2702                                   |0011: throw v2
      catches       : (none)
      positions     :
        0x0000 line=349
        0x000a line=350
        0x000b line=349
      locals        :
        0x0000 - 0x0012 reg=1 this Lcom/valentinedesigns/chromalink/ArcadeAudio;
        0x0000 - 0x0012 reg=2 (null) I

    #6              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'createOutput'
      type          : '(I)Landroid/media/AudioTrack;'
      access        : 0x000a (PRIVATE STATIC)
      code          -
      registers     : 7
      ins           : 1
      outs          : 2
      insns size    : 114 16-bit code units
00ba94:                                        |[00ba94] com.valentinedesigns.chromalink.ArcadeAudio.createOutput:(I)Landroid/media/AudioTrack;
00baa4: d806 0604                              |0000: add-int/lit8 v6, v6, #int 4 // #04
00baa8: 1210                                   |0002: const/4 v0, #int 1 // #1
00baaa: b106                                   |0003: sub-int/2addr v6, v0
00baac: db06 0604                              |0004: div-int/lit8 v6, v6, #int 4 // #04
00bab0: 1301 ac14                              |0006: const/16 v1, #int 5292 // #14ac
00bab4: 7120 4406 1600                         |0008: invoke-static {v6, v1}, Ljava/lang/Math;.max:(II)I // method@0644
00baba: 0a01                                   |000b: move-result v1
00babc: 2202 4000                              |000c: new-instance v2, Landroid/media/AudioTrack$Builder; // type@0040
00bac0: 7010 9300 0200                         |000e: invoke-direct {v2}, Landroid/media/AudioTrack$Builder;.<init>:()V // method@0093
00bac6: 2203 3800                              |0011: new-instance v3, Landroid/media/AudioAttributes$Builder; // type@0038
00baca: 7010 8400 0300                         |0013: invoke-direct {v3}, Landroid/media/AudioAttributes$Builder;.<init>:()V // method@0084
00bad0: 1304 0e00                              |0016: const/16 v4, #int 14 // #e
00bad4: 6e20 8700 4300                         |0018: invoke-virtual {v3, v4}, Landroid/media/AudioAttributes$Builder;.setUsage:(I)Landroid/media/AudioAttributes$Builder; // method@0087
00bada: 0c03                                   |001b: move-result-object v3
00badc: 1224                                   |001c: const/4 v4, #int 2 // #2
00bade: 6e20 8600 4300                         |001d: invoke-virtual {v3, v4}, Landroid/media/AudioAttributes$Builder;.setContentType:(I)Landroid/media/AudioAttributes$Builder; // method@0086
00bae4: 0c03                                   |0020: move-result-object v3
00bae6: 6e10 8500 0300                         |0021: invoke-virtual {v3}, Landroid/media/AudioAttributes$Builder;.build:()Landroid/media/AudioAttributes; // method@0085
00baec: 0c03                                   |0024: move-result-object v3
00baee: 6e20 9500 3200                         |0025: invoke-virtual {v2, v3}, Landroid/media/AudioTrack$Builder;.setAudioAttributes:(Landroid/media/AudioAttributes;)Landroid/media/AudioTrack$Builder; // method@0095
00baf4: 0c02                                   |0028: move-result-object v2
00baf6: 2203 3c00                              |0029: new-instance v3, Landroid/media/AudioFormat$Builder; // type@003c
00bafa: 7010 8c00 0300                         |002b: invoke-direct {v3}, Landroid/media/AudioFormat$Builder;.<init>:()V // method@008c
00bb00: 1405 44ac 0000                         |002e: const v5, #float 6.17973e-41 // #0000ac44
00bb06: 6e20 9000 5300                         |0031: invoke-virtual {v3, v5}, Landroid/media/AudioFormat$Builder;.setSampleRate:(I)Landroid/media/AudioFormat$Builder; // method@0090
00bb0c: 0c03                                   |0034: move-result-object v3
00bb0e: 1305 0c00                              |0035: const/16 v5, #int 12 // #c
00bb12: 6e20 8e00 5300                         |0037: invoke-virtual {v3, v5}, Landroid/media/AudioFormat$Builder;.setChannelMask:(I)Landroid/media/AudioFormat$Builder; // method@008e
00bb18: 0c03                                   |003a: move-result-object v3
00bb1a: 6e20 8f00 4300                         |003b: invoke-virtual {v3, v4}, Landroid/media/AudioFormat$Builder;.setEncoding:(I)Landroid/media/AudioFormat$Builder; // method@008f
00bb20: 0c03                                   |003e: move-result-object v3
00bb22: 6e10 8d00 0300                         |003f: invoke-virtual {v3}, Landroid/media/AudioFormat$Builder;.build:()Landroid/media/AudioFormat; // method@008d
00bb28: 0c03                                   |0042: move-result-object v3
00bb2a: 6e20 9600 3200                         |0043: invoke-virtual {v2, v3}, Landroid/media/AudioTrack$Builder;.setAudioFormat:(Landroid/media/AudioFormat;)Landroid/media/AudioTrack$Builder; // method@0096
00bb30: 0c02                                   |0046: move-result-object v2
00bb32: 6e20 9800 0200                         |0047: invoke-virtual {v2, v0}, Landroid/media/AudioTrack$Builder;.setTransferMode:(I)Landroid/media/AudioTrack$Builder; // method@0098
00bb38: 0c02                                   |004a: move-result-object v2
00bb3a: b241                                   |004b: mul-int/2addr v1, v4
00bb3c: b241                                   |004c: mul-int/2addr v1, v4
00bb3e: 6e20 9700 1200                         |004d: invoke-virtual {v2, v1}, Landroid/media/AudioTrack$Builder;.setBufferSizeInBytes:(I)Landroid/media/AudioTrack$Builder; // method@0097
00bb44: 0c01                                   |0050: move-result-object v1
00bb46: 6e10 9400 0100                         |0051: invoke-virtual {v1}, Landroid/media/AudioTrack$Builder;.build:()Landroid/media/AudioTrack; // method@0094
00bb4c: 0c01                                   |0054: move-result-object v1
00bb4e: 6e10 9e00 0100                         |0055: invoke-virtual {v1}, Landroid/media/AudioTrack;.getState:()I // method@009e
00bb54: 0a02                                   |0058: move-result v2
00bb56: 3302 0c00                              |0059: if-ne v2, v0, 0065 // +000c
00bb5a: 1300 000e                              |005b: const/16 v0, #int 3584 // #e00
00bb5e: 7120 4406 0600                         |005d: invoke-static {v6, v0}, Ljava/lang/Math;.max:(II)I // method@0644
00bb64: 0a06                                   |0060: move-result v6
00bb66: 6e20 a300 6100                         |0061: invoke-virtual {v1, v6}, Landroid/media/AudioTrack;.setBufferSizeInFrames:(I)I // method@00a3
00bb6c: 1101                                   |0064: return-object v1
00bb6e: 2206 3e01                              |0065: new-instance v6, Ljava/lang/IllegalStateException; // type@013e
00bb72: 1a00 f000                              |0067: const-string v0, "Audio output not initialized" // string@00f0
00bb76: 7020 2f06 0600                         |0069: invoke-direct {v6, v0}, Ljava/lang/IllegalStateException;.<init>:(Ljava/lang/String;)V // method@062f
00bb7c: 2706                                   |006c: throw v6
00bb7e: 0d06                                   |006d: move-exception v6
00bb80: 7110 f801 0100                         |006e: invoke-static {v1}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.disposeOutput:(Landroid/media/AudioTrack;)V // method@01f8
00bb86: 2706                                   |0071: throw v6
      catches       : 1
        0x0055 - 0x006d
          Ljava/lang/RuntimeException; -> 0x006d
      positions     :
        0x0000 line=572
        0x0006 line=573
        0x000c line=574
        0x0016 line=575
        0x002e line=576
        0x0047 line=577
        0x0055 line=579
        0x005b line=580
        0x0064 line=581
        0x0065 line=579
        0x006d line=582
      locals        :
        0x0000 - 0x0072 reg=6 (null) I

    #7              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'decode'
      type          : '(Ljava/lang/String;II)Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm;'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 30
      ins           : 4
      outs          : 7
      insns size    : 598 16-bit code units
00bbd0:                                        |[00bbd0] com.valentinedesigns.chromalink.ArcadeAudio.decode:(Ljava/lang/String;II)Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm;
00bbe0: 0801 1a00                              |0000: move-object/from16 v1, v26
00bbe4: 0200 1d00                              |0002: move/from16 v0, v29
00bbe8: 1a02 da06                              |0004: const-string v2, "durationUs" // string@06da
00bbec: 1a03 4406                              |0006: const-string v3, "channel-count" // string@0644
00bbf0: 1a04 ce09                              |0008: const-string v4, "sample-rate" // string@09ce
00bbf4: 1a05 ea05                              |000a: const-string v5, "audio/" // string@05ea
00bbf8: 1a06 1009                              |000c: const-string v6, "pcm-encoding" // string@0910
00bbfc: 7020 f301 0100                         |000e: invoke-direct {v1, v0}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.checkCancelled:(I)V // method@01f3
00bc02: 220d 4500                              |0011: new-instance v13, Landroid/media/MediaExtractor; // type@0045
00bc06: 7010 b200 0d00                         |0013: invoke-direct {v13}, Landroid/media/MediaExtractor;.<init>:()V // method@00b2
00bc0c: 5417 4e00                              |0016: iget-object v7, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.assets:Landroid/content/res/AssetManager; // field@004e
00bc10: 2208 4901                              |0018: new-instance v8, Ljava/lang/StringBuilder; // type@0149
00bc14: 7010 6806 0800                         |001a: invoke-direct {v8}, Ljava/lang/StringBuilder;.<init>:()V // method@0668
00bc1a: 6e20 6b06 5800                         |001d: invoke-virtual {v8, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@066b
00bc20: 0c08                                   |0020: move-result-object v8
00bc22: 0809 1b00                              |0021: move-object/from16 v9, v27
00bc26: 6e20 6b06 9800                         |0023: invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@066b
00bc2c: 0c08                                   |0026: move-result-object v8
00bc2e: 6e10 6c06 0800                         |0027: invoke-virtual {v8}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@066c
00bc34: 0c08                                   |002a: move-result-object v8
00bc36: 6e20 2b00 8700                         |002b: invoke-virtual {v7, v8}, Landroid/content/res/AssetManager;.openFd:(Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor; // method@002b
00bc3c: 0c10                                   |002e: move-result-object v16
00bc3e: 7401 2700 1000                         |002f: invoke-virtual/range {v16}, Landroid/content/res/AssetFileDescriptor;.getFileDescriptor:()Ljava/io/FileDescriptor; // method@0027
00bc44: 0c08                                   |0032: move-result-object v8
00bc46: 7401 2900 1000                         |0033: invoke-virtual/range {v16}, Landroid/content/res/AssetFileDescriptor;.getStartOffset:()J // method@0029
00bc4c: 0b09                                   |0036: move-result-wide v9
00bc4e: 7401 2800 1000                         |0037: invoke-virtual/range {v16}, Landroid/content/res/AssetFileDescriptor;.getLength:()J // method@0028
00bc54: 0b0b                                   |003a: move-result-wide v11
00bc56: 07d7                                   |003b: move-object v7, v13
00bc58: 7406 ba00 0700                         |003c: invoke-virtual/range {v7, v8, v9, v10, v11, v12}, Landroid/media/MediaExtractor;.setDataSource:(Ljava/io/FileDescriptor;JJ)V // method@00ba
00bc5e: 0000                                   |003f: nop // spacer
00bc60: 1207                                   |0040: const/4 v7, #int 0 // #0
00bc62: 6e10 b500 0d00                         |0041: invoke-virtual {v13}, Landroid/media/MediaExtractor;.getTrackCount:()I // method@00b5
00bc68: 0a08                                   |0044: move-result v8
00bc6a: 1a09 6f08                              |0045: const-string v9, "mime" // string@086f
00bc6e: 3587 1c00                              |0047: if-ge v7, v8, 0063 // +001c
00bc72: 6e20 b600 7d00                         |0049: invoke-virtual {v13, v7}, Landroid/media/MediaExtractor;.getTrackFormat:(I)Landroid/media/MediaFormat; // method@00b6
00bc78: 0c08                                   |004c: move-result-object v8
00bc7a: 6e20 be00 9800                         |004d: invoke-virtual {v8, v9}, Landroid/media/MediaFormat;.getString:(Ljava/lang/String;)Ljava/lang/String; // method@00be
00bc80: 0c0a                                   |0050: move-result-object v10
00bc82: 380a 0900                              |0051: if-eqz v10, 005a // +0009
00bc86: 6e20 6206 5a00                         |0053: invoke-virtual {v10, v5}, Ljava/lang/String;.startsWith:(Ljava/lang/String;)Z // method@0662
00bc8c: 0a0a                                   |0056: move-result v10
00bc8e: 380a 0300                              |0057: if-eqz v10, 005a // +0003
00bc92: 280c                                   |0059: goto 0065 // +000c
00bc94: d807 0701                              |005a: add-int/lit8 v7, v7, #int 1 // #01
00bc98: 28e5                                   |005c: goto 0041 // -001b
00bc9a: 0d00                                   |005d: move-exception v0
00bc9c: 0702                                   |005e: move-object v2, v0
00bc9e: 120e                                   |005f: const/4 v14, #int 0 // #0
00bca0: 120f                                   |0060: const/4 v15, #int 0 // #0
00bca2: 2900 d201                              |0061: goto/16 0233 // +01d2
00bca6: 12f7                                   |0063: const/4 v7, #int -1 // #ff
00bca8: 1208                                   |0064: const/4 v8, #int 0 // #0
00bcaa: 3a07 be01                              |0065: if-ltz v7, 0223 // +01be
00bcae: 3808 bc01                              |0067: if-eqz v8, 0223 // +01bc
00bcb2: 6e20 bc00 4800                         |0069: invoke-virtual {v8, v4}, Landroid/media/MediaFormat;.getInteger:(Ljava/lang/String;)I // method@00bc
00bcb8: 0a05                                   |006c: move-result v5
00bcba: 140a 44ac 0000                         |006d: const v10, #float 6.17973e-41 // #0000ac44
00bcc0: 33a5 aa01                              |0070: if-ne v5, v10, 021a // +01aa
00bcc4: 6e20 bc00 3800                         |0072: invoke-virtual {v8, v3}, Landroid/media/MediaFormat;.getInteger:(Ljava/lang/String;)I // method@00bc
00bcca: 0a05                                   |0075: move-result v5
00bccc: 122b                                   |0076: const/4 v11, #int 2 // #2
00bcce: 33b5 a301                              |0077: if-ne v5, v11, 021a // +01a3
00bcd2: 0000                                   |0079: nop // spacer
00bcd4: 3c1c 1f00                              |007a: if-gtz v28, 0099 // +001f
00bcd8: 6e20 bb00 2800                         |007c: invoke-virtual {v8, v2}, Landroid/media/MediaFormat;.containsKey:(Ljava/lang/String;)Z // method@00bb
00bcde: 0a05                                   |007f: move-result v5
00bce0: 3805 1900                              |0080: if-eqz v5, 0099 // +0019
00bce4: 6e20 bd00 2800                         |0082: invoke-virtual {v8, v2}, Landroid/media/MediaFormat;.getLong:(Ljava/lang/String;)J // method@00bd
00bcea: 0b11                                   |0085: move-result-wide v17
00bcec: 1713 44ac 0000                         |0086: const-wide/32 v19, #float 6.17973e-41 // #0000ac44
00bcf2: 9d0e 1113                              |0089: mul-long v14, v17, v19
00bcf6: 86ee                                   |008b: long-to-double v14, v14
00bcf8: 1811 0000 0000 8084 2e41               |008c: const-wide v17, #double 1e+06 // #412e848000000000
00bd02: ae0e 0e11                              |0091: div-double v14, v14, v17
00bd06: 7120 3c06 fe00                         |0093: invoke-static {v14, v15}, Ljava/lang/Math;.ceil:(D)D // method@063c
00bd0c: 0b0e                                   |0096: move-result-wide v14
00bd0e: 8aec                                   |0097: double-to-int v12, v14
00bd10: 2803                                   |0098: goto 009b // +0003
00bd12: 020c 1c00                              |0099: move/from16 v12, v28
00bd16: 3d0c 7601                              |009b: if-lez v12, 0211 // +0176
00bd1a: 140e c07f a100                         |009d: const v14, #float 1.48313e-38 // #00a17fc0
00bd20: 36ec 7101                              |00a0: if-gt v12, v14, 0211 // +0171
00bd24: 6e20 b900 7d00                         |00a2: invoke-virtual {v13, v7}, Landroid/media/MediaExtractor;.selectTrack:(I)V // method@00b9
00bd2a: 6e30 bf00 680b                         |00a5: invoke-virtual {v8, v6, v11}, Landroid/media/MediaFormat;.setInteger:(Ljava/lang/String;I)V // method@00bf
00bd30: 6e20 be00 9800                         |00a8: invoke-virtual {v8, v9}, Landroid/media/MediaFormat;.getString:(Ljava/lang/String;)Ljava/lang/String; // method@00be
00bd36: 0c07                                   |00ab: move-result-object v7
00bd38: 7110 a700 0700                         |00ac: invoke-static {v7}, Landroid/media/MediaCodec;.createDecoderByType:(Ljava/lang/String;)Landroid/media/MediaCodec; // method@00a7
00bd3e: 0c07                                   |00af: move-result-object v7
00bd40: 1202                                   |00b0: const/4 v2, #int 0 // #0
00bd42: 1205                                   |00b1: const/4 v5, #int 0 // #0
00bd44: 6e55 a600 8722                         |00b2: invoke-virtual {v7, v8, v2, v2, v5}, Landroid/media/MediaCodec;.configure:(Landroid/media/MediaFormat;Landroid/view/Surface;Landroid/media/MediaCrypto;I)V // method@00a6
00bd4a: 6e10 b000 0700                         |00b5: invoke-virtual {v7}, Landroid/media/MediaCodec;.start:()V // method@00b0
00bd50: b2bc                                   |00b8: mul-int/2addr v12, v11
00bd52: 23c8 8201                              |00b9: new-array v8, v12, [S // type@0182
00bd56: 2209 4200                              |00bb: new-instance v9, Landroid/media/MediaCodec$BufferInfo; // type@0042
00bd5a: 7010 a500 0900                         |00bd: invoke-direct {v9}, Landroid/media/MediaCodec$BufferInfo;.<init>:()V // method@00a5
00bd60: 01b2                                   |00c0: move v2, v11
00bd62: 120e                                   |00c1: const/4 v14, #int 0 // #0
00bd64: 120f                                   |00c2: const/4 v15, #int 0 // #0
00bd66: 1318 0000                              |00c3: const/16 v24, #int 0 // #0
00bd6a: 1319 0000                              |00c5: const/16 v25, #int 0 // #0
00bd6e: 390e 0a01                              |00c7: if-nez v14, 01d1 // +010a
00bd72: 7020 f301 0100                         |00c9: invoke-direct {v1, v0}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.checkCancelled:(I)V // method@01f3
00bd78: 160a 1027                              |00cc: const-wide/16 v10, #int 10000 // #2710
00bd7c: 3918 4800                              |00ce: if-nez v24, 0116 // +0048
00bd80: 6e30 a800 a70b                         |00d0: invoke-virtual {v7, v10, v11}, Landroid/media/MediaCodec;.dequeueInputBuffer:(J)I // method@00a8
00bd86: 0a05                                   |00d3: move-result v5
00bd88: 3a05 4200                              |00d4: if-ltz v5, 0116 // +0042
00bd8c: 6e20 aa00 5700                         |00d6: invoke-virtual {v7, v5}, Landroid/media/MediaCodec;.getInputBuffer:(I)Ljava/nio/ByteBuffer; // method@00aa
00bd92: 0c0a                                   |00d9: move-result-object v10
00bd94: 380a 3400                              |00da: if-eqz v10, 010e // +0034
00bd98: 6e10 7506 0a00                         |00dc: invoke-virtual {v10}, Ljava/nio/ByteBuffer;.clear:()Ljava/nio/Buffer; // method@0675
00bd9e: 0c0b                                   |00df: move-result-object v11
00bda0: 1f0b 5001                              |00e0: check-cast v11, Ljava/nio/ByteBuffer; // type@0150
00bda4: 120b                                   |00e2: const/4 v11, #int 0 // #0
00bda6: 6e30 b700 ad0b                         |00e3: invoke-virtual {v13, v10, v11}, Landroid/media/MediaExtractor;.readSampleData:(Ljava/nio/ByteBuffer;I)I // method@00b7
00bdac: 0a14                                   |00e6: move-result v20
00bdae: 3b14 1400                              |00e7: if-gez v20, 00fb // +0014
00bdb2: 1615 0000                              |00e9: const-wide/16 v21, #int 0 // #0
00bdb6: 1317 0400                              |00eb: const/16 v23, #int 4 // #4
00bdba: 1313 0000                              |00ed: const/16 v19, #int 0 // #0
00bdbe: 1314 0000                              |00ef: const/16 v20, #int 0 // #0
00bdc2: 0811 0700                              |00f1: move-object/from16 v17, v7
00bdc6: 0212 0500                              |00f3: move/from16 v18, v5
00bdca: 7407 ad00 1100                         |00f5: invoke-virtual/range {v17, v18, v19, v20, v21, v22, v23}, Landroid/media/MediaCodec;.queueInputBuffer:(IIIJI)V // method@00ad
00bdd0: 1318 0100                              |00f8: const/16 v24, #int 1 // #1
00bdd4: 281c                                   |00fa: goto 0116 // +001c
00bdd6: 6e10 b400 0d00                         |00fb: invoke-virtual {v13}, Landroid/media/MediaExtractor;.getSampleTime:()J // method@00b4
00bddc: 0b15                                   |00fe: move-result-wide v21
00bdde: 1317 0000                              |00ff: const/16 v23, #int 0 // #0
00bde2: 1313 0000                              |0101: const/16 v19, #int 0 // #0
00bde6: 0811 0700                              |0103: move-object/from16 v17, v7
00bdea: 0212 0500                              |0105: move/from16 v18, v5
00bdee: 7407 ad00 1100                         |0107: invoke-virtual/range {v17, v18, v19, v20, v21, v22, v23}, Landroid/media/MediaCodec;.queueInputBuffer:(IIIJI)V // method@00ad
00bdf4: 6e10 b300 0d00                         |010a: invoke-virtual {v13}, Landroid/media/MediaExtractor;.advance:()Z // method@00b3
00bdfa: 2809                                   |010d: goto 0116 // +0009
00bdfc: 2200 3401                              |010e: new-instance v0, Ljava/io/IOException; // type@0134
00be00: 1a02 c703                              |0110: const-string v2, "Missing decoder input" // string@03c7
00be04: 7020 2006 2000                         |0112: invoke-direct {v0, v2}, Ljava/io/IOException;.<init>:(Ljava/lang/String;)V // method@0620
00be0a: 2700                                   |0115: throw v0
00be0c: 160a 1027                              |0116: const-wide/16 v10, #int 10000 // #2710
00be10: 6e40 a900 97ba                         |0118: invoke-virtual {v7, v9, v10, v11}, Landroid/media/MediaCodec;.dequeueOutputBuffer:(Landroid/media/MediaCodec$BufferInfo;J)I // method@00a9
00be16: 0a0a                                   |011b: move-result v10
00be18: 3a0a 6b00                              |011c: if-ltz v10, 0187 // +006b
00be1c: 6e20 ab00 a700                         |011e: invoke-virtual {v7, v10}, Landroid/media/MediaCodec;.getOutputBuffer:(I)Ljava/nio/ByteBuffer; // method@00ab
00be22: 0c0e                                   |0121: move-result-object v14
00be24: 380e 5100                              |0122: if-eqz v14, 0173 // +0051
00be28: 5295 1d00                              |0124: iget v5, v9, Landroid/media/MediaCodec$BufferInfo;.size:I // field@001d
00be2c: 3d05 4d00                              |0126: if-lez v5, 0173 // +004d
00be30: 5295 1c00                              |0128: iget v5, v9, Landroid/media/MediaCodec$BufferInfo;.offset:I // field@001c
00be34: 6e20 7906 5e00                         |012a: invoke-virtual {v14, v5}, Ljava/nio/ByteBuffer;.position:(I)Ljava/nio/Buffer; // method@0679
00be3a: 0c05                                   |012d: move-result-object v5
00be3c: 1f05 5001                              |012e: check-cast v5, Ljava/nio/ByteBuffer; // type@0150
00be40: 5295 1c00                              |0130: iget v5, v9, Landroid/media/MediaCodec$BufferInfo;.offset:I // field@001c
00be44: 529b 1d00                              |0132: iget v11, v9, Landroid/media/MediaCodec$BufferInfo;.size:I // field@001d
00be48: b0b5                                   |0134: add-int/2addr v5, v11
00be4a: 6e20 7706 5e00                         |0135: invoke-virtual {v14, v5}, Ljava/nio/ByteBuffer;.limit:(I)Ljava/nio/Buffer; // method@0677
00be50: 0c05                                   |0138: move-result-object v5
00be52: 1f05 5001                              |0139: check-cast v5, Ljava/nio/ByteBuffer; // type@0150
00be56: 6205 1f03                              |013b: sget-object v5, Ljava/nio/ByteOrder;.LITTLE_ENDIAN:Ljava/nio/ByteOrder; // field@031f
00be5a: 6e20 7806 5e00                         |013d: invoke-virtual {v14, v5}, Ljava/nio/ByteBuffer;.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer; // method@0678
00be60: 1245                                   |0140: const/4 v5, #int 4 // #4
00be62: 3352 0400                              |0141: if-ne v2, v5, 0145 // +0004
00be66: 1245                                   |0143: const/4 v5, #int 4 // #4
00be68: 2802                                   |0144: goto 0146 // +0002
00be6a: 1225                                   |0145: const/4 v5, #int 2 // #2
00be6c: 529b 1d00                              |0146: iget v11, v9, Landroid/media/MediaCodec$BufferInfo;.size:I // field@001d
00be70: b35b                                   |0148: div-int/2addr v11, v5
00be72: 9105 0c0f                              |0149: sub-int v5, v12, v15
00be76: 7120 4806 5b00                         |014b: invoke-static {v11, v5}, Ljava/lang/Math;.min:(II)I // method@0648
00be7c: 0a05                                   |014e: move-result v5
00be7e: 124b                                   |014f: const/4 v11, #int 4 // #4
00be80: 33b2 1b00                              |0150: if-ne v2, v11, 016b // +001b
00be84: 120b                                   |0152: const/4 v11, #int 0 // #0
00be86: 355b 2000                              |0153: if-ge v11, v5, 0173 // +0020
00be8a: d812 0f01                              |0155: add-int/lit8 v18, v15, #int 1 // #01
00be8e: 6e10 7606 0e00                         |0157: invoke-virtual {v14}, Ljava/nio/ByteBuffer;.getFloat:()F // method@0676
00be94: 0a13                                   |015a: move-result v19
00be96: 1414 00fe ff46                         |015b: const v20, #float 32767 // #46fffe00
00be9c: a813 1314                              |015e: mul-float v19, v19, v20
00bea0: 7701 0002 1300                         |0160: invoke-static/range {v19}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.pcm:(F)S // method@0200
00bea6: 0a13                                   |0163: move-result v19
00bea8: 5113 080f                              |0164: aput-short v19, v8, v15
00beac: d80b 0b01                              |0166: add-int/lit8 v11, v11, #int 1 // #01
00beb0: 020f 1200                              |0168: move/from16 v15, v18
00beb4: 28e9                                   |016a: goto 0153 // -0017
00beb6: 6e10 7406 0e00                         |016b: invoke-virtual {v14}, Ljava/nio/ByteBuffer;.asShortBuffer:()Ljava/nio/ShortBuffer; // method@0674
00bebc: 0c0b                                   |016e: move-result-object v11
00bebe: 6e40 7a06 8b5f                         |016f: invoke-virtual {v11, v8, v15, v5}, Ljava/nio/ShortBuffer;.get:([SII)Ljava/nio/ShortBuffer; // method@067a
00bec4: b05f                                   |0172: add-int/2addr v15, v5
00bec6: 5295 1b00                              |0173: iget v5, v9, Landroid/media/MediaCodec$BufferInfo;.flags:I // field@001b
00beca: 124b                                   |0175: const/4 v11, #int 4 // #4
00becc: b5b5                                   |0176: and-int/2addr v5, v11
00bece: 3805 0400                              |0177: if-eqz v5, 017b // +0004
00bed2: 1215                                   |0179: const/4 v5, #int 1 // #1
00bed4: 2802                                   |017a: goto 017c // +0002
00bed6: 1205                                   |017b: const/4 v5, #int 0 // #0
00bed8: 120b                                   |017c: const/4 v11, #int 0 // #0
00beda: 6e30 af00 a70b                         |017d: invoke-virtual {v7, v10, v11}, Landroid/media/MediaCodec;.releaseOutputBuffer:(IZ)V // method@00af
00bee0: 015e                                   |0180: move v14, v5
00bee2: 0219 0b00                              |0181: move/from16 v25, v11
00bee6: 140b 44ac 0000                         |0183: const v11, #float 6.17973e-41 // #0000ac44
00beec: 283f                                   |0186: goto 01c5 // +003f
00beee: 120b                                   |0187: const/4 v11, #int 0 // #0
00bef0: 12e5                                   |0188: const/4 v5, #int -2 // #fe
00bef2: 335a 3100                              |0189: if-ne v10, v5, 01ba // +0031
00bef6: 6e10 ac00 0700                         |018b: invoke-virtual {v7}, Landroid/media/MediaCodec;.getOutputFormat:()Landroid/media/MediaFormat; // method@00ac
00befc: 0c02                                   |018e: move-result-object v2
00befe: 6e20 bb00 6200                         |018f: invoke-virtual {v2, v6}, Landroid/media/MediaFormat;.containsKey:(Ljava/lang/String;)Z // method@00bb
00bf04: 0a05                                   |0192: move-result v5
00bf06: 3805 0700                              |0193: if-eqz v5, 019a // +0007
00bf0a: 6e20 bc00 6200                         |0195: invoke-virtual {v2, v6}, Landroid/media/MediaFormat;.getInteger:(Ljava/lang/String;)I // method@00bc
00bf10: 0a05                                   |0198: move-result v5
00bf12: 2802                                   |0199: goto 019b // +0002
00bf14: 1225                                   |019a: const/4 v5, #int 2 // #2
00bf16: 6e20 bc00 4200                         |019b: invoke-virtual {v2, v4}, Landroid/media/MediaFormat;.getInteger:(Ljava/lang/String;)I // method@00bc
00bf1c: 0a0a                                   |019e: move-result v10
00bf1e: 140b 44ac 0000                         |019f: const v11, #float 6.17973e-41 // #0000ac44
00bf24: 33ba 1000                              |01a2: if-ne v10, v11, 01b2 // +0010
00bf28: 6e20 bc00 3200                         |01a4: invoke-virtual {v2, v3}, Landroid/media/MediaFormat;.getInteger:(Ljava/lang/String;)I // method@00bc
00bf2e: 0a02                                   |01a7: move-result v2
00bf30: 122a                                   |01a8: const/4 v10, #int 2 // #2
00bf32: 33a2 0900                              |01a9: if-ne v2, v10, 01b2 // +0009
00bf36: 32a5 0500                              |01ab: if-eq v5, v10, 01b0 // +0005
00bf3a: 1242                                   |01ad: const/4 v2, #int 4 // #4
00bf3c: 3325 0400                              |01ae: if-ne v5, v2, 01b2 // +0004
00bf40: 0152                                   |01b0: move v2, v5
00bf42: 2814                                   |01b1: goto 01c5 // +0014
00bf44: 2200 3401                              |01b2: new-instance v0, Ljava/io/IOException; // type@0134
00bf48: 1a02 e804                              |01b4: const-string v2, "Unexpected decoder output" // string@04e8
00bf4c: 7020 2006 2000                         |01b6: invoke-direct {v0, v2}, Ljava/io/IOException;.<init>:(Ljava/lang/String;)V // method@0620
00bf52: 2700                                   |01b9: throw v0
00bf54: 140b 44ac 0000                         |01ba: const v11, #float 6.17973e-41 // #0000ac44
00bf5a: d805 1901                              |01bd: add-int/lit8 v5, v25, #int 1 // #01
00bf5e: 130a d007                              |01bf: const/16 v10, #int 2000 // #7d0
00bf62: 36a5 0800                              |01c1: if-gt v5, v10, 01c9 // +0008
00bf66: 0219 0500                              |01c3: move/from16 v25, v5
00bf6a: 01ba                                   |01c5: move v10, v11
00bf6c: 122b                                   |01c6: const/4 v11, #int 2 // #2
00bf6e: 2900 00ff                              |01c7: goto/16 00c7 // -0100
00bf72: 2200 3401                              |01c9: new-instance v0, Ljava/io/IOException; // type@0134
00bf76: 1a02 ef00                              |01cb: const-string v2, "Audio decoder timed out" // string@00ef
00bf7a: 7020 2006 2000                         |01cd: invoke-direct {v0, v2}, Ljava/io/IOException;.<init>:(Ljava/lang/String;)V // method@0620
00bf80: 2700                                   |01d0: throw v0
00bf82: d0cc 00f0                              |01d1: add-int/lit16 v12, v12, #int -4096 // #f000
00bf86: 34cf 2c00                              |01d3: if-lt v15, v12, 01ff // +002c
00bf8a: 1220                                   |01d5: const/4 v0, #int 2 // #2
00bf8c: b30f                                   |01d6: div-int/2addr v15, v0
00bf8e: 3d0f 2000                              |01d7: if-lez v15, 01f7 // +0020
00bf92: 2202 8e00                              |01d9: new-instance v2, Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm; // type@008e
00bf96: 7030 e301 820f                         |01db: invoke-direct {v2, v8, v15}, Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm;.<init>:([SI)V // method@01e3
00bf9c: 3810 0b00                              |01de: if-eqz v16, 01e9 // +000b
00bfa0: 7401 2600 1000                         |01e0: invoke-virtual/range {v16}, Landroid/content/res/AssetFileDescriptor;.close:()V // method@0026
00bfa6: 2806                                   |01e3: goto 01e9 // +0006
00bfa8: 0d00                                   |01e4: move-exception v0
00bfaa: 0702                                   |01e5: move-object v2, v0
00bfac: 077e                                   |01e6: move-object v14, v7
00bfae: 121f                                   |01e7: const/4 v15, #int 1 // #1
00bfb0: 285e                                   |01e8: goto 0246 // +005e
00bfb2: 3807 0a00                              |01e9: if-eqz v7, 01f3 // +000a
00bfb6: 6e10 b100 0700                         |01eb: invoke-virtual {v7}, Landroid/media/MediaCodec;.stop:()V // method@00b1
00bfbc: 2802                                   |01ee: goto 01f0 // +0002
00bfbe: 0d00                                   |01ef: move-exception v0
00bfc0: 6e10 ae00 0700                         |01f0: invoke-virtual {v7}, Landroid/media/MediaCodec;.release:()V // method@00ae
00bfc6: 6e10 b800 0d00                         |01f3: invoke-virtual {v13}, Landroid/media/MediaExtractor;.release:()V // method@00b8
00bfcc: 1102                                   |01f6: return-object v2
00bfce: 2200 3401                              |01f7: new-instance v0, Ljava/io/IOException; // type@0134
00bfd2: 1a02 7901                              |01f9: const-string v2, "Empty audio asset" // string@0179
00bfd6: 7020 2006 2000                         |01fb: invoke-direct {v0, v2}, Ljava/io/IOException;.<init>:(Ljava/lang/String;)V // method@0620
00bfdc: 2700                                   |01fe: throw v0
00bfde: 2200 3401                              |01ff: new-instance v0, Ljava/io/IOException; // type@0134
00bfe2: 1a02 e401                              |0201: const-string v2, "Incomplete audio asset" // string@01e4
00bfe6: 7020 2006 2000                         |0203: invoke-direct {v0, v2}, Ljava/io/IOException;.<init>:(Ljava/lang/String;)V // method@0620
00bfec: 2700                                   |0206: throw v0
00bfee: 0d00                                   |0207: move-exception v0
00bff0: 0702                                   |0208: move-object v2, v0
00bff2: 077e                                   |0209: move-object v14, v7
00bff4: 121f                                   |020a: const/4 v15, #int 1 // #1
00bff6: 2828                                   |020b: goto 0233 // +0028
00bff8: 0d00                                   |020c: move-exception v0
00bffa: 0702                                   |020d: move-object v2, v0
00bffc: 077e                                   |020e: move-object v14, v7
00bffe: 2900 51fe                              |020f: goto/16 0060 // -01af
00c002: 1202                                   |0211: const/4 v2, #int 0 // #0
00c004: 2200 3401                              |0212: new-instance v0, Ljava/io/IOException; // type@0134
00c008: 1a03 e704                              |0214: const-string v3, "Unbounded audio length" // string@04e7
00c00c: 7020 2006 3000                         |0216: invoke-direct {v0, v3}, Ljava/io/IOException;.<init>:(Ljava/lang/String;)V // method@0620
00c012: 2700                                   |0219: throw v0
00c014: 1202                                   |021a: const/4 v2, #int 0 // #0
00c016: 2200 3401                              |021b: new-instance v0, Ljava/io/IOException; // type@0134
00c01a: 1a03 7d01                              |021d: const-string v3, "Expected 44100 Hz stereo" // string@017d
00c01e: 7020 2006 3000                         |021f: invoke-direct {v0, v3}, Ljava/io/IOException;.<init>:(Ljava/lang/String;)V // method@0620
00c024: 2700                                   |0222: throw v0
00c026: 1202                                   |0223: const/4 v2, #int 0 // #0
00c028: 2200 3401                              |0224: new-instance v0, Ljava/io/IOException; // type@0134
00c02c: 1a03 c603                              |0226: const-string v3, "Missing audio stream" // string@03c6
00c030: 7020 2006 3000                         |0228: invoke-direct {v0, v3}, Ljava/io/IOException;.<init>:(Ljava/lang/String;)V // method@0620
00c036: 2700                                   |022b: throw v0
00c038: 0d00                                   |022c: move-exception v0
00c03a: 2803                                   |022d: goto 0230 // +0003
00c03c: 0d00                                   |022e: move-exception v0
00c03e: 1202                                   |022f: const/4 v2, #int 0 // #0
00c040: 072e                                   |0230: move-object v14, v2
00c042: 120f                                   |0231: const/4 v15, #int 0 // #0
00c044: 0702                                   |0232: move-object v2, v0
00c046: 3810 0b00                              |0233: if-eqz v16, 023e // +000b
00c04a: 7401 2600 1000                         |0235: invoke-virtual/range {v16}, Landroid/content/res/AssetFileDescriptor;.close:()V // method@0026
00c050: 2806                                   |0238: goto 023e // +0006
00c052: 0d00                                   |0239: move-exception v0
00c054: 0703                                   |023a: move-object v3, v0
00c056: 6e20 7106 3200                         |023b: invoke-virtual {v2, v3}, Ljava/lang/Throwable;.addSuppressed:(Ljava/lang/Throwable;)V // method@0671
00c05c: 2702                                   |023e: throw v2
00c05e: 0d00                                   |023f: move-exception v0
00c060: 2805                                   |0240: goto 0245 // +0005
00c062: 0d00                                   |0241: move-exception v0
00c064: 1202                                   |0242: const/4 v2, #int 0 // #0
00c066: 072e                                   |0243: move-object v14, v2
00c068: 120f                                   |0244: const/4 v15, #int 0 // #0
00c06a: 0702                                   |0245: move-object v2, v0
00c06c: 380e 0c00                              |0246: if-eqz v14, 0252 // +000c
00c070: 380f 0700                              |0248: if-eqz v15, 024f // +0007
00c074: 6e10 b100 0e00                         |024a: invoke-virtual {v14}, Landroid/media/MediaCodec;.stop:()V // method@00b1
00c07a: 2802                                   |024d: goto 024f // +0002
00c07c: 0d00                                   |024e: move-exception v0
00c07e: 6e10 ae00 0e00                         |024f: invoke-virtual {v14}, Landroid/media/MediaCodec;.release:()V // method@00ae
00c084: 6e10 b800 0d00                         |0252: invoke-virtual {v13}, Landroid/media/MediaExtractor;.release:()V // method@00b8
00c08a: 2702                                   |0255: throw v2
      catches       : 15
        0x0016 - 0x002f
          <any> -> 0x0241
        0x002f - 0x0045
          <any> -> 0x022e
        0x0049 - 0x0057
          <any> -> 0x005d
        0x0069 - 0x0076
          <any> -> 0x022e
        0x007c - 0x0097
          <any> -> 0x005d
        0x00a2 - 0x00b0
          <any> -> 0x022e
        0x00b2 - 0x00b8
          <any> -> 0x020c
        0x00b9 - 0x01de
          <any> -> 0x0207
        0x01e0 - 0x01e3
          <any> -> 0x01e4
        0x01eb - 0x01ee
          Ljava/lang/RuntimeException; -> 0x01ef
        0x01f7 - 0x0207
          <any> -> 0x0207
        0x0212 - 0x022c
          <any> -> 0x022c
        0x0235 - 0x0238
          <any> -> 0x0239
        0x023b - 0x023f
          <any> -> 0x023f
        0x024a - 0x024d
          Ljava/lang/RuntimeException; -> 0x024e
      positions     :
        0x0000 line=291
        0x0016 line=292
        0x002f line=293
        0x003f line=294
        0x0040 line=295
        0x0049 line=296
        0x0051 line=297
        0x005a line=295
        0x005d line=292
        0x0063 line=295
        0x0065 line=299
        0x0069 line=300
        0x0079 line=302
        0x007a line=303
        0x0099 line=304
        0x00a2 line=305
        0x00a8 line=306
        0x00b8 line=307
        0x00bb line=308
        0x00c7 line=309
        0x00c9 line=310
        0x00cc line=311
        0x00d0 line=312
        0x00d4 line=313
        0x00d6 line=314
        0x00e2 line=315
        0x00e7 line=316
        0x00fb line=317
        0x010e line=314
        0x0116 line=320
        0x011c line=321
        0x011e line=322
        0x0122 line=323
        0x0128 line=324
        0x0140 line=325
        0x0146 line=326
        0x014f line=327
        0x0152 line=328
        0x016b line=329
        0x0173 line=331
        0x0180 line=332
        0x018b line=333
        0x019b line=334
        0x01b0 line=336
        0x01b2 line=335
        0x01ba line=336
        0x01c5 line=337
        0x01c9 line=336
        0x01d1 line=338
        0x01d5 line=341
        0x01d9 line=342
        0x01de line=343
        0x01e4 line=344
        0x01f3 line=345
        0x01f6 line=342
        0x01f7 line=341
        0x01ff line=338
        0x0207 line=292
        0x0211 line=304
        0x021a line=300
        0x021b line=301
        0x0223 line=299
        0x022c line=292
        0x023f line=344
        0x0252 line=345
        0x0255 line=346
      locals        :
        0x0000 - 0x0256 reg=26 this Lcom/valentinedesigns/chromalink/ArcadeAudio;
        0x0000 - 0x0256 reg=27 (null) Ljava/lang/String;
        0x0000 - 0x0256 reg=28 (null) I
        0x0000 - 0x0256 reg=29 (null) I

    #8              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'decodeLoop'
      type          : '()V'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 12
      ins           : 1
      outs          : 5
      insns size    : 370 16-bit code units
00cb74:                                        |[00cb74] com.valentinedesigns.chromalink.ArcadeAudio.decodeLoop:()V
00cb84: 1300 0a00                              |0000: const/16 v0, #int 10 // #a
00cb88: 7110 d600 0000                         |0002: invoke-static {v0}, Landroid/os/Process;.setThreadPriority:(I)V // method@00d6
00cb8e: 2802                                   |0005: goto 0007 // +0002
00cb90: 0d00                                   |0006: move-exception v0
00cb92: 54b0 7000                              |0007: iget-object v0, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.trackSpecs:[Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec; // field@0070
00cb96: 55b1 6700                              |0009: iget-boolean v1, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.released:Z // field@0067
00cb9a: 3801 0300                              |000b: if-eqz v1, 000e // +0003
00cb9e: 0e00                                   |000d: return-void
00cba0: 12f1                                   |000e: const/4 v1, #int -1 // #ff
00cba2: 0112                                   |000f: move v2, v1
00cba4: 55b3 6700                              |0010: iget-boolean v3, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.released:Z // field@0067
00cba8: 3903 5f01                              |0012: if-nez v3, 0171 // +015f
00cbac: 52b3 5500                              |0014: iget v3, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decodeGeneration:I // field@0055
00cbb0: 52b4 6c00                              |0016: iget v4, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.selectedIndex:I // field@006c
00cbb4: 52b5 6d00                              |0018: iget v5, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.selectionVersion:I // field@006d
00cbb8: 1206                                   |001a: const/4 v6, #int 0 // #0
00cbba: 3332 ae00                              |001b: if-ne v2, v3, 00c9 // +00ae
00cbbe: 54b7 5c00                              |001d: iget-object v7, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.lossCue:Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm; // field@005c
00cbc2: 3807 0600                              |001f: if-eqz v7, 0025 // +0006
00cbc6: 54b7 6800                              |0021: iget-object v7, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.retryLoop:Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm; // field@0068
00cbca: 3907 4100                              |0023: if-nez v7, 0064 // +0041
00cbce: 1a07 ec05                              |0025: const-string v7, "audio/outcomes.json" // string@05ec
00cbd2: 7020 0202 7b00                         |0027: invoke-direct {v11, v7}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.readObject:(Ljava/lang/String;)Lorg/json/JSONObject; // method@0202
00cbd8: 0c07                                   |002a: move-result-object v7
00cbda: 54b8 5c00                              |002b: iget-object v8, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.lossCue:Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm; // field@005c
00cbde: 3908 1000                              |002d: if-nez v8, 003d // +0010
00cbe2: 1a08 c60a                              |002f: const-string v8, "stun-drop.ogg" // string@0ac6
00cbe6: 1a09 8b06                              |0031: const-string v9, "cueFrames" // string@068b
00cbea: 6e30 c306 9706                         |0033: invoke-virtual {v7, v9, v6}, Lorg/json/JSONObject;.optInt:(Ljava/lang/String;I)I // method@06c3
00cbf0: 0a09                                   |0036: move-result v9
00cbf2: 7040 f601 8b19                         |0037: invoke-direct {v11, v8, v9, v1}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decode:(Ljava/lang/String;II)Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm; // method@01f6
00cbf8: 0c08                                   |003a: move-result-object v8
00cbfa: 5bb8 5c00                              |003b: iput-object v8, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.lossCue:Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm; // field@005c
00cbfe: 54b8 6800                              |003d: iget-object v8, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.retryLoop:Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm; // field@0068
00cc02: 3908 2400                              |003f: if-nez v8, 0063 // +0024
00cc06: 1a08 ab09                              |0041: const-string v8, "retry-loop.ogg" // string@09ab
00cc0a: 1a09 5808                              |0043: const-string v9, "loopFrames" // string@0858
00cc0e: 6e30 c306 9706                         |0045: invoke-virtual {v7, v9, v6}, Lorg/json/JSONObject;.optInt:(Ljava/lang/String;I)I // method@06c3
00cc14: 0a06                                   |0048: move-result v6
00cc16: 7040 f601 8b16                         |0049: invoke-direct {v11, v8, v6, v1}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decode:(Ljava/lang/String;II)Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm; // method@01f6
00cc1c: 0c06                                   |004c: move-result-object v6
00cc1e: 5bb6 6800                              |004d: iput-object v6, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.retryLoop:Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm; // field@0068
00cc22: 2814                                   |004f: goto 0063 // +0014
00cc24: 0d06                                   |0050: move-exception v6
00cc26: 2802                                   |0051: goto 0053 // +0002
00cc28: 0d06                                   |0052: move-exception v6
00cc2a: 55b7 6700                              |0053: iget-boolean v7, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.released:Z // field@0067
00cc2e: 3907 0e00                              |0055: if-nez v7, 0063 // +000e
00cc32: 1a07 0804                              |0057: const-string v7, "Outcome audio unavailable" // string@0408
00cc36: 5bb7 6e00                              |0059: iput-object v7, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.state:Ljava/lang/String; // field@006e
00cc3a: 1a07 4501                              |005b: const-string v7, "ChromalinkAudio" // string@0145
00cc3e: 1a08 0804                              |005d: const-string v8, "Outcome audio unavailable" // string@0408
00cc42: 7130 db00 8706                         |005f: invoke-static {v7, v8, v6}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I // method@00db
00cc48: 2802                                   |0062: goto 0064 // +0002
00cc4a: 0000                                   |0063: nop // spacer
00cc4c: 54b6 6300                              |0064: iget-object v6, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.playingBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0063
00cc50: 54b7 5300                              |0066: iget-object v7, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.automaticTracks:[Z // field@0053
00cc54: 7120 6f05 7400                         |0068: invoke-static {v4, v7}, Lcom/valentinedesigns/chromalink/MusicFade;.nextTrack:(I[Z)I // method@056f
00cc5a: 0a07                                   |006b: move-result v7
00cc5c: 55b8 6a00                              |006c: iget-boolean v8, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.rotateTracks:Z // field@006a
00cc60: 1609 d007                              |006e: const-wide/16 v9, #int 2000 // #7d0
00cc64: 3808 4100                              |0070: if-eqz v8, 00b1 // +0041
00cc68: 3247 3f00                              |0072: if-eq v7, v4, 00b1 // +003f
00cc6c: 3806 3d00                              |0074: if-eqz v6, 00b1 // +003d
00cc70: 5264 3200                              |0076: iget v4, v6, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.version:I // field@0032
00cc74: 3354 3900                              |0078: if-ne v4, v5, 00b1 // +0039
00cc78: 54b4 6400                              |007a: iget-object v4, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.prefetchedBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0064
00cc7c: 3804 0800                              |007c: if-eqz v4, 0084 // +0008
00cc80: 54b4 6400                              |007e: iget-object v4, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.prefetchedBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0064
00cc84: 5244 2f00                              |0080: iget v4, v4, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.index:I // field@002f
00cc88: 3274 2f00                              |0082: if-eq v4, v7, 00b1 // +002f
00cc8c: 7053 fe01 0b17                         |0084: invoke-direct {v11, v0, v7, v1, v3}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.loadBundle:([Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec;III)Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // method@01fe
00cc92: 0c04                                   |0087: move-result-object v4
00cc94: 55b5 6700                              |0088: iget-boolean v5, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.released:Z // field@0067
00cc98: 3905 2500                              |008a: if-nez v5, 00af // +0025
00cc9c: 55b5 6a00                              |008c: iget-boolean v5, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.rotateTracks:Z // field@006a
00cca0: 3805 2100                              |008e: if-eqz v5, 00af // +0021
00cca4: 52b5 5500                              |0090: iget v5, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decodeGeneration:I // field@0055
00cca8: 3353 1d00                              |0092: if-ne v3, v5, 00af // +001d
00ccac: 5bb4 6400                              |0094: iput-object v4, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.prefetchedBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0064
00ccb0: 2819                                   |0096: goto 00af // +0019
00ccb2: 0d04                                   |0097: move-exception v4
00ccb4: 2802                                   |0098: goto 009a // +0002
00ccb6: 0d04                                   |0099: move-exception v4
00ccb8: 55b5 6700                              |009a: iget-boolean v5, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.released:Z // field@0067
00ccbc: 3905 1000                              |009c: if-nez v5, 00ac // +0010
00ccc0: 52b5 5500                              |009e: iget v5, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decodeGeneration:I // field@0055
00ccc4: 3353 0c00                              |00a0: if-ne v3, v5, 00ac // +000c
00ccc8: 1a03 4501                              |00a2: const-string v3, "ChromalinkAudio" // string@0145
00cccc: 1a05 5704                              |00a4: const-string v5, "Retrying next track" // string@0457
00ccd0: 7130 db00 5304                         |00a6: invoke-static {v3, v5, v4}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I // method@00db
00ccd6: 7030 1802 9b0a                         |00a9: invoke-direct {v11, v9, v10}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.waitForDecodeRetry:(J)V // method@0218
00ccdc: 2900 64ff                              |00ac: goto/16 0010 // -009c
00cce0: 0d03                                   |00ae: move-exception v3
00cce2: 2900 61ff                              |00af: goto/16 0010 // -009f
00cce6: 54b7 5600                              |00b1: iget-object v7, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decodeSignal:Ljava/lang/Object; // field@0056
00ccea: 1d07                                   |00b3: monitor-enter v7
00ccec: 55b3 6700                              |00b4: iget-boolean v3, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.released:Z // field@0067
00ccf0: 3903 0d00                              |00b6: if-nez v3, 00c3 // +000d
00ccf4: 52b3 5500                              |00b8: iget v3, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decodeGeneration:I // field@0055
00ccf8: 3332 0900                              |00ba: if-ne v2, v3, 00c3 // +0009
00ccfc: 54b3 5600                              |00bc: iget-object v3, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decodeSignal:Ljava/lang/Object; // field@0056
00cd00: 6e30 5306 930a                         |00be: invoke-virtual {v3, v9, v10}, Ljava/lang/Object;.wait:(J)V // method@0653
00cd06: 2802                                   |00c1: goto 00c3 // +0002
00cd08: 0d03                                   |00c2: move-exception v3
00cd0a: 1e07                                   |00c3: monitor-exit v7
00cd0c: 2900 4cff                              |00c4: goto/16 0010 // -00b4
00cd10: 0d00                                   |00c6: move-exception v0
00cd12: 1e07                                   |00c7: monitor-exit v7
00cd14: 2700                                   |00c8: throw v0
00cd16: 0000                                   |00c9: nop // spacer
00cd18: 54b2 6b00                              |00ca: iget-object v2, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.selectedBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@006b
00cd1c: 3802 0600                              |00cc: if-eqz v2, 00d2 // +0006
00cd20: 5227 3200                              |00ce: iget v7, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.version:I // field@0032
00cd24: 3257 0600                              |00d0: if-eq v7, v5, 00d6 // +0006
00cd28: 7053 fe01 0b54                         |00d2: invoke-direct {v11, v0, v4, v5, v3}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.loadBundle:([Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec;III)Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // method@01fe
00cd2e: 0c02                                   |00d5: move-result-object v2
00cd30: 55b7 6700                              |00d6: iget-boolean v7, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.released:Z // field@0067
00cd34: 3907 8200                              |00d8: if-nez v7, 015a // +0082
00cd38: 52b7 5500                              |00da: iget v7, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decodeGeneration:I // field@0055
00cd3c: 3373 7e00                              |00dc: if-ne v3, v7, 015a // +007e
00cd40: 52b7 6d00                              |00de: iget v7, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.selectionVersion:I // field@006d
00cd44: 3375 7a00                              |00e0: if-ne v5, v7, 015a // +007a
00cd48: 5bb2 6b00                              |00e2: iput-object v2, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.selectedBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@006b
00cd4c: 1a05 4501                              |00e4: const-string v5, "ChromalinkAudio" // string@0145
00cd50: 6207 4c00                              |00e6: sget-object v7, Lcom/valentinedesigns/chromalink/ArcadeAudio;.TRACK_IDS:[Ljava/lang/String; // field@004c
00cd54: 4607 0704                              |00e8: aget-object v7, v7, v4
00cd58: 5222 2c00                              |00ea: iget v2, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.frames:I // field@002c
00cd5c: 2208 4901                              |00ec: new-instance v8, Ljava/lang/StringBuilder; // type@0149
00cd60: 7010 6806 0800                         |00ee: invoke-direct {v8}, Ljava/lang/StringBuilder;.<init>:()V // method@0668
00cd66: 1a09 4b04                              |00f1: const-string v9, "Ready " // string@044b
00cd6a: 6e20 6b06 9800                         |00f3: invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@066b
00cd70: 0c08                                   |00f6: move-result-object v8
00cd72: 6e20 6b06 7800                         |00f7: invoke-virtual {v8, v7}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@066b
00cd78: 0c07                                   |00fa: move-result-object v7
00cd7a: 1a08 cd00                              |00fb: const-string v8, ": " // string@00cd
00cd7e: 6e20 6b06 8700                         |00fd: invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@066b
00cd84: 0c07                                   |0100: move-result-object v7
00cd86: 6e20 6906 2700                         |0101: invoke-virtual {v7, v2}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@0669
00cd8c: 0c02                                   |0104: move-result-object v2
00cd8e: 1a07 0900                              |0105: const-string v7, " aligned frames" // string@0009
00cd92: 6e20 6b06 7200                         |0107: invoke-virtual {v2, v7}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@066b
00cd98: 0c02                                   |010a: move-result-object v2
00cd9a: 6e10 6c06 0200                         |010b: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@066c
00cda0: 0c02                                   |010e: move-result-object v2
00cda2: 7120 da00 2500                         |010f: invoke-static {v5, v2}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@00da
00cda8: 7010 1a02 0b00                         |0112: invoke-direct {v11}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.wakePlayback:()V // method@021a
00cdae: 2845                                   |0115: goto 015a // +0045
00cdb0: 0d02                                   |0116: move-exception v2
00cdb2: 2802                                   |0117: goto 0119 // +0002
00cdb4: 0d02                                   |0118: move-exception v2
00cdb6: 0000                                   |0119: nop // spacer
00cdb8: 55b5 6700                              |011a: iget-boolean v5, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.released:Z // field@0067
00cdbc: 3905 3b00                              |011c: if-nez v5, 0157 // +003b
00cdc0: 52b5 5500                              |011e: iget v5, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decodeGeneration:I // field@0055
00cdc4: 3353 3700                              |0120: if-ne v3, v5, 0157 // +0037
00cdc8: 6205 4d00                              |0122: sget-object v5, Lcom/valentinedesigns/chromalink/ArcadeAudio;.TRACK_NAMES:[Ljava/lang/String; // field@004d
00cdcc: 4605 0504                              |0124: aget-object v5, v5, v4
00cdd0: 2206 4901                              |0126: new-instance v6, Ljava/lang/StringBuilder; // type@0149
00cdd4: 7010 6806 0600                         |0128: invoke-direct {v6}, Ljava/lang/StringBuilder;.<init>:()V // method@0668
00cdda: 1a07 a103                              |012b: const-string v7, "Loading " // string@03a1
00cdde: 6e20 6b06 7600                         |012d: invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@066b
00cde4: 0c06                                   |0130: move-result-object v6
00cde6: 6e20 6b06 5600                         |0131: invoke-virtual {v6, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@066b
00cdec: 0c05                                   |0134: move-result-object v5
00cdee: 6e10 6c06 0500                         |0135: invoke-virtual {v5}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@066c
00cdf4: 0c05                                   |0138: move-result-object v5
00cdf6: 5bb5 6e00                              |0139: iput-object v5, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.state:Ljava/lang/String; // field@006e
00cdfa: 1a05 4501                              |013b: const-string v5, "ChromalinkAudio" // string@0145
00cdfe: 6206 4c00                              |013d: sget-object v6, Lcom/valentinedesigns/chromalink/ArcadeAudio;.TRACK_IDS:[Ljava/lang/String; // field@004c
00ce02: 4604 0604                              |013f: aget-object v4, v6, v4
00ce06: 2206 4901                              |0141: new-instance v6, Ljava/lang/StringBuilder; // type@0149
00ce0a: 7010 6806 0600                         |0143: invoke-direct {v6}, Ljava/lang/StringBuilder;.<init>:()V // method@0668
00ce10: 1a07 5604                              |0146: const-string v7, "Retrying decode " // string@0456
00ce14: 6e20 6b06 7600                         |0148: invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@066b
00ce1a: 0c06                                   |014b: move-result-object v6
00ce1c: 6e20 6b06 4600                         |014c: invoke-virtual {v6, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@066b
00ce22: 0c04                                   |014f: move-result-object v4
00ce24: 6e10 6c06 0400                         |0150: invoke-virtual {v4}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@066c
00ce2a: 0c04                                   |0153: move-result-object v4
00ce2c: 7130 db00 4502                         |0154: invoke-static {v5, v4, v2}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I // method@00db
00ce32: 1216                                   |0157: const/4 v6, #int 1 // #1
00ce34: 2803                                   |0158: goto 015b // +0003
00ce36: 0d02                                   |0159: move-exception v2
00ce38: 0000                                   |015a: nop // spacer
00ce3a: 3806 0400                              |015b: if-eqz v6, 015f // +0004
00ce3e: 0112                                   |015d: move v2, v1
00ce40: 2802                                   |015e: goto 0160 // +0002
00ce42: 0132                                   |015f: move v2, v3
00ce44: 3806 0f00                              |0160: if-eqz v6, 016f // +000f
00ce48: 55b4 6700                              |0162: iget-boolean v4, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.released:Z // field@0067
00ce4c: 3904 0b00                              |0164: if-nez v4, 016f // +000b
00ce50: 52b4 5500                              |0166: iget v4, v11, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decodeGeneration:I // field@0055
00ce54: 3343 0700                              |0168: if-ne v3, v4, 016f // +0007
00ce58: 1603 e803                              |016a: const-wide/16 v3, #int 1000 // #3e8
00ce5c: 7030 1802 3b04                         |016c: invoke-direct {v11, v3, v4}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.waitForDecodeRetry:(J)V // method@0218
00ce62: 2900 a1fe                              |016f: goto/16 0010 // -015f
00ce66: 0e00                                   |0171: return-void
      catches       : 7
        0x0002 - 0x0005
          Ljava/lang/SecurityException; -> 0x0006
        0x0025 - 0x004f
          Ljava/io/IOException; -> 0x0052
          Ljava/lang/RuntimeException; -> 0x0050
        0x0084 - 0x0096
          Lcom/valentinedesigns/chromalink/ArcadeAudio$Cancelled; -> 0x00ae
          Ljava/io/IOException; -> 0x0099
          Ljava/lang/RuntimeException; -> 0x0097
        0x00b4 - 0x00ba
          <any> -> 0x00c6
        0x00bc - 0x00c1
          Ljava/lang/InterruptedException; -> 0x00c2
          <any> -> 0x00c6
        0x00c3 - 0x00c8
          <any> -> 0x00c6
        0x00ca - 0x0115
          Lcom/valentinedesigns/chromalink/ArcadeAudio$Cancelled; -> 0x0159
          Ljava/io/IOException; -> 0x0118
          Ljava/lang/RuntimeException; -> 0x0116
      positions     :
        0x0000 line=169
        0x0007 line=170
        0x0009 line=171
        0x000e line=173
        0x0010 line=174
        0x0014 line=175
        0x001a line=176
        0x001d line=178
        0x0025 line=180
        0x002b line=181
        0x003d line=182
        0x0050 line=183
        0x0064 line=185
        0x0066 line=186
        0x006c line=187
        0x0084 line=189
        0x0088 line=190
        0x0097 line=191
        0x009a line=192
        0x00ac line=194
        0x00ae line=191
        0x00af line=193
        0x00b1 line=196
        0x00b4 line=197
        0x00c3 line=198
        0x00c4 line=199
        0x00c6 line=198
        0x00c9 line=201
        0x00ca line=203
        0x00cc line=204
        0x00d6 line=205
        0x00e2 line=206
        0x00e4 line=207
        0x0112 line=208
        0x0116 line=212
        0x0119 line=213
        0x011a line=214
        0x0157 line=218
        0x0159 line=210
        0x015a line=215
        0x015b line=218
        0x0160 line=219
        0x016f line=220
        0x0171 line=221
      locals        :
        0x0000 - 0x0172 reg=11 this Lcom/valentinedesigns/chromalink/ArcadeAudio;

    #9              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'disposeOutput'
      type          : '(Landroid/media/AudioTrack;)V'
      access        : 0x000a (PRIVATE STATIC)
      code          -
      registers     : 2
      ins           : 1
      outs          : 1
      insns size    : 17 16-bit code units
00ced0:                                        |[00ced0] com.valentinedesigns.chromalink.ArcadeAudio.disposeOutput:(Landroid/media/AudioTrack;)V
00cee0: 3901 0300                              |0000: if-nez v1, 0003 // +0003
00cee4: 0e00                                   |0002: return-void
00cee6: 6e10 a000 0100                         |0003: invoke-virtual {v1}, Landroid/media/AudioTrack;.pause:()V // method@00a0
00ceec: 6e10 9900 0100                         |0006: invoke-virtual {v1}, Landroid/media/AudioTrack;.flush:()V // method@0099
00cef2: 2802                                   |0009: goto 000b // +0002
00cef4: 0d00                                   |000a: move-exception v0
00cef6: 6e10 a200 0100                         |000b: invoke-virtual {v1}, Landroid/media/AudioTrack;.release:()V // method@00a2
00cefc: 2802                                   |000e: goto 0010 // +0002
00cefe: 0d01                                   |000f: move-exception v1
00cf00: 0e00                                   |0010: return-void
      catches       : 2
        0x0003 - 0x0009
          Ljava/lang/RuntimeException; -> 0x000a
        0x000b - 0x000e
          Ljava/lang/RuntimeException; -> 0x000f
      positions     :
        0x0000 line=567
        0x0003 line=568
        0x000b line=569
        0x0010 line=570
      locals        :
        0x0000 - 0x0011 reg=1 (null) Landroid/media/AudioTrack;

    #10              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'indicesForLegacy'
      type          : '(Z)[I'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 8
      ins           : 2
      outs          : 0
      insns size    : 44 16-bit code units
00c6ac:                                        |[00c6ac] com.valentinedesigns.chromalink.ArcadeAudio.indicesForLegacy:(Z)[I
00c6bc: 5460 7000                              |0000: iget-object v0, v6, Lcom/valentinedesigns/chromalink/ArcadeAudio;.trackSpecs:[Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec; // field@0070
00c6c0: 2101                                   |0002: array-length v1, v0
00c6c2: 1202                                   |0003: const/4 v2, #int 0 // #0
00c6c4: 0123                                   |0004: move v3, v2
00c6c6: 0134                                   |0005: move v4, v3
00c6c8: 3513 0d00                              |0006: if-ge v3, v1, 0013 // +000d
00c6cc: 4605 0003                              |0008: aget-object v5, v0, v3
00c6d0: 5555 3800                              |000a: iget-boolean v5, v5, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec;.legacy:Z // field@0038
00c6d4: 3375 0400                              |000c: if-ne v5, v7, 0010 // +0004
00c6d8: d804 0401                              |000e: add-int/lit8 v4, v4, #int 1 // #01
00c6dc: d803 0301                              |0010: add-int/lit8 v3, v3, #int 1 // #01
00c6e0: 28f4                                   |0012: goto 0006 // -000c
00c6e2: 2340 7501                              |0013: new-array v0, v4, [I // type@0175
00c6e6: 0121                                   |0015: move v1, v2
00c6e8: 5463 7000                              |0016: iget-object v3, v6, Lcom/valentinedesigns/chromalink/ArcadeAudio;.trackSpecs:[Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec; // field@0070
00c6ec: 2133                                   |0018: array-length v3, v3
00c6ee: 3532 1200                              |0019: if-ge v2, v3, 002b // +0012
00c6f2: 5463 7000                              |001b: iget-object v3, v6, Lcom/valentinedesigns/chromalink/ArcadeAudio;.trackSpecs:[Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec; // field@0070
00c6f6: 4603 0302                              |001d: aget-object v3, v3, v2
00c6fa: 5533 3800                              |001f: iget-boolean v3, v3, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec;.legacy:Z // field@0038
00c6fe: 3373 0700                              |0021: if-ne v3, v7, 0028 // +0007
00c702: d803 0101                              |0023: add-int/lit8 v3, v1, #int 1 // #01
00c706: 4b02 0001                              |0025: aput v2, v0, v1
00c70a: 0131                                   |0027: move v1, v3
00c70c: d802 0201                              |0028: add-int/lit8 v2, v2, #int 1 // #01
00c710: 28ec                                   |002a: goto 0016 // -0014
00c712: 1100                                   |002b: return-object v0
      catches       : (none)
      positions     :
        0x0000 line=88
        0x0013 line=89
        0x0015 line=90
        0x002b line=91
      locals        :
        0x0000 - 0x002c reg=6 this Lcom/valentinedesigns/chromalink/ArcadeAudio;
        0x0000 - 0x002c reg=7 (null) Z

    #11              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'loadBundle'
      type          : '([Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec;III)Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 16
      ins           : 5
      outs          : 9
      insns size    : 56 16-bit code units
00c12c:                                        |[00c12c] com.valentinedesigns.chromalink.ArcadeAudio.loadBundle:([Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec;III)Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;
00c13c: 460c 0c0d                              |0000: aget-object v12, v12, v13
00c140: 54c0 3b00                              |0002: iget-object v0, v12, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec;.src:Ljava/lang/String; // field@003b
00c144: 52c1 3500                              |0004: iget v1, v12, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec;.frames:I // field@0035
00c148: 7040 f601 0bf1                         |0006: invoke-direct {v11, v0, v1, v15}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decode:(Ljava/lang/String;II)Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm; // method@01f6
00c14e: 0c05                                   |0009: move-result-object v5
00c150: 54c0 3400                              |000a: iget-object v0, v12, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec;.dangerSrc:Ljava/lang/String; // field@0034
00c154: 1201                                   |000c: const/4 v1, #int 0 // #0
00c156: 3900 0400                              |000d: if-nez v0, 0011 // +0004
00c15a: 0716                                   |000f: move-object v6, v1
00c15c: 280a                                   |0010: goto 001a // +000a
00c15e: 54c0 3400                              |0011: iget-object v0, v12, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec;.dangerSrc:Ljava/lang/String; // field@0034
00c162: 52c2 3500                              |0013: iget v2, v12, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec;.frames:I // field@0035
00c166: 7040 f601 0bf2                         |0015: invoke-direct {v11, v0, v2, v15}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decode:(Ljava/lang/String;II)Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm; // method@01f6
00c16c: 0c00                                   |0018: move-result-object v0
00c16e: 0706                                   |0019: move-object v6, v0
00c170: 54c0 3900                              |001a: iget-object v0, v12, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec;.panicSrc:Ljava/lang/String; // field@0039
00c174: 3900 0400                              |001c: if-nez v0, 0020 // +0004
00c178: 0717                                   |001e: move-object v7, v1
00c17a: 280a                                   |001f: goto 0029 // +000a
00c17c: 54c0 3900                              |0020: iget-object v0, v12, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec;.panicSrc:Ljava/lang/String; // field@0039
00c180: 52c1 3500                              |0022: iget v1, v12, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec;.frames:I // field@0035
00c184: 7040 f601 0bf1                         |0024: invoke-direct {v11, v0, v1, v15}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decode:(Ljava/lang/String;II)Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm; // method@01f6
00c18a: 0c0f                                   |0027: move-result-object v15
00c18c: 07f7                                   |0028: move-object v7, v15
00c18e: 220f 8f00                              |0029: new-instance v15, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // type@008f
00c192: 52c8 3600                              |002b: iget v8, v12, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec;.gain:F // field@0036
00c196: 54c9 3700                              |002d: iget-object v9, v12, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec;.harmony:Lcom/valentinedesigns/chromalink/HarmonyGrid; // field@0037
00c19a: 55ca 3a00                              |002f: iget-boolean v10, v12, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec;.pitchedEffects:Z // field@003a
00c19e: 07f2                                   |0031: move-object v2, v15
00c1a0: 01d3                                   |0032: move v3, v13
00c1a2: 01e4                                   |0033: move v4, v14
00c1a4: 7609 e501 0200                         |0034: invoke-direct/range {v2, v3, v4, v5, v6, v7, v8, v9, v10}, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.<init>:(IILcom/valentinedesigns/chromalink/ArcadeAudio$Pcm;Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm;Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm;FLcom/valentinedesigns/chromalink/HarmonyGrid;Z)V // method@01e5
00c1aa: 110f                                   |0037: return-object v15
      catches       : (none)
      positions     :
        0x0000 line=223
        0x0002 line=224
        0x000a line=227
        0x001a line=228
        0x0029 line=229
      locals        :
        0x0000 - 0x0038 reg=11 this Lcom/valentinedesigns/chromalink/ArcadeAudio;
        0x0000 - 0x0038 reg=12 (null) [Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec;
        0x0000 - 0x0038 reg=13 (null) I
        0x0000 - 0x0038 reg=14 (null) I
        0x0000 - 0x0038 reg=15 (null) I

    #12              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'mixLoop'
      type          : '()V'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 59
      ins           : 1
      outs          : 5
      insns size    : 2328 16-bit code units
00cfb8:                                        |[00cfb8] com.valentinedesigns.chromalink.ArcadeAudio.mixLoop:()V
00cfc8: 0801 3a00                              |0000: move-object/from16 v1, v58
00cfcc: 1302 f0ff                              |0002: const/16 v2, #int -16 // #fff0
00cfd0: 7110 d600 0200                         |0004: invoke-static {v2}, Landroid/os/Process;.setThreadPriority:(I)V // method@00d6
00cfd6: 2802                                   |0007: goto 0009 // +0002
00cfd8: 0d00                                   |0008: move-exception v0
00cfda: 2202 9400                              |0009: new-instance v2, Lcom/valentinedesigns/chromalink/AudioRecovery; // type@0094
00cfde: 7010 2202 0200                         |000b: invoke-direct {v2}, Lcom/valentinedesigns/chromalink/AudioRecovery;.<init>:()V // method@0222
00cfe4: 1303 0004                              |000e: const/16 v3, #int 1024 // #400
00cfe8: 2334 8201                              |0010: new-array v4, v3, [S // type@0182
00cfec: 2205 5c01                              |0012: new-instance v5, Ljava/util/ArrayList; // type@015c
00cff0: 7010 8706 0500                         |0014: invoke-direct {v5}, Ljava/util/ArrayList;.<init>:()V // method@0687
00cff6: 2206 9600                              |0017: new-instance v6, Lcom/valentinedesigns/chromalink/AudioTransport; // type@0096
00cffa: 7010 2602 0600                         |0019: invoke-direct {v6}, Lcom/valentinedesigns/chromalink/AudioTransport;.<init>:()V // method@0226
00d000: 0000                                   |001c: nop // spacer
00d002: 0000                                   |001d: nop // spacer
00d004: 5417 6000                              |001e: iget-object v7, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.musicFade:Lcom/valentinedesigns/chromalink/MusicFade; // field@0060
00d008: 0000                                   |0020: nop // spacer
00d00a: 0000                                   |0021: nop // spacer
00d00c: 12f8                                   |0022: const/4 v8, #int -1 // #ff
00d00e: 1209                                   |0023: const/4 v9, #int 0 // #0
00d010: 120a                                   |0024: const/4 v10, #int 0 // #0
00d012: 120b                                   |0025: const/4 v11, #int 0 // #0
00d014: 120e                                   |0026: const/4 v14, #int 0 // #0
00d016: 120f                                   |0027: const/4 v15, #int 0 // #0
00d018: 1610 0000                              |0028: const-wide/16 v16, #int 0 // #0
00d01c: 1612 0000                              |002a: const-wide/16 v18, #int 0 // #0
00d020: 1314 0000                              |002c: const/16 v20, #int 0 // #0
00d024: 1315 0000                              |002e: const/16 v21, #int 0 // #0
00d028: 1316 0000                              |0030: const/16 v22, #int 0 // #0
00d02c: 1317 0000                              |0032: const/16 v23, #int 0 // #0
00d030: 1318 0000                              |0034: const/16 v24, #int 0 // #0
00d034: 1319 0000                              |0036: const/16 v25, #int 0 // #0
00d038: 161a 0000                              |0038: const-wide/16 v26, #int 0 // #0
00d03c: 5513 6700                              |003a: iget-boolean v3, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.released:Z // field@0067
00d040: 3903 d108                              |003c: if-nez v3, 090d // +08d1
00d044: 160c c800                              |003e: const-wide/16 v12, #int 200 // #c8
00d048: 181c 0000 0000 0100 0000               |0040: const-wide v28, #double 2.122e-314 // #0000000100000000
00d052: 181e 0000 0080 0000 0000               |0045: const-wide v30, #double 1.061e-314 // #0000000080000000
00d05c: 390e 9f00                              |004a: if-nez v14, 00e9 // +009f
00d060: 5513 6f00                              |004c: iget-boolean v3, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.suspended:Z // field@006f
00d064: 3803 0600                              |004e: if-eqz v3, 0054 // +0006
00d068: 7030 1902 c10d                         |0050: invoke-direct {v1, v12, v13}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.waitForPlayback:(J)V // method@0219
00d06e: 281f                                   |0053: goto 0072 // +001f
00d070: 390f 2100                              |0054: if-nez v15, 0075 // +0021
00d074: 5413 6b00                              |0056: iget-object v3, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.selectedBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@006b
00d078: 3903 1d00                              |0058: if-nez v3, 0075 // +001d
00d07c: 5413 5800                              |005a: iget-object v3, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.effects:Ljava/util/concurrent/ConcurrentLinkedQueue; // field@0058
00d080: 6e10 a706 0300                         |005c: invoke-virtual {v3}, Ljava/util/concurrent/ConcurrentLinkedQueue;.isEmpty:()Z // method@06a7
00d086: 0a03                                   |005f: move-result v3
00d088: 3803 1500                              |0060: if-eqz v3, 0075 // +0015
00d08c: 6e10 8d06 0500                         |0062: invoke-virtual {v5}, Ljava/util/ArrayList;.isEmpty:()Z // method@068d
00d092: 0a03                                   |0065: move-result v3
00d094: 3803 0f00                              |0066: if-eqz v3, 0075 // +000f
00d098: 5513 5b00                              |0068: iget-boolean v3, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.loss:Z // field@005b
00d09c: 3903 0b00                              |006a: if-nez v3, 0075 // +000b
00d0a0: 160c 6400                              |006c: const-wide/16 v12, #int 100 // #64
00d0a4: 7030 1902 c10d                         |006e: invoke-direct {v1, v12, v13}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.waitForPlayback:(J)V // method@0219
00d0aa: 0000                                   |0071: nop // spacer
00d0ac: 1303 0004                              |0072: const/16 v3, #int 1024 // #400
00d0b0: 28c6                                   |0074: goto 003a // -003a
00d0b2: 1403 44ac 0000                         |0075: const v3, #float 6.17973e-41 // #0000ac44
00d0b8: 130a 0c00                              |0078: const/16 v10, #int 12 // #c
00d0bc: 122c                                   |007a: const/4 v12, #int 2 // #2
00d0be: 7130 9c00 a30c                         |007b: invoke-static {v3, v10, v12}, Landroid/media/AudioTrack;.getMinBufferSize:(III)I // method@009c
00d0c4: 0a03                                   |007e: move-result v3
00d0c6: 3d03 5600                              |007f: if-lez v3, 00d5 // +0056
00d0ca: 7110 f401 0300                         |0081: invoke-static {v3}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.createOutput:(I)Landroid/media/AudioTrack; // method@01f4
00d0d0: 0c0e                                   |0084: move-result-object v14
00d0d2: 2203 9300                              |0085: new-instance v3, Lcom/valentinedesigns/chromalink/AudioBufferPolicy; // type@0093
00d0d6: 6e10 9a00 0e00                         |0087: invoke-virtual {v14}, Landroid/media/AudioTrack;.getBufferCapacityInFrames:()I // method@009a
00d0dc: 0a0a                                   |008a: move-result v10
00d0de: 6e10 9b00 0e00                         |008b: invoke-virtual {v14}, Landroid/media/AudioTrack;.getBufferSizeInFrames:()I // method@009b
00d0e4: 0a0c                                   |008e: move-result v12
00d0e6: 6e10 9f00 0e00                         |008f: invoke-virtual {v14}, Landroid/media/AudioTrack;.getUnderrunCount:()I // method@009f
00d0ec: 0a0d                                   |0092: move-result v13
00d0ee: 0821 0e00                              |0093: move-object/from16 v33, v14
00d0f2: 130e 0002                              |0095: const/16 v14, #int 512 // #200
00d0f6: 705d 1b02 a3ec                         |0097: invoke-direct {v3, v10, v12, v14, v13}, Lcom/valentinedesigns/chromalink/AudioBufferPolicy;.<init>:(IIII)V // method@021b
00d0fc: 0000                                   |009a: nop // spacer
00d0fe: 380f 1d00                              |009b: if-eqz v15, 00b8 // +001d
00d102: 620a 4d00                              |009d: sget-object v10, Lcom/valentinedesigns/chromalink/ArcadeAudio;.TRACK_NAMES:[Ljava/lang/String; // field@004d
00d106: 52fc 2f00                              |009f: iget v12, v15, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.index:I // field@002f
00d10a: 460a 0a0c                              |00a1: aget-object v10, v10, v12
00d10e: 5b1a 6e00                              |00a3: iput-object v10, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.state:Ljava/lang/String; // field@006e
00d112: 2813                                   |00a5: goto 00b8 // +0013
00d114: 0d00                                   |00a6: move-exception v0
00d116: 072a                                   |00a7: move-object v10, v2
00d118: 0814 0300                              |00a8: move-object/from16 v20, v3
00d11c: 075e                                   |00aa: move-object v14, v5
00d11e: 0762                                   |00ab: move-object v2, v6
00d120: 0223 0b00                              |00ac: move/from16 v35, v11
00d124: 0825 2100                              |00ae: move-object/from16 v37, v33
00d128: 1610 0000                              |00b0: const-wide/16 v16, #int 0 // #0
00d12c: 1612 0000                              |00b2: const-wide/16 v18, #int 0 // #0
00d130: 161a 0000                              |00b4: const-wide/16 v26, #int 0 // #0
00d134: 0703                                   |00b6: move-object v3, v0
00d136: 281b                                   |00b7: goto 00d2 // +001b
00d138: 080e 2100                              |00b8: move-object/from16 v14, v33
00d13c: 120a                                   |00ba: const/4 v10, #int 0 // #0
00d13e: 1610 0000                              |00bb: const-wide/16 v16, #int 0 // #0
00d142: 1612 0000                              |00bd: const-wide/16 v18, #int 0 // #0
00d146: 161a 0000                              |00bf: const-wide/16 v26, #int 0 // #0
00d14a: 282a                                   |00c1: goto 00eb // +002a
00d14c: 0d00                                   |00c2: move-exception v0
00d14e: 2900 9e07                              |00c3: goto/16 0861 // +079e
00d152: 0d00                                   |00c5: move-exception v0
00d154: 2804                                   |00c6: goto 00ca // +0004
00d156: 0d00                                   |00c7: move-exception v0
00d158: 0821 0e00                              |00c8: move-object/from16 v33, v14
00d15c: 0703                                   |00ca: move-object v3, v0
00d15e: 072a                                   |00cb: move-object v10, v2
00d160: 075e                                   |00cc: move-object v14, v5
00d162: 0762                                   |00cd: move-object v2, v6
00d164: 0223 0b00                              |00ce: move/from16 v35, v11
00d168: 0825 2100                              |00d0: move-object/from16 v37, v33
00d16c: 074b                                   |00d2: move-object v11, v4
00d16e: 2900 a807                              |00d3: goto/16 087b // +07a8
00d172: 2203 3e01                              |00d5: new-instance v3, Ljava/lang/IllegalStateException; // type@013e
00d176: 1a0a f300                              |00d7: const-string v10, "Audio output unavailable" // string@00f3
00d17a: 7020 2f06 a300                         |00d9: invoke-direct {v3, v10}, Ljava/lang/IllegalStateException;.<init>:(Ljava/lang/String;)V // method@062f
00d180: 2703                                   |00dc: throw v3
00d182: 0d00                                   |00dd: move-exception v0
00d184: 0703                                   |00de: move-object v3, v0
00d186: 072a                                   |00df: move-object v10, v2
00d188: 0762                                   |00e0: move-object v2, v6
00d18a: 0223 0b00                              |00e1: move/from16 v35, v11
00d18e: 0825 0e00                              |00e3: move-object/from16 v37, v14
00d192: 074b                                   |00e5: move-object v11, v4
00d194: 075e                                   |00e6: move-object v14, v5
00d196: 2900 9407                              |00e7: goto/16 087b // +0794
00d19a: 0803 1400                              |00e9: move-object/from16 v3, v20
00d19e: 6e10 9d00 0e00                         |00eb: invoke-virtual {v14}, Landroid/media/AudioTrack;.getPlaybackHeadPosition:()I // method@009d
00d1a4: 0a0c                                   |00ee: move-result v12
00d1a6: 7110 3406 0c00                         |00ef: invoke-static {v12}, Ljava/lang/Integer;.toUnsignedLong:(I)J // method@0634
00d1ac: 0b0c                                   |00f2: move-result-wide v12
00d1ae: 3114 0c10                              |00f3: cmp-long v20, v12, v16
00d1b2: 3b14 0a00                              |00f5: if-gez v20, 00ff // +000a
00d1b6: 9c10 100c                              |00f7: sub-long v16, v16, v12
00d1ba: 3110 101e                              |00f9: cmp-long v16, v16, v30
00d1be: 3d10 0400                              |00fb: if-lez v16, 00ff // +0004
00d1c2: 9b12 121c                              |00fd: add-long v18, v18, v28
00d1c6: 0814 0200                              |00ff: move-object/from16 v20, v2
00d1ca: 0821 0300                              |0101: move-object/from16 v33, v3
00d1ce: 9b02 120c                              |0103: add-long v2, v18, v12
00d1d2: 6e30 2702 2603                         |0105: invoke-virtual {v6, v2, v3}, Lcom/valentinedesigns/chromalink/AudioTransport;.acknowledge:(J)V // method@0227
00d1d8: 0510 0200                              |0108: move-wide/from16 v16, v2
00d1dc: 6e10 2902 0600                         |010a: invoke-virtual {v6}, Lcom/valentinedesigns/chromalink/AudioTransport;.audibleSongFrame:()J // method@0229
00d1e2: 0b02                                   |010d: move-result-wide v2
00d1e4: 5a12 5000                              |010e: iput-wide v2, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.audibleSongFrame:J // field@0050
00d1e8: 380f 3000                              |0110: if-eqz v15, 0140 // +0030
00d1ec: 6e10 2802 0600                         |0112: invoke-virtual {v6}, Lcom/valentinedesigns/chromalink/AudioTransport;.audibleSongEpoch:()I // method@0228
00d1f2: 0a02                                   |0115: move-result v2
00d1f4: 3382 0900                              |0116: if-ne v2, v8, 011f // +0009
00d1f8: 5412 6600                              |0118: iget-object v2, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.previousBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0066
00d1fc: 3802 0500                              |011a: if-eqz v2, 011f // +0005
00d200: 5412 6600                              |011c: iget-object v2, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.previousBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0066
00d204: 2802                                   |011e: goto 0120 // +0002
00d206: 07f2                                   |011f: move-object v2, v15
00d208: 5b12 4f00                              |0120: iput-object v2, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.audibleBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@004f
00d20c: 5412 4f00                              |0122: iget-object v2, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.audibleBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@004f
00d210: 5222 2f00                              |0124: iget v2, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.index:I // field@002f
00d214: 5912 5400                              |0126: iput v2, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.currentIndex:I // field@0054
00d218: 6e10 2802 0600                         |0128: invoke-virtual {v6}, Lcom/valentinedesigns/chromalink/AudioTransport;.audibleSongEpoch:()I // method@0228
00d21e: 0a02                                   |012b: move-result v2
00d220: 3392 1400                              |012c: if-ne v2, v9, 0140 // +0014
00d224: 1202                                   |012e: const/4 v2, #int 0 // #0
00d226: 5b12 6600                              |012f: iput-object v2, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.previousBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0066
00d22a: 280f                                   |0131: goto 0140 // +000f
00d22c: 0d00                                   |0132: move-exception v0
00d22e: 0703                                   |0133: move-object v3, v0
00d230: 0762                                   |0134: move-object v2, v6
00d232: 0223 0b00                              |0135: move/from16 v35, v11
00d236: 0510 0c00                              |0137: move-wide/from16 v16, v12
00d23a: 0825 0e00                              |0139: move-object/from16 v37, v14
00d23e: 080a 1400                              |013b: move-object/from16 v10, v20
00d242: 0814 2100                              |013d: move-object/from16 v20, v33
00d246: 28a6                                   |013f: goto 00e5 // -005a
00d248: 5512 6f00                              |0140: iget-boolean v2, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.suspended:Z // field@006f
00d24c: 3802 6b00                              |0142: if-eqz v2, 01ad // +006b
00d250: 380a 0600                              |0144: if-eqz v10, 014a // +0006
00d254: 6e10 a000 0e00                         |0146: invoke-virtual {v14}, Landroid/media/AudioTrack;.pause:()V // method@00a0
00d25a: 120a                                   |0149: const/4 v10, #int 0 // #0
00d25c: 5412 5800                              |014a: iget-object v2, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.effects:Ljava/util/concurrent/ConcurrentLinkedQueue; // field@0058
00d260: 6e10 a606 0200                         |014c: invoke-virtual {v2}, Ljava/util/concurrent/ConcurrentLinkedQueue;.clear:()V // method@06a6
00d266: 6e10 8b06 0500                         |014f: invoke-virtual {v5}, Ljava/util/ArrayList;.clear:()V // method@068b
00d26c: 5412 6200                              |0152: iget-object v2, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.playbackSignal:Ljava/lang/Object; // field@0062
00d270: 1d02                                   |0154: monitor-enter v2
00d272: 5513 6700                              |0155: iget-boolean v3, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.released:Z // field@0067
00d276: 3903 1500                              |0157: if-nez v3, 016c // +0015
00d27a: 5513 6f00                              |0159: iget-boolean v3, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.suspended:Z // field@006f
00d27e: 3803 1100                              |015b: if-eqz v3, 016c // +0011
00d282: 5413 6200                              |015d: iget-object v3, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.playbackSignal:Ljava/lang/Object; // field@0062
00d286: 0222 0800                              |015f: move/from16 v34, v8
00d28a: 0223 0900                              |0161: move/from16 v35, v9
00d28e: 1608 c800                              |0163: const-wide/16 v8, #int 200 // #c8
00d292: 6e30 5306 8309                         |0165: invoke-virtual {v3, v8, v9}, Ljava/lang/Object;.wait:(J)V // method@0653
00d298: 2808                                   |0168: goto 0170 // +0008
00d29a: 0d00                                   |0169: move-exception v0
00d29c: 2806                                   |016a: goto 0170 // +0006
00d29e: 0d00                                   |016b: move-exception v0
00d2a0: 0222 0800                              |016c: move/from16 v34, v8
00d2a4: 0223 0900                              |016e: move/from16 v35, v9
00d2a8: 1e02                                   |0170: monitor-exit v2
00d2aa: 0510 0c00                              |0171: move-wide/from16 v16, v12
00d2ae: 0802 1400                              |0173: move-object/from16 v2, v20
00d2b2: 0814 2100                              |0175: move-object/from16 v20, v33
00d2b6: 0208 2200                              |0177: move/from16 v8, v34
00d2ba: 0209 2300                              |0179: move/from16 v9, v35
00d2be: 1303 0004                              |017b: const/16 v3, #int 1024 // #400
00d2c2: 2900 bdfe                              |017d: goto/16 003a // -0143
00d2c6: 0d00                                   |017f: move-exception v0
00d2c8: 0222 0800                              |0180: move/from16 v34, v8
00d2cc: 0223 0900                              |0182: move/from16 v35, v9
00d2d0: 0703                                   |0184: move-object v3, v0
00d2d2: 1e02                                   |0185: monitor-exit v2
00d2d4: 2703                                   |0186: throw v3
00d2d6: 0d00                                   |0187: move-exception v0
00d2d8: 0703                                   |0188: move-object v3, v0
00d2da: 0762                                   |0189: move-object v2, v6
00d2dc: 0510 0c00                              |018a: move-wide/from16 v16, v12
00d2e0: 0825 0e00                              |018c: move-object/from16 v37, v14
00d2e4: 080a 1400                              |018e: move-object/from16 v10, v20
00d2e8: 0814 2100                              |0190: move-object/from16 v20, v33
00d2ec: 0208 2200                              |0192: move/from16 v8, v34
00d2f0: 0209 2300                              |0194: move/from16 v9, v35
00d2f4: 2812                                   |0196: goto 01a8 // +0012
00d2f6: 0d00                                   |0197: move-exception v0
00d2f8: 28ec                                   |0198: goto 0184 // -0014
00d2fa: 0d00                                   |0199: move-exception v0
00d2fc: 0222 0800                              |019a: move/from16 v34, v8
00d300: 0223 0900                              |019c: move/from16 v35, v9
00d304: 0703                                   |019e: move-object v3, v0
00d306: 0762                                   |019f: move-object v2, v6
00d308: 0510 0c00                              |01a0: move-wide/from16 v16, v12
00d30c: 0825 0e00                              |01a2: move-object/from16 v37, v14
00d310: 080a 1400                              |01a4: move-object/from16 v10, v20
00d314: 0814 2100                              |01a6: move-object/from16 v20, v33
00d318: 075e                                   |01a8: move-object v14, v5
00d31a: 0223 0b00                              |01a9: move/from16 v35, v11
00d31e: 2900 27ff                              |01ab: goto/16 00d2 // -00d9
00d322: 0222 0800                              |01ad: move/from16 v34, v8
00d326: 0223 0900                              |01af: move/from16 v35, v9
00d32a: 5512 5b00                              |01b1: iget-boolean v2, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.loss:Z // field@005b
00d32e: 1d3a                                   |01b3: monitor-enter v58
00d330: 5413 6b00                              |01b4: iget-object v3, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.selectedBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@006b
00d334: 3803 1b00                              |01b6: if-eqz v3, 01d1 // +001b
00d338: 5238 3200                              |01b8: iget v8, v3, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.version:I // field@0032
00d33c: 5219 6d00                              |01ba: iget v9, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.selectionVersion:I // field@006d
00d340: 3298 1e00                              |01bc: if-eq v8, v9, 01da // +001e
00d344: 2813                                   |01be: goto 01d1 // +0013
00d346: 0d00                                   |01bf: move-exception v0
00d348: 0762                                   |01c0: move-object v2, v6
00d34a: 01b3                                   |01c1: move v3, v11
00d34c: 080a 1400                              |01c2: move-object/from16 v10, v20
00d350: 0828 2100                              |01c4: move-object/from16 v40, v33
00d354: 0208 2200                              |01c6: move/from16 v8, v34
00d358: 0209 2300                              |01c8: move/from16 v9, v35
00d35c: 074b                                   |01ca: move-object v11, v4
00d35e: 0821 0e00                              |01cb: move-object/from16 v33, v14
00d362: 0704                                   |01cd: move-object v4, v0
00d364: 075e                                   |01ce: move-object v14, v5
00d366: 2900 5906                              |01cf: goto/16 0828 // +0659
00d36a: 6e10 6805 0700                         |01d1: invoke-virtual {v7}, Lcom/valentinedesigns/chromalink/MusicFade;.fadingOut:()Z // method@0568
00d370: 0a08                                   |01d4: move-result v8
00d372: 3808 0500                              |01d5: if-eqz v8, 01da // +0005
00d376: 6e10 6505 0700                         |01d7: invoke-virtual {v7}, Lcom/valentinedesigns/chromalink/MusicFade;.cancel:()V // method@0565
00d37c: 5518 5f00                              |01da: iget-boolean v8, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.musicEnabled:Z // field@005f
00d380: 3808 1100                              |01dc: if-eqz v8, 01ed // +0011
00d384: 5518 5d00                              |01de: iget-boolean v8, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.masterMuted:Z // field@005d
00d388: 3908 0d00                              |01e0: if-nez v8, 01ed // +000d
00d38c: 5218 6100                              |01e2: iget v8, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.musicVolume:F // field@0061
00d390: 1420 17b7 5138                         |01e4: const v32, #float 5e-05 // #3851b717
00d396: 2d08 0820                              |01e7: cmpl-float v8, v8, v32
00d39a: 3d08 0400                              |01e9: if-lez v8, 01ed // +0004
00d39e: 1218                                   |01eb: const/4 v8, #int 1 // #1
00d3a0: 2802                                   |01ec: goto 01ee // +0002
00d3a2: 1208                                   |01ed: const/4 v8, #int 0 // #0
00d3a4: 5519 5200                              |01ee: iget-boolean v9, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.automaticRequest:Z // field@0052
00d3a8: 3809 0700                              |01f0: if-eqz v9, 01f7 // +0007
00d3ac: 3808 0300                              |01f2: if-eqz v8, 01f5 // +0003
00d3b0: 2803                                   |01f4: goto 01f7 // +0003
00d3b2: 1208                                   |01f5: const/4 v8, #int 0 // #0
00d3b4: 2802                                   |01f6: goto 01f8 // +0002
00d3b6: 1218                                   |01f7: const/4 v8, #int 1 // #1
00d3b8: 3803 e400                              |01f8: if-eqz v3, 02dc // +00e4
00d3bc: 5239 3200                              |01fa: iget v9, v3, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.version:I // field@0032
00d3c0: 0224 0a00                              |01fc: move/from16 v36, v10
00d3c4: 521a 6d00                              |01fe: iget v10, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.selectionVersion:I // field@006d
00d3c8: 33a9 de00                              |0200: if-ne v9, v10, 02de // +00de
00d3cc: 380f 0800                              |0202: if-eqz v15, 020a // +0008
00d3d0: 5239 3200                              |0204: iget v9, v3, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.version:I // field@0032
00d3d4: 52fa 3200                              |0206: iget v10, v15, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.version:I // field@0032
00d3d8: 32a9 d600                              |0208: if-eq v9, v10, 02de // +00d6
00d3dc: 380f 1800                              |020a: if-eqz v15, 0222 // +0018
00d3e0: 5239 2f00                              |020c: iget v9, v3, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.index:I // field@002f
00d3e4: 52fa 2f00                              |020e: iget v10, v15, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.index:I // field@002f
00d3e8: 33a9 1200                              |0210: if-ne v9, v10, 0222 // +0012
00d3ec: 0000                                   |0212: nop // spacer
00d3ee: 5b13 6300                              |0213: iput-object v3, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.playingBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0063
00d3f2: 6e10 6505 0700                         |0215: invoke-virtual {v7}, Lcom/valentinedesigns/chromalink/MusicFade;.cancel:()V // method@0565
00d3f8: 073f                                   |0218: move-object v15, v3
00d3fa: 0208 2200                              |0219: move/from16 v8, v34
00d3fe: 0209 2300                              |021b: move/from16 v9, v35
00d402: 2900 c500                              |021d: goto/16 02e2 // +00c5
00d406: 0d00                                   |021f: move-exception v0
00d408: 073f                                   |0220: move-object v15, v3
00d40a: 289f                                   |0221: goto 01c0 // -0061
00d40c: 380f 1600                              |0222: if-eqz v15, 0238 // +0016
00d410: 3902 0b00                              |0224: if-nez v2, 022f // +000b
00d414: 3808 0900                              |0226: if-eqz v8, 022f // +0009
00d418: 6e10 7005 0700                         |0228: invoke-virtual {v7}, Lcom/valentinedesigns/chromalink/MusicFade;.ready:()Z // method@0570
00d41e: 0a09                                   |022b: move-result v9
00d420: 3809 0300                              |022c: if-eqz v9, 022f // +0003
00d424: 280a                                   |022e: goto 0238 // +000a
00d426: 3902 af00                              |022f: if-nez v2, 02de // +00af
00d42a: 3808 ad00                              |0231: if-eqz v8, 02de // +00ad
00d42e: 6e10 6705 0700                         |0233: invoke-virtual {v7}, Lcom/valentinedesigns/chromalink/MusicFade;.fadeOut:()V // method@0567
00d434: 2900 a800                              |0236: goto/16 02de // +00a8
00d438: 5b1f 6600                              |0238: iput-object v15, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.previousBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0066
00d43c: 0000                                   |023a: nop // spacer
00d43e: 0000                                   |023b: nop // spacer
00d440: 5b13 6300                              |023c: iput-object v3, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.playingBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0063
00d444: 5238 2c00                              |023e: iget v8, v3, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.frames:I // field@002c
00d448: 6e20 2a02 8600                         |0240: invoke-virtual {v6, v8}, Lcom/valentinedesigns/chromalink/AudioTransport;.beginSong:(I)V // method@022a
00d44e: 6e10 3302 0600                         |0243: invoke-virtual {v6}, Lcom/valentinedesigns/chromalink/AudioTransport;.songEpoch:()I // method@0233
00d454: 0a08                                   |0246: move-result v8
00d456: 6e10 7105 0700                         |0247: invoke-virtual {v7}, Lcom/valentinedesigns/chromalink/MusicFade;.startSong:()V // method@0571
00d45c: 0000                                   |024a: nop // spacer
00d45e: 1209                                   |024b: const/4 v9, #int 0 // #0
00d460: 5c19 5200                              |024c: iput-boolean v9, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.automaticRequest:Z // field@0052
00d464: 541a 6400                              |024e: iget-object v10, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.prefetchedBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0064
00d468: 380a 1a00                              |0250: if-eqz v10, 026a // +001a
00d46c: 541a 6400                              |0252: iget-object v10, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.prefetchedBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0064
00d470: 52aa 2f00                              |0254: iget v10, v10, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.index:I // field@002f
00d474: 523f 2f00                              |0256: iget v15, v3, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.index:I // field@002f
00d478: 33fa 1200                              |0258: if-ne v10, v15, 026a // +0012
00d47c: 120a                                   |025a: const/4 v10, #int 0 // #0
00d47e: 5b1a 6400                              |025b: iput-object v10, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.prefetchedBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0064
00d482: 280d                                   |025d: goto 026a // +000d
00d484: 0d00                                   |025e: move-exception v0
00d486: 073f                                   |025f: move-object v15, v3
00d488: 0762                                   |0260: move-object v2, v6
00d48a: 0189                                   |0261: move v9, v8
00d48c: 01b3                                   |0262: move v3, v11
00d48e: 080a 1400                              |0263: move-object/from16 v10, v20
00d492: 0828 2100                              |0265: move-object/from16 v40, v33
00d496: 0208 2300                              |0267: move/from16 v8, v35
00d49a: 2850                                   |0269: goto 02b9 // +0050
00d49c: 620a 4d00                              |026a: sget-object v10, Lcom/valentinedesigns/chromalink/ArcadeAudio;.TRACK_NAMES:[Ljava/lang/String; // field@004d
00d4a0: 523f 2f00                              |026c: iget v15, v3, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.index:I // field@002f
00d4a4: 460a 0a0f                              |026e: aget-object v10, v10, v15
00d4a8: 5b1a 6e00                              |0270: iput-object v10, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.state:Ljava/lang/String; // field@006e
00d4ac: 1a0a 4501                              |0272: const-string v10, "ChromalinkAudio" // string@0145
00d4b0: 620f 4c00                              |0274: sget-object v15, Lcom/valentinedesigns/chromalink/ArcadeAudio;.TRACK_IDS:[Ljava/lang/String; // field@004c
00d4b4: 5239 2f00                              |0276: iget v9, v3, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.index:I // field@002f
00d4b8: 4609 0f09                              |0278: aget-object v9, v15, v9
00d4bc: 220f 4901                              |027a: new-instance v15, Ljava/lang/StringBuilder; // type@0149
00d4c0: 7010 6806 0f00                         |027c: invoke-direct {v15}, Ljava/lang/StringBuilder;.<init>:()V // method@0668
00d4c6: 0825 0300                              |027f: move-object/from16 v37, v3
00d4ca: 1a03 2e04                              |0281: const-string v3, "Playing " // string@042e
00d4ce: 6e20 6b06 3f00                         |0283: invoke-virtual {v15, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@066b
00d4d4: 0c03                                   |0286: move-result-object v3
00d4d6: 6e20 6b06 9300                         |0287: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@066b
00d4dc: 0c03                                   |028a: move-result-object v3
00d4de: 6e10 6c06 0300                         |028b: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@066c
00d4e4: 0c03                                   |028e: move-result-object v3
00d4e6: 7120 da00 3a00                         |028f: invoke-static {v10, v3}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@00da
00d4ec: 5413 5600                              |0292: iget-object v3, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decodeSignal:Ljava/lang/Object; // field@0056
00d4f0: 1d03                                   |0294: monitor-enter v3
00d4f2: 5419 5600                              |0295: iget-object v9, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decodeSignal:Ljava/lang/Object; // field@0056
00d4f6: 6e10 5106 0900                         |0297: invoke-virtual {v9}, Ljava/lang/Object;.notifyAll:()V // method@0651
00d4fc: 1e03                                   |029a: monitor-exit v3
00d4fe: 0189                                   |029b: move v9, v8
00d500: 0208 2300                              |029c: move/from16 v8, v35
00d504: 080f 2500                              |029e: move-object/from16 v15, v37
00d508: 1316 0000                              |02a0: const/16 v22, #int 0 // #0
00d50c: 1317 0000                              |02a2: const/16 v23, #int 0 // #0
00d510: 283e                                   |02a4: goto 02e2 // +003e
00d512: 0d00                                   |02a5: move-exception v0
00d514: 0702                                   |02a6: move-object v2, v0
00d516: 1e03                                   |02a7: monitor-exit v3
00d518: 2702                                   |02a8: throw v2
00d51a: 0d00                                   |02a9: move-exception v0
00d51c: 2804                                   |02aa: goto 02ae // +0004
00d51e: 0d00                                   |02ab: move-exception v0
00d520: 0825 0300                              |02ac: move-object/from16 v37, v3
00d524: 0762                                   |02ae: move-object v2, v6
00d526: 0189                                   |02af: move v9, v8
00d528: 01b3                                   |02b0: move v3, v11
00d52a: 080a 1400                              |02b1: move-object/from16 v10, v20
00d52e: 0828 2100                              |02b3: move-object/from16 v40, v33
00d532: 0208 2300                              |02b5: move/from16 v8, v35
00d536: 080f 2500                              |02b7: move-object/from16 v15, v37
00d53a: 1316 0000                              |02b9: const/16 v22, #int 0 // #0
00d53e: 1317 0000                              |02bb: const/16 v23, #int 0 // #0
00d542: 2900 0dff                              |02bd: goto/16 01ca // -00f3
00d546: 0d00                                   |02bf: move-exception v0
00d548: 0825 0300                              |02c0: move-object/from16 v37, v3
00d54c: 0762                                   |02c2: move-object v2, v6
00d54e: 0189                                   |02c3: move v9, v8
00d550: 01b3                                   |02c4: move v3, v11
00d552: 080a 1400                              |02c5: move-object/from16 v10, v20
00d556: 0828 2100                              |02c7: move-object/from16 v40, v33
00d55a: 0208 2300                              |02c9: move/from16 v8, v35
00d55e: 280d                                   |02cb: goto 02d8 // +000d
00d560: 0d00                                   |02cc: move-exception v0
00d562: 0825 0300                              |02cd: move-object/from16 v37, v3
00d566: 0762                                   |02cf: move-object v2, v6
00d568: 01b3                                   |02d0: move v3, v11
00d56a: 080a 1400                              |02d1: move-object/from16 v10, v20
00d56e: 0828 2100                              |02d3: move-object/from16 v40, v33
00d572: 0208 2300                              |02d5: move/from16 v8, v35
00d576: 0189                                   |02d7: move v9, v8
00d578: 080f 2500                              |02d8: move-object/from16 v15, v37
00d57c: 2900 f0fe                              |02da: goto/16 01ca // -0110
00d580: 0224 0a00                              |02dc: move/from16 v36, v10
00d584: 0208 2200                              |02de: move/from16 v8, v34
00d588: 0209 2300                              |02e0: move/from16 v9, v35
00d58c: 1e3a                                   |02e2: monitor-exit v58
00d58e: 32b2 9200                              |02e3: if-eq v2, v11, 0375 // +0092
00d592: 6e10 a000 0e00                         |02e5: invoke-virtual {v14}, Landroid/media/AudioTrack;.pause:()V // method@00a0
00d598: 6e10 9d00 0e00                         |02e8: invoke-virtual {v14}, Landroid/media/AudioTrack;.getPlaybackHeadPosition:()I // method@009d
00d59e: 0a03                                   |02eb: move-result v3
00d5a0: 7110 3406 0300                         |02ec: invoke-static {v3}, Ljava/lang/Integer;.toUnsignedLong:(I)J // method@0634
00d5a6: 0b10                                   |02ef: move-result-wide v16
00d5a8: 3103 100c                              |02f0: cmp-long v3, v16, v12
00d5ac: 3b03 0a00                              |02f2: if-gez v3, 02fc // +000a
00d5b0: 9c22 0c10                              |02f4: sub-long v34, v12, v16
00d5b4: 3103 221e                              |02f6: cmp-long v3, v34, v30
00d5b8: 3d03 0400                              |02f8: if-lez v3, 02fc // +0004
00d5bc: 9b12 121c                              |02fa: add-long v18, v18, v28
00d5c0: 01b3                                   |02fc: move v3, v11
00d5c2: 9b0a 1210                              |02fd: add-long v10, v18, v16
00d5c6: 6e30 2b02 a60b                         |02ff: invoke-virtual {v6, v10, v11}, Lcom/valentinedesigns/chromalink/AudioTransport;.flushAt:(J)V // method@022b
00d5cc: 6e10 9900 0e00                         |0302: invoke-virtual {v14}, Landroid/media/AudioTrack;.flush:()V // method@0099
00d5d2: 6e10 9f00 0e00                         |0305: invoke-virtual {v14}, Landroid/media/AudioTrack;.getUnderrunCount:()I // method@009f
00d5d8: 0a0a                                   |0308: move-result v10
00d5da: 080b 2100                              |0309: move-object/from16 v11, v33
00d5de: 6e20 2102 ab00                         |030b: invoke-virtual {v11, v10}, Lcom/valentinedesigns/chromalink/AudioBufferPolicy;.resetCounter:(I)V // method@0221
00d5e4: 380f 3000                              |030e: if-eqz v15, 033e // +0030
00d5e8: 6e10 3302 0600                         |0310: invoke-virtual {v6}, Lcom/valentinedesigns/chromalink/AudioTransport;.songEpoch:()I // method@0233
00d5ee: 0a0a                                   |0313: move-result v10
00d5f0: 329a 2a00                              |0314: if-eq v10, v9, 033e // +002a
00d5f4: 541a 6600                              |0316: iget-object v10, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.previousBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0066
00d5f8: 380a 1700                              |0318: if-eqz v10, 032f // +0017
00d5fc: 6e10 3302 0600                         |031a: invoke-virtual {v6}, Lcom/valentinedesigns/chromalink/AudioTransport;.songEpoch:()I // method@0233
00d602: 0a0a                                   |031d: move-result v10
00d604: 338a 1100                              |031e: if-ne v10, v8, 032f // +0011
00d608: 541f 6600                              |0320: iget-object v15, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.previousBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0066
00d60c: 5b1f 6300                              |0322: iput-object v15, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.playingBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0063
00d610: 120a                                   |0324: const/4 v10, #int 0 // #0
00d612: 5b1a 6600                              |0325: iput-object v10, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.previousBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0066
00d616: 6e10 3302 0600                         |0327: invoke-virtual {v6}, Lcom/valentinedesigns/chromalink/AudioTransport;.songEpoch:()I // method@0233
00d61c: 0a09                                   |032a: move-result v9
00d61e: 6e10 6905 0700                         |032b: invoke-virtual {v7}, Lcom/valentinedesigns/chromalink/MusicFade;.finishOutgoing:()V // method@0569
00d624: 2810                                   |032e: goto 033e // +0010
00d626: 6e10 3002 0600                         |032f: invoke-virtual {v6}, Lcom/valentinedesigns/chromalink/AudioTransport;.selectSong:()V // method@0230
00d62c: 52fa 2c00                              |0332: iget v10, v15, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.frames:I // field@002c
00d630: 6e20 3202 a600                         |0334: invoke-virtual {v6, v10}, Lcom/valentinedesigns/chromalink/AudioTransport;.setSongLength:(I)V // method@0232
00d636: 6e10 3302 0600                         |0337: invoke-virtual {v6}, Lcom/valentinedesigns/chromalink/AudioTransport;.songEpoch:()I // method@0233
00d63c: 0a09                                   |033a: move-result v9
00d63e: 6e10 7105 0700                         |033b: invoke-virtual {v7}, Lcom/valentinedesigns/chromalink/MusicFade;.startSong:()V // method@0571
00d644: 6e20 3102 2600                         |033e: invoke-virtual {v6, v2}, Lcom/valentinedesigns/chromalink/AudioTransport;.setLoss:(Z)V // method@0231
00d64a: 6e10 8b06 0500                         |0341: invoke-virtual {v5}, Ljava/util/ArrayList;.clear:()V // method@068b
00d650: 012c                                   |0344: move v12, v2
00d652: 0193                                   |0345: move v3, v9
00d654: 1609 0000                              |0346: const-wide/16 v9, #int 0 // #0
00d658: 1610 0000                              |0348: const-wide/16 v16, #int 0 // #0
00d65c: 1612 0000                              |034a: const-wide/16 v18, #int 0 // #0
00d660: 1324 0000                              |034c: const/16 v36, #int 0 // #0
00d664: 2832                                   |034e: goto 0380 // +0032
00d666: 0d00                                   |034f: move-exception v0
00d668: 2804                                   |0350: goto 0354 // +0004
00d66a: 0d00                                   |0351: move-exception v0
00d66c: 080b 2100                              |0352: move-object/from16 v11, v33
00d670: 0223 0300                              |0354: move/from16 v35, v3
00d674: 0762                                   |0356: move-object v2, v6
00d676: 0825 0e00                              |0357: move-object/from16 v37, v14
00d67a: 080a 1400                              |0359: move-object/from16 v10, v20
00d67e: 1610 0000                              |035b: const-wide/16 v16, #int 0 // #0
00d682: 1612 0000                              |035d: const-wide/16 v18, #int 0 // #0
00d686: 2810                                   |035f: goto 036f // +0010
00d688: 0d00                                   |0360: move-exception v0
00d68a: 2803                                   |0361: goto 0364 // +0003
00d68c: 0d00                                   |0362: move-exception v0
00d68e: 01b3                                   |0363: move v3, v11
00d690: 080b 2100                              |0364: move-object/from16 v11, v33
00d694: 0223 0300                              |0366: move/from16 v35, v3
00d698: 0762                                   |0368: move-object v2, v6
00d69a: 0510 0c00                              |0369: move-wide/from16 v16, v12
00d69e: 0825 0e00                              |036b: move-object/from16 v37, v14
00d6a2: 080a 1400                              |036d: move-object/from16 v10, v20
00d6a6: 0703                                   |036f: move-object v3, v0
00d6a8: 075e                                   |0370: move-object v14, v5
00d6aa: 0814 0b00                              |0371: move-object/from16 v20, v11
00d6ae: 2900 5ffd                              |0373: goto/16 00d2 // -02a1
00d6b2: 01b3                                   |0375: move v3, v11
00d6b4: 080b 2100                              |0376: move-object/from16 v11, v33
00d6b8: 0538 0c00                              |0378: move-wide/from16 v56, v12
00d6bc: 013c                                   |037a: move v12, v3
00d6be: 0193                                   |037b: move v3, v9
00d6c0: 0509 1000                              |037c: move-wide/from16 v9, v16
00d6c4: 0510 3800                              |037e: move-wide/from16 v16, v56
00d6c8: 0000                                   |0380: nop // spacer
00d6ca: 380f 0e00                              |0381: if-eqz v15, 038f // +000e
00d6ce: 52fd 2c00                              |0383: iget v13, v15, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.frames:I // field@002c
00d6d2: 6e20 3202 d600                         |0385: invoke-virtual {v6, v13}, Lcom/valentinedesigns/chromalink/AudioTransport;.setSongLength:(I)V // method@0232
00d6d8: 2807                                   |0388: goto 038f // +0007
00d6da: 0d00                                   |0389: move-exception v0
00d6dc: 0139                                   |038a: move v9, v3
00d6de: 0762                                   |038b: move-object v2, v6
00d6e0: 0223 0c00                              |038c: move/from16 v35, v12
00d6e4: 28dd                                   |038e: goto 036b // -0023
00d6e6: 551d 5f00                              |038f: iget-boolean v13, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.musicEnabled:Z // field@005f
00d6ea: 0221 0300                              |0391: move/from16 v33, v3
00d6ee: 5513 5900                              |0393: iget-boolean v3, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.effectsEnabled:Z // field@0059
00d6f2: 0222 0800                              |0395: move/from16 v34, v8
00d6f6: 5518 5d00                              |0397: iget-boolean v8, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.masterMuted:Z // field@005d
00d6fa: 3808 0400                              |0399: if-eqz v8, 039d // +0004
00d6fe: 1208                                   |039b: const/4 v8, #int 0 // #0
00d700: 2803                                   |039c: goto 039f // +0003
00d702: 1508 803f                              |039d: const/high16 v8, #int 1065353216 // #3f80
00d706: 380d 1300                              |039f: if-eqz v13, 03b2 // +0013
00d70a: 0223 0c00                              |03a1: move/from16 v35, v12
00d70e: 521c 6100                              |03a3: iget v12, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.musicVolume:F // field@0061
00d712: 2810                                   |03a5: goto 03b5 // +0010
00d714: 0d00                                   |03a6: move-exception v0
00d716: 0703                                   |03a7: move-object v3, v0
00d718: 0762                                   |03a8: move-object v2, v6
00d71a: 0825 0e00                              |03a9: move-object/from16 v37, v14
00d71e: 080a 1400                              |03ab: move-object/from16 v10, v20
00d722: 0209 2100                              |03ad: move/from16 v9, v33
00d726: 0208 2200                              |03af: move/from16 v8, v34
00d72a: 28bf                                   |03b1: goto 0370 // -0041
00d72c: 0223 0c00                              |03b2: move/from16 v35, v12
00d730: 120c                                   |03b4: const/4 v12, #int 0 // #0
00d732: 3803 1200                              |03b5: if-eqz v3, 03c7 // +0012
00d736: 0825 0e00                              |03b7: move-object/from16 v37, v14
00d73a: 521e 5a00                              |03b9: iget v14, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.effectsVolume:F // field@005a
00d73e: 280f                                   |03bb: goto 03ca // +000f
00d740: 0d00                                   |03bc: move-exception v0
00d742: 0703                                   |03bd: move-object v3, v0
00d744: 075e                                   |03be: move-object v14, v5
00d746: 0762                                   |03bf: move-object v2, v6
00d748: 080a 1400                              |03c0: move-object/from16 v10, v20
00d74c: 0209 2100                              |03c2: move/from16 v9, v33
00d750: 0208 2200                              |03c4: move/from16 v8, v34
00d754: 28ab                                   |03c6: goto 0371 // -0055
00d756: 0825 0e00                              |03c7: move-object/from16 v37, v14
00d75a: 120e                                   |03c9: const/4 v14, #int 0 // #0
00d75c: 0526 0900                              |03ca: move-wide/from16 v38, v9
00d760: 5419 5800                              |03cc: iget-object v9, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.effects:Ljava/util/concurrent/ConcurrentLinkedQueue; // field@0058
00d764: 6e10 a906 0900                         |03ce: invoke-virtual {v9}, Ljava/util/concurrent/ConcurrentLinkedQueue;.poll:()Ljava/lang/Object; // method@06a9
00d76a: 0c09                                   |03d1: move-result-object v9
00d76c: 1f09 8d00                              |03d2: check-cast v9, Lcom/valentinedesigns/chromalink/ArcadeAudio$EffectRequest; // type@008d
00d770: 3809 2700                              |03d4: if-eqz v9, 03fb // +0027
00d774: 6e10 8f06 0500                         |03d6: invoke-virtual {v5}, Ljava/util/ArrayList;.size:()I // method@068f
00d77a: 0a0a                                   |03d9: move-result v10
00d77c: 0828 0b00                              |03da: move-object/from16 v40, v11
00d780: 126b                                   |03dc: const/4 v11, #int 6 // #6
00d782: 35ba 0e00                              |03dd: if-ge v10, v11, 03eb // +000e
00d786: 3803 0c00                              |03df: if-eqz v3, 03eb // +000c
00d78a: 7110 eb01 0900                         |03e1: invoke-static {v9}, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.forEffect:(Lcom/valentinedesigns/chromalink/ArcadeAudio$EffectRequest;)Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice; // method@01eb
00d790: 0c09                                   |03e4: move-result-object v9
00d792: 6e20 8a06 9500                         |03e5: invoke-virtual {v5, v9}, Ljava/util/ArrayList;.add:(Ljava/lang/Object;)Z // method@068a
00d798: 2803                                   |03e8: goto 03eb // +0003
00d79a: 0d00                                   |03e9: move-exception v0
00d79c: 2809                                   |03ea: goto 03f3 // +0009
00d79e: 0509 2600                              |03eb: move-wide/from16 v9, v38
00d7a2: 080b 2800                              |03ed: move-object/from16 v11, v40
00d7a6: 28db                                   |03ef: goto 03ca // -0025
00d7a8: 0d00                                   |03f0: move-exception v0
00d7aa: 0828 0b00                              |03f1: move-object/from16 v40, v11
00d7ae: 0703                                   |03f3: move-object v3, v0
00d7b0: 074b                                   |03f4: move-object v11, v4
00d7b2: 075e                                   |03f5: move-object v14, v5
00d7b4: 0762                                   |03f6: move-object v2, v6
00d7b6: 080a 1400                              |03f7: move-object/from16 v10, v20
00d7ba: 2900 ec03                              |03f9: goto/16 07e5 // +03ec
00d7be: 0828 0b00                              |03fb: move-object/from16 v40, v11
00d7c2: 380f 0f00                              |03fd: if-eqz v15, 040c // +000f
00d7c6: 3902 0d00                              |03ff: if-nez v2, 040c // +000d
00d7ca: 390d 0900                              |0401: if-nez v13, 040a // +0009
00d7ce: 1409 17b7 5138                         |0403: const v9, #float 5e-05 // #3851b717
00d7d4: 2d0a 1509                              |0406: cmpl-float v10, v21, v9
00d7d8: 3d0a 0400                              |0408: if-lez v10, 040c // +0004
00d7dc: 1219                                   |040a: const/4 v9, #int 1 // #1
00d7de: 2802                                   |040b: goto 040d // +0002
00d7e0: 1209                                   |040c: const/4 v9, #int 0 // #0
00d7e2: 6e10 3402 0600                         |040d: invoke-virtual {v6}, Lcom/valentinedesigns/chromalink/AudioTransport;.songFrame:()J // method@0234
00d7e8: 0b0a                                   |0410: move-result-wide v10
00d7ea: 6e10 2d02 0600                         |0411: invoke-virtual {v6}, Lcom/valentinedesigns/chromalink/AudioTransport;.outcomeFrame:()J // method@022d
00d7f0: 0b29                                   |0414: move-result-wide v41
00d7f2: 082b 0600                              |0415: move-object/from16 v43, v6
00d7f6: 5416 5c00                              |0417: iget-object v6, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.lossCue:Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm; // field@005c
00d7fa: 022c 0300                              |0419: move/from16 v44, v3
00d7fe: 5413 6800                              |041b: iget-object v3, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.retryLoop:Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm; // field@0068
00d802: 022d 0d00                              |041d: move/from16 v45, v13
00d806: 521d 6500                              |041f: iget v13, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.pressure:F // field@0065
00d80a: 142e cdcc cc3e                         |0421: const v46, #float 0.4 // #3ecccccd
00d810: a72e 0d2e                              |0424: sub-float v46, v13, v46
00d814: 142f 3333 b33e                         |0426: const v47, #float 0.35 // #3eb33333
00d81a: a92e 2e2f                              |0429: div-float v46, v46, v47
00d81e: 7701 1402 2e00                         |042b: invoke-static/range {v46}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.smooth:(F)F // method@0214
00d824: 0a2e                                   |042e: move-result v46
00d826: 142f a470 3d3f                         |042f: const v47, #float 0.74 // #3f3d70a4
00d82c: a70d 0d2f                              |0432: sub-float v13, v13, v47
00d830: 142f b81e 853e                         |0434: const v47, #float 0.26 // #3e851eb8
00d836: a90d 0d2f                              |0437: div-float v13, v13, v47
00d83a: 7110 1402 0d00                         |0439: invoke-static {v13}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.smooth:(F)F // method@0214
00d840: 0a0d                                   |043c: move-result v13
00d842: 082f 0400                              |043d: move-object/from16 v47, v4
00d846: 6e10 8f06 0500                         |043f: invoke-virtual {v5}, Ljava/util/ArrayList;.size:()I // method@068f
00d84c: 0a04                                   |0442: move-result v4
00d84e: 0830 0500                              |0443: move-object/from16 v48, v5
00d852: 1205                                   |0445: const/4 v5, #int 0 // #0
00d854: 0231 0400                              |0446: move/from16 v49, v4
00d858: 1304 0002                              |0448: const/16 v4, #int 512 // #200
00d85c: 3545 8201                              |044a: if-ge v5, v4, 05cc // +0182
00d860: a704 2e16                              |044c: sub-float v4, v46, v22
00d864: 1432 17b7 d138                         |044e: const v50, #float 0.0001 // #38d1b717
00d86a: a804 0432                              |0451: mul-float v4, v4, v50
00d86e: a616 1604                              |0453: add-float v22, v22, v4
00d872: a704 0d17                              |0455: sub-float v4, v13, v23
00d876: a804 0432                              |0457: mul-float v4, v4, v50
00d87a: a617 1704                              |0459: add-float v23, v23, v4
00d87e: a704 0818                              |045b: sub-float v4, v8, v24
00d882: 1432 6f12 033b                         |045d: const v50, #float 0.002 // #3b03126f
00d888: a804 0432                              |0460: mul-float v4, v4, v50
00d88c: a618 1804                              |0462: add-float v24, v24, v4
00d890: a704 0c15                              |0464: sub-float v4, v12, v21
00d894: 1432 5249 1d3a                         |0466: const v50, #float 0.0006 // #3a1d4952
00d89a: a804 0432                              |0469: mul-float v4, v4, v50
00d89e: a615 1504                              |046b: add-float v21, v21, v4
00d8a2: a704 0e19                              |046d: sub-float v4, v14, v25
00d8a6: a804 0432                              |046f: mul-float v4, v4, v50
00d8aa: a619 1904                              |0471: add-float v25, v25, v4
00d8ae: 0000                                   |0473: nop // spacer
00d8b0: 3802 7e00                              |0474: if-eqz v2, 04f2 // +007e
00d8b4: 01c4                                   |0476: move v4, v12
00d8b6: 0232 0d00                              |0477: move/from16 v50, v13
00d8ba: 815c                                   |0479: int-to-long v12, v5
00d8bc: 9b0c 290c                              |047a: add-long v12, v41, v12
00d8c0: 1433 cdcc cc3f                         |047c: const v51, #float 1.6 // #3fcccccd
00d8c6: 3806 3700                              |047f: if-eqz v6, 04b6 // +0037
00d8ca: 0234 0400                              |0481: move/from16 v52, v4
00d8ce: 5264 2800                              |0483: iget v4, v6, Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm;.frames:I // field@0028
00d8d2: 0235 0500                              |0485: move/from16 v53, v5
00d8d6: 8144                                   |0487: int-to-long v4, v4
00d8d8: 3104 0c04                              |0488: cmp-long v4, v12, v4
00d8dc: 3b04 3000                              |048a: if-gez v4, 04ba // +0030
00d8e0: 84c4                                   |048c: long-to-int v4, v12
00d8e2: 1225                                   |048d: const/4 v5, #int 2 // #2
00d8e4: b254                                   |048e: mul-int/2addr v4, v5
00d8e6: 5465 2900                              |048f: iget-object v5, v6, Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm;.samples:[S // field@0029
00d8ea: 4a05 0504                              |0491: aget-short v5, v5, v4
00d8ee: 8255                                   |0493: int-to-float v5, v5
00d8f0: a805 0519                              |0494: mul-float v5, v5, v25
00d8f4: a805 0533                              |0496: mul-float v5, v5, v51
00d8f8: 546c 2900                              |0498: iget-object v12, v6, Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm;.samples:[S // field@0029
00d8fc: d804 0401                              |049a: add-int/lit8 v4, v4, #int 1 // #01
00d900: 4a04 0c04                              |049c: aget-short v4, v12, v4
00d904: 8244                                   |049e: int-to-float v4, v4
00d906: a804 0419                              |049f: mul-float v4, v4, v25
00d90a: a804 0433                              |04a1: mul-float v4, v4, v51
00d90e: 2843                                   |04a3: goto 04e6 // +0043
00d910: 0d00                                   |04a4: move-exception v0
00d912: 0703                                   |04a5: move-object v3, v0
00d914: 080a 1400                              |04a6: move-object/from16 v10, v20
00d918: 0209 2100                              |04a8: move/from16 v9, v33
00d91c: 0208 2200                              |04aa: move/from16 v8, v34
00d920: 0814 2800                              |04ac: move-object/from16 v20, v40
00d924: 0802 2b00                              |04ae: move-object/from16 v2, v43
00d928: 080b 2f00                              |04b0: move-object/from16 v11, v47
00d92c: 080e 3000                              |04b2: move-object/from16 v14, v48
00d930: 2900 c703                              |04b4: goto/16 087b // +03c7
00d934: 0234 0400                              |04b6: move/from16 v52, v4
00d938: 0235 0500                              |04b8: move/from16 v53, v5
00d93c: 3803 2a00                              |04ba: if-eqz v3, 04e4 // +002a
00d940: 3906 0500                              |04bc: if-nez v6, 04c1 // +0005
00d944: 1604 0000                              |04be: const-wide/16 v4, #int 0 // #0
00d948: 2804                                   |04c0: goto 04c4 // +0004
00d94a: 5264 2800                              |04c1: iget v4, v6, Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm;.frames:I // field@0028
00d94e: 8144                                   |04c3: int-to-long v4, v4
00d950: bc4c                                   |04c4: sub-long/2addr v12, v4
00d952: 5234 2800                              |04c5: iget v4, v3, Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm;.frames:I // field@0028
00d956: 8144                                   |04c7: int-to-long v4, v4
00d958: 7140 4106 dc54                         |04c8: invoke-static {v12, v13, v4, v5}, Ljava/lang/Math;.floorMod:(JJ)J // method@0641
00d95e: 0b04                                   |04cb: move-result-wide v4
00d960: 8444                                   |04cc: long-to-int v4, v4
00d962: 1225                                   |04cd: const/4 v5, #int 2 // #2
00d964: b254                                   |04ce: mul-int/2addr v4, v5
00d966: 5435 2900                              |04cf: iget-object v5, v3, Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm;.samples:[S // field@0029
00d96a: 4a05 0504                              |04d1: aget-short v5, v5, v4
00d96e: 8255                                   |04d3: int-to-float v5, v5
00d970: a805 0515                              |04d4: mul-float v5, v5, v21
00d974: a805 0533                              |04d6: mul-float v5, v5, v51
00d978: 543c 2900                              |04d8: iget-object v12, v3, Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm;.samples:[S // field@0029
00d97c: d804 0401                              |04da: add-int/lit8 v4, v4, #int 1 // #01
00d980: 4a04 0c04                              |04dc: aget-short v4, v12, v4
00d984: 8244                                   |04de: int-to-float v4, v4
00d986: a804 0415                              |04df: mul-float v4, v4, v21
00d98a: a804 0433                              |04e1: mul-float v4, v4, v51
00d98e: 2803                                   |04e3: goto 04e6 // +0003
00d990: 1204                                   |04e4: const/4 v4, #int 0 // #0
00d992: 1205                                   |04e5: const/4 v5, #int 0 // #0
00d994: 0833 0300                              |04e6: move-object/from16 v51, v3
00d998: 0236 0800                              |04e8: move/from16 v54, v8
00d99c: 0237 0e00                              |04ea: move/from16 v55, v14
00d9a0: 020c 3500                              |04ec: move/from16 v12, v53
00d9a4: 0835 0600                              |04ee: move-object/from16 v53, v6
00d9a8: 2900 9500                              |04f0: goto/16 0585 // +0095
00d9ac: 0235 0500                              |04f2: move/from16 v53, v5
00d9b0: 0234 0c00                              |04f4: move/from16 v52, v12
00d9b4: 0232 0d00                              |04f6: move/from16 v50, v13
00d9b8: 380f 8100                              |04f8: if-eqz v15, 0579 // +0081
00d9bc: 3809 0500                              |04fa: if-eqz v9, 04ff // +0005
00d9c0: 0204 3500                              |04fc: move/from16 v4, v53
00d9c4: 2802                                   |04fe: goto 0500 // +0002
00d9c6: 1204                                   |04ff: const/4 v4, #int 0 // #0
00d9c8: 8144                                   |0500: int-to-long v4, v4
00d9ca: bba4                                   |0501: add-long/2addr v4, v10
00d9cc: 52fc 2c00                              |0502: iget v12, v15, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.frames:I // field@002c
00d9d0: 81cc                                   |0504: int-to-long v12, v12
00d9d2: bfc4                                   |0505: rem-long/2addr v4, v12
00d9d4: 8444                                   |0506: long-to-int v4, v4
00d9d6: 1225                                   |0507: const/4 v5, #int 2 // #2
00d9d8: b254                                   |0508: mul-int/2addr v4, v5
00d9da: 020c 3500                              |0509: move/from16 v12, v53
00d9de: 6e20 6a05 c700                         |050b: invoke-virtual {v7, v12}, Lcom/valentinedesigns/chromalink/MusicFade;.gain:(I)F // method@056a
00d9e4: 0a0d                                   |050e: move-result v13
00d9e6: 54f5 2b00                              |050f: iget-object v5, v15, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.danger:Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm; // field@002b
00d9ea: 3905 0400                              |0511: if-nez v5, 0515 // +0004
00d9ee: 1205                                   |0513: const/4 v5, #int 0 // #0
00d9f0: 280a                                   |0514: goto 051e // +000a
00d9f2: 54f5 2b00                              |0515: iget-object v5, v15, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.danger:Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm; // field@002b
00d9f6: 5455 2900                              |0517: iget-object v5, v5, Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm;.samples:[S // field@0029
00d9fa: 4a05 0504                              |0519: aget-short v5, v5, v4
00d9fe: 8255                                   |051b: int-to-float v5, v5
00da00: a805 0516                              |051c: mul-float v5, v5, v22
00da04: 0833 0300                              |051e: move-object/from16 v51, v3
00da08: 54f3 2b00                              |0520: iget-object v3, v15, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.danger:Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm; // field@002b
00da0c: 3903 0400                              |0522: if-nez v3, 0526 // +0004
00da10: 1203                                   |0524: const/4 v3, #int 0 // #0
00da12: 280c                                   |0525: goto 0531 // +000c
00da14: 54f3 2b00                              |0526: iget-object v3, v15, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.danger:Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm; // field@002b
00da18: 5433 2900                              |0528: iget-object v3, v3, Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm;.samples:[S // field@0029
00da1c: d835 0401                              |052a: add-int/lit8 v53, v4, #int 1 // #01
00da20: 4a03 0335                              |052c: aget-short v3, v3, v53
00da24: 8233                                   |052e: int-to-float v3, v3
00da26: a803 0316                              |052f: mul-float v3, v3, v22
00da2a: 0835 0600                              |0531: move-object/from16 v53, v6
00da2e: 54f6 3000                              |0533: iget-object v6, v15, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.panic:Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm; // field@0030
00da32: 3906 0400                              |0535: if-nez v6, 0539 // +0004
00da36: 1206                                   |0537: const/4 v6, #int 0 // #0
00da38: 280a                                   |0538: goto 0542 // +000a
00da3a: 54f6 3000                              |0539: iget-object v6, v15, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.panic:Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm; // field@0030
00da3e: 5466 2900                              |053b: iget-object v6, v6, Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm;.samples:[S // field@0029
00da42: 4a06 0604                              |053d: aget-short v6, v6, v4
00da46: 8266                                   |053f: int-to-float v6, v6
00da48: a806 0617                              |0540: mul-float v6, v6, v23
00da4c: 0236 0800                              |0542: move/from16 v54, v8
00da50: 54f8 3000                              |0544: iget-object v8, v15, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.panic:Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm; // field@0030
00da54: 3908 0400                              |0546: if-nez v8, 054a // +0004
00da58: 1208                                   |0548: const/4 v8, #int 0 // #0
00da5a: 280c                                   |0549: goto 0555 // +000c
00da5c: 54f8 3000                              |054a: iget-object v8, v15, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.panic:Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm; // field@0030
00da60: 5488 2900                              |054c: iget-object v8, v8, Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm;.samples:[S // field@0029
00da64: d837 0401                              |054e: add-int/lit8 v55, v4, #int 1 // #01
00da68: 4a08 0837                              |0550: aget-short v8, v8, v55
00da6c: 8288                                   |0552: int-to-float v8, v8
00da6e: a808 0817                              |0553: mul-float v8, v8, v23
00da72: 0237 0e00                              |0555: move/from16 v55, v14
00da76: 54fe 2a00                              |0557: iget-object v14, v15, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.base:Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm; // field@002a
00da7a: 54ee 2900                              |0559: iget-object v14, v14, Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm;.samples:[S // field@0029
00da7e: 4a0e 0e04                              |055b: aget-short v14, v14, v4
00da82: 82ee                                   |055d: int-to-float v14, v14
00da84: c65e                                   |055e: add-float/2addr v14, v5
00da86: c66e                                   |055f: add-float/2addr v14, v6
00da88: 52f5 2d00                              |0560: iget v5, v15, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.gain:F // field@002d
00da8c: c85e                                   |0562: mul-float/2addr v14, v5
00da8e: a80e 0e15                              |0563: mul-float v14, v14, v21
00da92: a805 0e0d                              |0565: mul-float v5, v14, v13
00da96: 54f6 2a00                              |0567: iget-object v6, v15, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.base:Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm; // field@002a
00da9a: 5466 2900                              |0569: iget-object v6, v6, Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm;.samples:[S // field@0029
00da9e: d804 0401                              |056b: add-int/lit8 v4, v4, #int 1 // #01
00daa2: 4a04 0604                              |056d: aget-short v4, v6, v4
00daa6: 8244                                   |056f: int-to-float v4, v4
00daa8: c634                                   |0570: add-float/2addr v4, v3
00daaa: c684                                   |0571: add-float/2addr v4, v8
00daac: 52f3 2d00                              |0572: iget v3, v15, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.gain:F // field@002d
00dab0: c834                                   |0574: mul-float/2addr v4, v3
00dab2: a804 0415                              |0575: mul-float v4, v4, v21
00dab6: c8d4                                   |0577: mul-float/2addr v4, v13
00dab8: 280d                                   |0578: goto 0585 // +000d
00daba: 0833 0300                              |0579: move-object/from16 v51, v3
00dabe: 0236 0800                              |057b: move/from16 v54, v8
00dac2: 0237 0e00                              |057d: move/from16 v55, v14
00dac6: 020c 3500                              |057f: move/from16 v12, v53
00daca: 0835 0600                              |0581: move-object/from16 v53, v6
00dace: 1204                                   |0583: const/4 v4, #int 0 // #0
00dad0: 1205                                   |0584: const/4 v5, #int 0 // #0
00dad2: 1203                                   |0585: const/4 v3, #int 0 // #0
00dad4: 1206                                   |0586: const/4 v6, #int 0 // #0
00dad6: 0208 3100                              |0587: move/from16 v8, v49
00dada: 3583 1600                              |0589: if-ge v3, v8, 059f // +0016
00dade: 080e 3000                              |058b: move-object/from16 v14, v48
00dae2: 6e20 8c06 3e00                         |058d: invoke-virtual {v14, v3}, Ljava/util/ArrayList;.get:(I)Ljava/lang/Object; // method@068c
00dae8: 0c0d                                   |0590: move-result-object v13
00daea: 1f0d 9100                              |0591: check-cast v13, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice; // type@0091
00daee: 6e10 ec01 0d00                         |0593: invoke-virtual {v13}, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.next:()F // method@01ec
00daf4: 0a0d                                   |0596: move-result v13
00daf6: c6d6                                   |0597: add-float/2addr v6, v13
00daf8: d803 0301                              |0598: add-int/lit8 v3, v3, #int 1 // #01
00dafc: 0231 0800                              |059a: move/from16 v49, v8
00db00: 0830 0e00                              |059c: move-object/from16 v48, v14
00db04: 28e9                                   |059e: goto 0587 // -0017
00db06: 080e 3000                              |059f: move-object/from16 v14, v48
00db0a: da03 0c02                              |05a1: mul-int/lit8 v3, v12, #int 2 // #02
00db0e: a806 0619                              |05a3: mul-float v6, v6, v25
00db12: c665                                   |05a5: add-float/2addr v5, v6
00db14: a805 0518                              |05a6: mul-float v5, v5, v24
00db18: 7110 0002 0500                         |05a8: invoke-static {v5}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.pcm:(F)S // method@0200
00db1e: 0a05                                   |05ab: move-result v5
00db20: 5105 2f03                              |05ac: aput-short v5, v47, v3
00db24: d803 0301                              |05ae: add-int/lit8 v3, v3, #int 1 // #01
00db28: c664                                   |05b0: add-float/2addr v4, v6
00db2a: a804 0418                              |05b1: mul-float v4, v4, v24
00db2e: 7110 0002 0400                         |05b3: invoke-static {v4}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.pcm:(F)S // method@0200
00db34: 0a04                                   |05b6: move-result v4
00db36: 5104 2f03                              |05b7: aput-short v4, v47, v3
00db3a: d805 0c01                              |05b9: add-int/lit8 v5, v12, #int 1 // #01
00db3e: 0184                                   |05bb: move v4, v8
00db40: 0830 0e00                              |05bc: move-object/from16 v48, v14
00db44: 020d 3200                              |05be: move/from16 v13, v50
00db48: 0803 3300                              |05c0: move-object/from16 v3, v51
00db4c: 020c 3400                              |05c2: move/from16 v12, v52
00db50: 0806 3500                              |05c4: move-object/from16 v6, v53
00db54: 0208 3600                              |05c6: move/from16 v8, v54
00db58: 020e 3700                              |05c8: move/from16 v14, v55
00db5c: 2900 7cfe                              |05ca: goto/16 0446 // -0184
00db60: 080e 3000                              |05cc: move-object/from16 v14, v48
00db64: 3902 5700                              |05ce: if-nez v2, 0625 // +0057
00db68: 380f 5500                              |05d0: if-eqz v15, 0625 // +0055
00db6c: 382d 2100                              |05d2: if-eqz v45, 05f3 // +0021
00db70: 5512 5d00                              |05d4: iget-boolean v2, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.masterMuted:Z // field@005d
00db74: 3902 1d00                              |05d6: if-nez v2, 05f3 // +001d
00db78: 5212 6100                              |05d8: iget v2, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.musicVolume:F // field@0061
00db7c: 1403 17b7 5138                         |05da: const v3, #float 5e-05 // #3851b717
00db82: 2d02 0203                              |05dd: cmpl-float v2, v2, v3
00db86: 3d02 1400                              |05df: if-lez v2, 05f3 // +0014
00db8a: 1212                                   |05e1: const/4 v2, #int 1 // #1
00db8c: 2812                                   |05e2: goto 05f4 // +0012
00db8e: 0d00                                   |05e3: move-exception v0
00db90: 0703                                   |05e4: move-object v3, v0
00db92: 080a 1400                              |05e5: move-object/from16 v10, v20
00db96: 0209 2100                              |05e7: move/from16 v9, v33
00db9a: 0208 2200                              |05e9: move/from16 v8, v34
00db9e: 0814 2800                              |05eb: move-object/from16 v20, v40
00dba2: 0802 2b00                              |05ed: move-object/from16 v2, v43
00dba6: 080b 2f00                              |05ef: move-object/from16 v11, v47
00dbaa: 2900 8a02                              |05f1: goto/16 087b // +028a
00dbae: 1202                                   |05f3: const/4 v2, #int 0 // #0
00dbb0: 3902 0600                              |05f4: if-nez v2, 05fa // +0006
00dbb4: 5513 5200                              |05f6: iget-boolean v3, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.automaticRequest:Z // field@0052
00dbb8: 3903 0700                              |05f8: if-nez v3, 05ff // +0007
00dbbc: 1303 0002                              |05fa: const/16 v3, #int 512 // #200
00dbc0: 6e30 6105 3702                         |05fc: invoke-virtual {v7, v3, v2}, Lcom/valentinedesigns/chromalink/MusicFade;.advance:(IZ)V // method@0561
00dbc6: 3802 2600                              |05ff: if-eqz v2, 0625 // +0026
00dbca: 52f2 2c00                              |0601: iget v2, v15, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.frames:I // field@002c
00dbce: 6e20 6605 2700                         |0603: invoke-virtual {v7, v2}, Lcom/valentinedesigns/chromalink/MusicFade;.due:(I)Z // method@0566
00dbd4: 0a02                                   |0606: move-result v2
00dbd6: 3802 1e00                              |0607: if-eqz v2, 0625 // +001e
00dbda: 54f2 2e00                              |0609: iget-object v2, v15, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.harmony:Lcom/valentinedesigns/chromalink/HarmonyGrid; // field@002e
00dbde: 52f3 2c00                              |060b: iget v3, v15, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.frames:I // field@002c
00dbe2: 1304 0002                              |060d: const/16 v4, #int 512 // #200
00dbe6: 6e53 a303 a24b                         |060f: invoke-virtual {v2, v10, v11, v4, v3}, Lcom/valentinedesigns/chromalink/HarmonyGrid;.nearTransition:(JII)Z // method@03a3
00dbec: 0a02                                   |0612: move-result v2
00dbee: 3802 1200                              |0613: if-eqz v2, 0625 // +0012
00dbf2: 52f2 2f00                              |0615: iget v2, v15, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.index:I // field@002f
00dbf6: 5413 5300                              |0617: iget-object v3, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.automaticTracks:[Z // field@0053
00dbfa: 7120 6f05 3200                         |0619: invoke-static {v2, v3}, Lcom/valentinedesigns/chromalink/MusicFade;.nextTrack:(I[Z)I // method@056f
00dc00: 0a02                                   |061c: move-result v2
00dc02: 52f3 2f00                              |061d: iget v3, v15, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.index:I // field@002f
00dc06: 3232 0600                              |061f: if-eq v2, v3, 0625 // +0006
00dc0a: 1213                                   |0621: const/4 v3, #int 1 // #1
00dc0c: 7030 0602 2103                         |0622: invoke-direct {v1, v2, v3}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.requestTrack:(IZ)V // method@0206
00dc12: 6e10 8f06 0e00                         |0625: invoke-virtual {v14}, Ljava/util/ArrayList;.size:()I // method@068f
00dc18: 0a02                                   |0628: move-result v2
00dc1a: 1213                                   |0629: const/4 v3, #int 1 // #1
00dc1c: b132                                   |062a: sub-int/2addr v2, v3
00dc1e: 3a02 1600                              |062b: if-ltz v2, 0641 // +0016
00dc22: 6e20 8c06 2e00                         |062d: invoke-virtual {v14, v2}, Ljava/util/ArrayList;.get:(I)Ljava/lang/Object; // method@068c
00dc28: 0c03                                   |0630: move-result-object v3
00dc2a: 1f03 9100                              |0631: check-cast v3, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice; // type@0091
00dc2e: 6e10 ea01 0300                         |0633: invoke-virtual {v3}, Lcom/valentinedesigns/chromalink/ArcadeAudio$Voice;.finished:()Z // method@01ea
00dc34: 0a03                                   |0636: move-result v3
00dc36: 3903 0400                              |0637: if-nez v3, 063b // +0004
00dc3a: 392c 0500                              |0639: if-nez v44, 063e // +0005
00dc3e: 6e20 8e06 2e00                         |063b: invoke-virtual {v14, v2}, Ljava/util/ArrayList;.remove:(I)Ljava/lang/Object; // method@068e
00dc44: d802 02ff                              |063e: add-int/lit8 v2, v2, #int -1 // #ff
00dc48: 28eb                                   |0640: goto 062b // -0015
00dc4a: 5512 6f00                              |0641: iget-boolean v2, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.suspended:Z // field@006f
00dc4e: 3902 2c00                              |0643: if-nez v2, 066f // +002c
00dc52: 3924 2a00                              |0645: if-nez v36, 066f // +002a
00dc56: 7401 2f02 2b00                         |0647: invoke-virtual/range {v43}, Lcom/valentinedesigns/chromalink/AudioTransport;.queuedFrames:()J // method@022f
00dc5c: 0b02                                   |064a: move-result-wide v2
00dc5e: 0505 2600                              |064b: move-wide/from16 v5, v38
00dc62: 0804 2800                              |064d: move-object/from16 v4, v40
00dc66: 6e56 1e02 2453                         |064f: invoke-virtual {v4, v2, v3, v5, v6}, Lcom/valentinedesigns/chromalink/AudioBufferPolicy;.canStart:(JJ)Z // method@021e
00dc6c: 0a02                                   |0652: move-result v2
00dc6e: 3802 2000                              |0653: if-eqz v2, 0673 // +0020
00dc72: 7401 a100 2500                         |0655: invoke-virtual/range {v37}, Landroid/media/AudioTrack;.play:()V // method@00a1
00dc78: 1324 0100                              |0658: const/16 v36, #int 1 // #1
00dc7c: 2819                                   |065a: goto 0673 // +0019
00dc7e: 0d00                                   |065b: move-exception v0
00dc80: 2804                                   |065c: goto 0660 // +0004
00dc82: 0d00                                   |065d: move-exception v0
00dc84: 0804 2800                              |065e: move-object/from16 v4, v40
00dc88: 0703                                   |0660: move-object v3, v0
00dc8a: 080a 1400                              |0661: move-object/from16 v10, v20
00dc8e: 0209 2100                              |0663: move/from16 v9, v33
00dc92: 0208 2200                              |0665: move/from16 v8, v34
00dc96: 0802 2b00                              |0667: move-object/from16 v2, v43
00dc9a: 080b 2f00                              |0669: move-object/from16 v11, v47
00dc9e: 0814 0400                              |066b: move-object/from16 v20, v4
00dca2: 2900 0e02                              |066d: goto/16 087b // +020e
00dca6: 0505 2600                              |066f: move-wide/from16 v5, v38
00dcaa: 0804 2800                              |0671: move-object/from16 v4, v40
00dcae: 0802 2b00                              |0673: move-object/from16 v2, v43
00dcb2: 1303 0002                              |0675: const/16 v3, #int 512 // #200
00dcb6: 6e30 2e02 3209                         |0677: invoke-virtual {v2, v3, v9}, Lcom/valentinedesigns/chromalink/AudioTransport;.queue:(IZ)V // method@022e
00dcbc: 7100 6d06 0000                         |067a: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@066d
00dcc2: 0b08                                   |067d: move-result-wide v8
00dcc4: 080a 1400                              |067e: move-object/from16 v10, v20
00dcc8: 6e30 2302 8a09                         |0680: invoke-virtual {v10, v8, v9}, Lcom/valentinedesigns/chromalink/AudioRecovery;.progress:(J)V // method@0223
00dcce: 1203                                   |0683: const/4 v3, #int 0 // #0
00dcd0: 1308 0004                              |0684: const/16 v8, #int 1024 // #400
00dcd4: 3583 6100                              |0686: if-ge v3, v8, 06e7 // +0061
00dcd8: 5519 6700                              |0688: iget-boolean v9, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.released:Z // field@0067
00dcdc: 3909 5d00                              |068a: if-nez v9, 06e7 // +005d
00dce0: d139 0004                              |068c: rsub-int v9, v3, #int 1024 // #0400
00dce4: 080c 2500                              |068e: move-object/from16 v12, v37
00dce8: 080b 2f00                              |0690: move-object/from16 v11, v47
00dcec: 121d                                   |0692: const/4 v13, #int 1 // #1
00dcee: 6e5d a400 bc93                         |0693: invoke-virtual {v12, v11, v3, v9, v13}, Landroid/media/AudioTrack;.write:([SIII)I // method@00a4
00dcf4: 0a09                                   |0696: move-result v9
00dcf6: 3a09 2900                              |0697: if-ltz v9, 06c0 // +0029
00dcfa: 3909 1a00                              |0699: if-nez v9, 06b3 // +001a
00dcfe: 7100 6d06 0000                         |069b: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@066d
00dd04: 0b08                                   |069e: move-result-wide v8
00dd06: 6e30 2402 8a09                         |069f: invoke-virtual {v10, v8, v9}, Lcom/valentinedesigns/chromalink/AudioRecovery;.stalled:(J)Z // method@0224
00dd0c: 0a08                                   |06a2: move-result v8
00dd0e: 3908 0800                              |06a3: if-nez v8, 06ab // +0008
00dd12: 1608 0800                              |06a5: const-wide/16 v8, #int 8 // #8
00dd16: 7030 1902 8109                         |06a7: invoke-direct {v1, v8, v9}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.waitForPlayback:(J)V // method@0219
00dd1c: 2811                                   |06aa: goto 06bb // +0011
00dd1e: 2203 3e01                              |06ab: new-instance v3, Ljava/lang/IllegalStateException; // type@013e
00dd22: 1a05 f100                              |06ad: const-string v5, "Audio output stalled" // string@00f1
00dd26: 7020 2f06 5300                         |06af: invoke-direct {v3, v5}, Ljava/lang/IllegalStateException;.<init>:(Ljava/lang/String;)V // method@062f
00dd2c: 2703                                   |06b2: throw v3
00dd2e: b093                                   |06b3: add-int/2addr v3, v9
00dd30: 7100 6d06 0000                         |06b4: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@066d
00dd36: 0b08                                   |06b7: move-result-wide v8
00dd38: 6e30 2302 8a09                         |06b8: invoke-virtual {v10, v8, v9}, Lcom/valentinedesigns/chromalink/AudioRecovery;.progress:(J)V // method@0223
00dd3e: 082f 0b00                              |06bb: move-object/from16 v47, v11
00dd42: 0825 0c00                              |06bd: move-object/from16 v37, v12
00dd46: 28c5                                   |06bf: goto 0684 // -003b
00dd48: 2203 3e01                              |06c0: new-instance v3, Ljava/lang/IllegalStateException; // type@013e
00dd4c: 2205 4901                              |06c2: new-instance v5, Ljava/lang/StringBuilder; // type@0149
00dd50: 7010 6806 0500                         |06c4: invoke-direct {v5}, Ljava/lang/StringBuilder;.<init>:()V // method@0668
00dd56: 1a06 f200                              |06c7: const-string v6, "Audio output stopped: " // string@00f2
00dd5a: 6e20 6b06 6500                         |06c9: invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@066b
00dd60: 0c05                                   |06cc: move-result-object v5
00dd62: 6e20 6906 9500                         |06cd: invoke-virtual {v5, v9}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@0669
00dd68: 0c05                                   |06d0: move-result-object v5
00dd6a: 6e10 6c06 0500                         |06d1: invoke-virtual {v5}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@066c
00dd70: 0c05                                   |06d4: move-result-object v5
00dd72: 7020 2f06 5300                         |06d5: invoke-direct {v3, v5}, Ljava/lang/IllegalStateException;.<init>:(Ljava/lang/String;)V // method@062f
00dd78: 2703                                   |06d8: throw v3
00dd7a: 0d00                                   |06d9: move-exception v0
00dd7c: 080c 2500                              |06da: move-object/from16 v12, v37
00dd80: 080b 2f00                              |06dc: move-object/from16 v11, v47
00dd84: 0703                                   |06de: move-object v3, v0
00dd86: 0814 0400                              |06df: move-object/from16 v20, v4
00dd8a: 0209 2100                              |06e1: move/from16 v9, v33
00dd8e: 0208 2200                              |06e3: move/from16 v8, v34
00dd92: 2900 9601                              |06e5: goto/16 087b // +0196
00dd96: 080c 2500                              |06e7: move-object/from16 v12, v37
00dd9a: 080b 2f00                              |06e9: move-object/from16 v11, v47
00dd9e: 121d                                   |06eb: const/4 v13, #int 1 // #1
00dda0: 5513 6f00                              |06ec: iget-boolean v3, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.suspended:Z // field@006f
00dda4: 3903 1b00                              |06ee: if-nez v3, 0709 // +001b
00dda8: 3924 1900                              |06f0: if-nez v36, 0709 // +0019
00ddac: 6e10 2f02 0200                         |06f2: invoke-virtual {v2}, Lcom/valentinedesigns/chromalink/AudioTransport;.queuedFrames:()J // method@022f
00ddb2: 0b08                                   |06f5: move-result-wide v8
00ddb4: 6e56 1e02 8459                         |06f6: invoke-virtual {v4, v8, v9, v5, v6}, Lcom/valentinedesigns/chromalink/AudioBufferPolicy;.canStart:(JJ)Z // method@021e
00ddba: 0a03                                   |06f9: move-result v3
00ddbc: 3803 0f00                              |06fa: if-eqz v3, 0709 // +000f
00ddc0: 6e10 a100 0c00                         |06fc: invoke-virtual {v12}, Landroid/media/AudioTrack;.play:()V // method@00a1
00ddc6: 0224 0d00                              |06ff: move/from16 v36, v13
00ddca: 2808                                   |0701: goto 0709 // +0008
00ddcc: 0d00                                   |0702: move-exception v0
00ddce: 0703                                   |0703: move-object v3, v0
00ddd0: 0814 0400                              |0704: move-object/from16 v20, v4
00ddd4: 0825 0c00                              |0706: move-object/from16 v37, v12
00ddd8: 28d9                                   |0708: goto 06e1 // -0027
00ddda: 7100 6d06 0000                         |0709: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@066d
00dde0: 0b05                                   |070c: move-result-wide v5
00dde2: 3824 7100                              |070d: if-eqz v36, 077e // +0071
00dde6: 3103 051a                              |070f: cmp-long v3, v5, v26
00ddea: 3a03 6d00                              |0711: if-ltz v3, 077e // +006d
00ddee: 1708 80b2 e60e                         |0713: const-wide/32 v8, #float 5.68713e-30 // #0ee6b280
00ddf4: bb85                                   |0716: add-long/2addr v5, v8
00ddf6: 6e10 1d02 0400                         |0717: invoke-virtual {v4}, Lcom/valentinedesigns/chromalink/AudioBufferPolicy;.activeFrames:()I // method@021d
00ddfc: 0a03                                   |071a: move-result v3
00ddfe: 6e10 9f00 0c00                         |071b: invoke-virtual {v12}, Landroid/media/AudioTrack;.getUnderrunCount:()I // method@009f
00de04: 0a08                                   |071e: move-result v8
00de06: 6e20 1f02 8400                         |071f: invoke-virtual {v4, v8}, Lcom/valentinedesigns/chromalink/AudioBufferPolicy;.observeUnderruns:(I)I // method@021f
00de0c: 0a08                                   |0722: move-result v8
00de0e: 3738 4e00                              |0723: if-le v8, v3, 0771 // +004e
00de12: 6e20 a300 8c00                         |0725: invoke-virtual {v12, v8}, Landroid/media/AudioTrack;.setBufferSizeInFrames:(I)I // method@00a3
00de18: 0a08                                   |0728: move-result v8
00de1a: 3d08 0300                              |0729: if-lez v8, 072c // +0003
00de1e: 2805                                   |072b: goto 0730 // +0005
00de20: 6e10 9b00 0c00                         |072c: invoke-virtual {v12}, Landroid/media/AudioTrack;.getBufferSizeInFrames:()I // method@009b
00de26: 0a08                                   |072f: move-result v8
00de28: 3d08 0300                              |0730: if-lez v8, 0733 // +0003
00de2c: 2802                                   |0732: goto 0734 // +0002
00de2e: 0138                                   |0733: move v8, v3
00de30: 6e20 1c02 8400                         |0734: invoke-virtual {v4, v8}, Lcom/valentinedesigns/chromalink/AudioBufferPolicy;.acceptedSize:(I)V // method@021c
00de36: 6e10 1d02 0400                         |0737: invoke-virtual {v4}, Lcom/valentinedesigns/chromalink/AudioBufferPolicy;.activeFrames:()I // method@021d
00de3c: 0a08                                   |073a: move-result v8
00de3e: 3738 3300                              |073b: if-le v8, v3, 076e // +0033
00de42: 1a08 4501                              |073d: const-string v8, "ChromalinkAudio" // string@0145
00de46: 6e10 1d02 0400                         |073f: invoke-virtual {v4}, Lcom/valentinedesigns/chromalink/AudioBufferPolicy;.activeFrames:()I // method@021d
00de4c: 0a09                                   |0742: move-result v9
00de4e: 220d 4901                              |0743: new-instance v13, Ljava/lang/StringBuilder; // type@0149
00de52: 7010 6806 0d00                         |0745: invoke-direct {v13}, Ljava/lang/StringBuilder;.<init>:()V // method@0668
00de58: 0828 0400                              |0748: move-object/from16 v40, v4
00de5c: 1a04 2c04                              |074a: const-string v4, "Playback cushion " // string@042c
00de60: 6e20 6b06 4d00                         |074c: invoke-virtual {v13, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@066b
00de66: 0c04                                   |074f: move-result-object v4
00de68: 6e20 6906 3400                         |0750: invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@0669
00de6e: 0c03                                   |0753: move-result-object v3
00de70: 1a04 1400                              |0754: const-string v4, " → " // string@0014
00de74: 6e20 6b06 4300                         |0756: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@066b
00de7a: 0c03                                   |0759: move-result-object v3
00de7c: 6e20 6906 9300                         |075a: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@0669
00de82: 0c03                                   |075d: move-result-object v3
00de84: 1a04 0c00                              |075e: const-string v4, " frames after output underrun" // string@000c
00de88: 6e20 6b06 4300                         |0760: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@066b
00de8e: 0c03                                   |0763: move-result-object v3
00de90: 6e10 6c06 0300                         |0764: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@066c
00de96: 0c03                                   |0767: move-result-object v3
00de98: 7120 da00 3800                         |0768: invoke-static {v8, v3}, Landroid/util/Log;.i:(Ljava/lang/String;Ljava/lang/String;)I // method@00da
00de9e: 2808                                   |076b: goto 0773 // +0008
00dea0: 0d00                                   |076c: move-exception v0
00dea2: 280c                                   |076d: goto 0779 // +000c
00dea4: 0828 0400                              |076e: move-object/from16 v40, v4
00dea8: 2803                                   |0770: goto 0773 // +0003
00deaa: 0828 0400                              |0771: move-object/from16 v40, v4
00deae: 051a 0500                              |0773: move-wide/from16 v26, v5
00deb2: 280b                                   |0775: goto 0780 // +000b
00deb4: 0d00                                   |0776: move-exception v0
00deb6: 0828 0400                              |0777: move-object/from16 v40, v4
00deba: 0703                                   |0779: move-object v3, v0
00debc: 051a 0500                              |077a: move-wide/from16 v26, v5
00dec0: 2900 6700                              |077c: goto/16 07e3 // +0067
00dec4: 0828 0400                              |077e: move-object/from16 v40, v4
00dec8: 0726                                   |0780: move-object v6, v2
00deca: 07a2                                   |0781: move-object v2, v10
00decc: 07b4                                   |0782: move-object v4, v11
00dece: 07e5                                   |0783: move-object v5, v14
00ded0: 0209 2100                              |0784: move/from16 v9, v33
00ded4: 0208 2200                              |0786: move/from16 v8, v34
00ded8: 020b 2300                              |0788: move/from16 v11, v35
00dedc: 020a 2400                              |078a: move/from16 v10, v36
00dee0: 0814 2800                              |078c: move-object/from16 v20, v40
00dee4: 1303 0004                              |078e: const/16 v3, #int 1024 // #400
00dee8: 07ce                                   |0790: move-object v14, v12
00deea: 2900 a9f8                              |0791: goto/16 003a // -0757
00deee: 0d00                                   |0793: move-exception v0
00def0: 2900 5a00                              |0794: goto/16 07ee // +005a
00def4: 0d00                                   |0796: move-exception v0
00def6: 0828 0400                              |0797: move-object/from16 v40, v4
00defa: 2900 4900                              |0799: goto/16 07e2 // +0049
00defe: 0d00                                   |079b: move-exception v0
00df00: 0828 0400                              |079c: move-object/from16 v40, v4
00df04: 2806                                   |079e: goto 07a4 // +0006
00df06: 0d00                                   |079f: move-exception v0
00df08: 0828 0400                              |07a0: move-object/from16 v40, v4
00df0c: 080a 1400                              |07a2: move-object/from16 v10, v20
00df10: 080c 2500                              |07a4: move-object/from16 v12, v37
00df14: 280b                                   |07a6: goto 07b1 // +000b
00df16: 0d00                                   |07a7: move-exception v0
00df18: 2803                                   |07a8: goto 07ab // +0003
00df1a: 0d00                                   |07a9: move-exception v0
00df1c: 075e                                   |07aa: move-object v14, v5
00df1e: 080a 1400                              |07ab: move-object/from16 v10, v20
00df22: 080c 2500                              |07ad: move-object/from16 v12, v37
00df26: 0802 2b00                              |07af: move-object/from16 v2, v43
00df2a: 080b 2f00                              |07b1: move-object/from16 v11, v47
00df2e: 2822                                   |07b3: goto 07d5 // +0022
00df30: 0d00                                   |07b4: move-exception v0
00df32: 074b                                   |07b5: move-object v11, v4
00df34: 075e                                   |07b6: move-object v14, v5
00df36: 080a 1400                              |07b7: move-object/from16 v10, v20
00df3a: 080c 2500                              |07b9: move-object/from16 v12, v37
00df3e: 0802 2b00                              |07bb: move-object/from16 v2, v43
00df42: 2818                                   |07bd: goto 07d5 // +0018
00df44: 0d00                                   |07be: move-exception v0
00df46: 074b                                   |07bf: move-object v11, v4
00df48: 075e                                   |07c0: move-object v14, v5
00df4a: 0762                                   |07c1: move-object v2, v6
00df4c: 080a 1400                              |07c2: move-object/from16 v10, v20
00df50: 080c 2500                              |07c4: move-object/from16 v12, v37
00df54: 280f                                   |07c6: goto 07d5 // +000f
00df56: 0d00                                   |07c7: move-exception v0
00df58: 080c 2500                              |07c8: move-object/from16 v12, v37
00df5c: 2824                                   |07ca: goto 07ee // +0024
00df5e: 0d00                                   |07cb: move-exception v0
00df60: 075e                                   |07cc: move-object v14, v5
00df62: 0762                                   |07cd: move-object v2, v6
00df64: 0828 0b00                              |07ce: move-object/from16 v40, v11
00df68: 080a 1400                              |07d0: move-object/from16 v10, v20
00df6c: 080c 2500                              |07d2: move-object/from16 v12, v37
00df70: 074b                                   |07d4: move-object v11, v4
00df72: 0703                                   |07d5: move-object v3, v0
00df74: 280f                                   |07d6: goto 07e5 // +000f
00df76: 0d00                                   |07d7: move-exception v0
00df78: 0762                                   |07d8: move-object v2, v6
00df7a: 0828 0b00                              |07d9: move-object/from16 v40, v11
00df7e: 0223 0c00                              |07db: move/from16 v35, v12
00df82: 07ec                                   |07dd: move-object v12, v14
00df84: 080a 1400                              |07de: move-object/from16 v10, v20
00df88: 074b                                   |07e0: move-object v11, v4
00df8a: 075e                                   |07e1: move-object v14, v5
00df8c: 0703                                   |07e2: move-object v3, v0
00df8e: 0825 0c00                              |07e3: move-object/from16 v37, v12
00df92: 0209 2100                              |07e5: move/from16 v9, v33
00df96: 0208 2200                              |07e7: move/from16 v8, v34
00df9a: 281d                                   |07e9: goto 0806 // +001d
00df9c: 0d00                                   |07ea: move-exception v0
00df9e: 280a                                   |07eb: goto 07f5 // +000a
00dfa0: 0d00                                   |07ec: move-exception v0
00dfa2: 07ec                                   |07ed: move-object v12, v14
00dfa4: 0702                                   |07ee: move-object v2, v0
00dfa6: 07cd                                   |07ef: move-object v13, v12
00dfa8: 2900 2401                              |07f0: goto/16 0914 // +0124
00dfac: 0d00                                   |07f2: move-exception v0
00dfae: 0221 0300                              |07f3: move/from16 v33, v3
00dfb2: 0762                                   |07f5: move-object v2, v6
00dfb4: 0222 0800                              |07f6: move/from16 v34, v8
00dfb8: 0828 0b00                              |07f8: move-object/from16 v40, v11
00dfbc: 0223 0c00                              |07fa: move/from16 v35, v12
00dfc0: 07ec                                   |07fc: move-object v12, v14
00dfc2: 080a 1400                              |07fd: move-object/from16 v10, v20
00dfc6: 074b                                   |07ff: move-object v11, v4
00dfc8: 075e                                   |0800: move-object v14, v5
00dfca: 0703                                   |0801: move-object v3, v0
00dfcc: 0825 0c00                              |0802: move-object/from16 v37, v12
00dfd0: 0209 2100                              |0804: move/from16 v9, v33
00dfd4: 0814 2800                              |0806: move-object/from16 v20, v40
00dfd8: 2900 7300                              |0808: goto/16 087b // +0073
00dfdc: 0d00                                   |080a: move-exception v0
00dfde: 0762                                   |080b: move-object v2, v6
00dfe0: 0222 0800                              |080c: move/from16 v34, v8
00dfe4: 01b3                                   |080e: move v3, v11
00dfe6: 080a 1400                              |080f: move-object/from16 v10, v20
00dfea: 0828 2100                              |0811: move-object/from16 v40, v33
00dfee: 074b                                   |0813: move-object v11, v4
00dff0: 0821 0e00                              |0814: move-object/from16 v33, v14
00dff4: 075e                                   |0816: move-object v14, v5
00dff6: 281f                                   |0817: goto 0836 // +001f
00dff8: 0d00                                   |0818: move-exception v0
00dffa: 0762                                   |0819: move-object v2, v6
00dffc: 01b3                                   |081a: move v3, v11
00dffe: 080a 1400                              |081b: move-object/from16 v10, v20
00e002: 0828 2100                              |081d: move-object/from16 v40, v33
00e006: 074b                                   |081f: move-object v11, v4
00e008: 0821 0e00                              |0820: move-object/from16 v33, v14
00e00c: 075e                                   |0822: move-object v14, v5
00e00e: 0704                                   |0823: move-object v4, v0
00e010: 0208 2200                              |0824: move/from16 v8, v34
00e014: 0209 2300                              |0826: move/from16 v9, v35
00e018: 1e3a                                   |0828: monitor-exit v58
00e01a: 2704                                   |0829: throw v4
00e01c: 0d00                                   |082a: move-exception v0
00e01e: 0223 0300                              |082b: move/from16 v35, v3
00e022: 0510 0c00                              |082d: move-wide/from16 v16, v12
00e026: 0825 2100                              |082f: move-object/from16 v37, v33
00e02a: 0814 2800                              |0831: move-object/from16 v20, v40
00e02e: 2900 4700                              |0833: goto/16 087a // +0047
00e032: 0d00                                   |0835: move-exception v0
00e034: 0704                                   |0836: move-object v4, v0
00e036: 28f1                                   |0837: goto 0828 // -000f
00e038: 0d00                                   |0838: move-exception v0
00e03a: 0762                                   |0839: move-object v2, v6
00e03c: 01b3                                   |083a: move v3, v11
00e03e: 080a 1400                              |083b: move-object/from16 v10, v20
00e042: 0828 2100                              |083d: move-object/from16 v40, v33
00e046: 074b                                   |083f: move-object v11, v4
00e048: 0821 0e00                              |0840: move-object/from16 v33, v14
00e04c: 075e                                   |0842: move-object v14, v5
00e04e: 0510 0c00                              |0843: move-wide/from16 v16, v12
00e052: 0825 2100                              |0845: move-object/from16 v37, v33
00e056: 0208 2200                              |0847: move/from16 v8, v34
00e05a: 0209 2300                              |0849: move/from16 v9, v35
00e05e: 282b                                   |084b: goto 0876 // +002b
00e060: 0d00                                   |084c: move-exception v0
00e062: 0762                                   |084d: move-object v2, v6
00e064: 0222 0800                              |084e: move/from16 v34, v8
00e068: 0223 0900                              |0850: move/from16 v35, v9
00e06c: 01b3                                   |0852: move v3, v11
00e06e: 080a 1400                              |0853: move-object/from16 v10, v20
00e072: 0828 2100                              |0855: move-object/from16 v40, v33
00e076: 074b                                   |0857: move-object v11, v4
00e078: 0821 0e00                              |0858: move-object/from16 v33, v14
00e07c: 075e                                   |085a: move-object v14, v5
00e07e: 0510 0c00                              |085b: move-wide/from16 v16, v12
00e082: 2817                                   |085d: goto 0874 // +0017
00e084: 0d00                                   |085e: move-exception v0
00e086: 0821 0e00                              |085f: move-object/from16 v33, v14
00e08a: 0702                                   |0861: move-object v2, v0
00e08c: 080d 2100                              |0862: move-object/from16 v13, v33
00e090: 2900 b000                              |0864: goto/16 0914 // +00b0
00e094: 0d00                                   |0866: move-exception v0
00e096: 072a                                   |0867: move-object v10, v2
00e098: 0828 0300                              |0868: move-object/from16 v40, v3
00e09c: 0762                                   |086a: move-object v2, v6
00e09e: 0222 0800                              |086b: move/from16 v34, v8
00e0a2: 0223 0900                              |086d: move/from16 v35, v9
00e0a6: 01b3                                   |086f: move v3, v11
00e0a8: 0821 0e00                              |0870: move-object/from16 v33, v14
00e0ac: 074b                                   |0872: move-object v11, v4
00e0ae: 075e                                   |0873: move-object v14, v5
00e0b0: 0825 2100                              |0874: move-object/from16 v37, v33
00e0b4: 0814 2800                              |0876: move-object/from16 v20, v40
00e0b8: 0223 0300                              |0878: move/from16 v35, v3
00e0bc: 0703                                   |087a: move-object v3, v0
00e0be: 5514 6700                              |087b: iget-boolean v4, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.released:Z // field@0067
00e0c2: 3804 0600                              |087d: if-eqz v4, 0883 // +0006
00e0c6: 080e 2500                              |087f: move-object/from16 v14, v37
00e0ca: 2900 8c00                              |0881: goto/16 090d // +008c
00e0ce: 9b04 1210                              |0883: add-long v4, v18, v16
00e0d2: 3825 1b00                              |0885: if-eqz v37, 08a0 // +001b
00e0d6: 7401 9d00 2500                         |0887: invoke-virtual/range {v37}, Landroid/media/AudioTrack;.getPlaybackHeadPosition:()I // method@009d
00e0dc: 0a06                                   |088a: move-result v6
00e0de: 7110 3406 0600                         |088b: invoke-static {v6}, Ljava/lang/Integer;.toUnsignedLong:(I)J // method@0634
00e0e4: 0b04                                   |088e: move-result-wide v4
00e0e6: 3106 0410                              |088f: cmp-long v6, v4, v16
00e0ea: 3b06 0a00                              |0891: if-gez v6, 089b // +000a
00e0ee: 9c0c 1004                              |0893: sub-long v12, v16, v4
00e0f2: 3106 0c1e                              |0895: cmp-long v6, v12, v30
00e0f6: 3d06 0400                              |0897: if-lez v6, 089b // +0004
00e0fa: 9b12 121c                              |0899: add-long v18, v18, v28
00e0fe: 9b04 1204                              |089b: add-long v4, v18, v4
00e102: 2803                                   |089d: goto 08a0 // +0003
00e104: 0d00                                   |089e: move-exception v0
00e106: 28fe                                   |089f: goto 089d // -0002
00e108: 6e30 2b02 4205                         |08a0: invoke-virtual {v2, v4, v5}, Lcom/valentinedesigns/chromalink/AudioTransport;.flushAt:(J)V // method@022b
00e10e: 6e10 2902 0200                         |08a3: invoke-virtual {v2}, Lcom/valentinedesigns/chromalink/AudioTransport;.audibleSongFrame:()J // method@0229
00e114: 0b04                                   |08a6: move-result-wide v4
00e116: 5a14 5000                              |08a7: iput-wide v4, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.audibleSongFrame:J // field@0050
00e11a: 380f 3500                              |08a9: if-eqz v15, 08de // +0035
00e11e: 6e10 3302 0200                         |08ab: invoke-virtual {v2}, Lcom/valentinedesigns/chromalink/AudioTransport;.songEpoch:()I // method@0233
00e124: 0a04                                   |08ae: move-result v4
00e126: 3294 2f00                              |08af: if-eq v4, v9, 08de // +002f
00e12a: 5414 6600                              |08b1: iget-object v4, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.previousBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0066
00e12e: 3804 1900                              |08b3: if-eqz v4, 08cc // +0019
00e132: 6e10 3302 0200                         |08b5: invoke-virtual {v2}, Lcom/valentinedesigns/chromalink/AudioTransport;.songEpoch:()I // method@0233
00e138: 0a04                                   |08b8: move-result v4
00e13a: 3384 1300                              |08b9: if-ne v4, v8, 08cc // +0013
00e13e: 5414 6600                              |08bb: iget-object v4, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.previousBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0066
00e142: 5b14 6300                              |08bd: iput-object v4, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.playingBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0063
00e146: 1205                                   |08bf: const/4 v5, #int 0 // #0
00e148: 5b15 6600                              |08c0: iput-object v5, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.previousBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0066
00e14c: 6e10 3302 0200                         |08c2: invoke-virtual {v2}, Lcom/valentinedesigns/chromalink/AudioTransport;.songEpoch:()I // method@0233
00e152: 0a06                                   |08c5: move-result v6
00e154: 6e10 6905 0700                         |08c6: invoke-virtual {v7}, Lcom/valentinedesigns/chromalink/MusicFade;.finishOutgoing:()V // method@0569
00e15a: 074f                                   |08c9: move-object v15, v4
00e15c: 0169                                   |08ca: move v9, v6
00e15e: 2814                                   |08cb: goto 08df // +0014
00e160: 1205                                   |08cc: const/4 v5, #int 0 // #0
00e162: 6e10 3002 0200                         |08cd: invoke-virtual {v2}, Lcom/valentinedesigns/chromalink/AudioTransport;.selectSong:()V // method@0230
00e168: 52f4 2c00                              |08d0: iget v4, v15, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.frames:I // field@002c
00e16c: 6e20 3202 4200                         |08d2: invoke-virtual {v2, v4}, Lcom/valentinedesigns/chromalink/AudioTransport;.setSongLength:(I)V // method@0232
00e172: 6e10 3302 0200                         |08d5: invoke-virtual {v2}, Lcom/valentinedesigns/chromalink/AudioTransport;.songEpoch:()I // method@0233
00e178: 0a04                                   |08d8: move-result v4
00e17a: 6e10 7105 0700                         |08d9: invoke-virtual {v7}, Lcom/valentinedesigns/chromalink/MusicFade;.startSong:()V // method@0571
00e180: 0149                                   |08dc: move v9, v4
00e182: 2802                                   |08dd: goto 08df // +0002
00e184: 1205                                   |08de: const/4 v5, #int 0 // #0
00e186: 7701 f801 2500                         |08df: invoke-static/range {v37}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.disposeOutput:(Landroid/media/AudioTrack;)V // method@01f8
00e18c: 6e10 8b06 0e00                         |08e2: invoke-virtual {v14}, Ljava/util/ArrayList;.clear:()V // method@068b
00e192: 1a04 4d04                              |08e5: const-string v4, "Reconnecting audio" // string@044d
00e196: 5b14 6e00                              |08e7: iput-object v4, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.state:Ljava/lang/String; // field@006e
00e19a: 1a04 4501                              |08e9: const-string v4, "ChromalinkAudio" // string@0145
00e19e: 1a06 4e04                              |08eb: const-string v6, "Reconnecting audio output" // string@044e
00e1a2: 7130 db00 6403                         |08ed: invoke-static {v4, v6, v3}, Landroid/util/Log;.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I // method@00db
00e1a8: 1603 9001                              |08f0: const-wide/16 v3, #int 400 // #190
00e1ac: 7030 1902 3104                         |08f2: invoke-direct {v1, v3, v4}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.waitForPlayback:(J)V // method@0219
00e1b2: 0726                                   |08f5: move-object v6, v2
00e1b4: 07a2                                   |08f6: move-object v2, v10
00e1b6: 07b4                                   |08f7: move-object v4, v11
00e1b8: 020b 2300                              |08f8: move/from16 v11, v35
00e1bc: 1303 0004                              |08fa: const/16 v3, #int 1024 // #400
00e1c0: 120a                                   |08fc: const/4 v10, #int 0 // #0
00e1c2: 0838 0e00                              |08fd: move-object/from16 v56, v14
00e1c6: 075e                                   |08ff: move-object v14, v5
00e1c8: 0805 3800                              |0900: move-object/from16 v5, v56
00e1cc: 2900 38f7                              |0902: goto/16 003a // -08c8
00e1d0: 0d00                                   |0904: move-exception v0
00e1d2: 0702                                   |0905: move-object v2, v0
00e1d4: 075d                                   |0906: move-object v13, v5
00e1d6: 280d                                   |0907: goto 0914 // +000d
00e1d8: 0d00                                   |0908: move-exception v0
00e1da: 0702                                   |0909: move-object v2, v0
00e1dc: 080d 2500                              |090a: move-object/from16 v13, v37
00e1e0: 2808                                   |090c: goto 0914 // +0008
00e1e2: 7110 f801 0e00                         |090d: invoke-static {v14}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.disposeOutput:(Landroid/media/AudioTrack;)V // method@01f8
00e1e8: 0e00                                   |0910: return-void
00e1ea: 0d00                                   |0911: move-exception v0
00e1ec: 0702                                   |0912: move-object v2, v0
00e1ee: 07ed                                   |0913: move-object v13, v14
00e1f0: 7110 f801 0d00                         |0914: invoke-static {v13}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.disposeOutput:(Landroid/media/AudioTrack;)V // method@01f8
00e1f6: 2702                                   |0917: throw v2
      catches       : 76
        0x0004 - 0x0007
          Ljava/lang/SecurityException; -> 0x0008
        0x003a - 0x003c
          <any> -> 0x0911
        0x004c - 0x0085
          Ljava/lang/RuntimeException; -> 0x00dd
          <any> -> 0x0911
        0x0085 - 0x0093
          Ljava/lang/RuntimeException; -> 0x00c7
          <any> -> 0x085e
        0x0097 - 0x009a
          Ljava/lang/RuntimeException; -> 0x00c5
          <any> -> 0x00c2
        0x009d - 0x00a5
          Ljava/lang/RuntimeException; -> 0x00a6
          <any> -> 0x00c2
        0x00d5 - 0x00dd
          Ljava/lang/RuntimeException; -> 0x00dd
          <any> -> 0x0911
        0x00eb - 0x00f3
          Ljava/lang/RuntimeException; -> 0x0866
          <any> -> 0x085e
        0x0105 - 0x0110
          Ljava/lang/RuntimeException; -> 0x084c
          <any> -> 0x085e
        0x0112 - 0x0131
          Ljava/lang/RuntimeException; -> 0x0132
          <any> -> 0x0911
        0x0140 - 0x0142
          Ljava/lang/RuntimeException; -> 0x084c
          <any> -> 0x085e
        0x0146 - 0x0149
          Ljava/lang/RuntimeException; -> 0x0132
          <any> -> 0x0911
        0x014a - 0x0155
          Ljava/lang/RuntimeException; -> 0x0199
          <any> -> 0x0911
        0x0155 - 0x015b
          <any> -> 0x017f
        0x015d - 0x015f
          Ljava/lang/InterruptedException; -> 0x016b
          <any> -> 0x017f
        0x0165 - 0x0168
          Ljava/lang/InterruptedException; -> 0x0169
          <any> -> 0x0197
        0x0170 - 0x0186
          <any> -> 0x0197
        0x0186 - 0x0187
          Ljava/lang/RuntimeException; -> 0x0187
          <any> -> 0x0911
        0x01b1 - 0x01b4
          Ljava/lang/RuntimeException; -> 0x0838
          <any> -> 0x085e
        0x01b4 - 0x01b6
          <any> -> 0x0818
        0x01b8 - 0x01bc
          <any> -> 0x01bf
        0x01d1 - 0x01d5
          <any> -> 0x0818
        0x01d7 - 0x01da
          <any> -> 0x01bf
        0x01da - 0x01dc
          <any> -> 0x0818
        0x01de - 0x01e4
          <any> -> 0x01bf
        0x01ee - 0x01f0
          <any> -> 0x0818
        0x01fa - 0x0210
          <any> -> 0x01bf
        0x0213 - 0x0218
          <any> -> 0x021f
        0x0228 - 0x023a
          <any> -> 0x01bf
        0x023c - 0x0247
          <any> -> 0x02cc
        0x0247 - 0x024a
          <any> -> 0x02bf
        0x024c - 0x0250
          <any> -> 0x02ab
        0x0252 - 0x025d
          <any> -> 0x025e
        0x026a - 0x027f
          <any> -> 0x02ab
        0x0281 - 0x0295
          <any> -> 0x02a9
        0x0295 - 0x02a8
          <any> -> 0x02a5
        0x02a8 - 0x02a9
          <any> -> 0x02a9
        0x02e2 - 0x02e3
          <any> -> 0x080a
        0x02e5 - 0x02f0
          Ljava/lang/RuntimeException; -> 0x0362
          <any> -> 0x0911
        0x02ff - 0x0305
          Ljava/lang/RuntimeException; -> 0x0360
          <any> -> 0x0911
        0x0305 - 0x0309
          Ljava/lang/RuntimeException; -> 0x0351
          <any> -> 0x0911
        0x030b - 0x0344
          Ljava/lang/RuntimeException; -> 0x034f
          <any> -> 0x0911
        0x0383 - 0x0388
          Ljava/lang/RuntimeException; -> 0x0389
          <any> -> 0x0911
        0x038f - 0x0391
          Ljava/lang/RuntimeException; -> 0x07f2
          <any> -> 0x07ec
        0x0393 - 0x0395
          Ljava/lang/RuntimeException; -> 0x07ea
          <any> -> 0x07ec
        0x0397 - 0x0399
          Ljava/lang/RuntimeException; -> 0x07d7
          <any> -> 0x07ec
        0x03a3 - 0x03a5
          Ljava/lang/RuntimeException; -> 0x03a6
          <any> -> 0x0911
        0x03b9 - 0x03bb
          Ljava/lang/RuntimeException; -> 0x03bc
          <any> -> 0x0908
        0x03cc - 0x03d4
          Ljava/lang/RuntimeException; -> 0x07cb
          <any> -> 0x07c7
        0x03d6 - 0x03da
          Ljava/lang/RuntimeException; -> 0x03f0
          <any> -> 0x0908
        0x03e1 - 0x03e8
          Ljava/lang/RuntimeException; -> 0x03e9
          <any> -> 0x0908
        0x040d - 0x0415
          Ljava/lang/RuntimeException; -> 0x07be
          <any> -> 0x07c7
        0x0417 - 0x043d
          Ljava/lang/RuntimeException; -> 0x07b4
          <any> -> 0x07c7
        0x043f - 0x0443
          Ljava/lang/RuntimeException; -> 0x07a9
          <any> -> 0x07c7
        0x0483 - 0x0574
          Ljava/lang/RuntimeException; -> 0x04a4
          <any> -> 0x0908
        0x058d - 0x0625
          Ljava/lang/RuntimeException; -> 0x05e3
          <any> -> 0x0908
        0x0625 - 0x0629
          Ljava/lang/RuntimeException; -> 0x07a7
          <any> -> 0x07c7
        0x062d - 0x063e
          Ljava/lang/RuntimeException; -> 0x05e3
          <any> -> 0x0908
        0x0641 - 0x0643
          Ljava/lang/RuntimeException; -> 0x07a7
          <any> -> 0x07c7
        0x0647 - 0x064b
          Ljava/lang/RuntimeException; -> 0x065d
          <any> -> 0x0908
        0x064f - 0x0658
          Ljava/lang/RuntimeException; -> 0x065b
          <any> -> 0x0908
        0x0677 - 0x067e
          Ljava/lang/RuntimeException; -> 0x079f
          <any> -> 0x07c7
        0x0680 - 0x0683
          Ljava/lang/RuntimeException; -> 0x079b
          <any> -> 0x07c7
        0x0688 - 0x068a
          Ljava/lang/RuntimeException; -> 0x06d9
          <any> -> 0x07c7
        0x0693 - 0x06d9
          Ljava/lang/RuntimeException; -> 0x0702
          <any> -> 0x0793
        0x06ec - 0x06ee
          Ljava/lang/RuntimeException; -> 0x0796
          <any> -> 0x0793
        0x06f2 - 0x06ff
          Ljava/lang/RuntimeException; -> 0x0702
          <any> -> 0x0793
        0x0709 - 0x070d
          Ljava/lang/RuntimeException; -> 0x0796
          <any> -> 0x0793
        0x0717 - 0x0748
          Ljava/lang/RuntimeException; -> 0x0776
          <any> -> 0x0793
        0x074a - 0x076b
          Ljava/lang/RuntimeException; -> 0x076c
          <any> -> 0x0793
        0x0828 - 0x0829
          <any> -> 0x0835
        0x0829 - 0x082a
          Ljava/lang/RuntimeException; -> 0x082a
          <any> -> 0x00c2
        0x087b - 0x087d
          <any> -> 0x0908
        0x0887 - 0x088f
          Ljava/lang/RuntimeException; -> 0x089e
          <any> -> 0x0908
        0x08a0 - 0x08e2
          <any> -> 0x0908
        0x08e2 - 0x08f5
          <any> -> 0x0904
      positions     :
        0x0000 line=353
        0x0002 line=354
        0x0009 line=355
        0x000e line=356
        0x001c line=357
        0x001d line=358
        0x001e line=359
        0x0020 line=360
        0x0021 line=361
        0x0022 line=362
        0x003a line=364
        0x003e line=366
        0x004c line=367
        0x0054 line=373
        0x0062 line=374
        0x006c line=375
        0x0071 line=376
        0x0072 line=364
        0x0075 line=378
        0x007f line=379
        0x0081 line=380
        0x0085 line=381
        0x009a line=382
        0x009b line=383
        0x00a6 line=538
        0x00b8 line=386
        0x00c2 line=561
        0x00c5 line=538
        0x00d5 line=379
        0x00dd line=538
        0x00e9 line=366
        0x00eb line=386
        0x00f3 line=387
        0x00ff line=388
        0x0110 line=389
        0x0112 line=390
        0x0122 line=391
        0x0128 line=392
        0x0132 line=538
        0x0140 line=394
        0x0144 line=395
        0x014a line=396
        0x0152 line=399
        0x0171 line=400
        0x017f line=399
        0x0187 line=538
        0x0197 line=399
        0x0199 line=538
        0x01ad line=402
        0x01b3 line=405
        0x01b4 line=406
        0x01b6 line=407
        0x01bf line=432
        0x01d1 line=407
        0x01da line=408
        0x01ee line=409
        0x01f8 line=410
        0x020a line=412
        0x0212 line=413
        0x0213 line=414
        0x0215 line=415
        0x021f line=432
        0x0222 line=416
        0x022f line=430
        0x0238 line=417
        0x023a line=418
        0x023b line=419
        0x023c line=420
        0x023e line=421
        0x0243 line=422
        0x0247 line=423
        0x024a line=424
        0x024b line=425
        0x024e line=426
        0x025e line=432
        0x026a line=427
        0x0272 line=428
        0x0292 line=429
        0x02a9 line=432
        0x02dc line=410
        0x02de line=432
        0x02e3 line=433
        0x02e5 line=434
        0x02e8 line=435
        0x02f0 line=436
        0x02fc line=437
        0x0305 line=438
        0x030e line=439
        0x0316 line=440
        0x032f line=441
        0x033e line=443
        0x034f line=538
        0x0375 line=433
        0x0380 line=445
        0x0381 line=446
        0x0389 line=538
        0x038f line=450
        0x0395 line=451
        0x039f line=452
        0x03a6 line=538
        0x03b2 line=452
        0x03b5 line=453
        0x03bc line=538
        0x03c7 line=453
        0x03ca line=454
        0x03e9 line=538
        0x03eb line=454
        0x03f0 line=538
        0x03fb line=457
        0x040d line=458
        0x0415 line=459
        0x041d line=460
        0x0421 line=461
        0x043d line=462
        0x0443 line=463
        0x044c line=464
        0x045b line=465
        0x0464 line=466
        0x046d line=467
        0x0473 line=468
        0x0474 line=469
        0x0476 line=470
        0x047c line=471
        0x04a4 line=538
        0x04b6 line=471
        0x04ba line=472
        0x04e6 line=473
        0x04fa line=474
        0x0509 line=475
        0x050f line=476
        0x051e line=477
        0x0531 line=478
        0x0542 line=479
        0x0555 line=480
        0x0567 line=481
        0x0579 line=473
        0x0585 line=483
        0x059f line=484
        0x05b9 line=463
        0x05cc line=486
        0x05d2 line=487
        0x05e3 line=538
        0x05f3 line=487
        0x05f4 line=491
        0x05ff line=492
        0x060d line=493
        0x0615 line=494
        0x061d line=495
        0x0625 line=503
        0x0641 line=506
        0x065b line=538
        0x066f line=506
        0x0673 line=507
        0x067a line=510
        0x0684 line=511
        0x068c line=515
        0x0697 line=516
        0x0699 line=517
        0x069b line=518
        0x06a5 line=519
        0x06ab line=518
        0x06b3 line=520
        0x06bb line=521
        0x06c0 line=516
        0x06d9 line=538
        0x06e7 line=511
        0x06ec line=522
        0x0702 line=538
        0x0709 line=523
        0x070d line=524
        0x0713 line=525
        0x0717 line=526
        0x071b line=527
        0x0723 line=528
        0x0725 line=529
        0x0729 line=532
        0x0730 line=533
        0x0737 line=534
        0x073d line=535
        0x076c line=538
        0x076e line=534
        0x0771 line=528
        0x0773 line=559
        0x0776 line=538
        0x077e line=524
        0x0780 line=559
        0x0793 line=561
        0x0796 line=538
        0x07c7 line=561
        0x07cb line=538
        0x07ec line=561
        0x07f2 line=538
        0x080a line=432
        0x082a line=538
        0x0835 line=432
        0x0838 line=538
        0x085e line=561
        0x0866 line=538
        0x087b line=539
        0x0883 line=543
        0x0885 line=544
        0x0887 line=546
        0x088f line=547
        0x089b line=548
        0x089d line=549
        0x08a0 line=551
        0x08a9 line=552
        0x08b1 line=553
        0x08cd line=554
        0x08de line=552
        0x08df line=556
        0x08e5 line=557
        0x08f0 line=558
        0x08f5 line=559
        0x0904 line=561
        0x0910 line=562
        0x0911 line=561
      locals        :
        0x0000 - 0x0918 reg=58 this Lcom/valentinedesigns/chromalink/ArcadeAudio;

    #13              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'pcm'
      type          : '(F)S'
      access        : 0x0008 (STATIC)
      code          -
      registers     : 2
      ins           : 1
      outs          : 2
      insns size    : 26 16-bit code units
00c8ec:                                        |[00c8ec] com.valentinedesigns.chromalink.ArcadeAudio.pcm:(F)S
00c8fc: 7110 2c06 0100                         |0000: invoke-static {v1}, Ljava/lang/Float;.isFinite:(F)Z // method@062c
00c902: 0a00                                   |0003: move-result v0
00c904: 3900 0400                              |0004: if-nez v0, 0008 // +0004
00c908: 1201                                   |0006: const/4 v1, #int 0 // #0
00c90a: 0f01                                   |0007: return v1
00c90c: 1300 ff7f                              |0008: const/16 v0, #int 32767 // #7fff
00c910: 7110 4b06 0100                         |000a: invoke-static {v1}, Ljava/lang/Math;.round:(F)I // method@064b
00c916: 0a01                                   |000d: move-result v1
00c918: 7120 4806 1000                         |000e: invoke-static {v0, v1}, Ljava/lang/Math;.min:(II)I // method@0648
00c91e: 0a01                                   |0011: move-result v1
00c920: 1300 0180                              |0012: const/16 v0, #int -32767 // #8001
00c924: 7120 4406 1000                         |0014: invoke-static {v0, v1}, Ljava/lang/Math;.max:(II)I // method@0644
00c92a: 0a01                                   |0017: move-result v1
00c92c: 8f11                                   |0018: int-to-short v1, v1
00c92e: 0f01                                   |0019: return v1
      catches       : (none)
      positions     :
        0x0000 line=586
      locals        :
        0x0000 - 0x001a reg=1 (null) F

    #14              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'readObject'
      type          : '(Ljava/lang/String;)Lorg/json/JSONObject;'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 4
      ins           : 2
      outs          : 3
      insns size    : 19 16-bit code units
00c8a4:                                        |[00c8a4] com.valentinedesigns.chromalink.ArcadeAudio.readObject:(Ljava/lang/String;)Lorg/json/JSONObject;
00c8b4: 2200 6e01                              |0000: new-instance v0, Lorg/json/JSONObject; // type@016e
00c8b8: 7020 0302 3200                         |0002: invoke-direct {v2, v3}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.readText:(Ljava/lang/String;)Ljava/lang/String; // method@0203
00c8be: 0c03                                   |0005: move-result-object v3
00c8c0: 7020 bb06 3000                         |0006: invoke-direct {v0, v3}, Lorg/json/JSONObject;.<init>:(Ljava/lang/String;)V // method@06bb
00c8c6: 1100                                   |0009: return-object v0
00c8c8: 0d03                                   |000a: move-exception v3
00c8ca: 2200 3401                              |000b: new-instance v0, Ljava/io/IOException; // type@0134
00c8ce: 1a01 e901                              |000d: const-string v1, "Invalid audio metadata" // string@01e9
00c8d2: 7030 2106 1003                         |000f: invoke-direct {v0, v1, v3}, Ljava/io/IOException;.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V // method@0621
00c8d8: 2700                                   |0012: throw v0
      catches       : 1
        0x0000 - 0x0009
          Lorg/json/JSONException; -> 0x000a
      positions     :
        0x0000 line=242
        0x000a line=243
      locals        :
        0x0000 - 0x0013 reg=2 this Lcom/valentinedesigns/chromalink/ArcadeAudio;
        0x0000 - 0x0013 reg=3 (null) Ljava/lang/String;

    #15              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'readText'
      type          : '(Ljava/lang/String;)Ljava/lang/String;'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 6
      ins           : 2
      outs          : 4
      insns size    : 80 16-bit code units
00c7a0:                                        |[00c7a0] com.valentinedesigns.chromalink.ArcadeAudio.readText:(Ljava/lang/String;)Ljava/lang/String;
00c7b0: 5440 4e00                              |0000: iget-object v0, v4, Lcom/valentinedesigns/chromalink/ArcadeAudio;.assets:Landroid/content/res/AssetManager; // field@004e
00c7b4: 6e20 2a00 5000                         |0002: invoke-virtual {v0, v5}, Landroid/content/res/AssetManager;.open:(Ljava/lang/String;)Ljava/io/InputStream; // method@002a
00c7ba: 0c05                                   |0005: move-result-object v5
00c7bc: 2200 2f01                              |0006: new-instance v0, Ljava/io/ByteArrayOutputStream; // type@012f
00c7c0: 7010 0c06 0000                         |0008: invoke-direct {v0}, Ljava/io/ByteArrayOutputStream;.<init>:()V // method@060c
00c7c6: 1301 0010                              |000b: const/16 v1, #int 4096 // #1000
00c7ca: 2311 7201                              |000d: new-array v1, v1, [B // type@0172
00c7ce: 6e20 2306 1500                         |000f: invoke-virtual {v5, v1}, Ljava/io/InputStream;.read:([B)I // method@0623
00c7d4: 0a02                                   |0012: move-result v2
00c7d6: 12f3                                   |0013: const/4 v3, #int -1 // #ff
00c7d8: 3232 1700                              |0014: if-eq v2, v3, 002b // +0017
00c7dc: 1203                                   |0016: const/4 v3, #int 0 // #0
00c7de: 6e40 1106 1023                         |0017: invoke-virtual {v0, v1, v3, v2}, Ljava/io/ByteArrayOutputStream;.write:([BII)V // method@0611
00c7e4: 6e10 0e06 0000                         |001a: invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;.size:()I // method@060e
00c7ea: 0a02                                   |001d: move-result v2
00c7ec: 1503 0100                              |001e: const/high16 v3, #int 65536 // #1
00c7f0: 3632 0300                              |0020: if-gt v2, v3, 0023 // +0003
00c7f4: 28ed                                   |0022: goto 000f // -0013
00c7f6: 2201 3401                              |0023: new-instance v1, Ljava/io/IOException; // type@0134
00c7fa: 1a02 c403                              |0025: const-string v2, "Metadata too large" // string@03c4
00c7fe: 7020 2006 2100                         |0027: invoke-direct {v1, v2}, Ljava/io/IOException;.<init>:(Ljava/lang/String;)V // method@0620
00c804: 2701                                   |002a: throw v1
00c806: 1a01 e404                              |002b: const-string v1, "UTF-8" // string@04e4
00c80a: 6e20 1006 1000                         |002d: invoke-virtual {v0, v1}, Ljava/io/ByteArrayOutputStream;.toString:(Ljava/lang/String;)Ljava/lang/String; // method@0610
00c810: 0c01                                   |0030: move-result-object v1
00c812: 6e10 0d06 0000                         |0031: invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;.close:()V // method@060d
00c818: 3805 0500                              |0034: if-eqz v5, 0039 // +0005
00c81c: 6e10 2206 0500                         |0036: invoke-virtual {v5}, Ljava/io/InputStream;.close:()V // method@0622
00c822: 1101                                   |0039: return-object v1
00c824: 0d01                                   |003a: move-exception v1
00c826: 6e10 0d06 0000                         |003b: invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;.close:()V // method@060d
00c82c: 2805                                   |003e: goto 0043 // +0005
00c82e: 0d00                                   |003f: move-exception v0
00c830: 6e20 7106 0100                         |0040: invoke-virtual {v1, v0}, Ljava/lang/Throwable;.addSuppressed:(Ljava/lang/Throwable;)V // method@0671
00c836: 2701                                   |0043: throw v1
00c838: 0d00                                   |0044: move-exception v0
00c83a: 3805 0a00                              |0045: if-eqz v5, 004f // +000a
00c83e: 6e10 2206 0500                         |0047: invoke-virtual {v5}, Ljava/io/InputStream;.close:()V // method@0622
00c844: 2805                                   |004a: goto 004f // +0005
00c846: 0d05                                   |004b: move-exception v5
00c848: 6e20 7106 5000                         |004c: invoke-virtual {v0, v5}, Ljava/lang/Throwable;.addSuppressed:(Ljava/lang/Throwable;)V // method@0671
00c84e: 2700                                   |004f: throw v0
      catches       : 6
        0x0006 - 0x000b
          <any> -> 0x0044
        0x000d - 0x0031
          <any> -> 0x003a
        0x0031 - 0x0034
          <any> -> 0x0044
        0x003b - 0x003e
          <any> -> 0x003f
        0x0040 - 0x0044
          <any> -> 0x0044
        0x0047 - 0x004a
          <any> -> 0x004b
      positions     :
        0x0000 line=235
        0x000b line=236
        0x000f line=237
        0x002b line=238
        0x0031 line=239
        0x0039 line=238
        0x003a line=235
      locals        :
        0x0000 - 0x0050 reg=4 this Lcom/valentinedesigns/chromalink/ArcadeAudio;
        0x0000 - 0x0050 reg=5 (null) Ljava/lang/String;

    #16              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'readTrackSpecs'
      type          : '()[Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec;'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 31
      ins           : 1
      outs          : 10
      insns size    : 505 16-bit code units
00c1ac:                                        |[00c1ac] com.valentinedesigns.chromalink.ArcadeAudio.readTrackSpecs:()[Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec;
00c1bc: 0801 1e00                              |0000: move-object/from16 v1, v30
00c1c0: 1a00 f00a                              |0002: const-string v0, "tonicMidi" // string@0af0
00c1c4: 1a02 eb05                              |0004: const-string v2, "audio/manifest.json" // string@05eb
00c1c8: 7020 0302 2100                         |0006: invoke-direct {v1, v2}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.readText:(Ljava/lang/String;)Ljava/lang/String; // method@0203
00c1ce: 0c02                                   |0009: move-result-object v2
00c1d0: 6e10 6606 0200                         |000a: invoke-virtual {v2}, Ljava/lang/String;.trim:()Ljava/lang/String; // method@0666
00c1d6: 0c03                                   |000d: move-result-object v3
00c1d8: 1a04 8205                              |000e: const-string v4, "[" // string@0582
00c1dc: 6e20 6206 4300                         |0010: invoke-virtual {v3, v4}, Ljava/lang/String;.startsWith:(Ljava/lang/String;)Z // method@0662
00c1e2: 0a03                                   |0013: move-result v3
00c1e4: 3803 0800                              |0014: if-eqz v3, 001c // +0008
00c1e8: 2203 6c01                              |0016: new-instance v3, Lorg/json/JSONArray; // type@016c
00c1ec: 7020 b206 2300                         |0018: invoke-direct {v3, v2}, Lorg/json/JSONArray;.<init>:(Ljava/lang/String;)V // method@06b2
00c1f2: 280c                                   |001b: goto 0027 // +000c
00c1f4: 2203 6e01                              |001c: new-instance v3, Lorg/json/JSONObject; // type@016e
00c1f8: 7020 bb06 2300                         |001e: invoke-direct {v3, v2}, Lorg/json/JSONObject;.<init>:(Ljava/lang/String;)V // method@06bb
00c1fe: 1a02 fc0a                              |0021: const-string v2, "tracks" // string@0afc
00c202: 6e20 be06 2300                         |0023: invoke-virtual {v3, v2}, Lorg/json/JSONObject;.getJSONArray:(Ljava/lang/String;)Lorg/json/JSONArray; // method@06be
00c208: 0c03                                   |0026: move-result-object v3
00c20a: 6e10 b706 0300                         |0027: invoke-virtual {v3}, Lorg/json/JSONArray;.length:()I // method@06b7
00c210: 0a02                                   |002a: move-result v2
00c212: 1214                                   |002b: const/4 v4, #int 1 // #1
00c214: 3442 ba01                              |002c: if-lt v2, v4, 01e6 // +01ba
00c218: 6e10 b706 0300                         |002e: invoke-virtual {v3}, Lorg/json/JSONArray;.length:()I // method@06b7
00c21e: 0a02                                   |0031: move-result v2
00c220: 1305 4000                              |0032: const/16 v5, #int 64 // #40
00c224: 3652 b201                              |0034: if-gt v2, v5, 01e6 // +01b2
00c228: 6e10 b706 0300                         |0036: invoke-virtual {v3}, Lorg/json/JSONArray;.length:()I // method@06b7
00c22e: 0a02                                   |0039: move-result v2
00c230: 2322 7901                              |003a: new-array v2, v2, [Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec; // type@0179
00c234: 6e10 b706 0300                         |003c: invoke-virtual {v3}, Lorg/json/JSONArray;.length:()I // method@06b7
00c23a: 0a05                                   |003f: move-result v5
00c23c: 2355 7401                              |0040: new-array v5, v5, [F // type@0174
00c240: 6e10 b706 0300                         |0042: invoke-virtual {v3}, Lorg/json/JSONArray;.length:()I // method@06b7
00c246: 0a06                                   |0045: move-result v6
00c248: 2366 8001                              |0046: new-array v6, v6, [Ljava/lang/String; // type@0180
00c24c: 6e10 b706 0300                         |0048: invoke-virtual {v3}, Lorg/json/JSONArray;.length:()I // method@06b7
00c252: 0a07                                   |004b: move-result v7
00c254: 2377 8001                              |004c: new-array v7, v7, [Ljava/lang/String; // type@0180
00c258: 1208                                   |004e: const/4 v8, #int 0 // #0
00c25a: 0189                                   |004f: move v9, v8
00c25c: 6e10 b706 0300                         |0050: invoke-virtual {v3}, Lorg/json/JSONArray;.length:()I // method@06b7
00c262: 0a0a                                   |0053: move-result v10
00c264: 35a9 8501                              |0054: if-ge v9, v10, 01d9 // +0185
00c268: 6e20 b506 9300                         |0056: invoke-virtual {v3, v9}, Lorg/json/JSONArray;.getJSONObject:(I)Lorg/json/JSONObject; // method@06b5
00c26e: 0c0a                                   |0059: move-result-object v10
00c270: 1a0b c507                              |005a: const-string v11, "id" // string@07c5
00c274: 6e20 bf06 ba00                         |005c: invoke-virtual {v10, v11}, Lorg/json/JSONObject;.getString:(Ljava/lang/String;)Ljava/lang/String; // method@06bf
00c27a: 0c0b                                   |005f: move-result-object v11
00c27c: 6e10 5e06 0b00                         |0060: invoke-virtual {v11}, Ljava/lang/String;.isEmpty:()Z // method@065e
00c282: 0a0c                                   |0063: move-result v12
00c284: 390c 6d01                              |0064: if-nez v12, 01d1 // +016d
00c288: 018c                                   |0066: move v12, v8
00c28a: 359c 1500                              |0067: if-ge v12, v9, 007c // +0015
00c28e: 460d 060c                              |0069: aget-object v13, v6, v12
00c292: 6e20 5b06 bd00                         |006b: invoke-virtual {v13, v11}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
00c298: 0a0d                                   |006e: move-result v13
00c29a: 390d 0500                              |006f: if-nez v13, 0074 // +0005
00c29e: d80c 0c01                              |0071: add-int/lit8 v12, v12, #int 1 // #01
00c2a2: 28f4                                   |0073: goto 0067 // -000c
00c2a4: 2200 3401                              |0074: new-instance v0, Ljava/io/IOException; // type@0134
00c2a8: 1a02 7001                              |0076: const-string v2, "Duplicate song id" // string@0170
00c2ac: 7020 2006 2000                         |0078: invoke-direct {v0, v2}, Ljava/io/IOException;.<init>:(Ljava/lang/String;)V // method@0620
00c2b2: 2700                                   |007b: throw v0
00c2b4: 4d0b 0609                              |007c: aput-object v11, v6, v9
00c2b8: 1a0c e00a                              |007e: const-string v12, "title" // string@0ae0
00c2bc: 6e30 c606 ca0b                         |0080: invoke-virtual {v10, v12, v11}, Lorg/json/JSONObject;.optString:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; // method@06c6
00c2c2: 0c0c                                   |0083: move-result-object v12
00c2c4: 4d0c 0709                              |0084: aput-object v12, v7, v9
00c2c8: 1a0c cf09                              |0086: const-string v12, "sampleRate" // string@09cf
00c2cc: 140d 44ac 0000                         |0088: const v13, #float 6.17973e-41 // #0000ac44
00c2d2: 6e30 c306 ca0d                         |008b: invoke-virtual {v10, v12, v13}, Lorg/json/JSONObject;.optInt:(Ljava/lang/String;I)I // method@06c3
00c2d8: 0a0c                                   |008e: move-result v12
00c2da: 1a0e d906                              |008f: const-string v14, "durationFrames" // string@06d9
00c2de: 1a0f ef05                              |0091: const-string v15, "authoredFrames" // string@05ef
00c2e2: 6e30 c306 fa08                         |0093: invoke-virtual {v10, v15, v8}, Lorg/json/JSONObject;.optInt:(Ljava/lang/String;I)I // method@06c3
00c2e8: 0a0f                                   |0096: move-result v15
00c2ea: 6e30 c306 ea0f                         |0097: invoke-virtual {v10, v14, v15}, Lorg/json/JSONObject;.optInt:(Ljava/lang/String;I)I // method@06c3
00c2f0: 0a0e                                   |009a: move-result v14
00c2f2: 0210 0900                              |009b: move/from16 v16, v9
00c2f6: 1608 0000                              |009d: const-wide/16 v8, #int 0 // #0
00c2fa: 3c0e 1300                              |009f: if-gtz v14, 00b2 // +0013
00c2fe: 1a0e d806                              |00a1: const-string v14, "duration" // string@06d8
00c302: 6e40 c206 ea98                         |00a3: invoke-virtual {v10, v14, v8, v9}, Lorg/json/JSONObject;.optDouble:(Ljava/lang/String;D)D // method@06c2
00c308: 0b11                                   |00a6: move-result-wide v17
00c30a: 0813 0500                              |00a7: move-object/from16 v19, v5
00c30e: 83c4                                   |00a9: int-to-double v4, v12
00c310: ad11 1104                              |00aa: mul-double v17, v17, v4
00c314: 7702 4c06 1100                         |00ac: invoke-static/range {v17, v18}, Ljava/lang/Math;.round:(D)J // method@064c
00c31a: 0b04                                   |00af: move-result-wide v4
00c31c: 844e                                   |00b0: long-to-int v14, v4
00c31e: 2803                                   |00b1: goto 00b4 // +0003
00c320: 0813 0500                              |00b2: move-object/from16 v19, v5
00c324: 33dc 1501                              |00b4: if-ne v12, v13, 01c9 // +0115
00c328: 3d0e 1301                              |00b6: if-lez v14, 01c9 // +0113
00c32c: 1404 c07f a100                         |00b8: const v4, #float 1.48313e-38 // #00a17fc0
00c332: 364e 0e01                              |00bb: if-gt v14, v4, 01c9 // +010e
00c336: 1a04 7308                              |00bd: const-string v4, "mixGain" // string@0873
00c33a: 180c 9a99 9999 9999 e93f               |00bf: const-wide v12, #double 0.8 // #3fe999999999999a
00c344: 6e40 c206 4adc                         |00c4: invoke-virtual {v10, v4, v12, v13}, Lorg/json/JSONObject;.optDouble:(Ljava/lang/String;D)D // method@06c2
00c34a: 0b04                                   |00c7: move-result-wide v4
00c34c: 8c44                                   |00c8: double-to-float v4, v4
00c34e: 7110 2c06 0400                         |00c9: invoke-static {v4}, Ljava/lang/Float;.isFinite:(F)Z // method@062c
00c354: 0a05                                   |00cc: move-result v5
00c356: 3805 f400                              |00cd: if-eqz v5, 01c1 // +00f4
00c35a: 1205                                   |00cf: const/4 v5, #int 0 // #0
00c35c: 2e0c 0405                              |00d0: cmpg-float v12, v4, v5
00c360: 3d0c ef00                              |00d2: if-lez v12, 01c1 // +00ef
00c364: 150c 803f                              |00d4: const/high16 v12, #int 1065353216 // #3f80
00c368: 2d0c 040c                              |00d6: cmpl-float v12, v4, v12
00c36c: 3c0c e900                              |00d8: if-gtz v12, 01c1 // +00e9
00c370: 1a0c 4a06                              |00da: const-string v12, "chordRootMidiByBar" // string@064a
00c374: 6e20 c406 ca00                         |00dc: invoke-virtual {v10, v12}, Lorg/json/JSONObject;.optJSONArray:(Ljava/lang/String;)Lorg/json/JSONArray; // method@06c4
00c37a: 0c0c                                   |00df: move-result-object v12
00c37c: 390c 0400                              |00e0: if-nez v12, 00e4 // +0004
00c380: 120d                                   |00e2: const/4 v13, #int 0 // #0
00c382: 2805                                   |00e3: goto 00e8 // +0005
00c384: 6e10 b706 0c00                         |00e4: invoke-virtual {v12}, Lorg/json/JSONArray;.length:()I // method@06b7
00c38a: 0a0d                                   |00e7: move-result v13
00c38c: 23df 7501                              |00e8: new-array v15, v13, [I // type@0175
00c390: 1205                                   |00ea: const/4 v5, #int 0 // #0
00c392: 35d5 0b00                              |00eb: if-ge v5, v13, 00f6 // +000b
00c396: 6e20 b406 5c00                         |00ed: invoke-virtual {v12, v5}, Lorg/json/JSONArray;.getInt:(I)I // method@06b4
00c39c: 0a14                                   |00f0: move-result v20
00c39e: 4b14 0f05                              |00f1: aput v20, v15, v5
00c3a2: d805 0501                              |00f3: add-int/lit8 v5, v5, #int 1 // #01
00c3a6: 28f6                                   |00f5: goto 00eb // -000a
00c3a8: 1a05 1706                              |00f6: const-string v5, "bpm" // string@0617
00c3ac: 6e40 c206 5a98                         |00f8: invoke-virtual {v10, v5, v8, v9}, Lorg/json/JSONObject;.optDouble:(Ljava/lang/String;D)D // method@06c2
00c3b2: 0b15                                   |00fb: move-result-wide v21
00c3b4: 2205 c000                              |00fc: new-instance v5, Lcom/valentinedesigns/chromalink/HarmonyGrid; // type@00c0
00c3b8: 1a08 fe05                              |00fe: const-string v8, "beatsPerBar" // string@05fe
00c3bc: 0769                                   |0100: move-object v9, v6
00c3be: 077c                                   |0101: move-object v12, v7
00c3c0: 1906 1040                              |0102: const-wide/high16 v6, #long 4616189618054758400 // #4010
00c3c4: 6e40 c206 8a76                         |0104: invoke-virtual {v10, v8, v6, v7}, Lorg/json/JSONObject;.optDouble:(Ljava/lang/String;D)D // method@06c2
00c3ca: 0b17                                   |0107: move-result-wide v23
00c3cc: 0814 0500                              |0108: move-object/from16 v20, v5
00c3d0: 0819 0f00                              |010a: move-object/from16 v25, v15
00c3d4: 7606 a103 1400                         |010c: invoke-direct/range {v20, v21, v22, v23, v24, v25}, Lcom/valentinedesigns/chromalink/HarmonyGrid;.<init>:(DD[I)V // method@03a1
00c3da: 1a06 2009                              |010f: const-string v6, "pitchedEffects" // string@0920
00c3de: 6e20 c006 0a00                         |0111: invoke-virtual {v10, v0}, Lorg/json/JSONObject;.has:(Ljava/lang/String;)Z // method@06c0
00c3e4: 0a07                                   |0114: move-result v7
00c3e6: 3907 0700                              |0115: if-nez v7, 011c // +0007
00c3ea: 3d0d 0300                              |0117: if-lez v13, 011a // +0003
00c3ee: 2803                                   |0119: goto 011c // +0003
00c3f0: 1207                                   |011a: const/4 v7, #int 0 // #0
00c3f2: 2802                                   |011b: goto 011d // +0002
00c3f4: 1217                                   |011c: const/4 v7, #int 1 // #1
00c3f6: 6e30 c106 6a07                         |011d: invoke-virtual {v10, v6, v7}, Lorg/json/JSONObject;.optBoolean:(Ljava/lang/String;Z)Z // method@06c1
00c3fc: 0a06                                   |0120: move-result v6
00c3fe: 2207 9000                              |0121: new-instance v7, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec; // type@0090
00c402: 1a08 af0a                              |0123: const-string v8, "src" // string@0aaf
00c406: 220f 4901                              |0125: new-instance v15, Ljava/lang/StringBuilder; // type@0149
00c40a: 7010 6806 0f00                         |0127: invoke-direct {v15}, Ljava/lang/StringBuilder;.<init>:()V // method@0668
00c410: 6e20 6b06 bf00                         |012a: invoke-virtual {v15, v11}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@066b
00c416: 0c0b                                   |012d: move-result-object v11
00c418: 1a0f b400                              |012e: const-string v15, ".ogg" // string@00b4
00c41c: 6e20 6b06 fb00                         |0130: invoke-virtual {v11, v15}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@066b
00c422: 0c0b                                   |0133: move-result-object v11
00c424: 6e10 6c06 0b00                         |0134: invoke-virtual {v11}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@066c
00c42a: 0c0b                                   |0137: move-result-object v11
00c42c: 7130 f201 8a0b                         |0138: invoke-static {v10, v8, v11}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.assetName:(Lorg/json/JSONObject;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; // method@01f2
00c432: 0c18                                   |013b: move-result-object v24
00c434: 1a08 9706                              |013c: const-string v8, "dangerSrc" // string@0697
00c438: 120b                                   |013e: const/4 v11, #int 0 // #0
00c43a: 7130 f201 8a0b                         |013f: invoke-static {v10, v8, v11}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.assetName:(Lorg/json/JSONObject;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; // method@01f2
00c440: 0c19                                   |0142: move-result-object v25
00c442: 1a08 0509                              |0143: const-string v8, "panicSrc" // string@0905
00c446: 7130 f201 8a0b                         |0145: invoke-static {v10, v8, v11}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.assetName:(Lorg/json/JSONObject;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; // method@01f2
00c44c: 0c1a                                   |0148: move-result-object v26
00c44e: 1a08 f105                              |0149: const-string v8, "autoRotate" // string@05f1
00c452: 121b                                   |014b: const/4 v11, #int 1 // #1
00c454: 6e30 c106 8a0b                         |014c: invoke-virtual {v10, v8, v11}, Lorg/json/JSONObject;.optBoolean:(Ljava/lang/String;Z)Z // method@06c1
00c45a: 0a1b                                   |014f: move-result v27
00c45c: 1a08 4008                              |0150: const-string v8, "legacy" // string@0840
00c460: 120f                                   |0152: const/4 v15, #int 0 // #0
00c462: 6e30 c106 8a0f                         |0153: invoke-virtual {v10, v8, v15}, Lorg/json/JSONObject;.optBoolean:(Ljava/lang/String;Z)Z // method@06c1
00c468: 0a1d                                   |0156: move-result v29
00c46a: 0814 0700                              |0157: move-object/from16 v20, v7
00c46e: 0215 0e00                              |0159: move/from16 v21, v14
00c472: 0216 0400                              |015b: move/from16 v22, v4
00c476: 0817 0500                              |015d: move-object/from16 v23, v5
00c47a: 021c 0600                              |015f: move/from16 v28, v6
00c47e: 760a e701 1400                         |0161: invoke-direct/range {v20, v21, v22, v23, v24, v25, v26, v27, v28, v29}, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec;.<init>:(IFLcom/valentinedesigns/chromalink/HarmonyGrid;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZZ)V // method@01e7
00c484: 4d07 0210                              |0164: aput-object v7, v2, v16
00c488: 6e20 c006 0a00                         |0166: invoke-virtual {v10, v0}, Lorg/json/JSONObject;.has:(Ljava/lang/String;)Z // method@06c0
00c48e: 0a04                                   |0169: move-result v4
00c490: 3804 3800                              |016a: if-eqz v4, 01a2 // +0038
00c494: 6e20 bc06 0a00                         |016c: invoke-virtual {v10, v0}, Lorg/json/JSONObject;.getDouble:(Ljava/lang/String;)D // method@06bc
00c49a: 0b04                                   |016f: move-result-wide v4
00c49c: 7120 2806 5400                         |0170: invoke-static {v4, v5}, Ljava/lang/Double;.isFinite:(D)Z // method@0628
00c4a2: 0a07                                   |0173: move-result v7
00c4a4: 3807 2600                              |0174: if-eqz v7, 019a // +0026
00c4a8: 1907 2840                              |0176: const-wide/high16 v7, #long 4622945017495814144 // #4028
00c4ac: 300a 0407                              |0178: cmpg-double v10, v4, v7
00c4b0: 3a0a 2000                              |017a: if-ltz v10, 019a // +0020
00c4b4: 1914 5b40                              |017c: const-wide/high16 v20, #long 4637300241308057600 // #405b
00c4b8: 2f0a 0414                              |017e: cmpl-double v10, v4, v20
00c4bc: 3c0a 1a00                              |0180: if-gtz v10, 019a // +001a
00c4c0: 1814 0000 0000 0040 5140               |0182: const-wide v20, #double 69 // #4051400000000000
00c4ca: ac04 0414                              |0187: sub-double v4, v4, v20
00c4ce: ce74                                   |0189: div-double/2addr v4, v7
00c4d0: 1907 0040                              |018a: const-wide/high16 v7, #long 4611686018427387904 // #4000
00c4d4: 7140 4a06 8754                         |018c: invoke-static {v7, v8, v4, v5}, Ljava/lang/Math;.pow:(DD)D // method@064a
00c4da: 0b04                                   |018f: move-result-wide v4
00c4dc: 1807 0000 0000 0080 7b40               |0190: const-wide v7, #double 440 // #407b800000000000
00c4e6: cd74                                   |0195: mul-double/2addr v4, v7
00c4e8: 8c44                                   |0196: double-to-float v4, v4
00c4ea: 4b04 1310                              |0197: aput v4, v19, v16
00c4ee: 2809                                   |0199: goto 01a2 // +0009
00c4f0: 2200 3401                              |019a: new-instance v0, Ljava/io/IOException; // type@0134
00c4f4: 1a02 ed01                              |019c: const-string v2, "Invalid song tonic" // string@01ed
00c4f8: 7020 2006 2000                         |019e: invoke-direct {v0, v2}, Ljava/io/IOException;.<init>:(Ljava/lang/String;)V // method@0620
00c4fe: 2700                                   |01a1: throw v0
00c500: 3806 1400                              |01a2: if-eqz v6, 01b6 // +0014
00c504: 4404 1310                              |01a4: aget v4, v19, v16
00c508: 1205                                   |01a6: const/4 v5, #int 0 // #0
00c50a: 2e04 0405                              |01a7: cmpg-float v4, v4, v5
00c50e: 3c04 0d00                              |01a9: if-gtz v4, 01b6 // +000d
00c512: 380d 0300                              |01ab: if-eqz v13, 01ae // +0003
00c516: 2809                                   |01ad: goto 01b6 // +0009
00c518: 2200 3401                              |01ae: new-instance v0, Ljava/io/IOException; // type@0134
00c51c: 1a02 2604                              |01b0: const-string v2, "Pitched effects require known harmony" // string@0426
00c520: 7020 2006 2000                         |01b2: invoke-direct {v0, v2}, Ljava/io/IOException;.<init>:(Ljava/lang/String;)V // method@0620
00c526: 2700                                   |01b5: throw v0
00c528: d804 1001                              |01b6: add-int/lit8 v4, v16, #int 1 // #01
00c52c: 0796                                   |01b8: move-object v6, v9
00c52e: 07c7                                   |01b9: move-object v7, v12
00c530: 01f8                                   |01ba: move v8, v15
00c532: 0805 1300                              |01bb: move-object/from16 v5, v19
00c536: 0149                                   |01bd: move v9, v4
00c538: 01b4                                   |01be: move v4, v11
00c53a: 2900 91fe                              |01bf: goto/16 0050 // -016f
00c53e: 2200 3401                              |01c1: new-instance v0, Ljava/io/IOException; // type@0134
00c542: 1a02 eb01                              |01c3: const-string v2, "Invalid mix gain" // string@01eb
00c546: 7020 2006 2000                         |01c5: invoke-direct {v0, v2}, Ljava/io/IOException;.<init>:(Ljava/lang/String;)V // method@0620
00c54c: 2700                                   |01c8: throw v0
00c54e: 2200 3401                              |01c9: new-instance v0, Ljava/io/IOException; // type@0134
00c552: 1a02 ec04                              |01cb: const-string v2, "Unsupported authored loop" // string@04ec
00c556: 7020 2006 2000                         |01cd: invoke-direct {v0, v2}, Ljava/io/IOException;.<init>:(Ljava/lang/String;)V // method@0620
00c55c: 2700                                   |01d0: throw v0
00c55e: 2200 3401                              |01d1: new-instance v0, Ljava/io/IOException; // type@0134
00c562: 1a02 c803                              |01d3: const-string v2, "Missing song id" // string@03c8
00c566: 7020 2006 2000                         |01d5: invoke-direct {v0, v2}, Ljava/io/IOException;.<init>:(Ljava/lang/String;)V // method@0620
00c56c: 2700                                   |01d8: throw v0
00c56e: 0813 0500                              |01d9: move-object/from16 v19, v5
00c572: 0769                                   |01db: move-object v9, v6
00c574: 077c                                   |01dc: move-object v12, v7
00c576: 0800 1300                              |01dd: move-object/from16 v0, v19
00c57a: 5b10 6900                              |01df: iput-object v0, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.roots:[F // field@0069
00c57e: 6909 4c00                              |01e1: sput-object v9, Lcom/valentinedesigns/chromalink/ArcadeAudio;.TRACK_IDS:[Ljava/lang/String; // field@004c
00c582: 690c 4d00                              |01e3: sput-object v12, Lcom/valentinedesigns/chromalink/ArcadeAudio;.TRACK_NAMES:[Ljava/lang/String; // field@004d
00c586: 1102                                   |01e5: return-object v2
00c588: 2200 3401                              |01e6: new-instance v0, Ljava/io/IOException; // type@0134
00c58c: 1a02 ed04                              |01e8: const-string v2, "Unsupported music catalog size" // string@04ed
00c590: 7020 2006 2000                         |01ea: invoke-direct {v0, v2}, Ljava/io/IOException;.<init>:(Ljava/lang/String;)V // method@0620
00c596: 2700                                   |01ed: throw v0
00c598: 0d00                                   |01ee: move-exception v0
00c59a: 2802                                   |01ef: goto 01f1 // +0002
00c59c: 0d00                                   |01f0: move-exception v0
00c59e: 2202 3401                              |01f1: new-instance v2, Ljava/io/IOException; // type@0134
00c5a2: 1a03 ee01                              |01f3: const-string v3, "Invalid track metadata" // string@01ee
00c5a6: 7030 2106 3200                         |01f5: invoke-direct {v2, v3, v0}, Ljava/io/IOException;.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V // method@0621
00c5ac: 2702                                   |01f8: throw v2
      catches       : 1
        0x0004 - 0x01ee
          Lorg/json/JSONException; -> 0x01f0
          Ljava/lang/IllegalArgumentException; -> 0x01ee
      positions     :
        0x0000 line=247
        0x000a line=248
        0x0027 line=249
        0x0036 line=250
        0x0042 line=251
        0x004e line=252
        0x0056 line=253
        0x0060 line=254
        0x0066 line=255
        0x007c line=256
        0x0086 line=257
        0x008f line=258
        0x009b line=259
        0x00b4 line=260
        0x00bd line=261
        0x00c9 line=262
        0x00da line=263
        0x00e0 line=264
        0x00ea line=265
        0x00f6 line=266
        0x00fc line=267
        0x010f line=268
        0x0121 line=269
        0x013e line=270
        0x014b line=271
        0x0166 line=272
        0x016c line=273
        0x0170 line=274
        0x0182 line=275
        0x019a line=274
        0x01a2 line=277
        0x01b6 line=252
        0x01c1 line=262
        0x01c9 line=260
        0x01d1 line=254
        0x01d9 line=279
        0x01e6 line=249
        0x01ee line=280
      locals        :
        0x0000 - 0x01f9 reg=30 this Lcom/valentinedesigns/chromalink/ArcadeAudio;

    #17              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'requestTrack'
      type          : '(IZ)V'
      access        : 0x20002 (PRIVATE DECLARED_SYNCHRONIZED)
      code          -
      registers     : 10
      ins           : 3
      outs          : 6
      insns size    : 172 16-bit code units
00e678:                                        |[00e678] com.valentinedesigns.chromalink.ArcadeAudio.requestTrack:(IZ)V
00e688: 1d07                                   |0000: monitor-enter v7
00e68a: 5470 6300                              |0001: iget-object v0, v7, Lcom/valentinedesigns/chromalink/ArcadeAudio;.playingBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0063
00e68e: 3809 1800                              |0003: if-eqz v9, 001b // +0018
00e692: 3800 1400                              |0005: if-eqz v0, 0019 // +0014
00e696: 5571 6a00                              |0007: iget-boolean v1, v7, Lcom/valentinedesigns/chromalink/ArcadeAudio;.rotateTracks:Z // field@006a
00e69a: 5572 5100                              |0009: iget-boolean v2, v7, Lcom/valentinedesigns/chromalink/ArcadeAudio;.automaticChangeAllowed:Z // field@0051
00e69e: 5273 6c00                              |000b: iget v3, v7, Lcom/valentinedesigns/chromalink/ArcadeAudio;.selectedIndex:I // field@006c
00e6a2: 5274 6d00                              |000d: iget v4, v7, Lcom/valentinedesigns/chromalink/ArcadeAudio;.selectionVersion:I // field@006d
00e6a6: 5205 2f00                              |000f: iget v5, v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.index:I // field@002f
00e6aa: 5206 3200                              |0011: iget v6, v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.version:I // field@0032
00e6ae: 7706 6405 0100                         |0013: invoke-static/range {v1, v2, v3, v4, v5, v6}, Lcom/valentinedesigns/chromalink/MusicFade;.canAutoSelect:(ZZIIII)Z // method@0564
00e6b4: 0a01                                   |0016: move-result v1
00e6b6: 3901 0400                              |0017: if-nez v1, 001b // +0004
00e6ba: 1e07                                   |0019: monitor-exit v7
00e6bc: 0e00                                   |001a: return-void
00e6be: 5471 7000                              |001b: iget-object v1, v7, Lcom/valentinedesigns/chromalink/ArcadeAudio;.trackSpecs:[Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec; // field@0070
00e6c2: 2111                                   |001d: array-length v1, v1
00e6c4: 7120 7205 1800                         |001e: invoke-static {v8, v1}, Lcom/valentinedesigns/chromalink/MusicFade;.validIndex:(II)I // method@0572
00e6ca: 0a08                                   |0021: move-result v8
00e6cc: 5271 6c00                              |0022: iget v1, v7, Lcom/valentinedesigns/chromalink/ArcadeAudio;.selectedIndex:I // field@006c
00e6d0: 1202                                   |0024: const/4 v2, #int 0 // #0
00e6d2: 3381 0800                              |0025: if-ne v1, v8, 002d // +0008
00e6d6: 3909 0400                              |0027: if-nez v9, 002b // +0004
00e6da: 5c72 5200                              |0029: iput-boolean v2, v7, Lcom/valentinedesigns/chromalink/ArcadeAudio;.automaticRequest:Z // field@0052
00e6de: 1e07                                   |002b: monitor-exit v7
00e6e0: 0e00                                   |002c: return-void
00e6e2: 5c79 5200                              |002d: iput-boolean v9, v7, Lcom/valentinedesigns/chromalink/ArcadeAudio;.automaticRequest:Z // field@0052
00e6e6: 5978 6c00                              |002f: iput v8, v7, Lcom/valentinedesigns/chromalink/ArcadeAudio;.selectedIndex:I // field@006c
00e6ea: 5279 6d00                              |0031: iget v9, v7, Lcom/valentinedesigns/chromalink/ArcadeAudio;.selectionVersion:I // field@006d
00e6ee: d809 0901                              |0033: add-int/lit8 v9, v9, #int 1 // #01
00e6f2: 5979 6d00                              |0035: iput v9, v7, Lcom/valentinedesigns/chromalink/ArcadeAudio;.selectionVersion:I // field@006d
00e6f6: 5279 5500                              |0037: iget v9, v7, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decodeGeneration:I // field@0055
00e6fa: d809 0901                              |0039: add-int/lit8 v9, v9, #int 1 // #01
00e6fe: 5979 5500                              |003b: iput v9, v7, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decodeGeneration:I // field@0055
00e702: 5479 6400                              |003d: iget-object v9, v7, Lcom/valentinedesigns/chromalink/ArcadeAudio;.prefetchedBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0064
00e706: 1201                                   |003f: const/4 v1, #int 0 // #0
00e708: 3809 0800                              |0040: if-eqz v9, 0048 // +0008
00e70c: 5293 2f00                              |0042: iget v3, v9, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.index:I // field@002f
00e710: 3283 0400                              |0044: if-eq v3, v8, 0048 // +0004
00e714: 5b71 6400                              |0046: iput-object v1, v7, Lcom/valentinedesigns/chromalink/ArcadeAudio;.prefetchedBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0064
00e718: 3800 0f00                              |0048: if-eqz v0, 0057 // +000f
00e71c: 5203 2f00                              |004a: iget v3, v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.index:I // field@002f
00e720: 3383 0b00                              |004c: if-ne v3, v8, 0057 // +000b
00e724: 5279 6d00                              |004e: iget v9, v7, Lcom/valentinedesigns/chromalink/ArcadeAudio;.selectionVersion:I // field@006d
00e728: 6e20 e601 9000                         |0050: invoke-virtual {v0, v9}, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.versioned:(I)Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // method@01e6
00e72e: 0c09                                   |0053: move-result-object v9
00e730: 5b79 6b00                              |0054: iput-object v9, v7, Lcom/valentinedesigns/chromalink/ArcadeAudio;.selectedBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@006b
00e734: 2827                                   |0056: goto 007d // +0027
00e736: 3809 0f00                              |0057: if-eqz v9, 0066 // +000f
00e73a: 5290 2f00                              |0059: iget v0, v9, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.index:I // field@002f
00e73e: 3380 0b00                              |005b: if-ne v0, v8, 0066 // +000b
00e742: 5270 6d00                              |005d: iget v0, v7, Lcom/valentinedesigns/chromalink/ArcadeAudio;.selectionVersion:I // field@006d
00e746: 6e20 e601 0900                         |005f: invoke-virtual {v9, v0}, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.versioned:(I)Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // method@01e6
00e74c: 0c09                                   |0062: move-result-object v9
00e74e: 5b79 6b00                              |0063: iput-object v9, v7, Lcom/valentinedesigns/chromalink/ArcadeAudio;.selectedBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@006b
00e752: 2818                                   |0065: goto 007d // +0018
00e754: 5479 6600                              |0066: iget-object v9, v7, Lcom/valentinedesigns/chromalink/ArcadeAudio;.previousBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0066
00e758: 3809 1300                              |0068: if-eqz v9, 007b // +0013
00e75c: 5479 6600                              |006a: iget-object v9, v7, Lcom/valentinedesigns/chromalink/ArcadeAudio;.previousBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0066
00e760: 5299 2f00                              |006c: iget v9, v9, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.index:I // field@002f
00e764: 3389 0d00                              |006e: if-ne v9, v8, 007b // +000d
00e768: 5479 6600                              |0070: iget-object v9, v7, Lcom/valentinedesigns/chromalink/ArcadeAudio;.previousBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0066
00e76c: 5270 6d00                              |0072: iget v0, v7, Lcom/valentinedesigns/chromalink/ArcadeAudio;.selectionVersion:I // field@006d
00e770: 6e20 e601 0900                         |0074: invoke-virtual {v9, v0}, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.versioned:(I)Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // method@01e6
00e776: 0c09                                   |0077: move-result-object v9
00e778: 5b79 6b00                              |0078: iput-object v9, v7, Lcom/valentinedesigns/chromalink/ArcadeAudio;.selectedBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@006b
00e77c: 2803                                   |007a: goto 007d // +0003
00e77e: 5b71 6b00                              |007b: iput-object v1, v7, Lcom/valentinedesigns/chromalink/ArcadeAudio;.selectedBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@006b
00e782: 5c72 5b00                              |007d: iput-boolean v2, v7, Lcom/valentinedesigns/chromalink/ArcadeAudio;.loss:Z // field@005b
00e786: 6209 4d00                              |007f: sget-object v9, Lcom/valentinedesigns/chromalink/ArcadeAudio;.TRACK_NAMES:[Ljava/lang/String; // field@004d
00e78a: 4608 0908                              |0081: aget-object v8, v9, v8
00e78e: 2209 4901                              |0083: new-instance v9, Ljava/lang/StringBuilder; // type@0149
00e792: 7010 6806 0900                         |0085: invoke-direct {v9}, Ljava/lang/StringBuilder;.<init>:()V // method@0668
00e798: 1a00 a103                              |0088: const-string v0, "Loading " // string@03a1
00e79c: 6e20 6b06 0900                         |008a: invoke-virtual {v9, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@066b
00e7a2: 0c09                                   |008d: move-result-object v9
00e7a4: 6e20 6b06 8900                         |008e: invoke-virtual {v9, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@066b
00e7aa: 0c08                                   |0091: move-result-object v8
00e7ac: 6e10 6c06 0800                         |0092: invoke-virtual {v8}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@066c
00e7b2: 0c08                                   |0095: move-result-object v8
00e7b4: 5b78 6e00                              |0096: iput-object v8, v7, Lcom/valentinedesigns/chromalink/ArcadeAudio;.state:Ljava/lang/String; // field@006e
00e7b8: 5478 5600                              |0098: iget-object v8, v7, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decodeSignal:Ljava/lang/Object; // field@0056
00e7bc: 1d08                                   |009a: monitor-enter v8
00e7be: 5479 5600                              |009b: iget-object v9, v7, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decodeSignal:Ljava/lang/Object; // field@0056
00e7c2: 6e10 5106 0900                         |009d: invoke-virtual {v9}, Ljava/lang/Object;.notifyAll:()V // method@0651
00e7c8: 1e08                                   |00a0: monitor-exit v8
00e7ca: 7010 1a02 0700                         |00a1: invoke-direct {v7}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.wakePlayback:()V // method@021a
00e7d0: 1e07                                   |00a4: monitor-exit v7
00e7d2: 0e00                                   |00a5: return-void
00e7d4: 0d09                                   |00a6: move-exception v9
00e7d6: 1e08                                   |00a7: monitor-exit v8
00e7d8: 2709                                   |00a8: throw v9
00e7da: 0d08                                   |00a9: move-exception v8
00e7dc: 1e07                                   |00aa: monitor-exit v7
00e7de: 2708                                   |00ab: throw v8
      catches       : 7
        0x0001 - 0x0017
          <any> -> 0x00a9
        0x001b - 0x002b
          <any> -> 0x00a9
        0x002d - 0x009b
          <any> -> 0x00a9
        0x009b - 0x00a1
          <any> -> 0x00a6
        0x00a1 - 0x00a4
          <any> -> 0x00a9
        0x00a7 - 0x00a8
          <any> -> 0x00a6
        0x00a8 - 0x00a9
          <any> -> 0x00a9
      positions     :
        0x0001 line=105
        0x0003 line=106
        0x0019 line=108
        0x001b line=109
        0x0022 line=110
        0x002d line=111
        0x002f line=112
        0x003d line=113
        0x003f line=114
        0x0048 line=115
        0x0057 line=116
        0x0066 line=117
        0x007b line=118
        0x007d line=119
        0x0098 line=120
        0x00a4 line=121
        0x00a6 line=120
        0x00a9 line=104
      locals        :
        0x0000 - 0x00ac reg=7 this Lcom/valentinedesigns/chromalink/ArcadeAudio;
        0x0000 - 0x00ac reg=8 (null) I
        0x0000 - 0x00ac reg=9 (null) Z

    #18              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'smooth'
      type          : '(F)F'
      access        : 0x000a (PRIVATE STATIC)
      code          -
      registers     : 3
      ins           : 1
      outs          : 1
      insns size    : 14 16-bit code units
00c5c4:                                        |[00c5c4] com.valentinedesigns.chromalink.ArcadeAudio.smooth:(F)F
00c5d4: 7110 1702 0200                         |0000: invoke-static {v2}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.unit:(F)F // method@0217
00c5da: 0a02                                   |0003: move-result v2
00c5dc: a800 0202                              |0004: mul-float v0, v2, v2
00c5e0: 1501 0040                              |0006: const/high16 v1, #int 1073741824 // #4000
00c5e4: c812                                   |0008: mul-float/2addr v2, v1
00c5e6: 1501 4040                              |0009: const/high16 v1, #int 1077936128 // #4040
00c5ea: c721                                   |000b: sub-float/2addr v1, v2
00c5ec: c810                                   |000c: mul-float/2addr v0, v1
00c5ee: 0f00                                   |000d: return v0
      catches       : (none)
      positions     :
        0x0000 line=584
      locals        :
        0x0000 - 0x000e reg=2 (null) F

    #19              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'unit'
      type          : '(F)F'
      access        : 0x000a (PRIVATE STATIC)
      code          -
      registers     : 3
      ins           : 1
      outs          : 2
      insns size    : 20 16-bit code units
00c5f0:                                        |[00c5f0] com.valentinedesigns.chromalink.ArcadeAudio.unit:(F)F
00c600: 7110 2c06 0200                         |0000: invoke-static {v2}, Ljava/lang/Float;.isFinite:(F)Z // method@062c
00c606: 0a00                                   |0003: move-result v0
00c608: 1201                                   |0004: const/4 v1, #int 0 // #0
00c60a: 3800 0300                              |0005: if-eqz v0, 0008 // +0003
00c60e: 2802                                   |0007: goto 0009 // +0002
00c610: 0112                                   |0008: move v2, v1
00c612: 1500 803f                              |0009: const/high16 v0, #int 1065353216 // #3f80
00c616: 7120 4706 2000                         |000b: invoke-static {v0, v2}, Ljava/lang/Math;.min:(FF)F // method@0647
00c61c: 0a02                                   |000e: move-result v2
00c61e: 7120 4306 2100                         |000f: invoke-static {v1, v2}, Ljava/lang/Math;.max:(FF)F // method@0643
00c624: 0a02                                   |0012: move-result v2
00c626: 0f02                                   |0013: return v2
      catches       : (none)
      positions     :
        0x0000 line=166
      locals        :
        0x0000 - 0x0014 reg=2 (null) F

    #20              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'waitForDecodeRetry'
      type          : '(J)V'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 5
      ins           : 3
      outs          : 3
      insns size    : 19 16-bit code units
00ea70:                                        |[00ea70] com.valentinedesigns.chromalink.ArcadeAudio.waitForDecodeRetry:(J)V
00ea80: 5420 5600                              |0000: iget-object v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decodeSignal:Ljava/lang/Object; // field@0056
00ea84: 1d00                                   |0002: monitor-enter v0
00ea86: 5521 6700                              |0003: iget-boolean v1, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.released:Z // field@0067
00ea8a: 3901 0900                              |0005: if-nez v1, 000e // +0009
00ea8e: 5421 5600                              |0007: iget-object v1, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decodeSignal:Ljava/lang/Object; // field@0056
00ea92: 6e30 5306 3104                         |0009: invoke-virtual {v1, v3, v4}, Ljava/lang/Object;.wait:(J)V // method@0653
00ea98: 2802                                   |000c: goto 000e // +0002
00ea9a: 0d03                                   |000d: move-exception v3
00ea9c: 1e00                                   |000e: monitor-exit v0
00ea9e: 0e00                                   |000f: return-void
00eaa0: 0d03                                   |0010: move-exception v3
00eaa2: 1e00                                   |0011: monitor-exit v0
00eaa4: 2703                                   |0012: throw v3
      catches       : 3
        0x0003 - 0x0005
          <any> -> 0x0010
        0x0007 - 0x000c
          Ljava/lang/InterruptedException; -> 0x000d
          <any> -> 0x0010
        0x000e - 0x0012
          <any> -> 0x0010
      positions     :
        0x0000 line=232
        0x000f line=233
        0x0010 line=232
      locals        :
        0x0000 - 0x0013 reg=2 this Lcom/valentinedesigns/chromalink/ArcadeAudio;
        0x0000 - 0x0013 reg=3 (null) J

    #21              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'waitForPlayback'
      type          : '(J)V'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 5
      ins           : 3
      outs          : 3
      insns size    : 19 16-bit code units
00eac8:                                        |[00eac8] com.valentinedesigns.chromalink.ArcadeAudio.waitForPlayback:(J)V
00ead8: 5420 6200                              |0000: iget-object v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.playbackSignal:Ljava/lang/Object; // field@0062
00eadc: 1d00                                   |0002: monitor-enter v0
00eade: 5521 6700                              |0003: iget-boolean v1, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.released:Z // field@0067
00eae2: 3901 0900                              |0005: if-nez v1, 000e // +0009
00eae6: 5421 6200                              |0007: iget-object v1, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.playbackSignal:Ljava/lang/Object; // field@0062
00eaea: 6e30 5306 3104                         |0009: invoke-virtual {v1, v3, v4}, Ljava/lang/Object;.wait:(J)V // method@0653
00eaf0: 2802                                   |000c: goto 000e // +0002
00eaf2: 0d03                                   |000d: move-exception v3
00eaf4: 1e00                                   |000e: monitor-exit v0
00eaf6: 0e00                                   |000f: return-void
00eaf8: 0d03                                   |0010: move-exception v3
00eafa: 1e00                                   |0011: monitor-exit v0
00eafc: 2703                                   |0012: throw v3
      catches       : 3
        0x0003 - 0x0005
          <any> -> 0x0010
        0x0007 - 0x000c
          Ljava/lang/InterruptedException; -> 0x000d
          <any> -> 0x0010
        0x000e - 0x0012
          <any> -> 0x0010
      positions     :
        0x0000 line=564
        0x000f line=565
        0x0010 line=564
      locals        :
        0x0000 - 0x0013 reg=2 this Lcom/valentinedesigns/chromalink/ArcadeAudio;
        0x0000 - 0x0013 reg=3 (null) J

    #22              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'wakePlayback'
      type          : '()V'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 3
      ins           : 1
      outs          : 1
      insns size    : 13 16-bit code units
00eb20:                                        |[00eb20] com.valentinedesigns.chromalink.ArcadeAudio.wakePlayback:()V
00eb30: 5420 6200                              |0000: iget-object v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.playbackSignal:Ljava/lang/Object; // field@0062
00eb34: 1d00                                   |0002: monitor-enter v0
00eb36: 5421 6200                              |0003: iget-object v1, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.playbackSignal:Ljava/lang/Object; // field@0062
00eb3a: 6e10 5106 0100                         |0005: invoke-virtual {v1}, Ljava/lang/Object;.notifyAll:()V // method@0651
00eb40: 1e00                                   |0008: monitor-exit v0
00eb42: 0e00                                   |0009: return-void
00eb44: 0d01                                   |000a: move-exception v1
00eb46: 1e00                                   |000b: monitor-exit v0
00eb48: 2701                                   |000c: throw v1
      catches       : 1
        0x0003 - 0x000c
          <any> -> 0x000a
      positions     :
        0x0000 line=165
      locals        :
        0x0000 - 0x000d reg=2 this Lcom/valentinedesigns/chromalink/ArcadeAudio;

  Virtual methods   -
    #0              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'activeTrackIndices'
      type          : '()[I'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 2
      ins           : 1
      outs          : 2
      insns size    : 6 16-bit code units
00c690:                                        |[00c690] com.valentinedesigns.chromalink.ArcadeAudio.activeTrackIndices:()[I
00c6a0: 1200                                   |0000: const/4 v0, #int 0 // #0
00c6a2: 7020 fa01 0100                         |0001: invoke-direct {v1, v0}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.indicesForLegacy:(Z)[I // method@01fa
00c6a8: 0c00                                   |0004: move-result-object v0
00c6aa: 1100                                   |0005: return-object v0
      catches       : (none)
      positions     :
        0x0000 line=85
      locals        :
        0x0000 - 0x0006 reg=1 this Lcom/valentinedesigns/chromalink/ArcadeAudio;

    #1              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'currentTrack'
      type          : '()I'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 2
      ins           : 1
      outs          : 0
      insns size    : 3 16-bit code units
00c628:                                        |[00c628] com.valentinedesigns.chromalink.ArcadeAudio.currentTrack:()I
00c638: 5210 5400                              |0000: iget v0, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.currentIndex:I // field@0054
00c63c: 0f00                                   |0002: return v0
      catches       : (none)
      positions     :
        0x0000 line=134
      locals        :
        0x0000 - 0x0003 reg=1 this Lcom/valentinedesigns/chromalink/ArcadeAudio;

    #2              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'fx'
      type          : '(Ljava/lang/String;I)V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 8
      ins           : 3
      outs          : 4
      insns size    : 68 16-bit code units
00cf20:                                        |[00cf20] com.valentinedesigns.chromalink.ArcadeAudio.fx:(Ljava/lang/String;I)V
00cf30: 5550 6700                              |0000: iget-boolean v0, v5, Lcom/valentinedesigns/chromalink/ArcadeAudio;.released:Z // field@0067
00cf34: 3900 4100                              |0002: if-nez v0, 0043 // +0041
00cf38: 5550 5900                              |0004: iget-boolean v0, v5, Lcom/valentinedesigns/chromalink/ArcadeAudio;.effectsEnabled:Z // field@0059
00cf3c: 3800 3d00                              |0006: if-eqz v0, 0043 // +003d
00cf40: 5550 5d00                              |0008: iget-boolean v0, v5, Lcom/valentinedesigns/chromalink/ArcadeAudio;.masterMuted:Z // field@005d
00cf44: 3900 3900                              |000a: if-nez v0, 0043 // +0039
00cf48: 5550 6f00                              |000c: iget-boolean v0, v5, Lcom/valentinedesigns/chromalink/ArcadeAudio;.suspended:Z // field@006f
00cf4c: 3900 3500                              |000e: if-nez v0, 0043 // +0035
00cf50: 3906 0300                              |0010: if-nez v6, 0013 // +0003
00cf54: 2831                                   |0012: goto 0043 // +0031
00cf56: 5450 4f00                              |0013: iget-object v0, v5, Lcom/valentinedesigns/chromalink/ArcadeAudio;.audibleBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@004f
00cf5a: 3800 1500                              |0015: if-eqz v0, 002a // +0015
00cf5e: 5501 3100                              |0017: iget-boolean v1, v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.pitchedEffects:Z // field@0031
00cf62: 3801 1100                              |0019: if-eqz v1, 002a // +0011
00cf66: 5401 2e00                              |001b: iget-object v1, v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.harmony:Lcom/valentinedesigns/chromalink/HarmonyGrid; // field@002e
00cf6a: 5352 5000                              |001d: iget-wide v2, v5, Lcom/valentinedesigns/chromalink/ArcadeAudio;.audibleSongFrame:J // field@0050
00cf6e: 5454 6900                              |001f: iget-object v4, v5, Lcom/valentinedesigns/chromalink/ArcadeAudio;.roots:[F // field@0069
00cf72: 5200 2f00                              |0021: iget v0, v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.index:I // field@002f
00cf76: 4400 0400                              |0023: aget v0, v4, v0
00cf7a: 6e40 a403 2103                         |0025: invoke-virtual {v1, v2, v3, v0}, Lcom/valentinedesigns/chromalink/HarmonyGrid;.rootAt:(JF)F // method@03a4
00cf80: 0a00                                   |0028: move-result v0
00cf82: 2802                                   |0029: goto 002b // +0002
00cf84: 1200                                   |002a: const/4 v0, #int 0 // #0
00cf86: 5451 5800                              |002b: iget-object v1, v5, Lcom/valentinedesigns/chromalink/ArcadeAudio;.effects:Ljava/util/concurrent/ConcurrentLinkedQueue; // field@0058
00cf8a: 6e10 aa06 0100                         |002d: invoke-virtual {v1}, Ljava/util/concurrent/ConcurrentLinkedQueue;.size:()I // method@06aa
00cf90: 0a01                                   |0030: move-result v1
00cf92: 1302 1000                              |0031: const/16 v2, #int 16 // #10
00cf96: 3521 0f00                              |0033: if-ge v1, v2, 0042 // +000f
00cf9a: 5451 5800                              |0035: iget-object v1, v5, Lcom/valentinedesigns/chromalink/ArcadeAudio;.effects:Ljava/util/concurrent/ConcurrentLinkedQueue; // field@0058
00cf9e: 2202 8d00                              |0037: new-instance v2, Lcom/valentinedesigns/chromalink/ArcadeAudio$EffectRequest; // type@008d
00cfa2: 7040 e201 6207                         |0039: invoke-direct {v2, v6, v7, v0}, Lcom/valentinedesigns/chromalink/ArcadeAudio$EffectRequest;.<init>:(Ljava/lang/String;IF)V // method@01e2
00cfa8: 6e20 a806 2100                         |003c: invoke-virtual {v1, v2}, Ljava/util/concurrent/ConcurrentLinkedQueue;.offer:(Ljava/lang/Object;)Z // method@06a8
00cfae: 7010 1a02 0500                         |003f: invoke-direct {v5}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.wakePlayback:()V // method@021a
00cfb4: 0e00                                   |0042: return-void
00cfb6: 0e00                                   |0043: return-void
      catches       : (none)
      positions     :
        0x0000 line=150
        0x0013 line=151
        0x0015 line=152
        0x002a line=153
        0x0035 line=154
        0x003f line=157
        0x0042 line=159
        0x0043 line=150
      locals        :
        0x0000 - 0x0044 reg=5 this Lcom/valentinedesigns/chromalink/ArcadeAudio;
        0x0000 - 0x0044 reg=6 (null) Ljava/lang/String;
        0x0000 - 0x0044 reg=7 (null) I

    #3              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'initialTrack'
      type          : '(IZI)I'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 6
      ins           : 4
      outs          : 5
      insns size    : 8 16-bit code units
00c640:                                        |[00c640] com.valentinedesigns.chromalink.ArcadeAudio.initialTrack:(IZI)I
00c650: 5420 5300                              |0000: iget-object v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.automaticTracks:[Z // field@0053
00c654: 1241                                   |0002: const/4 v1, #int 4 // #4
00c656: 7151 6d05 4305                         |0003: invoke-static {v3, v4, v5, v0, v1}, Lcom/valentinedesigns/chromalink/MusicFade;.initialTrackForPolicy:(IZI[ZI)I // method@056d
00c65c: 0a03                                   |0006: move-result v3
00c65e: 0f03                                   |0007: return v3
      catches       : (none)
      positions     :
        0x0000 line=83
      locals        :
        0x0000 - 0x0008 reg=2 this Lcom/valentinedesigns/chromalink/ArcadeAudio;
        0x0000 - 0x0008 reg=3 (null) I
        0x0000 - 0x0008 reg=4 (null) Z
        0x0000 - 0x0008 reg=5 (null) I

    #4              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'isLegacyTrack'
      type          : '(I)Z'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 3
      ins           : 2
      outs          : 0
      insns size    : 19 16-bit code units
00bb98:                                        |[00bb98] com.valentinedesigns.chromalink.ArcadeAudio.isLegacyTrack:(I)Z
00bba8: 3a02 1100                              |0000: if-ltz v2, 0011 // +0011
00bbac: 5410 7000                              |0002: iget-object v0, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.trackSpecs:[Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec; // field@0070
00bbb0: 2100                                   |0004: array-length v0, v0
00bbb2: 3502 0c00                              |0005: if-ge v2, v0, 0011 // +000c
00bbb6: 5410 7000                              |0007: iget-object v0, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.trackSpecs:[Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec; // field@0070
00bbba: 4602 0002                              |0009: aget-object v2, v0, v2
00bbbe: 5522 3800                              |000b: iget-boolean v2, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec;.legacy:Z // field@0038
00bbc2: 3802 0400                              |000d: if-eqz v2, 0011 // +0004
00bbc6: 1212                                   |000f: const/4 v2, #int 1 // #1
00bbc8: 2802                                   |0010: goto 0012 // +0002
00bbca: 1202                                   |0011: const/4 v2, #int 0 // #0
00bbcc: 0f02                                   |0012: return v2
      catches       : (none)
      positions     :
        0x0000 line=84
      locals        :
        0x0000 - 0x0013 reg=1 this Lcom/valentinedesigns/chromalink/ArcadeAudio;
        0x0000 - 0x0013 reg=2 (null) I

    #5              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'legacyTrackIndices'
      type          : '()[I'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 2
      ins           : 1
      outs          : 2
      insns size    : 6 16-bit code units
00c714:                                        |[00c714] com.valentinedesigns.chromalink.ArcadeAudio.legacyTrackIndices:()[I
00c724: 1210                                   |0000: const/4 v0, #int 1 // #1
00c726: 7020 fa01 0100                         |0001: invoke-direct {v1, v0}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.indicesForLegacy:(Z)[I // method@01fa
00c72c: 0c00                                   |0004: move-result-object v0
00c72e: 1100                                   |0005: return-object v0
      catches       : (none)
      positions     :
        0x0000 line=86
      locals        :
        0x0000 - 0x0006 reg=1 this Lcom/valentinedesigns/chromalink/ArcadeAudio;

    #6              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'playLoss'
      type          : '()V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 2
      ins           : 1
      outs          : 1
      insns size    : 17 16-bit code units
00e5b4:                                        |[00e5b4] com.valentinedesigns.chromalink.ArcadeAudio.playLoss:()V
00e5c4: 5510 5b00                              |0000: iget-boolean v0, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.loss:Z // field@005b
00e5c8: 3800 0300                              |0002: if-eqz v0, 0005 // +0003
00e5cc: 0e00                                   |0004: return-void
00e5ce: 1210                                   |0005: const/4 v0, #int 1 // #1
00e5d0: 5c10 5b00                              |0006: iput-boolean v0, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.loss:Z // field@005b
00e5d4: 5410 5800                              |0008: iget-object v0, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.effects:Ljava/util/concurrent/ConcurrentLinkedQueue; // field@0058
00e5d8: 6e10 a606 0000                         |000a: invoke-virtual {v0}, Ljava/util/concurrent/ConcurrentLinkedQueue;.clear:()V // method@06a6
00e5de: 7010 1a02 0100                         |000d: invoke-direct {v1}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.wakePlayback:()V // method@021a
00e5e4: 0e00                                   |0010: return-void
      catches       : (none)
      positions     :
        0x0000 line=144
      locals        :
        0x0000 - 0x0011 reg=1 this Lcom/valentinedesigns/chromalink/ArcadeAudio;

    #7              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'release'
      type          : '()V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 3
      ins           : 1
      outs          : 1
      insns size    : 54 16-bit code units
00e5e8:                                        |[00e5e8] com.valentinedesigns.chromalink.ArcadeAudio.release:()V
00e5f8: 5520 6700                              |0000: iget-boolean v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.released:Z // field@0067
00e5fc: 3800 0300                              |0002: if-eqz v0, 0005 // +0003
00e600: 0e00                                   |0004: return-void
00e602: 1210                                   |0005: const/4 v0, #int 1 // #1
00e604: 5c20 6700                              |0006: iput-boolean v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.released:Z // field@0067
00e608: 1200                                   |0008: const/4 v0, #int 0 // #0
00e60a: 5b20 4f00                              |0009: iput-object v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.audibleBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@004f
00e60e: 5b20 6600                              |000b: iput-object v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.previousBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0066
00e612: 5b20 6400                              |000d: iput-object v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.prefetchedBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0064
00e616: 5b20 6300                              |000f: iput-object v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.playingBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0063
00e61a: 5b20 6b00                              |0011: iput-object v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.selectedBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@006b
00e61e: 5b20 5c00                              |0013: iput-object v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.lossCue:Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm; // field@005c
00e622: 5b20 6800                              |0015: iput-object v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.retryLoop:Lcom/valentinedesigns/chromalink/ArcadeAudio$Pcm; // field@0068
00e626: 5420 5800                              |0017: iget-object v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.effects:Ljava/util/concurrent/ConcurrentLinkedQueue; // field@0058
00e62a: 6e10 a606 0000                         |0019: invoke-virtual {v0}, Ljava/util/concurrent/ConcurrentLinkedQueue;.clear:()V // method@06a6
00e630: 5420 5600                              |001c: iget-object v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decodeSignal:Ljava/lang/Object; // field@0056
00e634: 1d00                                   |001e: monitor-enter v0
00e636: 5421 5600                              |001f: iget-object v1, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decodeSignal:Ljava/lang/Object; // field@0056
00e63a: 6e10 5106 0100                         |0021: invoke-virtual {v1}, Ljava/lang/Object;.notifyAll:()V // method@0651
00e640: 1e00                                   |0024: monitor-exit v0
00e642: 7010 1a02 0200                         |0025: invoke-direct {v2}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.wakePlayback:()V // method@021a
00e648: 5420 5700                              |0028: iget-object v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decoderThread:Ljava/lang/Thread; // field@0057
00e64c: 6e10 6f06 0000                         |002a: invoke-virtual {v0}, Ljava/lang/Thread;.interrupt:()V // method@066f
00e652: 5420 5e00                              |002d: iget-object v0, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio;.mixerThread:Ljava/lang/Thread; // field@005e
00e656: 6e10 6f06 0000                         |002f: invoke-virtual {v0}, Ljava/lang/Thread;.interrupt:()V // method@066f
00e65c: 0e00                                   |0032: return-void
00e65e: 0d01                                   |0033: move-exception v1
00e660: 1e00                                   |0034: monitor-exit v0
00e662: 2701                                   |0035: throw v1
      catches       : 2
        0x001f - 0x0025
          <any> -> 0x0033
        0x0034 - 0x0035
          <any> -> 0x0033
      positions     :
        0x0000 line=161
        0x001c line=162
        0x0028 line=163
        0x0032 line=164
        0x0033 line=162
      locals        :
        0x0000 - 0x0036 reg=2 this Lcom/valentinedesigns/chromalink/ArcadeAudio;

    #8              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'requestedTrack'
      type          : '()I'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 2
      ins           : 1
      outs          : 0
      insns size    : 3 16-bit code units
00c660:                                        |[00c660] com.valentinedesigns.chromalink.ArcadeAudio.requestedTrack:()I
00c670: 5210 6c00                              |0000: iget v0, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.selectedIndex:I // field@006c
00c674: 0f00                                   |0002: return v0
      catches       : (none)
      positions     :
        0x0000 line=135
      locals        :
        0x0000 - 0x0003 reg=1 this Lcom/valentinedesigns/chromalink/ArcadeAudio;

    #9              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'resetRound'
      type          : '()V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 2
      ins           : 1
      outs          : 1
      insns size    : 15 16-bit code units
00e820:                                        |[00e820] com.valentinedesigns.chromalink.ArcadeAudio.resetRound:()V
00e830: 1200                                   |0000: const/4 v0, #int 0 // #0
00e832: 5c10 5b00                              |0001: iput-boolean v0, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.loss:Z // field@005b
00e836: 1200                                   |0003: const/4 v0, #int 0 // #0
00e838: 5910 6500                              |0004: iput v0, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.pressure:F // field@0065
00e83c: 5410 5800                              |0006: iget-object v0, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.effects:Ljava/util/concurrent/ConcurrentLinkedQueue; // field@0058
00e840: 6e10 a606 0000                         |0008: invoke-virtual {v0}, Ljava/util/concurrent/ConcurrentLinkedQueue;.clear:()V // method@06a6
00e846: 7010 1a02 0100                         |000b: invoke-direct {v1}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.wakePlayback:()V // method@021a
00e84c: 0e00                                   |000e: return-void
      catches       : (none)
      positions     :
        0x0000 line=146
      locals        :
        0x0000 - 0x000f reg=1 this Lcom/valentinedesigns/chromalink/ArcadeAudio;

    #10              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'returnToMenu'
      type          : '()V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 2
      ins           : 1
      outs          : 1
      insns size    : 15 16-bit code units
00e850:                                        |[00e850] com.valentinedesigns.chromalink.ArcadeAudio.returnToMenu:()V
00e860: 1200                                   |0000: const/4 v0, #int 0 // #0
00e862: 5c10 5b00                              |0001: iput-boolean v0, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.loss:Z // field@005b
00e866: 1200                                   |0003: const/4 v0, #int 0 // #0
00e868: 5910 6500                              |0004: iput v0, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.pressure:F // field@0065
00e86c: 5410 5800                              |0006: iget-object v0, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.effects:Ljava/util/concurrent/ConcurrentLinkedQueue; // field@0058
00e870: 6e10 a606 0000                         |0008: invoke-virtual {v0}, Ljava/util/concurrent/ConcurrentLinkedQueue;.clear:()V // method@06a6
00e876: 7010 1a02 0100                         |000b: invoke-direct {v1}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.wakePlayback:()V // method@021a
00e87c: 0e00                                   |000e: return-void
      catches       : (none)
      positions     :
        0x0000 line=148
      locals        :
        0x0000 - 0x000f reg=1 this Lcom/valentinedesigns/chromalink/ArcadeAudio;

    #11              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'selectTrack'
      type          : '(I)V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 3
      ins           : 2
      outs          : 3
      insns size    : 5 16-bit code units
00e880:                                        |[00e880] com.valentinedesigns.chromalink.ArcadeAudio.selectTrack:(I)V
00e890: 1200                                   |0000: const/4 v0, #int 0 // #0
00e892: 7030 0602 2100                         |0001: invoke-direct {v1, v2, v0}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.requestTrack:(IZ)V // method@0206
00e898: 0e00                                   |0004: return-void
      catches       : (none)
      positions     :
        0x0000 line=93
      locals        :
        0x0000 - 0x0005 reg=1 this Lcom/valentinedesigns/chromalink/ArcadeAudio;
        0x0000 - 0x0005 reg=2 (null) I

    #12              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'setAutomaticChangeAllowed'
      type          : '(Z)V'
      access        : 0x20001 (PUBLIC DECLARED_SYNCHRONIZED)
      code          -
      registers     : 3
      ins           : 2
      outs          : 3
      insns size    : 34 16-bit code units
00e89c:                                        |[00e89c] com.valentinedesigns.chromalink.ArcadeAudio.setAutomaticChangeAllowed:(Z)V
00e8ac: 1d01                                   |0000: monitor-enter v1
00e8ae: 5c12 5100                              |0001: iput-boolean v2, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.automaticChangeAllowed:Z // field@0051
00e8b2: 3902 1a00                              |0003: if-nez v2, 001d // +001a
00e8b6: 5512 5200                              |0005: iget-boolean v2, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.automaticRequest:Z // field@0052
00e8ba: 3802 1600                              |0007: if-eqz v2, 001d // +0016
00e8be: 5412 6300                              |0009: iget-object v2, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.playingBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0063
00e8c2: 3802 1200                              |000b: if-eqz v2, 001d // +0012
00e8c6: 5212 6c00                              |000d: iget v2, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.selectedIndex:I // field@006c
00e8ca: 5410 6300                              |000f: iget-object v0, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.playingBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0063
00e8ce: 5200 2f00                              |0011: iget v0, v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.index:I // field@002f
00e8d2: 3202 0a00                              |0013: if-eq v2, v0, 001d // +000a
00e8d6: 5412 6300                              |0015: iget-object v2, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.playingBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0063
00e8da: 5222 2f00                              |0017: iget v2, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.index:I // field@002f
00e8de: 1200                                   |0019: const/4 v0, #int 0 // #0
00e8e0: 7030 0602 2100                         |001a: invoke-direct {v1, v2, v0}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.requestTrack:(IZ)V // method@0206
00e8e6: 1e01                                   |001d: monitor-exit v1
00e8e8: 0e00                                   |001e: return-void
00e8ea: 0d02                                   |001f: move-exception v2
00e8ec: 1e01                                   |0020: monitor-exit v1
00e8ee: 2702                                   |0021: throw v2
      catches       : 1
        0x0001 - 0x001d
          <any> -> 0x001f
      positions     :
        0x0001 line=96
        0x0003 line=97
        0x001d line=98
        0x001f line=95
      locals        :
        0x0000 - 0x0022 reg=1 this Lcom/valentinedesigns/chromalink/ArcadeAudio;
        0x0000 - 0x0022 reg=2 (null) Z

    #13              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'setEffectsEnabled'
      type          : '(Z)V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 2
      ins           : 2
      outs          : 1
      insns size    : 10 16-bit code units
00e8fc:                                        |[00e8fc] com.valentinedesigns.chromalink.ArcadeAudio.setEffectsEnabled:(Z)V
00e90c: 5c01 5900                              |0000: iput-boolean v1, v0, Lcom/valentinedesigns/chromalink/ArcadeAudio;.effectsEnabled:Z // field@0059
00e910: 3901 0700                              |0002: if-nez v1, 0009 // +0007
00e914: 5401 5800                              |0004: iget-object v1, v0, Lcom/valentinedesigns/chromalink/ArcadeAudio;.effects:Ljava/util/concurrent/ConcurrentLinkedQueue; // field@0058
00e918: 6e10 a606 0100                         |0006: invoke-virtual {v1}, Ljava/util/concurrent/ConcurrentLinkedQueue;.clear:()V // method@06a6
00e91e: 0e00                                   |0009: return-void
      catches       : (none)
      positions     :
        0x0000 line=138
      locals        :
        0x0000 - 0x000a reg=0 this Lcom/valentinedesigns/chromalink/ArcadeAudio;
        0x0000 - 0x000a reg=1 (null) Z

    #14              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'setEffectsVolume'
      type          : '(F)V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 2
      ins           : 2
      outs          : 1
      insns size    : 7 16-bit code units
00e920:                                        |[00e920] com.valentinedesigns.chromalink.ArcadeAudio.setEffectsVolume:(F)V
00e930: 7110 1702 0100                         |0000: invoke-static {v1}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.unit:(F)F // method@0217
00e936: 0a01                                   |0003: move-result v1
00e938: 5901 5a00                              |0004: iput v1, v0, Lcom/valentinedesigns/chromalink/ArcadeAudio;.effectsVolume:F // field@005a
00e93c: 0e00                                   |0006: return-void
      catches       : (none)
      positions     :
        0x0000 line=141
      locals        :
        0x0000 - 0x0007 reg=0 this Lcom/valentinedesigns/chromalink/ArcadeAudio;
        0x0000 - 0x0007 reg=1 (null) F

    #15              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'setMasterMuted'
      type          : '(Z)V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 2
      ins           : 2
      outs          : 1
      insns size    : 6 16-bit code units
00e940:                                        |[00e940] com.valentinedesigns.chromalink.ArcadeAudio.setMasterMuted:(Z)V
00e950: 5c01 5d00                              |0000: iput-boolean v1, v0, Lcom/valentinedesigns/chromalink/ArcadeAudio;.masterMuted:Z // field@005d
00e954: 7010 1a02 0000                         |0002: invoke-direct {v0}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.wakePlayback:()V // method@021a
00e95a: 0e00                                   |0005: return-void
      catches       : (none)
      positions     :
        0x0000 line=139
      locals        :
        0x0000 - 0x0006 reg=0 this Lcom/valentinedesigns/chromalink/ArcadeAudio;
        0x0000 - 0x0006 reg=1 (null) Z

    #16              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'setMusicEnabled'
      type          : '(Z)V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 2
      ins           : 2
      outs          : 1
      insns size    : 6 16-bit code units
00e95c:                                        |[00e95c] com.valentinedesigns.chromalink.ArcadeAudio.setMusicEnabled:(Z)V
00e96c: 5c01 5f00                              |0000: iput-boolean v1, v0, Lcom/valentinedesigns/chromalink/ArcadeAudio;.musicEnabled:Z // field@005f
00e970: 7010 1a02 0000                         |0002: invoke-direct {v0}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.wakePlayback:()V // method@021a
00e976: 0e00                                   |0005: return-void
      catches       : (none)
      positions     :
        0x0000 line=137
      locals        :
        0x0000 - 0x0006 reg=0 this Lcom/valentinedesigns/chromalink/ArcadeAudio;
        0x0000 - 0x0006 reg=1 (null) Z

    #17              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'setMusicVolume'
      type          : '(F)V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 2
      ins           : 2
      outs          : 1
      insns size    : 7 16-bit code units
00e978:                                        |[00e978] com.valentinedesigns.chromalink.ArcadeAudio.setMusicVolume:(F)V
00e988: 7110 1702 0100                         |0000: invoke-static {v1}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.unit:(F)F // method@0217
00e98e: 0a01                                   |0003: move-result v1
00e990: 5901 6100                              |0004: iput v1, v0, Lcom/valentinedesigns/chromalink/ArcadeAudio;.musicVolume:F // field@0061
00e994: 0e00                                   |0006: return-void
      catches       : (none)
      positions     :
        0x0000 line=140
      locals        :
        0x0000 - 0x0007 reg=0 this Lcom/valentinedesigns/chromalink/ArcadeAudio;
        0x0000 - 0x0007 reg=1 (null) F

    #18              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'setPressure'
      type          : '(F)V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 2
      ins           : 2
      outs          : 1
      insns size    : 7 16-bit code units
00e998:                                        |[00e998] com.valentinedesigns.chromalink.ArcadeAudio.setPressure:(F)V
00e9a8: 7110 1702 0100                         |0000: invoke-static {v1}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.unit:(F)F // method@0217
00e9ae: 0a01                                   |0003: move-result v1
00e9b0: 5901 6500                              |0004: iput v1, v0, Lcom/valentinedesigns/chromalink/ArcadeAudio;.pressure:F // field@0065
00e9b4: 0e00                                   |0006: return-void
      catches       : (none)
      positions     :
        0x0000 line=136
      locals        :
        0x0000 - 0x0007 reg=0 this Lcom/valentinedesigns/chromalink/ArcadeAudio;
        0x0000 - 0x0007 reg=1 (null) F

    #19              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'setRotateTracks'
      type          : '(Z)V'
      access        : 0x20001 (PUBLIC DECLARED_SYNCHRONIZED)
      code          -
      registers     : 3
      ins           : 2
      outs          : 3
      insns size    : 49 16-bit code units
00e9b8:                                        |[00e9b8] com.valentinedesigns.chromalink.ArcadeAudio.setRotateTracks:(Z)V
00e9c8: 1d01                                   |0000: monitor-enter v1
00e9ca: 5c12 6a00                              |0001: iput-boolean v2, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.rotateTracks:Z // field@006a
00e9ce: 3902 1d00                              |0003: if-nez v2, 0020 // +001d
00e9d2: 1202                                   |0005: const/4 v2, #int 0 // #0
00e9d4: 5b12 6400                              |0006: iput-object v2, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.prefetchedBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0064
00e9d8: 5512 5200                              |0008: iget-boolean v2, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.automaticRequest:Z // field@0052
00e9dc: 3802 1600                              |000a: if-eqz v2, 0020 // +0016
00e9e0: 5412 6300                              |000c: iget-object v2, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.playingBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0063
00e9e4: 3802 1200                              |000e: if-eqz v2, 0020 // +0012
00e9e8: 5212 6c00                              |0010: iget v2, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.selectedIndex:I // field@006c
00e9ec: 5410 6300                              |0012: iget-object v0, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.playingBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0063
00e9f0: 5200 2f00                              |0014: iget v0, v0, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.index:I // field@002f
00e9f4: 3202 0a00                              |0016: if-eq v2, v0, 0020 // +000a
00e9f8: 5412 6300                              |0018: iget-object v2, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.playingBundle:Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle; // field@0063
00e9fc: 5222 2f00                              |001a: iget v2, v2, Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackBundle;.index:I // field@002f
00ea00: 1200                                   |001c: const/4 v0, #int 0 // #0
00ea02: 7030 0602 2100                         |001d: invoke-direct {v1, v2, v0}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.requestTrack:(IZ)V // method@0206
00ea08: 5412 5600                              |0020: iget-object v2, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decodeSignal:Ljava/lang/Object; // field@0056
00ea0c: 1d02                                   |0022: monitor-enter v2
00ea0e: 5410 5600                              |0023: iget-object v0, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.decodeSignal:Ljava/lang/Object; // field@0056
00ea12: 6e10 5106 0000                         |0025: invoke-virtual {v0}, Ljava/lang/Object;.notifyAll:()V // method@0651
00ea18: 1e02                                   |0028: monitor-exit v2
00ea1a: 1e01                                   |0029: monitor-exit v1
00ea1c: 0e00                                   |002a: return-void
00ea1e: 0d00                                   |002b: move-exception v0
00ea20: 1e02                                   |002c: monitor-exit v2
00ea22: 2700                                   |002d: throw v0
00ea24: 0d02                                   |002e: move-exception v2
00ea26: 1e01                                   |002f: monitor-exit v1
00ea28: 2702                                   |0030: throw v2
      catches       : 4
        0x0001 - 0x0023
          <any> -> 0x002e
        0x0023 - 0x0029
          <any> -> 0x002b
        0x002c - 0x002d
          <any> -> 0x002b
        0x002d - 0x002e
          <any> -> 0x002e
      positions     :
        0x0001 line=124
        0x0003 line=125
        0x0005 line=126
        0x0008 line=129
        0x0018 line=130
        0x0020 line=132
        0x0029 line=133
        0x002b line=132
        0x002e line=123
      locals        :
        0x0000 - 0x0031 reg=1 this Lcom/valentinedesigns/chromalink/ArcadeAudio;
        0x0000 - 0x0031 reg=2 (null) Z

    #20              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'setSuspended'
      type          : '(Z)V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 2
      ins           : 2
      outs          : 1
      insns size    : 6 16-bit code units
00ea54:                                        |[00ea54] com.valentinedesigns.chromalink.ArcadeAudio.setSuspended:(Z)V
00ea64: 5c01 6f00                              |0000: iput-boolean v1, v0, Lcom/valentinedesigns/chromalink/ArcadeAudio;.suspended:Z // field@006f
00ea68: 7010 1a02 0000                         |0002: invoke-direct {v0}, Lcom/valentinedesigns/chromalink/ArcadeAudio;.wakePlayback:()V // method@021a
00ea6e: 0e00                                   |0005: return-void
      catches       : (none)
      positions     :
        0x0000 line=142
      locals        :
        0x0000 - 0x0006 reg=0 this Lcom/valentinedesigns/chromalink/ArcadeAudio;
        0x0000 - 0x0006 reg=1 (null) Z

    #21              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'status'
      type          : '()Ljava/lang/String;'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 2
      ins           : 1
      outs          : 0
      insns size    : 3 16-bit code units
00c88c:                                        |[00c88c] com.valentinedesigns.chromalink.ArcadeAudio.status:()Ljava/lang/String;
00c89c: 5410 6e00                              |0000: iget-object v0, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.state:Ljava/lang/String; // field@006e
00c8a0: 1100                                   |0002: return-object v0
      catches       : (none)
      positions     :
        0x0000 line=143
      locals        :
        0x0000 - 0x0003 reg=1 this Lcom/valentinedesigns/chromalink/ArcadeAudio;

    #22              : (in Lcom/valentinedesigns/chromalink/ArcadeAudio;)
      name          : 'trackCount'
      type          : '()I'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 2
      ins           : 1
      outs          : 0
      insns size    : 4 16-bit code units
00c678:                                        |[00c678] com.valentinedesigns.chromalink.ArcadeAudio.trackCount:()I
00c688: 5410 7000                              |0000: iget-object v0, v1, Lcom/valentinedesigns/chromalink/ArcadeAudio;.trackSpecs:[Lcom/valentinedesigns/chromalink/ArcadeAudio$TrackSpec; // field@0070
00c68c: 2100                                   |0002: array-length v0, v0
00c68e: 0f00                                   |0003: return v0
      catches       : (none)
      positions     :
        0x0000 line=82
      locals        :
        0x0000 - 0x0004 reg=1 this Lcom/valentinedesigns/chromalink/ArcadeAudio;

  source_file_idx   : 238 (ArcadeAudio.java)

