Class #126            -
  Class descriptor  : 'Lcom/valentinedesigns/chromalink/OnlineMatch;'
  Access flags      : 0x0011 (PUBLIC FINAL)
  Superclass        : 'Ljava/lang/Object;'
  Interfaces        -
  Static fields     -
    #0              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'INPUT_DELAY'
      type          : 'I'
      access        : 0x0019 (PUBLIC STATIC FINAL)
      value         : 3
    #1              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'MAX_ACTIONS'
      type          : 'I'
      access        : 0x0019 (PUBLIC STATIC FINAL)
      value         : 4
    #2              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'MAX_BUFFERED_FRAMES'
      type          : 'I'
      access        : 0x0019 (PUBLIC STATIC FINAL)
      value         : 100
    #3              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'MAX_LOCAL_INPUT_LEAD'
      type          : 'I'
      access        : 0x001a (PRIVATE STATIC FINAL)
      value         : 13
    #4              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'MAX_MATCH_TICKS'
      type          : 'I'
      access        : 0x0019 (PUBLIC STATIC FINAL)
      value         : 45000
    #5              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'PEER_TIMEOUT_MS'
      type          : 'J'
      access        : 0x0019 (PUBLIC STATIC FINAL)
      value         : 8000
    #6              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'TICK_MS'
      type          : 'I'
      access        : 0x0019 (PUBLIC STATIC FINAL)
      value         : 20
  Instance fields   -
    #0              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'completed'
      type          : 'I'
      access        : 0x0002 (PRIVATE)
    #1              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'game'
      type          : 'Lcom/valentinedesigns/chromalink/GameEngine;'
      access        : 0x0011 (PUBLIC FINAL)
    #2              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'lastPeerAt'
      type          : 'J'
      access        : 0x0002 (PRIVATE)
    #3              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'lastPeerChecksum'
      type          : 'I'
      access        : 0x0002 (PRIVATE)
    #4              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'lastPumpAt'
      type          : 'J'
      access        : 0x0002 (PRIVATE)
    #5              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'lastVerifiedChecksum'
      type          : 'I'
      access        : 0x0002 (PRIVATE)
    #6              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'listener'
      type          : 'Lcom/valentinedesigns/chromalink/OnlineMatch$Listener;'
      access        : 0x0012 (PRIVATE FINAL)
    #7              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'localFrames'
      type          : 'Ljava/util/Map;'
      access        : 0x0012 (PRIVATE FINAL)
    #8              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'localHashes'
      type          : 'Ljava/util/Map;'
      access        : 0x0012 (PRIVATE FINAL)
    #9              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'localSide'
      type          : 'I'
      access        : 0x0012 (PRIVATE FINAL)
    #10              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'nextReceived'
      type          : 'I'
      access        : 0x0002 (PRIVATE)
    #11              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'nextSent'
      type          : 'I'
      access        : 0x0002 (PRIVATE)
    #12              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'pumping'
      type          : 'Z'
      access        : 0x0002 (PRIVATE)
    #13              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'queuedActions'
      type          : 'Ljava/util/ArrayDeque;'
      access        : 0x0012 (PRIVATE FINAL)
    #14              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'queuedForMove'
      type          : 'I'
      access        : 0x0002 (PRIVATE)
    #15              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'remoteFrames'
      type          : 'Ljava/util/Map;'
      access        : 0x0012 (PRIVATE FINAL)
    #16              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'remoteHashes'
      type          : 'Ljava/util/Map;'
      access        : 0x0012 (PRIVATE FINAL)
    #17              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'started'
      type          : 'Z'
      access        : 0x0002 (PRIVATE)
    #18              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'startedAt'
      type          : 'J'
      access        : 0x0002 (PRIVATE)
    #19              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'stopped'
      type          : 'Z'
      access        : 0x0002 (PRIVATE)
    #20              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'verifiedResult'
      type          : 'Z'
      access        : 0x0002 (PRIVATE)
  Direct methods    -
    #0              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : '<init>'
      type          : '(JIILcom/valentinedesigns/chromalink/OnlineMatch$Listener;)V'
      access        : 0x10001 (PUBLIC CONSTRUCTOR)
      code          -
      registers     : 7
      ins           : 6
      outs          : 4
      insns size    : 77 16-bit code units
027f64:                                        |[027f64] com.valentinedesigns.chromalink.OnlineMatch.<init>:(JIILcom/valentinedesigns/chromalink/OnlineMatch$Listener;)V
027f74: 7010 5006 0100                         |0000: invoke-direct {v1}, Ljava/lang/Object;.<init>:()V // method@0650
027f7a: 2200 5b01                              |0003: new-instance v0, Ljava/util/ArrayDeque; // type@015b
027f7e: 7010 7e06 0000                         |0005: invoke-direct {v0}, Ljava/util/ArrayDeque;.<init>:()V // method@067e
027f84: 5b10 be02                              |0008: iput-object v0, v1, Lcom/valentinedesigns/chromalink/OnlineMatch;.queuedActions:Ljava/util/ArrayDeque; // field@02be
027f88: 2200 5f01                              |000a: new-instance v0, Ljava/util/HashMap; // type@015f
027f8c: 7010 9206 0000                         |000c: invoke-direct {v0}, Ljava/util/HashMap;.<init>:()V // method@0692
027f92: 5b10 b802                              |000f: iput-object v0, v1, Lcom/valentinedesigns/chromalink/OnlineMatch;.localFrames:Ljava/util/Map; // field@02b8
027f96: 2200 5f01                              |0011: new-instance v0, Ljava/util/HashMap; // type@015f
027f9a: 7010 9206 0000                         |0013: invoke-direct {v0}, Ljava/util/HashMap;.<init>:()V // method@0692
027fa0: 5b10 c002                              |0016: iput-object v0, v1, Lcom/valentinedesigns/chromalink/OnlineMatch;.remoteFrames:Ljava/util/Map; // field@02c0
027fa4: 2200 5f01                              |0018: new-instance v0, Ljava/util/HashMap; // type@015f
027fa8: 7010 9206 0000                         |001a: invoke-direct {v0}, Ljava/util/HashMap;.<init>:()V // method@0692
027fae: 5b10 b902                              |001d: iput-object v0, v1, Lcom/valentinedesigns/chromalink/OnlineMatch;.localHashes:Ljava/util/Map; // field@02b9
027fb2: 2200 5f01                              |001f: new-instance v0, Ljava/util/HashMap; // type@015f
027fb6: 7010 9206 0000                         |0021: invoke-direct {v0}, Ljava/util/HashMap;.<init>:()V // method@0692
027fbc: 5b10 c102                              |0024: iput-object v0, v1, Lcom/valentinedesigns/chromalink/OnlineMatch;.remoteHashes:Ljava/util/Map; // field@02c1
027fc0: 3806 1f00                              |0026: if-eqz v6, 0045 // +001f
027fc4: 3a04 1500                              |0028: if-ltz v4, 003d // +0015
027fc8: 1220                                   |002a: const/4 v0, #int 2 // #2
027fca: 3604 1200                              |002b: if-gt v4, v0, 003d // +0012
027fce: 3a05 1000                              |002d: if-ltz v5, 003d // +0010
027fd2: 1210                                   |002f: const/4 v0, #int 1 // #1
027fd4: 3605 0d00                              |0030: if-gt v5, v0, 003d // +000d
027fd8: 5915 ba02                              |0032: iput v5, v1, Lcom/valentinedesigns/chromalink/OnlineMatch;.localSide:I // field@02ba
027fdc: 5b16 b702                              |0034: iput-object v6, v1, Lcom/valentinedesigns/chromalink/OnlineMatch;.listener:Lcom/valentinedesigns/chromalink/OnlineMatch$Listener; // field@02b7
027fe0: 7140 4903 3254                         |0036: invoke-static {v2, v3, v4, v5}, Lcom/valentinedesigns/chromalink/GameEngine;.online:(JII)Lcom/valentinedesigns/chromalink/GameEngine; // method@0349
027fe6: 0c02                                   |0039: move-result-object v2
027fe8: 5b12 b202                              |003a: iput-object v2, v1, Lcom/valentinedesigns/chromalink/OnlineMatch;.game:Lcom/valentinedesigns/chromalink/GameEngine; // field@02b2
027fec: 0e00                                   |003c: return-void
027fee: 2202 3d01                              |003d: new-instance v2, Ljava/lang/IllegalArgumentException; // type@013d
027ff2: 1a03 6708                              |003f: const-string v3, "match setup" // string@0867
027ff6: 7020 2e06 3200                         |0041: invoke-direct {v2, v3}, Ljava/lang/IllegalArgumentException;.<init>:(Ljava/lang/String;)V // method@062e
027ffc: 2702                                   |0044: throw v2
027ffe: 2202 3d01                              |0045: new-instance v2, Ljava/lang/IllegalArgumentException; // type@013d
028002: 1a03 4908                              |0047: const-string v3, "listener" // string@0849
028006: 7020 2e06 3200                         |0049: invoke-direct {v2, v3}, Ljava/lang/IllegalArgumentException;.<init>:(Ljava/lang/String;)V // method@062e
02800c: 2702                                   |004c: throw v2
      catches       : (none)
      positions     :
        0x0000 line=40
        0x0003 line=32
        0x000a line=33
        0x0018 line=34
        0x0026 line=41
        0x0028 line=42
        0x0032 line=43
        0x0036 line=44
        0x003c line=45
        0x003d line=42
        0x0045 line=41
      locals        :
        0x0000 - 0x004d reg=1 this Lcom/valentinedesigns/chromalink/OnlineMatch;
        0x0000 - 0x004d reg=2 (null) J
        0x0000 - 0x004d reg=4 (null) I
        0x0000 - 0x004d reg=5 (null) I
        0x0000 - 0x004d reg=6 (null) Lcom/valentinedesigns/chromalink/OnlineMatch$Listener;

    #1              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'canQueueLocalInput'
      type          : '()Z'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 7
      ins           : 1
      outs          : 2
      insns size    : 85 16-bit code units
