Class #49            -
  Class descriptor  : 'Lcom/valentinedesigns/chromalink/GameEngine;'
  Access flags      : 0x0011 (PUBLIC FINAL)
  Superclass        : 'Ljava/lang/Object;'
  Interfaces        -
  Static fields     -
    #0              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'BOT_ACTIONS'
      type          : '[Ljava/lang/String;'
      access        : 0x001a (PRIVATE STATIC FINAL)
      value         : null
    #1              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'BOT_INPUT'
      type          : '[F'
      access        : 0x001a (PRIVATE STATIC FINAL)
      value         : null
    #2              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'BOT_QUALITY'
      type          : '[F'
      access        : 0x001a (PRIVATE STATIC FINAL)
      value         : null
    #3              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'BOT_THINK'
      type          : '[F'
      access        : 0x001a (PRIVATE STATIC FINAL)
      value         : null
    #4              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'COLS'
      type          : 'I'
      access        : 0x0019 (PUBLIC STATIC FINAL)
      value         : 6
    #5              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'EMPTY'
      type          : 'I'
      access        : 0x0019 (PUBLIC STATIC FINAL)
      value         : -2
    #6              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'FALL'
      type          : '[F'
      access        : 0x001a (PRIVATE STATIC FINAL)
      value         : null
    #7              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'GARBAGE'
      type          : 'I'
      access        : 0x0019 (PUBLIC STATIC FINAL)
      value         : -1
    #8              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'INPUT_DECAY'
      type          : '[D'
      access        : 0x001a (PRIVATE STATIC FINAL)
      value         : null
    #9              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'KICKS'
      type          : '[[I'
      access        : 0x001a (PRIVATE STATIC FINAL)
      value         : null
    #10              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'LIVE_DECAY'
      type          : '[D'
      access        : 0x001a (PRIVATE STATIC FINAL)
      value         : null
    #11              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'LIVE_FALL'
      type          : '[F'
      access        : 0x001a (PRIVATE STATIC FINAL)
      value         : null
    #12              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'NEIGHBORS'
      type          : '[[I'
      access        : 0x001a (PRIVATE STATIC FINAL)
      value         : null
    #13              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'OFFSETS'
      type          : '[[I'
      access        : 0x001a (PRIVATE STATIC FINAL)
      value         : null
    #14              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'ROWS'
      type          : 'I'
      access        : 0x0019 (PUBLIC STATIC FINAL)
      value         : 12
    #15              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'THINK_DECAY'
      type          : '[D'
      access        : 0x001a (PRIVATE STATIC FINAL)
    #16              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'THRESHOLDS'
      type          : '[I'
      access        : 0x001a (PRIVATE STATIC FINAL)
  Instance fields   -
    #0              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'clearedColorMask'
      type          : 'I'
      access        : 0x0002 (PRIVATE)
    #1              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'clockMs'
      type          : 'D'
      access        : 0x0002 (PRIVATE)
    #2              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'cpu'
      type          : 'Lcom/valentinedesigns/chromalink/GameEngine$Well;'
      access        : 0x0011 (PUBLIC FINAL)
    #3              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'elapsedMs'
      type          : 'J'
      access        : 0x0001 (PUBLIC)
    #4              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'ended'
      type          : 'Z'
      access        : 0x0001 (PUBLIC)
    #5              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'heat'
      type          : 'I'
      access        : 0x0001 (PUBLIC)
    #6              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'lesson'
      type          : 'I'
      access        : 0x0012 (PRIVATE FINAL)
    #7              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'listener'
      type          : 'Lcom/valentinedesigns/chromalink/GameEngine$Listener;'
      access        : 0x0001 (PUBLIC)
    #8              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'message'
      type          : 'Ljava/lang/String;'
      access        : 0x0001 (PUBLIC)
    #9              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'mode'
      type          : 'Lcom/valentinedesigns/chromalink/GameEngine$Mode;'
      access        : 0x0001 (PUBLIC)
    #10              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'onlineLocalSide'
      type          : 'I'
      access        : 0x0012 (PRIVATE FINAL)
    #11              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'paused'
      type          : 'Z'
      access        : 0x0001 (PUBLIC)
    #12              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'player'
      type          : 'Lcom/valentinedesigns/chromalink/GameEngine$Well;'
      access        : 0x0011 (PUBLIC FINAL)
    #13              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'pressure'
      type          : 'F'
      access        : 0x0001 (PUBLIC)
    #14              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'seed'
      type          : 'J'
      access        : 0x0012 (PRIVATE FINAL)
    #15              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'stage'
      type          : 'I'
      access        : 0x0002 (PRIVATE)
    #16              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'startStage'
      type          : 'I'
      access        : 0x0012 (PRIVATE FINAL)
    #17              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'won'
      type          : 'Z'
      access        : 0x0001 (PUBLIC)
  Direct methods    -
    #0              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : '<clinit>'
      type          : '()V'
      access        : 0x10008 (STATIC CONSTRUCTOR)
      code          -
      registers     : 11
      ins           : 0
      outs          : 7
      insns size    : 270 16-bit code units
01732c:                                        |[01732c] com.valentinedesigns.chromalink.GameEngine.<clinit>:()V
01733c: 1200                                   |0000: const/4 v0, #int 0 // #0
01733e: 12f1                                   |0001: const/4 v1, #int -1 // #ff
017340: 2420 7501 1000                         |0002: filled-new-array {v0, v1}, [I // type@0175
017346: 0c02                                   |0005: move-result-object v2
017348: 1213                                   |0006: const/4 v3, #int 1 // #1
01734a: 2420 7501 0300                         |0007: filled-new-array {v3, v0}, [I // type@0175
017350: 0c04                                   |000a: move-result-object v4
017352: 2420 7501 3000                         |000b: filled-new-array {v0, v3}, [I // type@0175
017358: 0c05                                   |000e: move-result-object v5
01735a: 2420 7501 0100                         |000f: filled-new-array {v1, v0}, [I // type@0175
017360: 0c06                                   |0012: move-result-object v6
017362: 2440 8401 4265                         |0013: filled-new-array {v2, v4, v5, v6}, [[I // type@0184
017368: 0c02                                   |0016: move-result-object v2
01736a: 6902 5e01                              |0017: sput-object v2, Lcom/valentinedesigns/chromalink/GameEngine;.OFFSETS:[[I // field@015e
01736e: 2420 7501 0300                         |0019: filled-new-array {v3, v0}, [I // type@0175
017374: 0c02                                   |001c: move-result-object v2
017376: 2420 7501 0100                         |001d: filled-new-array {v1, v0}, [I // type@0175
01737c: 0c04                                   |0020: move-result-object v4
01737e: 2420 7501 3000                         |0021: filled-new-array {v0, v3}, [I // type@0175
017384: 0c05                                   |0024: move-result-object v5
017386: 2420 7501 1000                         |0025: filled-new-array {v0, v1}, [I // type@0175
01738c: 0c06                                   |0028: move-result-object v6
01738e: 2440 8401 4265                         |0029: filled-new-array {v2, v4, v5, v6}, [[I // type@0184
017394: 0c02                                   |002c: move-result-object v2
017396: 6902 5d01                              |002d: sput-object v2, Lcom/valentinedesigns/chromalink/GameEngine;.NEIGHBORS:[[I // field@015d
01739a: 2420 7501 0000                         |002f: filled-new-array {v0, v0}, [I // type@0175
0173a0: 0c04                                   |0032: move-result-object v4
0173a2: 2420 7501 0100                         |0033: filled-new-array {v1, v0}, [I // type@0175
0173a8: 0c05                                   |0036: move-result-object v5
0173aa: 2420 7501 0300                         |0037: filled-new-array {v3, v0}, [I // type@0175
0173b0: 0c06                                   |003a: move-result-object v6
0173b2: 2420 7501 1000                         |003b: filled-new-array {v0, v1}, [I // type@0175
0173b8: 0c07                                   |003e: move-result-object v7
0173ba: 12e1                                   |003f: const/4 v1, #int -2 // #fe
0173bc: 2420 7501 0100                         |0040: filled-new-array {v1, v0}, [I // type@0175
0173c2: 0c08                                   |0043: move-result-object v8
0173c4: 1222                                   |0044: const/4 v2, #int 2 // #2
0173c6: 2420 7501 0200                         |0045: filled-new-array {v2, v0}, [I // type@0175
0173cc: 0c09                                   |0048: move-result-object v9
0173ce: 2420 7501 1000                         |0049: filled-new-array {v0, v1}, [I // type@0175
0173d4: 0c0a                                   |004c: move-result-object v10
0173d6: 2507 8401 0400                         |004d: filled-new-array/range {v4, v5, v6, v7, v8, v9, v10}, [[I // type@0184
0173dc: 0c01                                   |0050: move-result-object v1
0173de: 6901 5a01                              |0051: sput-object v1, Lcom/valentinedesigns/chromalink/GameEngine;.KICKS:[[I // field@015a
0173e2: 1301 dc05                              |0053: const/16 v1, #int 1500 // #5dc
0173e6: 1302 b80b                              |0055: const/16 v2, #int 3000 // #bb8
0173ea: 1303 5802                              |0057: const/16 v3, #int 600 // #258
0173ee: 2440 7501 3021                         |0059: filled-new-array {v0, v3, v1, v2}, [I // type@0175
0173f4: 0c00                                   |005c: move-result-object v0
0173f6: 6900 6101                              |005d: sput-object v0, Lcom/valentinedesigns/chromalink/GameEngine;.THRESHOLDS:[I // field@0161
0173fa: 1240                                   |005f: const/4 v0, #int 4 // #4
0173fc: 2300 7401                              |0060: new-array v0, v0, [F // type@0174
017400: 2600 4800 0000                         |0062: fill-array-data v0, 000000aa // +00000048
017406: 6900 5701                              |0065: sput-object v0, Lcom/valentinedesigns/chromalink/GameEngine;.FALL:[F // field@0157
01740a: 1230                                   |0067: const/4 v0, #int 3 // #3
01740c: 2301 7401                              |0068: new-array v1, v0, [F // type@0174
017410: 2601 4c00 0000                         |006a: fill-array-data v1, 000000b6 // +0000004c
017416: 6901 5c01                              |006d: sput-object v1, Lcom/valentinedesigns/chromalink/GameEngine;.LIVE_FALL:[F // field@015c
01741a: 2301 7301                              |006f: new-array v1, v0, [D // type@0173
01741e: 2601 4f00 0000                         |0071: fill-array-data v1, 000000c0 // +0000004f
017424: 6901 5b01                              |0074: sput-object v1, Lcom/valentinedesigns/chromalink/GameEngine;.LIVE_DECAY:[D // field@015b
017428: 2301 7401                              |0076: new-array v1, v0, [F // type@0174
01742c: 2601 5800 0000                         |0078: fill-array-data v1, 000000d0 // +00000058
017432: 6901 5401                              |007b: sput-object v1, Lcom/valentinedesigns/chromalink/GameEngine;.BOT_THINK:[F // field@0154
017436: 2301 7401                              |007d: new-array v1, v0, [F // type@0174
01743a: 2601 5b00 0000                         |007f: fill-array-data v1, 000000da // +0000005b
017440: 6901 5201                              |0082: sput-object v1, Lcom/valentinedesigns/chromalink/GameEngine;.BOT_INPUT:[F // field@0152
017444: 2301 7301                              |0084: new-array v1, v0, [D // type@0173
017448: 2601 5e00 0000                         |0086: fill-array-data v1, 000000e4 // +0000005e
01744e: 6901 6001                              |0089: sput-object v1, Lcom/valentinedesigns/chromalink/GameEngine;.THINK_DECAY:[D // field@0160
017452: 2301 7301                              |008b: new-array v1, v0, [D // type@0173
017456: 2601 6700 0000                         |008d: fill-array-data v1, 000000f4 // +00000067
01745c: 6901 5901                              |0090: sput-object v1, Lcom/valentinedesigns/chromalink/GameEngine;.INPUT_DECAY:[D // field@0159
017460: 2300 7401                              |0092: new-array v0, v0, [F // type@0174
017464: 2600 7000 0000                         |0094: fill-array-data v0, 00000104 // +00000070
01746a: 6900 5301                              |0097: sput-object v0, Lcom/valentinedesigns/chromalink/GameEngine;.BOT_QUALITY:[F // field@0153
01746e: 1a00 bc09                              |0099: const-string v0, "rotate-left" // string@09bc
017472: 1a01 b506                              |009b: const-string v1, "down" // string@06b5
017476: 1a02 3b08                              |009d: const-string v2, "left" // string@083b
01747a: 1a03 b409                              |009f: const-string v3, "right" // string@09b4
01747e: 1a04 bb09                              |00a1: const-string v4, "rotate" // string@09bb
017482: 2451 8001 3204                         |00a3: filled-new-array {v2, v3, v4, v0, v1}, [Ljava/lang/String; // type@0180
017488: 0c00                                   |00a6: move-result-object v0
01748a: 6900 5101                              |00a7: sput-object v0, Lcom/valentinedesigns/chromalink/GameEngine;.BOT_ACTIONS:[Ljava/lang/String; // field@0151
01748e: 0e00                                   |00a9: return-void
017490: 0003 0400 0400 0000 0080 6d44 0000 ... |00aa: array-data (12 units)
0174a8: 0003 0400 0300 0000 0000 7a44 0080 ... |00b6: array-data (10 units)
0174bc: 0003 0800 0300 0000 3d0a d7a3 703d ... |00c0: array-data (16 units)
0174dc: 0003 0400 0300 0000 0000 af44 0080 ... |00d0: array-data (10 units)
0174f0: 0003 0400 0300 0000 0000 4843 0000 ... |00da: array-data (10 units)
017504: 0003 0800 0300 0000 3d0a d7a3 703d ... |00e4: array-data (16 units)
017524: 0003 0800 0300 0000 e17a 14ae 47e1 ... |00f4: array-data (16 units)
017544: 0003 0400 0300 0000 0000 803e 6666 ... |0104: array-data (10 units)
      catches       : (none)
      positions     :
        0x0000 line=28
        0x0019 line=29
        0x002f line=30
        0x0053 line=31
        0x005f line=32
        0x0067 line=34
        0x006f line=35
        0x0076 line=36
        0x0084 line=37
        0x0092 line=38
        0x0099 line=737
      locals        :

    #1              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : '<init>'
      type          : '(Lcom/valentinedesigns/chromalink/GameEngine$Mode;JI)V'
      access        : 0x10001 (PUBLIC CONSTRUCTOR)
      code          -
      registers     : 11
      ins           : 5
      outs          : 6
      insns size    : 9 16-bit code units
017558:                                        |[017558] com.valentinedesigns.chromalink.GameEngine.<init>:(Lcom/valentinedesigns/chromalink/GameEngine$Mode;JI)V
017568: 1205                                   |0000: const/4 v5, #int 0 // #0
01756a: 0760                                   |0001: move-object v0, v6
01756c: 0771                                   |0002: move-object v1, v7
01756e: 0482                                   |0003: move-wide v2, v8
017570: 01a4                                   |0004: move v4, v10
017572: 7606 1c03 0000                         |0005: invoke-direct/range {v0, v1, v2, v3, v4, v5}, Lcom/valentinedesigns/chromalink/GameEngine;.<init>:(Lcom/valentinedesigns/chromalink/GameEngine$Mode;JII)V // method@031c
017578: 0e00                                   |0008: return-void
      catches       : (none)
      positions     :
        0x0000 line=121
        0x0008 line=122
      locals        :
        0x0000 - 0x0009 reg=6 this Lcom/valentinedesigns/chromalink/GameEngine;
        0x0000 - 0x0009 reg=7 (null) Lcom/valentinedesigns/chromalink/GameEngine$Mode;
        0x0000 - 0x0009 reg=8 (null) J
        0x0000 - 0x0009 reg=10 (null) I

    #2              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : '<init>'
      type          : '(Lcom/valentinedesigns/chromalink/GameEngine$Mode;JII)V'
      access        : 0x10001 (PUBLIC CONSTRUCTOR)
      code          -
      registers     : 13
      ins           : 6
      outs          : 7
      insns size    : 10 16-bit code units
01757c:                                        |[01757c] com.valentinedesigns.chromalink.GameEngine.<init>:(Lcom/valentinedesigns/chromalink/GameEngine$Mode;JII)V
01758c: 1206                                   |0000: const/4 v6, #int 0 // #0
01758e: 0770                                   |0001: move-object v0, v7
017590: 0781                                   |0002: move-object v1, v8
017592: 0492                                   |0003: move-wide v2, v9
017594: 01b4                                   |0004: move v4, v11
017596: 01c5                                   |0005: move v5, v12
017598: 7607 1d03 0000                         |0006: invoke-direct/range {v0, v1, v2, v3, v4, v5, v6}, Lcom/valentinedesigns/chromalink/GameEngine;.<init>:(Lcom/valentinedesigns/chromalink/GameEngine$Mode;JIII)V // method@031d
01759e: 0e00                                   |0009: return-void
      catches       : (none)
      positions     :
        0x0000 line=126
        0x0009 line=127
      locals        :
        0x0000 - 0x000a reg=7 this Lcom/valentinedesigns/chromalink/GameEngine;
        0x0000 - 0x000a reg=8 (null) Lcom/valentinedesigns/chromalink/GameEngine$Mode;
        0x0000 - 0x000a reg=9 (null) J
        0x0000 - 0x000a reg=11 (null) I
        0x0000 - 0x000a reg=12 (null) I

    #3              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : '<init>'
      type          : '(Lcom/valentinedesigns/chromalink/GameEngine$Mode;JIII)V'
      access        : 0x10002 (PRIVATE CONSTRUCTOR)
      code          -
      registers     : 27
      ins           : 7
      outs          : 6
      insns size    : 530 16-bit code units
0175a0:                                        |[0175a0] com.valentinedesigns.chromalink.GameEngine.<init>:(Lcom/valentinedesigns/chromalink/GameEngine$Mode;JIII)V
0175b0: 0800 1400                              |0000: move-object/from16 v0, v20
0175b4: 7601 5006 1400                         |0002: invoke-direct/range {v20}, Ljava/lang/Object;.<init>:()V // method@0650
0175ba: 1211                                   |0005: const/4 v1, #int 1 // #1
0175bc: 5901 6701                              |0006: iput v1, v0, Lcom/valentinedesigns/chromalink/GameEngine;.heat:I // field@0167
0175c0: 3915 0500                              |0008: if-nez v21, 000d // +0005
0175c4: 6202 1f01                              |000a: sget-object v2, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.DUEL:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@011f
0175c8: 2803                                   |000c: goto 000f // +0003
0175ca: 0802 1500                              |000d: move-object/from16 v2, v21
0175ce: 5b02 6b01                              |000f: iput-object v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
0175d2: 5402 6b01                              |0011: iget-object v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
0175d6: 6203 2101                              |0013: sget-object v3, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.ONLINE:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@0121
0175da: 1204                                   |0015: const/4 v4, #int 0 // #0
0175dc: 3332 0500                              |0016: if-ne v2, v3, 001b // +0005
0175e0: 0202 1a00                              |0018: move/from16 v2, v26
0175e4: 2802                                   |001a: goto 001c // +0002
0175e6: 0142                                   |001b: move v2, v4
0175e8: 5902 6c01                              |001c: iput v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.onlineLocalSide:I // field@016c
0175ec: 5202 6c01                              |001e: iget v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.onlineLocalSide:I // field@016c
0175f0: 3a02 aa01                              |0020: if-ltz v2, 01ca // +01aa
0175f4: 5202 6c01                              |0022: iget v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.onlineLocalSide:I // field@016c
0175f8: 3612 a601                              |0024: if-gt v2, v1, 01ca // +01a6
0175fc: 5402 6b01                              |0026: iget-object v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
017600: 6203 1d01                              |0028: sget-object v3, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.CAMPAIGN:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@011d
017604: 12f5                                   |002a: const/4 v5, #int -1 // #ff
017606: 3332 0700                              |002b: if-ne v2, v3, 0032 // +0007
01760a: 7701 4202 1900                         |002d: invoke-static/range {v25}, Lcom/valentinedesigns/chromalink/CampaignProgress;.clampLesson:(I)I // method@0242
017610: 0a02                                   |0030: move-result v2
017612: 2802                                   |0031: goto 0033 // +0002
017614: 0152                                   |0032: move v2, v5
017616: 5902 6801                              |0033: iput v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.lesson:I // field@0168
01761a: 0502 1600                              |0035: move-wide/from16 v2, v22
01761e: 5a02 7001                              |0037: iput-wide v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.seed:J // field@0170
017622: 5402 6b01                              |0039: iget-object v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
017626: 6203 1d01                              |003b: sget-object v3, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.CAMPAIGN:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@011d
01762a: 1236                                   |003d: const/4 v6, #int 3 // #3
01762c: 1227                                   |003e: const/4 v7, #int 2 // #2
01762e: 3332 0a00                              |003f: if-ne v2, v3, 0049 // +000a
017632: 5202 6801                              |0041: iget v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.lesson:I // field@0168
017636: 7110 4302 0200                         |0043: invoke-static {v2}, Lcom/valentinedesigns/chromalink/CampaignProgress;.colorsForLesson:(I)I // method@0243
01763c: 0a02                                   |0046: move-result v2
01763e: b162                                   |0047: sub-int/2addr v2, v6
017640: 2813                                   |0048: goto 005b // +0013
017642: 5402 6b01                              |0049: iget-object v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
017646: 6203 2201                              |004b: sget-object v3, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.PRACTICE:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@0122
01764a: 3332 0400                              |004d: if-ne v2, v3, 0051 // +0004
01764e: 0142                                   |004f: move v2, v4
017650: 280b                                   |0050: goto 005b // +000b
017652: 0202 1800                              |0051: move/from16 v2, v24
017656: 7120 4806 2700                         |0053: invoke-static {v7, v2}, Ljava/lang/Math;.min:(II)I // method@0648
01765c: 0a02                                   |0056: move-result v2
01765e: 7120 4406 2400                         |0057: invoke-static {v4, v2}, Ljava/lang/Math;.max:(II)I // method@0644
017664: 0a02                                   |005a: move-result v2
017666: 5902 7201                              |005b: iput v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.startStage:I // field@0172
01766a: 5202 7201                              |005d: iget v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.startStage:I // field@0172
01766e: 5902 7101                              |005f: iput v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.stage:I // field@0171
017672: 2202 b900                              |0061: new-instance v2, Lcom/valentinedesigns/chromalink/GameEngine$Well; // type@00b9
017676: 7010 1903 0200                         |0063: invoke-direct {v2}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.<init>:()V // method@0319
01767c: 5b02 6e01                              |0066: iput-object v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
017680: 2202 b900                              |0068: new-instance v2, Lcom/valentinedesigns/chromalink/GameEngine$Well; // type@00b9
017684: 7010 1903 0200                         |006a: invoke-direct {v2}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.<init>:()V // method@0319
01768a: 5b02 6401                              |006d: iput-object v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.cpu:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@0164
01768e: 2372 7c01                              |006f: new-array v2, v7, [Lcom/valentinedesigns/chromalink/GameEngine$Well; // type@017c
017692: 5403 6e01                              |0071: iget-object v3, v0, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
017696: 4d03 0204                              |0073: aput-object v3, v2, v4
01769a: 5403 6401                              |0075: iget-object v3, v0, Lcom/valentinedesigns/chromalink/GameEngine;.cpu:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@0164
01769e: 4d03 0201                              |0077: aput-object v3, v2, v1
0176a2: 0143                                   |0079: move v3, v4
0176a4: 1308 0900                              |007a: const/16 v8, #int 9 // #9
0176a8: 1309 0a00                              |007c: const/16 v9, #int 10 // #a
0176ac: 126a                                   |007e: const/4 v10, #int 6 // #6
0176ae: 130b 0b00                              |007f: const/16 v11, #int 11 // #b
0176b2: 3573 4e00                              |0081: if-ge v3, v7, 00cf // +004e
0176b6: 460c 0203                              |0083: aget-object v12, v2, v3
0176ba: 7110 0d03 0c00                         |0085: invoke-static {v12}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetpalettes:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)Ljava/util/List; // method@030d
0176c0: 0c0d                                   |0088: move-result-object v13
0176c2: 220e b300                              |0089: new-instance v14, Lcom/valentinedesigns/chromalink/GameEngine$PaletteChange; // type@00b3
0176c6: 520f 7101                              |008b: iget v15, v0, Lcom/valentinedesigns/chromalink/GameEngine;.stage:I // field@0171
0176ca: b06f                                   |008d: add-int/2addr v15, v6
0176cc: 7030 fa02 4e0f                         |008e: invoke-direct {v14, v4, v15}, Lcom/valentinedesigns/chromalink/GameEngine$PaletteChange;.<init>:(II)V // method@02fa
0176d2: 7220 9606 ed00                         |0091: invoke-interface {v13, v14}, Ljava/util/List;.add:(Ljava/lang/Object;)Z // method@0696
0176d8: 54cd 3b01                              |0094: iget-object v13, v12, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
0176dc: 520e 7101                              |0096: iget v14, v0, Lcom/valentinedesigns/chromalink/GameEngine;.stage:I // field@0171
0176e0: b07e                                   |0098: add-int/2addr v14, v7
0176e2: 520f 7101                              |0099: iget v15, v0, Lcom/valentinedesigns/chromalink/GameEngine;.stage:I // field@0171
0176e6: b07f                                   |009b: add-int/2addr v15, v7
0176e8: 1310 0000                              |009c: const/16 v16, #int 0 // #0
0176ec: 1311 0000                              |009e: const/16 v17, #int 0 // #0
0176f0: 1312 0100                              |00a0: const/16 v18, #int 1 // #1
0176f4: 1313 0200                              |00a2: const/16 v19, #int 2 // #2
0176f8: 0215 1000                              |00a4: move/from16 v21, v16
0176fc: 0216 1100                              |00a6: move/from16 v22, v17
017700: 0217 1200                              |00a8: move/from16 v23, v18
017704: 0218 1300                              |00aa: move/from16 v24, v19
017708: 0219 0e00                              |00ac: move/from16 v25, v14
01770c: 021a 0f00                              |00ae: move/from16 v26, v15
017710: 2506 7501 1500                         |00b0: filled-new-array/range {v21, v22, v23, v24, v25, v26}, [I // type@0175
017716: 0c0e                                   |00b3: move-result-object v14
017718: 4d0e 0d0b                              |00b4: aput-object v14, v13, v11
01771c: 520b 7201                              |00b6: iget v11, v0, Lcom/valentinedesigns/chromalink/GameEngine;.startStage:I // field@0172
017720: 3d0b 1400                              |00b8: if-lez v11, 00cc // +0014
017724: 54cb 3b01                              |00ba: iget-object v11, v12, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
017728: 23ad 7501                              |00bc: new-array v13, v10, [I // type@0175
01772c: 260d 1401 0000                         |00be: fill-array-data v13, 000001d2 // +00000114
017732: 4d0d 0b09                              |00c1: aput-object v13, v11, v9
017736: 54c9 3b01                              |00c3: iget-object v9, v12, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
01773a: 23aa 7501                              |00c5: new-array v10, v10, [I // type@0175
01773e: 260a 1b01 0000                         |00c7: fill-array-data v10, 000001e2 // +0000011b
017744: 4d0a 0908                              |00ca: aput-object v10, v9, v8
017748: d803 0301                              |00cc: add-int/lit8 v3, v3, #int 1 // #01
01774c: 28ac                                   |00ce: goto 007a // -0054
01774e: 5402 6b01                              |00cf: iget-object v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
017752: 6203 2201                              |00d1: sget-object v3, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.PRACTICE:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@0122
017756: 3332 3300                              |00d3: if-ne v2, v3, 0106 // +0033
01775a: 5402 6e01                              |00d5: iget-object v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
01775e: 7100 3603 0000                         |00d7: invoke-static {}, Lcom/valentinedesigns/chromalink/GameEngine;.emptyBoard:()[[I // method@0336
017764: 0c03                                   |00da: move-result-object v3
017766: 5b23 3b01                              |00db: iput-object v3, v2, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
01776a: 5402 6e01                              |00dd: iget-object v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
01776e: 5422 3b01                              |00df: iget-object v2, v2, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
017772: 23a3 7501                              |00e1: new-array v3, v10, [I // type@0175
017776: 2603 0f01 0000                         |00e3: fill-array-data v3, 000001f2 // +0000010f
01777c: 4d03 020b                              |00e6: aput-object v3, v2, v11
017780: 5402 6e01                              |00e8: iget-object v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
017784: 5422 3b01                              |00ea: iget-object v2, v2, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
017788: 4602 0209                              |00ec: aget-object v2, v2, v9
01778c: 5403 6e01                              |00ee: iget-object v3, v0, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
017790: 5433 3b01                              |00f0: iget-object v3, v3, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
017794: 4603 0308                              |00f2: aget-object v3, v3, v8
017798: 4b04 0306                              |00f4: aput v4, v3, v6
01779c: 4b04 0206                              |00f6: aput v4, v2, v6
0177a0: 5402 6e01                              |00f8: iget-object v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
0177a4: 5422 3b01                              |00fa: iget-object v2, v2, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
0177a8: 4602 0209                              |00fc: aget-object v2, v2, v9
0177ac: 1243                                   |00fe: const/4 v3, #int 4 // #4
0177ae: 4b05 0203                              |00ff: aput v5, v2, v3
0177b2: 1a02 d604                              |0101: const-string v2, "Try the fourth column. Coral clears, then blue follows." // string@04d6
0177b6: 5b02 6a01                              |0103: iput-object v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.message:Ljava/lang/String; // field@016a
0177ba: 2817                                   |0105: goto 011c // +0017
0177bc: 5402 6b01                              |0106: iget-object v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
0177c0: 6203 2101                              |0108: sget-object v3, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.ONLINE:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@0121
0177c4: 3332 0500                              |010a: if-ne v2, v3, 010f // +0005
0177c8: 1a02 5903                              |010c: const-string v2, "Link four to clear. Chain clears to send junk to your opponent." // string@0359
0177cc: 280c                                   |010e: goto 011a // +000c
0177ce: 5402 6b01                              |010f: iget-object v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
0177d2: 6203 1f01                              |0111: sget-object v3, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.DUEL:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@011f
0177d6: 3332 0500                              |0113: if-ne v2, v3, 0118 // +0005
0177da: 1a02 5a03                              |0115: const-string v2, "Link four to clear. Chain clears to send more junk." // string@035a
0177de: 2803                                   |0117: goto 011a // +0003
0177e0: 1a02 5b03                              |0118: const-string v2, "Link four to clear. Leave room for the next pair." // string@035b
0177e4: 5b02 6a01                              |011a: iput-object v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.message:Ljava/lang/String; // field@016a
0177e8: 5402 6b01                              |011c: iget-object v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
0177ec: 6203 1d01                              |011e: sget-object v3, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.CAMPAIGN:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@011d
0177f0: 3332 7b00                              |0120: if-ne v2, v3, 019b // +007b
0177f4: 5402 6e01                              |0122: iget-object v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
0177f8: 7100 3603 0000                         |0124: invoke-static {}, Lcom/valentinedesigns/chromalink/GameEngine;.emptyBoard:()[[I // method@0336
0177fe: 0c03                                   |0127: move-result-object v3
017800: 5b23 3b01                              |0128: iput-object v3, v2, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
017804: 5202 6801                              |012a: iget v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.lesson:I // field@0168
017808: 3312 1e00                              |012c: if-ne v2, v1, 014a // +001e
01780c: 5402 6e01                              |012e: iget-object v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
017810: 5422 3b01                              |0130: iget-object v2, v2, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
017814: 23a3 7501                              |0132: new-array v3, v10, [I // type@0175
017818: 2603 ce00 0000                         |0134: fill-array-data v3, 00000202 // +000000ce
01781e: 4d03 020b                              |0137: aput-object v3, v2, v11
017822: 5402 6e01                              |0139: iget-object v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
017826: 5422 3b01                              |013b: iget-object v2, v2, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
01782a: 4602 0209                              |013d: aget-object v2, v2, v9
01782e: 5403 6e01                              |013f: iget-object v3, v0, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
017832: 5433 3b01                              |0141: iget-object v3, v3, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
017836: 4603 0308                              |0143: aget-object v3, v3, v8
01783a: 4b04 0306                              |0145: aput v4, v3, v6
01783e: 4b04 0206                              |0147: aput v4, v2, v6
017842: 284a                                   |0149: goto 0193 // +004a
017844: 5202 6801                              |014a: iget v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.lesson:I // field@0168
017848: 3672 2700                              |014c: if-gt v2, v7, 0173 // +0027
01784c: 5402 6e01                              |014e: iget-object v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
017850: 5422 3b01                              |0150: iget-object v2, v2, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
017854: 4602 020b                              |0152: aget-object v2, v2, v11
017858: 5403 6e01                              |0154: iget-object v3, v0, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
01785c: 5433 3b01                              |0156: iget-object v3, v3, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
017860: 4603 030b                              |0158: aget-object v3, v3, v11
017864: 5408 6e01                              |015a: iget-object v8, v0, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
017868: 5488 3b01                              |015c: iget-object v8, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
01786c: 4608 080b                              |015e: aget-object v8, v8, v11
017870: 4b04 0807                              |0160: aput v4, v8, v7
017874: 4b04 0301                              |0162: aput v4, v3, v1
017878: 4b04 0204                              |0164: aput v4, v2, v4
01787c: 5202 6801                              |0166: iget v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.lesson:I // field@0168
017880: 3372 2b00                              |0168: if-ne v2, v7, 0193 // +002b
017884: 5402 6e01                              |016a: iget-object v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
017888: 5422 3b01                              |016c: iget-object v2, v2, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
01788c: 4602 020b                              |016e: aget-object v2, v2, v11
017890: 4b05 0206                              |0170: aput v5, v2, v6
017894: 2821                                   |0172: goto 0193 // +0021
017896: 5402 6e01                              |0173: iget-object v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
01789a: 5422 3b01                              |0175: iget-object v2, v2, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
01789e: 5203 7101                              |0177: iget v3, v0, Lcom/valentinedesigns/chromalink/GameEngine;.stage:I // field@0171
0178a2: b073                                   |0179: add-int/2addr v3, v7
0178a4: 5205 7101                              |017a: iget v5, v0, Lcom/valentinedesigns/chromalink/GameEngine;.stage:I // field@0171
0178a8: b075                                   |017c: add-int/2addr v5, v7
0178aa: 1216                                   |017d: const/4 v6, #int 1 // #1
0178ac: 1207                                   |017e: const/4 v7, #int 0 // #0
0178ae: 1218                                   |017f: const/4 v8, #int 1 // #1
0178b0: 1229                                   |0180: const/4 v9, #int 2 // #2
0178b2: 0215 0700                              |0181: move/from16 v21, v7
0178b6: 0216 0800                              |0183: move/from16 v22, v8
0178ba: 0217 0900                              |0185: move/from16 v23, v9
0178be: 0218 0300                              |0187: move/from16 v24, v3
0178c2: 0219 0500                              |0189: move/from16 v25, v5
0178c6: 021a 0600                              |018b: move/from16 v26, v6
0178ca: 2506 7501 1500                         |018d: filled-new-array/range {v21, v22, v23, v24, v25, v26}, [I // type@0175
0178d0: 0c03                                   |0190: move-result-object v3
0178d2: 4d03 020b                              |0191: aput-object v3, v2, v11
0178d6: 5202 6801                              |0193: iget v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.lesson:I // field@0168
0178da: 7110 4502 0200                         |0195: invoke-static {v2}, Lcom/valentinedesigns/chromalink/CampaignProgress;.goalLabel:(I)Ljava/lang/String; // method@0245
0178e0: 0c02                                   |0198: move-result-object v2
0178e2: 5b02 6a01                              |0199: iput-object v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.message:Ljava/lang/String; // field@016a
0178e6: 5402 6b01                              |019b: iget-object v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
0178ea: 6203 2101                              |019d: sget-object v3, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.ONLINE:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@0121
0178ee: 3332 1500                              |019f: if-ne v2, v3, 01b4 // +0015
0178f2: 6e20 5e03 4000                         |01a1: invoke-virtual {v0, v4}, Lcom/valentinedesigns/chromalink/GameEngine;.wellForSide:(I)Lcom/valentinedesigns/chromalink/GameEngine$Well; // method@035e
0178f8: 0c02                                   |01a4: move-result-object v2
0178fa: 7020 5803 2000                         |01a5: invoke-direct {v0, v2}, Lcom/valentinedesigns/chromalink/GameEngine;.spawn:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)V // method@0358
017900: 5502 6601                              |01a8: iget-boolean v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.ended:Z // field@0166
017904: 3902 1a00                              |01aa: if-nez v2, 01c4 // +001a
017908: 6e20 5e03 1000                         |01ac: invoke-virtual {v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine;.wellForSide:(I)Lcom/valentinedesigns/chromalink/GameEngine$Well; // method@035e
01790e: 0c02                                   |01af: move-result-object v2
017910: 7020 5803 2000                         |01b0: invoke-direct {v0, v2}, Lcom/valentinedesigns/chromalink/GameEngine;.spawn:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)V // method@0358
017916: 2811                                   |01b3: goto 01c4 // +0011
017918: 5402 6e01                              |01b4: iget-object v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
01791c: 7020 5803 2000                         |01b6: invoke-direct {v0, v2}, Lcom/valentinedesigns/chromalink/GameEngine;.spawn:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)V // method@0358
017922: 7401 4103 1400                         |01b9: invoke-virtual/range {v20}, Lcom/valentinedesigns/chromalink/GameEngine;.isDuel:()Z // method@0341
017928: 0a02                                   |01bc: move-result v2
01792a: 3802 0700                              |01bd: if-eqz v2, 01c4 // +0007
01792e: 5402 6401                              |01bf: iget-object v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.cpu:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@0164
017932: 7020 5803 2000                         |01c1: invoke-direct {v0, v2}, Lcom/valentinedesigns/chromalink/GameEngine;.spawn:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)V // method@0358
017938: 5202 7101                              |01c4: iget v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.stage:I // field@0171
01793c: b012                                   |01c6: add-int/2addr v2, v1
01793e: 5902 6701                              |01c7: iput v2, v0, Lcom/valentinedesigns/chromalink/GameEngine;.heat:I // field@0167
017942: 0e00                                   |01c9: return-void
017944: 2201 3d01                              |01ca: new-instance v1, Ljava/lang/IllegalArgumentException; // type@013d
017948: 1a02 df08                              |01cc: const-string v2, "online side" // string@08df
01794c: 7020 2e06 2100                         |01ce: invoke-direct {v1, v2}, Ljava/lang/IllegalArgumentException;.<init>:(Ljava/lang/String;)V // method@062e
017952: 2701                                   |01d1: throw v1
017954: 0003 0400 0600 0000 0100 0000 0200 ... |01d2: array-data (16 units)
017974: 0003 0400 0600 0000 0200 0000 feff ... |01e2: array-data (16 units)
017994: 0003 0400 0600 0000 0100 0000 0100 ... |01f2: array-data (16 units)
0179b4: 0003 0400 0600 0000 0100 0000 0100 ... |0202: array-data (16 units)
      catches       : (none)
      positions     :
        0x0000 line=130
        0x0005 line=48
        0x0008 line=131
        0x0011 line=132
        0x001e line=133
        0x0026 line=134
        0x0035 line=135
        0x0039 line=136
        0x005d line=137
        0x0061 line=138
        0x006f line=139
        0x0085 line=140
        0x0094 line=141
        0x00b6 line=142
        0x00ba line=143
        0x00c3 line=144
        0x00cc line=139
        0x00cf line=147
        0x00d5 line=148
        0x00dd line=149
        0x00e8 line=150
        0x00f8 line=151
        0x0101 line=152
        0x0106 line=153
        0x011c line=154
        0x0122 line=155
        0x012a line=156
        0x012e line=157
        0x0139 line=158
        0x014a line=159
        0x014e line=160
        0x0166 line=161
        0x0173 line=164
        0x0193 line=166
        0x019b line=168
        0x01b4 line=169
        0x01c4 line=170
        0x01c9 line=171
        0x01ca line=133
      locals        :
        0x0000 - 0x0212 reg=20 this Lcom/valentinedesigns/chromalink/GameEngine;
        0x0000 - 0x0212 reg=21 (null) Lcom/valentinedesigns/chromalink/GameEngine$Mode;
        0x0000 - 0x0212 reg=22 (null) J
        0x0000 - 0x0212 reg=24 (null) I
        0x0000 - 0x0212 reg=25 (null) I
        0x0000 - 0x0212 reg=26 (null) I

    #4              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'actionWell'
      type          : '(Lcom/valentinedesigns/chromalink/GameEngine$Well;Ljava/lang/String;)V'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 10
      ins           : 3
      outs          : 4
      insns size    : 218 16-bit code units
017a2c:                                        |[017a2c] com.valentinedesigns.chromalink.GameEngine.actionWell:(Lcom/valentinedesigns/chromalink/GameEngine$Well;Ljava/lang/String;)V
017a3c: 3809 af00                              |0000: if-eqz v9, 00af // +00af
017a40: 5570 6d01                              |0002: iget-boolean v0, v7, Lcom/valentinedesigns/chromalink/GameEngine;.paused:Z // field@016d
017a44: 3900 ab00                              |0004: if-nez v0, 00af // +00ab
017a48: 5570 6601                              |0006: iget-boolean v0, v7, Lcom/valentinedesigns/chromalink/GameEngine;.ended:Z // field@0166
017a4c: 3900 a700                              |0008: if-nez v0, 00af // +00a7
017a50: 1a00 a905                              |000a: const-string v0, "active" // string@05a9
017a54: 5481 4a01                              |000c: iget-object v1, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.phase:Ljava/lang/String; // field@014a
017a58: 6e20 5b06 1000                         |000e: invoke-virtual {v0, v1}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
017a5e: 0a00                                   |0011: move-result v0
017a60: 3800 9d00                              |0012: if-eqz v0, 00af // +009d
017a64: 5480 4c01                              |0014: iget-object v0, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.piece:Lcom/valentinedesigns/chromalink/GameEngine$Piece; // field@014c
017a68: 3900 0400                              |0016: if-nez v0, 001a // +0004
017a6c: 2900 9700                              |0018: goto/16 00af // +0097
017a70: 5480 4c01                              |001a: iget-object v0, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.piece:Lcom/valentinedesigns/chromalink/GameEngine$Piece; // field@014c
017a74: 6e10 5d06 0900                         |001c: invoke-virtual {v9}, Ljava/lang/String;.hashCode:()I // method@065d
017a7a: 0a01                                   |001f: move-result v1
017a7c: 1a02 d406                              |0020: const-string v2, "drop" // string@06d4
017a80: 1203                                   |0022: const/4 v3, #int 0 // #0
017a82: 1a04 bb09                              |0023: const-string v4, "rotate" // string@09bb
017a86: 12f5                                   |0025: const/4 v5, #int -1 // #ff
017a88: 1216                                   |0026: const/4 v6, #int 1 // #1
017a8a: 2c01 8900 0000                         |0027: sparse-switch v1, 000000b0 // +00000089
017a90: 2839                                   |002a: goto 0063 // +0039
017a92: 1a01 bc09                              |002b: const-string v1, "rotate-left" // string@09bc
017a96: 6e20 5b06 1900                         |002d: invoke-virtual {v9, v1}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
017a9c: 0a01                                   |0030: move-result v1
017a9e: 3801 f9ff                              |0031: if-eqz v1, 002a // -0007
017aa2: 1231                                   |0033: const/4 v1, #int 3 // #3
017aa4: 2830                                   |0034: goto 0064 // +0030
017aa6: 1a01 b409                              |0035: const-string v1, "right" // string@09b4
017aaa: 6e20 5b06 1900                         |0037: invoke-virtual {v9, v1}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
017ab0: 0a01                                   |003a: move-result v1
017ab2: 3801 efff                              |003b: if-eqz v1, 002a // -0011
017ab6: 0161                                   |003d: move v1, v6
017ab8: 2826                                   |003e: goto 0064 // +0026
017aba: 1a01 3b08                              |003f: const-string v1, "left" // string@083b
017abe: 6e20 5b06 1900                         |0041: invoke-virtual {v9, v1}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
017ac4: 0a01                                   |0044: move-result v1
017ac6: 3801 e5ff                              |0045: if-eqz v1, 002a // -001b
017aca: 0131                                   |0047: move v1, v3
017acc: 281c                                   |0048: goto 0064 // +001c
017ace: 6e20 5b06 2900                         |0049: invoke-virtual {v9, v2}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
017ad4: 0a01                                   |004c: move-result v1
017ad6: 3801 ddff                              |004d: if-eqz v1, 002a // -0023
017ada: 1251                                   |004f: const/4 v1, #int 5 // #5
017adc: 2814                                   |0050: goto 0064 // +0014
017ade: 1a01 b506                              |0051: const-string v1, "down" // string@06b5
017ae2: 6e20 5b06 1900                         |0053: invoke-virtual {v9, v1}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
017ae8: 0a01                                   |0056: move-result v1
017aea: 3801 d3ff                              |0057: if-eqz v1, 002a // -002d
017aee: 1241                                   |0059: const/4 v1, #int 4 // #4
017af0: 280a                                   |005a: goto 0064 // +000a
017af2: 6e20 5b06 4900                         |005b: invoke-virtual {v9, v4}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
017af8: 0a01                                   |005e: move-result v1
017afa: 3801 cbff                              |005f: if-eqz v1, 002a // -0035
017afe: 1221                                   |0061: const/4 v1, #int 2 // #2
017b00: 2802                                   |0062: goto 0064 // +0002
017b02: 0151                                   |0063: move v1, v5
017b04: 2b01 6600 0000                         |0064: packed-switch v1, 000000ca // +00000066
017b0a: 0e00                                   |0067: return-void
017b0c: 5489 3b01                              |0068: iget-object v9, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
017b10: 7120 3d03 0900                         |006a: invoke-static {v9, v0}, Lcom/valentinedesigns/chromalink/GameEngine;.ghost:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;)Lcom/valentinedesigns/chromalink/GameEngine$Piece; // method@033d
017b16: 0c09                                   |006d: move-result-object v9
017b18: 5b89 4c01                              |006e: iput-object v9, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.piece:Lcom/valentinedesigns/chromalink/GameEngine$Piece; // field@014c
017b1c: 5479 6e01                              |0070: iget-object v9, v7, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
017b20: 3398 0500                              |0072: if-ne v8, v9, 0077 // +0005
017b24: 7030 3903 2706                         |0074: invoke-direct {v7, v2, v6}, Lcom/valentinedesigns/chromalink/GameEngine;.event:(Ljava/lang/String;I)V // method@0339
017b2a: 7020 4303 8700                         |0077: invoke-direct {v7, v8}, Lcom/valentinedesigns/chromalink/GameEngine;.lock:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)V // method@0343
017b30: 0e00                                   |007a: return-void
017b32: 7020 5a03 8700                         |007b: invoke-direct {v7, v8}, Lcom/valentinedesigns/chromalink/GameEngine;.stepDown:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)V // method@035a
017b38: 0e00                                   |007e: return-void
017b3a: 5481 3b01                              |007f: iget-object v1, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
017b3e: 7130 5403 0105                         |0081: invoke-static {v1, v0, v5}, Lcom/valentinedesigns/chromalink/GameEngine;.rotate:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;I)Lcom/valentinedesigns/chromalink/GameEngine$Piece; // method@0354
017b44: 0c00                                   |0084: move-result-object v0
017b46: 2815                                   |0085: goto 009a // +0015
017b48: 5481 3b01                              |0086: iget-object v1, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
017b4c: 7130 5403 0106                         |0088: invoke-static {v1, v0, v6}, Lcom/valentinedesigns/chromalink/GameEngine;.rotate:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;I)Lcom/valentinedesigns/chromalink/GameEngine$Piece; // method@0354
017b52: 0c00                                   |008b: move-result-object v0
017b54: 280e                                   |008c: goto 009a // +000e
017b56: 5481 3b01                              |008d: iget-object v1, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
017b5a: 7140 4603 0136                         |008f: invoke-static {v1, v0, v6, v3}, Lcom/valentinedesigns/chromalink/GameEngine;.move:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;II)Lcom/valentinedesigns/chromalink/GameEngine$Piece; // method@0346
017b60: 0c00                                   |0092: move-result-object v0
017b62: 2807                                   |0093: goto 009a // +0007
017b64: 5481 3b01                              |0094: iget-object v1, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
017b68: 7140 4603 0135                         |0096: invoke-static {v1, v0, v5, v3}, Lcom/valentinedesigns/chromalink/GameEngine;.move:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;II)Lcom/valentinedesigns/chromalink/GameEngine$Piece; // method@0346
017b6e: 0c00                                   |0099: move-result-object v0
017b70: 3800 1400                              |009a: if-eqz v0, 00ae // +0014
017b74: 5b80 4c01                              |009c: iput-object v0, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.piece:Lcom/valentinedesigns/chromalink/GameEngine$Piece; // field@014c
017b78: 5470 6e01                              |009e: iget-object v0, v7, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
017b7c: 3308 0e00                              |00a0: if-ne v8, v0, 00ae // +000e
017b80: 6e20 6206 4900                         |00a2: invoke-virtual {v9, v4}, Ljava/lang/String;.startsWith:(Ljava/lang/String;)Z // method@0662
017b86: 0a08                                   |00a5: move-result v8
017b88: 3808 0300                              |00a6: if-eqz v8, 00a9 // +0003
017b8c: 2803                                   |00a8: goto 00ab // +0003
017b8e: 1a04 7b08                              |00a9: const-string v4, "move" // string@087b
017b92: 7030 3903 4706                         |00ab: invoke-direct {v7, v4, v6}, Lcom/valentinedesigns/chromalink/GameEngine;.event:(Ljava/lang/String;I)V // method@0339
017b98: 0e00                                   |00ae: return-void
017b9a: 0e00                                   |00af: return-void
017b9c: 0002 0600 5bdd dac8 a224 2f00 ef2e ... |00b0: sparse-switch-data (26 units)
017bd0: 0001 0600 0000 0000 3000 0000 2900 ... |00ca: packed-switch-data (16 units)
      catches       : (none)
      positions     :
        0x0000 line=389
        0x001a line=390
        0x001c line=391
        0x0067 line=400
        0x0068 line=398
        0x0070 line=399
        0x007b line=396
        0x007f line=395
        0x0086 line=394
        0x008d line=393
        0x0094 line=392
        0x009a line=402
        0x009c line=403
        0x009e line=404
        0x00ae line=406
        0x00af line=389
      locals        :
        0x0000 - 0x00da reg=7 this Lcom/valentinedesigns/chromalink/GameEngine;
        0x0000 - 0x00da reg=8 (null) Lcom/valentinedesigns/chromalink/GameEngine$Well;
        0x0000 - 0x00da reg=9 (null) Ljava/lang/String;

    #5              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'advanceOfflineGravity'
      type          : '(Lcom/valentinedesigns/chromalink/GameEngine$Well;F)V'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 5
      ins           : 3
      outs          : 2
      insns size    : 39 16-bit code units
017bf0:                                        |[017bf0] com.valentinedesigns.chromalink.GameEngine.advanceOfflineGravity:(Lcom/valentinedesigns/chromalink/GameEngine$Well;F)V
017c00: 6e10 3e03 0200                         |0000: invoke-virtual {v2}, Lcom/valentinedesigns/chromalink/GameEngine;.gravityIntervalMs:()F // method@033e
017c06: 0a00                                   |0003: move-result v0
017c08: 7110 2c06 0000                         |0004: invoke-static {v0}, Ljava/lang/Float;.isFinite:(F)Z // method@062c
017c0e: 0a01                                   |0007: move-result v1
017c10: 3901 0300                              |0008: if-nez v1, 000b // +0003
017c14: 0e00                                   |000a: return-void
017c16: 7110 0803 0300                         |000b: invoke-static {v3}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetfallMs:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)F // method@0308
017c1c: 0a01                                   |000e: move-result v1
017c1e: c641                                   |000f: add-float/2addr v1, v4
017c20: 7120 1303 1300                         |0010: invoke-static {v3, v1}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fputfallMs:(Lcom/valentinedesigns/chromalink/GameEngine$Well;F)V // method@0313
017c26: 7110 0803 0300                         |0013: invoke-static {v3}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetfallMs:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)F // method@0308
017c2c: 0a04                                   |0016: move-result v4
017c2e: 2d04 0400                              |0017: cmpl-float v4, v4, v0
017c32: 3a04 0d00                              |0019: if-ltz v4, 0026 // +000d
017c36: 7110 0803 0300                         |001b: invoke-static {v3}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetfallMs:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)F // method@0308
017c3c: 0a04                                   |001e: move-result v4
017c3e: c704                                   |001f: sub-float/2addr v4, v0
017c40: 7120 1303 4300                         |0020: invoke-static {v3, v4}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fputfallMs:(Lcom/valentinedesigns/chromalink/GameEngine$Well;F)V // method@0313
017c46: 7020 5a03 3200                         |0023: invoke-direct {v2, v3}, Lcom/valentinedesigns/chromalink/GameEngine;.stepDown:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)V // method@035a
017c4c: 0e00                                   |0026: return-void
      catches       : (none)
      positions     :
        0x0000 line=350
        0x0004 line=351
        0x000b line=352
        0x0013 line=353
        0x0026 line=354
      locals        :
        0x0000 - 0x0027 reg=2 this Lcom/valentinedesigns/chromalink/GameEngine;
        0x0000 - 0x0027 reg=3 (null) Lcom/valentinedesigns/chromalink/GameEngine$Well;
        0x0000 - 0x0027 reg=4 (null) F

    #6              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'attackForResolution'
      type          : '(Lcom/valentinedesigns/chromalink/GameEngine$Resolution;)I'
      access        : 0x0009 (PUBLIC STATIC)
      code          -
      registers     : 5
      ins           : 1
      outs          : 2
      insns size    : 52 16-bit code units
016a38:                                        |[016a38] com.valentinedesigns.chromalink.GameEngine.attackForResolution:(Lcom/valentinedesigns/chromalink/GameEngine$Resolution;)I
016a48: 1200                                   |0000: const/4 v0, #int 0 // #0
016a4a: 3904 0300                              |0001: if-nez v4, 0004 // +0003
016a4e: 0f00                                   |0003: return v0
016a50: 0000                                   |0004: nop // spacer
016a52: 5444 2e01                              |0005: iget-object v4, v4, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.frames:Ljava/util/List; // field@012e
016a56: 7210 9a06 0400                         |0007: invoke-interface {v4}, Ljava/util/List;.iterator:()Ljava/util/Iterator; // method@069a
016a5c: 0c04                                   |000a: move-result-object v4
016a5e: 0101                                   |000b: move v1, v0
016a60: 7210 9406 0400                         |000c: invoke-interface {v4}, Ljava/util/Iterator;.hasNext:()Z // method@0694
016a66: 0a02                                   |000f: move-result v2
016a68: 3802 1d00                              |0010: if-eqz v2, 002d // +001d
016a6c: 7210 9506 0400                         |0012: invoke-interface {v4}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0695
016a72: 0c02                                   |0015: move-result-object v2
016a74: 1f02 ae00                              |0016: check-cast v2, Lcom/valentinedesigns/chromalink/GameEngine$Frame; // type@00ae
016a78: 5223 1601                              |0018: iget v3, v2, Lcom/valentinedesigns/chromalink/GameEngine$Frame;.colored:I // field@0116
016a7c: d803 03fd                              |001a: add-int/lit8 v3, v3, #int -3 // #fd
016a80: 7120 4406 3000                         |001c: invoke-static {v0, v3}, Ljava/lang/Math;.max:(II)I // method@0644
016a86: 0a03                                   |001f: move-result v3
016a88: 5222 1501                              |0020: iget v2, v2, Lcom/valentinedesigns/chromalink/GameEngine$Frame;.chain:I // field@0115
016a8c: d802 02ff                              |0022: add-int/lit8 v2, v2, #int -1 // #ff
016a90: 7120 4406 2000                         |0024: invoke-static {v0, v2}, Ljava/lang/Math;.max:(II)I // method@0644
016a96: 0a02                                   |0027: move-result v2
016a98: da02 0203                              |0028: mul-int/lit8 v2, v2, #int 3 // #03
016a9c: b023                                   |002a: add-int/2addr v3, v2
016a9e: b031                                   |002b: add-int/2addr v1, v3
016aa0: 28e0                                   |002c: goto 000c // -0020
016aa2: 1304 2400                              |002d: const/16 v4, #int 36 // #24
016aa6: 7120 4806 1400                         |002f: invoke-static {v4, v1}, Ljava/lang/Math;.min:(II)I // method@0648
016aac: 0a04                                   |0032: move-result v4
016aae: 0f04                                   |0033: return v4
      catches       : (none)
      positions     :
        0x0000 line=661
        0x0004 line=662
        0x0005 line=663
        0x002d line=664
      locals        :
        0x0000 - 0x0034 reg=4 (null) Lcom/valentinedesigns/chromalink/GameEngine$Resolution;

    #7              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'beginClear'
      type          : '(Lcom/valentinedesigns/chromalink/GameEngine$Well;)V'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 5
      ins           : 2
      outs          : 3
      insns size    : 91 16-bit code units
017c50:                                        |[017c50] com.valentinedesigns.chromalink.GameEngine.beginClear:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)V
017c60: 7110 0f03 0400                         |0000: invoke-static {v4}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetresolution:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)Lcom/valentinedesigns/chromalink/GameEngine$Resolution; // method@030f
017c66: 0c00                                   |0003: move-result-object v0
017c68: 5400 2e01                              |0004: iget-object v0, v0, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.frames:Ljava/util/List; // field@012e
017c6c: 7110 0903 0400                         |0006: invoke-static {v4}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetframeIndex:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)I // method@0309
017c72: 0a01                                   |0009: move-result v1
017c74: 7220 9806 1000                         |000a: invoke-interface {v0, v1}, Ljava/util/List;.get:(I)Ljava/lang/Object; // method@0698
017c7a: 0c00                                   |000d: move-result-object v0
017c7c: 1f00 ae00                              |000e: check-cast v0, Lcom/valentinedesigns/chromalink/GameEngine$Frame; // type@00ae
017c80: 5401 1301                              |0010: iget-object v1, v0, Lcom/valentinedesigns/chromalink/GameEngine$Frame;.before:[[I // field@0113
017c84: 7110 3303 0100                         |0012: invoke-static {v1}, Lcom/valentinedesigns/chromalink/GameEngine;.copyBoard:([[I)[[I // method@0333
017c8a: 0c01                                   |0015: move-result-object v1
017c8c: 5b41 3b01                              |0016: iput-object v1, v4, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
017c90: 5401 1401                              |0018: iget-object v1, v0, Lcom/valentinedesigns/chromalink/GameEngine$Frame;.cells:Ljava/util/List; // field@0114
017c94: 5b41 3f01                              |001a: iput-object v1, v4, Lcom/valentinedesigns/chromalink/GameEngine$Well;.flashing:Ljava/util/List; // field@013f
017c98: 5201 1501                              |001c: iget v1, v0, Lcom/valentinedesigns/chromalink/GameEngine$Frame;.chain:I // field@0115
017c9c: 5941 4501                              |001e: iput v1, v4, Lcom/valentinedesigns/chromalink/GameEngine$Well;.lastChain:I // field@0145
017ca0: 1a01 5006                              |0020: const-string v1, "clear" // string@0650
017ca4: 5b41 4a01                              |0022: iput-object v1, v4, Lcom/valentinedesigns/chromalink/GameEngine$Well;.phase:Ljava/lang/String; // field@014a
017ca8: 1202                                   |0024: const/4 v2, #int 0 // #0
017caa: 5942 4b01                              |0025: iput v2, v4, Lcom/valentinedesigns/chromalink/GameEngine$Well;.phaseMs:F // field@014b
017cae: 5432 6e01                              |0027: iget-object v2, v3, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
017cb2: 3324 3100                              |0029: if-ne v4, v2, 005a // +0031
017cb6: 5204 1501                              |002b: iget v4, v0, Lcom/valentinedesigns/chromalink/GameEngine$Frame;.chain:I // field@0115
017cba: 1212                                   |002d: const/4 v2, #int 1 // #1
017cbc: 3724 1000                              |002e: if-le v4, v2, 003e // +0010
017cc0: 5204 1501                              |0030: iget v4, v0, Lcom/valentinedesigns/chromalink/GameEngine$Frame;.chain:I // field@0115
017cc4: 2202 4901                              |0032: new-instance v2, Ljava/lang/StringBuilder; // type@0149
017cc8: 7010 6806 0200                         |0034: invoke-direct {v2}, Ljava/lang/StringBuilder;.<init>:()V // method@0668
017cce: 6e20 6906 4200                         |0037: invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@0669
017cd4: 0c04                                   |003a: move-result-object v4
017cd6: 1a02 0600                              |003b: const-string v2, " CHAIN!" // string@0006
017cda: 280e                                   |003d: goto 004b // +000e
017cdc: 5204 1601                              |003e: iget v4, v0, Lcom/valentinedesigns/chromalink/GameEngine$Frame;.colored:I // field@0116
017ce0: 2202 4901                              |0040: new-instance v2, Ljava/lang/StringBuilder; // type@0149
017ce4: 7010 6806 0200                         |0042: invoke-direct {v2}, Ljava/lang/StringBuilder;.<init>:()V // method@0668
017cea: 6e20 6906 4200                         |0045: invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@0669
017cf0: 0c04                                   |0048: move-result-object v4
017cf2: 1a02 0a00                              |0049: const-string v2, " cleared." // string@000a
017cf6: 6e20 6b06 2400                         |004b: invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@066b
017cfc: 0c04                                   |004e: move-result-object v4
017cfe: 6e10 6c06 0400                         |004f: invoke-virtual {v4}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@066c
017d04: 0c04                                   |0052: move-result-object v4
017d06: 5b34 6a01                              |0053: iput-object v4, v3, Lcom/valentinedesigns/chromalink/GameEngine;.message:Ljava/lang/String; // field@016a
017d0a: 5204 1501                              |0055: iget v4, v0, Lcom/valentinedesigns/chromalink/GameEngine$Frame;.chain:I // field@0115
017d0e: 7030 3903 1304                         |0057: invoke-direct {v3, v1, v4}, Lcom/valentinedesigns/chromalink/GameEngine;.event:(Ljava/lang/String;I)V // method@0339
017d14: 0e00                                   |005a: return-void
      catches       : (none)
      positions     :
        0x0000 line=420
        0x0010 line=421
        0x0020 line=422
        0x0027 line=423
        0x002b line=424
        0x0055 line=425
        0x005a line=427
      locals        :
        0x0000 - 0x005b reg=3 this Lcom/valentinedesigns/chromalink/GameEngine;
        0x0000 - 0x005b reg=4 (null) Lcom/valentinedesigns/chromalink/GameEngine$Well;

    #8              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'bestPlacement'
      type          : '([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;)Lcom/valentinedesigns/chromalink/GameEngine$Piece;'
      access        : 0x0009 (PUBLIC STATIC)
      code          -
      registers     : 20
      ins           : 2
      outs          : 4
      insns size    : 224 16-bit code units
015d20:                                        |[015d20] com.valentinedesigns.chromalink.GameEngine.bestPlacement:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;)Lcom/valentinedesigns/chromalink/GameEngine$Piece;
015d30: 0800 1200                              |0000: move-object/from16 v0, v18
015d34: 7702 2b03 1200                         |0002: invoke-static/range {v18, v19}, Lcom/valentinedesigns/chromalink/GameEngine;.canPlace:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;)Z // method@032b
015d3a: 0a01                                   |0005: move-result v1
015d3c: 1202                                   |0006: const/4 v2, #int 0 // #0
015d3e: 3901 0300                              |0007: if-nez v1, 000a // +0003
015d42: 1102                                   |0009: return-object v2
015d44: 2201 5b01                              |000a: new-instance v1, Ljava/util/ArrayDeque; // type@015b
015d48: 7010 7e06 0100                         |000c: invoke-direct {v1}, Ljava/util/ArrayDeque;.<init>:()V // method@067e
015d4e: 2203 6001                              |000f: new-instance v3, Ljava/util/HashSet; // type@0160
015d52: 7010 9306 0300                         |0011: invoke-direct {v3}, Ljava/util/HashSet;.<init>:()V // method@0693
015d58: 7401 fc02 1300                         |0014: invoke-virtual/range {v19}, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.copy:()Lcom/valentinedesigns/chromalink/GameEngine$Piece; // method@02fc
015d5e: 0c04                                   |0017: move-result-object v4
015d60: 6e20 7f06 4100                         |0018: invoke-virtual {v1, v4}, Ljava/util/ArrayDeque;.add:(Ljava/lang/Object;)Z // method@067f
015d66: 7701 4d03 1300                         |001b: invoke-static/range {v19}, Lcom/valentinedesigns/chromalink/GameEngine;.pieceKey:(Lcom/valentinedesigns/chromalink/GameEngine$Piece;)I // method@034d
015d6c: 0a04                                   |001e: move-result v4
015d6e: 7110 3506 0400                         |001f: invoke-static {v4}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@0635
015d74: 0c04                                   |0022: move-result-object v4
015d76: 7220 a406 4300                         |0023: invoke-interface {v3, v4}, Ljava/util/Set;.add:(Ljava/lang/Object;)Z // method@06a4
015d7c: 0000                                   |0026: nop // spacer
015d7e: 2204 6001                              |0027: new-instance v4, Ljava/util/HashSet; // type@0160
015d82: 7010 9306 0400                         |0029: invoke-direct {v4}, Ljava/util/HashSet;.<init>:()V // method@0693
015d88: 1805 ffff ffff ffff efff               |002c: const-wide v5, #double -1.79769e+308 // #ffefffffffffffff
015d92: 6e10 8206 0100                         |0031: invoke-virtual {v1}, Ljava/util/ArrayDeque;.isEmpty:()Z // method@0682
015d98: 0a07                                   |0034: move-result v7
015d9a: 3907 aa00                              |0035: if-nez v7, 00df // +00aa
015d9e: 6e10 8506 0100                         |0037: invoke-virtual {v1}, Ljava/util/ArrayDeque;.removeFirst:()Ljava/lang/Object; // method@0685
015da4: 0c07                                   |003a: move-result-object v7
015da6: 1f07 b400                              |003b: check-cast v7, Lcom/valentinedesigns/chromalink/GameEngine$Piece; // type@00b4
015daa: 7120 3d03 7000                         |003d: invoke-static {v0, v7}, Lcom/valentinedesigns/chromalink/GameEngine;.ghost:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;)Lcom/valentinedesigns/chromalink/GameEngine$Piece; // method@033d
015db0: 0c08                                   |0040: move-result-object v8
015db2: 1229                                   |0041: const/4 v9, #int 2 // #2
015db4: 121a                                   |0042: const/4 v10, #int 1 // #1
015db6: 120b                                   |0043: const/4 v11, #int 0 // #0
015db8: 3808 5800                              |0044: if-eqz v8, 009c // +0058
015dbc: 7110 4d03 0800                         |0046: invoke-static {v8}, Lcom/valentinedesigns/chromalink/GameEngine;.pieceKey:(Lcom/valentinedesigns/chromalink/GameEngine$Piece;)I // method@034d
015dc2: 0a0c                                   |0049: move-result v12
015dc4: 7110 3506 0c00                         |004a: invoke-static {v12}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@0635
015dca: 0c0c                                   |004d: move-result-object v12
015dcc: 7220 a406 c400                         |004e: invoke-interface {v4, v12}, Ljava/util/Set;.add:(Ljava/lang/Object;)Z // method@06a4
015dd2: 0a0c                                   |0051: move-result v12
015dd4: 380c 4a00                              |0052: if-eqz v12, 009c // +004a
015dd8: 7120 4403 8000                         |0054: invoke-static {v0, v8}, Lcom/valentinedesigns/chromalink/GameEngine;.lockPiece:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;)[[I // method@0344
015dde: 0c0c                                   |0057: move-result-object v12
015de0: 380c 4400                              |0058: if-eqz v12, 009c // +0044
015de4: 7110 5303 0c00                         |005a: invoke-static {v12}, Lcom/valentinedesigns/chromalink/GameEngine;.resolveBoard:([[I)Lcom/valentinedesigns/chromalink/GameEngine$Resolution; // method@0353
015dea: 0c0c                                   |005d: move-result-object v12
015dec: 52cd 3101                              |005e: iget v13, v12, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.score:I // field@0131
015df0: b29d                                   |0060: mul-int/2addr v13, v9
015df2: 52ce 2f01                              |0061: iget v14, v12, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.garbageCleared:I // field@012f
015df6: da0e 0e12                              |0063: mul-int/lit8 v14, v14, #int 18 // #12
015dfa: b0ed                                   |0065: add-int/2addr v13, v14
015dfc: 52ce 3001                              |0066: iget v14, v12, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.maxChain:I // field@0130
015e00: b1ae                                   |0068: sub-int/2addr v14, v10
015e02: 7120 4406 eb00                         |0069: invoke-static {v11, v14}, Ljava/lang/Math;.max:(II)I // method@0644
015e08: 0a0e                                   |006c: move-result v14
015e0a: d2ee dc00                              |006d: mul-int/lit16 v14, v14, #int 220 // #00dc
015e0e: b0ed                                   |006f: add-int/2addr v13, v14
015e10: 83dd                                   |0070: int-to-double v13, v13
015e12: 54cc 2c01                              |0071: iget-object v12, v12, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.board:[[I // field@012c
015e16: 7110 3703 0c00                         |0073: invoke-static {v12}, Lcom/valentinedesigns/chromalink/GameEngine;.evaluate:([[I)D // method@0337
015e1c: 0b0f                                   |0076: move-result-wide v15
015e1e: cbfd                                   |0077: add-double/2addr v13, v15
015e20: 528c 2a01                              |0078: iget v12, v8, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.x:I // field@012a
015e24: 83c9                                   |007a: int-to-double v9, v12
015e26: 1910 0440                              |007b: const-wide/high16 v16, #long 4612811918334230528 // #4004
015e2a: ac09 0910                              |007d: sub-double v9, v9, v16
015e2e: 7120 3906 a900                         |007f: invoke-static {v9, v10}, Ljava/lang/Math;.abs:(D)D // method@0639
015e34: 0b09                                   |0082: move-result-wide v9
015e36: 1810 7b14 ae47 e17a 843f               |0083: const-wide v16, #double 0.01 // #3f847ae147ae147b
015e40: ad09 0910                              |0088: mul-double v9, v9, v16
015e44: cc9d                                   |008a: sub-double/2addr v13, v9
015e46: 5289 2901                              |008b: iget v9, v8, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.rotation:I // field@0129
015e4a: 8399                                   |008d: int-to-double v9, v9
015e4c: 1810 fca9 f1d2 4d62 503f               |008e: const-wide v16, #double 0.001 // #3f50624dd2f1a9fc
015e56: ad09 0910                              |0093: mul-double v9, v9, v16
015e5a: cc9d                                   |0095: sub-double/2addr v13, v9
015e5c: 2f09 0d05                              |0096: cmpl-double v9, v13, v5
015e60: 3d09 0400                              |0098: if-lez v9, 009c // +0004
015e64: 0782                                   |009a: move-object v2, v8
015e66: 04d5                                   |009b: move-wide v5, v13
015e68: 1258                                   |009c: const/4 v8, #int 5 // #5
015e6a: 2389 7b01                              |009d: new-array v9, v8, [Lcom/valentinedesigns/chromalink/GameEngine$Piece; // type@017b
015e6e: 12fa                                   |009f: const/4 v10, #int -1 // #ff
015e70: 7140 4603 70ba                         |00a0: invoke-static {v0, v7, v10, v11}, Lcom/valentinedesigns/chromalink/GameEngine;.move:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;II)Lcom/valentinedesigns/chromalink/GameEngine$Piece; // method@0346
015e76: 0c0c                                   |00a3: move-result-object v12
015e78: 4d0c 090b                              |00a4: aput-object v12, v9, v11
015e7c: 121c                                   |00a6: const/4 v12, #int 1 // #1
015e7e: 7140 4603 70bc                         |00a7: invoke-static {v0, v7, v12, v11}, Lcom/valentinedesigns/chromalink/GameEngine;.move:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;II)Lcom/valentinedesigns/chromalink/GameEngine$Piece; // method@0346
015e84: 0c0d                                   |00aa: move-result-object v13
015e86: 4d0d 090c                              |00ab: aput-object v13, v9, v12
015e8a: 7140 4603 70cb                         |00ad: invoke-static {v0, v7, v11, v12}, Lcom/valentinedesigns/chromalink/GameEngine;.move:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;II)Lcom/valentinedesigns/chromalink/GameEngine$Piece; // method@0346
015e90: 0c0d                                   |00b0: move-result-object v13
015e92: 122e                                   |00b1: const/4 v14, #int 2 // #2
015e94: 4d0d 090e                              |00b2: aput-object v13, v9, v14
015e98: 123d                                   |00b4: const/4 v13, #int 3 // #3
015e9a: 7130 5403 700c                         |00b5: invoke-static {v0, v7, v12}, Lcom/valentinedesigns/chromalink/GameEngine;.rotate:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;I)Lcom/valentinedesigns/chromalink/GameEngine$Piece; // method@0354
015ea0: 0c0c                                   |00b8: move-result-object v12
015ea2: 4d0c 090d                              |00b9: aput-object v12, v9, v13
015ea6: 124c                                   |00bb: const/4 v12, #int 4 // #4
015ea8: 7130 5403 700a                         |00bc: invoke-static {v0, v7, v10}, Lcom/valentinedesigns/chromalink/GameEngine;.rotate:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;I)Lcom/valentinedesigns/chromalink/GameEngine$Piece; // method@0354
015eae: 0c07                                   |00bf: move-result-object v7
015eb0: 4d07 090c                              |00c0: aput-object v7, v9, v12
015eb4: 0000                                   |00c2: nop // spacer
015eb6: 358b 1a00                              |00c3: if-ge v11, v8, 00dd // +001a
015eba: 4607 090b                              |00c5: aget-object v7, v9, v11
015ebe: 3807 1300                              |00c7: if-eqz v7, 00da // +0013
015ec2: 7110 4d03 0700                         |00c9: invoke-static {v7}, Lcom/valentinedesigns/chromalink/GameEngine;.pieceKey:(Lcom/valentinedesigns/chromalink/GameEngine$Piece;)I // method@034d
015ec8: 0a0a                                   |00cc: move-result v10
015eca: 7110 3506 0a00                         |00cd: invoke-static {v10}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@0635
015ed0: 0c0a                                   |00d0: move-result-object v10
015ed2: 7220 a406 a300                         |00d1: invoke-interface {v3, v10}, Ljava/util/Set;.add:(Ljava/lang/Object;)Z // method@06a4
015ed8: 0a0a                                   |00d4: move-result v10
015eda: 380a 0500                              |00d5: if-eqz v10, 00da // +0005
015ede: 6e20 8006 7100                         |00d7: invoke-virtual {v1, v7}, Ljava/util/ArrayDeque;.addLast:(Ljava/lang/Object;)V // method@0680
015ee4: d80b 0b01                              |00da: add-int/lit8 v11, v11, #int 1 // #01
015ee8: 28e7                                   |00dc: goto 00c3 // -0019
015eea: 2900 54ff                              |00dd: goto/16 0031 // -00ac
015eee: 1102                                   |00df: return-object v2
      catches       : (none)
      positions     :
        0x0000 line=827
        0x000a line=828
        0x0014 line=829
        0x0026 line=830
        0x0027 line=831
        0x0031 line=832
        0x0037 line=833
        0x003d line=834
        0x0041 line=837
        0x0054 line=838
        0x0058 line=839
        0x005a line=840
        0x005e line=841
        0x007f line=842
        0x0096 line=843
        0x009c line=846
        0x00c2 line=847
        0x00dd line=848
        0x00df line=849
      locals        :
        0x0000 - 0x00e0 reg=18 (null) [[I
        0x0000 - 0x00e0 reg=19 (null) Lcom/valentinedesigns/chromalink/GameEngine$Piece;

    #9              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'canPlace'
      type          : '([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;)Z'
      access        : 0x0009 (PUBLIC STATIC)
      code          -
      registers     : 4
      ins           : 2
      outs          : 4
      insns size    : 18 16-bit code units
0157c0:                                        |[0157c0] com.valentinedesigns.chromalink.GameEngine.canPlace:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;)Z
0157d0: 3803 1000                              |0000: if-eqz v3, 0010 // +0010
0157d4: 5230 2a01                              |0002: iget v0, v3, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.x:I // field@012a
0157d8: 5231 2b01                              |0004: iget v1, v3, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.y:I // field@012b
0157dc: 5233 2901                              |0006: iget v3, v3, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.rotation:I // field@0129
0157e0: 7140 2c03 0231                         |0008: invoke-static {v2, v0, v1, v3}, Lcom/valentinedesigns/chromalink/GameEngine;.canPlaceAt:([[IIII)Z // method@032c
0157e6: 0a02                                   |000b: move-result v2
0157e8: 3802 0400                              |000c: if-eqz v2, 0010 // +0004
0157ec: 1212                                   |000e: const/4 v2, #int 1 // #1
0157ee: 2802                                   |000f: goto 0011 // +0002
0157f0: 1202                                   |0010: const/4 v2, #int 0 // #0
0157f2: 0f02                                   |0011: return v2
      catches       : (none)
      positions     :
        0x0000 line=551
      locals        :
        0x0000 - 0x0012 reg=2 (null) [[I
        0x0000 - 0x0012 reg=3 (null) Lcom/valentinedesigns/chromalink/GameEngine$Piece;

    #10              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'canPlaceAt'
      type          : '([[IIII)Z'
      access        : 0x000a (PRIVATE STATIC)
      code          -
      registers     : 6
      ins           : 4
      outs          : 3
      insns size    : 31 16-bit code units
0157f4:                                        |[0157f4] com.valentinedesigns.chromalink.GameEngine.canPlaceAt:([[IIII)Z
015804: 6200 5e01                              |0000: sget-object v0, Lcom/valentinedesigns/chromalink/GameEngine;.OFFSETS:[[I // field@015e
015808: 1241                                   |0002: const/4 v1, #int 4 // #4
01580a: 7120 4006 1500                         |0003: invoke-static {v5, v1}, Ljava/lang/Math;.floorMod:(II)I // method@0640
015810: 0a05                                   |0006: move-result v5
015812: 4605 0005                              |0007: aget-object v5, v0, v5
015816: 7130 2e03 3204                         |0009: invoke-static {v2, v3, v4}, Lcom/valentinedesigns/chromalink/GameEngine;.cellIsFree:([[III)Z // method@032e
01581c: 0a00                                   |000c: move-result v0
01581e: 1201                                   |000d: const/4 v1, #int 0 // #0
015820: 3800 1000                              |000e: if-eqz v0, 001e // +0010
015824: 4400 0501                              |0010: aget v0, v5, v1
015828: b003                                   |0012: add-int/2addr v3, v0
01582a: 1210                                   |0013: const/4 v0, #int 1 // #1
01582c: 4405 0500                              |0014: aget v5, v5, v0
015830: b054                                   |0016: add-int/2addr v4, v5
015832: 7130 2e03 3204                         |0017: invoke-static {v2, v3, v4}, Lcom/valentinedesigns/chromalink/GameEngine;.cellIsFree:([[III)Z // method@032e
015838: 0a02                                   |001a: move-result v2
01583a: 3802 0300                              |001b: if-eqz v2, 001e // +0003
01583e: 0101                                   |001d: move v1, v0
015840: 0f01                                   |001e: return v1
      catches       : (none)
      positions     :
        0x0000 line=560
        0x0009 line=561
      locals        :
        0x0000 - 0x001f reg=2 (null) [[I
        0x0000 - 0x001f reg=3 (null) I
        0x0000 - 0x001f reg=4 (null) I
        0x0000 - 0x001f reg=5 (null) I

    #11              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'cancelPackets'
      type          : '(Lcom/valentinedesigns/chromalink/GameEngine$Well;IZ)I'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 9
      ins           : 4
      outs          : 2
      insns size    : 64 16-bit code units
016b68:                                        |[016b68] com.valentinedesigns.chromalink.GameEngine.cancelPackets:(Lcom/valentinedesigns/chromalink/GameEngine$Well;IZ)I
016b78: 0000                                   |0000: nop // spacer
016b7a: 7110 0c03 0600                         |0001: invoke-static {v6}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetpackets:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)Ljava/util/List; // method@030c
016b80: 0c00                                   |0004: move-result-object v0
016b82: 7210 9a06 0000                         |0005: invoke-interface {v0}, Ljava/util/List;.iterator:()Ljava/util/Iterator; // method@069a
016b88: 0c00                                   |0008: move-result-object v0
016b8a: 0171                                   |0009: move v1, v7
016b8c: 7210 9406 0000                         |000a: invoke-interface {v0}, Ljava/util/Iterator;.hasNext:()Z // method@0694
016b92: 0a02                                   |000d: move-result v2
016b94: 3802 2100                              |000e: if-eqz v2, 002f // +0021
016b98: 7210 9506 0000                         |0010: invoke-interface {v0}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0695
016b9e: 0c02                                   |0013: move-result-object v2
016ba0: 1f02 b200                              |0014: check-cast v2, Lcom/valentinedesigns/chromalink/GameEngine$Packet; // type@00b2
016ba4: 3808 0900                              |0016: if-eqz v8, 001f // +0009
016ba8: 5223 2401                              |0018: iget v3, v2, Lcom/valentinedesigns/chromalink/GameEngine$Packet;.readyAfter:I // field@0124
016bac: 5264 4701                              |001a: iget v4, v6, Lcom/valentinedesigns/chromalink/GameEngine$Well;.moves:I // field@0147
016bb0: 3743 0300                              |001c: if-le v3, v4, 001f // +0003
016bb4: 28ec                                   |001e: goto 000a // -0014
016bb6: 5223 2301                              |001f: iget v3, v2, Lcom/valentinedesigns/chromalink/GameEngine$Packet;.count:I // field@0123
016bba: 7120 4806 1300                         |0021: invoke-static {v3, v1}, Ljava/lang/Math;.min:(II)I // method@0648
016bc0: 0a03                                   |0024: move-result v3
016bc2: 5224 2301                              |0025: iget v4, v2, Lcom/valentinedesigns/chromalink/GameEngine$Packet;.count:I // field@0123
016bc6: b134                                   |0027: sub-int/2addr v4, v3
016bc8: 5924 2301                              |0028: iput v4, v2, Lcom/valentinedesigns/chromalink/GameEngine$Packet;.count:I // field@0123
016bcc: b131                                   |002a: sub-int/2addr v1, v3
016bce: 3901 0300                              |002b: if-nez v1, 002e // +0003
016bd2: 2802                                   |002d: goto 002f // +0002
016bd4: 28dc                                   |002e: goto 000a // -0024
016bd6: 7110 0c03 0600                         |002f: invoke-static {v6}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetpackets:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)Ljava/util/List; // method@030c
016bdc: 0c08                                   |0032: move-result-object v8
016bde: 2200 ab00                              |0033: new-instance v0, Lcom/valentinedesigns/chromalink/GameEngine$$ExternalSyntheticLambda0; // type@00ab
016be2: 7010 ed02 0000                         |0035: invoke-direct {v0}, Lcom/valentinedesigns/chromalink/GameEngine$$ExternalSyntheticLambda0;.<init>:()V // method@02ed
016be8: 7220 9b06 0800                         |0038: invoke-interface {v8, v0}, Ljava/util/List;.removeIf:(Ljava/util/function/Predicate;)Z // method@069b
016bee: 7020 5203 6500                         |003b: invoke-direct {v5, v6}, Lcom/valentinedesigns/chromalink/GameEngine;.refreshIncoming:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)V // method@0352
016bf4: b117                                   |003e: sub-int/2addr v7, v1
016bf6: 0f07                                   |003f: return v7
      catches       : (none)
      positions     :
        0x0000 line=486
        0x0001 line=487
        0x0016 line=488
        0x001f line=489
        0x002b line=490
        0x002e line=491
        0x002f line=492
        0x003e line=493
      locals        :
        0x0000 - 0x0040 reg=5 this Lcom/valentinedesigns/chromalink/GameEngine;
        0x0000 - 0x0040 reg=6 (null) Lcom/valentinedesigns/chromalink/GameEngine$Well;
        0x0000 - 0x0040 reg=7 (null) I
        0x0000 - 0x0040 reg=8 (null) Z

    #12              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'cellIsFree'
      type          : '([[III)Z'
      access        : 0x000a (PRIVATE STATIC)
      code          -
      registers     : 5
      ins           : 3
      outs          : 0
      insns size    : 24 16-bit code units
015844:                                        |[015844] com.valentinedesigns.chromalink.GameEngine.cellIsFree:([[III)Z
015854: 3a03 1600                              |0000: if-ltz v3, 0016 // +0016
015858: 1260                                   |0002: const/4 v0, #int 6 // #6
01585a: 3503 1300                              |0003: if-ge v3, v0, 0016 // +0013
01585e: 12e0                                   |0005: const/4 v0, #int -2 // #fe
015860: 3404 1000                              |0006: if-lt v4, v0, 0016 // +0010
015864: 1301 0c00                              |0008: const/16 v1, #int 12 // #c
015868: 3514 0c00                              |000a: if-ge v4, v1, 0016 // +000c
01586c: 3a04 0800                              |000c: if-ltz v4, 0014 // +0008
015870: 4602 0204                              |000e: aget-object v2, v2, v4
015874: 4402 0203                              |0010: aget v2, v2, v3
015878: 3302 0400                              |0012: if-ne v2, v0, 0016 // +0004
01587c: 1212                                   |0014: const/4 v2, #int 1 // #1
01587e: 2802                                   |0015: goto 0017 // +0002
015880: 1202                                   |0016: const/4 v2, #int 0 // #0
015882: 0f02                                   |0017: return v2
      catches       : (none)
      positions     :
        0x0000 line=565
      locals        :
        0x0000 - 0x0018 reg=2 (null) [[I
        0x0000 - 0x0018 reg=3 (null) I
        0x0000 - 0x0018 reg=4 (null) I

    #13              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'checkProgression'
      type          : '()V'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 10
      ins           : 1
      outs          : 3
      insns size    : 140 16-bit code units
017d18:                                        |[017d18] com.valentinedesigns.chromalink.GameEngine.checkProgression:()V
017d28: 5490 6b01                              |0000: iget-object v0, v9, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
017d2c: 6201 2201                              |0002: sget-object v1, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.PRACTICE:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@0122
017d30: 3210 8700                              |0004: if-eq v0, v1, 008b // +0087
017d34: 5490 6b01                              |0006: iget-object v0, v9, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
017d38: 6201 1d01                              |0008: sget-object v1, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.CAMPAIGN:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@011d
017d3c: 3310 0400                              |000a: if-ne v0, v1, 000e // +0004
017d40: 2900 7f00                              |000c: goto/16 008b // +007f
017d44: 6200 6101                              |000e: sget-object v0, Lcom/valentinedesigns/chromalink/GameEngine;.THRESHOLDS:[I // field@0161
017d48: 5291 7201                              |0010: iget v1, v9, Lcom/valentinedesigns/chromalink/GameEngine;.startStage:I // field@0172
017d4c: 4400 0001                              |0012: aget v0, v0, v1
017d50: 5491 6b01                              |0014: iget-object v1, v9, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
017d54: 6202 2101                              |0016: sget-object v2, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.ONLINE:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@0121
017d58: 3321 0f00                              |0018: if-ne v1, v2, 0027 // +000f
017d5c: 5491 6e01                              |001a: iget-object v1, v9, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
017d60: 5211 4f01                              |001c: iget v1, v1, Lcom/valentinedesigns/chromalink/GameEngine$Well;.score:I // field@014f
017d64: 5492 6401                              |001e: iget-object v2, v9, Lcom/valentinedesigns/chromalink/GameEngine;.cpu:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@0164
017d68: 5222 4f01                              |0020: iget v2, v2, Lcom/valentinedesigns/chromalink/GameEngine$Well;.score:I // field@014f
017d6c: 7120 4406 2100                         |0022: invoke-static {v1, v2}, Ljava/lang/Math;.max:(II)I // method@0644
017d72: 0a01                                   |0025: move-result v1
017d74: 2805                                   |0026: goto 002b // +0005
017d76: 5491 6e01                              |0027: iget-object v1, v9, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
017d7a: 5211 4f01                              |0029: iget v1, v1, Lcom/valentinedesigns/chromalink/GameEngine$Well;.score:I // field@014f
017d7e: b010                                   |002b: add-int/2addr v0, v1
017d80: 5291 7101                              |002c: iget v1, v9, Lcom/valentinedesigns/chromalink/GameEngine;.stage:I // field@0171
017d84: 1232                                   |002e: const/4 v2, #int 3 // #3
017d86: 3521 0c00                              |002f: if-ge v1, v2, 003b // +000c
017d8a: 6203 6101                              |0031: sget-object v3, Lcom/valentinedesigns/chromalink/GameEngine;.THRESHOLDS:[I // field@0161
017d8e: d804 0101                              |0033: add-int/lit8 v4, v1, #int 1 // #01
017d92: 4403 0304                              |0035: aget v3, v3, v4
017d96: 3430 0400                              |0037: if-lt v0, v3, 003b // +0004
017d9a: 0141                                   |0039: move v1, v4
017d9c: 28f4                                   |003a: goto 002e // -000c
017d9e: 5290 7101                              |003b: iget v0, v9, Lcom/valentinedesigns/chromalink/GameEngine;.stage:I // field@0171
017da2: 3301 0300                              |003d: if-ne v1, v0, 0040 // +0003
017da6: 0e00                                   |003f: return-void
017da8: 5991 7101                              |0040: iput v1, v9, Lcom/valentinedesigns/chromalink/GameEngine;.stage:I // field@0171
017dac: 1220                                   |0042: const/4 v0, #int 2 // #2
017dae: 2301 7c01                              |0043: new-array v1, v0, [Lcom/valentinedesigns/chromalink/GameEngine$Well; // type@017c
017db2: 5493 6e01                              |0045: iget-object v3, v9, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
017db6: 1204                                   |0047: const/4 v4, #int 0 // #0
017db8: 4d03 0104                              |0048: aput-object v3, v1, v4
017dbc: 5493 6401                              |004a: iget-object v3, v9, Lcom/valentinedesigns/chromalink/GameEngine;.cpu:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@0164
017dc0: 1215                                   |004c: const/4 v5, #int 1 // #1
017dc2: 4d03 0105                              |004d: aput-object v3, v1, v5
017dc6: 3504 1b00                              |004f: if-ge v4, v0, 006a // +001b
017dca: 4603 0104                              |0051: aget-object v3, v1, v4
017dce: 7110 0d03 0300                         |0053: invoke-static {v3}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetpalettes:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)Ljava/util/List; // method@030d
017dd4: 0c06                                   |0056: move-result-object v6
017dd6: 2207 b300                              |0057: new-instance v7, Lcom/valentinedesigns/chromalink/GameEngine$PaletteChange; // type@00b3
017dda: 7110 0b03 0300                         |0059: invoke-static {v3}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetindex:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)I // method@030b
017de0: 0a03                                   |005c: move-result v3
017de2: b023                                   |005d: add-int/2addr v3, v2
017de4: 5298 7101                              |005e: iget v8, v9, Lcom/valentinedesigns/chromalink/GameEngine;.stage:I // field@0171
017de8: b028                                   |0060: add-int/2addr v8, v2
017dea: 7030 fa02 3708                         |0061: invoke-direct {v7, v3, v8}, Lcom/valentinedesigns/chromalink/GameEngine$PaletteChange;.<init>:(II)V // method@02fa
017df0: 7220 9606 7600                         |0064: invoke-interface {v6, v7}, Ljava/util/List;.add:(Ljava/lang/Object;)Z // method@0696
017df6: d804 0401                              |0067: add-int/lit8 v4, v4, #int 1 // #01
017dfa: 28e6                                   |0069: goto 004f // -001a
017dfc: 5290 7101                              |006a: iget v0, v9, Lcom/valentinedesigns/chromalink/GameEngine;.stage:I // field@0171
017e00: b020                                   |006c: add-int/2addr v0, v2
017e02: 2201 4901                              |006d: new-instance v1, Ljava/lang/StringBuilder; // type@0149
017e06: 7010 6806 0100                         |006f: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@0668
017e0c: 6e20 6906 0100                         |0072: invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@0669
017e12: 0c00                                   |0075: move-result-object v0
017e14: 1a01 0b00                              |0076: const-string v1, " colours! New tiles join after the next three pairs." // string@000b
017e18: 6e20 6b06 1000                         |0078: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@066b
017e1e: 0c00                                   |007b: move-result-object v0
017e20: 6e10 6c06 0000                         |007c: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@066c
017e26: 0c00                                   |007f: move-result-object v0
017e28: 5b90 6a01                              |0080: iput-object v0, v9, Lcom/valentinedesigns/chromalink/GameEngine;.message:Ljava/lang/String; // field@016a
017e2c: 5290 7101                              |0082: iget v0, v9, Lcom/valentinedesigns/chromalink/GameEngine;.stage:I // field@0171
017e30: b050                                   |0084: add-int/2addr v0, v5
017e32: 1a01 4408                              |0085: const-string v1, "level" // string@0844
017e36: 7030 3903 1900                         |0087: invoke-direct {v9, v1, v0}, Lcom/valentinedesigns/chromalink/GameEngine;.event:(Ljava/lang/String;I)V // method@0339
017e3c: 0e00                                   |008a: return-void
017e3e: 0e00                                   |008b: return-void
      catches       : (none)
      positions     :
        0x0000 line=460
        0x000e line=461
        0x002e line=462
        0x003b line=463
        0x0040 line=464
        0x0042 line=465
        0x006a line=466
        0x0082 line=467
        0x008a line=468
        0x008b line=460
      locals        :
        0x0000 - 0x008c reg=9 this Lcom/valentinedesigns/chromalink/GameEngine;

    #14              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'completeMove'
      type          : '(Lcom/valentinedesigns/chromalink/GameEngine$Well;)V'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 13
      ins           : 2
      outs          : 4
      insns size    : 419 16-bit code units
017e40:                                        |[017e40] com.valentinedesigns.chromalink.GameEngine.completeMove:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)V
017e50: 54b0 6e01                              |0000: iget-object v0, v11, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
017e54: 1261                                   |0002: const/4 v1, #int 6 // #6
017e56: 1212                                   |0003: const/4 v2, #int 1 // #1
017e58: 330c 1c00                              |0004: if-ne v12, v0, 0020 // +001c
017e5c: 54b0 6b01                              |0006: iget-object v0, v11, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
017e60: 6203 1d01                              |0008: sget-object v3, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.CAMPAIGN:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@011d
017e64: 3330 1600                              |000a: if-ne v0, v3, 0020 // +0016
017e68: 52b0 6801                              |000c: iget v0, v11, Lcom/valentinedesigns/chromalink/GameEngine;.lesson:I // field@0168
017e6c: 3510 1200                              |000e: if-ge v0, v1, 0020 // +0012
017e70: 6e10 2803 0b00                         |0010: invoke-virtual {v11}, Lcom/valentinedesigns/chromalink/GameEngine;.campaignGoalProgress:()I // method@0328
017e76: 0a00                                   |0013: move-result v0
017e78: 6e10 2903 0b00                         |0014: invoke-virtual {v11}, Lcom/valentinedesigns/chromalink/GameEngine;.campaignGoalTarget:()I // method@0329
017e7e: 0a03                                   |0017: move-result v3
017e80: 3430 0800                              |0018: if-lt v0, v3, 0020 // +0008
017e84: 1a0c 5403                              |001a: const-string v12, "Lesson complete." // string@0354
017e88: 7030 3b03 2b0c                         |001c: invoke-direct {v11, v2, v12}, Lcom/valentinedesigns/chromalink/GameEngine;.finish:(ZLjava/lang/String;)V // method@033b
017e8e: 0e00                                   |001f: return-void
017e90: 7110 0f03 0c00                         |0020: invoke-static {v12}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetresolution:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)Lcom/valentinedesigns/chromalink/GameEngine$Resolution; // method@030f
017e96: 0c00                                   |0023: move-result-object v0
017e98: 7110 2203 0000                         |0024: invoke-static {v0}, Lcom/valentinedesigns/chromalink/GameEngine;.attackForResolution:(Lcom/valentinedesigns/chromalink/GameEngine$Resolution;)I // method@0322
017e9e: 0a00                                   |0027: move-result v0
017ea0: 54b3 6b01                              |0028: iget-object v3, v11, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
017ea4: 6204 1f01                              |002a: sget-object v4, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.DUEL:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@011f
017ea8: 1205                                   |002c: const/4 v5, #int 0 // #0
017eaa: 3243 1200                              |002d: if-eq v3, v4, 003f // +0012
017eae: 54b3 6b01                              |002f: iget-object v3, v11, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
017eb2: 6204 2101                              |0031: sget-object v4, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.ONLINE:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@0121
017eb6: 3243 0c00                              |0033: if-eq v3, v4, 003f // +000c
017eba: 54b3 6b01                              |0035: iget-object v3, v11, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
017ebe: 6204 1d01                              |0037: sget-object v4, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.CAMPAIGN:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@011d
017ec2: 3343 d200                              |0039: if-ne v3, v4, 010b // +00d2
017ec6: 52b3 6801                              |003b: iget v3, v11, Lcom/valentinedesigns/chromalink/GameEngine;.lesson:I // field@0168
017eca: 3313 ce00                              |003d: if-ne v3, v1, 010b // +00ce
017ece: 3d00 cc00                              |003f: if-lez v0, 010b // +00cc
017ed2: 7040 2d03 cb50                         |0041: invoke-direct {v11, v12, v0, v5}, Lcom/valentinedesigns/chromalink/GameEngine;.cancelPackets:(Lcom/valentinedesigns/chromalink/GameEngine$Well;IZ)I // method@032d
017ed8: 0a03                                   |0044: move-result v3
017eda: 52c4 3d01                              |0045: iget v4, v12, Lcom/valentinedesigns/chromalink/GameEngine$Well;.countered:I // field@013d
017ede: b034                                   |0047: add-int/2addr v4, v3
017ee0: 59c4 3d01                              |0048: iput v4, v12, Lcom/valentinedesigns/chromalink/GameEngine$Well;.countered:I // field@013d
017ee4: b130                                   |004a: sub-int/2addr v0, v3
017ee6: 3d00 1300                              |004b: if-lez v0, 005e // +0013
017eea: 54b4 6e01                              |004d: iget-object v4, v11, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
017eee: 334c 0500                              |004f: if-ne v12, v4, 0054 // +0005
017ef2: 54b4 6401                              |0051: iget-object v4, v11, Lcom/valentinedesigns/chromalink/GameEngine;.cpu:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@0164
017ef6: 2803                                   |0053: goto 0056 // +0003
017ef8: 54b4 6e01                              |0054: iget-object v4, v11, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
017efc: 6e30 5103 4b00                         |0056: invoke-virtual {v11, v4, v0}, Lcom/valentinedesigns/chromalink/GameEngine;.queueAttack:(Lcom/valentinedesigns/chromalink/GameEngine$Well;I)V // method@0351
017f02: 52c4 5001                              |0059: iget v4, v12, Lcom/valentinedesigns/chromalink/GameEngine$Well;.sent:I // field@0150
017f06: b004                                   |005b: add-int/2addr v4, v0
017f08: 59c4 5001                              |005c: iput v4, v12, Lcom/valentinedesigns/chromalink/GameEngine$Well;.sent:I // field@0150
017f0c: 54b4 6e01                              |005e: iget-object v4, v11, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
017f10: 334c 8000                              |0060: if-ne v12, v4, 00e0 // +0080
017f14: 3d03 4f00                              |0062: if-lez v3, 00b1 // +004f
017f18: 3d00 2b00                              |0064: if-lez v0, 008f // +002b
017f1c: 54b4 6b01                              |0066: iget-object v4, v11, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
017f20: 6206 2101                              |0068: sget-object v6, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.ONLINE:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@0121
017f24: 3364 0500                              |006a: if-ne v4, v6, 006f // +0005
017f28: 1a04 4a0b                              |006c: const-string v4, "your opponent." // string@0b4a
017f2c: 2803                                   |006e: goto 0071 // +0003
017f2e: 1a04 b501                              |006f: const-string v4, "I.N.K." // string@01b5
017f32: 2206 4901                              |0071: new-instance v6, Ljava/lang/StringBuilder; // type@0149
017f36: 7010 6806 0600                         |0073: invoke-direct {v6}, Ljava/lang/StringBuilder;.<init>:()V // method@0668
017f3c: 1a07 af00                              |0076: const-string v7, ". " // string@00af
017f40: 6e20 6b06 7600                         |0078: invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@066b
017f46: 0c06                                   |007b: move-result-object v6
017f48: 6e20 6906 0600                         |007c: invoke-virtual {v6, v0}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@0669
017f4e: 0c06                                   |007f: move-result-object v6
017f50: 1a07 1300                              |0080: const-string v7, " sent to " // string@0013
017f54: 6e20 6b06 7600                         |0082: invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@066b
017f5a: 0c06                                   |0085: move-result-object v6
017f5c: 6e20 6b06 4600                         |0086: invoke-virtual {v6, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@066b
017f62: 0c04                                   |0089: move-result-object v4
017f64: 6e10 6c06 0400                         |008a: invoke-virtual {v4}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@066c
017f6a: 0c04                                   |008d: move-result-object v4
017f6c: 2803                                   |008e: goto 0091 // +0003
017f6e: 1a04 ae00                              |008f: const-string v4, "." // string@00ae
017f72: 2206 4901                              |0091: new-instance v6, Ljava/lang/StringBuilder; // type@0149
017f76: 7010 6806 0600                         |0093: invoke-direct {v6}, Ljava/lang/StringBuilder;.<init>:()V // method@0668
017f7c: 1a07 2c01                              |0096: const-string v7, "COUNTER! " // string@012c
017f80: 6e20 6b06 7600                         |0098: invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@066b
017f86: 0c06                                   |009b: move-result-object v6
017f88: 6e20 6906 3600                         |009c: invoke-virtual {v6, v3}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@0669
017f8e: 0c06                                   |009f: move-result-object v6
017f90: 1a07 0d00                              |00a0: const-string v7, " junk cancelled" // string@000d
017f94: 6e20 6b06 7600                         |00a2: invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@066b
017f9a: 0c06                                   |00a5: move-result-object v6
017f9c: 6e20 6b06 4600                         |00a6: invoke-virtual {v6, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@066b
017fa2: 0c04                                   |00a9: move-result-object v4
017fa4: 6e10 6c06 0400                         |00aa: invoke-virtual {v4}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@066c
017faa: 0c04                                   |00ad: move-result-object v4
017fac: 5bb4 6a01                              |00ae: iput-object v4, v11, Lcom/valentinedesigns/chromalink/GameEngine;.message:Ljava/lang/String; // field@016a
017fb0: 2821                                   |00b0: goto 00d1 // +0021
017fb2: 3d00 2000                              |00b1: if-lez v0, 00d1 // +0020
017fb6: 54b4 6b01                              |00b3: iget-object v4, v11, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
017fba: 6206 2101                              |00b5: sget-object v6, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.ONLINE:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@0121
017fbe: 3364 0500                              |00b7: if-ne v4, v6, 00bc // +0005
017fc2: 1a04 0f00                              |00b9: const-string v4, " junk sent to your opponent." // string@000f
017fc6: 2803                                   |00bb: goto 00be // +0003
017fc8: 1a04 0e00                              |00bc: const-string v4, " junk sent to I.N.K." // string@000e
017fcc: 2206 4901                              |00be: new-instance v6, Ljava/lang/StringBuilder; // type@0149
017fd0: 7010 6806 0600                         |00c0: invoke-direct {v6}, Ljava/lang/StringBuilder;.<init>:()V // method@0668
017fd6: 6e20 6906 0600                         |00c3: invoke-virtual {v6, v0}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@0669
017fdc: 0c06                                   |00c6: move-result-object v6
017fde: 6e20 6b06 4600                         |00c7: invoke-virtual {v6, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@066b
017fe4: 0c04                                   |00ca: move-result-object v4
017fe6: 6e10 6c06 0400                         |00cb: invoke-virtual {v4}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@066c
017fec: 0c04                                   |00ce: move-result-object v4
017fee: 5bb4 6a01                              |00cf: iput-object v4, v11, Lcom/valentinedesigns/chromalink/GameEngine;.message:Ljava/lang/String; // field@016a
017ff2: 3d03 0500                              |00d1: if-lez v3, 00d6 // +0005
017ff6: 1a04 8006                              |00d3: const-string v4, "counter" // string@0680
017ffa: 2803                                   |00d5: goto 00d8 // +0003
017ffc: 1a04 e005                              |00d6: const-string v4, "attack" // string@05e0
018000: 3d03 0300                              |00d8: if-lez v3, 00db // +0003
018004: 2802                                   |00da: goto 00dc // +0002
018006: 0103                                   |00db: move v3, v0
018008: 7030 3903 4b03                         |00dc: invoke-direct {v11, v4, v3}, Lcom/valentinedesigns/chromalink/GameEngine;.event:(Ljava/lang/String;I)V // method@0339
01800e: 282c                                   |00df: goto 010b // +002c
018010: 3d00 2b00                              |00e0: if-lez v0, 010b // +002b
018014: 54b3 6b01                              |00e2: iget-object v3, v11, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
018018: 6204 2101                              |00e4: sget-object v4, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.ONLINE:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@0121
01801c: 3343 0500                              |00e6: if-ne v3, v4, 00eb // +0005
018020: 1a03 6605                              |00e8: const-string v3, "Your opponent sent " // string@0566
018024: 2803                                   |00ea: goto 00ed // +0003
018026: 1a03 ba01                              |00eb: const-string v3, "I.N.K. sent " // string@01ba
01802a: 2204 4901                              |00ed: new-instance v4, Ljava/lang/StringBuilder; // type@0149
01802e: 7010 6806 0400                         |00ef: invoke-direct {v4}, Ljava/lang/StringBuilder;.<init>:()V // method@0668
018034: 6e20 6b06 3400                         |00f2: invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@066b
01803a: 0c03                                   |00f5: move-result-object v3
01803c: 6e20 6906 0300                         |00f6: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@0669
018042: 0c03                                   |00f9: move-result-object v3
018044: 1a04 b000                              |00fa: const-string v4, ". Clear to counter!" // string@00b0
018048: 6e20 6b06 4300                         |00fc: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@066b
01804e: 0c03                                   |00ff: move-result-object v3
018050: 6e10 6c06 0300                         |0100: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@066c
018056: 0c03                                   |0103: move-result-object v3
018058: 5bb3 6a01                              |0104: iput-object v3, v11, Lcom/valentinedesigns/chromalink/GameEngine;.message:Ljava/lang/String; // field@016a
01805c: 1a03 ca07                              |0106: const-string v3, "incoming" // string@07ca
018060: 7030 3903 3b00                         |0108: invoke-direct {v11, v3, v0}, Lcom/valentinedesigns/chromalink/GameEngine;.event:(Ljava/lang/String;I)V // method@0339
018066: 54b0 6e01                              |010b: iget-object v0, v11, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
01806a: 320c 0800                              |010d: if-eq v12, v0, 0115 // +0008
01806e: 54b0 6b01                              |010f: iget-object v0, v11, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
018072: 6203 2101                              |0111: sget-object v3, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.ONLINE:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@0121
018076: 3330 0500                              |0113: if-ne v0, v3, 0118 // +0005
01807a: 7010 2f03 0b00                         |0115: invoke-direct {v11}, Lcom/valentinedesigns/chromalink/GameEngine;.checkProgression:()V // method@032f
018080: 0000                                   |0118: nop // spacer
018082: 7110 0c03 0c00                         |0119: invoke-static {v12}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetpackets:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)Ljava/util/List; // method@030c
018088: 0c00                                   |011c: move-result-object v0
01808a: 7210 9a06 0000                         |011d: invoke-interface {v0}, Ljava/util/List;.iterator:()Ljava/util/Iterator; // method@069a
018090: 0c00                                   |0120: move-result-object v0
018092: 0153                                   |0121: move v3, v5
018094: 7210 9406 0000                         |0122: invoke-interface {v0}, Ljava/util/Iterator;.hasNext:()Z // method@0694
01809a: 0a04                                   |0125: move-result v4
01809c: 3804 1200                              |0126: if-eqz v4, 0138 // +0012
0180a0: 7210 9506 0000                         |0128: invoke-interface {v0}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0695
0180a6: 0c04                                   |012b: move-result-object v4
0180a8: 1f04 b200                              |012c: check-cast v4, Lcom/valentinedesigns/chromalink/GameEngine$Packet; // type@00b2
0180ac: 5246 2401                              |012e: iget v6, v4, Lcom/valentinedesigns/chromalink/GameEngine$Packet;.readyAfter:I // field@0124
0180b0: 52c7 4701                              |0130: iget v7, v12, Lcom/valentinedesigns/chromalink/GameEngine$Well;.moves:I // field@0147
0180b4: 3676 f0ff                              |0132: if-gt v6, v7, 0122 // -0010
0180b8: 5244 2301                              |0134: iget v4, v4, Lcom/valentinedesigns/chromalink/GameEngine$Packet;.count:I // field@0123
0180bc: b043                                   |0136: add-int/2addr v3, v4
0180be: 28eb                                   |0137: goto 0122 // -0015
0180c0: 7120 4806 3100                         |0138: invoke-static {v1, v3}, Ljava/lang/Math;.min:(II)I // method@0648
0180c6: 0a00                                   |013b: move-result v0
0180c8: 7040 2d03 cb20                         |013c: invoke-direct {v11, v12, v0, v2}, Lcom/valentinedesigns/chromalink/GameEngine;.cancelPackets:(Lcom/valentinedesigns/chromalink/GameEngine$Well;IZ)I // method@032d
0180ce: 0a00                                   |013f: move-result v0
0180d0: 1201                                   |0140: const/4 v1, #int 0 // #0
0180d2: 3d00 5b00                              |0141: if-lez v0, 019c // +005b
0180d6: 54c3 3b01                              |0143: iget-object v3, v12, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
0180da: 53b6 7001                              |0145: iget-wide v6, v11, Lcom/valentinedesigns/chromalink/GameEngine;.seed:J // field@0170
0180de: 54b4 6b01                              |0147: iget-object v4, v11, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
0180e2: 6208 2101                              |0149: sget-object v8, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.ONLINE:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@0121
0180e6: 1309 0d00                              |014b: const/16 v9, #int 13 // #d
0180ea: 130a 1d00                              |014d: const/16 v10, #int 29 // #1d
0180ee: 3384 0900                              |014f: if-ne v4, v8, 0158 // +0009
0180f2: 6e20 5e03 5b00                         |0151: invoke-virtual {v11, v5}, Lcom/valentinedesigns/chromalink/GameEngine;.wellForSide:(I)Lcom/valentinedesigns/chromalink/GameEngine$Well; // method@035e
0180f8: 0c04                                   |0154: move-result-object v4
0180fa: 334c 0800                              |0155: if-ne v12, v4, 015d // +0008
0180fe: 2805                                   |0157: goto 015c // +0005
018100: 54b4 6e01                              |0158: iget-object v4, v11, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
018104: 334c 0300                              |015a: if-ne v12, v4, 015d // +0003
018108: 2802                                   |015c: goto 015e // +0002
01810a: 01a9                                   |015d: move v9, v10
01810c: 8198                                   |015e: int-to-long v8, v9
01810e: c286                                   |015f: xor-long/2addr v6, v8
018110: 7110 0a03 0c00                         |0160: invoke-static {v12}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetgarbageWave:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)I // method@030a
018116: 0a04                                   |0163: move-result v4
018118: d808 0401                              |0164: add-int/lit8 v8, v4, #int 1 // #01
01811c: 7120 1503 8c00                         |0166: invoke-static {v12, v8}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fputgarbageWave:(Lcom/valentinedesigns/chromalink/GameEngine$Well;I)V // method@0315
018122: 8148                                   |0169: int-to-long v8, v4
018124: c286                                   |016a: xor-long/2addr v6, v8
018126: 7120 4503 7600                         |016b: invoke-static {v6, v7}, Lcom/valentinedesigns/chromalink/GameEngine;.mix:(J)J // method@0345
01812c: 0b06                                   |016e: move-result-wide v6
01812e: 7140 3503 0376                         |016f: invoke-static {v3, v0, v6, v7}, Lcom/valentinedesigns/chromalink/GameEngine;.dropGarbage:([[IIJ)Lcom/valentinedesigns/chromalink/GameEngine$GarbageDrop; // method@0335
018134: 0c03                                   |0172: move-result-object v3
018136: 5434 1a01                              |0173: iget-object v4, v3, Lcom/valentinedesigns/chromalink/GameEngine$GarbageDrop;.board:[[I // field@011a
01813a: 5bc4 3b01                              |0175: iput-object v4, v12, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
01813e: 5533 1b01                              |0177: iget-boolean v3, v3, Lcom/valentinedesigns/chromalink/GameEngine$GarbageDrop;.overflow:Z // field@011b
018142: 3803 1500                              |0179: if-eqz v3, 018e // +0015
018146: 54b0 6e01                              |017b: iget-object v0, v11, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
01814a: 320c 0300                              |017d: if-eq v12, v0, 0180 // +0003
01814e: 2802                                   |017f: goto 0181 // +0002
018150: 0152                                   |0180: move v2, v5
018152: 54b0 6e01                              |0181: iget-object v0, v11, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
018156: 330c 0500                              |0183: if-ne v12, v0, 0188 // +0005
01815a: 1a0c b704                              |0185: const-string v12, "The junk reached the top. Try clearing some blocks before it lands." // string@04b7
01815e: 2803                                   |0187: goto 018a // +0003
018160: 1a0c b801                              |0188: const-string v12, "I.N.K. couldn't hold the junk. You win!" // string@01b8
018164: 7030 3b03 2b0c                         |018a: invoke-direct {v11, v2, v12}, Lcom/valentinedesigns/chromalink/GameEngine;.finish:(ZLjava/lang/String;)V // method@033b
01816a: 0e00                                   |018d: return-void
01816c: 1a02 3007                              |018e: const-string v2, "garbage" // string@0730
018170: 5bc2 4a01                              |0190: iput-object v2, v12, Lcom/valentinedesigns/chromalink/GameEngine$Well;.phase:Ljava/lang/String; // field@014a
018174: 59c1 4b01                              |0192: iput v1, v12, Lcom/valentinedesigns/chromalink/GameEngine$Well;.phaseMs:F // field@014b
018178: 54b1 6e01                              |0194: iget-object v1, v11, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
01817c: 331c 0500                              |0196: if-ne v12, v1, 019b // +0005
018180: 7030 3903 2b00                         |0198: invoke-direct {v11, v2, v0}, Lcom/valentinedesigns/chromalink/GameEngine;.event:(Ljava/lang/String;I)V // method@0339
018186: 2807                                   |019b: goto 01a2 // +0007
018188: 1a00 0806                              |019c: const-string v0, "between" // string@0608
01818c: 5bc0 4a01                              |019e: iput-object v0, v12, Lcom/valentinedesigns/chromalink/GameEngine$Well;.phase:Ljava/lang/String; // field@014a
018190: 59c1 4b01                              |01a0: iput v1, v12, Lcom/valentinedesigns/chromalink/GameEngine$Well;.phaseMs:F // field@014b
018194: 0e00                                   |01a2: return-void
      catches       : (none)
      positions     :
        0x0000 line=429
        0x001a line=430
        0x0020 line=432
        0x0028 line=433
        0x0041 line=434
        0x0045 line=435
        0x004a line=436
        0x004b line=437
        0x004d line=438
        0x0056 line=439
        0x005e line=441
        0x0062 line=442
        0x00b1 line=443
        0x00d1 line=444
        0x00e0 line=445
        0x010b line=447
        0x0118 line=448
        0x0119 line=449
        0x0138 line=450
        0x0140 line=451
        0x0143 line=452
        0x0173 line=453
        0x0177 line=454
        0x018e line=455
        0x0194 line=456
        0x019b line=457
        0x01a2 line=458
      locals        :
        0x0000 - 0x01a3 reg=11 this Lcom/valentinedesigns/chromalink/GameEngine;
        0x0000 - 0x01a3 reg=12 (null) Lcom/valentinedesigns/chromalink/GameEngine$Well;

    #15              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'copyBoard'
      type          : '([[I)[[I'
      access        : 0x0009 (PUBLIC STATIC)
      code          -
      registers     : 5
      ins           : 1
      outs          : 1
      insns size    : 21 16-bit code units
016e78:                                        |[016e78] com.valentinedesigns.chromalink.GameEngine.copyBoard:([[I)[[I
016e88: 1300 0c00                              |0000: const/16 v0, #int 12 // #c
016e8c: 2301 8401                              |0002: new-array v1, v0, [[I // type@0184
016e90: 1202                                   |0004: const/4 v2, #int 0 // #0
016e92: 3502 0f00                              |0005: if-ge v2, v0, 0014 // +000f
016e96: 4603 0402                              |0007: aget-object v3, v4, v2
016e9a: 6e10 c906 0300                         |0009: invoke-virtual {v3}, [I.clone:()Ljava/lang/Object; // method@06c9
016ea0: 0c03                                   |000c: move-result-object v3
016ea2: 1f03 7501                              |000d: check-cast v3, [I // type@0175
016ea6: 4d03 0102                              |000f: aput-object v3, v1, v2
016eaa: d802 0201                              |0011: add-int/lit8 v2, v2, #int 1 // #01
016eae: 28f2                                   |0013: goto 0005 // -000e
016eb0: 1101                                   |0014: return-object v1
      catches       : (none)
      positions     :
        0x0000 line=537
        0x0004 line=538
        0x0014 line=539
      locals        :
        0x0000 - 0x0015 reg=4 (null) [[I

    #16              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'dropGarbage'
      type          : '([[IIJ)Lcom/valentinedesigns/chromalink/GameEngine$GarbageDrop;'
      access        : 0x0009 (PUBLIC STATIC)
      code          -
      registers     : 14
      ins           : 4
      outs          : 4
      insns size    : 117 16-bit code units
015c24:                                        |[015c24] com.valentinedesigns.chromalink.GameEngine.dropGarbage:([[IIJ)Lcom/valentinedesigns/chromalink/GameEngine$GarbageDrop;
015c34: 7110 3303 0a00                         |0000: invoke-static {v10}, Lcom/valentinedesigns/chromalink/GameEngine;.copyBoard:([[I)[[I // method@0333
015c3a: 0c0a                                   |0003: move-result-object v10
015c3c: 1200                                   |0004: const/4 v0, #int 0 // #0
015c3e: 0101                                   |0005: move v1, v0
015c40: 7120 4406 b000                         |0006: invoke-static {v0, v11}, Ljava/lang/Math;.max:(II)I // method@0644
015c46: 0a02                                   |0009: move-result v2
015c48: 3521 6500                              |000a: if-ge v1, v2, 006f // +0065
015c4c: 1262                                   |000c: const/4 v2, #int 6 // #6
015c4e: 2323 7501                              |000d: new-array v3, v2, [I // type@0175
015c52: 4b00 0300                              |000f: aput v0, v3, v0
015c56: 1214                                   |0011: const/4 v4, #int 1 // #1
015c58: 4b04 0304                              |0012: aput v4, v3, v4
015c5c: 1225                                   |0014: const/4 v5, #int 2 // #2
015c5e: 4b05 0305                              |0015: aput v5, v3, v5
015c62: 1235                                   |0017: const/4 v5, #int 3 // #3
015c64: 4b05 0305                              |0018: aput v5, v3, v5
015c68: 1245                                   |001a: const/4 v5, #int 4 // #4
015c6a: 4b05 0305                              |001b: aput v5, v3, v5
015c6e: 1255                                   |001d: const/4 v5, #int 5 // #5
015c70: 4b05 0305                              |001e: aput v5, v3, v5
015c74: 0000                                   |0020: nop // spacer
015c76: 3d05 1f00                              |0021: if-lez v5, 0040 // +001f
015c7a: 1806 157c 4a7f b979 379e               |0023: const-wide v6, #double -4.07659e-163 // #9e3779b97f4a7c15
015c84: bb6c                                   |0028: add-long/2addr v12, v6
015c86: 7120 4503 dc00                         |0029: invoke-static {v12, v13}, Lcom/valentinedesigns/chromalink/GameEngine;.mix:(J)J // method@0345
015c8c: 0b0c                                   |002c: move-result-wide v12
015c8e: d806 0501                              |002d: add-int/lit8 v6, v5, #int 1 // #01
015c92: 8166                                   |002f: int-to-long v6, v6
015c94: 7140 3706 dc76                         |0030: invoke-static {v12, v13, v6, v7}, Ljava/lang/Long;.remainderUnsigned:(JJ)J // method@0637
015c9a: 0b06                                   |0033: move-result-wide v6
015c9c: 8466                                   |0034: long-to-int v6, v6
015c9e: 4407 0305                              |0035: aget v7, v3, v5
015ca2: 4408 0306                              |0037: aget v8, v3, v6
015ca6: 4b08 0305                              |0039: aput v8, v3, v5
015caa: 4b07 0306                              |003b: aput v7, v3, v6
015cae: d805 05ff                              |003d: add-int/lit8 v5, v5, #int -1 // #ff
015cb2: 28e2                                   |003f: goto 0021 // -001e
015cb4: 0105                                   |0040: move v5, v0
015cb6: 3525 2d00                              |0041: if-ge v5, v2, 006e // +002d
015cba: 4406 0305                              |0043: aget v6, v3, v5
015cbe: 34b1 0300                              |0045: if-lt v1, v11, 0048 // +0003
015cc2: 2827                                   |0047: goto 006e // +0027
015cc4: 0000                                   |0048: nop // spacer
015cc6: 0107                                   |0049: move v7, v0
015cc8: 1308 0c00                              |004a: const/16 v8, #int 12 // #c
015ccc: 3587 0d00                              |004c: if-ge v7, v8, 0059 // +000d
015cd0: 4608 0a07                              |004e: aget-object v8, v10, v7
015cd4: 4408 0806                              |0050: aget v8, v8, v6
015cd8: 12e9                                   |0052: const/4 v9, #int -2 // #fe
015cda: 3298 0300                              |0053: if-eq v8, v9, 0056 // +0003
015cde: 2805                                   |0055: goto 005a // +0005
015ce0: d807 0701                              |0056: add-int/lit8 v7, v7, #int 1 // #01
015ce4: 28f2                                   |0058: goto 004a // -000e
015ce6: 0187                                   |0059: move v7, v8
015ce8: 3907 0800                              |005a: if-nez v7, 0062 // +0008
015cec: 220b af00                              |005c: new-instance v11, Lcom/valentinedesigns/chromalink/GameEngine$GarbageDrop; // type@00af
015cf0: 7040 f202 ab14                         |005e: invoke-direct {v11, v10, v4, v1}, Lcom/valentinedesigns/chromalink/GameEngine$GarbageDrop;.<init>:([[IZI)V // method@02f2
015cf6: 110b                                   |0061: return-object v11
015cf8: d807 07ff                              |0062: add-int/lit8 v7, v7, #int -1 // #ff
015cfc: 4607 0a07                              |0064: aget-object v7, v10, v7
015d00: 12f8                                   |0066: const/4 v8, #int -1 // #ff
015d02: 4b08 0706                              |0067: aput v8, v7, v6
015d06: d801 0101                              |0069: add-int/lit8 v1, v1, #int 1 // #01
015d0a: d805 0501                              |006b: add-int/lit8 v5, v5, #int 1 // #01
015d0e: 28d4                                   |006d: goto 0041 // -002c
015d10: 2898                                   |006e: goto 0006 // -0068
015d12: 220b af00                              |006f: new-instance v11, Lcom/valentinedesigns/chromalink/GameEngine$GarbageDrop; // type@00af
015d16: 7040 f202 ab10                         |0071: invoke-direct {v11, v10, v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine$GarbageDrop;.<init>:([[IZI)V // method@02f2
015d1c: 110b                                   |0074: return-object v11
      catches       : (none)
      positions     :
        0x0000 line=667
        0x0004 line=668
        0x0006 line=669
        0x000c line=670
        0x0020 line=671
        0x0023 line=672
        0x002d line=673
        0x003d line=671
        0x0040 line=675
        0x0045 line=676
        0x0048 line=677
        0x0049 line=678
        0x005a line=679
        0x0062 line=680
        0x006b line=675
        0x006e line=682
        0x006f line=683
      locals        :
        0x0000 - 0x0075 reg=10 (null) [[I
        0x0000 - 0x0075 reg=11 (null) I
        0x0000 - 0x0075 reg=12 (null) J

    #17              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'emptyBoard'
      type          : '()[[I'
      access        : 0x0009 (PUBLIC STATIC)
      code          -
      registers     : 5
      ins           : 0
      outs          : 2
      insns size    : 33 16-bit code units
016eb4:                                        |[016eb4] com.valentinedesigns.chromalink.GameEngine.emptyBoard:()[[I
016ec4: 1220                                   |0000: const/4 v0, #int 2 // #2
016ec6: 2300 7501                              |0001: new-array v0, v0, [I // type@0175
016eca: 1211                                   |0003: const/4 v1, #int 1 // #1
016ecc: 1262                                   |0004: const/4 v2, #int 6 // #6
016ece: 4b02 0001                              |0005: aput v2, v0, v1
016ed2: 1201                                   |0007: const/4 v1, #int 0 // #0
016ed4: 1302 0c00                              |0008: const/16 v2, #int 12 // #c
016ed8: 4b02 0001                              |000a: aput v2, v0, v1
016edc: 6202 1e03                              |000c: sget-object v2, Ljava/lang/Integer;.TYPE:Ljava/lang/Class; // field@031e
016ee0: 7120 7306 0200                         |000e: invoke-static {v2, v0}, Ljava/lang/reflect/Array;.newInstance:(Ljava/lang/Class;[I)Ljava/lang/Object; // method@0673
016ee6: 0c00                                   |0011: move-result-object v0
016ee8: 1f00 8401                              |0012: check-cast v0, [[I // type@0184
016eec: 2102                                   |0014: array-length v2, v0
016eee: 3521 0b00                              |0015: if-ge v1, v2, 0020 // +000b
016ef2: 4603 0001                              |0017: aget-object v3, v0, v1
016ef6: 12e4                                   |0019: const/4 v4, #int -2 // #fe
016ef8: 7120 9006 4300                         |001a: invoke-static {v3, v4}, Ljava/util/Arrays;.fill:([II)V // method@0690
016efe: d801 0101                              |001d: add-int/lit8 v1, v1, #int 1 // #01
016f02: 28f6                                   |001f: goto 0015 // -000a
016f04: 1100                                   |0020: return-object v0
      catches       : (none)
      positions     :
        0x0000 line=529
        0x0014 line=530
        0x0020 line=531
      locals        :

    #18              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'evaluate'
      type          : '([[I)D'
      access        : 0x000a (PRIVATE STATIC)
      code          -
      registers     : 14
      ins           : 1
      outs          : 2
      insns size    : 132 16-bit code units
016430:                                        |[016430] com.valentinedesigns.chromalink.GameEngine.evaluate:([[I)D
016440: 1260                                   |0000: const/4 v0, #int 6 // #6
016442: 2301 7501                              |0001: new-array v1, v0, [I // type@0175
016446: 1602 0000                              |0003: const-wide/16 v2, #int 0 // #0
01644a: 1204                                   |0005: const/4 v4, #int 0 // #0
01644c: 0426                                   |0006: move-wide v6, v2
01644e: 0145                                   |0007: move v5, v4
016450: 12e8                                   |0008: const/4 v8, #int -2 // #fe
016452: 3505 3300                              |0009: if-ge v5, v0, 003c // +0033
016456: 0149                                   |000b: move v9, v4
016458: 130a 0c00                              |000c: const/16 v10, #int 12 // #c
01645c: 35a9 1000                              |000e: if-ge v9, v10, 001e // +0010
016460: 460a 0d09                              |0010: aget-object v10, v13, v9
016464: 440a 0a05                              |0012: aget v10, v10, v5
016468: 328a 0700                              |0014: if-eq v10, v8, 001b // +0007
01646c: d908 090c                              |0016: rsub-int/lit8 v8, v9, #int 12 // #0c
016470: 4b08 0105                              |0018: aput v8, v1, v5
016474: 2804                                   |001a: goto 001e // +0004
016476: d809 0901                              |001b: add-int/lit8 v9, v9, #int 1 // #01
01647a: 28ef                                   |001d: goto 000c // -0011
01647c: 4408 0105                              |001e: aget v8, v1, v5
016480: 9209 0808                              |0020: mul-int v9, v8, v8
016484: 8399                                   |0022: int-to-double v9, v9
016486: 180b 6666 6666 6666 0240               |0023: const-wide v11, #double 2.3 // #4002666666666666
016490: cdb9                                   |0028: mul-double/2addr v9, v11
016492: d808 08f8                              |0029: add-int/lit8 v8, v8, #int -8 // #f8
016496: 7120 4406 8400                         |002b: invoke-static {v4, v8}, Ljava/lang/Math;.max:(II)I // method@0644
01649c: 0a0b                                   |002e: move-result v11
01649e: 7120 4406 8400                         |002f: invoke-static {v4, v8}, Ljava/lang/Math;.max:(II)I // method@0644
0164a4: 0a08                                   |0032: move-result v8
0164a6: b28b                                   |0033: mul-int/2addr v11, v8
0164a8: da0b 0b14                              |0034: mul-int/lit8 v11, v11, #int 20 // #14
0164ac: 83bb                                   |0036: int-to-double v11, v11
0164ae: cbb9                                   |0037: add-double/2addr v9, v11
0164b0: cb96                                   |0038: add-double/2addr v6, v9
0164b2: d805 0501                              |0039: add-int/lit8 v5, v5, #int 1 // #01
0164b6: 28cd                                   |003b: goto 0008 // -0033
0164b8: 0000                                   |003c: nop // spacer
0164ba: 1215                                   |003d: const/4 v5, #int 1 // #1
0164bc: 0429                                   |003e: move-wide v9, v2
0164be: 3505 1200                              |003f: if-ge v5, v0, 0051 // +0012
0164c2: 440b 0105                              |0041: aget v11, v1, v5
0164c6: d80c 05ff                              |0043: add-int/lit8 v12, v5, #int -1 // #ff
0164ca: 440c 010c                              |0045: aget v12, v1, v12
0164ce: b1cb                                   |0047: sub-int/2addr v11, v12
0164d0: 7110 3b06 0b00                         |0048: invoke-static {v11}, Ljava/lang/Math;.abs:(I)I // method@063b
0164d6: 0a0b                                   |004b: move-result v11
0164d8: 83bb                                   |004c: int-to-double v11, v11
0164da: cbb9                                   |004d: add-double/2addr v9, v11
0164dc: d805 0501                              |004e: add-int/lit8 v5, v5, #int 1 // #01
0164e0: 28ef                                   |0050: goto 003f // -0011
0164e2: 7110 3a03 0d00                         |0051: invoke-static {v13}, Lcom/valentinedesigns/chromalink/GameEngine;.findGroups:([[I)Ljava/util/List; // method@033a
0164e8: 0c00                                   |0054: move-result-object v0
0164ea: 7210 9a06 0000                         |0055: invoke-interface {v0}, Ljava/util/List;.iterator:()Ljava/util/Iterator; // method@069a
0164f0: 0c00                                   |0058: move-result-object v0
0164f2: 7210 9406 0000                         |0059: invoke-interface {v0}, Ljava/util/Iterator;.hasNext:()Z // method@0694
0164f8: 0a01                                   |005c: move-result v1
0164fa: 3801 1600                              |005d: if-eqz v1, 0073 // +0016
0164fe: 7210 9506 0000                         |005f: invoke-interface {v0}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0695
016504: 0c01                                   |0062: move-result-object v1
016506: 1f01 6201                              |0063: check-cast v1, Ljava/util/List; // type@0162
01650a: 7210 9c06 0100                         |0065: invoke-interface {v1}, Ljava/util/List;.size:()I // method@069c
016510: 0a05                                   |0068: move-result v5
016512: 7210 9c06 0100                         |0069: invoke-interface {v1}, Ljava/util/List;.size:()I // method@069c
016518: 0a01                                   |006c: move-result v1
01651a: b215                                   |006d: mul-int/2addr v5, v1
01651c: da05 0505                              |006e: mul-int/lit8 v5, v5, #int 5 // #05
016520: 835b                                   |0070: int-to-double v11, v5
016522: cbb2                                   |0071: add-double/2addr v2, v11
016524: 28e7                                   |0072: goto 0059 // -0019
016526: cc62                                   |0073: sub-double/2addr v2, v6
016528: 1900 0040                              |0074: const-wide/high16 v0, #long 4611686018427387904 // #4000
01652c: cd09                                   |0076: mul-double/2addr v9, v0
01652e: cc92                                   |0077: sub-double/2addr v2, v9
016530: 460d 0d04                              |0078: aget-object v13, v13, v4
016534: 1220                                   |007a: const/4 v0, #int 2 // #2
016536: 440d 0d00                              |007b: aget v13, v13, v0
01653a: 328d 0400                              |007d: if-eq v13, v8, 0081 // +0004
01653e: 1304 b004                              |007f: const/16 v4, #int 1200 // #4b0
016542: 8340                                   |0081: int-to-double v0, v4
016544: cc02                                   |0082: sub-double/2addr v2, v0
016546: 1002                                   |0083: return-wide v2
      catches       : (none)
      positions     :
        0x0000 line=705
        0x0003 line=706
        0x000b line=707
        0x001e line=708
        0x0039 line=706
        0x003c line=710
        0x003d line=711
        0x0051 line=712
        0x0073 line=713
      locals        :
        0x0000 - 0x0084 reg=13 (null) [[I

    #19              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'evaluateBot'
      type          : '([[IFF)D'
      access        : 0x000a (PRIVATE STATIC)
      code          -
      registers     : 22
      ins           : 3
      outs          : 2
      insns size    : 241 16-bit code units
016548:                                        |[016548] com.valentinedesigns.chromalink.GameEngine.evaluateBot:([[IFF)D
016558: 1260                                   |0000: const/4 v0, #int 6 // #6
01655a: 2301 7501                              |0001: new-array v1, v0, [I // type@0175
01655e: 0000                                   |0003: nop // spacer
016560: 1602 0000                              |0004: const-wide/16 v2, #int 0 // #0
016564: 1204                                   |0006: const/4 v4, #int 0 // #0
016566: 0145                                   |0007: move v5, v4
016568: 1506 0040                              |0008: const/high16 v6, #int 1073741824 // #4000
01656c: 1227                                   |000a: const/4 v7, #int 2 // #2
01656e: 12e8                                   |000b: const/4 v8, #int -2 // #fe
016570: 1309 0c00                              |000c: const/16 v9, #int 12 // #c
016574: 3505 4600                              |000e: if-ge v5, v0, 0054 // +0046
016578: 014a                                   |0010: move v10, v4
01657a: 359a 1000                              |0011: if-ge v10, v9, 0021 // +0010
01657e: 460b 130a                              |0013: aget-object v11, v19, v10
016582: 440b 0b05                              |0015: aget v11, v11, v5
016586: 328b 0700                              |0017: if-eq v11, v8, 001e // +0007
01658a: d908 0a0c                              |0019: rsub-int/lit8 v8, v10, #int 12 // #0c
01658e: 4b08 0105                              |001b: aput v8, v1, v5
016592: 2804                                   |001d: goto 0021 // +0004
016594: d80a 0a01                              |001e: add-int/lit8 v10, v10, #int 1 // #01
016598: 28f1                                   |0020: goto 0011 // -000f
01659a: 4408 0105                              |0021: aget v8, v1, v5
01659e: d809 08f9                              |0023: add-int/lit8 v9, v8, #int -7 // #f9
0165a2: 7120 4406 9400                         |0025: invoke-static {v4, v9}, Ljava/lang/Math;.max:(II)I // method@0644
0165a8: 0a09                                   |0028: move-result v9
0165aa: 920a 0808                              |0029: mul-int v10, v8, v8
0165ae: 83aa                                   |002b: int-to-double v10, v10
0165b0: a806 0615                              |002c: mul-float v6, v6, v21
0165b4: 896c                                   |002e: float-to-double v12, v6
0165b6: 180e 6666 6666 6666 0240               |002f: const-wide v14, #double 2.3 // #4002666666666666
0165c0: cbec                                   |0034: add-double/2addr v12, v14
0165c2: cdca                                   |0035: mul-double/2addr v10, v12
0165c4: b299                                   |0036: mul-int/2addr v9, v9
0165c6: 8296                                   |0037: int-to-float v6, v9
0165c8: 1509 4041                              |0038: const/high16 v9, #int 1094713344 // #4140
0165cc: a809 0914                              |003a: mul-float v9, v9, v20
0165d0: 150c a041                              |003c: const/high16 v12, #int 1101004800 // #41a0
0165d4: c6c9                                   |003e: add-float/2addr v9, v12
0165d6: c896                                   |003f: mul-float/2addr v6, v9
0165d8: 896c                                   |0040: float-to-double v12, v6
0165da: cbca                                   |0041: add-double/2addr v10, v12
0165dc: cca2                                   |0042: sub-double/2addr v2, v10
0165de: 3d05 0e00                              |0043: if-lez v5, 0051 // +000e
0165e2: d806 05ff                              |0045: add-int/lit8 v6, v5, #int -1 // #ff
0165e6: 4406 0106                              |0047: aget v6, v1, v6
0165ea: b168                                   |0049: sub-int/2addr v8, v6
0165ec: 7110 3b06 0800                         |004a: invoke-static {v8}, Ljava/lang/Math;.abs:(I)I // method@063b
0165f2: 0a06                                   |004d: move-result v6
0165f4: b276                                   |004e: mul-int/2addr v6, v7
0165f6: 8366                                   |004f: int-to-double v6, v6
0165f8: cc62                                   |0050: sub-double/2addr v2, v6
0165fa: d805 0501                              |0051: add-int/lit8 v5, v5, #int 1 // #01
0165fe: 28b5                                   |0053: goto 0008 // -004b
016600: 7701 3a03 1300                         |0054: invoke-static/range {v19}, Lcom/valentinedesigns/chromalink/GameEngine;.findGroups:([[I)Ljava/util/List; // method@033a
016606: 0c05                                   |0057: move-result-object v5
016608: 7210 9a06 0500                         |0058: invoke-interface {v5}, Ljava/util/List;.iterator:()Ljava/util/Iterator; // method@069a
01660e: 0c05                                   |005b: move-result-object v5
016610: 7210 9406 0500                         |005c: invoke-interface {v5}, Ljava/util/Iterator;.hasNext:()Z // method@0694
016616: 0a0a                                   |005f: move-result v10
016618: 380a 8200                              |0060: if-eqz v10, 00e2 // +0082
01661c: 7210 9506 0500                         |0062: invoke-interface {v5}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0695
016622: 0c0a                                   |0065: move-result-object v10
016624: 1f0a 6201                              |0066: check-cast v10, Ljava/util/List; // type@0162
016628: 0000                                   |0068: nop // spacer
01662a: 7210 9a06 0a00                         |0069: invoke-interface {v10}, Ljava/util/List;.iterator:()Ljava/util/Iterator; // method@069a
016630: 0c0b                                   |006c: move-result-object v11
016632: 014c                                   |006d: move v12, v4
016634: 7210 9406 0b00                         |006e: invoke-interface {v11}, Ljava/util/Iterator;.hasNext:()Z // method@0694
01663a: 0a0d                                   |0071: move-result v13
01663c: 380d 4100                              |0072: if-eqz v13, 00b3 // +0041
016640: 7210 9506 0b00                         |0074: invoke-interface {v11}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0695
016646: 0c0d                                   |0077: move-result-object v13
016648: 1f0d ad00                              |0078: check-cast v13, Lcom/valentinedesigns/chromalink/GameEngine$Cell; // type@00ad
01664c: 620e 5d01                              |007a: sget-object v14, Lcom/valentinedesigns/chromalink/GameEngine;.NEIGHBORS:[[I // field@015d
016650: 21ef                                   |007c: array-length v15, v14
016652: 0147                                   |007d: move v7, v4
016654: 35f7 2f00                              |007e: if-ge v7, v15, 00ad // +002f
016658: 4610 0e07                              |0080: aget-object v16, v14, v7
01665c: 52d6 0f01                              |0082: iget v6, v13, Lcom/valentinedesigns/chromalink/GameEngine$Cell;.x:I // field@010f
016660: 4411 1004                              |0084: aget v17, v16, v4
016664: 9006 0611                              |0086: add-int v6, v6, v17
016668: 52d4 1001                              |0088: iget v4, v13, Lcom/valentinedesigns/chromalink/GameEngine$Cell;.y:I // field@0110
01666c: 1312 0100                              |008a: const/16 v18, #int 1 // #1
016670: 4410 1012                              |008c: aget v16, v16, v18
016674: 9004 0410                              |008e: add-int v4, v4, v16
016678: 3a06 1600                              |0090: if-ltz v6, 00a6 // +0016
01667c: 3506 1400                              |0092: if-ge v6, v0, 00a6 // +0014
016680: 3a04 1200                              |0094: if-ltz v4, 00a6 // +0012
016684: 3594 1000                              |0096: if-ge v4, v9, 00a6 // +0010
016688: 4610 1304                              |0098: aget-object v16, v19, v4
01668c: 4400 1006                              |009a: aget v0, v16, v6
016690: 3380 0a00                              |009c: if-ne v0, v8, 00a6 // +000a
016694: 4400 0106                              |009e: aget v0, v1, v6
016698: d900 000b                              |00a0: rsub-int/lit8 v0, v0, #int 11 // #0b
01669c: 3304 0400                              |00a2: if-ne v4, v0, 00a6 // +0004
0166a0: d80c 0c01                              |00a4: add-int/lit8 v12, v12, #int 1 // #01
0166a4: d807 0701                              |00a6: add-int/lit8 v7, v7, #int 1 // #01
0166a8: 1260                                   |00a8: const/4 v0, #int 6 // #6
0166aa: 1204                                   |00a9: const/4 v4, #int 0 // #0
0166ac: 1506 0040                              |00aa: const/high16 v6, #int 1073741824 // #4000
0166b0: 28d2                                   |00ac: goto 007e // -002e
0166b2: 1260                                   |00ad: const/4 v0, #int 6 // #6
0166b4: 1204                                   |00ae: const/4 v4, #int 0 // #0
0166b6: 1506 0040                              |00af: const/high16 v6, #int 1073741824 // #4000
0166ba: 1227                                   |00b1: const/4 v7, #int 2 // #2
0166bc: 28bc                                   |00b2: goto 006e // -0044
0166be: 7210 9c06 0a00                         |00b3: invoke-interface {v10}, Ljava/util/List;.size:()I // method@069c
0166c4: 0a00                                   |00b6: move-result v0
0166c6: 7210 9c06 0a00                         |00b7: invoke-interface {v10}, Ljava/util/List;.size:()I // method@069c
0166cc: 0a04                                   |00ba: move-result v4
0166ce: b240                                   |00bb: mul-int/2addr v0, v4
0166d0: 8200                                   |00bc: int-to-float v0, v0
0166d2: 1504 8040                              |00bd: const/high16 v4, #int 1082130432 // #4080
0166d6: a804 0414                              |00bf: mul-float v4, v4, v20
0166da: 1506 0040                              |00c1: const/high16 v6, #int 1073741824 // #4000
0166de: c664                                   |00c3: add-float/2addr v4, v6
0166e0: c840                                   |00c4: mul-float/2addr v0, v4
0166e2: 890d                                   |00c5: float-to-double v13, v0
0166e4: cbd2                                   |00c6: add-double/2addr v2, v13
0166e6: 1230                                   |00c7: const/4 v0, #int 3 // #3
0166e8: 7120 4806 c000                         |00c8: invoke-static {v0, v12}, Ljava/lang/Math;.min:(II)I // method@0648
0166ee: 0a04                                   |00cb: move-result v4
0166f0: 7210 9c06 0a00                         |00cc: invoke-interface {v10}, Ljava/util/List;.size:()I // method@069c
0166f6: 0a07                                   |00cf: move-result v7
0166f8: 7120 4806 7000                         |00d0: invoke-static {v0, v7}, Ljava/lang/Math;.min:(II)I // method@0648
0166fe: 0a00                                   |00d3: move-result v0
016700: b204                                   |00d4: mul-int/2addr v4, v0
016702: 8240                                   |00d5: int-to-float v0, v4
016704: a800 0014                              |00d6: mul-float v0, v0, v20
016708: 1504 c040                              |00d8: const/high16 v4, #int 1086324736 // #40c0
01670c: c840                                   |00da: mul-float/2addr v0, v4
01670e: 890a                                   |00db: float-to-double v10, v0
016710: cba2                                   |00dc: add-double/2addr v2, v10
016712: 1260                                   |00dd: const/4 v0, #int 6 // #6
016714: 1204                                   |00de: const/4 v4, #int 0 // #0
016716: 1227                                   |00df: const/4 v7, #int 2 // #2
016718: 2900 7cff                              |00e0: goto/16 005c // -0084
01671c: 1200                                   |00e2: const/4 v0, #int 0 // #0
01671e: 4601 1300                              |00e3: aget-object v1, v19, v0
016722: 1224                                   |00e5: const/4 v4, #int 2 // #2
016724: 4401 0104                              |00e6: aget v1, v1, v4
016728: 3281 0500                              |00e8: if-eq v1, v8, 00ed // +0005
01672c: 1304 4006                              |00ea: const/16 v4, #int 1600 // #640
016730: 2802                                   |00ec: goto 00ee // +0002
016732: 0104                                   |00ed: move v4, v0
016734: 8340                                   |00ee: int-to-double v0, v4
016736: cc02                                   |00ef: sub-double/2addr v2, v0
016738: 1002                                   |00f0: return-wide v2
      catches       : (none)
      positions     :
        0x0000 line=805
        0x0003 line=806
        0x0004 line=807
        0x0010 line=808
        0x0021 line=809
        0x0029 line=810
        0x0043 line=811
        0x0051 line=807
        0x0054 line=813
        0x0068 line=814
        0x0069 line=815
        0x0082 line=816
        0x0090 line=817
        0x00a6 line=815
        0x00b3 line=819
        0x00c7 line=820
        0x00dd line=821
        0x00e2 line=822
      locals        :
        0x0000 - 0x00f1 reg=19 (null) [[I
        0x0000 - 0x00f1 reg=20 (null) F
        0x0000 - 0x00f1 reg=21 (null) F

    #20              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'event'
      type          : '(Ljava/lang/String;I)V'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 4
      ins           : 3
      outs          : 3
      insns size    : 10 16-bit code units
018198:                                        |[018198] com.valentinedesigns.chromalink.GameEngine.event:(Ljava/lang/String;I)V
0181a8: 5410 6901                              |0000: iget-object v0, v1, Lcom/valentinedesigns/chromalink/GameEngine;.listener:Lcom/valentinedesigns/chromalink/GameEngine$Listener; // field@0169
0181ac: 3800 0700                              |0002: if-eqz v0, 0009 // +0007
0181b0: 5410 6901                              |0004: iget-object v0, v1, Lcom/valentinedesigns/chromalink/GameEngine;.listener:Lcom/valentinedesigns/chromalink/GameEngine$Listener; // field@0169
0181b4: 7230 f302 2003                         |0006: invoke-interface {v0, v2, v3}, Lcom/valentinedesigns/chromalink/GameEngine$Listener;.onEvent:(Ljava/lang/String;I)V // method@02f3
0181ba: 0e00                                   |0009: return-void
      catches       : (none)
      positions     :
        0x0000 line=199
      locals        :
        0x0000 - 0x000a reg=1 this Lcom/valentinedesigns/chromalink/GameEngine;
        0x0000 - 0x000a reg=2 (null) Ljava/lang/String;
        0x0000 - 0x000a reg=3 (null) I

    #21              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'findGroups'
      type          : '([[I)Ljava/util/List;'
      access        : 0x0009 (PUBLIC STATIC)
      code          -
      registers     : 19
      ins           : 1
      outs          : 4
      insns size    : 164 16-bit code units
0170f0:                                        |[0170f0] com.valentinedesigns.chromalink.GameEngine.findGroups:([[I)Ljava/util/List;
017100: 1220                                   |0000: const/4 v0, #int 2 // #2
017102: 2300 7501                              |0001: new-array v0, v0, [I // type@0175
017106: 1211                                   |0003: const/4 v1, #int 1 // #1
017108: 1262                                   |0004: const/4 v2, #int 6 // #6
01710a: 4b02 0001                              |0005: aput v2, v0, v1
01710e: 1203                                   |0007: const/4 v3, #int 0 // #0
017110: 1304 0c00                              |0008: const/16 v4, #int 12 // #c
017114: 4b04 0003                              |000a: aput v4, v0, v3
017118: 6205 1d03                              |000c: sget-object v5, Ljava/lang/Boolean;.TYPE:Ljava/lang/Class; // field@031d
01711c: 7120 7306 0500                         |000e: invoke-static {v5, v0}, Ljava/lang/reflect/Array;.newInstance:(Ljava/lang/Class;[I)Ljava/lang/Object; // method@0673
017122: 0c00                                   |0011: move-result-object v0
017124: 1f00 8601                              |0012: check-cast v0, [[Z // type@0186
017128: 2205 5c01                              |0014: new-instance v5, Ljava/util/ArrayList; // type@015c
01712c: 7010 8706 0500                         |0016: invoke-direct {v5}, Ljava/util/ArrayList;.<init>:()V // method@0687
017132: 0136                                   |0019: move v6, v3
017134: 3546 8900                              |001a: if-ge v6, v4, 00a3 // +0089
017138: 0137                                   |001c: move v7, v3
01713a: 3527 7f00                              |001d: if-ge v7, v2, 009c // +007f
01713e: 4608 1206                              |001f: aget-object v8, v18, v6
017142: 4408 0807                              |0021: aget v8, v8, v7
017146: 3a08 7200                              |0023: if-ltz v8, 0095 // +0072
01714a: 4609 0006                              |0025: aget-object v9, v0, v6
01714e: 4709 0907                              |0027: aget-boolean v9, v9, v7
017152: 3809 0500                              |0029: if-eqz v9, 002e // +0005
017156: 014f                                   |002b: move v15, v4
017158: 2900 6a00                              |002c: goto/16 0096 // +006a
01715c: 2209 5c01                              |002e: new-instance v9, Ljava/util/ArrayList; // type@015c
017160: 7010 8706 0900                         |0030: invoke-direct {v9}, Ljava/util/ArrayList;.<init>:()V // method@0687
017166: 220a ad00                              |0033: new-instance v10, Lcom/valentinedesigns/chromalink/GameEngine$Cell; // type@00ad
01716a: 7040 f002 7a86                         |0035: invoke-direct {v10, v7, v6, v8}, Lcom/valentinedesigns/chromalink/GameEngine$Cell;.<init>:(III)V // method@02f0
017170: 7220 9606 a900                         |0038: invoke-interface {v9, v10}, Ljava/util/List;.add:(Ljava/lang/Object;)Z // method@0696
017176: 460a 0006                              |003b: aget-object v10, v0, v6
01717a: 4e01 0a07                              |003d: aput-boolean v1, v10, v7
01717e: 013a                                   |003f: move v10, v3
017180: 7210 9c06 0900                         |0040: invoke-interface {v9}, Ljava/util/List;.size:()I // method@069c
017186: 0a0b                                   |0043: move-result v11
017188: 35ba 4c00                              |0044: if-ge v10, v11, 0090 // +004c
01718c: 7220 9806 a900                         |0046: invoke-interface {v9, v10}, Ljava/util/List;.get:(I)Ljava/lang/Object; // method@0698
017192: 0c0b                                   |0049: move-result-object v11
017194: 1f0b ad00                              |004a: check-cast v11, Lcom/valentinedesigns/chromalink/GameEngine$Cell; // type@00ad
017198: 620c 5d01                              |004c: sget-object v12, Lcom/valentinedesigns/chromalink/GameEngine;.NEIGHBORS:[[I // field@015d
01719c: 21cd                                   |004e: array-length v13, v12
01719e: 013e                                   |004f: move v14, v3
0171a0: 35de 3a00                              |0050: if-ge v14, v13, 008a // +003a
0171a4: 460f 0c0e                              |0052: aget-object v15, v12, v14
0171a8: 52b4 0f01                              |0054: iget v4, v11, Lcom/valentinedesigns/chromalink/GameEngine$Cell;.x:I // field@010f
0171ac: 4411 0f03                              |0056: aget v17, v15, v3
0171b0: 9004 0411                              |0058: add-int v4, v4, v17
0171b4: 52b3 1001                              |005a: iget v3, v11, Lcom/valentinedesigns/chromalink/GameEngine$Cell;.y:I // field@0110
0171b8: 440f 0f01                              |005c: aget v15, v15, v1
0171bc: b0f3                                   |005e: add-int/2addr v3, v15
0171be: 3a04 2300                              |005f: if-ltz v4, 0082 // +0023
0171c2: 3524 2100                              |0061: if-ge v4, v2, 0082 // +0021
0171c6: 3a03 1f00                              |0063: if-ltz v3, 0082 // +001f
0171ca: 130f 0c00                              |0065: const/16 v15, #int 12 // #c
0171ce: 35f3 1d00                              |0067: if-ge v3, v15, 0084 // +001d
0171d2: 4610 0003                              |0069: aget-object v16, v0, v3
0171d6: 4710 1004                              |006b: aget-boolean v16, v16, v4
0171da: 3910 1700                              |006d: if-nez v16, 0084 // +0017
0171de: 4610 1203                              |006f: aget-object v16, v18, v3
0171e2: 4402 1004                              |0071: aget v2, v16, v4
0171e6: 3382 1100                              |0073: if-ne v2, v8, 0084 // +0011
0171ea: 4602 0003                              |0075: aget-object v2, v0, v3
0171ee: 4e01 0204                              |0077: aput-boolean v1, v2, v4
0171f2: 2202 ad00                              |0079: new-instance v2, Lcom/valentinedesigns/chromalink/GameEngine$Cell; // type@00ad
0171f6: 7040 f002 4283                         |007b: invoke-direct {v2, v4, v3, v8}, Lcom/valentinedesigns/chromalink/GameEngine$Cell;.<init>:(III)V // method@02f0
0171fc: 7220 9606 2900                         |007e: invoke-interface {v9, v2}, Ljava/util/List;.add:(Ljava/lang/Object;)Z // method@0696
017202: 2803                                   |0081: goto 0084 // +0003
017204: 130f 0c00                              |0082: const/16 v15, #int 12 // #c
017208: d80e 0e01                              |0084: add-int/lit8 v14, v14, #int 1 // #01
01720c: 01f4                                   |0086: move v4, v15
01720e: 1262                                   |0087: const/4 v2, #int 6 // #6
017210: 1203                                   |0088: const/4 v3, #int 0 // #0
017212: 28c7                                   |0089: goto 0050 // -0039
017214: 014f                                   |008a: move v15, v4
017216: d80a 0a01                              |008b: add-int/lit8 v10, v10, #int 1 // #01
01721a: 1262                                   |008d: const/4 v2, #int 6 // #6
01721c: 1203                                   |008e: const/4 v3, #int 0 // #0
01721e: 28b1                                   |008f: goto 0040 // -004f
017220: 014f                                   |0090: move v15, v4
017222: 7220 9606 9500                         |0091: invoke-interface {v5, v9}, Ljava/util/List;.add:(Ljava/lang/Object;)Z // method@0696
017228: 2802                                   |0094: goto 0096 // +0002
01722a: 014f                                   |0095: move v15, v4
01722c: d807 0701                              |0096: add-int/lit8 v7, v7, #int 1 // #01
017230: 01f4                                   |0098: move v4, v15
017232: 1262                                   |0099: const/4 v2, #int 6 // #6
017234: 1203                                   |009a: const/4 v3, #int 0 // #0
017236: 2882                                   |009b: goto 001d // -007e
017238: 014f                                   |009c: move v15, v4
01723a: d806 0601                              |009d: add-int/lit8 v6, v6, #int 1 // #01
01723e: 1262                                   |009f: const/4 v2, #int 6 // #6
017240: 1203                                   |00a0: const/4 v3, #int 0 // #0
017242: 2900 79ff                              |00a1: goto/16 001a // -0087
017246: 1105                                   |00a3: return-object v5
      catches       : (none)
      positions     :
        0x0000 line=616
        0x0014 line=617
        0x0019 line=618
        0x001f line=619
        0x0023 line=620
        0x002e line=621
        0x003f line=622
        0x0046 line=623
        0x004c line=624
        0x0054 line=625
        0x005f line=626
        0x0075 line=627
        0x0082 line=626
        0x0084 line=624
        0x008a line=622
        0x0090 line=631
        0x0095 line=620
        0x0096 line=618
        0x00a3 line=633
      locals        :
        0x0000 - 0x00a4 reg=18 (null) [[I

    #22              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'finish'
      type          : '(ZLjava/lang/String;)V'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 5
      ins           : 3
      outs          : 3
      insns size    : 91 16-bit code units
0181bc:                                        |[0181bc] com.valentinedesigns.chromalink.GameEngine.finish:(ZLjava/lang/String;)V
0181cc: 5520 6601                              |0000: iget-boolean v0, v2, Lcom/valentinedesigns/chromalink/GameEngine;.ended:Z // field@0166
0181d0: 3800 0300                              |0002: if-eqz v0, 0005 // +0003
0181d4: 0e00                                   |0004: return-void
0181d6: 3803 3000                              |0005: if-eqz v3, 0035 // +0030
0181da: 5420 6b01                              |0007: iget-object v0, v2, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
0181de: 6201 1d01                              |0009: sget-object v1, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.CAMPAIGN:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@011d
0181e2: 3310 2a00                              |000b: if-ne v0, v1, 0035 // +002a
0181e6: 5220 6801                              |000d: iget v0, v2, Lcom/valentinedesigns/chromalink/GameEngine;.lesson:I // field@0168
0181ea: 1261                                   |000f: const/4 v1, #int 6 // #6
0181ec: 3510 2500                              |0010: if-ge v0, v1, 0035 // +0025
0181f0: 6e10 2803 0200                         |0012: invoke-virtual {v2}, Lcom/valentinedesigns/chromalink/GameEngine;.campaignGoalProgress:()I // method@0328
0181f6: 0a00                                   |0015: move-result v0
0181f8: 6e10 2903 0200                         |0016: invoke-virtual {v2}, Lcom/valentinedesigns/chromalink/GameEngine;.campaignGoalTarget:()I // method@0329
0181fe: 0a01                                   |0019: move-result v1
018200: 3510 1b00                              |001a: if-ge v0, v1, 0035 // +001b
018204: 5423 6401                              |001c: iget-object v3, v2, Lcom/valentinedesigns/chromalink/GameEngine;.cpu:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@0164
018208: 7100 3603 0000                         |001e: invoke-static {}, Lcom/valentinedesigns/chromalink/GameEngine;.emptyBoard:()[[I // method@0336
01820e: 0c04                                   |0021: move-result-object v4
018210: 5b34 3b01                              |0022: iput-object v4, v3, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
018214: 5423 6401                              |0024: iget-object v3, v2, Lcom/valentinedesigns/chromalink/GameEngine;.cpu:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@0164
018218: 1204                                   |0026: const/4 v4, #int 0 // #0
01821a: 5b34 4c01                              |0027: iput-object v4, v3, Lcom/valentinedesigns/chromalink/GameEngine$Well;.piece:Lcom/valentinedesigns/chromalink/GameEngine$Piece; // field@014c
01821e: 5423 6401                              |0029: iget-object v3, v2, Lcom/valentinedesigns/chromalink/GameEngine;.cpu:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@0164
018222: 1a04 0806                              |002b: const-string v4, "between" // string@0608
018226: 5b34 4a01                              |002d: iput-object v4, v3, Lcom/valentinedesigns/chromalink/GameEngine$Well;.phase:Ljava/lang/String; // field@014a
01822a: 5423 6401                              |002f: iget-object v3, v2, Lcom/valentinedesigns/chromalink/GameEngine;.cpu:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@0164
01822e: 1204                                   |0031: const/4 v4, #int 0 // #0
018230: 5934 4b01                              |0032: iput v4, v3, Lcom/valentinedesigns/chromalink/GameEngine$Well;.phaseMs:F // field@014b
018234: 0e00                                   |0034: return-void
018236: 1210                                   |0035: const/4 v0, #int 1 // #1
018238: 5c20 6601                              |0036: iput-boolean v0, v2, Lcom/valentinedesigns/chromalink/GameEngine;.ended:Z // field@0166
01823c: 5c23 7301                              |0038: iput-boolean v3, v2, Lcom/valentinedesigns/chromalink/GameEngine;.won:Z // field@0173
018240: 1200                                   |003a: const/4 v0, #int 0 // #0
018242: 5c20 6d01                              |003b: iput-boolean v0, v2, Lcom/valentinedesigns/chromalink/GameEngine;.paused:Z // field@016d
018246: 5420 6b01                              |003d: iget-object v0, v2, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
01824a: 6201 2101                              |003f: sget-object v1, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.ONLINE:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@0121
01824e: 3310 0900                              |0041: if-ne v0, v1, 004a // +0009
018252: 3803 0500                              |0043: if-eqz v3, 0048 // +0005
018256: 1a04 6705                              |0045: const-string v4, "Your opponent topped out. You take the round!" // string@0567
01825a: 2803                                   |0047: goto 004a // +0003
01825c: 1a04 6a05                              |0048: const-string v4, "Your stack reached the top." // string@056a
018260: 5b24 6a01                              |004a: iput-object v4, v2, Lcom/valentinedesigns/chromalink/GameEngine;.message:Ljava/lang/String; // field@016a
018264: 3803 0500                              |004c: if-eqz v3, 0051 // +0005
018268: 1a03 3d0b                              |004e: const-string v3, "win" // string@0b3d
01826c: 2803                                   |0050: goto 0053 // +0003
01826e: 1a03 5908                              |0051: const-string v3, "loss" // string@0859
018272: 5424 6e01                              |0053: iget-object v4, v2, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
018276: 5244 4f01                              |0055: iget v4, v4, Lcom/valentinedesigns/chromalink/GameEngine$Well;.score:I // field@014f
01827a: 7030 3903 3204                         |0057: invoke-direct {v2, v3, v4}, Lcom/valentinedesigns/chromalink/GameEngine;.event:(Ljava/lang/String;I)V // method@0339
018280: 0e00                                   |005a: return-void
      catches       : (none)
      positions     :
        0x0000 line=470
        0x0005 line=472
        0x001c line=473
        0x0034 line=474
        0x0035 line=476
        0x003d line=477
        0x004c line=478
        0x005a line=479
      locals        :
        0x0000 - 0x005b reg=2 this Lcom/valentinedesigns/chromalink/GameEngine;
        0x0000 - 0x005b reg=3 (null) Z
        0x0000 - 0x005b reg=4 (null) Ljava/lang/String;

    #23              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'getCells'
      type          : '(Lcom/valentinedesigns/chromalink/GameEngine$Piece;)Ljava/util/List;'
      access        : 0x0009 (PUBLIC STATIC)
      code          -
      registers     : 7
      ins           : 1
      outs          : 4
      insns size    : 57 16-bit code units
017248:                                        |[017248] com.valentinedesigns.chromalink.GameEngine.getCells:(Lcom/valentinedesigns/chromalink/GameEngine$Piece;)Ljava/util/List;
017258: 2200 5c01                              |0000: new-instance v0, Ljava/util/ArrayList; // type@015c
01725c: 1221                                   |0002: const/4 v1, #int 2 // #2
01725e: 7020 8806 1000                         |0003: invoke-direct {v0, v1}, Ljava/util/ArrayList;.<init>:(I)V // method@0688
017264: 3906 0300                              |0006: if-nez v6, 0009 // +0003
017268: 1100                                   |0008: return-object v0
01726a: 6201 5e01                              |0009: sget-object v1, Lcom/valentinedesigns/chromalink/GameEngine;.OFFSETS:[[I // field@015e
01726e: 5262 2901                              |000b: iget v2, v6, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.rotation:I // field@0129
017272: 1243                                   |000d: const/4 v3, #int 4 // #4
017274: 7120 4006 3200                         |000e: invoke-static {v2, v3}, Ljava/lang/Math;.floorMod:(II)I // method@0640
01727a: 0a02                                   |0011: move-result v2
01727c: 4601 0102                              |0012: aget-object v1, v1, v2
017280: 2202 ad00                              |0014: new-instance v2, Lcom/valentinedesigns/chromalink/GameEngine$Cell; // type@00ad
017284: 5263 2a01                              |0016: iget v3, v6, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.x:I // field@012a
017288: 5264 2b01                              |0018: iget v4, v6, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.y:I // field@012b
01728c: 5265 2701                              |001a: iget v5, v6, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.a:I // field@0127
017290: 7040 f002 3254                         |001c: invoke-direct {v2, v3, v4, v5}, Lcom/valentinedesigns/chromalink/GameEngine$Cell;.<init>:(III)V // method@02f0
017296: 7220 9606 2000                         |001f: invoke-interface {v0, v2}, Ljava/util/List;.add:(Ljava/lang/Object;)Z // method@0696
01729c: 2202 ad00                              |0022: new-instance v2, Lcom/valentinedesigns/chromalink/GameEngine$Cell; // type@00ad
0172a0: 5263 2a01                              |0024: iget v3, v6, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.x:I // field@012a
0172a4: 1204                                   |0026: const/4 v4, #int 0 // #0
0172a6: 4404 0104                              |0027: aget v4, v1, v4
0172aa: b043                                   |0029: add-int/2addr v3, v4
0172ac: 5264 2b01                              |002a: iget v4, v6, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.y:I // field@012b
0172b0: 1215                                   |002c: const/4 v5, #int 1 // #1
0172b2: 4401 0105                              |002d: aget v1, v1, v5
0172b6: b014                                   |002f: add-int/2addr v4, v1
0172b8: 5266 2801                              |0030: iget v6, v6, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.b:I // field@0128
0172bc: 7040 f002 3264                         |0032: invoke-direct {v2, v3, v4, v6}, Lcom/valentinedesigns/chromalink/GameEngine$Cell;.<init>:(III)V // method@02f0
0172c2: 7220 9606 2000                         |0035: invoke-interface {v0, v2}, Ljava/util/List;.add:(Ljava/lang/Object;)Z // method@0696
0172c8: 1100                                   |0038: return-object v0
      catches       : (none)
      positions     :
        0x0000 line=542
        0x0006 line=543
        0x0009 line=544
        0x0014 line=545
        0x0022 line=546
        0x0038 line=547
      locals        :
        0x0000 - 0x0039 reg=6 (null) Lcom/valentinedesigns/chromalink/GameEngine$Piece;

    #24              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'ghost'
      type          : '([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;)Lcom/valentinedesigns/chromalink/GameEngine$Piece;'
      access        : 0x0009 (PUBLIC STATIC)
      code          -
      registers     : 5
      ins           : 2
      outs          : 4
      insns size    : 34 16-bit code units
015ef0:                                        |[015ef0] com.valentinedesigns.chromalink.GameEngine.ghost:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;)Lcom/valentinedesigns/chromalink/GameEngine$Piece;
015f00: 7120 2b03 4300                         |0000: invoke-static {v3, v4}, Lcom/valentinedesigns/chromalink/GameEngine;.canPlace:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;)Z // method@032b
015f06: 0a00                                   |0003: move-result v0
015f08: 3900 0400                              |0004: if-nez v0, 0008 // +0004
015f0c: 1203                                   |0006: const/4 v3, #int 0 // #0
015f0e: 1103                                   |0007: return-object v3
015f10: 6e10 fc02 0400                         |0008: invoke-virtual {v4}, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.copy:()Lcom/valentinedesigns/chromalink/GameEngine$Piece; // method@02fc
015f16: 0c04                                   |000b: move-result-object v4
015f18: 5240 2a01                              |000c: iget v0, v4, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.x:I // field@012a
015f1c: 5241 2b01                              |000e: iget v1, v4, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.y:I // field@012b
015f20: d801 0101                              |0010: add-int/lit8 v1, v1, #int 1 // #01
015f24: 5242 2901                              |0012: iget v2, v4, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.rotation:I // field@0129
015f28: 7140 2c03 0321                         |0014: invoke-static {v3, v0, v1, v2}, Lcom/valentinedesigns/chromalink/GameEngine;.canPlaceAt:([[IIII)Z // method@032c
015f2e: 0a00                                   |0017: move-result v0
015f30: 3800 0900                              |0018: if-eqz v0, 0021 // +0009
015f34: 5240 2b01                              |001a: iget v0, v4, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.y:I // field@012b
015f38: d800 0001                              |001c: add-int/lit8 v0, v0, #int 1 // #01
015f3c: 5940 2b01                              |001e: iput v0, v4, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.y:I // field@012b
015f40: 28ec                                   |0020: goto 000c // -0014
015f42: 1104                                   |0021: return-object v4
      catches       : (none)
      positions     :
        0x0000 line=589
        0x0008 line=590
        0x000c line=591
        0x0021 line=592
      locals        :
        0x0000 - 0x0022 reg=3 (null) [[I
        0x0000 - 0x0022 reg=4 (null) Lcom/valentinedesigns/chromalink/GameEngine$Piece;

    #25              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'hasLiveDifficulty'
      type          : '()Z'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 3
      ins           : 1
      outs          : 0
      insns size    : 17 16-bit code units
015884:                                        |[015884] com.valentinedesigns.chromalink.GameEngine.hasLiveDifficulty:()Z
015894: 5420 6b01                              |0000: iget-object v0, v2, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
015898: 6201 1f01                              |0002: sget-object v1, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.DUEL:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@011f
01589c: 3210 0b00                              |0004: if-eq v0, v1, 000f // +000b
0158a0: 5420 6b01                              |0006: iget-object v0, v2, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
0158a4: 6201 2001                              |0008: sget-object v1, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.ENDLESS:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@0120
0158a8: 3310 0300                              |000a: if-ne v0, v1, 000d // +0003
0158ac: 2803                                   |000c: goto 000f // +0003
0158ae: 1200                                   |000d: const/4 v0, #int 0 // #0
0158b0: 2802                                   |000e: goto 0010 // +0002
0158b2: 1210                                   |000f: const/4 v0, #int 1 // #1
0158b4: 0f00                                   |0010: return v0
      catches       : (none)
      positions     :
        0x0000 line=304
      locals        :
        0x0000 - 0x0011 reg=2 this Lcom/valentinedesigns/chromalink/GameEngine;

    #26              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'hashWell'
      type          : '(Lcom/valentinedesigns/chromalink/GameEngine$StateHash;Lcom/valentinedesigns/chromalink/GameEngine$Well;)V'
      access        : 0x000a (PRIVATE STATIC)
      code          -
      registers     : 6
      ins           : 2
      outs          : 3
      insns size    : 319 16-bit code units
018284:                                        |[018284] com.valentinedesigns.chromalink.GameEngine.hashWell:(Lcom/valentinedesigns/chromalink/GameEngine$StateHash;Lcom/valentinedesigns/chromalink/GameEngine$Well;)V
018294: 5450 3b01                              |0000: iget-object v0, v5, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
018298: 6e20 0203 0400                         |0002: invoke-virtual {v4, v0}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.board:([[I)V // method@0302
01829e: 5450 4c01                              |0005: iget-object v0, v5, Lcom/valentinedesigns/chromalink/GameEngine$Well;.piece:Lcom/valentinedesigns/chromalink/GameEngine$Piece; // field@014c
0182a2: 6e20 0303 0400                         |0007: invoke-virtual {v4, v0}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.piece:(Lcom/valentinedesigns/chromalink/GameEngine$Piece;)V // method@0303
0182a8: 5250 4f01                              |000a: iget v0, v5, Lcom/valentinedesigns/chromalink/GameEngine$Well;.score:I // field@014f
0182ac: 8100                                   |000c: int-to-long v0, v0
0182ae: 6e30 0103 0401                         |000d: invoke-virtual {v4, v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
0182b4: 5250 3c01                              |0010: iget v0, v5, Lcom/valentinedesigns/chromalink/GameEngine$Well;.cleared:I // field@013c
0182b8: 8100                                   |0012: int-to-long v0, v0
0182ba: 6e30 0103 0401                         |0013: invoke-virtual {v4, v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
0182c0: 5250 4601                              |0016: iget v0, v5, Lcom/valentinedesigns/chromalink/GameEngine$Well;.maxChain:I // field@0146
0182c4: 8100                                   |0018: int-to-long v0, v0
0182c6: 6e30 0103 0401                         |0019: invoke-virtual {v4, v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
0182cc: 5250 4301                              |001c: iget v0, v5, Lcom/valentinedesigns/chromalink/GameEngine$Well;.incoming:I // field@0143
0182d0: 8100                                   |001e: int-to-long v0, v0
0182d2: 6e30 0103 0401                         |001f: invoke-virtual {v4, v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
0182d8: 5250 4701                              |0022: iget v0, v5, Lcom/valentinedesigns/chromalink/GameEngine$Well;.moves:I // field@0147
0182dc: 8100                                   |0024: int-to-long v0, v0
0182de: 6e30 0103 0401                         |0025: invoke-virtual {v4, v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
0182e4: 5250 4501                              |0028: iget v0, v5, Lcom/valentinedesigns/chromalink/GameEngine$Well;.lastChain:I // field@0145
0182e8: 8100                                   |002a: int-to-long v0, v0
0182ea: 6e30 0103 0401                         |002b: invoke-virtual {v4, v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
0182f0: 5250 4101                              |002e: iget v0, v5, Lcom/valentinedesigns/chromalink/GameEngine$Well;.garbageCleared:I // field@0141
0182f4: 8100                                   |0030: int-to-long v0, v0
0182f6: 6e30 0103 0401                         |0031: invoke-virtual {v4, v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
0182fc: 5250 5001                              |0034: iget v0, v5, Lcom/valentinedesigns/chromalink/GameEngine$Well;.sent:I // field@0150
018300: 8100                                   |0036: int-to-long v0, v0
018302: 6e30 0103 0401                         |0037: invoke-virtual {v4, v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
018308: 5250 3d01                              |003a: iget v0, v5, Lcom/valentinedesigns/chromalink/GameEngine$Well;.countered:I // field@013d
01830c: 8100                                   |003c: int-to-long v0, v0
01830e: 6e30 0103 0401                         |003d: invoke-virtual {v4, v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
018314: 5450 4a01                              |0040: iget-object v0, v5, Lcom/valentinedesigns/chromalink/GameEngine$Well;.phase:Ljava/lang/String; // field@014a
018318: 6e20 0403 0400                         |0042: invoke-virtual {v4, v0}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.text:(Ljava/lang/String;)V // method@0304
01831e: 5250 4b01                              |0045: iget v0, v5, Lcom/valentinedesigns/chromalink/GameEngine$Well;.phaseMs:F // field@014b
018322: 7110 2b06 0000                         |0047: invoke-static {v0}, Ljava/lang/Float;.floatToIntBits:(F)I // method@062b
018328: 0a00                                   |004a: move-result v0
01832a: 8100                                   |004b: int-to-long v0, v0
01832c: 6e30 0103 0401                         |004c: invoke-virtual {v4, v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
018332: 7110 0b03 0500                         |004f: invoke-static {v5}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetindex:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)I // method@030b
018338: 0a00                                   |0052: move-result v0
01833a: 8100                                   |0053: int-to-long v0, v0
01833c: 6e30 0103 0401                         |0054: invoke-virtual {v4, v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
018342: 7110 0903 0500                         |0057: invoke-static {v5}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetframeIndex:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)I // method@0309
018348: 0a00                                   |005a: move-result v0
01834a: 8100                                   |005b: int-to-long v0, v0
01834c: 6e30 0103 0401                         |005c: invoke-virtual {v4, v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
018352: 7110 0a03 0500                         |005f: invoke-static {v5}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetgarbageWave:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)I // method@030a
018358: 0a00                                   |0062: move-result v0
01835a: 8100                                   |0063: int-to-long v0, v0
01835c: 6e30 0103 0401                         |0064: invoke-virtual {v4, v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
018362: 7110 0803 0500                         |0067: invoke-static {v5}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetfallMs:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)F // method@0308
018368: 0a00                                   |006a: move-result v0
01836a: 7110 2b06 0000                         |006b: invoke-static {v0}, Ljava/lang/Float;.floatToIntBits:(F)I // method@062b
018370: 0a00                                   |006e: move-result v0
018372: 8100                                   |006f: int-to-long v0, v0
018374: 6e30 0103 0401                         |0070: invoke-virtual {v4, v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
01837a: 7110 0c03 0500                         |0073: invoke-static {v5}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetpackets:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)Ljava/util/List; // method@030c
018380: 0c00                                   |0076: move-result-object v0
018382: 7210 9c06 0000                         |0077: invoke-interface {v0}, Ljava/util/List;.size:()I // method@069c
018388: 0a00                                   |007a: move-result v0
01838a: 8100                                   |007b: int-to-long v0, v0
01838c: 6e30 0103 0401                         |007c: invoke-virtual {v4, v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
018392: 7110 0c03 0500                         |007f: invoke-static {v5}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetpackets:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)Ljava/util/List; // method@030c
018398: 0c00                                   |0082: move-result-object v0
01839a: 7210 9a06 0000                         |0083: invoke-interface {v0}, Ljava/util/List;.iterator:()Ljava/util/Iterator; // method@069a
0183a0: 0c00                                   |0086: move-result-object v0
0183a2: 7210 9406 0000                         |0087: invoke-interface {v0}, Ljava/util/Iterator;.hasNext:()Z // method@0694
0183a8: 0a01                                   |008a: move-result v1
0183aa: 3801 1500                              |008b: if-eqz v1, 00a0 // +0015
0183ae: 7210 9506 0000                         |008d: invoke-interface {v0}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0695
0183b4: 0c01                                   |0090: move-result-object v1
0183b6: 1f01 b200                              |0091: check-cast v1, Lcom/valentinedesigns/chromalink/GameEngine$Packet; // type@00b2
0183ba: 5212 2301                              |0093: iget v2, v1, Lcom/valentinedesigns/chromalink/GameEngine$Packet;.count:I // field@0123
0183be: 8122                                   |0095: int-to-long v2, v2
0183c0: 6e30 0103 2403                         |0096: invoke-virtual {v4, v2, v3}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
0183c6: 5211 2401                              |0099: iget v1, v1, Lcom/valentinedesigns/chromalink/GameEngine$Packet;.readyAfter:I // field@0124
0183ca: 8111                                   |009b: int-to-long v1, v1
0183cc: 6e30 0103 1402                         |009c: invoke-virtual {v4, v1, v2}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
0183d2: 28e8                                   |009f: goto 0087 // -0018
0183d4: 7110 0d03 0500                         |00a0: invoke-static {v5}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetpalettes:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)Ljava/util/List; // method@030d
0183da: 0c00                                   |00a3: move-result-object v0
0183dc: 7210 9c06 0000                         |00a4: invoke-interface {v0}, Ljava/util/List;.size:()I // method@069c
0183e2: 0a00                                   |00a7: move-result v0
0183e4: 8100                                   |00a8: int-to-long v0, v0
0183e6: 6e30 0103 0401                         |00a9: invoke-virtual {v4, v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
0183ec: 7110 0d03 0500                         |00ac: invoke-static {v5}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetpalettes:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)Ljava/util/List; // method@030d
0183f2: 0c00                                   |00af: move-result-object v0
0183f4: 7210 9a06 0000                         |00b0: invoke-interface {v0}, Ljava/util/List;.iterator:()Ljava/util/Iterator; // method@069a
0183fa: 0c00                                   |00b3: move-result-object v0
0183fc: 7210 9406 0000                         |00b4: invoke-interface {v0}, Ljava/util/Iterator;.hasNext:()Z // method@0694
018402: 0a01                                   |00b7: move-result v1
018404: 3801 1500                              |00b8: if-eqz v1, 00cd // +0015
018408: 7210 9506 0000                         |00ba: invoke-interface {v0}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0695
01840e: 0c01                                   |00bd: move-result-object v1
018410: 1f01 b300                              |00be: check-cast v1, Lcom/valentinedesigns/chromalink/GameEngine$PaletteChange; // type@00b3
018414: 5212 2601                              |00c0: iget v2, v1, Lcom/valentinedesigns/chromalink/GameEngine$PaletteChange;.from:I // field@0126
018418: 8122                                   |00c2: int-to-long v2, v2
01841a: 6e30 0103 2403                         |00c3: invoke-virtual {v4, v2, v3}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
018420: 5211 2501                              |00c6: iget v1, v1, Lcom/valentinedesigns/chromalink/GameEngine$PaletteChange;.colors:I // field@0125
018424: 8111                                   |00c8: int-to-long v1, v1
018426: 6e30 0103 1402                         |00c9: invoke-virtual {v4, v1, v2}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
01842c: 28e8                                   |00cc: goto 00b4 // -0018
01842e: 7110 0f03 0500                         |00cd: invoke-static {v5}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetresolution:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)Lcom/valentinedesigns/chromalink/GameEngine$Resolution; // method@030f
018434: 0c05                                   |00d0: move-result-object v5
018436: 3905 0500                              |00d1: if-nez v5, 00d6 // +0005
01843a: 1600 ffff                              |00d3: const-wide/16 v0, #int -1 // #ffff
01843e: 2808                                   |00d5: goto 00dd // +0008
018440: 5450 2e01                              |00d6: iget-object v0, v5, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.frames:Ljava/util/List; // field@012e
018444: 7210 9c06 0000                         |00d8: invoke-interface {v0}, Ljava/util/List;.size:()I // method@069c
01844a: 0a00                                   |00db: move-result v0
01844c: 8100                                   |00dc: int-to-long v0, v0
01844e: 6e30 0103 0401                         |00dd: invoke-virtual {v4, v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
018454: 3805 5e00                              |00e0: if-eqz v5, 013e // +005e
018458: 5450 2c01                              |00e2: iget-object v0, v5, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.board:[[I // field@012c
01845c: 6e20 0203 0400                         |00e4: invoke-virtual {v4, v0}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.board:([[I)V // method@0302
018462: 5450 3201                              |00e7: iget-object v0, v5, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.settledBoard:[[I // field@0132
018466: 6e20 0203 0400                         |00e9: invoke-virtual {v4, v0}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.board:([[I)V // method@0302
01846c: 5250 3101                              |00ec: iget v0, v5, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.score:I // field@0131
018470: 8100                                   |00ee: int-to-long v0, v0
018472: 6e30 0103 0401                         |00ef: invoke-virtual {v4, v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
018478: 5250 2d01                              |00f2: iget v0, v5, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.cleared:I // field@012d
01847c: 8100                                   |00f4: int-to-long v0, v0
01847e: 6e30 0103 0401                         |00f5: invoke-virtual {v4, v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
018484: 5250 2f01                              |00f8: iget v0, v5, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.garbageCleared:I // field@012f
018488: 8100                                   |00fa: int-to-long v0, v0
01848a: 6e30 0103 0401                         |00fb: invoke-virtual {v4, v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
018490: 5250 3001                              |00fe: iget v0, v5, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.maxChain:I // field@0130
018494: 8100                                   |0100: int-to-long v0, v0
018496: 6e30 0103 0401                         |0101: invoke-virtual {v4, v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
01849c: 5455 2e01                              |0104: iget-object v5, v5, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.frames:Ljava/util/List; // field@012e
0184a0: 7210 9a06 0500                         |0106: invoke-interface {v5}, Ljava/util/List;.iterator:()Ljava/util/Iterator; // method@069a
0184a6: 0c05                                   |0109: move-result-object v5
0184a8: 7210 9406 0500                         |010a: invoke-interface {v5}, Ljava/util/Iterator;.hasNext:()Z // method@0694
0184ae: 0a00                                   |010d: move-result v0
0184b0: 3800 3000                              |010e: if-eqz v0, 013e // +0030
0184b4: 7210 9506 0500                         |0110: invoke-interface {v5}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0695
0184ba: 0c00                                   |0113: move-result-object v0
0184bc: 1f00 ae00                              |0114: check-cast v0, Lcom/valentinedesigns/chromalink/GameEngine$Frame; // type@00ae
0184c0: 5401 1301                              |0116: iget-object v1, v0, Lcom/valentinedesigns/chromalink/GameEngine$Frame;.before:[[I // field@0113
0184c4: 6e20 0203 1400                         |0118: invoke-virtual {v4, v1}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.board:([[I)V // method@0302
0184ca: 5401 1101                              |011b: iget-object v1, v0, Lcom/valentinedesigns/chromalink/GameEngine$Frame;.afterClear:[[I // field@0111
0184ce: 6e20 0203 1400                         |011d: invoke-virtual {v4, v1}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.board:([[I)V // method@0302
0184d4: 5401 1201                              |0120: iget-object v1, v0, Lcom/valentinedesigns/chromalink/GameEngine$Frame;.afterGravity:[[I // field@0112
0184d8: 6e20 0203 1400                         |0122: invoke-virtual {v4, v1}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.board:([[I)V // method@0302
0184de: 5201 1601                              |0125: iget v1, v0, Lcom/valentinedesigns/chromalink/GameEngine$Frame;.colored:I // field@0116
0184e2: 8111                                   |0127: int-to-long v1, v1
0184e4: 6e30 0103 1402                         |0128: invoke-virtual {v4, v1, v2}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
0184ea: 5201 1701                              |012b: iget v1, v0, Lcom/valentinedesigns/chromalink/GameEngine$Frame;.garbage:I // field@0117
0184ee: 8111                                   |012d: int-to-long v1, v1
0184f0: 6e30 0103 1402                         |012e: invoke-virtual {v4, v1, v2}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
0184f6: 5201 1501                              |0131: iget v1, v0, Lcom/valentinedesigns/chromalink/GameEngine$Frame;.chain:I // field@0115
0184fa: 8111                                   |0133: int-to-long v1, v1
0184fc: 6e30 0103 1402                         |0134: invoke-virtual {v4, v1, v2}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
018502: 5200 1801                              |0137: iget v0, v0, Lcom/valentinedesigns/chromalink/GameEngine$Frame;.points:I // field@0118
018506: 8100                                   |0139: int-to-long v0, v0
018508: 6e30 0103 0401                         |013a: invoke-virtual {v4, v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
01850e: 28cd                                   |013d: goto 010a // -0033
018510: 0e00                                   |013e: return-void
      catches       : (none)
      positions     :
        0x0000 line=514
        0x001c line=515
        0x0040 line=516
        0x0067 line=517
        0x0073 line=518
        0x00a0 line=519
        0x00cd line=520
        0x00d1 line=521
        0x00e0 line=522
        0x00e2 line=523
        0x0104 line=524
        0x013e line=526
      locals        :
        0x0000 - 0x013f reg=4 (null) Lcom/valentinedesigns/chromalink/GameEngine$StateHash;
        0x0000 - 0x013f reg=5 (null) Lcom/valentinedesigns/chromalink/GameEngine$Well;

    #27              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'lambda$cancelPackets$0'
      type          : '(Lcom/valentinedesigns/chromalink/GameEngine$Packet;)Z'
      access        : 0x1008 (STATIC SYNTHETIC)
      code          -
      registers     : 1
      ins           : 1
      outs          : 0
      insns size    : 8 16-bit code units
0158f8:                                        |[0158f8] com.valentinedesigns.chromalink.GameEngine.lambda$cancelPackets$0:(Lcom/valentinedesigns/chromalink/GameEngine$Packet;)Z
015908: 5200 2301                              |0000: iget v0, v0, Lcom/valentinedesigns/chromalink/GameEngine$Packet;.count:I // field@0123
01590c: 3c00 0400                              |0002: if-gtz v0, 0006 // +0004
015910: 1210                                   |0004: const/4 v0, #int 1 // #1
015912: 2802                                   |0005: goto 0007 // +0002
015914: 1200                                   |0006: const/4 v0, #int 0 // #0
015916: 0f00                                   |0007: return v0
      catches       : (none)
      positions     :
        0x0000 line=492
      locals        :
        0x0000 - 0x0008 reg=0 (null) Lcom/valentinedesigns/chromalink/GameEngine$Packet;

    #28              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'lock'
      type          : '(Lcom/valentinedesigns/chromalink/GameEngine$Well;)V'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 6
      ins           : 2
      outs          : 3
      insns size    : 67 16-bit code units
018514:                                        |[018514] com.valentinedesigns.chromalink.GameEngine.lock:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)V
018524: 5450 3b01                              |0000: iget-object v0, v5, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
018528: 5451 4c01                              |0002: iget-object v1, v5, Lcom/valentinedesigns/chromalink/GameEngine$Well;.piece:Lcom/valentinedesigns/chromalink/GameEngine$Piece; // field@014c
01852c: 7120 4403 1000                         |0004: invoke-static {v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine;.lockPiece:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;)[[I // method@0344
018532: 0c00                                   |0007: move-result-object v0
018534: 1201                                   |0008: const/4 v1, #int 0 // #0
018536: 1212                                   |0009: const/4 v2, #int 1 // #1
018538: 3900 1400                              |000a: if-nez v0, 001e // +0014
01853c: 5440 6e01                              |000c: iget-object v0, v4, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
018540: 3205 0300                              |000e: if-eq v5, v0, 0011 // +0003
018544: 0121                                   |0010: move v1, v2
018546: 5440 6e01                              |0011: iget-object v0, v4, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
01854a: 3305 0500                              |0013: if-ne v5, v0, 0018 // +0005
01854e: 1a05 6a05                              |0015: const-string v5, "Your stack reached the top." // string@056a
018552: 2803                                   |0017: goto 001a // +0003
018554: 1a05 bc01                              |0018: const-string v5, "I.N.K. topped out. You win!" // string@01bc
018558: 7030 3b03 1405                         |001a: invoke-direct {v4, v1, v5}, Lcom/valentinedesigns/chromalink/GameEngine;.finish:(ZLjava/lang/String;)V // method@033b
01855e: 0e00                                   |001d: return-void
018560: 5253 4701                              |001e: iget v3, v5, Lcom/valentinedesigns/chromalink/GameEngine$Well;.moves:I // field@0147
018564: b023                                   |0020: add-int/2addr v3, v2
018566: 5953 4701                              |0021: iput v3, v5, Lcom/valentinedesigns/chromalink/GameEngine$Well;.moves:I // field@0147
01856a: 1203                                   |0023: const/4 v3, #int 0 // #0
01856c: 5b53 4c01                              |0024: iput-object v3, v5, Lcom/valentinedesigns/chromalink/GameEngine$Well;.piece:Lcom/valentinedesigns/chromalink/GameEngine$Piece; // field@014c
018570: 5b50 3b01                              |0026: iput-object v0, v5, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
018574: 7110 5303 0000                         |0028: invoke-static {v0}, Lcom/valentinedesigns/chromalink/GameEngine;.resolveBoard:([[I)Lcom/valentinedesigns/chromalink/GameEngine$Resolution; // method@0353
01857a: 0c00                                   |002b: move-result-object v0
01857c: 7120 1803 0500                         |002c: invoke-static {v5, v0}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fputresolution:(Lcom/valentinedesigns/chromalink/GameEngine$Well;Lcom/valentinedesigns/chromalink/GameEngine$Resolution;)V // method@0318
018582: 7120 1403 1500                         |002f: invoke-static {v5, v1}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fputframeIndex:(Lcom/valentinedesigns/chromalink/GameEngine$Well;I)V // method@0314
018588: 1a00 820a                              |0032: const-string v0, "settle" // string@0a82
01858c: 5b50 4a01                              |0034: iput-object v0, v5, Lcom/valentinedesigns/chromalink/GameEngine$Well;.phase:Ljava/lang/String; // field@014a
018590: 1200                                   |0036: const/4 v0, #int 0 // #0
018592: 5950 4b01                              |0037: iput v0, v5, Lcom/valentinedesigns/chromalink/GameEngine$Well;.phaseMs:F // field@014b
018596: 5440 6e01                              |0039: iget-object v0, v4, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
01859a: 3305 0700                              |003b: if-ne v5, v0, 0042 // +0007
01859e: 1a05 5508                              |003d: const-string v5, "lock" // string@0855
0185a2: 7030 3903 5402                         |003f: invoke-direct {v4, v5, v2}, Lcom/valentinedesigns/chromalink/GameEngine;.event:(Ljava/lang/String;I)V // method@0339
0185a8: 0e00                                   |0042: return-void
      catches       : (none)
      positions     :
        0x0000 line=412
        0x0008 line=413
        0x001e line=414
        0x0028 line=415
        0x0032 line=416
        0x0039 line=417
        0x0042 line=418
      locals        :
        0x0000 - 0x0043 reg=4 this Lcom/valentinedesigns/chromalink/GameEngine;
        0x0000 - 0x0043 reg=5 (null) Lcom/valentinedesigns/chromalink/GameEngine$Well;

    #29              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'lockPiece'
      type          : '([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;)[[I'
      access        : 0x0009 (PUBLIC STATIC)
      code          -
      registers     : 7
      ins           : 2
      outs          : 2
      insns size    : 60 16-bit code units
016f08:                                        |[016f08] com.valentinedesigns.chromalink.GameEngine.lockPiece:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;)[[I
016f18: 7120 2b03 6500                         |0000: invoke-static {v5, v6}, Lcom/valentinedesigns/chromalink/GameEngine;.canPlace:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;)Z // method@032b
016f1e: 0a00                                   |0003: move-result v0
016f20: 1201                                   |0004: const/4 v1, #int 0 // #0
016f22: 3900 0300                              |0005: if-nez v0, 0008 // +0003
016f26: 1101                                   |0007: return-object v1
016f28: 6200 5e01                              |0008: sget-object v0, Lcom/valentinedesigns/chromalink/GameEngine;.OFFSETS:[[I // field@015e
016f2c: 5262 2901                              |000a: iget v2, v6, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.rotation:I // field@0129
016f30: 1243                                   |000c: const/4 v3, #int 4 // #4
016f32: 7120 4006 3200                         |000d: invoke-static {v2, v3}, Ljava/lang/Math;.floorMod:(II)I // method@0640
016f38: 0a02                                   |0010: move-result v2
016f3a: 4600 0002                              |0011: aget-object v0, v0, v2
016f3e: 5262 2a01                              |0013: iget v2, v6, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.x:I // field@012a
016f42: 1203                                   |0015: const/4 v3, #int 0 // #0
016f44: 4403 0003                              |0016: aget v3, v0, v3
016f48: b032                                   |0018: add-int/2addr v2, v3
016f4a: 5263 2b01                              |0019: iget v3, v6, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.y:I // field@012b
016f4e: 1214                                   |001b: const/4 v4, #int 1 // #1
016f50: 4400 0004                              |001c: aget v0, v0, v4
016f54: b003                                   |001e: add-int/2addr v3, v0
016f56: 5260 2b01                              |001f: iget v0, v6, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.y:I // field@012b
016f5a: 3a00 1a00                              |0021: if-ltz v0, 003b // +001a
016f5e: 3b03 0300                              |0023: if-gez v3, 0026 // +0003
016f62: 2816                                   |0025: goto 003b // +0016
016f64: 7110 3303 0500                         |0026: invoke-static {v5}, Lcom/valentinedesigns/chromalink/GameEngine;.copyBoard:([[I)[[I // method@0333
016f6a: 0c05                                   |0029: move-result-object v5
016f6c: 5260 2b01                              |002a: iget v0, v6, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.y:I // field@012b
016f70: 4600 0500                              |002c: aget-object v0, v5, v0
016f74: 5261 2a01                              |002e: iget v1, v6, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.x:I // field@012a
016f78: 5264 2701                              |0030: iget v4, v6, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.a:I // field@0127
016f7c: 4b04 0001                              |0032: aput v4, v0, v1
016f80: 4600 0503                              |0034: aget-object v0, v5, v3
016f84: 5266 2801                              |0036: iget v6, v6, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.b:I // field@0128
016f88: 4b06 0002                              |0038: aput v6, v0, v2
016f8c: 1105                                   |003a: return-object v5
016f8e: 1101                                   |003b: return-object v1
      catches       : (none)
      positions     :
        0x0000 line=597
        0x0008 line=598
        0x0013 line=599
        0x001f line=600
        0x0026 line=601
        0x002a line=602
        0x0034 line=603
        0x003a line=604
        0x003b line=600
      locals        :
        0x0000 - 0x003c reg=5 (null) [[I
        0x0000 - 0x003c reg=6 (null) Lcom/valentinedesigns/chromalink/GameEngine$Piece;

    #30              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'mix'
      type          : '(J)J'
      access        : 0x000a (PRIVATE STATIC)
      code          -
      registers     : 4
      ins           : 2
      outs          : 0
      insns size    : 28 16-bit code units
0172cc:                                        |[0172cc] com.valentinedesigns.chromalink.GameEngine.mix:(J)J
0172dc: 1300 1e00                              |0000: const/16 v0, #int 30 // #1e
0172e0: a500 0200                              |0002: ushr-long v0, v2, v0
0172e4: c202                                   |0004: xor-long/2addr v2, v0
0172e6: 1800 b9e5 e41c 6d47 58bf               |0005: const-wide v0, #double -0.00148187 // #bf58476d1ce4e5b9
0172f0: bd02                                   |000a: mul-long/2addr v2, v0
0172f2: 1300 1b00                              |000b: const/16 v0, #int 27 // #1b
0172f6: a500 0200                              |000d: ushr-long v0, v2, v0
0172fa: c202                                   |000f: xor-long/2addr v2, v0
0172fc: 1800 eb11 3113 bb49 d094               |0010: const-wide v0, #double -1.98176e-208 // #94d049bb133111eb
017306: bd02                                   |0015: mul-long/2addr v2, v0
017308: 1300 1f00                              |0016: const/16 v0, #int 31 // #1f
01730c: a500 0200                              |0018: ushr-long v0, v2, v0
017310: c202                                   |001a: xor-long/2addr v2, v0
017312: 1002                                   |001b: return-wide v2
      catches       : (none)
      positions     :
        0x0000 line=201
        0x000b line=202
        0x0016 line=203
      locals        :
        0x0000 - 0x001c reg=2 (null) J

    #31              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'move'
      type          : '([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;II)Lcom/valentinedesigns/chromalink/GameEngine$Piece;'
      access        : 0x0009 (PUBLIC STATIC)
      code          -
      registers     : 12
      ins           : 4
      outs          : 6
      insns size    : 35 16-bit code units
015f44:                                        |[015f44] com.valentinedesigns.chromalink.GameEngine.move:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;II)Lcom/valentinedesigns/chromalink/GameEngine$Piece;
015f54: 1200                                   |0000: const/4 v0, #int 0 // #0
015f56: 3909 0300                              |0001: if-nez v9, 0004 // +0003
015f5a: 1100                                   |0003: return-object v0
015f5c: 5291 2a01                              |0004: iget v1, v9, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.x:I // field@012a
015f60: 9003 010a                              |0006: add-int v3, v1, v10
015f64: 529a 2b01                              |0008: iget v10, v9, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.y:I // field@012b
015f68: 9004 0a0b                              |000a: add-int v4, v10, v11
015f6c: 529a 2901                              |000c: iget v10, v9, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.rotation:I // field@0129
015f70: 7140 2c03 38a4                         |000e: invoke-static {v8, v3, v4, v10}, Lcom/valentinedesigns/chromalink/GameEngine;.canPlaceAt:([[IIII)Z // method@032c
015f76: 0a08                                   |0011: move-result v8
015f78: 3808 0f00                              |0012: if-eqz v8, 0021 // +000f
015f7c: 2200 b400                              |0014: new-instance v0, Lcom/valentinedesigns/chromalink/GameEngine$Piece; // type@00b4
015f80: 5295 2901                              |0016: iget v5, v9, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.rotation:I // field@0129
015f84: 5296 2701                              |0018: iget v6, v9, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.a:I // field@0127
015f88: 5297 2801                              |001a: iget v7, v9, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.b:I // field@0128
015f8c: 0702                                   |001c: move-object v2, v0
015f8e: 7606 fb02 0200                         |001d: invoke-direct/range {v2, v3, v4, v5, v6, v7}, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.<init>:(IIIII)V // method@02fb
015f94: 2802                                   |0020: goto 0022 // +0002
015f96: 0000                                   |0021: nop // spacer
015f98: 1100                                   |0022: return-object v0
      catches       : (none)
      positions     :
        0x0000 line=570
        0x0004 line=571
        0x000c line=572
        0x0014 line=573
        0x0022 line=572
      locals        :
        0x0000 - 0x0023 reg=8 (null) [[I
        0x0000 - 0x0023 reg=9 (null) Lcom/valentinedesigns/chromalink/GameEngine$Piece;
        0x0000 - 0x0023 reg=10 (null) I
        0x0000 - 0x0023 reg=11 (null) I

    #32              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'online'
      type          : '(JII)Lcom/valentinedesigns/chromalink/GameEngine;'
      access        : 0x0009 (PUBLIC STATIC)
      code          -
      registers     : 12
      ins           : 4
      outs          : 7
      insns size    : 13 16-bit code units
015974:                                        |[015974] com.valentinedesigns.chromalink.GameEngine.online:(JII)Lcom/valentinedesigns/chromalink/GameEngine;
015984: 2207 ba00                              |0000: new-instance v7, Lcom/valentinedesigns/chromalink/GameEngine; // type@00ba
015988: 6201 2101                              |0002: sget-object v1, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.ONLINE:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@0121
01598c: 1205                                   |0004: const/4 v5, #int 0 // #0
01598e: 0770                                   |0005: move-object v0, v7
015990: 0482                                   |0006: move-wide v2, v8
015992: 01a4                                   |0007: move v4, v10
015994: 01b6                                   |0008: move v6, v11
015996: 7607 1d03 0000                         |0009: invoke-direct/range {v0, v1, v2, v3, v4, v5, v6}, Lcom/valentinedesigns/chromalink/GameEngine;.<init>:(Lcom/valentinedesigns/chromalink/GameEngine$Mode;JIII)V // method@031d
01599c: 1107                                   |000c: return-object v7
      catches       : (none)
      positions     :
        0x0000 line=174
      locals        :
        0x0000 - 0x000d reg=8 (null) J
        0x0000 - 0x000d reg=10 (null) I
        0x0000 - 0x000d reg=11 (null) I

    #33              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'pairAt'
      type          : '(Lcom/valentinedesigns/chromalink/GameEngine$Well;I)[I'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 12
      ins           : 3
      outs          : 4
      insns size    : 185 16-bit code units
016cf4:                                        |[016cf4] com.valentinedesigns.chromalink.GameEngine.pairAt:(Lcom/valentinedesigns/chromalink/GameEngine$Well;I)[I
016d04: 5490 6b01                              |0000: iget-object v0, v9, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
016d08: 6201 1d01                              |0002: sget-object v1, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.CAMPAIGN:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@011d
016d0c: 1222                                   |0004: const/4 v2, #int 2 // #2
016d0e: 1203                                   |0005: const/4 v3, #int 0 // #0
016d10: 1214                                   |0006: const/4 v4, #int 1 // #1
016d12: 3310 3800                              |0007: if-ne v0, v1, 003f // +0038
016d16: 5490 6e01                              |0009: iget-object v0, v9, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
016d1a: 330a 3400                              |000b: if-ne v10, v0, 003f // +0034
016d1e: 390b 1800                              |000d: if-nez v11, 0025 // +0018
016d22: 5290 6801                              |000f: iget v0, v9, Lcom/valentinedesigns/chromalink/GameEngine;.lesson:I // field@0168
016d26: 3620 1400                              |0011: if-gt v0, v2, 0025 // +0014
016d2a: 529a 6801                              |0013: iget v10, v9, Lcom/valentinedesigns/chromalink/GameEngine;.lesson:I // field@0168
016d2e: 334a 0900                              |0015: if-ne v10, v4, 001e // +0009
016d32: 232a 7501                              |0017: new-array v10, v2, [I // type@0175
016d36: 4b03 0a03                              |0019: aput v3, v10, v3
016d3a: 4b04 0a04                              |001b: aput v4, v10, v4
016d3e: 2807                                   |001d: goto 0024 // +0007
016d40: 232a 7501                              |001e: new-array v10, v2, [I // type@0175
016d44: 4b03 0a03                              |0020: aput v3, v10, v3
016d48: 4b02 0a04                              |0022: aput v2, v10, v4
016d4c: 110a                                   |0024: return-object v10
016d4e: 334b 0b00                              |0025: if-ne v11, v4, 0030 // +000b
016d52: 5290 6801                              |0027: iget v0, v9, Lcom/valentinedesigns/chromalink/GameEngine;.lesson:I // field@0168
016d56: 3340 0700                              |0029: if-ne v0, v4, 0030 // +0007
016d5a: 2420 7501 2400                         |002b: filled-new-array {v4, v2}, [I // type@0175
016d60: 0c0a                                   |002e: move-result-object v10
016d62: 110a                                   |002f: return-object v10
016d64: 390b 0f00                              |0030: if-nez v11, 003f // +000f
016d68: 5290 6801                              |0032: iget v0, v9, Lcom/valentinedesigns/chromalink/GameEngine;.lesson:I // field@0168
016d6c: 1231                                   |0034: const/4 v1, #int 3 // #3
016d6e: 3410 0a00                              |0035: if-lt v0, v1, 003f // +000a
016d72: 529a 7101                              |0037: iget v10, v9, Lcom/valentinedesigns/chromalink/GameEngine;.stage:I // field@0171
016d76: b02a                                   |0039: add-int/2addr v10, v2
016d78: 2420 7501 3a00                         |003a: filled-new-array {v10, v3}, [I // type@0175
016d7e: 0c0a                                   |003d: move-result-object v10
016d80: 110a                                   |003e: return-object v10
016d82: 5490 6b01                              |003f: iget-object v0, v9, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
016d86: 6201 2201                              |0041: sget-object v1, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.PRACTICE:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@0122
016d8a: 3310 0900                              |0043: if-ne v0, v1, 004c // +0009
016d8e: 390b 0700                              |0045: if-nez v11, 004c // +0007
016d92: 2420 7501 4300                         |0047: filled-new-array {v3, v4}, [I // type@0175
016d98: 0c0a                                   |004a: move-result-object v10
016d9a: 110a                                   |004b: return-object v10
016d9c: 5490 6b01                              |004c: iget-object v0, v9, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
016da0: 6201 2201                              |004e: sget-object v1, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.PRACTICE:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@0122
016da4: 3310 0900                              |0050: if-ne v0, v1, 0059 // +0009
016da8: 334b 0700                              |0052: if-ne v11, v4, 0059 // +0007
016dac: 2420 7501 2400                         |0054: filled-new-array {v4, v2}, [I // type@0175
016db2: 0c0a                                   |0057: move-result-object v10
016db4: 110a                                   |0058: return-object v10
016db6: 7110 0d03 0a00                         |0059: invoke-static {v10}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetpalettes:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)Ljava/util/List; // method@030d
016dbc: 0c00                                   |005c: move-result-object v0
016dbe: 7220 9806 3000                         |005d: invoke-interface {v0, v3}, Ljava/util/List;.get:(I)Ljava/lang/Object; // method@0698
016dc4: 0c00                                   |0060: move-result-object v0
016dc6: 1f00 b300                              |0061: check-cast v0, Lcom/valentinedesigns/chromalink/GameEngine$PaletteChange; // type@00b3
016dca: 7110 0d03 0a00                         |0063: invoke-static {v10}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetpalettes:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)Ljava/util/List; // method@030d
016dd0: 0c0a                                   |0066: move-result-object v10
016dd2: 7210 9a06 0a00                         |0067: invoke-interface {v10}, Ljava/util/List;.iterator:()Ljava/util/Iterator; // method@069a
016dd8: 0c0a                                   |006a: move-result-object v10
016dda: 7210 9406 0a00                         |006b: invoke-interface {v10}, Ljava/util/Iterator;.hasNext:()Z // method@0694
016de0: 0a01                                   |006e: move-result v1
016de2: 3801 0e00                              |006f: if-eqz v1, 007d // +000e
016de6: 7210 9506 0a00                         |0071: invoke-interface {v10}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0695
016dec: 0c01                                   |0074: move-result-object v1
016dee: 1f01 b300                              |0075: check-cast v1, Lcom/valentinedesigns/chromalink/GameEngine$PaletteChange; // type@00b3
016df2: 5212 2601                              |0077: iget v2, v1, Lcom/valentinedesigns/chromalink/GameEngine$PaletteChange;.from:I // field@0126
016df6: 36b2 f2ff                              |0079: if-gt v2, v11, 006b // -000e
016dfa: 0710                                   |007b: move-object v0, v1
016dfc: 28ef                                   |007c: goto 006b // -0011
016dfe: 5391 7001                              |007d: iget-wide v1, v9, Lcom/valentinedesigns/chromalink/GameEngine;.seed:J // field@0170
016e02: 81b5                                   |007f: int-to-long v5, v11
016e04: 1807 157c 4a7f b979 379e               |0080: const-wide v7, #double -4.07659e-163 // #9e3779b97f4a7c15
016e0e: bd75                                   |0085: mul-long/2addr v5, v7
016e10: c251                                   |0086: xor-long/2addr v1, v5
016e12: 520a 2501                              |0087: iget v10, v0, Lcom/valentinedesigns/chromalink/GameEngine$PaletteChange;.colors:I // field@0125
016e16: 81a5                                   |0089: int-to-long v5, v10
016e18: 1807 19e0 b4d9 9be5 2b63               |008a: const-wide v7, #double 5.26409e+169 // #632be59bd9b4e019
016e22: bd75                                   |008f: mul-long/2addr v5, v7
016e24: c251                                   |0090: xor-long/2addr v1, v5
016e26: 7120 4503 2100                         |0091: invoke-static {v1, v2}, Lcom/valentinedesigns/chromalink/GameEngine;.mix:(J)J // method@0345
016e2c: 0b01                                   |0094: move-result-wide v1
016e2e: 520a 2501                              |0095: iget v10, v0, Lcom/valentinedesigns/chromalink/GameEngine$PaletteChange;.colors:I // field@0125
016e32: 81a5                                   |0097: int-to-long v5, v10
016e34: 7140 3706 2165                         |0098: invoke-static {v1, v2, v5, v6}, Ljava/lang/Long;.remainderUnsigned:(JJ)J // method@0637
016e3a: 0b05                                   |009b: move-result-wide v5
016e3c: 845a                                   |009c: long-to-int v10, v5
016e3e: 7120 4503 2100                         |009d: invoke-static {v1, v2}, Lcom/valentinedesigns/chromalink/GameEngine;.mix:(J)J // method@0345
016e44: 0b01                                   |00a0: move-result-wide v1
016e46: 5203 2501                              |00a1: iget v3, v0, Lcom/valentinedesigns/chromalink/GameEngine$PaletteChange;.colors:I // field@0125
016e4a: 8135                                   |00a3: int-to-long v5, v3
016e4c: 7140 3706 2165                         |00a4: invoke-static {v1, v2, v5, v6}, Ljava/lang/Long;.remainderUnsigned:(JJ)J // method@0637
016e52: 0b01                                   |00a7: move-result-wide v1
016e54: 8411                                   |00a8: long-to-int v1, v1
016e56: 5202 2601                              |00a9: iget v2, v0, Lcom/valentinedesigns/chromalink/GameEngine$PaletteChange;.from:I // field@0126
016e5a: 3d02 0900                              |00ab: if-lez v2, 00b4 // +0009
016e5e: 5202 2601                              |00ad: iget v2, v0, Lcom/valentinedesigns/chromalink/GameEngine$PaletteChange;.from:I // field@0126
016e62: 332b 0500                              |00af: if-ne v11, v2, 00b4 // +0005
016e66: 520a 2501                              |00b1: iget v10, v0, Lcom/valentinedesigns/chromalink/GameEngine$PaletteChange;.colors:I // field@0125
016e6a: b14a                                   |00b3: sub-int/2addr v10, v4
016e6c: 2420 7501 1a00                         |00b4: filled-new-array {v10, v1}, [I // type@0175
016e72: 0c0a                                   |00b7: move-result-object v10
016e74: 110a                                   |00b8: return-object v10
      catches       : (none)
      positions     :
        0x0000 line=206
        0x000d line=207
        0x0025 line=208
        0x0030 line=209
        0x003f line=211
        0x004c line=212
        0x0059 line=213
        0x0063 line=214
        0x007d line=215
        0x0095 line=216
        0x009d line=217
        0x00a9 line=218
        0x00b4 line=219
      locals        :
        0x0000 - 0x00b9 reg=9 this Lcom/valentinedesigns/chromalink/GameEngine;
        0x0000 - 0x00b9 reg=10 (null) Lcom/valentinedesigns/chromalink/GameEngine$Well;
        0x0000 - 0x00b9 reg=11 (null) I

    #34              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'pieceKey'
      type          : '(Lcom/valentinedesigns/chromalink/GameEngine$Piece;)I'
      access        : 0x000a (PRIVATE STATIC)
      code          -
      registers     : 3
      ins           : 1
      outs          : 0
      insns size    : 15 16-bit code units
016c44:                                        |[016c44] com.valentinedesigns.chromalink.GameEngine.pieceKey:(Lcom/valentinedesigns/chromalink/GameEngine$Piece;)I
016c54: 5220 2b01                              |0000: iget v0, v2, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.y:I // field@012b
016c58: d800 0002                              |0002: add-int/lit8 v0, v0, #int 2 // #02
016c5c: da00 0006                              |0004: mul-int/lit8 v0, v0, #int 6 // #06
016c60: 5221 2a01                              |0006: iget v1, v2, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.x:I // field@012a
016c64: b010                                   |0008: add-int/2addr v0, v1
016c66: da00 0004                              |0009: mul-int/lit8 v0, v0, #int 4 // #04
016c6a: 5222 2901                              |000b: iget v2, v2, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.rotation:I // field@0129
016c6e: b020                                   |000d: add-int/2addr v0, v2
016c70: 0f00                                   |000e: return v0
      catches       : (none)
      positions     :
        0x0000 line=851
      locals        :
        0x0000 - 0x000f reg=2 (null) Lcom/valentinedesigns/chromalink/GameEngine$Piece;

    #35              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'planBot'
      type          : '([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;F)Lcom/valentinedesigns/chromalink/GameEngine$BotPlan;'
      access        : 0x0008 (STATIC)
      code          -
      registers     : 25
      ins           : 3
      outs          : 4
      insns size    : 313 16-bit code units
0159a0:                                        |[0159a0] com.valentinedesigns.chromalink.GameEngine.planBot:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;F)Lcom/valentinedesigns/chromalink/GameEngine$BotPlan;
0159b0: 0800 1600                              |0000: move-object/from16 v0, v22
0159b4: 7702 2b03 1600                         |0002: invoke-static/range {v22, v23}, Lcom/valentinedesigns/chromalink/GameEngine;.canPlace:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;)Z // method@032b
0159ba: 0a01                                   |0005: move-result v1
0159bc: 1202                                   |0006: const/4 v2, #int 0 // #0
0159be: 3901 0300                              |0007: if-nez v1, 000a // +0003
0159c2: 1102                                   |0009: return-object v2
0159c4: 1501 803f                              |000a: const/high16 v1, #int 1065353216 // #3f80
0159c8: 0203 1800                              |000c: move/from16 v3, v24
0159cc: 7120 4706 3100                         |000e: invoke-static {v1, v3}, Ljava/lang/Math;.min:(FF)F // method@0647
0159d2: 0a01                                   |0011: move-result v1
0159d4: 1203                                   |0012: const/4 v3, #int 0 // #0
0159d6: 7120 4306 1300                         |0013: invoke-static {v3, v1}, Ljava/lang/Math;.max:(FF)F // method@0643
0159dc: 0a01                                   |0016: move-result v1
0159de: 1303 5001                              |0017: const/16 v3, #int 336 // #150
0159e2: 2334 8301                              |0019: new-array v4, v3, [Z // type@0183
0159e6: 2333 8301                              |001b: new-array v3, v3, [Z // type@0183
0159ea: 2205 5b01                              |001d: new-instance v5, Ljava/util/ArrayDeque; // type@015b
0159ee: 7010 7e06 0500                         |001f: invoke-direct {v5}, Ljava/util/ArrayDeque;.<init>:()V // method@067e
0159f4: 2206 b600                              |0022: new-instance v6, Lcom/valentinedesigns/chromalink/GameEngine$SearchNode; // type@00b6
0159f8: 7401 fc02 1700                         |0024: invoke-virtual/range {v23}, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.copy:()Lcom/valentinedesigns/chromalink/GameEngine$Piece; // method@02fc
0159fe: 0c07                                   |0027: move-result-object v7
015a00: 7040 fe02 7622                         |0028: invoke-direct {v6, v7, v2, v2}, Lcom/valentinedesigns/chromalink/GameEngine$SearchNode;.<init>:(Lcom/valentinedesigns/chromalink/GameEngine$Piece;Lcom/valentinedesigns/chromalink/GameEngine$SearchNode;Ljava/lang/String;)V // method@02fe
015a06: 0000                                   |002b: nop // spacer
015a08: 0000                                   |002c: nop // spacer
015a0a: 1207                                   |002d: const/4 v7, #int 0 // #0
015a0c: 7120 5003 7000                         |002e: invoke-static {v0, v7}, Lcom/valentinedesigns/chromalink/GameEngine;.pressureFor:([[II)F // method@0350
015a12: 0a08                                   |0031: move-result v8
015a14: 6e20 7f06 6500                         |0032: invoke-virtual {v5, v6}, Ljava/util/ArrayDeque;.add:(Ljava/lang/Object;)Z // method@067f
015a1a: 5466 3501                              |0035: iget-object v6, v6, Lcom/valentinedesigns/chromalink/GameEngine$SearchNode;.piece:Lcom/valentinedesigns/chromalink/GameEngine$Piece; // field@0135
015a1e: 7110 4d03 0600                         |0037: invoke-static {v6}, Lcom/valentinedesigns/chromalink/GameEngine;.pieceKey:(Lcom/valentinedesigns/chromalink/GameEngine$Piece;)I // method@034d
015a24: 0a06                                   |003a: move-result v6
015a26: 1219                                   |003b: const/4 v9, #int 1 // #1
015a28: 4e09 0406                              |003c: aput-boolean v9, v4, v6
015a2c: 180a ffff ffff ffff efff               |003e: const-wide v10, #double -1.79769e+308 // #ffefffffffffffff
015a36: 0726                                   |0043: move-object v6, v2
015a38: 076c                                   |0044: move-object v12, v6
015a3a: 6e10 8206 0500                         |0045: invoke-virtual {v5}, Ljava/util/ArrayDeque;.isEmpty:()Z // method@0682
015a40: 0a0d                                   |0048: move-result v13
015a42: 390d bb00                              |0049: if-nez v13, 0104 // +00bb
015a46: 6e10 8506 0500                         |004b: invoke-virtual {v5}, Ljava/util/ArrayDeque;.removeFirst:()Ljava/lang/Object; // method@0685
015a4c: 0c0d                                   |004e: move-result-object v13
015a4e: 1f0d b600                              |004f: check-cast v13, Lcom/valentinedesigns/chromalink/GameEngine$SearchNode; // type@00b6
015a52: 54de 3501                              |0051: iget-object v14, v13, Lcom/valentinedesigns/chromalink/GameEngine$SearchNode;.piece:Lcom/valentinedesigns/chromalink/GameEngine$Piece; // field@0135
015a56: 7120 3d03 e000                         |0053: invoke-static {v0, v14}, Lcom/valentinedesigns/chromalink/GameEngine;.ghost:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;)Lcom/valentinedesigns/chromalink/GameEngine$Piece; // method@033d
015a5c: 0c0f                                   |0056: move-result-object v15
015a5e: 7110 4d03 0f00                         |0057: invoke-static {v15}, Lcom/valentinedesigns/chromalink/GameEngine;.pieceKey:(Lcom/valentinedesigns/chromalink/GameEngine$Piece;)I // method@034d
015a64: 0a10                                   |005a: move-result v16
015a66: 4711 0310                              |005b: aget-boolean v17, v3, v16
015a6a: 3911 6900                              |005d: if-nez v17, 00c6 // +0069
015a6e: 4e09 0310                              |005f: aput-boolean v9, v3, v16
015a72: 7120 4403 f000                         |0061: invoke-static {v0, v15}, Lcom/valentinedesigns/chromalink/GameEngine;.lockPiece:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;)[[I // method@0344
015a78: 0c10                                   |0064: move-result-object v16
015a7a: 3810 5d00                              |0065: if-eqz v16, 00c2 // +005d
015a7e: 7701 5303 1000                         |0067: invoke-static/range {v16}, Lcom/valentinedesigns/chromalink/GameEngine;.resolveBoard:([[I)Lcom/valentinedesigns/chromalink/GameEngine$Resolution; // method@0353
015a84: 0c02                                   |006a: move-result-object v2
015a86: 5227 3101                              |006b: iget v7, v2, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.score:I // field@0131
015a8a: 0512 0a00                              |006d: move-wide/from16 v18, v10
015a8e: 8379                                   |006f: int-to-double v9, v7
015a90: 1814 6666 6666 6666 f23f               |0070: const-wide v20, #double 1.15 // #3ff2666666666666
015a9a: 07c7                                   |0075: move-object v7, v12
015a9c: 891b                                   |0076: float-to-double v11, v1
015a9e: ad0b 0b14                              |0077: mul-double v11, v11, v20
015aa2: 1814 3333 3333 3333 eb3f               |0079: const-wide v20, #double 0.85 // #3feb333333333333
015aac: ab0b 0b14                              |007e: add-double v11, v11, v20
015ab0: cdb9                                   |0080: mul-double/2addr v9, v11
015ab2: 522b 2f01                              |0081: iget v11, v2, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.garbageCleared:I // field@012f
015ab6: 82bb                                   |0083: int-to-float v11, v11
015ab8: 150c 0041                              |0084: const/high16 v12, #int 1090519040 // #4100
015abc: c81c                                   |0086: mul-float/2addr v12, v1
015abe: 1510 4041                              |0087: const/high16 v16, #int 1094713344 // #4140
015ac2: a60c 0c10                              |0089: add-float v12, v12, v16
015ac6: c8cb                                   |008b: mul-float/2addr v11, v12
015ac8: 89bb                                   |008c: float-to-double v11, v11
015aca: cbb9                                   |008d: add-double/2addr v9, v11
015acc: 522b 3001                              |008e: iget v11, v2, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.maxChain:I // field@0130
015ad0: 121c                                   |0090: const/4 v12, #int 1 // #1
015ad2: b1cb                                   |0091: sub-int/2addr v11, v12
015ad4: 120c                                   |0092: const/4 v12, #int 0 // #0
015ad6: 7120 4406 bc00                         |0093: invoke-static {v12, v11}, Ljava/lang/Math;.max:(II)I // method@0644
015adc: 0a0b                                   |0096: move-result v11
015ade: 82bb                                   |0097: int-to-float v11, v11
015ae0: 1510 8243                              |0098: const/high16 v16, #int 1132593152 // #4382
015ae4: a810 1001                              |009a: mul-float v16, v16, v1
015ae8: 1514 b442                              |009c: const/high16 v20, #int 1119092736 // #42b4
015aec: a610 1014                              |009e: add-float v16, v16, v20
015af0: a80b 0b10                              |00a0: mul-float v11, v11, v16
015af4: 0817 0d00                              |00a2: move-object/from16 v23, v13
015af8: 89bc                                   |00a4: float-to-double v12, v11
015afa: cbc9                                   |00a5: add-double/2addr v9, v12
015afc: 5422 2c01                              |00a6: iget-object v2, v2, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.board:[[I // field@012c
015b00: 7130 3803 1208                         |00a8: invoke-static {v2, v1, v8}, Lcom/valentinedesigns/chromalink/GameEngine;.evaluateBot:([[IFF)D // method@0338
015b06: 0b0b                                   |00ab: move-result-wide v11
015b08: cbb9                                   |00ac: add-double/2addr v9, v11
015b0a: 080d 1700                              |00ad: move-object/from16 v13, v23
015b0e: 52d2 3401                              |00af: iget v2, v13, Lcom/valentinedesigns/chromalink/GameEngine$SearchNode;.depth:I // field@0134
015b12: 832b                                   |00b1: int-to-double v11, v2
015b14: 1814 7b14 ae47 e17a a43f               |00b2: const-wide v20, #double 0.04 // #3fa47ae147ae147b
015b1e: ad0b 0b14                              |00b7: mul-double v11, v11, v20
015b22: ccb9                                   |00b9: sub-double/2addr v9, v11
015b24: 2f02 0912                              |00ba: cmpl-double v2, v9, v18
015b28: 3d02 0d00                              |00bc: if-lez v2, 00c9 // +000d
015b2c: 049a                                   |00be: move-wide v10, v9
015b2e: 07d6                                   |00bf: move-object v6, v13
015b30: 07fc                                   |00c0: move-object v12, v15
015b32: 280b                                   |00c1: goto 00cc // +000b
015b34: 0512 0a00                              |00c2: move-wide/from16 v18, v10
015b38: 07c7                                   |00c4: move-object v7, v12
015b3a: 2804                                   |00c5: goto 00c9 // +0004
015b3c: 0512 0a00                              |00c6: move-wide/from16 v18, v10
015b40: 07c7                                   |00c8: move-object v7, v12
015b42: 077c                                   |00c9: move-object v12, v7
015b44: 050a 1200                              |00ca: move-wide/from16 v10, v18
015b48: 6202 5101                              |00cc: sget-object v2, Lcom/valentinedesigns/chromalink/GameEngine;.BOT_ACTIONS:[Ljava/lang/String; // field@0151
015b4c: 2127                                   |00ce: array-length v7, v2
015b4e: 1209                                   |00cf: const/4 v9, #int 0 // #0
015b50: 3579 2b00                              |00d0: if-ge v9, v7, 00fb // +002b
015b54: 460f 0209                              |00d2: aget-object v15, v2, v9
015b58: 0212 0100                              |00d4: move/from16 v18, v1
015b5c: 7130 4f03 e00f                         |00d6: invoke-static {v0, v14, v15}, Lcom/valentinedesigns/chromalink/GameEngine;.plannedStep:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;Ljava/lang/String;)Lcom/valentinedesigns/chromalink/GameEngine$Piece; // method@034f
015b62: 0c01                                   |00d9: move-result-object v1
015b64: 3801 1a00                              |00da: if-eqz v1, 00f4 // +001a
015b68: 7110 4d03 0100                         |00dc: invoke-static {v1}, Lcom/valentinedesigns/chromalink/GameEngine;.pieceKey:(Lcom/valentinedesigns/chromalink/GameEngine$Piece;)I // method@034d
015b6e: 0a13                                   |00df: move-result v19
015b70: 4713 0413                              |00e0: aget-boolean v19, v4, v19
015b74: 3913 1200                              |00e2: if-nez v19, 00f4 // +0012
015b78: 7110 4d03 0100                         |00e4: invoke-static {v1}, Lcom/valentinedesigns/chromalink/GameEngine;.pieceKey:(Lcom/valentinedesigns/chromalink/GameEngine$Piece;)I // method@034d
015b7e: 0a13                                   |00e7: move-result v19
015b80: 1314 0100                              |00e8: const/16 v20, #int 1 // #1
015b84: 4e14 0413                              |00ea: aput-boolean v20, v4, v19
015b88: 2200 b600                              |00ec: new-instance v0, Lcom/valentinedesigns/chromalink/GameEngine$SearchNode; // type@00b6
015b8c: 7040 fe02 10fd                         |00ee: invoke-direct {v0, v1, v13, v15}, Lcom/valentinedesigns/chromalink/GameEngine$SearchNode;.<init>:(Lcom/valentinedesigns/chromalink/GameEngine$Piece;Lcom/valentinedesigns/chromalink/GameEngine$SearchNode;Ljava/lang/String;)V // method@02fe
015b92: 6e20 7f06 0500                         |00f1: invoke-virtual {v5, v0}, Ljava/util/ArrayDeque;.add:(Ljava/lang/Object;)Z // method@067f
015b98: d809 0901                              |00f4: add-int/lit8 v9, v9, #int 1 // #01
015b9c: 0800 1600                              |00f6: move-object/from16 v0, v22
015ba0: 0201 1200                              |00f8: move/from16 v1, v18
015ba4: 28d6                                   |00fa: goto 00d0 // -002a
015ba6: 0212 0100                              |00fb: move/from16 v18, v1
015baa: 0800 1600                              |00fd: move-object/from16 v0, v22
015bae: 1202                                   |00ff: const/4 v2, #int 0 // #0
015bb0: 1207                                   |0100: const/4 v7, #int 0 // #0
015bb2: 1219                                   |0101: const/4 v9, #int 1 // #1
015bb4: 2900 43ff                              |0102: goto/16 0045 // -00bd
015bb8: 07c7                                   |0104: move-object v7, v12
015bba: 3906 0400                              |0105: if-nez v6, 0109 // +0004
015bbe: 1200                                   |0107: const/4 v0, #int 0 // #0
015bc0: 1100                                   |0108: return-object v0
015bc2: 5260 3401                              |0109: iget v0, v6, Lcom/valentinedesigns/chromalink/GameEngine$SearchNode;.depth:I // field@0134
015bc6: 1211                                   |010b: const/4 v1, #int 1 // #1
015bc8: b010                                   |010c: add-int/2addr v0, v1
015bca: 2302 8001                              |010d: new-array v2, v0, [Ljava/lang/String; // type@0180
015bce: 2303 7b01                              |010f: new-array v3, v0, [Lcom/valentinedesigns/chromalink/GameEngine$Piece; // type@017b
015bd2: b110                                   |0111: sub-int/2addr v0, v1
015bd4: 1a01 d406                              |0112: const-string v1, "drop" // string@06d4
015bd8: 4d01 0200                              |0114: aput-object v1, v2, v0
015bdc: 5461 3501                              |0116: iget-object v1, v6, Lcom/valentinedesigns/chromalink/GameEngine$SearchNode;.piece:Lcom/valentinedesigns/chromalink/GameEngine$Piece; // field@0135
015be0: 4d01 0300                              |0118: aput-object v1, v3, v0
015be4: 0000                                   |011a: nop // spacer
015be6: 5460 3601                              |011b: iget-object v0, v6, Lcom/valentinedesigns/chromalink/GameEngine$SearchNode;.previous:Lcom/valentinedesigns/chromalink/GameEngine$SearchNode; // field@0136
015bea: 3800 1600                              |011d: if-eqz v0, 0133 // +0016
015bee: 5260 3401                              |011f: iget v0, v6, Lcom/valentinedesigns/chromalink/GameEngine$SearchNode;.depth:I // field@0134
015bf2: 1211                                   |0121: const/4 v1, #int 1 // #1
015bf4: b110                                   |0122: sub-int/2addr v0, v1
015bf6: 5464 3301                              |0123: iget-object v4, v6, Lcom/valentinedesigns/chromalink/GameEngine$SearchNode;.action:Ljava/lang/String; // field@0133
015bfa: 4d04 0200                              |0125: aput-object v4, v2, v0
015bfe: 5260 3401                              |0127: iget v0, v6, Lcom/valentinedesigns/chromalink/GameEngine$SearchNode;.depth:I // field@0134
015c02: b110                                   |0129: sub-int/2addr v0, v1
015c04: 5464 3601                              |012a: iget-object v4, v6, Lcom/valentinedesigns/chromalink/GameEngine$SearchNode;.previous:Lcom/valentinedesigns/chromalink/GameEngine$SearchNode; // field@0136
015c08: 5444 3501                              |012c: iget-object v4, v4, Lcom/valentinedesigns/chromalink/GameEngine$SearchNode;.piece:Lcom/valentinedesigns/chromalink/GameEngine$Piece; // field@0135
015c0c: 4d04 0300                              |012e: aput-object v4, v3, v0
015c10: 5466 3601                              |0130: iget-object v6, v6, Lcom/valentinedesigns/chromalink/GameEngine$SearchNode;.previous:Lcom/valentinedesigns/chromalink/GameEngine$SearchNode; // field@0136
015c14: 28e9                                   |0132: goto 011b // -0017
015c16: 2200 ac00                              |0133: new-instance v0, Lcom/valentinedesigns/chromalink/GameEngine$BotPlan; // type@00ac
015c1a: 7040 ef02 2073                         |0135: invoke-direct {v0, v2, v3, v7}, Lcom/valentinedesigns/chromalink/GameEngine$BotPlan;.<init>:([Ljava/lang/String;[Lcom/valentinedesigns/chromalink/GameEngine$Piece;Lcom/valentinedesigns/chromalink/GameEngine$Piece;)V // method@02ef
015c20: 1100                                   |0138: return-object v0
      catches       : (none)
      positions     :
        0x0000 line=745
        0x000a line=746
        0x0017 line=747
        0x001d line=748
        0x0022 line=749
        0x002b line=750
        0x002c line=751
        0x002d line=752
        0x0032 line=753
        0x0045 line=754
        0x004b line=755
        0x0051 line=756
        0x0057 line=757
        0x005b line=758
        0x005f line=759
        0x0061 line=760
        0x0065 line=761
        0x0067 line=762
        0x006b line=763
        0x0092 line=764
        0x00a8 line=765
        0x00ba line=766
        0x00c2 line=761
        0x00c6 line=758
        0x00c9 line=769
        0x00d4 line=770
        0x00da line=771
        0x00e4 line=772
        0x00f4 line=769
        0x00fb line=775
        0x0104 line=776
        0x0109 line=777
        0x010f line=778
        0x0111 line=779
        0x011a line=780
        0x011f line=781
        0x0130 line=780
        0x0133 line=783
      locals        :
        0x0000 - 0x0139 reg=22 (null) [[I
        0x0000 - 0x0139 reg=23 (null) Lcom/valentinedesigns/chromalink/GameEngine$Piece;
        0x0000 - 0x0139 reg=24 (null) F

    #36              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'plannedStep'
      type          : '([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;Ljava/lang/String;)Lcom/valentinedesigns/chromalink/GameEngine$Piece;'
      access        : 0x000a (PRIVATE STATIC)
      code          -
      registers     : 7
      ins           : 3
      outs          : 4
      insns size    : 128 16-bit code units
015f9c:                                        |[015f9c] com.valentinedesigns.chromalink.GameEngine.plannedStep:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;Ljava/lang/String;)Lcom/valentinedesigns/chromalink/GameEngine$Piece;
015fac: 6e10 5d06 0600                         |0000: invoke-virtual {v6}, Ljava/lang/String;.hashCode:()I // method@065d
015fb2: 0a00                                   |0003: move-result v0
015fb4: 1211                                   |0004: const/4 v1, #int 1 // #1
015fb6: 1202                                   |0005: const/4 v2, #int 0 // #0
015fb8: 12f3                                   |0006: const/4 v3, #int -1 // #ff
015fba: 2c00 5500 0000                         |0007: sparse-switch v0, 0000005c // +00000055
015fc0: 2833                                   |000a: goto 003d // +0033
015fc2: 1a00 bc09                              |000b: const-string v0, "rotate-left" // string@09bc
015fc6: 6e20 5b06 0600                         |000d: invoke-virtual {v6, v0}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
015fcc: 0a06                                   |0010: move-result v6
015fce: 3806 f9ff                              |0011: if-eqz v6, 000a // -0007
015fd2: 1236                                   |0013: const/4 v6, #int 3 // #3
015fd4: 282a                                   |0014: goto 003e // +002a
015fd6: 1a00 b409                              |0015: const-string v0, "right" // string@09b4
015fda: 6e20 5b06 0600                         |0017: invoke-virtual {v6, v0}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
015fe0: 0a06                                   |001a: move-result v6
015fe2: 3806 efff                              |001b: if-eqz v6, 000a // -0011
015fe6: 0116                                   |001d: move v6, v1
015fe8: 2820                                   |001e: goto 003e // +0020
015fea: 1a00 3b08                              |001f: const-string v0, "left" // string@083b
015fee: 6e20 5b06 0600                         |0021: invoke-virtual {v6, v0}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
015ff4: 0a06                                   |0024: move-result v6
015ff6: 3806 e5ff                              |0025: if-eqz v6, 000a // -001b
015ffa: 0126                                   |0027: move v6, v2
015ffc: 2816                                   |0028: goto 003e // +0016
015ffe: 1a00 b506                              |0029: const-string v0, "down" // string@06b5
016002: 6e20 5b06 0600                         |002b: invoke-virtual {v6, v0}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
016008: 0a06                                   |002e: move-result v6
01600a: 3806 dbff                              |002f: if-eqz v6, 000a // -0025
01600e: 1246                                   |0031: const/4 v6, #int 4 // #4
016010: 280c                                   |0032: goto 003e // +000c
016012: 1a00 bb09                              |0033: const-string v0, "rotate" // string@09bb
016016: 6e20 5b06 0600                         |0035: invoke-virtual {v6, v0}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
01601c: 0a06                                   |0038: move-result v6
01601e: 3806 d1ff                              |0039: if-eqz v6, 000a // -002f
016022: 1226                                   |003b: const/4 v6, #int 2 // #2
016024: 2802                                   |003c: goto 003e // +0002
016026: 0136                                   |003d: move v6, v3
016028: 2b06 3400 0000                         |003e: packed-switch v6, 00000072 // +00000034
01602e: 1204                                   |0041: const/4 v4, #int 0 // #0
016030: 1104                                   |0042: return-object v4
016032: 7140 4603 5412                         |0043: invoke-static {v4, v5, v2, v1}, Lcom/valentinedesigns/chromalink/GameEngine;.move:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;II)Lcom/valentinedesigns/chromalink/GameEngine$Piece; // method@0346
016038: 0c04                                   |0046: move-result-object v4
01603a: 1104                                   |0047: return-object v4
01603c: 7130 5403 5403                         |0048: invoke-static {v4, v5, v3}, Lcom/valentinedesigns/chromalink/GameEngine;.rotate:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;I)Lcom/valentinedesigns/chromalink/GameEngine$Piece; // method@0354
016042: 0c04                                   |004b: move-result-object v4
016044: 1104                                   |004c: return-object v4
016046: 7130 5403 5401                         |004d: invoke-static {v4, v5, v1}, Lcom/valentinedesigns/chromalink/GameEngine;.rotate:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;I)Lcom/valentinedesigns/chromalink/GameEngine$Piece; // method@0354
01604c: 0c04                                   |0050: move-result-object v4
01604e: 1104                                   |0051: return-object v4
016050: 7140 4603 5421                         |0052: invoke-static {v4, v5, v1, v2}, Lcom/valentinedesigns/chromalink/GameEngine;.move:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;II)Lcom/valentinedesigns/chromalink/GameEngine$Piece; // method@0346
016056: 0c04                                   |0055: move-result-object v4
016058: 1104                                   |0056: return-object v4
01605a: 7140 4603 5423                         |0057: invoke-static {v4, v5, v3, v2}, Lcom/valentinedesigns/chromalink/GameEngine;.move:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;II)Lcom/valentinedesigns/chromalink/GameEngine$Piece; // method@0346
016060: 0c04                                   |005a: move-result-object v4
016062: 1104                                   |005b: return-object v4
016064: 0002 0500 5bdd dac8 a224 2f00 07a0 ... |005c: sparse-switch-data (22 units)
016090: 0001 0500 0000 0000 1900 0000 1400 ... |0072: packed-switch-data (14 units)
      catches       : (none)
      positions     :
        0x0000 line=788
        0x0041 line=794
        0x0043 line=793
        0x0048 line=792
        0x004d line=791
        0x0052 line=790
        0x0057 line=789
      locals        :
        0x0000 - 0x0080 reg=4 (null) [[I
        0x0000 - 0x0080 reg=5 (null) Lcom/valentinedesigns/chromalink/GameEngine$Piece;
        0x0000 - 0x0080 reg=6 (null) Ljava/lang/String;

    #37              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'pressureFor'
      type          : '([[II)F'
      access        : 0x0009 (PUBLIC STATIC)
      code          -
      registers     : 9
      ins           : 2
      outs          : 2
      insns size    : 85 16-bit code units
01697c:                                        |[01697c] com.valentinedesigns.chromalink.GameEngine.pressureFor:([[II)F
01698c: 0000                                   |0000: nop // spacer
01698e: 1200                                   |0001: const/4 v0, #int 0 // #0
016990: 0101                                   |0002: move v1, v0
016992: 0112                                   |0003: move v2, v1
016994: 0123                                   |0004: move v3, v2
016996: 1264                                   |0005: const/4 v4, #int 6 // #6
016998: 3541 2400                              |0006: if-ge v1, v4, 002a // +0024
01699c: 0104                                   |0008: move v4, v0
01699e: 1305 0c00                              |0009: const/16 v5, #int 12 // #c
0169a2: 3554 1c00                              |000b: if-ge v4, v5, 0027 // +001c
0169a6: 4605 0704                              |000d: aget-object v5, v7, v4
0169aa: 4405 0501                              |000f: aget v5, v5, v1
0169ae: 12e6                                   |0011: const/4 v6, #int -2 // #fe
0169b0: 3365 0500                              |0012: if-ne v5, v6, 0017 // +0005
0169b4: d804 0401                              |0014: add-int/lit8 v4, v4, #int 1 // #01
0169b8: 28f3                                   |0016: goto 0009 // -000d
0169ba: d904 040c                              |0017: rsub-int/lit8 v4, v4, #int 12 // #0c
0169be: 7120 4406 4300                         |0019: invoke-static {v3, v4}, Ljava/lang/Math;.max:(II)I // method@0644
0169c4: 0a03                                   |001c: move-result v3
0169c6: 1225                                   |001d: const/4 v5, #int 2 // #2
0169c8: 3251 0500                              |001e: if-eq v1, v5, 0023 // +0005
0169cc: 1235                                   |0020: const/4 v5, #int 3 // #3
0169ce: 3351 0600                              |0021: if-ne v1, v5, 0027 // +0006
0169d2: 7120 4406 4200                         |0023: invoke-static {v2, v4}, Ljava/lang/Math;.max:(II)I // method@0644
0169d8: 0a02                                   |0026: move-result v2
0169da: d801 0101                              |0027: add-int/lit8 v1, v1, #int 1 // #01
0169de: 28dc                                   |0029: goto 0005 // -0024
0169e0: 8227                                   |002a: int-to-float v7, v2
0169e2: 8231                                   |002b: int-to-float v1, v3
0169e4: 1502 003f                              |002c: const/high16 v2, #int 1056964608 // #3f00
0169e8: c721                                   |002e: sub-float/2addr v1, v2
0169ea: 7120 4306 1700                         |002f: invoke-static {v7, v1}, Ljava/lang/Math;.max:(FF)F // method@0643
0169f0: 0a07                                   |0032: move-result v7
0169f2: 7120 4406 8000                         |0033: invoke-static {v0, v8}, Ljava/lang/Math;.max:(II)I // method@0644
0169f8: 0a08                                   |0036: move-result v8
0169fa: 8288                                   |0037: int-to-float v8, v8
0169fc: 1500 c040                              |0038: const/high16 v0, #int 1086324736 // #40c0
016a00: c908                                   |003a: div-float/2addr v8, v0
016a02: 1501 4040                              |003b: const/high16 v1, #int 1077936128 // #4040
016a06: 7120 4706 8100                         |003d: invoke-static {v1, v8}, Ljava/lang/Math;.min:(FF)F // method@0647
016a0c: 0a08                                   |0040: move-result v8
016a0e: 1501 403f                              |0041: const/high16 v1, #int 1061158912 // #3f40
016a12: c818                                   |0043: mul-float/2addr v8, v1
016a14: c687                                   |0044: add-float/2addr v7, v8
016a16: 1508 a040                              |0045: const/high16 v8, #int 1084227584 // #40a0
016a1a: c787                                   |0047: sub-float/2addr v7, v8
016a1c: c907                                   |0048: div-float/2addr v7, v0
016a1e: 1508 803f                              |0049: const/high16 v8, #int 1065353216 // #3f80
016a22: 7120 4706 7800                         |004b: invoke-static {v8, v7}, Ljava/lang/Math;.min:(FF)F // method@0647
016a28: 0a07                                   |004e: move-result v7
016a2a: 1208                                   |004f: const/4 v8, #int 0 // #0
016a2c: 7120 4306 7800                         |0050: invoke-static {v8, v7}, Ljava/lang/Math;.max:(FF)F // method@0643
016a32: 0a07                                   |0053: move-result v7
016a34: 0f07                                   |0054: return v7
      catches       : (none)
      positions     :
        0x0000 line=691
        0x0001 line=692
        0x0008 line=693
        0x000d line=694
        0x0014 line=693
        0x0017 line=695
        0x0019 line=696
        0x001d line=697
        0x0027 line=692
        0x002a line=701
        0x0045 line=702
      locals        :
        0x0000 - 0x0055 reg=7 (null) [[I
        0x0000 - 0x0055 reg=8 (null) I

    #38              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'refreshIncoming'
      type          : '(Lcom/valentinedesigns/chromalink/GameEngine$Well;)V'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 5
      ins           : 2
      outs          : 1
      insns size    : 32 16-bit code units
0185f0:                                        |[0185f0] com.valentinedesigns.chromalink.GameEngine.refreshIncoming:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)V
018600: 1200                                   |0000: const/4 v0, #int 0 // #0
018602: 5940 4301                              |0001: iput v0, v4, Lcom/valentinedesigns/chromalink/GameEngine$Well;.incoming:I // field@0143
018606: 7110 0c03 0400                         |0003: invoke-static {v4}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetpackets:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)Ljava/util/List; // method@030c
01860c: 0c00                                   |0006: move-result-object v0
01860e: 7210 9a06 0000                         |0007: invoke-interface {v0}, Ljava/util/List;.iterator:()Ljava/util/Iterator; // method@069a
018614: 0c00                                   |000a: move-result-object v0
018616: 7210 9406 0000                         |000b: invoke-interface {v0}, Ljava/util/Iterator;.hasNext:()Z // method@0694
01861c: 0a01                                   |000e: move-result v1
01861e: 3801 1000                              |000f: if-eqz v1, 001f // +0010
018622: 7210 9506 0000                         |0011: invoke-interface {v0}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0695
018628: 0c01                                   |0014: move-result-object v1
01862a: 1f01 b200                              |0015: check-cast v1, Lcom/valentinedesigns/chromalink/GameEngine$Packet; // type@00b2
01862e: 5242 4301                              |0017: iget v2, v4, Lcom/valentinedesigns/chromalink/GameEngine$Well;.incoming:I // field@0143
018632: 5211 2301                              |0019: iget v1, v1, Lcom/valentinedesigns/chromalink/GameEngine$Packet;.count:I // field@0123
018636: b012                                   |001b: add-int/2addr v2, v1
018638: 5942 4301                              |001c: iput v2, v4, Lcom/valentinedesigns/chromalink/GameEngine$Well;.incoming:I // field@0143
01863c: 28ed                                   |001e: goto 000b // -0013
01863e: 0e00                                   |001f: return-void
      catches       : (none)
      positions     :
        0x0000 line=495
      locals        :
        0x0000 - 0x0020 reg=3 this Lcom/valentinedesigns/chromalink/GameEngine;
        0x0000 - 0x0020 reg=4 (null) Lcom/valentinedesigns/chromalink/GameEngine$Well;

    #39              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'resolveBoard'
      type          : '([[I)Lcom/valentinedesigns/chromalink/GameEngine$Resolution;'
      access        : 0x0009 (PUBLIC STATIC)
      code          -
      registers     : 18
      ins           : 1
      outs          : 8
      insns size    : 266 16-bit code units
016134:                                        |[016134] com.valentinedesigns.chromalink.GameEngine.resolveBoard:([[I)Lcom/valentinedesigns/chromalink/GameEngine$Resolution;
016144: 2200 b500                              |0000: new-instance v0, Lcom/valentinedesigns/chromalink/GameEngine$Resolution; // type@00b5
016148: 7010 fd02 0000                         |0002: invoke-direct {v0}, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.<init>:()V // method@02fd
01614e: 7701 5703 1100                         |0005: invoke-static/range {v17}, Lcom/valentinedesigns/chromalink/GameEngine;.settleBoard:([[I)[[I // method@0357
016154: 0c01                                   |0008: move-result-object v1
016156: 7110 3303 0100                         |0009: invoke-static {v1}, Lcom/valentinedesigns/chromalink/GameEngine;.copyBoard:([[I)[[I // method@0333
01615c: 0c02                                   |000c: move-result-object v2
01615e: 5b02 3201                              |000d: iput-object v2, v0, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.settledBoard:[[I // field@0132
016162: 2202 5c01                              |000f: new-instance v2, Ljava/util/ArrayList; // type@015c
016166: 7010 8706 0200                         |0011: invoke-direct {v2}, Ljava/util/ArrayList;.<init>:()V // method@0687
01616c: 7110 3a03 0100                         |0014: invoke-static {v1}, Lcom/valentinedesigns/chromalink/GameEngine;.findGroups:([[I)Ljava/util/List; // method@033a
016172: 0c03                                   |0017: move-result-object v3
016174: 7210 9a06 0300                         |0018: invoke-interface {v3}, Ljava/util/List;.iterator:()Ljava/util/Iterator; // method@069a
01617a: 0c03                                   |001b: move-result-object v3
01617c: 7210 9406 0300                         |001c: invoke-interface {v3}, Ljava/util/Iterator;.hasNext:()Z // method@0694
016182: 0a04                                   |001f: move-result v4
016184: 3804 1300                              |0020: if-eqz v4, 0033 // +0013
016188: 7210 9506 0300                         |0022: invoke-interface {v3}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0695
01618e: 0c04                                   |0025: move-result-object v4
016190: 1f04 6201                              |0026: check-cast v4, Ljava/util/List; // type@0162
016194: 7210 9c06 0400                         |0028: invoke-interface {v4}, Ljava/util/List;.size:()I // method@069c
01619a: 0a05                                   |002b: move-result v5
01619c: 1246                                   |002c: const/4 v6, #int 4 // #4
01619e: 3465 efff                              |002d: if-lt v5, v6, 001c // -0011
0161a2: 7220 9706 4200                         |002f: invoke-interface {v2, v4}, Ljava/util/List;.addAll:(Ljava/util/Collection;)Z // method@0697
0161a8: 28ea                                   |0032: goto 001c // -0016
0161aa: 7210 9906 0200                         |0033: invoke-interface {v2}, Ljava/util/List;.isEmpty:()Z // method@0699
0161b0: 0a03                                   |0036: move-result v3
0161b2: 3803 0d00                              |0037: if-eqz v3, 0044 // +000d
0161b6: 5b01 2c01                              |0039: iput-object v1, v0, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.board:[[I // field@012c
0161ba: 5401 2e01                              |003b: iget-object v1, v0, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.frames:Ljava/util/List; // field@012e
0161be: 7210 9c06 0100                         |003d: invoke-interface {v1}, Ljava/util/List;.size:()I // method@069c
0161c4: 0a01                                   |0040: move-result v1
0161c6: 5901 3001                              |0041: iput v1, v0, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.maxChain:I // field@0130
0161ca: 1100                                   |0043: return-object v0
0161cc: 2206 5c01                              |0044: new-instance v6, Ljava/util/ArrayList; // type@015c
0161d0: 7020 8906 2600                         |0046: invoke-direct {v6, v2}, Ljava/util/ArrayList;.<init>:(Ljava/util/Collection;)V // method@0689
0161d6: 1223                                   |0049: const/4 v3, #int 2 // #2
0161d8: 2333 7501                              |004a: new-array v3, v3, [I // type@0175
0161dc: 1214                                   |004c: const/4 v4, #int 1 // #1
0161de: 1265                                   |004d: const/4 v5, #int 6 // #6
0161e0: 4b05 0304                              |004e: aput v5, v3, v4
0161e4: 1207                                   |0050: const/4 v7, #int 0 // #0
0161e6: 1308 0c00                              |0051: const/16 v8, #int 12 // #c
0161ea: 4b08 0307                              |0053: aput v8, v3, v7
0161ee: 6209 1d03                              |0055: sget-object v9, Ljava/lang/Boolean;.TYPE:Ljava/lang/Class; // field@031d
0161f2: 7120 7306 3900                         |0057: invoke-static {v9, v3}, Ljava/lang/reflect/Array;.newInstance:(Ljava/lang/Class;[I)Ljava/lang/Object; // method@0673
0161f8: 0c03                                   |005a: move-result-object v3
0161fa: 1f03 8601                              |005b: check-cast v3, [[Z // type@0186
0161fe: 7210 9a06 0200                         |005d: invoke-interface {v2}, Ljava/util/List;.iterator:()Ljava/util/Iterator; // method@069a
016204: 0c09                                   |0060: move-result-object v9
016206: 7210 9406 0900                         |0061: invoke-interface {v9}, Ljava/util/Iterator;.hasNext:()Z // method@0694
01620c: 0a0a                                   |0064: move-result v10
01620e: 380a 4400                              |0065: if-eqz v10, 00a9 // +0044
016212: 7210 9506 0900                         |0067: invoke-interface {v9}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0695
016218: 0c0a                                   |006a: move-result-object v10
01621a: 1f0a ad00                              |006b: check-cast v10, Lcom/valentinedesigns/chromalink/GameEngine$Cell; // type@00ad
01621e: 620b 5d01                              |006d: sget-object v11, Lcom/valentinedesigns/chromalink/GameEngine;.NEIGHBORS:[[I // field@015d
016222: 21bc                                   |006f: array-length v12, v11
016224: 017d                                   |0070: move v13, v7
016226: 35cd 3500                              |0071: if-ge v13, v12, 00a6 // +0035
01622a: 460e 0b0d                              |0073: aget-object v14, v11, v13
01622e: 52af 0f01                              |0075: iget v15, v10, Lcom/valentinedesigns/chromalink/GameEngine$Cell;.x:I // field@010f
016232: 4410 0e07                              |0077: aget v16, v14, v7
016236: 900f 0f10                              |0079: add-int v15, v15, v16
01623a: 52a7 1001                              |007b: iget v7, v10, Lcom/valentinedesigns/chromalink/GameEngine$Cell;.y:I // field@0110
01623e: 440e 0e04                              |007d: aget v14, v14, v4
016242: b0e7                                   |007f: add-int/2addr v7, v14
016244: 3a0f 2100                              |0080: if-ltz v15, 00a1 // +0021
016248: 355f 1f00                              |0082: if-ge v15, v5, 00a1 // +001f
01624c: 3a07 1d00                              |0084: if-ltz v7, 00a1 // +001d
016250: 3587 1b00                              |0086: if-ge v7, v8, 00a1 // +001b
016254: 460e 0107                              |0088: aget-object v14, v1, v7
016258: 440e 0e0f                              |008a: aget v14, v14, v15
01625c: 12f5                                   |008c: const/4 v5, #int -1 // #ff
01625e: 335e 1400                              |008d: if-ne v14, v5, 00a1 // +0014
016262: 460e 0307                              |008f: aget-object v14, v3, v7
016266: 470e 0e0f                              |0091: aget-boolean v14, v14, v15
01626a: 390e 0e00                              |0093: if-nez v14, 00a1 // +000e
01626e: 460e 0307                              |0095: aget-object v14, v3, v7
016272: 4e04 0e0f                              |0097: aput-boolean v4, v14, v15
016276: 220e ad00                              |0099: new-instance v14, Lcom/valentinedesigns/chromalink/GameEngine$Cell; // type@00ad
01627a: 7040 f002 fe57                         |009b: invoke-direct {v14, v15, v7, v5}, Lcom/valentinedesigns/chromalink/GameEngine$Cell;.<init>:(III)V // method@02f0
016280: 7220 9606 e600                         |009e: invoke-interface {v6, v14}, Ljava/util/List;.add:(Ljava/lang/Object;)Z // method@0696
016286: d80d 0d01                              |00a1: add-int/lit8 v13, v13, #int 1 // #01
01628a: 1265                                   |00a3: const/4 v5, #int 6 // #6
01628c: 1207                                   |00a4: const/4 v7, #int 0 // #0
01628e: 28cc                                   |00a5: goto 0071 // -0034
016290: 1265                                   |00a6: const/4 v5, #int 6 // #6
016292: 1207                                   |00a7: const/4 v7, #int 0 // #0
016294: 28b9                                   |00a8: goto 0061 // -0047
016296: 7110 3303 0100                         |00a9: invoke-static {v1}, Lcom/valentinedesigns/chromalink/GameEngine;.copyBoard:([[I)[[I // method@0333
01629c: 0c05                                   |00ac: move-result-object v5
01629e: 7210 9a06 0600                         |00ad: invoke-interface {v6}, Ljava/util/List;.iterator:()Ljava/util/Iterator; // method@069a
0162a4: 0c03                                   |00b0: move-result-object v3
0162a6: 7210 9406 0300                         |00b1: invoke-interface {v3}, Ljava/util/Iterator;.hasNext:()Z // method@0694
0162ac: 0a07                                   |00b4: move-result v7
0162ae: 3807 1200                              |00b5: if-eqz v7, 00c7 // +0012
0162b2: 7210 9506 0300                         |00b7: invoke-interface {v3}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0695
0162b8: 0c07                                   |00ba: move-result-object v7
0162ba: 1f07 ad00                              |00bb: check-cast v7, Lcom/valentinedesigns/chromalink/GameEngine$Cell; // type@00ad
0162be: 5278 1001                              |00bd: iget v8, v7, Lcom/valentinedesigns/chromalink/GameEngine$Cell;.y:I // field@0110
0162c2: 4608 0508                              |00bf: aget-object v8, v5, v8
0162c6: 5277 0f01                              |00c1: iget v7, v7, Lcom/valentinedesigns/chromalink/GameEngine$Cell;.x:I // field@010f
0162ca: 12e9                                   |00c3: const/4 v9, #int -2 // #fe
0162cc: 4b09 0807                              |00c4: aput v9, v8, v7
0162d0: 28eb                                   |00c6: goto 00b1 // -0015
0162d2: 7110 5703 0500                         |00c7: invoke-static {v5}, Lcom/valentinedesigns/chromalink/GameEngine;.settleBoard:([[I)[[I // method@0357
0162d8: 0c0a                                   |00ca: move-result-object v10
0162da: 220b ae00                              |00cb: new-instance v11, Lcom/valentinedesigns/chromalink/GameEngine$Frame; // type@00ae
0162de: 7110 3303 0100                         |00cd: invoke-static {v1}, Lcom/valentinedesigns/chromalink/GameEngine;.copyBoard:([[I)[[I // method@0333
0162e4: 0c03                                   |00d0: move-result-object v3
0162e6: 7210 9c06 0200                         |00d1: invoke-interface {v2}, Ljava/util/List;.size:()I // method@069c
0162ec: 0a07                                   |00d4: move-result v7
0162ee: 7210 9c06 0600                         |00d5: invoke-interface {v6}, Ljava/util/List;.size:()I // method@069c
0162f4: 0a01                                   |00d8: move-result v1
0162f6: 7210 9c06 0200                         |00d9: invoke-interface {v2}, Ljava/util/List;.size:()I // method@069c
0162fc: 0a02                                   |00dc: move-result v2
0162fe: 9108 0102                              |00dd: sub-int v8, v1, v2
016302: 5401 2e01                              |00df: iget-object v1, v0, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.frames:Ljava/util/List; // field@012e
016306: 7210 9c06 0100                         |00e1: invoke-interface {v1}, Ljava/util/List;.size:()I // method@069c
01630c: 0a01                                   |00e4: move-result v1
01630e: d809 0101                              |00e5: add-int/lit8 v9, v1, #int 1 // #01
016312: 07b2                                   |00e7: move-object v2, v11
016314: 0754                                   |00e8: move-object v4, v5
016316: 07a5                                   |00e9: move-object v5, v10
016318: 7608 f102 0200                         |00ea: invoke-direct/range {v2, v3, v4, v5, v6, v7, v8, v9}, Lcom/valentinedesigns/chromalink/GameEngine$Frame;.<init>:([[I[[I[[ILjava/util/List;III)V // method@02f1
01631e: 5401 2e01                              |00ed: iget-object v1, v0, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.frames:Ljava/util/List; // field@012e
016322: 7220 9606 b100                         |00ef: invoke-interface {v1, v11}, Ljava/util/List;.add:(Ljava/lang/Object;)Z // method@0696
016328: 5201 3101                              |00f2: iget v1, v0, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.score:I // field@0131
01632c: 52b2 1801                              |00f4: iget v2, v11, Lcom/valentinedesigns/chromalink/GameEngine$Frame;.points:I // field@0118
016330: b021                                   |00f6: add-int/2addr v1, v2
016332: 5901 3101                              |00f7: iput v1, v0, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.score:I // field@0131
016336: 5201 2d01                              |00f9: iget v1, v0, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.cleared:I // field@012d
01633a: 52b2 1601                              |00fb: iget v2, v11, Lcom/valentinedesigns/chromalink/GameEngine$Frame;.colored:I // field@0116
01633e: b021                                   |00fd: add-int/2addr v1, v2
016340: 5901 2d01                              |00fe: iput v1, v0, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.cleared:I // field@012d
016344: 5201 2f01                              |0100: iget v1, v0, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.garbageCleared:I // field@012f
016348: 52b2 1701                              |0102: iget v2, v11, Lcom/valentinedesigns/chromalink/GameEngine$Frame;.garbage:I // field@0117
01634c: b021                                   |0104: add-int/2addr v1, v2
01634e: 5901 2f01                              |0105: iput v1, v0, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.garbageCleared:I // field@012f
016352: 07a1                                   |0107: move-object v1, v10
016354: 2900 07ff                              |0108: goto/16 000f // -00f9
      catches       : (none)
      positions     :
        0x0000 line=636
        0x0005 line=637
        0x000f line=639
        0x0014 line=640
        0x0033 line=641
        0x0039 line=657
        0x0043 line=658
        0x0044 line=642
        0x0049 line=643
        0x005d line=644
        0x0075 line=645
        0x0080 line=646
        0x0095 line=647
        0x00a1 line=644
        0x00a9 line=650
        0x00ad line=651
        0x00c7 line=652
        0x00cb line=653
        0x00ed line=654
        0x0100 line=655
        0x0107 line=656
      locals        :
        0x0000 - 0x010a reg=17 (null) [[I

    #40              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'rotate'
      type          : '([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;I)Lcom/valentinedesigns/chromalink/GameEngine$Piece;'
      access        : 0x0009 (PUBLIC STATIC)
      code          -
      registers     : 12
      ins           : 3
      outs          : 6
      insns size    : 60 16-bit code units
0160ac:                                        |[0160ac] com.valentinedesigns.chromalink.GameEngine.rotate:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;I)Lcom/valentinedesigns/chromalink/GameEngine$Piece;
0160bc: 1200                                   |0000: const/4 v0, #int 0 // #0
0160be: 390a 0300                              |0001: if-nez v10, 0004 // +0003
0160c2: 1100                                   |0003: return-object v0
0160c4: 52a1 2901                              |0004: iget v1, v10, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.rotation:I // field@0129
0160c8: 1212                                   |0006: const/4 v2, #int 1 // #1
0160ca: 3b0b 0400                              |0007: if-gez v11, 000b // +0004
0160ce: 123b                                   |0009: const/4 v11, #int 3 // #3
0160d0: 2802                                   |000a: goto 000c // +0002
0160d2: 012b                                   |000b: move v11, v2
0160d4: b0b1                                   |000c: add-int/2addr v1, v11
0160d6: 124b                                   |000d: const/4 v11, #int 4 // #4
0160d8: 7120 4006 b100                         |000e: invoke-static {v1, v11}, Ljava/lang/Math;.floorMod:(II)I // method@0640
0160de: 0a06                                   |0011: move-result v6
0160e0: 620b 5a01                              |0012: sget-object v11, Lcom/valentinedesigns/chromalink/GameEngine;.KICKS:[[I // field@015a
0160e4: 21b1                                   |0014: array-length v1, v11
0160e6: 1203                                   |0015: const/4 v3, #int 0 // #0
0160e8: 0134                                   |0016: move v4, v3
0160ea: 3514 2400                              |0017: if-ge v4, v1, 003b // +0024
0160ee: 4605 0b04                              |0019: aget-object v5, v11, v4
0160f2: 52a7 2a01                              |001b: iget v7, v10, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.x:I // field@012a
0160f6: 4408 0503                              |001d: aget v8, v5, v3
0160fa: b087                                   |001f: add-int/2addr v7, v8
0160fc: 52a8 2b01                              |0020: iget v8, v10, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.y:I // field@012b
016100: 4405 0502                              |0022: aget v5, v5, v2
016104: b085                                   |0024: add-int/2addr v5, v8
016106: 7140 2c03 7965                         |0025: invoke-static {v9, v7, v5, v6}, Lcom/valentinedesigns/chromalink/GameEngine;.canPlaceAt:([[IIII)Z // method@032c
01610c: 0a08                                   |0028: move-result v8
01610e: 3808 0f00                              |0029: if-eqz v8, 0038 // +000f
016112: 2209 b400                              |002b: new-instance v9, Lcom/valentinedesigns/chromalink/GameEngine$Piece; // type@00b4
016116: 52ab 2701                              |002d: iget v11, v10, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.a:I // field@0127
01611a: 52a8 2801                              |002f: iget v8, v10, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.b:I // field@0128
01611e: 0793                                   |0031: move-object v3, v9
016120: 0174                                   |0032: move v4, v7
016122: 01b7                                   |0033: move v7, v11
016124: 7606 fb02 0300                         |0034: invoke-direct/range {v3, v4, v5, v6, v7, v8}, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.<init>:(IIIII)V // method@02fb
01612a: 1109                                   |0037: return-object v9
01612c: d804 0401                              |0038: add-int/lit8 v4, v4, #int 1 // #01
016130: 28dd                                   |003a: goto 0017 // -0023
016132: 1100                                   |003b: return-object v0
      catches       : (none)
      positions     :
        0x0000 line=578
        0x0004 line=579
        0x0012 line=580
        0x001b line=581
        0x0025 line=582
        0x0038 line=580
        0x003b line=584
      locals        :
        0x0000 - 0x003c reg=9 (null) [[I
        0x0000 - 0x003c reg=10 (null) Lcom/valentinedesigns/chromalink/GameEngine$Piece;
        0x0000 - 0x003c reg=11 (null) I

    #41              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'samePose'
      type          : '(Lcom/valentinedesigns/chromalink/GameEngine$Piece;Lcom/valentinedesigns/chromalink/GameEngine$Piece;)Z'
      access        : 0x000a (PRIVATE STATIC)
      code          -
      registers     : 4
      ins           : 2
      outs          : 0
      insns size    : 38 16-bit code units
015918:                                        |[015918] com.valentinedesigns.chromalink.GameEngine.samePose:(Lcom/valentinedesigns/chromalink/GameEngine$Piece;Lcom/valentinedesigns/chromalink/GameEngine$Piece;)Z
015928: 3802 2400                              |0000: if-eqz v2, 0024 // +0024
01592c: 3803 2200                              |0002: if-eqz v3, 0024 // +0022
015930: 5220 2a01                              |0004: iget v0, v2, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.x:I // field@012a
015934: 5231 2a01                              |0006: iget v1, v3, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.x:I // field@012a
015938: 3310 1c00                              |0008: if-ne v0, v1, 0024 // +001c
01593c: 5220 2b01                              |000a: iget v0, v2, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.y:I // field@012b
015940: 5231 2b01                              |000c: iget v1, v3, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.y:I // field@012b
015944: 3310 1600                              |000e: if-ne v0, v1, 0024 // +0016
015948: 5220 2901                              |0010: iget v0, v2, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.rotation:I // field@0129
01594c: 5231 2901                              |0012: iget v1, v3, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.rotation:I // field@0129
015950: 3310 1000                              |0014: if-ne v0, v1, 0024 // +0010
015954: 5220 2701                              |0016: iget v0, v2, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.a:I // field@0127
015958: 5231 2701                              |0018: iget v1, v3, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.a:I // field@0127
01595c: 3310 0a00                              |001a: if-ne v0, v1, 0024 // +000a
015960: 5222 2801                              |001c: iget v2, v2, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.b:I // field@0128
015964: 5233 2801                              |001e: iget v3, v3, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.b:I // field@0128
015968: 3332 0400                              |0020: if-ne v2, v3, 0024 // +0004
01596c: 1212                                   |0022: const/4 v2, #int 1 // #1
01596e: 2802                                   |0023: goto 0025 // +0002
015970: 1202                                   |0024: const/4 v2, #int 0 // #0
015972: 0f02                                   |0025: return v2
      catches       : (none)
      positions     :
        0x0000 line=379
      locals        :
        0x0000 - 0x0026 reg=2 (null) Lcom/valentinedesigns/chromalink/GameEngine$Piece;
        0x0000 - 0x0026 reg=3 (null) Lcom/valentinedesigns/chromalink/GameEngine$Piece;

    #42              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'settleBoard'
      type          : '([[I)[[I'
      access        : 0x0009 (PUBLIC STATIC)
      code          -
      registers     : 7
      ins           : 1
      outs          : 0
      insns size    : 39 16-bit code units
016f90:                                        |[016f90] com.valentinedesigns.chromalink.GameEngine.settleBoard:([[I)[[I
016fa0: 7100 3603 0000                         |0000: invoke-static {}, Lcom/valentinedesigns/chromalink/GameEngine;.emptyBoard:()[[I // method@0336
016fa6: 0c00                                   |0003: move-result-object v0
016fa8: 1201                                   |0004: const/4 v1, #int 0 // #0
016faa: 1262                                   |0005: const/4 v2, #int 6 // #6
016fac: 3521 2000                              |0006: if-ge v1, v2, 0026 // +0020
016fb0: 0000                                   |0008: nop // spacer
016fb2: 1302 0b00                              |0009: const/16 v2, #int 11 // #b
016fb6: 0123                                   |000b: move v3, v2
016fb8: 3a02 1700                              |000c: if-ltz v2, 0023 // +0017
016fbc: 4604 0602                              |000e: aget-object v4, v6, v2
016fc0: 4404 0401                              |0010: aget v4, v4, v1
016fc4: 12e5                                   |0012: const/4 v5, #int -2 // #fe
016fc6: 3254 0d00                              |0013: if-eq v4, v5, 0020 // +000d
016fca: d804 03ff                              |0015: add-int/lit8 v4, v3, #int -1 // #ff
016fce: 4603 0003                              |0017: aget-object v3, v0, v3
016fd2: 4605 0602                              |0019: aget-object v5, v6, v2
016fd6: 4405 0501                              |001b: aget v5, v5, v1
016fda: 4b05 0301                              |001d: aput v5, v3, v1
016fde: 0143                                   |001f: move v3, v4
016fe0: d802 02ff                              |0020: add-int/lit8 v2, v2, #int -1 // #ff
016fe4: 28ea                                   |0022: goto 000c // -0016
016fe6: d801 0101                              |0023: add-int/lit8 v1, v1, #int 1 // #01
016fea: 28e0                                   |0025: goto 0005 // -0020
016fec: 1100                                   |0026: return-object v0
      catches       : (none)
      positions     :
        0x0000 line=607
        0x0004 line=608
        0x0008 line=609
        0x0009 line=610
        0x0023 line=608
        0x0026 line=612
      locals        :
        0x0000 - 0x0027 reg=6 (null) [[I

    #43              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'spawn'
      type          : '(Lcom/valentinedesigns/chromalink/GameEngine$Well;)V'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 12
      ins           : 2
      outs          : 6
      insns size    : 91 16-bit code units
018640:                                        |[018640] com.valentinedesigns.chromalink.GameEngine.spawn:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)V
018650: 7110 0b03 0b00                         |0000: invoke-static {v11}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetindex:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)I // method@030b
018656: 0a00                                   |0003: move-result v0
018658: d801 0001                              |0004: add-int/lit8 v1, v0, #int 1 // #01
01865c: 7120 1603 1b00                         |0006: invoke-static {v11, v1}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fputindex:(Lcom/valentinedesigns/chromalink/GameEngine$Well;I)V // method@0316
018662: 7030 4c03 ba00                         |0009: invoke-direct {v10, v11, v0}, Lcom/valentinedesigns/chromalink/GameEngine;.pairAt:(Lcom/valentinedesigns/chromalink/GameEngine$Well;I)[I // method@034c
018668: 0c00                                   |000c: move-result-object v0
01866a: 2207 b400                              |000d: new-instance v7, Lcom/valentinedesigns/chromalink/GameEngine$Piece; // type@00b4
01866e: 1208                                   |000f: const/4 v8, #int 0 // #0
018670: 4405 0008                              |0010: aget v5, v0, v8
018674: 1219                                   |0012: const/4 v9, #int 1 // #1
018676: 4406 0009                              |0013: aget v6, v0, v9
01867a: 1222                                   |0015: const/4 v2, #int 2 // #2
01867c: 1203                                   |0016: const/4 v3, #int 0 // #0
01867e: 1204                                   |0017: const/4 v4, #int 0 // #0
018680: 0771                                   |0018: move-object v1, v7
018682: 7606 fb02 0100                         |0019: invoke-direct/range {v1, v2, v3, v4, v5, v6}, Lcom/valentinedesigns/chromalink/GameEngine$Piece;.<init>:(IIIII)V // method@02fb
018688: 5bb7 4c01                              |001c: iput-object v7, v11, Lcom/valentinedesigns/chromalink/GameEngine$Well;.piece:Lcom/valentinedesigns/chromalink/GameEngine$Piece; // field@014c
01868c: 1a00 a905                              |001e: const-string v0, "active" // string@05a9
018690: 5bb0 4a01                              |0020: iput-object v0, v11, Lcom/valentinedesigns/chromalink/GameEngine$Well;.phase:Ljava/lang/String; // field@014a
018694: 1200                                   |0022: const/4 v0, #int 0 // #0
018696: 7120 1003 0b00                         |0023: invoke-static {v11, v0}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fputaiMs:(Lcom/valentinedesigns/chromalink/GameEngine$Well;F)V // method@0310
01869c: 7120 1303 0b00                         |0026: invoke-static {v11, v0}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fputfallMs:(Lcom/valentinedesigns/chromalink/GameEngine$Well;F)V // method@0313
0186a2: 59b0 4b01                              |0029: iput v0, v11, Lcom/valentinedesigns/chromalink/GameEngine$Well;.phaseMs:F // field@014b
0186a6: 2200 5c01                              |002b: new-instance v0, Ljava/util/ArrayList; // type@015c
0186aa: 7010 8706 0000                         |002d: invoke-direct {v0}, Ljava/util/ArrayList;.<init>:()V // method@0687
0186b0: 5bb0 3f01                              |0030: iput-object v0, v11, Lcom/valentinedesigns/chromalink/GameEngine$Well;.flashing:Ljava/util/List; // field@013f
0186b4: 59b8 4501                              |0032: iput v8, v11, Lcom/valentinedesigns/chromalink/GameEngine$Well;.lastChain:I // field@0145
0186b8: 7120 1103 8b00                         |0034: invoke-static {v11, v8}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fputaiStarted:(Lcom/valentinedesigns/chromalink/GameEngine$Well;Z)V // method@0311
0186be: 7120 1203 8b00                         |0037: invoke-static {v11, v8}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fputaiStep:(Lcom/valentinedesigns/chromalink/GameEngine$Well;I)V // method@0312
0186c4: 1200                                   |003a: const/4 v0, #int 0 // #0
0186c6: 7120 1703 0b00                         |003b: invoke-static {v11, v0}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fputplan:(Lcom/valentinedesigns/chromalink/GameEngine$Well;Lcom/valentinedesigns/chromalink/GameEngine$BotPlan;)V // method@0317
0186cc: 54b0 3b01                              |003e: iget-object v0, v11, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
0186d0: 54b1 4c01                              |0040: iget-object v1, v11, Lcom/valentinedesigns/chromalink/GameEngine$Well;.piece:Lcom/valentinedesigns/chromalink/GameEngine$Piece; // field@014c
0186d4: 7120 2b03 1000                         |0042: invoke-static {v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine;.canPlace:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;)Z // method@032b
0186da: 0a00                                   |0045: move-result v0
0186dc: 3900 1400                              |0046: if-nez v0, 005a // +0014
0186e0: 54a0 6e01                              |0048: iget-object v0, v10, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
0186e4: 320b 0300                              |004a: if-eq v11, v0, 004d // +0003
0186e8: 0198                                   |004c: move v8, v9
0186ea: 54a0 6e01                              |004d: iget-object v0, v10, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
0186ee: 330b 0500                              |004f: if-ne v11, v0, 0054 // +0005
0186f2: 1a0b 6a05                              |0051: const-string v11, "Your stack reached the top." // string@056a
0186f6: 2803                                   |0053: goto 0056 // +0003
0186f8: 1a0b bb01                              |0054: const-string v11, "I.N.K. topped out. You take the round!" // string@01bb
0186fc: 7030 3b03 8a0b                         |0056: invoke-direct {v10, v8, v11}, Lcom/valentinedesigns/chromalink/GameEngine;.finish:(ZLjava/lang/String;)V // method@033b
018702: 0e00                                   |0059: return-void
018704: 0e00                                   |005a: return-void
      catches       : (none)
      positions     :
        0x0000 line=222
        0x000d line=223
        0x001e line=224
        0x002b line=225
        0x003e line=226
        0x0048 line=227
        0x0059 line=228
        0x005a line=230
      locals        :
        0x0000 - 0x005b reg=10 this Lcom/valentinedesigns/chromalink/GameEngine;
        0x0000 - 0x005b reg=11 (null) Lcom/valentinedesigns/chromalink/GameEngine$Well;

    #44              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'stepDown'
      type          : '(Lcom/valentinedesigns/chromalink/GameEngine$Well;)V'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 6
      ins           : 2
      outs          : 4
      insns size    : 19 16-bit code units
018708:                                        |[018708] com.valentinedesigns.chromalink.GameEngine.stepDown:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)V
018718: 5450 3b01                              |0000: iget-object v0, v5, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
01871c: 5451 4c01                              |0002: iget-object v1, v5, Lcom/valentinedesigns/chromalink/GameEngine$Well;.piece:Lcom/valentinedesigns/chromalink/GameEngine$Piece; // field@014c
018720: 1202                                   |0004: const/4 v2, #int 0 // #0
018722: 1213                                   |0005: const/4 v3, #int 1 // #1
018724: 7140 4603 1032                         |0006: invoke-static {v0, v1, v2, v3}, Lcom/valentinedesigns/chromalink/GameEngine;.move:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;II)Lcom/valentinedesigns/chromalink/GameEngine$Piece; // method@0346
01872a: 0c00                                   |0009: move-result-object v0
01872c: 3900 0600                              |000a: if-nez v0, 0010 // +0006
018730: 7020 4303 5400                         |000c: invoke-direct {v4, v5}, Lcom/valentinedesigns/chromalink/GameEngine;.lock:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)V // method@0343
018736: 2803                                   |000f: goto 0012 // +0003
018738: 5b50 4c01                              |0010: iput-object v0, v5, Lcom/valentinedesigns/chromalink/GameEngine$Well;.piece:Lcom/valentinedesigns/chromalink/GameEngine$Piece; // field@014c
01873c: 0e00                                   |0012: return-void
      catches       : (none)
      positions     :
        0x0000 line=408
        0x000a line=409
        0x0012 line=410
      locals        :
        0x0000 - 0x0013 reg=4 this Lcom/valentinedesigns/chromalink/GameEngine;
        0x0000 - 0x0013 reg=5 (null) Lcom/valentinedesigns/chromalink/GameEngine$Well;

    #45              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'updateBot'
      type          : '(Lcom/valentinedesigns/chromalink/GameEngine$Well;F)V'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 5
      ins           : 3
      outs          : 3
      insns size    : 132 16-bit code units
018884:                                        |[018884] com.valentinedesigns.chromalink.GameEngine.updateBot:(Lcom/valentinedesigns/chromalink/GameEngine$Well;F)V
018894: 7110 0503 0300                         |0000: invoke-static {v3}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetaiMs:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)F // method@0305
01889a: 0a00                                   |0003: move-result v0
01889c: c640                                   |0004: add-float/2addr v0, v4
01889e: 7120 1003 0300                         |0005: invoke-static {v3, v0}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fputaiMs:(Lcom/valentinedesigns/chromalink/GameEngine$Well;F)V // method@0310
0188a4: 7110 0603 0300                         |0008: invoke-static {v3}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetaiStarted:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)Z // method@0306
0188aa: 0a04                                   |000b: move-result v4
0188ac: 3804 0700                              |000c: if-eqz v4, 0013 // +0007
0188b0: 6e10 2503 0200                         |000e: invoke-virtual {v2}, Lcom/valentinedesigns/chromalink/GameEngine;.botInputIntervalMs:()F // method@0325
0188b6: 0a04                                   |0011: move-result v4
0188b8: 2805                                   |0012: goto 0017 // +0005
0188ba: 6e10 2703 0200                         |0013: invoke-virtual {v2}, Lcom/valentinedesigns/chromalink/GameEngine;.botThinkDelayMs:()F // method@0327
0188c0: 0a04                                   |0016: move-result v4
0188c2: 7110 0503 0300                         |0017: invoke-static {v3}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetaiMs:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)F // method@0305
0188c8: 0a00                                   |001a: move-result v0
0188ca: 2e00 0004                              |001b: cmpg-float v0, v0, v4
0188ce: 3b00 0300                              |001d: if-gez v0, 0020 // +0003
0188d2: 0e00                                   |001f: return-void
0188d4: 7110 0503 0300                         |0020: invoke-static {v3}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetaiMs:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)F // method@0305
0188da: 0a00                                   |0023: move-result v0
0188dc: c740                                   |0024: sub-float/2addr v0, v4
0188de: 7120 1003 0300                         |0025: invoke-static {v3, v0}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fputaiMs:(Lcom/valentinedesigns/chromalink/GameEngine$Well;F)V // method@0310
0188e4: 1214                                   |0028: const/4 v4, #int 1 // #1
0188e6: 7120 1103 4300                         |0029: invoke-static {v3, v4}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fputaiStarted:(Lcom/valentinedesigns/chromalink/GameEngine$Well;Z)V // method@0311
0188ec: 7110 0e03 0300                         |002c: invoke-static {v3}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetplan:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)Lcom/valentinedesigns/chromalink/GameEngine$BotPlan; // method@030e
0188f2: 0c04                                   |002f: move-result-object v4
0188f4: 3804 2300                              |0030: if-eqz v4, 0053 // +0023
0188f8: 7110 0703 0300                         |0032: invoke-static {v3}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetaiStep:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)I // method@0307
0188fe: 0a04                                   |0035: move-result v4
018900: 7110 0e03 0300                         |0036: invoke-static {v3}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetplan:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)Lcom/valentinedesigns/chromalink/GameEngine$BotPlan; // method@030e
018906: 0c00                                   |0039: move-result-object v0
018908: 5400 0b01                              |003a: iget-object v0, v0, Lcom/valentinedesigns/chromalink/GameEngine$BotPlan;.actions:[Ljava/lang/String; // field@010b
01890c: 2100                                   |003c: array-length v0, v0
01890e: 3504 1600                              |003d: if-ge v4, v0, 0053 // +0016
018912: 5434 4c01                              |003f: iget-object v4, v3, Lcom/valentinedesigns/chromalink/GameEngine$Well;.piece:Lcom/valentinedesigns/chromalink/GameEngine$Piece; // field@014c
018916: 7110 0e03 0300                         |0041: invoke-static {v3}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetplan:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)Lcom/valentinedesigns/chromalink/GameEngine$BotPlan; // method@030e
01891c: 0c00                                   |0044: move-result-object v0
01891e: 5400 0c01                              |0045: iget-object v0, v0, Lcom/valentinedesigns/chromalink/GameEngine$BotPlan;.expected:[Lcom/valentinedesigns/chromalink/GameEngine$Piece; // field@010c
018922: 7110 0703 0300                         |0047: invoke-static {v3}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetaiStep:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)I // method@0307
018928: 0a01                                   |004a: move-result v1
01892a: 4600 0001                              |004b: aget-object v0, v0, v1
01892e: 7120 5503 0400                         |004d: invoke-static {v4, v0}, Lcom/valentinedesigns/chromalink/GameEngine;.samePose:(Lcom/valentinedesigns/chromalink/GameEngine$Piece;Lcom/valentinedesigns/chromalink/GameEngine$Piece;)Z // method@0355
018934: 0a04                                   |0050: move-result v4
018936: 3904 1500                              |0051: if-nez v4, 0066 // +0015
01893a: 5434 3b01                              |0053: iget-object v4, v3, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
01893e: 5430 4c01                              |0055: iget-object v0, v3, Lcom/valentinedesigns/chromalink/GameEngine$Well;.piece:Lcom/valentinedesigns/chromalink/GameEngine$Piece; // field@014c
018942: 6e10 2603 0200                         |0057: invoke-virtual {v2}, Lcom/valentinedesigns/chromalink/GameEngine;.botQuality:()F // method@0326
018948: 0a01                                   |005a: move-result v1
01894a: 7130 4e03 0401                         |005b: invoke-static {v4, v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine;.planBot:([[ILcom/valentinedesigns/chromalink/GameEngine$Piece;F)Lcom/valentinedesigns/chromalink/GameEngine$BotPlan; // method@034e
018950: 0c04                                   |005e: move-result-object v4
018952: 7120 1703 4300                         |005f: invoke-static {v3, v4}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fputplan:(Lcom/valentinedesigns/chromalink/GameEngine$Well;Lcom/valentinedesigns/chromalink/GameEngine$BotPlan;)V // method@0317
018958: 1204                                   |0062: const/4 v4, #int 0 // #0
01895a: 7120 1203 4300                         |0063: invoke-static {v3, v4}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fputaiStep:(Lcom/valentinedesigns/chromalink/GameEngine$Well;I)V // method@0312
018960: 7110 0e03 0300                         |0066: invoke-static {v3}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetplan:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)Lcom/valentinedesigns/chromalink/GameEngine$BotPlan; // method@030e
018966: 0c04                                   |0069: move-result-object v4
018968: 3904 0500                              |006a: if-nez v4, 006f // +0005
01896c: 1a04 b506                              |006c: const-string v4, "down" // string@06b5
018970: 2812                                   |006e: goto 0080 // +0012
018972: 7110 0e03 0300                         |006f: invoke-static {v3}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetplan:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)Lcom/valentinedesigns/chromalink/GameEngine$BotPlan; // method@030e
018978: 0c04                                   |0072: move-result-object v4
01897a: 5444 0b01                              |0073: iget-object v4, v4, Lcom/valentinedesigns/chromalink/GameEngine$BotPlan;.actions:[Ljava/lang/String; // field@010b
01897e: 7110 0703 0300                         |0075: invoke-static {v3}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetaiStep:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)I // method@0307
018984: 0a00                                   |0078: move-result v0
018986: d801 0001                              |0079: add-int/lit8 v1, v0, #int 1 // #01
01898a: 7120 1203 1300                         |007b: invoke-static {v3, v1}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fputaiStep:(Lcom/valentinedesigns/chromalink/GameEngine$Well;I)V // method@0312
018990: 4604 0400                              |007e: aget-object v4, v4, v0
018994: 7030 2003 3204                         |0080: invoke-direct {v2, v3, v4}, Lcom/valentinedesigns/chromalink/GameEngine;.actionWell:(Lcom/valentinedesigns/chromalink/GameEngine$Well;Ljava/lang/String;)V // method@0320
01899a: 0e00                                   |0083: return-void
      catches       : (none)
      positions     :
        0x0000 line=364
        0x0008 line=365
        0x0017 line=366
        0x0020 line=367
        0x0028 line=368
        0x002c line=369
        0x004d line=370
        0x0053 line=371
        0x0062 line=372
        0x0066 line=374
        0x0080 line=375
        0x0083 line=376
      locals        :
        0x0000 - 0x0084 reg=2 this Lcom/valentinedesigns/chromalink/GameEngine;
        0x0000 - 0x0084 reg=3 (null) Lcom/valentinedesigns/chromalink/GameEngine$Well;
        0x0000 - 0x0084 reg=4 (null) F

    #46              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'updateWell'
      type          : '(Lcom/valentinedesigns/chromalink/GameEngine$Well;F)V'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 10
      ins           : 3
      outs          : 4
      insns size    : 494 16-bit code units
01899c:                                        |[01899c] com.valentinedesigns.chromalink.GameEngine.updateWell:(Lcom/valentinedesigns/chromalink/GameEngine$Well;F)V
0189ac: 5280 4b01                              |0000: iget v0, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.phaseMs:F // field@014b
0189b0: c690                                   |0002: add-float/2addr v0, v9
0189b2: 5980 4b01                              |0003: iput v0, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.phaseMs:F // field@014b
0189b6: 5480 4a01                              |0005: iget-object v0, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.phase:Ljava/lang/String; // field@014a
0189ba: 6e10 5d06 0000                         |0007: invoke-virtual {v0}, Ljava/lang/String;.hashCode:()I // method@065d
0189c0: 0a01                                   |000a: move-result v1
0189c2: 1232                                   |000b: const/4 v2, #int 3 // #3
0189c4: 1a03 9b07                              |000c: const-string v3, "gravity" // string@079b
0189c8: 1a04 0806                              |000e: const-string v4, "between" // string@0608
0189cc: 1a05 a905                              |0010: const-string v5, "active" // string@05a9
0189d0: 1216                                   |0012: const/4 v6, #int 1 // #1
0189d2: 2c01 b101 0000                         |0013: sparse-switch v1, 000001c4 // +000001b1
0189d8: 2837                                   |0016: goto 004d // +0037
0189da: 6e20 5b06 3000                         |0017: invoke-virtual {v0, v3}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
0189e0: 0a00                                   |001a: move-result v0
0189e2: 3800 fbff                              |001b: if-eqz v0, 0016 // -0005
0189e6: 1220                                   |001d: const/4 v0, #int 2 // #2
0189e8: 2830                                   |001e: goto 004e // +0030
0189ea: 1a01 5006                              |001f: const-string v1, "clear" // string@0650
0189ee: 6e20 5b06 1000                         |0021: invoke-virtual {v0, v1}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
0189f4: 0a00                                   |0024: move-result v0
0189f6: 3800 f1ff                              |0025: if-eqz v0, 0016 // -000f
0189fa: 0160                                   |0027: move v0, v6
0189fc: 2826                                   |0028: goto 004e // +0026
0189fe: 1a01 3007                              |0029: const-string v1, "garbage" // string@0730
018a02: 6e20 5b06 1000                         |002b: invoke-virtual {v0, v1}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
018a08: 0a00                                   |002e: move-result v0
018a0a: 3800 e7ff                              |002f: if-eqz v0, 0016 // -0019
018a0e: 0120                                   |0031: move v0, v2
018a10: 281c                                   |0032: goto 004e // +001c
018a12: 6e20 5b06 4000                         |0033: invoke-virtual {v0, v4}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
018a18: 0a00                                   |0036: move-result v0
018a1a: 3800 dfff                              |0037: if-eqz v0, 0016 // -0021
018a1e: 1240                                   |0039: const/4 v0, #int 4 // #4
018a20: 2814                                   |003a: goto 004e // +0014
018a22: 1a01 820a                              |003b: const-string v1, "settle" // string@0a82
018a26: 6e20 5b06 1000                         |003d: invoke-virtual {v0, v1}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
018a2c: 0a00                                   |0040: move-result v0
018a2e: 3800 d5ff                              |0041: if-eqz v0, 0016 // -002b
018a32: 1200                                   |0043: const/4 v0, #int 0 // #0
018a34: 280a                                   |0044: goto 004e // +000a
018a36: 6e20 5b06 5000                         |0045: invoke-virtual {v0, v5}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
018a3c: 0a00                                   |0048: move-result v0
018a3e: 3800 cdff                              |0049: if-eqz v0, 0016 // -0033
018a42: 1250                                   |004b: const/4 v0, #int 5 // #5
018a44: 2802                                   |004c: goto 004e // +0002
018a46: 12f0                                   |004d: const/4 v0, #int -1 // #ff
018a48: 1201                                   |004e: const/4 v1, #int 0 // #0
018a4a: 2b00 8f01 0000                         |004f: packed-switch v0, 000001de // +0000018f
018a50: 2900 7001                              |0052: goto/16 01c2 // +0170
018a54: 5480 4c01                              |0054: iget-object v0, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.piece:Lcom/valentinedesigns/chromalink/GameEngine$Piece; // field@014c
018a58: 3900 0400                              |0056: if-nez v0, 005a // +0004
018a5c: 2900 6a01                              |0058: goto/16 01c2 // +016a
018a60: 5470 6401                              |005a: iget-object v0, v7, Lcom/valentinedesigns/chromalink/GameEngine;.cpu:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@0164
018a64: 3308 1c00                              |005c: if-ne v8, v0, 0078 // +001c
018a68: 5470 6b01                              |005e: iget-object v0, v7, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
018a6c: 6201 2101                              |0060: sget-object v1, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.ONLINE:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@0121
018a70: 3210 1600                              |0062: if-eq v0, v1, 0078 // +0016
018a74: 7030 2103 8709                         |0064: invoke-direct {v7, v8, v9}, Lcom/valentinedesigns/chromalink/GameEngine;.advanceOfflineGravity:(Lcom/valentinedesigns/chromalink/GameEngine$Well;F)V // method@0321
018a7a: 5480 4c01                              |0067: iget-object v0, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.piece:Lcom/valentinedesigns/chromalink/GameEngine$Piece; // field@014c
018a7e: 3800 5901                              |0069: if-eqz v0, 01c2 // +0159
018a82: 5480 4a01                              |006b: iget-object v0, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.phase:Ljava/lang/String; // field@014a
018a86: 6e20 5b06 0500                         |006d: invoke-virtual {v5, v0}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@065b
018a8c: 0a00                                   |0070: move-result v0
018a8e: 3800 5101                              |0071: if-eqz v0, 01c2 // +0151
018a92: 7030 5c03 8709                         |0073: invoke-direct {v7, v8, v9}, Lcom/valentinedesigns/chromalink/GameEngine;.updateBot:(Lcom/valentinedesigns/chromalink/GameEngine$Well;F)V // method@035c
018a98: 2900 4c01                              |0076: goto/16 01c2 // +014c
018a9c: 5470 6b01                              |0078: iget-object v0, v7, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
018aa0: 6201 2201                              |007a: sget-object v1, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.PRACTICE:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@0122
018aa4: 3210 4601                              |007c: if-eq v0, v1, 01c2 // +0146
018aa8: 5470 6b01                              |007e: iget-object v0, v7, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
018aac: 6201 1d01                              |0080: sget-object v1, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.CAMPAIGN:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@011d
018ab0: 3310 0600                              |0082: if-ne v0, v1, 0088 // +0006
018ab4: 5270 6801                              |0084: iget v0, v7, Lcom/valentinedesigns/chromalink/GameEngine;.lesson:I // field@0168
018ab8: 3420 3c01                              |0086: if-lt v0, v2, 01c2 // +013c
018abc: 7110 0803 0800                         |0088: invoke-static {v8}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetfallMs:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)F // method@0308
018ac2: 0a00                                   |008b: move-result v0
018ac4: c690                                   |008c: add-float/2addr v0, v9
018ac6: 7120 1303 0800                         |008d: invoke-static {v8, v0}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fputfallMs:(Lcom/valentinedesigns/chromalink/GameEngine$Well;F)V // method@0313
018acc: 5479 6b01                              |0090: iget-object v9, v7, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
018ad0: 6200 2101                              |0092: sget-object v0, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.ONLINE:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@0121
018ad4: 3309 2400                              |0094: if-ne v9, v0, 00b8 // +0024
018ad8: 6209 5701                              |0096: sget-object v9, Lcom/valentinedesigns/chromalink/GameEngine;.FALL:[F // field@0157
018adc: 5270 7101                              |0098: iget v0, v7, Lcom/valentinedesigns/chromalink/GameEngine;.stage:I // field@0171
018ae0: 4409 0900                              |009a: aget v9, v9, v0
018ae4: 8990                                   |009c: float-to-double v0, v9
018ae6: 5372 6501                              |009d: iget-wide v2, v7, Lcom/valentinedesigns/chromalink/GameEngine;.elapsedMs:J // field@0165
018aea: 8622                                   |009f: long-to-double v2, v2
018aec: 1804 0000 0000 00f9 e540               |00a0: const-wide v4, #double 45000 // #40e5f90000000000
018af6: ce42                                   |00a5: div-double/2addr v2, v4
018af8: 1804 14ae 47e1 7a14 ee3f               |00a6: const-wide v4, #double 0.94 // #3fee147ae147ae14
018b02: 7140 5506 5432                         |00ab: invoke-static {v4, v5, v2, v3}, Ljava/lang/StrictMath;.pow:(DD)D // method@0655
018b08: 0b02                                   |00ae: move-result-wide v2
018b0a: cd20                                   |00af: mul-double/2addr v0, v2
018b0c: 8c09                                   |00b0: double-to-float v9, v0
018b0e: 1500 7043                              |00b1: const/high16 v0, #int 1131413504 // #4370
018b12: 7120 4306 9000                         |00b3: invoke-static {v0, v9}, Ljava/lang/Math;.max:(FF)F // method@0643
018b18: 0a09                                   |00b6: move-result v9
018b1a: 2805                                   |00b7: goto 00bc // +0005
018b1c: 6e10 3e03 0700                         |00b8: invoke-virtual {v7}, Lcom/valentinedesigns/chromalink/GameEngine;.gravityIntervalMs:()F // method@033e
018b22: 0a09                                   |00bb: move-result v9
018b24: 7110 0803 0800                         |00bc: invoke-static {v8}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetfallMs:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)F // method@0308
018b2a: 0a00                                   |00bf: move-result v0
018b2c: 2d00 0009                              |00c0: cmpl-float v0, v0, v9
018b30: 3a00 0d00                              |00c2: if-ltz v0, 00cf // +000d
018b34: 7110 0803 0800                         |00c4: invoke-static {v8}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetfallMs:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)F // method@0308
018b3a: 0a00                                   |00c7: move-result v0
018b3c: c790                                   |00c8: sub-float/2addr v0, v9
018b3e: 7120 1303 0800                         |00c9: invoke-static {v8, v0}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fputfallMs:(Lcom/valentinedesigns/chromalink/GameEngine$Well;F)V // method@0313
018b44: 7020 5a03 8700                         |00cc: invoke-direct {v7, v8}, Lcom/valentinedesigns/chromalink/GameEngine;.stepDown:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)V // method@035a
018b4a: 2900 f300                              |00cf: goto/16 01c2 // +00f3
018b4e: 5289 4b01                              |00d1: iget v9, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.phaseMs:F // field@014b
018b52: 1500 3443                              |00d3: const/high16 v0, #int 1127481344 // #4334
018b56: 2d09 0900                              |00d5: cmpl-float v9, v9, v0
018b5a: 3a09 eb00                              |00d7: if-ltz v9, 01c2 // +00eb
018b5e: 7020 5803 8700                         |00d9: invoke-direct {v7, v8}, Lcom/valentinedesigns/chromalink/GameEngine;.spawn:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)V // method@0358
018b64: 2900 e600                              |00dc: goto/16 01c2 // +00e6
018b68: 5289 4b01                              |00de: iget v9, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.phaseMs:F // field@014b
018b6c: 1500 7a43                              |00e0: const/high16 v0, #int 1132068864 // #437a
018b70: 2d09 0900                              |00e2: cmpl-float v9, v9, v0
018b74: 3a09 de00                              |00e4: if-ltz v9, 01c2 // +00de
018b78: 5b84 4a01                              |00e6: iput-object v4, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.phase:Ljava/lang/String; // field@014a
018b7c: 5981 4b01                              |00e8: iput v1, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.phaseMs:F // field@014b
018b80: 2900 d800                              |00ea: goto/16 01c2 // +00d8
018b84: 5289 4b01                              |00ec: iget v9, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.phaseMs:F // field@014b
018b88: 1500 4843                              |00ee: const/high16 v0, #int 1128792064 // #4348
018b8c: 2d09 0900                              |00f0: cmpl-float v9, v9, v0
018b90: 3a09 d000                              |00f2: if-ltz v9, 01c2 // +00d0
018b94: 7110 0f03 0800                         |00f4: invoke-static {v8}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetresolution:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)Lcom/valentinedesigns/chromalink/GameEngine$Resolution; // method@030f
018b9a: 0c09                                   |00f7: move-result-object v9
018b9c: 5499 2e01                              |00f8: iget-object v9, v9, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.frames:Ljava/util/List; // field@012e
018ba0: 7110 0903 0800                         |00fa: invoke-static {v8}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetframeIndex:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)I // method@0309
018ba6: 0a00                                   |00fd: move-result v0
018ba8: 7220 9806 0900                         |00fe: invoke-interface {v9, v0}, Ljava/util/List;.get:(I)Ljava/lang/Object; // method@0698
018bae: 0c09                                   |0101: move-result-object v9
018bb0: 1f09 ae00                              |0102: check-cast v9, Lcom/valentinedesigns/chromalink/GameEngine$Frame; // type@00ae
018bb4: 5490 1201                              |0104: iget-object v0, v9, Lcom/valentinedesigns/chromalink/GameEngine$Frame;.afterGravity:[[I // field@0112
018bb8: 7110 3303 0000                         |0106: invoke-static {v0}, Lcom/valentinedesigns/chromalink/GameEngine;.copyBoard:([[I)[[I // method@0333
018bbe: 0c00                                   |0109: move-result-object v0
018bc0: 5b80 3b01                              |010a: iput-object v0, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
018bc4: 5280 4f01                              |010c: iget v0, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.score:I // field@014f
018bc8: 5291 1801                              |010e: iget v1, v9, Lcom/valentinedesigns/chromalink/GameEngine$Frame;.points:I // field@0118
018bcc: b010                                   |0110: add-int/2addr v0, v1
018bce: 5980 4f01                              |0111: iput v0, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.score:I // field@014f
018bd2: 5280 3c01                              |0113: iget v0, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.cleared:I // field@013c
018bd6: 5291 1601                              |0115: iget v1, v9, Lcom/valentinedesigns/chromalink/GameEngine$Frame;.colored:I // field@0116
018bda: b010                                   |0117: add-int/2addr v0, v1
018bdc: 5980 3c01                              |0118: iput v0, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.cleared:I // field@013c
018be0: 5280 4101                              |011a: iget v0, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.garbageCleared:I // field@0141
018be4: 5291 1701                              |011c: iget v1, v9, Lcom/valentinedesigns/chromalink/GameEngine$Frame;.garbage:I // field@0117
018be8: b010                                   |011e: add-int/2addr v0, v1
018bea: 5980 4101                              |011f: iput v0, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.garbageCleared:I // field@0141
018bee: 5280 4601                              |0121: iget v0, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.maxChain:I // field@0146
018bf2: 5291 1501                              |0123: iget v1, v9, Lcom/valentinedesigns/chromalink/GameEngine$Frame;.chain:I // field@0115
018bf6: 7120 4406 1000                         |0125: invoke-static {v0, v1}, Ljava/lang/Math;.max:(II)I // method@0644
018bfc: 0a00                                   |0128: move-result v0
018bfe: 5980 4601                              |0129: iput v0, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.maxChain:I // field@0146
018c02: 5470 6e01                              |012b: iget-object v0, v7, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
018c06: 3308 2200                              |012d: if-ne v8, v0, 014f // +0022
018c0a: 5499 1401                              |012f: iget-object v9, v9, Lcom/valentinedesigns/chromalink/GameEngine$Frame;.cells:Ljava/util/List; // field@0114
018c0e: 7210 9a06 0900                         |0131: invoke-interface {v9}, Ljava/util/List;.iterator:()Ljava/util/Iterator; // method@069a
018c14: 0c09                                   |0134: move-result-object v9
018c16: 7210 9406 0900                         |0135: invoke-interface {v9}, Ljava/util/Iterator;.hasNext:()Z // method@0694
018c1c: 0a00                                   |0138: move-result v0
018c1e: 3800 1600                              |0139: if-eqz v0, 014f // +0016
018c22: 7210 9506 0900                         |013b: invoke-interface {v9}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0695
018c28: 0c00                                   |013e: move-result-object v0
018c2a: 1f00 ad00                              |013f: check-cast v0, Lcom/valentinedesigns/chromalink/GameEngine$Cell; // type@00ad
018c2e: 5201 0e01                              |0141: iget v1, v0, Lcom/valentinedesigns/chromalink/GameEngine$Cell;.color:I // field@010e
018c32: 3a01 f2ff                              |0143: if-ltz v1, 0135 // -000e
018c36: 5271 6201                              |0145: iget v1, v7, Lcom/valentinedesigns/chromalink/GameEngine;.clearedColorMask:I // field@0162
018c3a: 5200 0e01                              |0147: iget v0, v0, Lcom/valentinedesigns/chromalink/GameEngine$Cell;.color:I // field@010e
018c3e: 9800 0600                              |0149: shl-int v0, v6, v0
018c42: b610                                   |014b: or-int/2addr v0, v1
018c44: 5970 6201                              |014c: iput v0, v7, Lcom/valentinedesigns/chromalink/GameEngine;.clearedColorMask:I // field@0162
018c48: 28e7                                   |014e: goto 0135 // -0019
018c4a: 7110 0903 0800                         |014f: invoke-static {v8}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetframeIndex:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)I // method@0309
018c50: 0a09                                   |0152: move-result v9
018c52: b069                                   |0153: add-int/2addr v9, v6
018c54: 7120 1403 9800                         |0154: invoke-static {v8, v9}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fputframeIndex:(Lcom/valentinedesigns/chromalink/GameEngine$Well;I)V // method@0314
018c5a: 7110 0903 0800                         |0157: invoke-static {v8}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetframeIndex:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)I // method@0309
018c60: 0a09                                   |015a: move-result v9
018c62: 7110 0f03 0800                         |015b: invoke-static {v8}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetresolution:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)Lcom/valentinedesigns/chromalink/GameEngine$Resolution; // method@030f
018c68: 0c00                                   |015e: move-result-object v0
018c6a: 5400 2e01                              |015f: iget-object v0, v0, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.frames:Ljava/util/List; // field@012e
018c6e: 7210 9c06 0000                         |0161: invoke-interface {v0}, Ljava/util/List;.size:()I // method@069c
018c74: 0a00                                   |0164: move-result v0
018c76: 3509 0600                              |0165: if-ge v9, v0, 016b // +0006
018c7a: 7020 2303 8700                         |0167: invoke-direct {v7, v8}, Lcom/valentinedesigns/chromalink/GameEngine;.beginClear:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)V // method@0323
018c80: 2804                                   |016a: goto 016e // +0004
018c82: 7020 3203 8700                         |016b: invoke-direct {v7, v8}, Lcom/valentinedesigns/chromalink/GameEngine;.completeMove:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)V // method@0332
018c88: 2854                                   |016e: goto 01c2 // +0054
018c8a: 5289 4b01                              |016f: iget v9, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.phaseMs:F // field@014b
018c8e: 1500 a043                              |0171: const/high16 v0, #int 1134559232 // #43a0
018c92: 2d09 0900                              |0173: cmpl-float v9, v9, v0
018c96: 3a09 4d00                              |0175: if-ltz v9, 01c2 // +004d
018c9a: 7110 0f03 0800                         |0177: invoke-static {v8}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetresolution:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)Lcom/valentinedesigns/chromalink/GameEngine$Resolution; // method@030f
018ca0: 0c09                                   |017a: move-result-object v9
018ca2: 5499 2e01                              |017b: iget-object v9, v9, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.frames:Ljava/util/List; // field@012e
018ca6: 7110 0903 0800                         |017d: invoke-static {v8}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetframeIndex:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)I // method@0309
018cac: 0a00                                   |0180: move-result v0
018cae: 7220 9806 0900                         |0181: invoke-interface {v9, v0}, Ljava/util/List;.get:(I)Ljava/lang/Object; // method@0698
018cb4: 0c09                                   |0184: move-result-object v9
018cb6: 1f09 ae00                              |0185: check-cast v9, Lcom/valentinedesigns/chromalink/GameEngine$Frame; // type@00ae
018cba: 5499 1101                              |0187: iget-object v9, v9, Lcom/valentinedesigns/chromalink/GameEngine$Frame;.afterClear:[[I // field@0111
018cbe: 7110 3303 0900                         |0189: invoke-static {v9}, Lcom/valentinedesigns/chromalink/GameEngine;.copyBoard:([[I)[[I // method@0333
018cc4: 0c09                                   |018c: move-result-object v9
018cc6: 5b89 3b01                              |018d: iput-object v9, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
018cca: 2209 5c01                              |018f: new-instance v9, Ljava/util/ArrayList; // type@015c
018cce: 7010 8706 0900                         |0191: invoke-direct {v9}, Ljava/util/ArrayList;.<init>:()V // method@0687
018cd4: 5b89 3f01                              |0194: iput-object v9, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.flashing:Ljava/util/List; // field@013f
018cd8: 5b83 4a01                              |0196: iput-object v3, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.phase:Ljava/lang/String; // field@014a
018cdc: 5981 4b01                              |0198: iput v1, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.phaseMs:F // field@014b
018ce0: 2828                                   |019a: goto 01c2 // +0028
018ce2: 5289 4b01                              |019b: iget v9, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.phaseMs:F // field@014b
018ce6: 1500 2043                              |019d: const/high16 v0, #int 1126170624 // #4320
018cea: 2d09 0900                              |019f: cmpl-float v9, v9, v0
018cee: 3a09 2100                              |01a1: if-ltz v9, 01c2 // +0021
018cf2: 7110 0f03 0800                         |01a3: invoke-static {v8}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetresolution:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)Lcom/valentinedesigns/chromalink/GameEngine$Resolution; // method@030f
018cf8: 0c09                                   |01a6: move-result-object v9
018cfa: 5499 3201                              |01a7: iget-object v9, v9, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.settledBoard:[[I // field@0132
018cfe: 7110 3303 0900                         |01a9: invoke-static {v9}, Lcom/valentinedesigns/chromalink/GameEngine;.copyBoard:([[I)[[I // method@0333
018d04: 0c09                                   |01ac: move-result-object v9
018d06: 5b89 3b01                              |01ad: iput-object v9, v8, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
018d0a: 7110 0f03 0800                         |01af: invoke-static {v8}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetresolution:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)Lcom/valentinedesigns/chromalink/GameEngine$Resolution; // method@030f
018d10: 0c09                                   |01b2: move-result-object v9
018d12: 5499 2e01                              |01b3: iget-object v9, v9, Lcom/valentinedesigns/chromalink/GameEngine$Resolution;.frames:Ljava/util/List; // field@012e
018d16: 7210 9906 0900                         |01b5: invoke-interface {v9}, Ljava/util/List;.isEmpty:()Z // method@0699
018d1c: 0a09                                   |01b8: move-result v9
018d1e: 3809 0600                              |01b9: if-eqz v9, 01bf // +0006
018d22: 7020 3203 8700                         |01bb: invoke-direct {v7, v8}, Lcom/valentinedesigns/chromalink/GameEngine;.completeMove:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)V // method@0332
018d28: 2804                                   |01be: goto 01c2 // +0004
018d2a: 7020 2303 8700                         |01bf: invoke-direct {v7, v8}, Lcom/valentinedesigns/chromalink/GameEngine;.beginClear:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)V // method@0323
018d30: 0e00                                   |01c2: return-void
018d32: 0000                                   |01c3: nop // spacer
018d34: 0002 0600 067f 2fab 4b11 03ca 086c ... |01c4: sparse-switch-data (26 units)
018d68: 0001 0600 0000 0000 4c01 0000 2001 ... |01de: packed-switch-data (16 units)
      catches       : (none)
      positions     :
        0x0000 line=250
        0x0005 line=251
        0x0054 line=283
        0x005a line=284
        0x0064 line=288
        0x0067 line=289
        0x0078 line=290
        0x0088 line=291
        0x0090 line=294
        0x0096 line=295
        0x00b8 line=296
        0x00bc line=297
        0x00cf line=298
        0x00d1 line=280
        0x00de line=277
        0x00ec line=266
        0x00f4 line=267
        0x0104 line=268
        0x0113 line=269
        0x0121 line=270
        0x012b line=271
        0x014f line=272
        0x0157 line=273
        0x016e line=274
        0x016f line=259
        0x0177 line=260
        0x0187 line=261
        0x0196 line=262
        0x019a line=263
        0x019b line=253
        0x01a3 line=254
        0x01af line=255
        0x01c2 line=302
      locals        :
        0x0000 - 0x01ee reg=7 this Lcom/valentinedesigns/chromalink/GameEngine;
        0x0000 - 0x01ee reg=8 (null) Lcom/valentinedesigns/chromalink/GameEngine$Well;
        0x0000 - 0x01ee reg=9 (null) F

  Virtual methods   -
    #0              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'action'
      type          : '(ILjava/lang/String;)V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 5
      ins           : 3
      outs          : 3
      insns size    : 22 16-bit code units
0179d4:                                        |[0179d4] com.valentinedesigns.chromalink.GameEngine.action:(ILjava/lang/String;)V
0179e4: 5420 6b01                              |0000: iget-object v0, v2, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
0179e8: 6201 2101                              |0002: sget-object v1, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.ONLINE:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@0121
0179ec: 3310 0a00                              |0004: if-ne v0, v1, 000e // +000a
0179f0: 6e20 5e03 3200                         |0006: invoke-virtual {v2, v3}, Lcom/valentinedesigns/chromalink/GameEngine;.wellForSide:(I)Lcom/valentinedesigns/chromalink/GameEngine$Well; // method@035e
0179f6: 0c03                                   |0009: move-result-object v3
0179f8: 7030 2003 3204                         |000a: invoke-direct {v2, v3, v4}, Lcom/valentinedesigns/chromalink/GameEngine;.actionWell:(Lcom/valentinedesigns/chromalink/GameEngine$Well;Ljava/lang/String;)V // method@0320
0179fe: 0e00                                   |000d: return-void
017a00: 2203 3e01                              |000e: new-instance v3, Ljava/lang/IllegalStateException; // type@013e
017a04: 1a04 8704                              |0010: const-string v4, "Side actions require online mode" // string@0487
017a08: 7020 2f06 4300                         |0012: invoke-direct {v3, v4}, Ljava/lang/IllegalStateException;.<init>:(Ljava/lang/String;)V // method@062f
017a0e: 2703                                   |0015: throw v3
      catches       : (none)
      positions     :
        0x0000 line=385
        0x0006 line=386
        0x000d line=387
        0x000e line=385
      locals        :
        0x0000 - 0x0016 reg=2 this Lcom/valentinedesigns/chromalink/GameEngine;
        0x0000 - 0x0016 reg=3 (null) I
        0x0000 - 0x0016 reg=4 (null) Ljava/lang/String;

    #1              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'action'
      type          : '(Ljava/lang/String;)V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 3
      ins           : 2
      outs          : 3
      insns size    : 6 16-bit code units
017a10:                                        |[017a10] com.valentinedesigns.chromalink.GameEngine.action:(Ljava/lang/String;)V
017a20: 5410 6e01                              |0000: iget-object v0, v1, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
017a24: 7030 2003 0102                         |0002: invoke-direct {v1, v0, v2}, Lcom/valentinedesigns/chromalink/GameEngine;.actionWell:(Lcom/valentinedesigns/chromalink/GameEngine$Well;Ljava/lang/String;)V // method@0320
017a2a: 0e00                                   |0005: return-void
      catches       : (none)
      positions     :
        0x0000 line=383
      locals        :
        0x0000 - 0x0006 reg=1 this Lcom/valentinedesigns/chromalink/GameEngine;
        0x0000 - 0x0006 reg=2 (null) Ljava/lang/String;

    #2              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'botInputIntervalMs'
      type          : '()F'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 8
      ins           : 1
      outs          : 4
      insns size    : 42 16-bit code units
01673c:                                        |[01673c] com.valentinedesigns.chromalink.GameEngine.botInputIntervalMs:()F
01674c: 5470 6b01                              |0000: iget-object v0, v7, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
016750: 6201 1d01                              |0002: sget-object v1, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.CAMPAIGN:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@011d
016754: 3310 0500                              |0004: if-ne v0, v1, 0009 // +0005
016758: 1500 2043                              |0006: const/high16 v0, #int 1126170624 // #4320
01675c: 0f00                                   |0008: return v0
01675e: 6200 5201                              |0009: sget-object v0, Lcom/valentinedesigns/chromalink/GameEngine;.BOT_INPUT:[F // field@0152
016762: 5271 7201                              |000b: iget v1, v7, Lcom/valentinedesigns/chromalink/GameEngine;.startStage:I // field@0172
016766: 4400 0001                              |000d: aget v0, v0, v1
01676a: 1501 5c42                              |000f: const/high16 v1, #int 1113325568 // #425c
01676e: c710                                   |0011: sub-float/2addr v0, v1
016770: 8900                                   |0012: float-to-double v0, v0
016772: 6202 5901                              |0013: sget-object v2, Lcom/valentinedesigns/chromalink/GameEngine;.INPUT_DECAY:[D // field@0159
016776: 5273 7201                              |0015: iget v3, v7, Lcom/valentinedesigns/chromalink/GameEngine;.startStage:I // field@0172
01677a: 4503 0203                              |0017: aget-wide v3, v2, v3
01677e: 6e10 3403 0700                         |0019: invoke-virtual {v7}, Lcom/valentinedesigns/chromalink/GameEngine;.difficultyUnits:()D // method@0334
016784: 0b05                                   |001c: move-result-wide v5
016786: 7140 4a06 4365                         |001d: invoke-static {v3, v4, v5, v6}, Ljava/lang/Math;.pow:(DD)D // method@064a
01678c: 0b02                                   |0020: move-result-wide v2
01678e: cd20                                   |0021: mul-double/2addr v0, v2
016790: 1802 0000 0000 0080 4b40               |0022: const-wide v2, #double 55 // #404b800000000000
01679a: cb20                                   |0027: add-double/2addr v0, v2
01679c: 8c00                                   |0028: double-to-float v0, v0
01679e: 0f00                                   |0029: return v0
      catches       : (none)
      positions     :
        0x0000 line=337
        0x0009 line=338
        0x0019 line=339
        0x0029 line=338
      locals        :
        0x0000 - 0x002a reg=7 this Lcom/valentinedesigns/chromalink/GameEngine;

    #3              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'botQuality'
      type          : '()F'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 7
      ins           : 1
      outs          : 2
      insns size    : 48 16-bit code units
0167a0:                                        |[0167a0] com.valentinedesigns.chromalink.GameEngine.botQuality:()F
0167b0: 5460 6b01                              |0000: iget-object v0, v6, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
0167b4: 6201 1d01                              |0002: sget-object v1, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.CAMPAIGN:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@011d
0167b8: 3310 0e00                              |0004: if-ne v0, v1, 0012 // +000e
0167bc: 5260 6801                              |0006: iget v0, v6, Lcom/valentinedesigns/chromalink/GameEngine;.lesson:I // field@0168
0167c0: 1261                                   |0008: const/4 v1, #int 6 // #6
0167c2: 3510 0600                              |0009: if-ge v0, v1, 000f // +0006
0167c6: 1400 6666 e63e                         |000b: const v0, #float 0.45 // #3ee66666
0167cc: 2803                                   |000e: goto 0011 // +0003
0167ce: 1500 403f                              |000f: const/high16 v0, #int 1061158912 // #3f40
0167d2: 0f00                                   |0011: return v0
0167d4: 6200 5301                              |0012: sget-object v0, Lcom/valentinedesigns/chromalink/GameEngine;.BOT_QUALITY:[F // field@0153
0167d8: 5261 7201                              |0014: iget v1, v6, Lcom/valentinedesigns/chromalink/GameEngine;.startStage:I // field@0172
0167dc: 4400 0001                              |0016: aget v0, v0, v1
0167e0: 1501 803f                              |0018: const/high16 v1, #int 1065353216 // #3f80
0167e4: c701                                   |001a: sub-float/2addr v1, v0
0167e6: 8910                                   |001b: float-to-double v0, v1
0167e8: 1802 a470 3d0a d7a3 d0bf               |001c: const-wide v2, #double -0.26 // #bfd0a3d70a3d70a4
0167f2: 6e10 3403 0600                         |0021: invoke-virtual {v6}, Lcom/valentinedesigns/chromalink/GameEngine;.difficultyUnits:()D // method@0334
0167f8: 0b04                                   |0024: move-result-wide v4
0167fa: cd24                                   |0025: mul-double/2addr v4, v2
0167fc: 7120 3e06 5400                         |0026: invoke-static {v4, v5}, Ljava/lang/Math;.exp:(D)D // method@063e
016802: 0b02                                   |0029: move-result-wide v2
016804: cd20                                   |002a: mul-double/2addr v0, v2
016806: 1902 f03f                              |002b: const-wide/high16 v2, #long 4607182418800017408 // #3ff0
01680a: cc02                                   |002d: sub-double/2addr v2, v0
01680c: 8c20                                   |002e: double-to-float v0, v2
01680e: 0f00                                   |002f: return v0
      catches       : (none)
      positions     :
        0x0000 line=344
        0x0012 line=345
        0x0018 line=346
      locals        :
        0x0000 - 0x0030 reg=6 this Lcom/valentinedesigns/chromalink/GameEngine;

    #4              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'botThinkDelayMs'
      type          : '()F'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 8
      ins           : 1
      outs          : 4
      insns size    : 48 16-bit code units
016810:                                        |[016810] com.valentinedesigns.chromalink.GameEngine.botThinkDelayMs:()F
016820: 5470 6b01                              |0000: iget-object v0, v7, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
016824: 6201 1d01                              |0002: sget-object v1, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.CAMPAIGN:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@011d
016828: 3310 0e00                              |0004: if-ne v0, v1, 0012 // +000e
01682c: 5270 6801                              |0006: iget v0, v7, Lcom/valentinedesigns/chromalink/GameEngine;.lesson:I // field@0168
016830: 1261                                   |0008: const/4 v1, #int 6 // #6
016832: 3510 0600                              |0009: if-ge v0, v1, 000f // +0006
016836: 1400 0080 a245                         |000b: const v0, #float 5200 // #45a28000
01683c: 2803                                   |000e: goto 0011 // +0003
01683e: 1500 1645                              |000f: const/high16 v0, #int 1159069696 // #4516
016842: 0f00                                   |0011: return v0
016844: 6200 5401                              |0012: sget-object v0, Lcom/valentinedesigns/chromalink/GameEngine;.BOT_THINK:[F // field@0154
016848: 5271 7201                              |0014: iget v1, v7, Lcom/valentinedesigns/chromalink/GameEngine;.startStage:I // field@0172
01684c: 4400 0001                              |0016: aget v0, v0, v1
016850: 1501 a042                              |0018: const/high16 v1, #int 1117782016 // #42a0
016854: c710                                   |001a: sub-float/2addr v0, v1
016856: 8900                                   |001b: float-to-double v0, v0
016858: 6202 6001                              |001c: sget-object v2, Lcom/valentinedesigns/chromalink/GameEngine;.THINK_DECAY:[D // field@0160
01685c: 5273 7201                              |001e: iget v3, v7, Lcom/valentinedesigns/chromalink/GameEngine;.startStage:I // field@0172
016860: 4503 0203                              |0020: aget-wide v3, v2, v3
016864: 6e10 3403 0700                         |0022: invoke-virtual {v7}, Lcom/valentinedesigns/chromalink/GameEngine;.difficultyUnits:()D // method@0334
01686a: 0b05                                   |0025: move-result-wide v5
01686c: 7140 4a06 4365                         |0026: invoke-static {v3, v4, v5, v6}, Ljava/lang/Math;.pow:(DD)D // method@064a
016872: 0b02                                   |0029: move-result-wide v2
016874: cd20                                   |002a: mul-double/2addr v0, v2
016876: 1902 5440                              |002b: const-wide/high16 v2, #long 4635329916471083008 // #4054
01687a: cb20                                   |002d: add-double/2addr v0, v2
01687c: 8c00                                   |002e: double-to-float v0, v0
01687e: 0f00                                   |002f: return v0
      catches       : (none)
      positions     :
        0x0000 line=330
        0x0012 line=331
        0x0022 line=332
        0x002f line=331
      locals        :
        0x0000 - 0x0030 reg=7 this Lcom/valentinedesigns/chromalink/GameEngine;

    #5              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'campaignGoalProgress'
      type          : '()I'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 5
      ins           : 1
      outs          : 2
      insns size    : 50 16-bit code units
016ab0:                                        |[016ab0] com.valentinedesigns.chromalink.GameEngine.campaignGoalProgress:()I
016ac0: 5240 6801                              |0000: iget v0, v4, Lcom/valentinedesigns/chromalink/GameEngine;.lesson:I // field@0168
016ac4: 1201                                   |0002: const/4 v1, #int 0 // #0
016ac6: 3b00 0300                              |0003: if-gez v0, 0006 // +0003
016aca: 0f01                                   |0005: return v1
016acc: 5240 6801                              |0006: iget v0, v4, Lcom/valentinedesigns/chromalink/GameEngine;.lesson:I // field@0168
016ad0: 1212                                   |0008: const/4 v2, #int 1 // #1
016ad2: 3320 0700                              |0009: if-ne v0, v2, 0010 // +0007
016ad6: 5440 6e01                              |000b: iget-object v0, v4, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
016ada: 5201 4601                              |000d: iget v1, v0, Lcom/valentinedesigns/chromalink/GameEngine$Well;.maxChain:I // field@0146
016ade: 281a                                   |000f: goto 0029 // +001a
016ae0: 5240 6801                              |0010: iget v0, v4, Lcom/valentinedesigns/chromalink/GameEngine;.lesson:I // field@0168
016ae4: 1223                                   |0012: const/4 v3, #int 2 // #2
016ae6: 3330 0700                              |0013: if-ne v0, v3, 001a // +0007
016aea: 5440 6e01                              |0015: iget-object v0, v4, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
016aee: 5201 4101                              |0017: iget v1, v0, Lcom/valentinedesigns/chromalink/GameEngine$Well;.garbageCleared:I // field@0141
016af2: 2810                                   |0019: goto 0029 // +0010
016af4: 5240 6801                              |001a: iget v0, v4, Lcom/valentinedesigns/chromalink/GameEngine;.lesson:I // field@0168
016af8: 1263                                   |001c: const/4 v3, #int 6 // #6
016afa: 3330 0800                              |001d: if-ne v0, v3, 0025 // +0008
016afe: 5540 7301                              |001f: iget-boolean v0, v4, Lcom/valentinedesigns/chromalink/GameEngine;.won:Z // field@0173
016b02: 3800 0800                              |0021: if-eqz v0, 0029 // +0008
016b06: 0121                                   |0023: move v1, v2
016b08: 2805                                   |0024: goto 0029 // +0005
016b0a: 5440 6e01                              |0025: iget-object v0, v4, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
016b0e: 5201 3c01                              |0027: iget v1, v0, Lcom/valentinedesigns/chromalink/GameEngine$Well;.cleared:I // field@013c
016b12: 6e10 2903 0400                         |0029: invoke-virtual {v4}, Lcom/valentinedesigns/chromalink/GameEngine;.campaignGoalTarget:()I // method@0329
016b18: 0a00                                   |002c: move-result v0
016b1a: 7120 4806 1000                         |002d: invoke-static {v0, v1}, Ljava/lang/Math;.min:(II)I // method@0648
016b20: 0a00                                   |0030: move-result v0
016b22: 0f00                                   |0031: return v0
      catches       : (none)
      positions     :
        0x0000 line=194
        0x0006 line=195
        0x0029 line=196
      locals        :
        0x0000 - 0x0032 reg=4 this Lcom/valentinedesigns/chromalink/GameEngine;

    #6              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'campaignGoalTarget'
      type          : '()I'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 2
      ins           : 1
      outs          : 1
      insns size    : 13 16-bit code units
016b24:                                        |[016b24] com.valentinedesigns.chromalink.GameEngine.campaignGoalTarget:()I
016b34: 5210 6801                              |0000: iget v0, v1, Lcom/valentinedesigns/chromalink/GameEngine;.lesson:I // field@0168
016b38: 3b00 0400                              |0002: if-gez v0, 0006 // +0004
016b3c: 1200                                   |0004: const/4 v0, #int 0 // #0
016b3e: 2807                                   |0005: goto 000c // +0007
016b40: 5210 6801                              |0006: iget v0, v1, Lcom/valentinedesigns/chromalink/GameEngine;.lesson:I // field@0168
016b44: 7110 4602 0000                         |0008: invoke-static {v0}, Lcom/valentinedesigns/chromalink/CampaignProgress;.goalTarget:(I)I // method@0246
016b4a: 0a00                                   |000b: move-result v0
016b4c: 0f00                                   |000c: return v0
      catches       : (none)
      positions     :
        0x0000 line=192
      locals        :
        0x0000 - 0x000d reg=1 this Lcom/valentinedesigns/chromalink/GameEngine;

    #7              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'campaignLesson'
      type          : '()I'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 2
      ins           : 1
      outs          : 0
      insns size    : 3 16-bit code units
016b50:                                        |[016b50] com.valentinedesigns.chromalink.GameEngine.campaignLesson:()I
016b60: 5210 6801                              |0000: iget v0, v1, Lcom/valentinedesigns/chromalink/GameEngine;.lesson:I // field@0168
016b64: 0f00                                   |0002: return v0
      catches       : (none)
      positions     :
        0x0000 line=190
      locals        :
        0x0000 - 0x0003 reg=1 this Lcom/valentinedesigns/chromalink/GameEngine;

    #8              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'clearedColorMask'
      type          : '()I'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 2
      ins           : 1
      outs          : 0
      insns size    : 3 16-bit code units
016bf8:                                        |[016bf8] com.valentinedesigns.chromalink.GameEngine.clearedColorMask:()I
016c08: 5210 6201                              |0000: iget v0, v1, Lcom/valentinedesigns/chromalink/GameEngine;.clearedColorMask:I // field@0162
016c0c: 0f00                                   |0002: return v0
      catches       : (none)
      positions     :
        0x0000 line=191
      locals        :
        0x0000 - 0x0003 reg=1 this Lcom/valentinedesigns/chromalink/GameEngine;

    #9              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'colorCount'
      type          : '()I'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 2
      ins           : 1
      outs          : 0
      insns size    : 5 16-bit code units
016c10:                                        |[016c10] com.valentinedesigns.chromalink.GameEngine.colorCount:()I
016c20: 5210 7101                              |0000: iget v0, v1, Lcom/valentinedesigns/chromalink/GameEngine;.stage:I // field@0171
016c24: d800 0003                              |0002: add-int/lit8 v0, v0, #int 3 // #03
016c28: 0f00                                   |0004: return v0
      catches       : (none)
      positions     :
        0x0000 line=183
      locals        :
        0x0000 - 0x0005 reg=1 this Lcom/valentinedesigns/chromalink/GameEngine;

    #10              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'difficultyUnits'
      type          : '()D'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 7
      ins           : 1
      outs          : 4
      insns size    : 68 16-bit code units
016398:                                        |[016398] com.valentinedesigns.chromalink.GameEngine.difficultyUnits:()D
0163a8: 5460 6b01                              |0000: iget-object v0, v6, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
0163ac: 6201 1f01                              |0002: sget-object v1, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.DUEL:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@011f
0163b0: 3310 0f00                              |0004: if-ne v0, v1, 0013 // +000f
0163b4: 5460 6e01                              |0006: iget-object v0, v6, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
0163b8: 5200 4f01                              |0008: iget v0, v0, Lcom/valentinedesigns/chromalink/GameEngine$Well;.score:I // field@014f
0163bc: 5461 6401                              |000a: iget-object v1, v6, Lcom/valentinedesigns/chromalink/GameEngine;.cpu:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@0164
0163c0: 5211 4f01                              |000c: iget v1, v1, Lcom/valentinedesigns/chromalink/GameEngine$Well;.score:I // field@014f
0163c4: 7120 4406 1000                         |000e: invoke-static {v0, v1}, Ljava/lang/Math;.max:(II)I // method@0644
0163ca: 0a00                                   |0011: move-result v0
0163cc: 2805                                   |0012: goto 0017 // +0005
0163ce: 5460 6e01                              |0013: iget-object v0, v6, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
0163d2: 5200 4f01                              |0015: iget v0, v0, Lcom/valentinedesigns/chromalink/GameEngine$Well;.score:I // field@014f
0163d6: 1201                                   |0017: const/4 v1, #int 0 // #0
0163d8: 7120 4406 0100                         |0018: invoke-static {v1, v0}, Ljava/lang/Math;.max:(II)I // method@0644
0163de: 0a00                                   |001b: move-result v0
0163e0: 8300                                   |001c: int-to-double v0, v0
0163e2: 1802 0000 0000 0020 8c40               |001d: const-wide v2, #double 900 // #408c200000000000
0163ec: ce20                                   |0022: div-double/2addr v0, v2
0163ee: 7120 4206 1000                         |0023: invoke-static {v0, v1}, Ljava/lang/Math;.log1p:(D)D // method@0642
0163f4: 0b00                                   |0026: move-result-wide v0
0163f6: 1802 cdcc cccc cccc e43f               |0027: const-wide v2, #double 0.65 // #3fe4cccccccccccd
016400: cd20                                   |002c: mul-double/2addr v0, v2
016402: 1902 0040                              |002d: const-wide/high16 v2, #long 4611686018427387904 // #4000
016406: 7140 4606 3210                         |002f: invoke-static {v2, v3, v0, v1}, Ljava/lang/Math;.min:(DD)D // method@0646
01640c: 0b00                                   |0032: move-result-wide v0
01640e: 1602 0000                              |0033: const-wide/16 v2, #int 0 // #0
016412: 5364 6501                              |0035: iget-wide v4, v6, Lcom/valentinedesigns/chromalink/GameEngine;.elapsedMs:J // field@0165
016416: 7140 4506 3254                         |0037: invoke-static {v2, v3, v4, v5}, Ljava/lang/Math;.max:(JJ)J // method@0645
01641c: 0b02                                   |003a: move-result-wide v2
01641e: 8622                                   |003b: long-to-double v2, v2
016420: 1804 0000 0000 00f9 e540               |003c: const-wide v4, #double 45000 // #40e5f90000000000
01642a: ce42                                   |0041: div-double/2addr v2, v4
01642c: cb02                                   |0042: add-double/2addr v2, v0
01642e: 1002                                   |0043: return-wide v2
      catches       : (none)
      positions     :
        0x0000 line=313
        0x0017 line=314
        0x0033 line=315
      locals        :
        0x0000 - 0x0044 reg=6 this Lcom/valentinedesigns/chromalink/GameEngine;

    #11              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'gravityIntervalMs'
      type          : '()F'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 9
      ins           : 1
      outs          : 4
      insns size    : 118 16-bit code units
016880:                                        |[016880] com.valentinedesigns.chromalink.GameEngine.gravityIntervalMs:()F
016890: 5480 6b01                              |0000: iget-object v0, v8, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
016894: 6201 2201                              |0002: sget-object v1, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.PRACTICE:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@0122
016898: 3210 6f00                              |0004: if-eq v0, v1, 0073 // +006f
01689c: 5480 6b01                              |0006: iget-object v0, v8, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
0168a0: 6201 1d01                              |0008: sget-object v1, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.CAMPAIGN:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@011d
0168a4: 3310 0800                              |000a: if-ne v0, v1, 0012 // +0008
0168a8: 5280 6801                              |000c: iget v0, v8, Lcom/valentinedesigns/chromalink/GameEngine;.lesson:I // field@0168
0168ac: 1231                                   |000e: const/4 v1, #int 3 // #3
0168ae: 3510 0300                              |000f: if-ge v0, v1, 0012 // +0003
0168b2: 2862                                   |0011: goto 0073 // +0062
0168b4: 5480 6b01                              |0012: iget-object v0, v8, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
0168b8: 6201 1d01                              |0014: sget-object v1, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.CAMPAIGN:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@011d
0168bc: 3310 0500                              |0016: if-ne v0, v1, 001b // +0005
0168c0: 1500 7a44                              |0018: const/high16 v0, #int 1148846080 // #447a
0168c4: 0f00                                   |001a: return v0
0168c6: 7010 3f03 0800                         |001b: invoke-direct {v8}, Lcom/valentinedesigns/chromalink/GameEngine;.hasLiveDifficulty:()Z // method@033f
0168cc: 0a00                                   |001e: move-result v0
0168ce: 3800 2300                              |001f: if-eqz v0, 0042 // +0023
0168d2: 6200 5c01                              |0021: sget-object v0, Lcom/valentinedesigns/chromalink/GameEngine;.LIVE_FALL:[F // field@015c
0168d6: 5281 7201                              |0023: iget v1, v8, Lcom/valentinedesigns/chromalink/GameEngine;.startStage:I // field@0172
0168da: 4400 0001                              |0025: aget v0, v0, v1
0168de: 1501 dc42                              |0027: const/high16 v1, #int 1121714176 // #42dc
0168e2: c710                                   |0029: sub-float/2addr v0, v1
0168e4: 8900                                   |002a: float-to-double v0, v0
0168e6: 6202 5b01                              |002b: sget-object v2, Lcom/valentinedesigns/chromalink/GameEngine;.LIVE_DECAY:[D // field@015b
0168ea: 5283 7201                              |002d: iget v3, v8, Lcom/valentinedesigns/chromalink/GameEngine;.startStage:I // field@0172
0168ee: 4503 0203                              |002f: aget-wide v3, v2, v3
0168f2: 6e10 3403 0800                         |0031: invoke-virtual {v8}, Lcom/valentinedesigns/chromalink/GameEngine;.difficultyUnits:()D // method@0334
0168f8: 0b05                                   |0034: move-result-wide v5
0168fa: 7140 4a06 4365                         |0035: invoke-static {v3, v4, v5, v6}, Ljava/lang/Math;.pow:(DD)D // method@064a
016900: 0b02                                   |0038: move-result-wide v2
016902: cd20                                   |0039: mul-double/2addr v0, v2
016904: 1802 0000 0000 0080 5b40               |003a: const-wide v2, #double 110 // #405b800000000000
01690e: cb20                                   |003f: add-double/2addr v0, v2
016910: 8c00                                   |0040: double-to-float v0, v0
016912: 0f00                                   |0041: return v0
016914: 6200 5701                              |0042: sget-object v0, Lcom/valentinedesigns/chromalink/GameEngine;.FALL:[F // field@0157
016918: 5281 7101                              |0044: iget v1, v8, Lcom/valentinedesigns/chromalink/GameEngine;.stage:I // field@0171
01691c: 4400 0001                              |0046: aget v0, v0, v1
016920: 8900                                   |0048: float-to-double v0, v0
016922: 5482 6b01                              |0049: iget-object v2, v8, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
016926: 6203 2101                              |004b: sget-object v3, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.ONLINE:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@0121
01692a: 1804 0000 0000 00f9 e540               |004d: const-wide v4, #double 45000 // #40e5f90000000000
016934: 1806 14ae 47e1 7a14 ee3f               |0052: const-wide v6, #double 0.94 // #3fee147ae147ae14
01693e: 3332 0b00                              |0057: if-ne v2, v3, 0062 // +000b
016942: 5382 6501                              |0059: iget-wide v2, v8, Lcom/valentinedesigns/chromalink/GameEngine;.elapsedMs:J // field@0165
016946: 8622                                   |005b: long-to-double v2, v2
016948: ce42                                   |005c: div-double/2addr v2, v4
01694a: 7140 5506 7632                         |005d: invoke-static {v6, v7, v2, v3}, Ljava/lang/StrictMath;.pow:(DD)D // method@0655
016950: 0b02                                   |0060: move-result-wide v2
016952: 2809                                   |0061: goto 006a // +0009
016954: 5382 6501                              |0062: iget-wide v2, v8, Lcom/valentinedesigns/chromalink/GameEngine;.elapsedMs:J // field@0165
016958: 8622                                   |0064: long-to-double v2, v2
01695a: ce42                                   |0065: div-double/2addr v2, v4
01695c: 7140 4a06 7632                         |0066: invoke-static {v6, v7, v2, v3}, Ljava/lang/Math;.pow:(DD)D // method@064a
016962: 0b02                                   |0069: move-result-wide v2
016964: cd20                                   |006a: mul-double/2addr v0, v2
016966: 8c00                                   |006b: double-to-float v0, v0
016968: 1501 7043                              |006c: const/high16 v1, #int 1131413504 // #4370
01696c: 7120 4306 0100                         |006e: invoke-static {v1, v0}, Ljava/lang/Math;.max:(FF)F // method@0643
016972: 0a00                                   |0071: move-result v0
016974: 0f00                                   |0072: return v0
016976: 1500 807f                              |0073: const/high16 v0, #int 2139095040 // #7f80
01697a: 0f00                                   |0075: return v0
      catches       : (none)
      positions     :
        0x0000 line=320
        0x0012 line=321
        0x001b line=322
        0x0031 line=323
        0x0041 line=322
        0x0042 line=324
        0x0059 line=325
        0x006c line=324
        0x0073 line=320
      locals        :
        0x0000 - 0x0076 reg=8 this Lcom/valentinedesigns/chromalink/GameEngine;

    #12              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'isDuel'
      type          : '()Z'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 3
      ins           : 1
      outs          : 0
      insns size    : 23 16-bit code units
0158b8:                                        |[0158b8] com.valentinedesigns.chromalink.GameEngine.isDuel:()Z
0158c8: 5420 6b01                              |0000: iget-object v0, v2, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
0158cc: 6201 1f01                              |0002: sget-object v1, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.DUEL:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@011f
0158d0: 3210 1100                              |0004: if-eq v0, v1, 0015 // +0011
0158d4: 5420 6b01                              |0006: iget-object v0, v2, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
0158d8: 6201 1d01                              |0008: sget-object v1, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.CAMPAIGN:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@011d
0158dc: 3210 0b00                              |000a: if-eq v0, v1, 0015 // +000b
0158e0: 5420 6b01                              |000c: iget-object v0, v2, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
0158e4: 6201 2101                              |000e: sget-object v1, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.ONLINE:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@0121
0158e8: 3310 0300                              |0010: if-ne v0, v1, 0013 // +0003
0158ec: 2803                                   |0012: goto 0015 // +0003
0158ee: 1200                                   |0013: const/4 v0, #int 0 // #0
0158f0: 2802                                   |0014: goto 0016 // +0002
0158f2: 1210                                   |0015: const/4 v0, #int 1 // #1
0158f4: 0f00                                   |0016: return v0
      catches       : (none)
      positions     :
        0x0000 line=189
      locals        :
        0x0000 - 0x0017 reg=2 this Lcom/valentinedesigns/chromalink/GameEngine;

    #13              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'nextPair'
      type          : '(I)[I'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 5
      ins           : 2
      outs          : 3
      insns size    : 19 16-bit code units
016cbc:                                        |[016cbc] com.valentinedesigns.chromalink.GameEngine.nextPair:(I)[I
016ccc: 5430 6e01                              |0000: iget-object v0, v3, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
016cd0: 5431 6e01                              |0002: iget-object v1, v3, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
016cd4: 7110 0b03 0100                         |0004: invoke-static {v1}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetindex:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)I // method@030b
016cda: 0a01                                   |0007: move-result v1
016cdc: 1202                                   |0008: const/4 v2, #int 0 // #0
016cde: 7120 4406 4200                         |0009: invoke-static {v2, v4}, Ljava/lang/Math;.max:(II)I // method@0644
016ce4: 0a04                                   |000c: move-result v4
016ce6: b041                                   |000d: add-int/2addr v1, v4
016ce8: 7030 4c03 0301                         |000e: invoke-direct {v3, v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine;.pairAt:(Lcom/valentinedesigns/chromalink/GameEngine$Well;I)[I // method@034c
016cee: 0c04                                   |0011: move-result-object v4
016cf0: 1104                                   |0012: return-object v4
      catches       : (none)
      positions     :
        0x0000 line=184
      locals        :
        0x0000 - 0x0013 reg=3 this Lcom/valentinedesigns/chromalink/GameEngine;
        0x0000 - 0x0013 reg=4 (null) I

    #14              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'nextPair'
      type          : '(Lcom/valentinedesigns/chromalink/GameEngine$Well;I)[I'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 5
      ins           : 3
      outs          : 3
      insns size    : 15 16-bit code units
016c8c:                                        |[016c8c] com.valentinedesigns.chromalink.GameEngine.nextPair:(Lcom/valentinedesigns/chromalink/GameEngine$Well;I)[I
016c9c: 7110 0b03 0300                         |0000: invoke-static {v3}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetindex:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)I // method@030b
016ca2: 0a00                                   |0003: move-result v0
016ca4: 1201                                   |0004: const/4 v1, #int 0 // #0
016ca6: 7120 4406 4100                         |0005: invoke-static {v1, v4}, Ljava/lang/Math;.max:(II)I // method@0644
016cac: 0a04                                   |0008: move-result v4
016cae: b040                                   |0009: add-int/2addr v0, v4
016cb0: 7030 4c03 3200                         |000a: invoke-direct {v2, v3, v0}, Lcom/valentinedesigns/chromalink/GameEngine;.pairAt:(Lcom/valentinedesigns/chromalink/GameEngine$Well;I)[I // method@034c
016cb6: 0c03                                   |000d: move-result-object v3
016cb8: 1103                                   |000e: return-object v3
      catches       : (none)
      positions     :
        0x0000 line=185
      locals        :
        0x0000 - 0x000f reg=2 this Lcom/valentinedesigns/chromalink/GameEngine;
        0x0000 - 0x000f reg=3 (null) Lcom/valentinedesigns/chromalink/GameEngine$Well;
        0x0000 - 0x000f reg=4 (null) I

    #15              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'onlineLocalSide'
      type          : '()I'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 2
      ins           : 1
      outs          : 0
      insns size    : 3 16-bit code units
016c2c:                                        |[016c2c] com.valentinedesigns.chromalink.GameEngine.onlineLocalSide:()I
016c3c: 5210 6c01                              |0000: iget v0, v1, Lcom/valentinedesigns/chromalink/GameEngine;.onlineLocalSide:I // field@016c
016c40: 0f00                                   |0002: return v0
      catches       : (none)
      positions     :
        0x0000 line=176
      locals        :
        0x0000 - 0x0003 reg=1 this Lcom/valentinedesigns/chromalink/GameEngine;

    #16              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'onlineStateHash'
      type          : '()Ljava/lang/String;'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 6
      ins           : 1
      outs          : 3
      insns size    : 120 16-bit code units
016ff0:                                        |[016ff0] com.valentinedesigns.chromalink.GameEngine.onlineStateHash:()Ljava/lang/String;
017000: 5450 6b01                              |0000: iget-object v0, v5, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
017004: 6201 2101                              |0002: sget-object v1, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.ONLINE:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@0121
017008: 3310 6c00                              |0004: if-ne v0, v1, 0070 // +006c
01700c: 2200 b800                              |0006: new-instance v0, Lcom/valentinedesigns/chromalink/GameEngine$StateHash; // type@00b8
017010: 1201                                   |0008: const/4 v1, #int 0 // #0
017012: 7020 0003 1000                         |0009: invoke-direct {v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.<init>:(Lcom/valentinedesigns/chromalink/GameEngine$StateHash-IA;)V // method@0300
017018: 5351 7001                              |000c: iget-wide v1, v5, Lcom/valentinedesigns/chromalink/GameEngine;.seed:J // field@0170
01701c: 6e30 0103 1002                         |000e: invoke-virtual {v0, v1, v2}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
017022: 5251 7201                              |0011: iget v1, v5, Lcom/valentinedesigns/chromalink/GameEngine;.startStage:I // field@0172
017026: 8111                                   |0013: int-to-long v1, v1
017028: 6e30 0103 1002                         |0014: invoke-virtual {v0, v1, v2}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
01702e: 5251 7101                              |0017: iget v1, v5, Lcom/valentinedesigns/chromalink/GameEngine;.stage:I // field@0171
017032: 8111                                   |0019: int-to-long v1, v1
017034: 6e30 0103 1002                         |001a: invoke-virtual {v0, v1, v2}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
01703a: 5351 6301                              |001d: iget-wide v1, v5, Lcom/valentinedesigns/chromalink/GameEngine;.clockMs:D // field@0163
01703e: 7120 2706 2100                         |001f: invoke-static {v1, v2}, Ljava/lang/Double;.doubleToLongBits:(D)J // method@0627
017044: 0b01                                   |0022: move-result-wide v1
017046: 6e30 0103 1002                         |0023: invoke-virtual {v0, v1, v2}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
01704c: 5351 6501                              |0026: iget-wide v1, v5, Lcom/valentinedesigns/chromalink/GameEngine;.elapsedMs:J // field@0165
017050: 6e30 0103 1002                         |0028: invoke-virtual {v0, v1, v2}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
017056: 5551 6601                              |002b: iget-boolean v1, v5, Lcom/valentinedesigns/chromalink/GameEngine;.ended:Z // field@0166
01705a: 3801 0500                              |002d: if-eqz v1, 0032 // +0005
01705e: 1601 0100                              |002f: const-wide/16 v1, #int 1 // #1
017062: 2803                                   |0031: goto 0034 // +0003
017064: 1601 0000                              |0032: const-wide/16 v1, #int 0 // #0
017068: 6e30 0103 1002                         |0034: invoke-virtual {v0, v1, v2}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
01706e: 5551 6601                              |0037: iget-boolean v1, v5, Lcom/valentinedesigns/chromalink/GameEngine;.ended:Z // field@0166
017072: 1212                                   |0039: const/4 v2, #int 1 // #1
017074: 3801 0f00                              |003a: if-eqz v1, 0049 // +000f
017078: 5551 7301                              |003c: iget-boolean v1, v5, Lcom/valentinedesigns/chromalink/GameEngine;.won:Z // field@0173
01707c: 3801 0500                              |003e: if-eqz v1, 0043 // +0005
017080: 5251 6c01                              |0040: iget v1, v5, Lcom/valentinedesigns/chromalink/GameEngine;.onlineLocalSide:I // field@016c
017084: 2805                                   |0042: goto 0047 // +0005
017086: 5251 6c01                              |0043: iget v1, v5, Lcom/valentinedesigns/chromalink/GameEngine;.onlineLocalSide:I // field@016c
01708a: d901 0101                              |0045: rsub-int/lit8 v1, v1, #int 1 // #01
01708e: 8113                                   |0047: int-to-long v3, v1
017090: 2803                                   |0048: goto 004b // +0003
017092: 1603 ffff                              |0049: const-wide/16 v3, #int -1 // #ffff
017096: 6e30 0103 3004                         |004b: invoke-virtual {v0, v3, v4}, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.add:(J)V // method@0301
01709c: 1201                                   |004e: const/4 v1, #int 0 // #0
01709e: 6e20 5e03 1500                         |004f: invoke-virtual {v5, v1}, Lcom/valentinedesigns/chromalink/GameEngine;.wellForSide:(I)Lcom/valentinedesigns/chromalink/GameEngine$Well; // method@035e
0170a4: 0c01                                   |0052: move-result-object v1
0170a6: 7120 4003 1000                         |0053: invoke-static {v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine;.hashWell:(Lcom/valentinedesigns/chromalink/GameEngine$StateHash;Lcom/valentinedesigns/chromalink/GameEngine$Well;)V // method@0340
0170ac: 6e20 5e03 2500                         |0056: invoke-virtual {v5, v2}, Lcom/valentinedesigns/chromalink/GameEngine;.wellForSide:(I)Lcom/valentinedesigns/chromalink/GameEngine$Well; // method@035e
0170b2: 0c01                                   |0059: move-result-object v1
0170b4: 7120 4003 1000                         |005a: invoke-static {v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine;.hashWell:(Lcom/valentinedesigns/chromalink/GameEngine$StateHash;Lcom/valentinedesigns/chromalink/GameEngine$Well;)V // method@0340
0170ba: 6201 2403                              |005d: sget-object v1, Ljava/util/Locale;.ROOT:Ljava/util/Locale; // field@0324
0170be: 5302 3701                              |005f: iget-wide v2, v0, Lcom/valentinedesigns/chromalink/GameEngine$StateHash;.value:J // field@0137
0170c2: 7120 3806 3200                         |0061: invoke-static {v2, v3}, Ljava/lang/Long;.valueOf:(J)Ljava/lang/Long; // method@0638
0170c8: 0c00                                   |0064: move-result-object v0
0170ca: 2410 7f01 0000                         |0065: filled-new-array {v0}, [Ljava/lang/Object; // type@017f
0170d0: 0c00                                   |0068: move-result-object v0
0170d2: 1a02 5c00                              |0069: const-string v2, "%016x" // string@005c
0170d6: 7130 5c06 2100                         |006b: invoke-static {v1, v2, v0}, Ljava/lang/String;.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; // method@065c
0170dc: 0c00                                   |006e: move-result-object v0
0170de: 1100                                   |006f: return-object v0
0170e0: 2200 3e01                              |0070: new-instance v0, Ljava/lang/IllegalStateException; // type@013e
0170e4: 1a01 eb03                              |0072: const-string v1, "Not an online engine" // string@03eb
0170e8: 7020 2f06 1000                         |0074: invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;.<init>:(Ljava/lang/String;)V // method@062f
0170ee: 2700                                   |0077: throw v0
      catches       : (none)
      positions     :
        0x0000 line=499
        0x0006 line=500
        0x000c line=501
        0x0026 line=502
        0x004e line=503
        0x005d line=504
        0x0070 line=499
      locals        :
        0x0000 - 0x0078 reg=5 this Lcom/valentinedesigns/chromalink/GameEngine;

    #17              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'queueAttack'
      type          : '(Lcom/valentinedesigns/chromalink/GameEngine$Well;I)V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 6
      ins           : 3
      outs          : 3
      insns size    : 26 16-bit code units
0185ac:                                        |[0185ac] com.valentinedesigns.chromalink.GameEngine.queueAttack:(Lcom/valentinedesigns/chromalink/GameEngine$Well;I)V
0185bc: 3804 1900                              |0000: if-eqz v4, 0019 // +0019
0185c0: 3c05 0300                              |0002: if-gtz v5, 0005 // +0003
0185c4: 2815                                   |0004: goto 0019 // +0015
0185c6: 7110 0c03 0400                         |0005: invoke-static {v4}, Lcom/valentinedesigns/chromalink/GameEngine$Well;.-$$Nest$fgetpackets:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)Ljava/util/List; // method@030c
0185cc: 0c00                                   |0008: move-result-object v0
0185ce: 2201 b200                              |0009: new-instance v1, Lcom/valentinedesigns/chromalink/GameEngine$Packet; // type@00b2
0185d2: 5242 4701                              |000b: iget v2, v4, Lcom/valentinedesigns/chromalink/GameEngine$Well;.moves:I // field@0147
0185d6: d802 0201                              |000d: add-int/lit8 v2, v2, #int 1 // #01
0185da: 7030 f902 5102                         |000f: invoke-direct {v1, v5, v2}, Lcom/valentinedesigns/chromalink/GameEngine$Packet;.<init>:(II)V // method@02f9
0185e0: 7220 9606 1000                         |0012: invoke-interface {v0, v1}, Ljava/util/List;.add:(Ljava/lang/Object;)Z // method@0696
0185e6: 7020 5203 4300                         |0015: invoke-direct {v3, v4}, Lcom/valentinedesigns/chromalink/GameEngine;.refreshIncoming:(Lcom/valentinedesigns/chromalink/GameEngine$Well;)V // method@0352
0185ec: 0e00                                   |0018: return-void
0185ee: 0e00                                   |0019: return-void
      catches       : (none)
      positions     :
        0x0000 line=482
        0x0005 line=483
        0x0018 line=484
        0x0019 line=482
      locals        :
        0x0000 - 0x001a reg=3 this Lcom/valentinedesigns/chromalink/GameEngine;
        0x0000 - 0x001a reg=4 (null) Lcom/valentinedesigns/chromalink/GameEngine$Well;
        0x0000 - 0x001a reg=5 (null) I

    #18              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'seed'
      type          : '()J'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 3
      ins           : 1
      outs          : 0
      insns size    : 3 16-bit code units
017314:                                        |[017314] com.valentinedesigns.chromalink.GameEngine.seed:()J
017324: 5320 7001                              |0000: iget-wide v0, v2, Lcom/valentinedesigns/chromalink/GameEngine;.seed:J // field@0170
017328: 1000                                   |0002: return-wide v0
      catches       : (none)
      positions     :
        0x0000 line=187
      locals        :
        0x0000 - 0x0003 reg=2 this Lcom/valentinedesigns/chromalink/GameEngine;

    #19              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'stage'
      type          : '()I'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 2
      ins           : 1
      outs          : 0
      insns size    : 3 16-bit code units
016c74:                                        |[016c74] com.valentinedesigns.chromalink.GameEngine.stage:()I
016c84: 5210 7101                              |0000: iget v0, v1, Lcom/valentinedesigns/chromalink/GameEngine;.stage:I // field@0171
016c88: 0f00                                   |0002: return v0
      catches       : (none)
      positions     :
        0x0000 line=186
      locals        :
        0x0000 - 0x0003 reg=1 this Lcom/valentinedesigns/chromalink/GameEngine;

    #20              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'update'
      type          : '(F)V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 9
      ins           : 2
      outs          : 3
      insns size    : 154 16-bit code units
018740:                                        |[018740] com.valentinedesigns.chromalink.GameEngine.update:(F)V
018750: 5570 6d01                              |0000: iget-boolean v0, v7, Lcom/valentinedesigns/chromalink/GameEngine;.paused:Z // field@016d
018754: 3900 9700                              |0002: if-nez v0, 0099 // +0097
018758: 5570 6601                              |0004: iget-boolean v0, v7, Lcom/valentinedesigns/chromalink/GameEngine;.ended:Z // field@0166
01875c: 3900 9300                              |0006: if-nez v0, 0099 // +0093
018760: 7110 2c06 0800                         |0008: invoke-static {v8}, Ljava/lang/Float;.isFinite:(F)Z // method@062c
018766: 0a00                                   |000b: move-result v0
018768: 3800 8d00                              |000c: if-eqz v0, 0099 // +008d
01876c: 1200                                   |000e: const/4 v0, #int 0 // #0
01876e: 2e00 0800                              |000f: cmpg-float v0, v8, v0
018772: 3c00 0400                              |0011: if-gtz v0, 0015 // +0004
018776: 2900 8600                              |0013: goto/16 0099 // +0086
01877a: 1500 4842                              |0015: const/high16 v0, #int 1112014848 // #4248
01877e: 7120 4706 0800                         |0017: invoke-static {v8, v0}, Ljava/lang/Math;.min:(FF)F // method@0647
018784: 0a08                                   |001a: move-result v8
018786: 5370 6301                              |001b: iget-wide v0, v7, Lcom/valentinedesigns/chromalink/GameEngine;.clockMs:D // field@0163
01878a: 8982                                   |001d: float-to-double v2, v8
01878c: cb20                                   |001e: add-double/2addr v0, v2
01878e: 5a70 6301                              |001f: iput-wide v0, v7, Lcom/valentinedesigns/chromalink/GameEngine;.clockMs:D // field@0163
018792: 5370 6301                              |0021: iget-wide v0, v7, Lcom/valentinedesigns/chromalink/GameEngine;.clockMs:D // field@0163
018796: 8b00                                   |0023: double-to-long v0, v0
018798: 5a70 6501                              |0024: iput-wide v0, v7, Lcom/valentinedesigns/chromalink/GameEngine;.elapsedMs:J // field@0165
01879c: 5270 7101                              |0026: iget v0, v7, Lcom/valentinedesigns/chromalink/GameEngine;.stage:I // field@0171
0187a0: 1211                                   |0028: const/4 v1, #int 1 // #1
0187a2: b010                                   |0029: add-int/2addr v0, v1
0187a4: 5472 6b01                              |002a: iget-object v2, v7, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
0187a8: 6203 1d01                              |002c: sget-object v3, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.CAMPAIGN:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@011d
0187ac: 1204                                   |002e: const/4 v4, #int 0 // #0
0187ae: 3332 0400                              |002f: if-ne v2, v3, 0033 // +0004
0187b2: 0142                                   |0031: move v2, v4
0187b4: 2814                                   |0032: goto 0046 // +0014
0187b6: 7010 3f03 0700                         |0033: invoke-direct {v7}, Lcom/valentinedesigns/chromalink/GameEngine;.hasLiveDifficulty:()Z // method@033f
0187bc: 0a02                                   |0036: move-result v2
0187be: 3802 0700                              |0037: if-eqz v2, 003e // +0007
0187c2: 6e10 3403 0700                         |0039: invoke-virtual {v7}, Lcom/valentinedesigns/chromalink/GameEngine;.difficultyUnits:()D // method@0334
0187c8: 0b02                                   |003c: move-result-wide v2
0187ca: 2808                                   |003d: goto 0045 // +0008
0187cc: 5372 6501                              |003e: iget-wide v2, v7, Lcom/valentinedesigns/chromalink/GameEngine;.elapsedMs:J // field@0165
0187d0: 1705 c8af 0000                         |0040: const-wide/32 v5, #float 6.30584e-41 // #0000afc8
0187d6: be52                                   |0043: div-long/2addr v2, v5
0187d8: 8622                                   |0044: long-to-double v2, v2
0187da: 8a22                                   |0045: double-to-int v2, v2
0187dc: b020                                   |0046: add-int/2addr v0, v2
0187de: 5970 6701                              |0047: iput v0, v7, Lcom/valentinedesigns/chromalink/GameEngine;.heat:I // field@0167
0187e2: 5470 6b01                              |0049: iget-object v0, v7, Lcom/valentinedesigns/chromalink/GameEngine;.mode:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@016b
0187e6: 6202 2101                              |004b: sget-object v2, Lcom/valentinedesigns/chromalink/GameEngine$Mode;.ONLINE:Lcom/valentinedesigns/chromalink/GameEngine$Mode; // field@0121
0187ea: 3320 1500                              |004d: if-ne v0, v2, 0062 // +0015
0187ee: 6e20 5e03 4700                         |004f: invoke-virtual {v7, v4}, Lcom/valentinedesigns/chromalink/GameEngine;.wellForSide:(I)Lcom/valentinedesigns/chromalink/GameEngine$Well; // method@035e
0187f4: 0c00                                   |0052: move-result-object v0
0187f6: 7030 5d03 0708                         |0053: invoke-direct {v7, v0, v8}, Lcom/valentinedesigns/chromalink/GameEngine;.updateWell:(Lcom/valentinedesigns/chromalink/GameEngine$Well;F)V // method@035d
0187fc: 5570 6601                              |0056: iget-boolean v0, v7, Lcom/valentinedesigns/chromalink/GameEngine;.ended:Z // field@0166
018800: 3900 1e00                              |0058: if-nez v0, 0076 // +001e
018804: 6e20 5e03 1700                         |005a: invoke-virtual {v7, v1}, Lcom/valentinedesigns/chromalink/GameEngine;.wellForSide:(I)Lcom/valentinedesigns/chromalink/GameEngine$Well; // method@035e
01880a: 0c00                                   |005d: move-result-object v0
01880c: 7030 5d03 0708                         |005e: invoke-direct {v7, v0, v8}, Lcom/valentinedesigns/chromalink/GameEngine;.updateWell:(Lcom/valentinedesigns/chromalink/GameEngine$Well;F)V // method@035d
018812: 2815                                   |0061: goto 0076 // +0015
018814: 5470 6e01                              |0062: iget-object v0, v7, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
018818: 7030 5d03 0708                         |0064: invoke-direct {v7, v0, v8}, Lcom/valentinedesigns/chromalink/GameEngine;.updateWell:(Lcom/valentinedesigns/chromalink/GameEngine$Well;F)V // method@035d
01881e: 5570 6601                              |0067: iget-boolean v0, v7, Lcom/valentinedesigns/chromalink/GameEngine;.ended:Z // field@0166
018822: 3900 0d00                              |0069: if-nez v0, 0076 // +000d
018826: 6e10 4103 0700                         |006b: invoke-virtual {v7}, Lcom/valentinedesigns/chromalink/GameEngine;.isDuel:()Z // method@0341
01882c: 0a00                                   |006e: move-result v0
01882e: 3800 0700                              |006f: if-eqz v0, 0076 // +0007
018832: 5470 6401                              |0071: iget-object v0, v7, Lcom/valentinedesigns/chromalink/GameEngine;.cpu:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@0164
018836: 7030 5d03 0708                         |0073: invoke-direct {v7, v0, v8}, Lcom/valentinedesigns/chromalink/GameEngine;.updateWell:(Lcom/valentinedesigns/chromalink/GameEngine$Well;F)V // method@035d
01883c: 5470 6e01                              |0076: iget-object v0, v7, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
018840: 5400 3b01                              |0078: iget-object v0, v0, Lcom/valentinedesigns/chromalink/GameEngine$Well;.board:[[I // field@013b
018844: 5471 6e01                              |007a: iget-object v1, v7, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
018848: 5211 4301                              |007c: iget v1, v1, Lcom/valentinedesigns/chromalink/GameEngine$Well;.incoming:I // field@0143
01884c: 7120 5003 1000                         |007e: invoke-static {v0, v1}, Lcom/valentinedesigns/chromalink/GameEngine;.pressureFor:([[II)F // method@0350
018852: 0a00                                   |0081: move-result v0
018854: 5271 6f01                              |0082: iget v1, v7, Lcom/valentinedesigns/chromalink/GameEngine;.pressure:F // field@016f
018858: 5272 6f01                              |0084: iget v2, v7, Lcom/valentinedesigns/chromalink/GameEngine;.pressure:F // field@016f
01885c: c720                                   |0086: sub-float/2addr v0, v2
01885e: 7f88                                   |0087: neg-float v8, v8
018860: 1502 9643                              |0088: const/high16 v2, #int 1133903872 // #4396
018864: c928                                   |008a: div-float/2addr v8, v2
018866: 8982                                   |008b: float-to-double v2, v8
018868: 7120 3e06 3200                         |008c: invoke-static {v2, v3}, Ljava/lang/Math;.exp:(D)D // method@063e
01886e: 0b02                                   |008f: move-result-wide v2
018870: 8c28                                   |0090: double-to-float v8, v2
018872: 1502 803f                              |0091: const/high16 v2, #int 1065353216 // #3f80
018876: c782                                   |0093: sub-float/2addr v2, v8
018878: c820                                   |0094: mul-float/2addr v0, v2
01887a: c601                                   |0095: add-float/2addr v1, v0
01887c: 5971 6f01                              |0096: iput v1, v7, Lcom/valentinedesigns/chromalink/GameEngine;.pressure:F // field@016f
018880: 0e00                                   |0098: return-void
018882: 0e00                                   |0099: return-void
      catches       : (none)
      positions     :
        0x0000 line=234
        0x0015 line=235
        0x001b line=236
        0x0026 line=237
        0x0049 line=238
        0x004f line=239
        0x0056 line=240
        0x0062 line=242
        0x0067 line=243
        0x0076 line=245
        0x0082 line=246
        0x0098 line=247
        0x0099 line=234
      locals        :
        0x0000 - 0x009a reg=7 this Lcom/valentinedesigns/chromalink/GameEngine;
        0x0000 - 0x009a reg=8 (null) F

    #21              : (in Lcom/valentinedesigns/chromalink/GameEngine;)
      name          : 'wellForSide'
      type          : '(I)Lcom/valentinedesigns/chromalink/GameEngine$Well;'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 3
      ins           : 2
      outs          : 2
      insns size    : 23 16-bit code units
016358:                                        |[016358] com.valentinedesigns.chromalink.GameEngine.wellForSide:(I)Lcom/valentinedesigns/chromalink/GameEngine$Well;
016368: 3a02 0f00                              |0000: if-ltz v2, 000f // +000f
01636c: 1210                                   |0002: const/4 v0, #int 1 // #1
01636e: 3602 0c00                              |0003: if-gt v2, v0, 000f // +000c
016372: 5210 6c01                              |0005: iget v0, v1, Lcom/valentinedesigns/chromalink/GameEngine;.onlineLocalSide:I // field@016c
016376: 3302 0500                              |0007: if-ne v2, v0, 000c // +0005
01637a: 5412 6e01                              |0009: iget-object v2, v1, Lcom/valentinedesigns/chromalink/GameEngine;.player:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@016e
01637e: 2803                                   |000b: goto 000e // +0003
016380: 5412 6401                              |000c: iget-object v2, v1, Lcom/valentinedesigns/chromalink/GameEngine;.cpu:Lcom/valentinedesigns/chromalink/GameEngine$Well; // field@0164
016384: 1102                                   |000e: return-object v2
016386: 2202 3d01                              |000f: new-instance v2, Ljava/lang/IllegalArgumentException; // type@013d
01638a: 1a00 df08                              |0011: const-string v0, "online side" // string@08df
01638e: 7020 2e06 0200                         |0013: invoke-direct {v2, v0}, Ljava/lang/IllegalArgumentException;.<init>:(Ljava/lang/String;)V // method@062e
016394: 2702                                   |0016: throw v2
      catches       : (none)
      positions     :
        0x0000 line=179
        0x0005 line=180
        0x000f line=179
      locals        :
        0x0000 - 0x0017 reg=1 this Lcom/valentinedesigns/chromalink/GameEngine;
        0x0000 - 0x0017 reg=2 (null) I

  source_file_idx   : 415 (GameEngine.java)

Class #50 annotations:
Annotations on class
  VISIBILITY_SYSTEM Ldalvik/annotation/EnclosingClass; value=Lcom/valentinedesigns/chromalink/GameView;
  VISIBILITY_SYSTEM Ldalvik/annotation/InnerClass; accessFlags=26 name="ClearRing"