027d70:                                        |[027d70] com.valentinedesigns.chromalink.OnlineMatch.canQueueLocalInput:()Z
027d80: 5460 b202                              |0000: iget-object v0, v6, Lcom/valentinedesigns/chromalink/OnlineMatch;.game:Lcom/valentinedesigns/chromalink/GameEngine; // field@02b2
027d84: 5500 6d01                              |0002: iget-boolean v0, v0, Lcom/valentinedesigns/chromalink/GameEngine;.paused:Z // field@016d
027d88: 1211                                   |0004: const/4 v1, #int 1 // #1
027d8a: 1202                                   |0005: const/4 v2, #int 0 // #0
027d8c: 3900 2000                              |0006: if-nez v0, 0026 // +0020
027d90: 5460 b202                              |0008: iget-object v0, v6, Lcom/valentinedesigns/chromalink/OnlineMatch;.game:Lcom/valentinedesigns/chromalink/GameEngine; // field@02b2
027d94: 5500 6601                              |000a: iget-boolean v0, v0, Lcom/valentinedesigns/chromalink/GameEngine;.ended:Z // field@0166
027d98: 3900 1a00                              |000c: if-nez v0, 0026 // +001a
027d9c: 5460 b202                              |000e: iget-object v0, v6, Lcom/valentinedesigns/chromalink/OnlineMatch;.game:Lcom/valentinedesigns/chromalink/GameEngine; // field@02b2
027da0: 5400 6e01                              |0010: iget-object v0, v0, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
027da4: 5400 4c01                              |0012: iget-object v0, v0, Lcom/valentinedesigns/chromalink/GameEngine$Well;.piece:Lcom/valentinedesigns/chromalink/GameEngine$Piece; // field@014c
027da8: 3800 1200                              |0014: if-eqz v0, 0026 // +0012
027dac: 5460 b202                              |0016: iget-object v0, v6, Lcom/valentinedesigns/chromalink/OnlineMatch;.game:Lcom/valentinedesigns/chromalink/GameEngine; // field@02b2
027db0: 5400 6e01                              |0018: iget-object v0, v0, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
027db4: 5400 4a01                              |001a: iget-object v0, v0, Lcom/valentinedesigns/chromalink/GameEngine$Well;.phase:Ljava/lang/String; // field@014a
027db8: 1a03 a905                              |001c: const-string v3, "active" // string@05a9
027dbc: 6e20 5b06 0300                         |001e: invoke-virtual {v3, v0}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
027dc2: 0a00                                   |0021: move-result v0
027dc4: 3800 0400                              |0022: if-eqz v0, 0026 // +0004
027dc8: 0110                                   |0024: move v0, v1
027dca: 2802                                   |0025: goto 0027 // +0002
027dcc: 0120                                   |0026: move v0, v2
027dce: 5263 bc02                              |0027: iget v3, v6, Lcom/valentinedesigns/chromalink/OnlineMatch;.nextSent:I // field@02bc
027dd2: 5264 b102                              |0029: iget v4, v6, Lcom/valentinedesigns/chromalink/OnlineMatch;.completed:I // field@02b1
027dd6: b143                                   |002b: sub-int/2addr v3, v4
027dd8: 1304 0d00                              |002c: const/16 v4, #int 13 // #d
027ddc: 3643 0400                              |002e: if-gt v3, v4, 0032 // +0004
027de0: 0113                                   |0030: move v3, v1
027de2: 2802                                   |0031: goto 0033 // +0002
027de4: 0123                                   |0032: move v3, v2
027de6: 5264 bf02                              |0033: iget v4, v6, Lcom/valentinedesigns/chromalink/OnlineMatch;.queuedForMove:I // field@02bf
027dea: 5465 b202                              |0035: iget-object v5, v6, Lcom/valentinedesigns/chromalink/OnlineMatch;.game:Lcom/valentinedesigns/chromalink/GameEngine; // field@02b2
027dee: 5455 6e01                              |0037: iget-object v5, v5, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
027df2: 5255 4701                              |0039: iget v5, v5, Lcom/valentinedesigns/chromalink/GameEngine$Well;.moves:I // field@0147
027df6: 3354 0600                              |003b: if-ne v4, v5, 0041 // +0006
027dfa: 3800 0400                              |003d: if-eqz v0, 0041 // +0004
027dfe: 3903 0700                              |003f: if-nez v3, 0046 // +0007
027e02: 5464 be02                              |0041: iget-object v4, v6, Lcom/valentinedesigns/chromalink/OnlineMatch;.queuedActions:Ljava/util/ArrayDeque; // field@02be
027e06: 6e10 8106 0400                         |0043: invoke-virtual {v4}, Ljava/util/ArrayDeque;.clear:()V // method@0681
027e0c: 5464 b202                              |0046: iget-object v4, v6, Lcom/valentinedesigns/chromalink/OnlineMatch;.game:Lcom/valentinedesigns/chromalink/GameEngine; // field@02b2
027e10: 5444 6e01                              |0048: iget-object v4, v4, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
027e14: 5244 4701                              |004a: iget v4, v4, Lcom/valentinedesigns/chromalink/GameEngine$Well;.moves:I // field@0147
027e18: 5964 bf02                              |004c: iput v4, v6, Lcom/valentinedesigns/chromalink/OnlineMatch;.queuedForMove:I // field@02bf
027e1c: 3800 0500                              |004e: if-eqz v0, 0053 // +0005
027e20: 3803 0300                              |0050: if-eqz v3, 0053 // +0003
027e24: 2802                                   |0052: goto 0054 // +0002
027e26: 0121                                   |0053: move v1, v2
027e28: 0f01                                   |0054: return v1
      catches       : (none)
      positions     :
        0x0000 line=78
        0x001c line=79
        0x0027 line=80
        0x0033 line=81
        0x0046 line=82
        0x004e line=83
      locals        :
        0x0000 - 0x0055 reg=6 this Lcom/valentinedesigns/chromalink/OnlineMatch;

    #2              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'emitFrame'
      type          : '([Ljava/lang/String;)V'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 5
      ins           : 2
      outs          : 3
      insns size    : 27 16-bit code units
028010:                                        |[028010] com.valentinedesigns.chromalink.OnlineMatch.emitFrame:([Ljava/lang/String;)V
028020: 5230 bc02                              |0000: iget v0, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.nextSent:I // field@02bc
028024: d801 0001                              |0002: add-int/lit8 v1, v0, #int 1 // #01
028028: 5931 bc02                              |0004: iput v1, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.nextSent:I // field@02bc
02802c: 5431 b802                              |0006: iget-object v1, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.localFrames:Ljava/util/Map; // field@02b8
028030: 7110 3506 0000                         |0008: invoke-static {v0}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@0635
028036: 0c02                                   |000b: move-result-object v2
028038: 7230 a006 2104                         |000c: invoke-interface {v1, v2, v4}, Ljava/util/Map;.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; // method@06a0
02803e: 5431 b702                              |000f: iget-object v1, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.listener:Lcom/valentinedesigns/chromalink/OnlineMatch$Listener; // field@02b7
028042: 6e10 cc06 0400                         |0011: invoke-virtual {v4}, [Ljava/lang/String;.clone:()Ljava/lang/Object; // method@06cc
028048: 0c04                                   |0014: move-result-object v4
02804a: 1f04 8001                              |0015: check-cast v4, [Ljava/lang/String; // type@0180
02804e: 7230 7505 0104                         |0017: invoke-interface {v1, v0, v4}, Lcom/valentinedesigns/chromalink/OnlineMatch$Listener;.onSendFrame:(I[Ljava/lang/String;)V // method@0575
028054: 0e00                                   |001a: return-void
      catches       : (none)
      positions     :
        0x0000 line=128
        0x000f line=129
        0x001a line=130
      locals        :
        0x0000 - 0x001b reg=3 this Lcom/valentinedesigns/chromalink/OnlineMatch;
        0x0000 - 0x001b reg=4 (null) [Ljava/lang/String;

    #3              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'validAction'
      type          : '(Ljava/lang/String;)Z'
      access        : 0x0009 (PUBLIC STATIC)
      code          -
      registers     : 2
      ins           : 1
      outs          : 2
      insns size    : 53 16-bit code units
027ea4:                                        |[027ea4] com.valentinedesigns.chromalink.OnlineMatch.validAction:(Ljava/lang/String;)Z
027eb4: 1a00 3b08                              |0000: const-string v0, "left" // string@083b
027eb8: 6e20 5b06 1000                         |0002: invoke-virtual {v0, v1}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
027ebe: 0a00                                   |0005: move-result v0
027ec0: 3900 2d00                              |0006: if-nez v0, 0033 // +002d
027ec4: 1a00 b409                              |0008: const-string v0, "right" // string@09b4
027ec8: 6e20 5b06 1000                         |000a: invoke-virtual {v0, v1}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
027ece: 0a00                                   |000d: move-result v0
027ed0: 3900 2500                              |000e: if-nez v0, 0033 // +0025
027ed4: 1a00 bb09                              |0010: const-string v0, "rotate" // string@09bb
027ed8: 6e20 5b06 1000                         |0012: invoke-virtual {v0, v1}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
027ede: 0a00                                   |0015: move-result v0
027ee0: 3900 1d00                              |0016: if-nez v0, 0033 // +001d
027ee4: 1a00 bc09                              |0018: const-string v0, "rotate-left" // string@09bc
027ee8: 6e20 5b06 1000                         |001a: invoke-virtual {v0, v1}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
027eee: 0a00                                   |001d: move-result v0
027ef0: 3900 1500                              |001e: if-nez v0, 0033 // +0015
027ef4: 1a00 b506                              |0020: const-string v0, "down" // string@06b5
027ef8: 6e20 5b06 1000                         |0022: invoke-virtual {v0, v1}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
027efe: 0a00                                   |0025: move-result v0
027f00: 3900 0d00                              |0026: if-nez v0, 0033 // +000d
027f04: 1a00 d406                              |0028: const-string v0, "drop" // string@06d4
027f08: 6e20 5b06 1000                         |002a: invoke-virtual {v0, v1}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
027f0e: 0a01                                   |002d: move-result v1
027f10: 3801 0300                              |002e: if-eqz v1, 0031 // +0003
027f14: 2803                                   |0030: goto 0033 // +0003
027f16: 1201                                   |0031: const/4 v1, #int 0 // #0
027f18: 2802                                   |0032: goto 0034 // +0002
027f1a: 1211                                   |0033: const/4 v1, #int 1 // #1
027f1c: 0f01                                   |0034: return v1
      catches       : (none)
      positions     :
        0x0000 line=86
        0x0018 line=87
        0x0034 line=86
      locals        :
        0x0000 - 0x0035 reg=1 (null) Ljava/lang/String;

    #4              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'verifyHash'
      type          : '(I)V'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 5
      ins           : 2
      outs          : 2
      insns size    : 100 16-bit code units
02859c:                                        |[02859c] com.valentinedesigns.chromalink.OnlineMatch.verifyHash:(I)V
0285ac: 5430 b902                              |0000: iget-object v0, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.localHashes:Ljava/util/Map; // field@02b9
0285b0: 7110 3506 0400                         |0002: invoke-static {v4}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@0635
0285b6: 0c01                                   |0005: move-result-object v1
0285b8: 7220 9f06 1000                         |0006: invoke-interface {v0, v1}, Ljava/util/Map;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@069f
0285be: 0c00                                   |0009: move-result-object v0
0285c0: 1f00 4801                              |000a: check-cast v0, Ljava/lang/String; // type@0148
0285c4: 5431 c102                              |000c: iget-object v1, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.remoteHashes:Ljava/util/Map; // field@02c1
0285c8: 7110 3506 0400                         |000e: invoke-static {v4}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@0635
0285ce: 0c02                                   |0011: move-result-object v2
0285d0: 7220 9f06 2100                         |0012: invoke-interface {v1, v2}, Ljava/util/Map;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@069f
0285d6: 0c01                                   |0015: move-result-object v1
0285d8: 1f01 4801                              |0016: check-cast v1, Ljava/lang/String; // type@0148
0285dc: 3800 4b00                              |0018: if-eqz v0, 0063 // +004b
0285e0: 3901 0300                              |001a: if-nez v1, 001d // +0003
0285e4: 2847                                   |001c: goto 0063 // +0047
0285e6: 6e20 5b06 1000                         |001d: invoke-virtual {v0, v1}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
0285ec: 0a00                                   |0020: move-result v0
0285ee: 3900 0800                              |0021: if-nez v0, 0029 // +0008
0285f2: 1a04 ad04                              |0023: const-string v4, "The boards fell out of sync. This round has no result." // string@04ad
0285f6: 6e20 8505 4300                         |0025: invoke-virtual {v3, v4}, Lcom/valentinedesigns/chromalink/OnlineMatch;.stop:(Ljava/lang/String;)V // method@0585
0285fc: 0e00                                   |0028: return-void
0285fe: 5430 b902                              |0029: iget-object v0, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.localHashes:Ljava/util/Map; // field@02b9
028602: 7110 3506 0400                         |002b: invoke-static {v4}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@0635
028608: 0c01                                   |002e: move-result-object v1
02860a: 7220 a106 1000                         |002f: invoke-interface {v0, v1}, Ljava/util/Map;.remove:(Ljava/lang/Object;)Ljava/lang/Object; // method@06a1
028610: 5430 c102                              |0032: iget-object v0, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.remoteHashes:Ljava/util/Map; // field@02c1
028614: 7110 3506 0400                         |0034: invoke-static {v4}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@0635
02861a: 0c01                                   |0037: move-result-object v1
02861c: 7220 a106 1000                         |0038: invoke-interface {v0, v1}, Ljava/util/Map;.remove:(Ljava/lang/Object;)Ljava/lang/Object; // method@06a1
028622: 5934 b602                              |003b: iput v4, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.lastVerifiedChecksum:I // field@02b6
028626: 5430 b202                              |003d: iget-object v0, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.game:Lcom/valentinedesigns/chromalink/GameEngine; // field@02b2
02862a: 5500 6601                              |003f: iget-boolean v0, v0, Lcom/valentinedesigns/chromalink/GameEngine;.ended:Z // field@0166
02862e: 3800 2100                              |0041: if-eqz v0, 0062 // +0021
028632: 5230 b102                              |0043: iget v0, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.completed:I // field@02b1
028636: 3304 1d00                              |0045: if-ne v4, v0, 0062 // +001d
02863a: 5534 c502                              |0047: iget-boolean v4, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.verifiedResult:Z // field@02c5
02863e: 3904 1900                              |0049: if-nez v4, 0062 // +0019
028642: 1214                                   |004b: const/4 v4, #int 1 // #1
028644: 5c34 c502                              |004c: iput-boolean v4, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.verifiedResult:Z // field@02c5
028648: 5434 b802                              |004e: iget-object v4, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.localFrames:Ljava/util/Map; // field@02b8
02864c: 7210 9d06 0400                         |0050: invoke-interface {v4}, Ljava/util/Map;.clear:()V // method@069d
028652: 5434 c002                              |0053: iget-object v4, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.remoteFrames:Ljava/util/Map; // field@02c0
028656: 7210 9d06 0400                         |0055: invoke-interface {v4}, Ljava/util/Map;.clear:()V // method@069d
02865c: 5434 be02                              |0058: iget-object v4, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.queuedActions:Ljava/util/ArrayDeque; // field@02be
028660: 6e10 8106 0400                         |005a: invoke-virtual {v4}, Ljava/util/ArrayDeque;.clear:()V // method@0681
028666: 5434 b702                              |005d: iget-object v4, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.listener:Lcom/valentinedesigns/chromalink/OnlineMatch$Listener; // field@02b7
02866a: 7210 7705 0400                         |005f: invoke-interface {v4}, Lcom/valentinedesigns/chromalink/OnlineMatch$Listener;.onVerifiedResult:()V // method@0577
028670: 0e00                                   |0062: return-void
028672: 0e00                                   |0063: return-void
      catches       : (none)
      positions     :
        0x0000 line=149
        0x0018 line=150
        0x001d line=151
        0x0029 line=152
        0x003d line=153
        0x004b line=154
        0x005d line=155
        0x0062 line=157
        0x0063 line=150
      locals        :
        0x0000 - 0x0064 reg=3 this Lcom/valentinedesigns/chromalink/OnlineMatch;
        0x0000 - 0x0064 reg=4 (null) I

  Virtual methods   -
    #0              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'action'
      type          : '(Ljava/lang/String;)Z'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 5
      ins           : 2
      outs          : 2
      insns size    : 48 16-bit code units
027d00:                                        |[027d00] com.valentinedesigns.chromalink.OnlineMatch.action:(Ljava/lang/String;)Z
027d10: 5530 c202                              |0000: iget-boolean v0, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.started:Z // field@02c2
027d14: 1201                                   |0002: const/4 v1, #int 0 // #0
027d16: 3800 2c00                              |0003: if-eqz v0, 002f // +002c
027d1a: 5530 c402                              |0005: iget-boolean v0, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.stopped:Z // field@02c4
027d1e: 3900 2800                              |0007: if-nez v0, 002f // +0028
027d22: 5430 b202                              |0009: iget-object v0, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.game:Lcom/valentinedesigns/chromalink/GameEngine; // field@02b2
027d26: 5500 6601                              |000b: iget-boolean v0, v0, Lcom/valentinedesigns/chromalink/GameEngine;.ended:Z // field@0166
027d2a: 3900 2200                              |000d: if-nez v0, 002f // +0022
027d2e: 7110 8605 0400                         |000f: invoke-static {v4}, Lcom/valentinedesigns/chromalink/OnlineMatch;.validAction:(Ljava/lang/String;)Z // method@0586
027d34: 0a00                                   |0012: move-result v0
027d36: 3900 0300                              |0013: if-nez v0, 0016 // +0003
027d3a: 281a                                   |0015: goto 002f // +001a
027d3c: 7010 7b05 0300                         |0016: invoke-direct {v3}, Lcom/valentinedesigns/chromalink/OnlineMatch;.canQueueLocalInput:()Z // method@057b
027d42: 0a00                                   |0019: move-result v0
027d44: 3800 1400                              |001a: if-eqz v0, 002e // +0014
027d48: 5430 be02                              |001c: iget-object v0, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.queuedActions:Ljava/util/ArrayDeque; // field@02be
027d4c: 6e10 8606 0000                         |001e: invoke-virtual {v0}, Ljava/util/ArrayDeque;.size:()I // method@0686
027d52: 0a00                                   |0021: move-result v0
027d54: 1302 2000                              |0022: const/16 v2, #int 32 // #20
027d58: 3420 0300                              |0024: if-lt v0, v2, 0027 // +0003
027d5c: 2808                                   |0026: goto 002e // +0008
027d5e: 5430 be02                              |0027: iget-object v0, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.queuedActions:Ljava/util/ArrayDeque; // field@02be
027d62: 6e20 7f06 4000                         |0029: invoke-virtual {v0, v4}, Ljava/util/ArrayDeque;.add:(Ljava/lang/Object;)Z // method@067f
027d68: 1214                                   |002c: const/4 v4, #int 1 // #1
027d6a: 0f04                                   |002d: return v4
027d6c: 0f01                                   |002e: return v1
027d6e: 0f01                                   |002f: return v1
      catches       : (none)
      positions     :
        0x0000 line=66
        0x0016 line=67
        0x0027 line=68
        0x002e line=67
        0x002f line=66
      locals        :
        0x0000 - 0x0030 reg=3 this Lcom/valentinedesigns/chromalink/OnlineMatch;
        0x0000 - 0x0030 reg=4 (null) Ljava/lang/String;

    #1              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'bufferedFrames'
      type          : '()I'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 3
      ins           : 1
      outs          : 1
      insns size    : 14 16-bit code units
027f20:                                        |[027f20] com.valentinedesigns.chromalink.OnlineMatch.bufferedFrames:()I
027f30: 5420 b802                              |0000: iget-object v0, v2, Lcom/valentinedesigns/chromalink/OnlineMatch;.localFrames:Ljava/util/Map; // field@02b8
027f34: 7210 a206 0000                         |0002: invoke-interface {v0}, Ljava/util/Map;.size:()I // method@06a2
027f3a: 0a00                                   |0005: move-result v0
027f3c: 5421 c002                              |0006: iget-object v1, v2, Lcom/valentinedesigns/chromalink/OnlineMatch;.remoteFrames:Ljava/util/Map; // field@02c0
027f40: 7210 a206 0100                         |0008: invoke-interface {v1}, Ljava/util/Map;.size:()I // method@06a2
027f46: 0a01                                   |000b: move-result v1
027f48: b010                                   |000c: add-int/2addr v0, v1
027f4a: 0f00                                   |000d: return v0
      catches       : (none)
      positions     :
        0x0000 line=49
      locals        :
        0x0000 - 0x000e reg=2 this Lcom/valentinedesigns/chromalink/OnlineMatch;

    #2              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'completedTicks'
      type          : '()I'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 2
      ins           : 1
      outs          : 0
      insns size    : 3 16-bit code units
027f4c:                                        |[027f4c] com.valentinedesigns.chromalink.OnlineMatch.completedTicks:()I
027f5c: 5210 b102                              |0000: iget v0, v1, Lcom/valentinedesigns/chromalink/OnlineMatch;.completed:I // field@02b1
027f60: 0f00                                   |0002: return v0
      catches       : (none)
      positions     :
        0x0000 line=48
      locals        :
        0x0000 - 0x0003 reg=1 this Lcom/valentinedesigns/chromalink/OnlineMatch;

    #3              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'isStopped'
      type          : '()Z'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 2
      ins           : 1
      outs          : 0
      insns size    : 3 16-bit code units
027e2c:                                        |[027e2c] com.valentinedesigns.chromalink.OnlineMatch.isStopped:()Z
027e3c: 5510 c402                              |0000: iget-boolean v0, v1, Lcom/valentinedesigns/chromalink/OnlineMatch;.stopped:Z // field@02c4
027e40: 0f00                                   |0002: return v0
      catches       : (none)
      positions     :
        0x0000 line=46
      locals        :
        0x0000 - 0x0003 reg=1 this Lcom/valentinedesigns/chromalink/OnlineMatch;

    #4              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'isWaitingForPeer'
      type          : '()Z'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 3
      ins           : 1
      outs          : 0
      insns size    : 27 16-bit code units
027e44:                                        |[027e44] com.valentinedesigns.chromalink.OnlineMatch.isWaitingForPeer:()Z
027e54: 5520 c202                              |0000: iget-boolean v0, v2, Lcom/valentinedesigns/chromalink/OnlineMatch;.started:Z // field@02c2
027e58: 3800 1700                              |0002: if-eqz v0, 0019 // +0017
027e5c: 5520 c402                              |0004: iget-boolean v0, v2, Lcom/valentinedesigns/chromalink/OnlineMatch;.stopped:Z // field@02c4
027e60: 3900 1300                              |0006: if-nez v0, 0019 // +0013
027e64: 5420 b202                              |0008: iget-object v0, v2, Lcom/valentinedesigns/chromalink/OnlineMatch;.game:Lcom/valentinedesigns/chromalink/GameEngine; // field@02b2
027e68: 5500 6601                              |000a: iget-boolean v0, v0, Lcom/valentinedesigns/chromalink/GameEngine;.ended:Z // field@0166
027e6c: 3900 0d00                              |000c: if-nez v0, 0019 // +000d
027e70: 5220 bc02                              |000e: iget v0, v2, Lcom/valentinedesigns/chromalink/OnlineMatch;.nextSent:I // field@02bc
027e74: 5221 b102                              |0010: iget v1, v2, Lcom/valentinedesigns/chromalink/OnlineMatch;.completed:I // field@02b1
027e78: b110                                   |0012: sub-int/2addr v0, v1
027e7a: 1301 0d00                              |0013: const/16 v1, #int 13 // #d
027e7e: 3710 0400                              |0015: if-le v0, v1, 0019 // +0004
027e82: 1210                                   |0017: const/4 v0, #int 1 // #1
027e84: 2802                                   |0018: goto 001a // +0002
027e86: 1200                                   |0019: const/4 v0, #int 0 // #0
027e88: 0f00                                   |001a: return v0
      catches       : (none)
      positions     :
        0x0000 line=52
      locals        :
        0x0000 - 0x001b reg=2 this Lcom/valentinedesigns/chromalink/OnlineMatch;

    #5              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'pump'
      type          : '(J)V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 11
      ins           : 3
      outs          : 4
      insns size    : 375 16-bit code units
028058:                                        |[028058] com.valentinedesigns.chromalink.OnlineMatch.pump:(J)V
028068: 5580 c202                              |0000: iget-boolean v0, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.started:Z // field@02c2
02806c: 3800 7401                              |0002: if-eqz v0, 0176 // +0174
028070: 5580 c402                              |0004: iget-boolean v0, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.stopped:Z // field@02c4
028074: 3900 7001                              |0006: if-nez v0, 0176 // +0170
028078: 5580 c502                              |0008: iget-boolean v0, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.verifiedResult:Z // field@02c5
02807c: 3900 6c01                              |000a: if-nez v0, 0176 // +016c
028080: 5580 bd02                              |000c: iget-boolean v0, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.pumping:Z // field@02bd
028084: 3800 0400                              |000e: if-eqz v0, 0012 // +0004
028088: 2900 6601                              |0010: goto/16 0176 // +0166
02808c: 5380 b502                              |0012: iget-wide v0, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.lastPumpAt:J // field@02b5
028090: 3100 0900                              |0014: cmp-long v0, v9, v0
028094: 3a00 5a01                              |0016: if-ltz v0, 0170 // +015a
028098: 5380 b502                              |0018: iget-wide v0, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.lastPumpAt:J // field@02b5
02809c: 9c00 0900                              |001a: sub-long v0, v9, v0
0280a0: 1602 d007                              |001c: const-wide/16 v2, #int 2000 // #7d0
0280a4: 3100 0002                              |001e: cmp-long v0, v0, v2
0280a8: 3d00 0400                              |0020: if-lez v0, 0024 // +0004
0280ac: 2900 4e01                              |0022: goto/16 0170 // +014e
0280b0: 5a89 b502                              |0024: iput-wide v9, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.lastPumpAt:J // field@02b5
0280b4: 5380 b302                              |0026: iget-wide v0, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.lastPeerAt:J // field@02b3
0280b8: 9c00 0900                              |0028: sub-long v0, v9, v0
0280bc: 1602 401f                              |002a: const-wide/16 v2, #int 8000 // #1f40
0280c0: 3100 0002                              |002c: cmp-long v0, v0, v2
0280c4: 3d00 1100                              |002e: if-lez v0, 003f // +0011
0280c8: 5489 b202                              |0030: iget-object v9, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.game:Lcom/valentinedesigns/chromalink/GameEngine; // field@02b2
0280cc: 5599 6601                              |0032: iget-boolean v9, v9, Lcom/valentinedesigns/chromalink/GameEngine;.ended:Z // field@0166
0280d0: 3809 0500                              |0034: if-eqz v9, 0039 // +0005
0280d4: 1a09 5101                              |0036: const-string v9, "Connection lost before the result was confirmed." // string@0151
0280d8: 2803                                   |0038: goto 003b // +0003
0280da: 1a09 bd04                              |0039: const-string v9, "The other player disconnected." // string@04bd
0280de: 6e20 8505 9800                         |003b: invoke-virtual {v8, v9}, Lcom/valentinedesigns/chromalink/OnlineMatch;.stop:(Ljava/lang/String;)V // method@0585
0280e4: 0e00                                   |003e: return-void
0280e6: 1210                                   |003f: const/4 v0, #int 1 // #1
0280e8: 5c80 bd02                              |0040: iput-boolean v0, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.pumping:Z // field@02bd
0280ec: 1201                                   |0042: const/4 v1, #int 0 // #0
0280ee: 5382 c302                              |0043: iget-wide v2, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.startedAt:J // field@02c3
0280f2: bc29                                   |0045: sub-long/2addr v9, v2
0280f4: 1602 1400                              |0046: const-wide/16 v2, #int 20 // #14
0280f8: be29                                   |0048: div-long/2addr v9, v2
0280fa: 1602 0000                              |0049: const-wide/16 v2, #int 0 // #0
0280fe: 7140 4506 32a9                         |004b: invoke-static {v2, v3, v9, v10}, Ljava/lang/Math;.max:(JJ)J // method@0645
028104: 0b09                                   |004e: move-result-wide v9
028106: 1702 c8af 0000                         |004f: const-wide/32 v2, #float 6.30584e-41 // #0000afc8
02810c: 7140 4906 32a9                         |0052: invoke-static {v2, v3, v9, v10}, Ljava/lang/Math;.min:(JJ)J // method@0649
028112: 0b09                                   |0055: move-result-wide v9
028114: 8499                                   |0056: long-to-int v9, v9
028116: d80a 0903                              |0057: add-int/lit8 v10, v9, #int 3 // #03
02811a: 5282 b102                              |0059: iget v2, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.completed:I // field@02b1
02811e: 1303 6400                              |005b: const/16 v3, #int 100 // #64
028122: b032                                   |005d: add-int/2addr v2, v3
028124: 7120 4806 2a00                         |005e: invoke-static {v10, v2}, Ljava/lang/Math;.min:(II)I // method@0648
02812a: 0a0a                                   |0061: move-result v10
02812c: 5582 c402                              |0062: iget-boolean v2, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.stopped:Z // field@02c4
028130: 3902 3000                              |0064: if-nez v2, 0094 // +0030
028134: 5482 b202                              |0066: iget-object v2, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.game:Lcom/valentinedesigns/chromalink/GameEngine; // field@02b2
028138: 5522 6601                              |0068: iget-boolean v2, v2, Lcom/valentinedesigns/chromalink/GameEngine;.ended:Z // field@0166
02813c: 3902 2a00                              |006a: if-nez v2, 0094 // +002a
028140: 5282 bc02                              |006c: iget v2, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.nextSent:I // field@02bc
028144: 35a2 2600                              |006e: if-ge v2, v10, 0094 // +0026
028148: 7010 7b05 0800                         |0070: invoke-direct {v8}, Lcom/valentinedesigns/chromalink/OnlineMatch;.canQueueLocalInput:()Z // method@057b
02814e: 5482 be02                              |0073: iget-object v2, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.queuedActions:Ljava/util/ArrayDeque; // field@02be
028152: 6e10 8606 0200                         |0075: invoke-virtual {v2}, Ljava/util/ArrayDeque;.size:()I // method@0686
028158: 0a02                                   |0078: move-result v2
02815a: 1244                                   |0079: const/4 v4, #int 4 // #4
02815c: 7120 4806 2400                         |007a: invoke-static {v4, v2}, Ljava/lang/Math;.min:(II)I // method@0648
028162: 0a02                                   |007d: move-result v2
028164: 2324 8001                              |007e: new-array v4, v2, [Ljava/lang/String; // type@0180
028168: 0115                                   |0080: move v5, v1
02816a: 3525 0f00                              |0081: if-ge v5, v2, 0090 // +000f
02816e: 5486 be02                              |0083: iget-object v6, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.queuedActions:Ljava/util/ArrayDeque; // field@02be
028172: 6e10 8406 0600                         |0085: invoke-virtual {v6}, Ljava/util/ArrayDeque;.remove:()Ljava/lang/Object; // method@0684
028178: 0c06                                   |0088: move-result-object v6
02817a: 1f06 4801                              |0089: check-cast v6, Ljava/lang/String; // type@0148
02817e: 4d06 0405                              |008b: aput-object v6, v4, v5
028182: d805 0501                              |008d: add-int/lit8 v5, v5, #int 1 // #01
028186: 28f2                                   |008f: goto 0081 // -000e
028188: 7020 7d05 4800                         |0090: invoke-direct {v8, v4}, Lcom/valentinedesigns/chromalink/OnlineMatch;.emitFrame:([Ljava/lang/String;)V // method@057d
02818e: 28cf                                   |0093: goto 0062 // -0031
028190: 558a c402                              |0094: iget-boolean v10, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.stopped:Z // field@02c4
028194: 390a bd00                              |0096: if-nez v10, 0153 // +00bd
028198: 548a b202                              |0098: iget-object v10, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.game:Lcom/valentinedesigns/chromalink/GameEngine; // field@02b2
02819c: 55aa 6601                              |009a: iget-boolean v10, v10, Lcom/valentinedesigns/chromalink/GameEngine;.ended:Z // field@0166
0281a0: 390a b700                              |009c: if-nez v10, 0153 // +00b7
0281a4: 528a b102                              |009e: iget v10, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.completed:I // field@02b1
0281a8: 359a b300                              |00a0: if-ge v10, v9, 0153 // +00b3
0281ac: 548a b802                              |00a2: iget-object v10, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.localFrames:Ljava/util/Map; // field@02b8
0281b0: 5282 b102                              |00a4: iget v2, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.completed:I // field@02b1
0281b4: 7110 3506 0200                         |00a6: invoke-static {v2}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@0635
0281ba: 0c02                                   |00a9: move-result-object v2
0281bc: 7220 9e06 2a00                         |00aa: invoke-interface {v10, v2}, Ljava/util/Map;.containsKey:(Ljava/lang/Object;)Z // method@069e
0281c2: 0a0a                                   |00ad: move-result v10
0281c4: 380a a500                              |00ae: if-eqz v10, 0153 // +00a5
0281c8: 548a c002                              |00b0: iget-object v10, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.remoteFrames:Ljava/util/Map; // field@02c0
0281cc: 5282 b102                              |00b2: iget v2, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.completed:I // field@02b1
0281d0: 7110 3506 0200                         |00b4: invoke-static {v2}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@0635
0281d6: 0c02                                   |00b7: move-result-object v2
0281d8: 7220 9e06 2a00                         |00b8: invoke-interface {v10, v2}, Ljava/util/Map;.containsKey:(Ljava/lang/Object;)Z // method@069e
0281de: 0a0a                                   |00bb: move-result v10
0281e0: 380a 9700                              |00bc: if-eqz v10, 0153 // +0097
0281e4: 548a b802                              |00be: iget-object v10, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.localFrames:Ljava/util/Map; // field@02b8
0281e8: 5282 b102                              |00c0: iget v2, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.completed:I // field@02b1
0281ec: 7110 3506 0200                         |00c2: invoke-static {v2}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@0635
0281f2: 0c02                                   |00c5: move-result-object v2
0281f4: 7220 a106 2a00                         |00c6: invoke-interface {v10, v2}, Ljava/util/Map;.remove:(Ljava/lang/Object;)Ljava/lang/Object; // method@06a1
0281fa: 0c0a                                   |00c9: move-result-object v10
0281fc: 1f0a 8001                              |00ca: check-cast v10, [Ljava/lang/String; // type@0180
028200: 5482 c002                              |00cc: iget-object v2, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.remoteFrames:Ljava/util/Map; // field@02c0
028204: 5284 b102                              |00ce: iget v4, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.completed:I // field@02b1
028208: 7110 3506 0400                         |00d0: invoke-static {v4}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@0635
02820e: 0c04                                   |00d3: move-result-object v4
028210: 7220 a106 4200                         |00d4: invoke-interface {v2, v4}, Ljava/util/Map;.remove:(Ljava/lang/Object;)Ljava/lang/Object; // method@06a1
028216: 0c02                                   |00d7: move-result-object v2
028218: 1f02 8001                              |00d8: check-cast v2, [Ljava/lang/String; // type@0180
02821c: 5284 ba02                              |00da: iget v4, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.localSide:I // field@02ba
028220: 3904 0400                              |00dc: if-nez v4, 00e0 // +0004
028224: 07a4                                   |00de: move-object v4, v10
028226: 2802                                   |00df: goto 00e1 // +0002
028228: 0724                                   |00e0: move-object v4, v2
02822a: 5285 ba02                              |00e1: iget v5, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.localSide:I // field@02ba
02822e: 3905 0300                              |00e3: if-nez v5, 00e6 // +0003
028232: 072a                                   |00e5: move-object v10, v2
028234: 2142                                   |00e6: array-length v2, v4
028236: 0115                                   |00e7: move v5, v1
028238: 3525 0c00                              |00e8: if-ge v5, v2, 00f4 // +000c
02823c: 4606 0405                              |00ea: aget-object v6, v4, v5
028240: 5487 b202                              |00ec: iget-object v7, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.game:Lcom/valentinedesigns/chromalink/GameEngine; // field@02b2
028244: 6e30 1e03 1706                         |00ee: invoke-virtual {v7, v1, v6}, Lcom/valentinedesigns/chromalink/GameEngine;.action:(ILjava/lang/String;)V // method@031e
02824a: d805 0501                              |00f1: add-int/lit8 v5, v5, #int 1 // #01
02824e: 28f5                                   |00f3: goto 00e8 // -000b
028250: 21a2                                   |00f4: array-length v2, v10
028252: 0114                                   |00f5: move v4, v1
028254: 3524 0c00                              |00f6: if-ge v4, v2, 0102 // +000c
028258: 4605 0a04                              |00f8: aget-object v5, v10, v4
02825c: 5486 b202                              |00fa: iget-object v6, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.game:Lcom/valentinedesigns/chromalink/GameEngine; // field@02b2
028260: 6e30 1e03 0605                         |00fc: invoke-virtual {v6, v0, v5}, Lcom/valentinedesigns/chromalink/GameEngine;.action:(ILjava/lang/String;)V // method@031e
028266: d804 0401                              |00ff: add-int/lit8 v4, v4, #int 1 // #01
02826a: 28f5                                   |0101: goto 00f6 // -000b
02826c: 548a b202                              |0102: iget-object v10, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.game:Lcom/valentinedesigns/chromalink/GameEngine; // field@02b2
028270: 1502 a041                              |0104: const/high16 v2, #int 1101004800 // #41a0
028274: 6e20 5b03 2a00                         |0106: invoke-virtual {v10, v2}, Lcom/valentinedesigns/chromalink/GameEngine;.update:(F)V // method@035b
02827a: 528a b102                              |0109: iget v10, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.completed:I // field@02b1
02827e: b00a                                   |010b: add-int/2addr v10, v0
028280: 598a b102                              |010c: iput v10, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.completed:I // field@02b1
028284: 7010 7b05 0800                         |010e: invoke-direct {v8}, Lcom/valentinedesigns/chromalink/OnlineMatch;.canQueueLocalInput:()Z // method@057b
02828a: 528a b102                              |0111: iget v10, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.completed:I // field@02b1
02828e: dc0a 0a32                              |0113: rem-int/lit8 v10, v10, #int 50 // #32
028292: 380a 0800                              |0115: if-eqz v10, 011d // +0008
028296: 548a b202                              |0117: iget-object v10, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.game:Lcom/valentinedesigns/chromalink/GameEngine; // field@02b2
02829a: 55aa 6601                              |0119: iget-boolean v10, v10, Lcom/valentinedesigns/chromalink/GameEngine;.ended:Z // field@0166
02829e: 380a 1f00                              |011b: if-eqz v10, 013a // +001f
0282a2: 548a b202                              |011d: iget-object v10, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.game:Lcom/valentinedesigns/chromalink/GameEngine; // field@02b2
0282a6: 6e10 4b03 0a00                         |011f: invoke-virtual {v10}, Lcom/valentinedesigns/chromalink/GameEngine;.onlineStateHash:()Ljava/lang/String; // method@034b
0282ac: 0c0a                                   |0122: move-result-object v10
0282ae: 5482 b902                              |0123: iget-object v2, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.localHashes:Ljava/util/Map; // field@02b9
0282b2: 5284 b102                              |0125: iget v4, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.completed:I // field@02b1
0282b6: 7110 3506 0400                         |0127: invoke-static {v4}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@0635
0282bc: 0c04                                   |012a: move-result-object v4
0282be: 7230 a006 420a                         |012b: invoke-interface {v2, v4, v10}, Ljava/util/Map;.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; // method@06a0
0282c4: 5482 b702                              |012e: iget-object v2, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.listener:Lcom/valentinedesigns/chromalink/OnlineMatch$Listener; // field@02b7
0282c8: 5284 b102                              |0130: iget v4, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.completed:I // field@02b1
0282cc: 7230 7405 420a                         |0132: invoke-interface {v2, v4, v10}, Lcom/valentinedesigns/chromalink/OnlineMatch$Listener;.onSendChecksum:(ILjava/lang/String;)V // method@0574
0282d2: 528a b102                              |0135: iget v10, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.completed:I // field@02b1
0282d6: 7020 8705 a800                         |0137: invoke-direct {v8, v10}, Lcom/valentinedesigns/chromalink/OnlineMatch;.verifyHash:(I)V // method@0587
0282dc: 548a b702                              |013a: iget-object v10, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.listener:Lcom/valentinedesigns/chromalink/OnlineMatch$Listener; // field@02b7
0282e0: 5282 b102                              |013c: iget v2, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.completed:I // field@02b1
0282e4: 7220 7305 2a00                         |013e: invoke-interface {v10, v2}, Lcom/valentinedesigns/chromalink/OnlineMatch$Listener;.onProgress:(I)V // method@0573
0282ea: 558a c402                              |0141: iget-boolean v10, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.stopped:Z // field@02c4
0282ee: 390a 0e00                              |0143: if-nez v10, 0151 // +000e
0282f2: 528a b102                              |0145: iget v10, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.completed:I // field@02b1
0282f6: 5282 b602                              |0147: iget v2, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.lastVerifiedChecksum:I // field@02b6
0282fa: b12a                                   |0149: sub-int/2addr v10, v2
0282fc: 373a 0700                              |014a: if-le v10, v3, 0151 // +0007
028300: 1a0a b604                              |014c: const-string v10, "The games stopped matching up, so the round ended." // string@04b6
028304: 6e20 8505 a800                         |014e: invoke-virtual {v8, v10}, Lcom/valentinedesigns/chromalink/OnlineMatch;.stop:(Ljava/lang/String;)V // method@0585
02830a: 2900 43ff                              |0151: goto/16 0094 // -00bd
02830e: 5589 c402                              |0153: iget-boolean v9, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.stopped:Z // field@02c4
028312: 3909 1400                              |0155: if-nez v9, 0169 // +0014
028316: 5489 b202                              |0157: iget-object v9, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.game:Lcom/valentinedesigns/chromalink/GameEngine; // field@02b2
02831a: 5599 6601                              |0159: iget-boolean v9, v9, Lcom/valentinedesigns/chromalink/GameEngine;.ended:Z // field@0166
02831e: 3909 0e00                              |015b: if-nez v9, 0169 // +000e
028322: 5289 b102                              |015d: iget v9, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.completed:I // field@02b1
028326: 140a c8af 0000                         |015f: const v10, #float 6.30584e-41 // #0000afc8
02832c: 34a9 0700                              |0162: if-lt v9, v10, 0169 // +0007
028330: 1a09 ca04                              |0164: const-string v9, "This Alpha match reached its 15-minute limit." // string@04ca
028334: 6e20 8505 9800                         |0166: invoke-virtual {v8, v9}, Lcom/valentinedesigns/chromalink/OnlineMatch;.stop:(Ljava/lang/String;)V // method@0585
02833a: 5c81 bd02                              |0169: iput-boolean v1, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.pumping:Z // field@02bd
02833e: 0e00                                   |016b: return-void
028340: 0d09                                   |016c: move-exception v9
028342: 5c81 bd02                              |016d: iput-boolean v1, v8, Lcom/valentinedesigns/chromalink/OnlineMatch;.pumping:Z // field@02bd
028346: 2709                                   |016f: throw v9
028348: 1a09 b804                              |0170: const-string v9, "The match ended because the app was interrupted." // string@04b8
02834c: 6e20 8505 9800                         |0172: invoke-virtual {v8, v9}, Lcom/valentinedesigns/chromalink/OnlineMatch;.stop:(Ljava/lang/String;)V // method@0585
028352: 0e00                                   |0175: return-void
028354: 0e00                                   |0176: return-void
      catches       : 1
        0x0043 - 0x0169
          <any> -> 0x016c
      positions     :
        0x0000 line=90
        0x0012 line=91
        0x0024 line=92
        0x0026 line=93
        0x0030 line=94
        0x003f line=96
        0x0042 line=98
        0x0057 line=99
        0x0062 line=100
        0x0070 line=101
        0x0073 line=102
        0x0080 line=103
        0x0090 line=104
        0x0093 line=105
        0x0094 line=106
        0x00a6 line=107
        0x00be line=108
        0x00da line=109
        0x00e6 line=110
        0x00f4 line=111
        0x0102 line=112
        0x010e line=113
        0x0111 line=114
        0x011d line=115
        0x012e line=116
        0x0135 line=117
        0x013a line=119
        0x0141 line=120
        0x014c line=121
        0x0151 line=123
        0x0153 line=124
        0x0169 line=125
        0x016b line=126
        0x016c line=125
        0x0170 line=91
        0x0176 line=90
      locals        :
        0x0000 - 0x0177 reg=8 this Lcom/valentinedesigns/chromalink/OnlineMatch;
        0x0000 - 0x0177 reg=9 (null) J

    #6              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'receiveChecksum'
      type          : '(ILjava/lang/String;J)V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 7
      ins           : 5
      outs          : 3
      insns size    : 73 16-bit code units
028364:                                        |[028364] com.valentinedesigns.chromalink.OnlineMatch.receiveChecksum:(ILjava/lang/String;J)V
028374: 5520 c402                              |0000: iget-boolean v0, v2, Lcom/valentinedesigns/chromalink/OnlineMatch;.stopped:Z // field@02c4
028378: 3900 4600                              |0002: if-nez v0, 0048 // +0046
02837c: 5520 c502                              |0004: iget-boolean v0, v2, Lcom/valentinedesigns/chromalink/OnlineMatch;.verifiedResult:Z // field@02c5
028380: 3800 0300                              |0006: if-eqz v0, 0009 // +0003
028384: 2840                                   |0008: goto 0048 // +0040
028386: 5520 c202                              |0009: iget-boolean v0, v2, Lcom/valentinedesigns/chromalink/OnlineMatch;.started:Z // field@02c2
02838a: 3800 3700                              |000b: if-eqz v0, 0042 // +0037
02838e: 5220 b402                              |000d: iget v0, v2, Lcom/valentinedesigns/chromalink/OnlineMatch;.lastPeerChecksum:I // field@02b4
028392: 3703 3300                              |000f: if-le v3, v0, 0042 // +0033
028396: 5220 b402                              |0011: iget v0, v2, Lcom/valentinedesigns/chromalink/OnlineMatch;.lastPeerChecksum:I // field@02b4
02839a: d800 0032                              |0013: add-int/lit8 v0, v0, #int 50 // #32
02839e: 3603 2d00                              |0015: if-gt v3, v0, 0042 // +002d
0283a2: 5220 b102                              |0017: iget v0, v2, Lcom/valentinedesigns/chromalink/OnlineMatch;.completed:I // field@02b1
0283a6: d800 0064                              |0019: add-int/lit8 v0, v0, #int 100 // #64
0283aa: 3603 2700                              |001b: if-gt v3, v0, 0042 // +0027
0283ae: 3804 2500                              |001d: if-eqz v4, 0042 // +0025
0283b2: 1a00 8305                              |001f: const-string v0, "[0-9a-f]{16}" // string@0583
0283b6: 6e20 6006 0400                         |0021: invoke-virtual {v4, v0}, Ljava/lang/String;.matches:(Ljava/lang/String;)Z // method@0660
0283bc: 0a00                                   |0024: move-result v0
0283be: 3800 1d00                              |0025: if-eqz v0, 0042 // +001d
0283c2: 5420 c102                              |0027: iget-object v0, v2, Lcom/valentinedesigns/chromalink/OnlineMatch;.remoteHashes:Ljava/util/Map; // field@02c1
0283c6: 7210 a206 0000                         |0029: invoke-interface {v0}, Ljava/util/Map;.size:()I // method@06a2
0283cc: 0a00                                   |002c: move-result v0
0283ce: 1231                                   |002d: const/4 v1, #int 3 // #3
0283d0: 3410 0300                              |002e: if-lt v0, v1, 0031 // +0003
0283d4: 2812                                   |0030: goto 0042 // +0012
0283d6: 5923 b402                              |0031: iput v3, v2, Lcom/valentinedesigns/chromalink/OnlineMatch;.lastPeerChecksum:I // field@02b4
0283da: 5a25 b302                              |0033: iput-wide v5, v2, Lcom/valentinedesigns/chromalink/OnlineMatch;.lastPeerAt:J // field@02b3
0283de: 5425 c102                              |0035: iget-object v5, v2, Lcom/valentinedesigns/chromalink/OnlineMatch;.remoteHashes:Ljava/util/Map; // field@02c1
0283e2: 7110 3506 0300                         |0037: invoke-static {v3}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@0635
0283e8: 0c06                                   |003a: move-result-object v6
0283ea: 7230 a006 6504                         |003b: invoke-interface {v5, v6, v4}, Ljava/util/Map;.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; // method@06a0
0283f0: 7020 8705 3200                         |003e: invoke-direct {v2, v3}, Lcom/valentinedesigns/chromalink/OnlineMatch;.verifyHash:(I)V // method@0587
0283f6: 0e00                                   |0041: return-void
0283f8: 1a03 b504                              |0042: const-string v3, "The games couldn't verify the result. The round has ended." // string@04b5
0283fc: 6e20 8505 3200                         |0044: invoke-virtual {v2, v3}, Lcom/valentinedesigns/chromalink/OnlineMatch;.stop:(Ljava/lang/String;)V // method@0585
028402: 0e00                                   |0047: return-void
028404: 0e00                                   |0048: return-void
      catches       : (none)
      positions     :
        0x0000 line=141
        0x0009 line=142
        0x001f line=143
        0x0031 line=146
        0x0041 line=147
        0x0042 line=144
        0x0048 line=141
      locals        :
        0x0000 - 0x0049 reg=2 this Lcom/valentinedesigns/chromalink/OnlineMatch;
        0x0000 - 0x0049 reg=3 (null) I
        0x0000 - 0x0049 reg=4 (null) Ljava/lang/String;
        0x0000 - 0x0049 reg=5 (null) J

    #7              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'receiveFrame'
      type          : '(I[Ljava/lang/String;J)V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 8
      ins           : 5
      outs          : 3
      insns size    : 99 16-bit code units
028408:                                        |[028408] com.valentinedesigns.chromalink.OnlineMatch.receiveFrame:(I[Ljava/lang/String;J)V
028418: 5530 c402                              |0000: iget-boolean v0, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.stopped:Z // field@02c4
02841c: 3900 6000                              |0002: if-nez v0, 0062 // +0060
028420: 5530 c502                              |0004: iget-boolean v0, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.verifiedResult:Z // field@02c5
028424: 3800 0300                              |0006: if-eqz v0, 0009 // +0003
028428: 285a                                   |0008: goto 0062 // +005a
02842a: 5530 c202                              |0009: iget-boolean v0, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.started:Z // field@02c2
02842e: 3800 5100                              |000b: if-eqz v0, 005c // +0051
028432: 5230 bb02                              |000d: iget v0, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.nextReceived:I // field@02bb
028436: 3304 4d00                              |000f: if-ne v4, v0, 005c // +004d
02843a: 3a04 4b00                              |0011: if-ltz v4, 005c // +004b
02843e: 5230 b102                              |0013: iget v0, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.completed:I // field@02b1
028442: 1301 6400                              |0015: const/16 v1, #int 100 // #64
028446: b010                                   |0017: add-int/2addr v0, v1
028448: 3604 4400                              |0018: if-gt v4, v0, 005c // +0044
02844c: 3805 4200                              |001a: if-eqz v5, 005c // +0042
028450: 2150                                   |001c: array-length v0, v5
028452: 1242                                   |001d: const/4 v2, #int 4 // #4
028454: 3620 3e00                              |001e: if-gt v0, v2, 005c // +003e
028458: 1230                                   |0020: const/4 v0, #int 3 // #3
02845a: 3504 0500                              |0021: if-ge v4, v0, 0026 // +0005
02845e: 2150                                   |0023: array-length v0, v5
028460: 3900 3800                              |0024: if-nez v0, 005c // +0038
028464: 5430 c002                              |0026: iget-object v0, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.remoteFrames:Ljava/util/Map; // field@02c0
028468: 7210 a206 0000                         |0028: invoke-interface {v0}, Ljava/util/Map;.size:()I // method@06a2
02846e: 0a00                                   |002b: move-result v0
028470: 3410 0300                              |002c: if-lt v0, v1, 002f // +0003
028474: 282e                                   |002e: goto 005c // +002e
028476: 2150                                   |002f: array-length v0, v5
028478: 1201                                   |0030: const/4 v1, #int 0 // #0
02847a: 3501 1300                              |0031: if-ge v1, v0, 0044 // +0013
02847e: 4602 0501                              |0033: aget-object v2, v5, v1
028482: 7110 8605 0200                         |0035: invoke-static {v2}, Lcom/valentinedesigns/chromalink/OnlineMatch;.validAction:(Ljava/lang/String;)Z // method@0586
028488: 0a02                                   |0038: move-result v2
02848a: 3902 0800                              |0039: if-nez v2, 0041 // +0008
02848e: 1a04 b004                              |003b: const-string v4, "The connection sent an invalid move. The round has ended." // string@04b0
028492: 6e20 8505 4300                         |003d: invoke-virtual {v3, v4}, Lcom/valentinedesigns/chromalink/OnlineMatch;.stop:(Ljava/lang/String;)V // method@0585
028498: 0e00                                   |0040: return-void
02849a: d801 0101                              |0041: add-int/lit8 v1, v1, #int 1 // #01
02849e: 28ee                                   |0043: goto 0031 // -0012
0284a0: 5430 c002                              |0044: iget-object v0, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.remoteFrames:Ljava/util/Map; // field@02c0
0284a4: 7110 3506 0400                         |0046: invoke-static {v4}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@0635
0284aa: 0c04                                   |0049: move-result-object v4
0284ac: 6e10 cc06 0500                         |004a: invoke-virtual {v5}, [Ljava/lang/String;.clone:()Ljava/lang/Object; // method@06cc
0284b2: 0c05                                   |004d: move-result-object v5
0284b4: 1f05 8001                              |004e: check-cast v5, [Ljava/lang/String; // type@0180
0284b8: 7230 a006 4005                         |0050: invoke-interface {v0, v4, v5}, Ljava/util/Map;.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; // method@06a0
0284be: 5234 bb02                              |0053: iget v4, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.nextReceived:I // field@02bb
0284c2: d804 0401                              |0055: add-int/lit8 v4, v4, #int 1 // #01
0284c6: 5934 bb02                              |0057: iput v4, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.nextReceived:I // field@02bb
0284ca: 5a36 b302                              |0059: iput-wide v6, v3, Lcom/valentinedesigns/chromalink/OnlineMatch;.lastPeerAt:J // field@02b3
0284ce: 0e00                                   |005b: return-void
0284d0: 1a04 b104                              |005c: const-string v4, "The connection sent unexpected game data. The round has ended." // string@04b1
0284d4: 6e20 8505 4300                         |005e: invoke-virtual {v3, v4}, Lcom/valentinedesigns/chromalink/OnlineMatch;.stop:(Ljava/lang/String;)V // method@0585
0284da: 0e00                                   |0061: return-void
0284dc: 0e00                                   |0062: return-void
      catches       : (none)
      positions     :
        0x0000 line=132
        0x0009 line=133
        0x0028 line=134
        0x002f line=137
        0x0044 line=138
        0x005b line=139
        0x005c line=135
        0x0062 line=132
      locals        :
        0x0000 - 0x0063 reg=3 this Lcom/valentinedesigns/chromalink/OnlineMatch;
        0x0000 - 0x0063 reg=4 (null) I
        0x0000 - 0x0063 reg=5 (null) [Ljava/lang/String;
        0x0000 - 0x0063 reg=6 (null) J

    #8              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'resultVerified'
      type          : '()Z'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 2
      ins           : 1
      outs          : 0
      insns size    : 3 16-bit code units
027e8c:                                        |[027e8c] com.valentinedesigns.chromalink.OnlineMatch.resultVerified:()Z
027e9c: 5510 c502                              |0000: iget-boolean v0, v1, Lcom/valentinedesigns/chromalink/OnlineMatch;.verifiedResult:Z // field@02c5
027ea0: 0f00                                   |0002: return v0
      catches       : (none)
      positions     :
        0x0000 line=47
      locals        :
        0x0000 - 0x0003 reg=1 this Lcom/valentinedesigns/chromalink/OnlineMatch;

    #9              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'start'
      type          : '(J)V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 4
      ins           : 3
      outs          : 2
      insns size    : 33 16-bit code units
0284e0:                                        |[0284e0] com.valentinedesigns.chromalink.OnlineMatch.start:(J)V
0284f0: 5510 c202                              |0000: iget-boolean v0, v1, Lcom/valentinedesigns/chromalink/OnlineMatch;.started:Z // field@02c2
0284f4: 3900 1e00                              |0002: if-nez v0, 0020 // +001e
0284f8: 5510 c402                              |0004: iget-boolean v0, v1, Lcom/valentinedesigns/chromalink/OnlineMatch;.stopped:Z // field@02c4
0284fc: 3800 0300                              |0006: if-eqz v0, 0009 // +0003
028500: 2818                                   |0008: goto 0020 // +0018
028502: 1210                                   |0009: const/4 v0, #int 1 // #1
028504: 5c10 c202                              |000a: iput-boolean v0, v1, Lcom/valentinedesigns/chromalink/OnlineMatch;.started:Z // field@02c2
028508: 5a12 b302                              |000c: iput-wide v2, v1, Lcom/valentinedesigns/chromalink/OnlineMatch;.lastPeerAt:J // field@02b3
02850c: 5a12 b502                              |000e: iput-wide v2, v1, Lcom/valentinedesigns/chromalink/OnlineMatch;.lastPumpAt:J // field@02b5
028510: 5a12 c302                              |0010: iput-wide v2, v1, Lcom/valentinedesigns/chromalink/OnlineMatch;.startedAt:J // field@02c3
028514: 1202                                   |0012: const/4 v2, #int 0 // #0
028516: 0123                                   |0013: move v3, v2
028518: 1230                                   |0014: const/4 v0, #int 3 // #3
02851a: 3503 0a00                              |0015: if-ge v3, v0, 001f // +000a
02851e: 2320 8001                              |0017: new-array v0, v2, [Ljava/lang/String; // type@0180
028522: 7020 7d05 0100                         |0019: invoke-direct {v1, v0}, Lcom/valentinedesigns/chromalink/OnlineMatch;.emitFrame:([Ljava/lang/String;)V // method@057d
028528: d803 0301                              |001c: add-int/lit8 v3, v3, #int 1 // #01
02852c: 28f6                                   |001e: goto 0014 // -000a
02852e: 0e00                                   |001f: return-void
028530: 0e00                                   |0020: return-void
      catches       : (none)
      positions     :
        0x0000 line=55
        0x0009 line=56
        0x0012 line=58
        0x001f line=59
        0x0020 line=55
      locals        :
        0x0000 - 0x0021 reg=1 this Lcom/valentinedesigns/chromalink/OnlineMatch;
        0x0000 - 0x0021 reg=2 (null) J

    #10              : (in Lcom/valentinedesigns/chromalink/OnlineMatch;)
      name          : 'stop'
      type          : '(Ljava/lang/String;)V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 3
      ins           : 2
      outs          : 2
      insns size    : 43 16-bit code units
028534:                                        |[028534] com.valentinedesigns.chromalink.OnlineMatch.stop:(Ljava/lang/String;)V
028544: 5510 c402                              |0000: iget-boolean v0, v1, Lcom/valentinedesigns/chromalink/OnlineMatch;.stopped:Z // field@02c4
028548: 3800 0300                              |0002: if-eqz v0, 0005 // +0003
02854c: 0e00                                   |0004: return-void
02854e: 1210                                   |0005: const/4 v0, #int 1 // #1
028550: 5c10 c402                              |0006: iput-boolean v0, v1, Lcom/valentinedesigns/chromalink/OnlineMatch;.stopped:Z // field@02c4
028554: 5410 be02                              |0008: iget-object v0, v1, Lcom/valentinedesigns/chromalink/OnlineMatch;.queuedActions:Ljava/util/ArrayDeque; // field@02be
028558: 6e10 8106 0000                         |000a: invoke-virtual {v0}, Ljava/util/ArrayDeque;.clear:()V // method@0681
02855e: 5410 b802                              |000d: iget-object v0, v1, Lcom/valentinedesigns/chromalink/OnlineMatch;.localFrames:Ljava/util/Map; // field@02b8
028562: 7210 9d06 0000                         |000f: invoke-interface {v0}, Ljava/util/Map;.clear:()V // method@069d
028568: 5410 c002                              |0012: iget-object v0, v1, Lcom/valentinedesigns/chromalink/OnlineMatch;.remoteFrames:Ljava/util/Map; // field@02c0
02856c: 7210 9d06 0000                         |0014: invoke-interface {v0}, Ljava/util/Map;.clear:()V // method@069d
028572: 5410 b902                              |0017: iget-object v0, v1, Lcom/valentinedesigns/chromalink/OnlineMatch;.localHashes:Ljava/util/Map; // field@02b9
028576: 7210 9d06 0000                         |0019: invoke-interface {v0}, Ljava/util/Map;.clear:()V // method@069d
02857c: 5410 c102                              |001c: iget-object v0, v1, Lcom/valentinedesigns/chromalink/OnlineMatch;.remoteHashes:Ljava/util/Map; // field@02c1
028580: 7210 9d06 0000                         |001e: invoke-interface {v0}, Ljava/util/Map;.clear:()V // method@069d
028586: 5410 b702                              |0021: iget-object v0, v1, Lcom/valentinedesigns/chromalink/OnlineMatch;.listener:Lcom/valentinedesigns/chromalink/OnlineMatch$Listener; // field@02b7
02858a: 3902 0400                              |0023: if-nez v2, 0027 // +0004
02858e: 1a02 bb04                              |0025: const-string v2, "The match ended." // string@04bb
028592: 7220 7605 2000                         |0027: invoke-interface {v0, v2}, Lcom/valentinedesigns/chromalink/OnlineMatch$Listener;.onStopped:(Ljava/lang/String;)V // method@0576
028598: 0e00                                   |002a: return-void
      catches       : (none)
      positions     :
        0x0000 line=159
        0x0005 line=160
        0x0021 line=161
        0x002a line=162
      locals        :
        0x0000 - 0x002b reg=1 this Lcom/valentinedesigns/chromalink/OnlineMatch;
        0x0000 - 0x002b reg=2 (null) Ljava/lang/String;

  source_file_idx   : 1023 (OnlineMatch.java)

