--- /home/fdroid/fdroiddata/tmp/org.purple.smokestack_20220420.apk +++ /home/fdroid/fdroiddata/tmp/sigcp_org.purple.smokestack_20220420.apk ├── /usr/lib/android-sdk/build-tools/debian/apksigner verify --verbose --print-certs {} │┄ error from `/usr/lib/android-sdk/build-tools/debian/apksigner verify --verbose --print-certs {}` (b): │┄ DOES NOT VERIFY │┄ ERROR: APK Signature Scheme v3 signer #1: APK integrity check failed. CHUNKED_SHA256 digest mismatch. Expected: , actual: <00267b091b05fbe971bbf1bfbb73cb2dda195ed334094a401a7720dca48aa863> │┄ ERROR: APK Signature Scheme v3 signer #1: APK integrity check failed. VERITY_CHUNKED_SHA256 digest mismatch. Expected: <2efec60daeee98f5647095024cb0c846f330bc8c8dbd0c2a4ea279fbf6317245b32a330000000000>, actual: <6580ee667246213bb485d73892c4c1250b1e051bf206d8663ee6825bf2285159b32a330000000000> │ @@ -1,18 +0,0 @@ │ -Verifies │ -Verified using v1 scheme (JAR signing): true │ -Verified using v2 scheme (APK Signature Scheme v2): true │ -Verified using v3 scheme (APK Signature Scheme v3): true │ -Verified using v4 scheme (APK Signature Scheme v4): false │ -Verified for SourceStamp: false │ -Number of signers: 1 │ -Signer #1 certificate DN: CN=FDroid, OU=FDroid, O=fdroid.org, L=ORG, ST=ORG, C=UK │ -Signer #1 certificate SHA-256 digest: 2ead34fd4f36a9bcbc2243bd79cdeefecd70465032f788a880faa3c5bb4f485e │ -Signer #1 certificate SHA-1 digest: ef8670b2e5b8a4241d7f55508e2c477b4257a3bc │ -Signer #1 certificate MD5 digest: 4d5057a8de08ab9b883fc4a675996448 │ -Signer #1 key algorithm: RSA │ -Signer #1 key size (bits): 2048 │ -Signer #1 public key SHA-256 digest: 408187b583495f99788ae12682fa926b48d1062cd6d0cc4516af739663feeca0 │ -Signer #1 public key SHA-1 digest: 2b3fcc03cfffe4d84a2d2b86b70c1764a50885cd │ -Signer #1 public key MD5 digest: f56ff7990426b2e44c5b5e994fed4c00 │ -WARNING: META-INF/com/android/build/gradle/app-metadata.properties not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/services/java.security.Provider not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. ├── zipinfo {} │ @@ -1,10 +1,10 @@ │ Zip file size: 3357363 bytes, number of entries: 459 │ -rw-rw-rw- 0.0 unx 56 b- defN 81-Jan-01 01:01 META-INF/com/android/build/gradle/app-metadata.properties │ --rw-rw-rw- 0.0 unx 7059424 b- defN 81-Jan-01 01:01 classes.dex │ +-rw-rw-rw- 0.0 unx 7059420 b- defN 81-Jan-01 01:01 classes.dex │ -rw---- 2.4 fat 112 b- defN 81-Jan-01 01:01 META-INF/services/java.security.Provider │ -rw---- 2.4 fat 42868 b- defN 81-Jan-01 01:01 org/bouncycastle/x509/CertPathReviewerMessages.properties │ -rw---- 2.4 fat 49608 b- defN 81-Jan-01 01:01 org/bouncycastle/x509/CertPathReviewerMessages_de.properties │ -rw---- 0.0 fat 3100 b- defN 81-Jan-01 01:01 AndroidManifest.xml │ -rw---- 0.0 fat 421 b- stor 81-Jan-01 01:01 res/-A.png │ -rw---- 0.0 fat 1396 b- defN 81-Jan-01 01:01 res/-Y.xml │ -rw---- 0.0 fat 520 b- defN 81-Jan-01 01:01 res/-c.xml │ @@ -454,8 +454,8 @@ │ -rw---- 0.0 fat 318 b- stor 81-Jan-01 01:01 res/zN.png │ -rw---- 0.0 fat 887 b- stor 81-Jan-01 01:01 res/zQ.png │ -rw---- 0.0 fat 840 b- defN 81-Jan-01 01:01 res/zq.xml │ -rw---- 0.0 fat 250128 b- stor 81-Jan-01 01:01 resources.arsc │ -rw---- 2.0 fat 39108 b- defN 81-Jan-01 01:01 META-INF/85C0A9DA.SF │ -rw---- 2.0 fat 1334 b- defN 81-Jan-01 01:01 META-INF/85C0A9DA.RSA │ -rw---- 2.0 fat 38981 b- defN 81-Jan-01 01:01 META-INF/MANIFEST.MF │ -459 files, 7781285 bytes uncompressed, 3302963 bytes compressed: 57.6% │ +459 files, 7781281 bytes uncompressed, 3303100 bytes compressed: 57.6% ├── classes.dex │ ├── dexdump -a -d -f -h {} │ │┄ Ignoring differences in offsets to keep diff size reasonable. │ │ @@ -1,13 +1,13 @@ │ │ DEX version '035' │ │ DEX file header: │ │ magic : 'dex\n035\0' │ │ -checksum : 39a032db │ │ -signature : 0494...9ab0 │ │ -file_size : 7059424 │ │ +checksum : 7955e343 │ │ +signature : 6492...1147 │ │ +file_size : 7059420 │ │ header_size : 112 │ │ link_size : 0 │ │ link_off : 0 (0x000000) │ │ string_ids_size : 47374 │ │ string_ids_off : 112 (0x000070) │ │ type_ids_size : 8227 │ │ type_ids_off : 189608 (0x02e4a8) │ │ @@ -15,15 +15,15 @@ │ │ proto_ids_off : 222516 (0x036534) │ │ field_ids_size : 27083 │ │ field_ids_off : 349332 (0x055494) │ │ method_ids_size : 53983 │ │ method_ids_off : 565996 (0x08a2ec) │ │ class_defs_size : 7030 │ │ class_defs_off : 997860 (0x0f39e4) │ │ -data_size : 5836604 │ │ +data_size : 5836600 │ │ data_off : 1222820 (0x12a8a4) │ │ │ │ Class #0 header: │ │ class_idx : 264 │ │ access_flags : 9729 (0x2601) │ │ superclass_idx : 2800 │ │ source_file_idx : 3625 │ │ @@ -750253,15 +750253,15 @@ │ │ 48696a: 6e20 1d5d 3200 |0037: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ 486970: 1a03 db03 |003a: const-string v3, "(Release)" // string@03db │ │ 486974: 6e20 1d5d 3200 |003c: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ 48697a: 1a03 0a00 |003f: const-string v3, " │ │ Build Date " // string@000a │ │ 48697e: 6e20 1d5d 3200 |0041: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ 486984: 2203 c00b |0044: new-instance v3, Ljava/util/Date; // type@0bc0 │ │ -486988: 1804 b35d 8c50 8001 0000 |0046: const-wide v4, #double 8.15514e-312 // #00000180508c5db3 │ │ +486988: 1804 f256 329a 8201 0000 |0046: const-wide v4, #double 8.20369e-312 // #000001829a3256f2 │ │ 486992: 7030 2860 4305 |004b: invoke-direct {v3, v4, v5}, Ljava/util/Date;.:(J)V // method@6028 │ │ 486998: 6e20 cb5f 3100 |004e: invoke-virtual {v1, v3}, Ljava/text/SimpleDateFormat;.format:(Ljava/util/Date;)Ljava/lang/String; // method@5fcb │ │ 48699e: 0c01 |0051: move-result-object v1 │ │ 4869a0: 6e20 1d5d 1200 |0052: invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ 4869a6: 1a01 e300 |0055: const-string v1, " UTC │ │ Android " // string@00e3 │ │ 4869aa: 6e20 1d5d 1200 |0057: invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ @@ -751113,15 +751113,15 @@ │ │ type : 'Ljava/lang/String;' │ │ access : 0x0019 (PUBLIC STATIC FINAL) │ │ value : "org.purple.smokestack" │ │ #1 : (in Lorg/purple/smokestack/BuildConfig;) │ │ name : 'BUILD_TIME' │ │ type : 'J' │ │ access : 0x0019 (PUBLIC STATIC FINAL) │ │ - value : 1650618817971 │ │ + value : 1660444366578 │ │ #2 : (in Lorg/purple/smokestack/BuildConfig;) │ │ name : 'BUILD_TYPE' │ │ type : 'Ljava/lang/String;' │ │ access : 0x0019 (PUBLIC STATIC FINAL) │ │ value : "release" │ │ #3 : (in Lorg/purple/smokestack/BuildConfig;) │ │ name : 'DEBUG' │ │ @@ -785847,41 +785847,40 @@ │ │ │ │ Virtual methods - │ │ #0 : (in Lorg/purple/smokestack/Settings$31;) │ │ name : 'run' │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ - registers : 6 │ │ + registers : 5 │ │ ins : 1 │ │ outs : 3 │ │ - insns size : 25 16-bit code units │ │ + insns size : 23 16-bit code units │ │ 495e40: |[495e40] org.purple.smokestack.Settings$31.run:()V │ │ -495e50: 5450 0d69 |0000: iget-object v0, v5, Lorg/purple/smokestack/Settings$31;.this$0:Lorg/purple/smokestack/Settings; // field@690d │ │ +495e50: 5440 0d69 |0000: iget-object v0, v4, Lorg/purple/smokestack/Settings$31;.this$0:Lorg/purple/smokestack/Settings; // field@690d │ │ 495e54: 2201 ee1e |0002: new-instance v1, Lorg/purple/smokestack/Settings$PopulateNeighbors; // type@1eee │ │ -495e58: 5452 0d69 |0004: iget-object v2, v5, Lorg/purple/smokestack/Settings$31;.this$0:Lorg/purple/smokestack/Settings; // field@690d │ │ -495e5c: 7110 efd1 0200 |0006: invoke-static {v2}, Lorg/purple/smokestack/Settings;.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; // method@d1ef │ │ -495e62: 0c03 |0009: move-result-object v3 │ │ -495e64: 7100 eed1 0000 |000a: invoke-static {}, Lorg/purple/smokestack/Settings;.access$400:()Lorg/purple/smokestack/Cryptography; // method@d1ee │ │ -495e6a: 0c04 |000d: move-result-object v4 │ │ -495e6c: 6e20 c8d0 4300 |000e: invoke-virtual {v3, v4}, Lorg/purple/smokestack/Database;.readNeighbors:(Lorg/purple/smokestack/Cryptography;)Ljava/util/ArrayList; // method@d0c8 │ │ -495e72: 0c03 |0011: move-result-object v3 │ │ -495e74: 7030 d6d1 2103 |0012: invoke-direct {v1, v2, v3}, Lorg/purple/smokestack/Settings$PopulateNeighbors;.:(Lorg/purple/smokestack/Settings;Ljava/util/ArrayList;)V // method@d1d6 │ │ -495e7a: 6e20 13d2 1000 |0015: invoke-virtual {v0, v1}, Lorg/purple/smokestack/Settings;.runOnUiThread:(Ljava/lang/Runnable;)V // method@d213 │ │ -495e80: 0e00 |0018: return-void │ │ +495e58: 7110 efd1 0000 |0004: invoke-static {v0}, Lorg/purple/smokestack/Settings;.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; // method@d1ef │ │ +495e5e: 0c02 |0007: move-result-object v2 │ │ +495e60: 7100 eed1 0000 |0008: invoke-static {}, Lorg/purple/smokestack/Settings;.access$400:()Lorg/purple/smokestack/Cryptography; // method@d1ee │ │ +495e66: 0c03 |000b: move-result-object v3 │ │ +495e68: 6e20 c8d0 3200 |000c: invoke-virtual {v2, v3}, Lorg/purple/smokestack/Database;.readNeighbors:(Lorg/purple/smokestack/Cryptography;)Ljava/util/ArrayList; // method@d0c8 │ │ +495e6e: 0c02 |000f: move-result-object v2 │ │ +495e70: 7030 d6d1 0102 |0010: invoke-direct {v1, v0, v2}, Lorg/purple/smokestack/Settings$PopulateNeighbors;.:(Lorg/purple/smokestack/Settings;Ljava/util/ArrayList;)V // method@d1d6 │ │ +495e76: 6e20 13d2 1000 |0013: invoke-virtual {v0, v1}, Lorg/purple/smokestack/Settings;.runOnUiThread:(Ljava/lang/Runnable;)V // method@d213 │ │ +495e7c: 0e00 |0016: return-void │ │ catches : 1 │ │ - 0x0000 - 0x0018 │ │ - Ljava/lang/Exception; -> 0x0018 │ │ + 0x0000 - 0x0016 │ │ + Ljava/lang/Exception; -> 0x0016 │ │ positions : │ │ 0x0000 line=2291 │ │ - 0x0006 line=2293 │ │ - 0x000a line=2294 │ │ - 0x0015 line=2292 │ │ + 0x0004 line=2293 │ │ + 0x0008 line=2294 │ │ + 0x0013 line=2292 │ │ locals : │ │ - 0x0000 - 0x0019 reg=5 this Lorg/purple/smokestack/Settings$31; │ │ + 0x0000 - 0x0017 reg=4 this Lorg/purple/smokestack/Settings$31; │ │ │ │ source_file_idx : 20898 (Settings.java) │ │ │ │ Class #3057 header: │ │ class_idx : 7904 │ │ access_flags : 0 (0x0000) │ │ superclass_idx : 2800 │ │ @@ -785914,18 +785913,18 @@ │ │ type : '(Lorg/purple/smokestack/Settings;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 6 16-bit code units │ │ -495e94: |[495e94] org.purple.smokestack.Settings$32.:(Lorg/purple/smokestack/Settings;)V │ │ -495ea4: 5b01 0e69 |0000: iput-object v1, v0, Lorg/purple/smokestack/Settings$32;.this$0:Lorg/purple/smokestack/Settings; // field@690e │ │ -495ea8: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ -495eae: 0e00 |0005: return-void │ │ +495e90: |[495e90] org.purple.smokestack.Settings$32.:(Lorg/purple/smokestack/Settings;)V │ │ +495ea0: 5b01 0e69 |0000: iput-object v1, v0, Lorg/purple/smokestack/Settings$32;.this$0:Lorg/purple/smokestack/Settings; // field@690e │ │ +495ea4: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ +495eaa: 0e00 |0005: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=2503 │ │ locals : │ │ 0x0000 - 0x0006 reg=0 this Lorg/purple/smokestack/Settings$32; │ │ 0x0000 - 0x0006 reg=1 (null) Lorg/purple/smokestack/Settings; │ │ │ │ @@ -785935,44 +785934,44 @@ │ │ type : '(Landroid/widget/RadioGroup;I)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 6 │ │ ins : 3 │ │ outs : 2 │ │ insns size : 64 16-bit code units │ │ -495eb0: |[495eb0] org.purple.smokestack.Settings$32.onCheckedChanged:(Landroid/widget/RadioGroup;I)V │ │ -495ec0: 5434 0e69 |0000: iget-object v4, v3, Lorg/purple/smokestack/Settings$32;.this$0:Lorg/purple/smokestack/Settings; // field@690e │ │ -495ec4: 1400 6e00 087f |0002: const v0, #float 1.80777e+38 // #7f08006e │ │ -495eca: 6e20 f6d1 0400 |0005: invoke-virtual {v4, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -495ed0: 0c04 |0008: move-result-object v4 │ │ -495ed2: 1f04 9c0a |0009: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ -495ed6: 1401 6d00 087f |000b: const v1, #float 1.80777e+38 // #7f08006d │ │ -495edc: 1402 6900 087f |000e: const v2, #float 1.80777e+38 // #7f080069 │ │ -495ee2: 3325 1a00 |0011: if-ne v5, v2, 002b // +001a │ │ -495ee6: 1205 |0013: const/4 v5, #int 0 // #0 │ │ -495ee8: 6e20 3d5b 5400 |0014: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ -495eee: 1a05 0000 |0017: const-string v5, "" // string@0000 │ │ -495ef2: 6e20 525b 5400 |0019: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ -495ef8: 5434 0e69 |001c: iget-object v4, v3, Lorg/purple/smokestack/Settings$32;.this$0:Lorg/purple/smokestack/Settings; // field@690e │ │ -495efc: 6e20 f6d1 1400 |001e: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -495f02: 0c04 |0021: move-result-object v4 │ │ -495f04: 1f04 9c0a |0022: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ -495f08: 1405 7800 087f |0024: const v5, #float 1.80777e+38 // #7f080078 │ │ -495f0e: 6e20 475b 5400 |0027: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setNextFocusDownId:(I)V // method@5b47 │ │ -495f14: 2810 |002a: goto 003a // +0010 │ │ -495f16: 1215 |002b: const/4 v5, #int 1 // #1 │ │ -495f18: 6e20 3d5b 5400 |002c: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ -495f1e: 5434 0e69 |002f: iget-object v4, v3, Lorg/purple/smokestack/Settings$32;.this$0:Lorg/purple/smokestack/Settings; // field@690e │ │ -495f22: 6e20 f6d1 1400 |0031: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -495f28: 0c04 |0034: move-result-object v4 │ │ -495f2a: 1f04 9c0a |0035: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ -495f2e: 6e20 475b 0400 |0037: invoke-virtual {v4, v0}, Landroid/widget/TextView;.setNextFocusDownId:(I)V // method@5b47 │ │ -495f34: 5434 0e69 |003a: iget-object v4, v3, Lorg/purple/smokestack/Settings$32;.this$0:Lorg/purple/smokestack/Settings; // field@690e │ │ -495f38: 7110 e4d1 0400 |003c: invoke-static {v4}, Lorg/purple/smokestack/Settings;.access$1600:(Lorg/purple/smokestack/Settings;)V // method@d1e4 │ │ -495f3e: 0e00 |003f: return-void │ │ +495eac: |[495eac] org.purple.smokestack.Settings$32.onCheckedChanged:(Landroid/widget/RadioGroup;I)V │ │ +495ebc: 5434 0e69 |0000: iget-object v4, v3, Lorg/purple/smokestack/Settings$32;.this$0:Lorg/purple/smokestack/Settings; // field@690e │ │ +495ec0: 1400 6e00 087f |0002: const v0, #float 1.80777e+38 // #7f08006e │ │ +495ec6: 6e20 f6d1 0400 |0005: invoke-virtual {v4, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +495ecc: 0c04 |0008: move-result-object v4 │ │ +495ece: 1f04 9c0a |0009: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ +495ed2: 1401 6d00 087f |000b: const v1, #float 1.80777e+38 // #7f08006d │ │ +495ed8: 1402 6900 087f |000e: const v2, #float 1.80777e+38 // #7f080069 │ │ +495ede: 3325 1a00 |0011: if-ne v5, v2, 002b // +001a │ │ +495ee2: 1205 |0013: const/4 v5, #int 0 // #0 │ │ +495ee4: 6e20 3d5b 5400 |0014: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ +495eea: 1a05 0000 |0017: const-string v5, "" // string@0000 │ │ +495eee: 6e20 525b 5400 |0019: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ +495ef4: 5434 0e69 |001c: iget-object v4, v3, Lorg/purple/smokestack/Settings$32;.this$0:Lorg/purple/smokestack/Settings; // field@690e │ │ +495ef8: 6e20 f6d1 1400 |001e: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +495efe: 0c04 |0021: move-result-object v4 │ │ +495f00: 1f04 9c0a |0022: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ +495f04: 1405 7800 087f |0024: const v5, #float 1.80777e+38 // #7f080078 │ │ +495f0a: 6e20 475b 5400 |0027: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setNextFocusDownId:(I)V // method@5b47 │ │ +495f10: 2810 |002a: goto 003a // +0010 │ │ +495f12: 1215 |002b: const/4 v5, #int 1 // #1 │ │ +495f14: 6e20 3d5b 5400 |002c: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ +495f1a: 5434 0e69 |002f: iget-object v4, v3, Lorg/purple/smokestack/Settings$32;.this$0:Lorg/purple/smokestack/Settings; // field@690e │ │ +495f1e: 6e20 f6d1 1400 |0031: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +495f24: 0c04 |0034: move-result-object v4 │ │ +495f26: 1f04 9c0a |0035: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ +495f2a: 6e20 475b 0400 |0037: invoke-virtual {v4, v0}, Landroid/widget/TextView;.setNextFocusDownId:(I)V // method@5b47 │ │ +495f30: 5434 0e69 |003a: iget-object v4, v3, Lorg/purple/smokestack/Settings$32;.this$0:Lorg/purple/smokestack/Settings; // field@690e │ │ +495f34: 7110 e4d1 0400 |003c: invoke-static {v4}, Lorg/purple/smokestack/Settings;.access$1600:(Lorg/purple/smokestack/Settings;)V // method@d1e4 │ │ +495f3a: 0e00 |003f: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=2507 │ │ 0x0005 line=2508 │ │ 0x0014 line=2512 │ │ 0x0019 line=2513 │ │ 0x001c line=2514 │ │ @@ -786021,18 +786020,18 @@ │ │ type : '(Lorg/purple/smokestack/Settings;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 6 16-bit code units │ │ -495f40: |[495f40] org.purple.smokestack.Settings$33.:(Lorg/purple/smokestack/Settings;)V │ │ -495f50: 5b01 0f69 |0000: iput-object v1, v0, Lorg/purple/smokestack/Settings$33;.this$0:Lorg/purple/smokestack/Settings; // field@690f │ │ -495f54: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ -495f5a: 0e00 |0005: return-void │ │ +495f3c: |[495f3c] org.purple.smokestack.Settings$33.:(Lorg/purple/smokestack/Settings;)V │ │ +495f4c: 5b01 0f69 |0000: iput-object v1, v0, Lorg/purple/smokestack/Settings$33;.this$0:Lorg/purple/smokestack/Settings; // field@690f │ │ +495f50: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ +495f56: 0e00 |0005: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=2531 │ │ locals : │ │ 0x0000 - 0x0006 reg=0 this Lorg/purple/smokestack/Settings$33; │ │ 0x0000 - 0x0006 reg=1 (null) Lorg/purple/smokestack/Settings; │ │ │ │ @@ -786042,42 +786041,42 @@ │ │ type : '(Landroid/widget/RadioGroup;I)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 6 │ │ ins : 3 │ │ outs : 2 │ │ insns size : 59 16-bit code units │ │ -495f5c: |[495f5c] org.purple.smokestack.Settings$33.onCheckedChanged:(Landroid/widget/RadioGroup;I)V │ │ -495f6c: 5434 0f69 |0000: iget-object v4, v3, Lorg/purple/smokestack/Settings$33;.this$0:Lorg/purple/smokestack/Settings; // field@690f │ │ -495f70: 1400 7d00 087f |0002: const v0, #float 1.80778e+38 // #7f08007d │ │ -495f76: 6e20 f6d1 0400 |0005: invoke-virtual {v4, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -495f7c: 0c04 |0008: move-result-object v4 │ │ -495f7e: 1f04 9c0a |0009: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ -495f82: 1401 7c00 087f |000b: const v1, #float 1.80778e+38 // #7f08007c │ │ -495f88: 1402 7900 087f |000e: const v2, #float 1.80777e+38 // #7f080079 │ │ -495f8e: 3325 1a00 |0011: if-ne v5, v2, 002b // +001a │ │ -495f92: 1205 |0013: const/4 v5, #int 0 // #0 │ │ -495f94: 6e20 3d5b 5400 |0014: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ -495f9a: 1a05 0000 |0017: const-string v5, "" // string@0000 │ │ -495f9e: 6e20 525b 5400 |0019: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ -495fa4: 5434 0f69 |001c: iget-object v4, v3, Lorg/purple/smokestack/Settings$33;.this$0:Lorg/purple/smokestack/Settings; // field@690f │ │ -495fa8: 6e20 f6d1 1400 |001e: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -495fae: 0c04 |0021: move-result-object v4 │ │ -495fb0: 1f04 9c0a |0022: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ -495fb4: 1405 9700 087f |0024: const v5, #float 1.80778e+38 // #7f080097 │ │ -495fba: 6e20 475b 5400 |0027: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setNextFocusDownId:(I)V // method@5b47 │ │ -495fc0: 2810 |002a: goto 003a // +0010 │ │ -495fc2: 1215 |002b: const/4 v5, #int 1 // #1 │ │ -495fc4: 6e20 3d5b 5400 |002c: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ -495fca: 5434 0f69 |002f: iget-object v4, v3, Lorg/purple/smokestack/Settings$33;.this$0:Lorg/purple/smokestack/Settings; // field@690f │ │ -495fce: 6e20 f6d1 1400 |0031: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -495fd4: 0c04 |0034: move-result-object v4 │ │ -495fd6: 1f04 9c0a |0035: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ -495fda: 6e20 475b 0400 |0037: invoke-virtual {v4, v0}, Landroid/widget/TextView;.setNextFocusDownId:(I)V // method@5b47 │ │ -495fe0: 0e00 |003a: return-void │ │ +495f58: |[495f58] org.purple.smokestack.Settings$33.onCheckedChanged:(Landroid/widget/RadioGroup;I)V │ │ +495f68: 5434 0f69 |0000: iget-object v4, v3, Lorg/purple/smokestack/Settings$33;.this$0:Lorg/purple/smokestack/Settings; // field@690f │ │ +495f6c: 1400 7d00 087f |0002: const v0, #float 1.80778e+38 // #7f08007d │ │ +495f72: 6e20 f6d1 0400 |0005: invoke-virtual {v4, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +495f78: 0c04 |0008: move-result-object v4 │ │ +495f7a: 1f04 9c0a |0009: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ +495f7e: 1401 7c00 087f |000b: const v1, #float 1.80778e+38 // #7f08007c │ │ +495f84: 1402 7900 087f |000e: const v2, #float 1.80777e+38 // #7f080079 │ │ +495f8a: 3325 1a00 |0011: if-ne v5, v2, 002b // +001a │ │ +495f8e: 1205 |0013: const/4 v5, #int 0 // #0 │ │ +495f90: 6e20 3d5b 5400 |0014: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ +495f96: 1a05 0000 |0017: const-string v5, "" // string@0000 │ │ +495f9a: 6e20 525b 5400 |0019: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ +495fa0: 5434 0f69 |001c: iget-object v4, v3, Lorg/purple/smokestack/Settings$33;.this$0:Lorg/purple/smokestack/Settings; // field@690f │ │ +495fa4: 6e20 f6d1 1400 |001e: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +495faa: 0c04 |0021: move-result-object v4 │ │ +495fac: 1f04 9c0a |0022: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ +495fb0: 1405 9700 087f |0024: const v5, #float 1.80778e+38 // #7f080097 │ │ +495fb6: 6e20 475b 5400 |0027: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setNextFocusDownId:(I)V // method@5b47 │ │ +495fbc: 2810 |002a: goto 003a // +0010 │ │ +495fbe: 1215 |002b: const/4 v5, #int 1 // #1 │ │ +495fc0: 6e20 3d5b 5400 |002c: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ +495fc6: 5434 0f69 |002f: iget-object v4, v3, Lorg/purple/smokestack/Settings$33;.this$0:Lorg/purple/smokestack/Settings; // field@690f │ │ +495fca: 6e20 f6d1 1400 |0031: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +495fd0: 0c04 |0034: move-result-object v4 │ │ +495fd2: 1f04 9c0a |0035: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ +495fd6: 6e20 475b 0400 |0037: invoke-virtual {v4, v0}, Landroid/widget/TextView;.setNextFocusDownId:(I)V // method@5b47 │ │ +495fdc: 0e00 |003a: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=2535 │ │ 0x0005 line=2536 │ │ 0x0014 line=2540 │ │ 0x0019 line=2541 │ │ 0x001c line=2542 │ │ @@ -786133,20 +786132,20 @@ │ │ type : '(Lorg/purple/smokestack/Settings;II)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 4 │ │ ins : 4 │ │ outs : 1 │ │ insns size : 10 16-bit code units │ │ -496068: |[496068] org.purple.smokestack.Settings$35.:(Lorg/purple/smokestack/Settings;II)V │ │ -496078: 5b01 1169 |0000: iput-object v1, v0, Lorg/purple/smokestack/Settings$35;.this$0:Lorg/purple/smokestack/Settings; // field@6911 │ │ -49607c: 5902 1269 |0002: iput v2, v0, Lorg/purple/smokestack/Settings$35;.val$groupId:I // field@6912 │ │ -496080: 5903 1369 |0004: iput v3, v0, Lorg/purple/smokestack/Settings$35;.val$itemId:I // field@6913 │ │ -496084: 7010 ad5c 0000 |0006: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ -49608a: 0e00 |0009: return-void │ │ +496064: |[496064] org.purple.smokestack.Settings$35.:(Lorg/purple/smokestack/Settings;II)V │ │ +496074: 5b01 1169 |0000: iput-object v1, v0, Lorg/purple/smokestack/Settings$35;.this$0:Lorg/purple/smokestack/Settings; // field@6911 │ │ +496078: 5902 1269 |0002: iput v2, v0, Lorg/purple/smokestack/Settings$35;.val$groupId:I // field@6912 │ │ +49607c: 5903 1369 |0004: iput v3, v0, Lorg/purple/smokestack/Settings$35;.val$itemId:I // field@6913 │ │ +496080: 7010 ad5c 0000 |0006: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ +496086: 0e00 |0009: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=2834 │ │ locals : │ │ 0x0000 - 0x000a reg=0 this Lorg/purple/smokestack/Settings$35; │ │ 0x0000 - 0x000a reg=1 (null) Lorg/purple/smokestack/Settings; │ │ 0x0000 - 0x000a reg=2 (null) I │ │ @@ -786158,225 +786157,225 @@ │ │ type : '(Landroid/content/DialogInterface;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 9 │ │ ins : 2 │ │ outs : 4 │ │ insns size : 424 16-bit code units │ │ -49608c: |[49608c] org.purple.smokestack.Settings$35.onCancel:(Landroid/content/DialogInterface;)V │ │ -49609c: 5278 1269 |0000: iget v8, v7, Lorg/purple/smokestack/Settings$35;.val$groupId:I // field@6912 │ │ -4960a0: 1a00 17b3 |0002: const-string v0, "true" // string@b317 │ │ -4960a4: 1a01 eb6c |0004: const-string v1, "dialog_accepted" // string@6ceb │ │ -4960a8: 3808 8201 |0006: if-eqz v8, 0188 // +0182 │ │ -4960ac: 1202 |0008: const/4 v2, #int 0 // #0 │ │ -4960ae: 1403 8e00 087f |0009: const v3, #float 1.80778e+38 // #7f08008e │ │ -4960b4: 1224 |000c: const/4 v4, #int 2 // #2 │ │ -4960b6: 3248 2a01 |000d: if-eq v8, v4, 0137 // +012a │ │ -4960ba: 1235 |000f: const/4 v5, #int 3 // #3 │ │ -4960bc: 3258 f700 |0010: if-eq v8, v5, 0107 // +00f7 │ │ -4960c0: 1245 |0012: const/4 v5, #int 4 // #4 │ │ -4960c2: 3258 ba00 |0013: if-eq v8, v5, 00cd // +00ba │ │ -4960c6: 1255 |0015: const/4 v5, #int 5 // #5 │ │ -4960c8: 3258 8d00 |0016: if-eq v8, v5, 00a3 // +008d │ │ -4960cc: 1265 |0018: const/4 v5, #int 6 // #6 │ │ -4960ce: 3258 0400 |0019: if-eq v8, v5, 001d // +0004 │ │ -4960d2: 2900 8c01 |001b: goto/16 01a7 // +018c │ │ -4960d6: 7100 43d2 0000 |001d: invoke-static {}, Lorg/purple/smokestack/State;.getInstance:()Lorg/purple/smokestack/State; // method@d243 │ │ -4960dc: 0c08 |0020: move-result-object v8 │ │ -4960de: 6e20 44d2 1800 |0021: invoke-virtual {v8, v1}, Lorg/purple/smokestack/State;.getString:(Ljava/lang/String;)Ljava/lang/String; // method@d244 │ │ -4960e4: 0c08 |0024: move-result-object v8 │ │ -4960e6: 6e20 da5c 0800 |0025: invoke-virtual {v8, v0}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ -4960ec: 0a08 |0028: move-result v8 │ │ -4960ee: 3808 7e01 |0029: if-eqz v8, 01a7 // +017e │ │ -4960f2: 5478 1169 |002b: iget-object v8, v7, Lorg/purple/smokestack/Settings$35;.this$0:Lorg/purple/smokestack/Settings; // field@6911 │ │ -4960f6: 7110 efd1 0800 |002d: invoke-static {v8}, Lorg/purple/smokestack/Settings;.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; // method@d1ef │ │ -4960fc: 0c08 |0030: move-result-object v8 │ │ -4960fe: 7100 eed1 0000 |0031: invoke-static {}, Lorg/purple/smokestack/Settings;.access$400:()Lorg/purple/smokestack/Cryptography; // method@d1ee │ │ -496104: 0c00 |0034: move-result-object v0 │ │ -496106: 5271 1369 |0035: iget v1, v7, Lorg/purple/smokestack/Settings$35;.val$itemId:I // field@6913 │ │ -49610a: 7110 fa5c 0100 |0037: invoke-static {v1}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@5cfa │ │ -496110: 0c01 |003a: move-result-object v1 │ │ -496112: 6e30 d4d0 0801 |003b: invoke-virtual {v8, v0, v1}, Lorg/purple/smokestack/Database;.resetRetrievalState:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;)Z // method@d0d4 │ │ -496118: 0a08 |003e: move-result v8 │ │ -49611a: 3808 6801 |003f: if-eqz v8, 01a7 // +0168 │ │ -49611e: 5478 1169 |0041: iget-object v8, v7, Lorg/purple/smokestack/Settings$35;.this$0:Lorg/purple/smokestack/Settings; // field@6911 │ │ -496122: 7110 efd1 0800 |0043: invoke-static {v8}, Lorg/purple/smokestack/Settings;.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; // method@d1ef │ │ -496128: 0c08 |0046: move-result-object v8 │ │ -49612a: 5270 1369 |0047: iget v0, v7, Lorg/purple/smokestack/Settings$35;.val$itemId:I // field@6913 │ │ -49612e: 7110 fa5c 0000 |0049: invoke-static {v0}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@5cfa │ │ -496134: 0c00 |004c: move-result-object v0 │ │ -496136: 6e20 c5d0 0800 |004d: invoke-virtual {v8, v0}, Lorg/purple/smokestack/Database;.readMessageTotals:(Ljava/lang/String;)Lorg/purple/smokestack/MessageTotals; // method@d0c5 │ │ -49613c: 0c08 |0050: move-result-object v8 │ │ -49613e: 3808 5601 |0051: if-eqz v8, 01a7 // +0156 │ │ -496142: 5470 1169 |0053: iget-object v0, v7, Lorg/purple/smokestack/Settings$35;.this$0:Lorg/purple/smokestack/Settings; // field@6911 │ │ -496146: 6e20 f6d1 3000 |0055: invoke-virtual {v0, v3}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -49614c: 0c00 |0058: move-result-object v0 │ │ -49614e: 1f00 980a |0059: check-cast v0, Landroid/widget/TableLayout; // type@0a98 │ │ -496152: 6e10 025b 0000 |005b: invoke-virtual {v0}, Landroid/widget/TableLayout;.getChildCount:()I // method@5b02 │ │ -496158: 0a01 |005e: move-result v1 │ │ -49615a: 3512 4801 |005f: if-ge v2, v1, 01a7 // +0148 │ │ -49615e: 6e20 015b 2000 |0061: invoke-virtual {v0, v2}, Landroid/widget/TableLayout;.getChildAt:(I)Landroid/view/View; // method@5b01 │ │ -496164: 0c03 |0064: move-result-object v3 │ │ -496166: 1f03 9a0a |0065: check-cast v3, Landroid/widget/TableRow; // type@0a9a │ │ -49616a: 3903 0300 |0067: if-nez v3, 006a // +0003 │ │ -49616e: 2812 |0069: goto 007b // +0012 │ │ -496170: 6e20 095b 4300 |006a: invoke-virtual {v3, v4}, Landroid/widget/TableRow;.getChildAt:(I)Landroid/view/View; // method@5b09 │ │ -496176: 0c03 |006d: move-result-object v3 │ │ -496178: 1f03 9c0a |006e: check-cast v3, Landroid/widget/TextView; // type@0a9c │ │ -49617c: 3903 0300 |0070: if-nez v3, 0073 // +0003 │ │ -496180: 2809 |0072: goto 007b // +0009 │ │ -496182: 5275 1369 |0073: iget v5, v7, Lorg/purple/smokestack/Settings$35;.val$itemId:I // field@6913 │ │ -496186: 6e10 175b 0300 |0075: invoke-virtual {v3}, Landroid/widget/TextView;.getId:()I // method@5b17 │ │ -49618c: 0a06 |0078: move-result v6 │ │ -49618e: 3265 0500 |0079: if-eq v5, v6, 007e // +0005 │ │ -496192: d802 0201 |007b: add-int/lit8 v2, v2, #int 1 // #01 │ │ -496196: 28e2 |007d: goto 005f // -001e │ │ -496198: 2200 fc0a |007e: new-instance v0, Ljava/lang/StringBuilder; // type@0afc │ │ -49619c: 7010 125d 0000 |0080: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ -4961a2: 5381 1b60 |0083: iget-wide v1, v8, Lorg/purple/smokestack/MessageTotals;.m_outMessages:J // field@601b │ │ -4961a6: 6e30 195d 1002 |0085: invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;.append:(J)Ljava/lang/StringBuilder; // method@5d19 │ │ -4961ac: 1a01 b200 |0088: const-string v1, " / " // string@00b2 │ │ -4961b0: 6e20 1d5d 1000 |008a: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4961b6: 5384 1a60 |008d: iget-wide v4, v8, Lorg/purple/smokestack/MessageTotals;.m_inMessages:J // field@601a │ │ -4961ba: 6e30 195d 4005 |008f: invoke-virtual {v0, v4, v5}, Ljava/lang/StringBuilder;.append:(J)Ljava/lang/StringBuilder; // method@5d19 │ │ -4961c0: 6e20 1d5d 1000 |0092: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4961c6: 5381 1c60 |0095: iget-wide v1, v8, Lorg/purple/smokestack/MessageTotals;.m_totalMessages:J // field@601c │ │ -4961ca: 6e30 195d 1002 |0097: invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;.append:(J)Ljava/lang/StringBuilder; // method@5d19 │ │ -4961d0: 6e10 285d 0000 |009a: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ -4961d6: 0c08 |009d: move-result-object v8 │ │ -4961d8: 6e20 525b 8300 |009e: invoke-virtual {v3, v8}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ -4961de: 2900 0601 |00a1: goto/16 01a7 // +0106 │ │ -4961e2: 7100 43d2 0000 |00a3: invoke-static {}, Lorg/purple/smokestack/State;.getInstance:()Lorg/purple/smokestack/State; // method@d243 │ │ -4961e8: 0c08 |00a6: move-result-object v8 │ │ -4961ea: 1a00 d9ad |00a7: const-string v0, "settings_participant_name_input" // string@add9 │ │ -4961ee: 6e20 44d2 0800 |00a9: invoke-virtual {v8, v0}, Lorg/purple/smokestack/State;.getString:(Ljava/lang/String;)Ljava/lang/String; // method@d244 │ │ -4961f4: 0c08 |00ac: move-result-object v8 │ │ -4961f6: 5471 1169 |00ad: iget-object v1, v7, Lorg/purple/smokestack/Settings$35;.this$0:Lorg/purple/smokestack/Settings; // field@6911 │ │ -4961fa: 7110 efd1 0100 |00af: invoke-static {v1}, Lorg/purple/smokestack/Settings;.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; // method@d1ef │ │ -496200: 0c01 |00b2: move-result-object v1 │ │ -496202: 7100 eed1 0000 |00b3: invoke-static {}, Lorg/purple/smokestack/Settings;.access$400:()Lorg/purple/smokestack/Cryptography; // method@d1ee │ │ -496208: 0c02 |00b6: move-result-object v2 │ │ -49620a: 5273 1369 |00b7: iget v3, v7, Lorg/purple/smokestack/Settings$35;.val$itemId:I // field@6913 │ │ -49620e: 6e40 e8d0 2138 |00b9: invoke-virtual {v1, v2, v8, v3}, Lorg/purple/smokestack/Database;.writeParticipantName:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;I)Z // method@d0e8 │ │ -496214: 0a08 |00bc: move-result v8 │ │ -496216: 3808 0700 |00bd: if-eqz v8, 00c4 // +0007 │ │ -49621a: 5478 1169 |00bf: iget-object v8, v7, Lorg/purple/smokestack/Settings$35;.this$0:Lorg/purple/smokestack/Settings; // field@6911 │ │ -49621e: 7110 e8d1 0800 |00c1: invoke-static {v8}, Lorg/purple/smokestack/Settings;.access$200:(Lorg/purple/smokestack/Settings;)V // method@d1e8 │ │ -496224: 7100 43d2 0000 |00c4: invoke-static {}, Lorg/purple/smokestack/State;.getInstance:()Lorg/purple/smokestack/State; // method@d243 │ │ -49622a: 0c08 |00c7: move-result-object v8 │ │ -49622c: 6e20 46d2 0800 |00c8: invoke-virtual {v8, v0}, Lorg/purple/smokestack/State;.removeKey:(Ljava/lang/String;)V // method@d246 │ │ -496232: 2900 dc00 |00cb: goto/16 01a7 // +00dc │ │ -496236: 7100 43d2 0000 |00cd: invoke-static {}, Lorg/purple/smokestack/State;.getInstance:()Lorg/purple/smokestack/State; // method@d243 │ │ -49623c: 0c08 |00d0: move-result-object v8 │ │ -49623e: 6e20 44d2 1800 |00d1: invoke-virtual {v8, v1}, Lorg/purple/smokestack/State;.getString:(Ljava/lang/String;)Ljava/lang/String; // method@d244 │ │ -496244: 0c08 |00d4: move-result-object v8 │ │ -496246: 6e20 da5c 0800 |00d5: invoke-virtual {v8, v0}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ -49624c: 0a08 |00d8: move-result v8 │ │ -49624e: 3808 ce00 |00d9: if-eqz v8, 01a7 // +00ce │ │ -496252: 5478 1169 |00db: iget-object v8, v7, Lorg/purple/smokestack/Settings$35;.this$0:Lorg/purple/smokestack/Settings; // field@6911 │ │ -496256: 7110 efd1 0800 |00dd: invoke-static {v8}, Lorg/purple/smokestack/Settings;.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; // method@d1ef │ │ -49625c: 0c08 |00e0: move-result-object v8 │ │ -49625e: 5270 1369 |00e1: iget v0, v7, Lorg/purple/smokestack/Settings$35;.val$itemId:I // field@6913 │ │ -496262: 7110 fa5c 0000 |00e3: invoke-static {v0}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@5cfa │ │ -496268: 0c00 |00e6: move-result-object v0 │ │ -49626a: 6e20 b0d0 0800 |00e7: invoke-virtual {v8, v0}, Lorg/purple/smokestack/Database;.deleteOzoneAndSipHashId:(Ljava/lang/String;)Z // method@d0b0 │ │ -496270: 0a08 |00ea: move-result v8 │ │ -496272: 3808 bc00 |00eb: if-eqz v8, 01a7 // +00bc │ │ -496276: 7100 02d1 0000 |00ed: invoke-static {}, Lorg/purple/smokestack/Kernel;.getInstance:()Lorg/purple/smokestack/Kernel; // method@d102 │ │ -49627c: 0c08 |00f0: move-result-object v8 │ │ -49627e: 6e10 07d1 0800 |00f1: invoke-virtual {v8}, Lorg/purple/smokestack/Kernel;.populateOzones:()V // method@d107 │ │ -496284: 7100 02d1 0000 |00f4: invoke-static {}, Lorg/purple/smokestack/Kernel;.getInstance:()Lorg/purple/smokestack/Kernel; // method@d102 │ │ -49628a: 0c08 |00f7: move-result-object v8 │ │ -49628c: 6e10 08d1 0800 |00f8: invoke-virtual {v8}, Lorg/purple/smokestack/Kernel;.populateSipHashIds:()V // method@d108 │ │ -496292: 5478 1169 |00fb: iget-object v8, v7, Lorg/purple/smokestack/Settings$35;.this$0:Lorg/purple/smokestack/Settings; // field@6911 │ │ -496296: 7110 edd1 0800 |00fd: invoke-static {v8}, Lorg/purple/smokestack/Settings;.access$300:(Lorg/purple/smokestack/Settings;)V // method@d1ed │ │ -49629c: 5478 1169 |0100: iget-object v8, v7, Lorg/purple/smokestack/Settings$35;.this$0:Lorg/purple/smokestack/Settings; // field@6911 │ │ -4962a0: 7110 e8d1 0800 |0102: invoke-static {v8}, Lorg/purple/smokestack/Settings;.access$200:(Lorg/purple/smokestack/Settings;)V // method@d1e8 │ │ -4962a6: 2900 a200 |0105: goto/16 01a7 // +00a2 │ │ -4962aa: 7100 43d2 0000 |0107: invoke-static {}, Lorg/purple/smokestack/State;.getInstance:()Lorg/purple/smokestack/State; // method@d243 │ │ -4962b0: 0c08 |010a: move-result-object v8 │ │ -4962b2: 6e20 44d2 1800 |010b: invoke-virtual {v8, v1}, Lorg/purple/smokestack/State;.getString:(Ljava/lang/String;)Ljava/lang/String; // method@d244 │ │ -4962b8: 0c08 |010e: move-result-object v8 │ │ -4962ba: 6e20 da5c 0800 |010f: invoke-virtual {v8, v0}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ -4962c0: 0a08 |0112: move-result v8 │ │ -4962c2: 3808 9400 |0113: if-eqz v8, 01a7 // +0094 │ │ -4962c6: 5478 1169 |0115: iget-object v8, v7, Lorg/purple/smokestack/Settings$35;.this$0:Lorg/purple/smokestack/Settings; // field@6911 │ │ -4962ca: 7110 efd1 0800 |0117: invoke-static {v8}, Lorg/purple/smokestack/Settings;.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; // method@d1ef │ │ -4962d0: 0c08 |011a: move-result-object v8 │ │ -4962d2: 5270 1369 |011b: iget v0, v7, Lorg/purple/smokestack/Settings$35;.val$itemId:I // field@6913 │ │ -4962d6: 7110 fa5c 0000 |011d: invoke-static {v0}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@5cfa │ │ -4962dc: 0c00 |0120: move-result-object v0 │ │ -4962de: 1a01 839e |0121: const-string v1, "ozones" // string@9e83 │ │ -4962e2: 6e30 aed0 0801 |0123: invoke-virtual {v8, v0, v1}, Lorg/purple/smokestack/Database;.deleteEntry:(Ljava/lang/String;Ljava/lang/String;)Z // method@d0ae │ │ -4962e8: 0a08 |0126: move-result v8 │ │ -4962ea: 3808 8000 |0127: if-eqz v8, 01a7 // +0080 │ │ -4962ee: 7100 02d1 0000 |0129: invoke-static {}, Lorg/purple/smokestack/Kernel;.getInstance:()Lorg/purple/smokestack/Kernel; // method@d102 │ │ -4962f4: 0c08 |012c: move-result-object v8 │ │ -4962f6: 6e10 07d1 0800 |012d: invoke-virtual {v8}, Lorg/purple/smokestack/Kernel;.populateOzones:()V // method@d107 │ │ -4962fc: 5478 1169 |0130: iget-object v8, v7, Lorg/purple/smokestack/Settings$35;.this$0:Lorg/purple/smokestack/Settings; // field@6911 │ │ -496300: 7110 edd1 0800 |0132: invoke-static {v8}, Lorg/purple/smokestack/Settings;.access$300:(Lorg/purple/smokestack/Settings;)V // method@d1ed │ │ -496306: 2900 7200 |0135: goto/16 01a7 // +0072 │ │ -49630a: 7100 43d2 0000 |0137: invoke-static {}, Lorg/purple/smokestack/State;.getInstance:()Lorg/purple/smokestack/State; // method@d243 │ │ -496310: 0c08 |013a: move-result-object v8 │ │ -496312: 6e20 44d2 1800 |013b: invoke-virtual {v8, v1}, Lorg/purple/smokestack/State;.getString:(Ljava/lang/String;)Ljava/lang/String; // method@d244 │ │ -496318: 0c08 |013e: move-result-object v8 │ │ -49631a: 6e20 da5c 0800 |013f: invoke-virtual {v8, v0}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ -496320: 0a08 |0142: move-result v8 │ │ -496322: 3808 6400 |0143: if-eqz v8, 01a7 // +0064 │ │ -496326: 5478 1169 |0145: iget-object v8, v7, Lorg/purple/smokestack/Settings$35;.this$0:Lorg/purple/smokestack/Settings; // field@6911 │ │ -49632a: 7110 efd1 0800 |0147: invoke-static {v8}, Lorg/purple/smokestack/Settings;.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; // method@d1ef │ │ -496330: 0c08 |014a: move-result-object v8 │ │ -496332: 5270 1369 |014b: iget v0, v7, Lorg/purple/smokestack/Settings$35;.val$itemId:I // field@6913 │ │ -496336: 7110 fa5c 0000 |014d: invoke-static {v0}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@5cfa │ │ -49633c: 0c00 |0150: move-result-object v0 │ │ -49633e: 6e20 d1d0 0800 |0151: invoke-virtual {v8, v0}, Lorg/purple/smokestack/Database;.removeMessages:(Ljava/lang/String;)Z // method@d0d1 │ │ -496344: 0a08 |0154: move-result v8 │ │ -496346: 3808 5200 |0155: if-eqz v8, 01a7 // +0052 │ │ -49634a: 5478 1169 |0157: iget-object v8, v7, Lorg/purple/smokestack/Settings$35;.this$0:Lorg/purple/smokestack/Settings; // field@6911 │ │ -49634e: 6e20 f6d1 3800 |0159: invoke-virtual {v8, v3}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -496354: 0c08 |015c: move-result-object v8 │ │ -496356: 1f08 980a |015d: check-cast v8, Landroid/widget/TableLayout; // type@0a98 │ │ -49635a: 6e10 025b 0800 |015f: invoke-virtual {v8}, Landroid/widget/TableLayout;.getChildCount:()I // method@5b02 │ │ -496360: 0a00 |0162: move-result v0 │ │ -496362: 3502 4400 |0163: if-ge v2, v0, 01a7 // +0044 │ │ -496366: 6e20 015b 2800 |0165: invoke-virtual {v8, v2}, Landroid/widget/TableLayout;.getChildAt:(I)Landroid/view/View; // method@5b01 │ │ -49636c: 0c01 |0168: move-result-object v1 │ │ -49636e: 1f01 9a0a |0169: check-cast v1, Landroid/widget/TableRow; // type@0a9a │ │ -496372: 3901 0300 |016b: if-nez v1, 016e // +0003 │ │ -496376: 2812 |016d: goto 017f // +0012 │ │ -496378: 6e20 095b 4100 |016e: invoke-virtual {v1, v4}, Landroid/widget/TableRow;.getChildAt:(I)Landroid/view/View; // method@5b09 │ │ -49637e: 0c01 |0171: move-result-object v1 │ │ -496380: 1f01 9c0a |0172: check-cast v1, Landroid/widget/TextView; // type@0a9c │ │ -496384: 3901 0300 |0174: if-nez v1, 0177 // +0003 │ │ -496388: 2809 |0176: goto 017f // +0009 │ │ -49638a: 5273 1369 |0177: iget v3, v7, Lorg/purple/smokestack/Settings$35;.val$itemId:I // field@6913 │ │ -49638e: 6e10 175b 0100 |0179: invoke-virtual {v1}, Landroid/widget/TextView;.getId:()I // method@5b17 │ │ -496394: 0a05 |017c: move-result v5 │ │ -496396: 3253 0500 |017d: if-eq v3, v5, 0182 // +0005 │ │ -49639a: d802 0201 |017f: add-int/lit8 v2, v2, #int 1 // #01 │ │ -49639e: 28e2 |0181: goto 0163 // -001e │ │ -4963a0: 1a08 2305 |0182: const-string v8, "0 / 0 / 0" // string@0523 │ │ -4963a4: 6e20 525b 8100 |0184: invoke-virtual {v1, v8}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ -4963aa: 2820 |0187: goto 01a7 // +0020 │ │ -4963ac: 7100 43d2 0000 |0188: invoke-static {}, Lorg/purple/smokestack/State;.getInstance:()Lorg/purple/smokestack/State; // method@d243 │ │ -4963b2: 0c08 |018b: move-result-object v8 │ │ -4963b4: 6e20 44d2 1800 |018c: invoke-virtual {v8, v1}, Lorg/purple/smokestack/State;.getString:(Ljava/lang/String;)Ljava/lang/String; // method@d244 │ │ -4963ba: 0c08 |018f: move-result-object v8 │ │ -4963bc: 6e20 da5c 0800 |0190: invoke-virtual {v8, v0}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ -4963c2: 0a08 |0193: move-result v8 │ │ -4963c4: 3808 1300 |0194: if-eqz v8, 01a7 // +0013 │ │ -4963c8: 5478 1169 |0196: iget-object v8, v7, Lorg/purple/smokestack/Settings$35;.this$0:Lorg/purple/smokestack/Settings; // field@6911 │ │ -4963cc: 7110 efd1 0800 |0198: invoke-static {v8}, Lorg/purple/smokestack/Settings;.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; // method@d1ef │ │ -4963d2: 0c08 |019b: move-result-object v8 │ │ -4963d4: 6e10 d0d0 0800 |019c: invoke-virtual {v8}, Lorg/purple/smokestack/Database;.removeMessages:()Z // method@d0d0 │ │ -4963da: 0a08 |019f: move-result v8 │ │ -4963dc: 3808 0700 |01a0: if-eqz v8, 01a7 // +0007 │ │ -4963e0: 5478 1169 |01a2: iget-object v8, v7, Lorg/purple/smokestack/Settings$35;.this$0:Lorg/purple/smokestack/Settings; // field@6911 │ │ -4963e4: 7110 e8d1 0800 |01a4: invoke-static {v8}, Lorg/purple/smokestack/Settings;.access$200:(Lorg/purple/smokestack/Settings;)V // method@d1e8 │ │ -4963ea: 0e00 |01a7: return-void │ │ +496088: |[496088] org.purple.smokestack.Settings$35.onCancel:(Landroid/content/DialogInterface;)V │ │ +496098: 5278 1269 |0000: iget v8, v7, Lorg/purple/smokestack/Settings$35;.val$groupId:I // field@6912 │ │ +49609c: 1a00 17b3 |0002: const-string v0, "true" // string@b317 │ │ +4960a0: 1a01 eb6c |0004: const-string v1, "dialog_accepted" // string@6ceb │ │ +4960a4: 3808 8201 |0006: if-eqz v8, 0188 // +0182 │ │ +4960a8: 1202 |0008: const/4 v2, #int 0 // #0 │ │ +4960aa: 1403 8e00 087f |0009: const v3, #float 1.80778e+38 // #7f08008e │ │ +4960b0: 1224 |000c: const/4 v4, #int 2 // #2 │ │ +4960b2: 3248 2a01 |000d: if-eq v8, v4, 0137 // +012a │ │ +4960b6: 1235 |000f: const/4 v5, #int 3 // #3 │ │ +4960b8: 3258 f700 |0010: if-eq v8, v5, 0107 // +00f7 │ │ +4960bc: 1245 |0012: const/4 v5, #int 4 // #4 │ │ +4960be: 3258 ba00 |0013: if-eq v8, v5, 00cd // +00ba │ │ +4960c2: 1255 |0015: const/4 v5, #int 5 // #5 │ │ +4960c4: 3258 8d00 |0016: if-eq v8, v5, 00a3 // +008d │ │ +4960c8: 1265 |0018: const/4 v5, #int 6 // #6 │ │ +4960ca: 3258 0400 |0019: if-eq v8, v5, 001d // +0004 │ │ +4960ce: 2900 8c01 |001b: goto/16 01a7 // +018c │ │ +4960d2: 7100 43d2 0000 |001d: invoke-static {}, Lorg/purple/smokestack/State;.getInstance:()Lorg/purple/smokestack/State; // method@d243 │ │ +4960d8: 0c08 |0020: move-result-object v8 │ │ +4960da: 6e20 44d2 1800 |0021: invoke-virtual {v8, v1}, Lorg/purple/smokestack/State;.getString:(Ljava/lang/String;)Ljava/lang/String; // method@d244 │ │ +4960e0: 0c08 |0024: move-result-object v8 │ │ +4960e2: 6e20 da5c 0800 |0025: invoke-virtual {v8, v0}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ +4960e8: 0a08 |0028: move-result v8 │ │ +4960ea: 3808 7e01 |0029: if-eqz v8, 01a7 // +017e │ │ +4960ee: 5478 1169 |002b: iget-object v8, v7, Lorg/purple/smokestack/Settings$35;.this$0:Lorg/purple/smokestack/Settings; // field@6911 │ │ +4960f2: 7110 efd1 0800 |002d: invoke-static {v8}, Lorg/purple/smokestack/Settings;.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; // method@d1ef │ │ +4960f8: 0c08 |0030: move-result-object v8 │ │ +4960fa: 7100 eed1 0000 |0031: invoke-static {}, Lorg/purple/smokestack/Settings;.access$400:()Lorg/purple/smokestack/Cryptography; // method@d1ee │ │ +496100: 0c00 |0034: move-result-object v0 │ │ +496102: 5271 1369 |0035: iget v1, v7, Lorg/purple/smokestack/Settings$35;.val$itemId:I // field@6913 │ │ +496106: 7110 fa5c 0100 |0037: invoke-static {v1}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@5cfa │ │ +49610c: 0c01 |003a: move-result-object v1 │ │ +49610e: 6e30 d4d0 0801 |003b: invoke-virtual {v8, v0, v1}, Lorg/purple/smokestack/Database;.resetRetrievalState:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;)Z // method@d0d4 │ │ +496114: 0a08 |003e: move-result v8 │ │ +496116: 3808 6801 |003f: if-eqz v8, 01a7 // +0168 │ │ +49611a: 5478 1169 |0041: iget-object v8, v7, Lorg/purple/smokestack/Settings$35;.this$0:Lorg/purple/smokestack/Settings; // field@6911 │ │ +49611e: 7110 efd1 0800 |0043: invoke-static {v8}, Lorg/purple/smokestack/Settings;.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; // method@d1ef │ │ +496124: 0c08 |0046: move-result-object v8 │ │ +496126: 5270 1369 |0047: iget v0, v7, Lorg/purple/smokestack/Settings$35;.val$itemId:I // field@6913 │ │ +49612a: 7110 fa5c 0000 |0049: invoke-static {v0}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@5cfa │ │ +496130: 0c00 |004c: move-result-object v0 │ │ +496132: 6e20 c5d0 0800 |004d: invoke-virtual {v8, v0}, Lorg/purple/smokestack/Database;.readMessageTotals:(Ljava/lang/String;)Lorg/purple/smokestack/MessageTotals; // method@d0c5 │ │ +496138: 0c08 |0050: move-result-object v8 │ │ +49613a: 3808 5601 |0051: if-eqz v8, 01a7 // +0156 │ │ +49613e: 5470 1169 |0053: iget-object v0, v7, Lorg/purple/smokestack/Settings$35;.this$0:Lorg/purple/smokestack/Settings; // field@6911 │ │ +496142: 6e20 f6d1 3000 |0055: invoke-virtual {v0, v3}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +496148: 0c00 |0058: move-result-object v0 │ │ +49614a: 1f00 980a |0059: check-cast v0, Landroid/widget/TableLayout; // type@0a98 │ │ +49614e: 6e10 025b 0000 |005b: invoke-virtual {v0}, Landroid/widget/TableLayout;.getChildCount:()I // method@5b02 │ │ +496154: 0a01 |005e: move-result v1 │ │ +496156: 3512 4801 |005f: if-ge v2, v1, 01a7 // +0148 │ │ +49615a: 6e20 015b 2000 |0061: invoke-virtual {v0, v2}, Landroid/widget/TableLayout;.getChildAt:(I)Landroid/view/View; // method@5b01 │ │ +496160: 0c03 |0064: move-result-object v3 │ │ +496162: 1f03 9a0a |0065: check-cast v3, Landroid/widget/TableRow; // type@0a9a │ │ +496166: 3903 0300 |0067: if-nez v3, 006a // +0003 │ │ +49616a: 2812 |0069: goto 007b // +0012 │ │ +49616c: 6e20 095b 4300 |006a: invoke-virtual {v3, v4}, Landroid/widget/TableRow;.getChildAt:(I)Landroid/view/View; // method@5b09 │ │ +496172: 0c03 |006d: move-result-object v3 │ │ +496174: 1f03 9c0a |006e: check-cast v3, Landroid/widget/TextView; // type@0a9c │ │ +496178: 3903 0300 |0070: if-nez v3, 0073 // +0003 │ │ +49617c: 2809 |0072: goto 007b // +0009 │ │ +49617e: 5275 1369 |0073: iget v5, v7, Lorg/purple/smokestack/Settings$35;.val$itemId:I // field@6913 │ │ +496182: 6e10 175b 0300 |0075: invoke-virtual {v3}, Landroid/widget/TextView;.getId:()I // method@5b17 │ │ +496188: 0a06 |0078: move-result v6 │ │ +49618a: 3265 0500 |0079: if-eq v5, v6, 007e // +0005 │ │ +49618e: d802 0201 |007b: add-int/lit8 v2, v2, #int 1 // #01 │ │ +496192: 28e2 |007d: goto 005f // -001e │ │ +496194: 2200 fc0a |007e: new-instance v0, Ljava/lang/StringBuilder; // type@0afc │ │ +496198: 7010 125d 0000 |0080: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ +49619e: 5381 1b60 |0083: iget-wide v1, v8, Lorg/purple/smokestack/MessageTotals;.m_outMessages:J // field@601b │ │ +4961a2: 6e30 195d 1002 |0085: invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;.append:(J)Ljava/lang/StringBuilder; // method@5d19 │ │ +4961a8: 1a01 b200 |0088: const-string v1, " / " // string@00b2 │ │ +4961ac: 6e20 1d5d 1000 |008a: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4961b2: 5384 1a60 |008d: iget-wide v4, v8, Lorg/purple/smokestack/MessageTotals;.m_inMessages:J // field@601a │ │ +4961b6: 6e30 195d 4005 |008f: invoke-virtual {v0, v4, v5}, Ljava/lang/StringBuilder;.append:(J)Ljava/lang/StringBuilder; // method@5d19 │ │ +4961bc: 6e20 1d5d 1000 |0092: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4961c2: 5381 1c60 |0095: iget-wide v1, v8, Lorg/purple/smokestack/MessageTotals;.m_totalMessages:J // field@601c │ │ +4961c6: 6e30 195d 1002 |0097: invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;.append:(J)Ljava/lang/StringBuilder; // method@5d19 │ │ +4961cc: 6e10 285d 0000 |009a: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ +4961d2: 0c08 |009d: move-result-object v8 │ │ +4961d4: 6e20 525b 8300 |009e: invoke-virtual {v3, v8}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ +4961da: 2900 0601 |00a1: goto/16 01a7 // +0106 │ │ +4961de: 7100 43d2 0000 |00a3: invoke-static {}, Lorg/purple/smokestack/State;.getInstance:()Lorg/purple/smokestack/State; // method@d243 │ │ +4961e4: 0c08 |00a6: move-result-object v8 │ │ +4961e6: 1a00 d9ad |00a7: const-string v0, "settings_participant_name_input" // string@add9 │ │ +4961ea: 6e20 44d2 0800 |00a9: invoke-virtual {v8, v0}, Lorg/purple/smokestack/State;.getString:(Ljava/lang/String;)Ljava/lang/String; // method@d244 │ │ +4961f0: 0c08 |00ac: move-result-object v8 │ │ +4961f2: 5471 1169 |00ad: iget-object v1, v7, Lorg/purple/smokestack/Settings$35;.this$0:Lorg/purple/smokestack/Settings; // field@6911 │ │ +4961f6: 7110 efd1 0100 |00af: invoke-static {v1}, Lorg/purple/smokestack/Settings;.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; // method@d1ef │ │ +4961fc: 0c01 |00b2: move-result-object v1 │ │ +4961fe: 7100 eed1 0000 |00b3: invoke-static {}, Lorg/purple/smokestack/Settings;.access$400:()Lorg/purple/smokestack/Cryptography; // method@d1ee │ │ +496204: 0c02 |00b6: move-result-object v2 │ │ +496206: 5273 1369 |00b7: iget v3, v7, Lorg/purple/smokestack/Settings$35;.val$itemId:I // field@6913 │ │ +49620a: 6e40 e8d0 2138 |00b9: invoke-virtual {v1, v2, v8, v3}, Lorg/purple/smokestack/Database;.writeParticipantName:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;I)Z // method@d0e8 │ │ +496210: 0a08 |00bc: move-result v8 │ │ +496212: 3808 0700 |00bd: if-eqz v8, 00c4 // +0007 │ │ +496216: 5478 1169 |00bf: iget-object v8, v7, Lorg/purple/smokestack/Settings$35;.this$0:Lorg/purple/smokestack/Settings; // field@6911 │ │ +49621a: 7110 e8d1 0800 |00c1: invoke-static {v8}, Lorg/purple/smokestack/Settings;.access$200:(Lorg/purple/smokestack/Settings;)V // method@d1e8 │ │ +496220: 7100 43d2 0000 |00c4: invoke-static {}, Lorg/purple/smokestack/State;.getInstance:()Lorg/purple/smokestack/State; // method@d243 │ │ +496226: 0c08 |00c7: move-result-object v8 │ │ +496228: 6e20 46d2 0800 |00c8: invoke-virtual {v8, v0}, Lorg/purple/smokestack/State;.removeKey:(Ljava/lang/String;)V // method@d246 │ │ +49622e: 2900 dc00 |00cb: goto/16 01a7 // +00dc │ │ +496232: 7100 43d2 0000 |00cd: invoke-static {}, Lorg/purple/smokestack/State;.getInstance:()Lorg/purple/smokestack/State; // method@d243 │ │ +496238: 0c08 |00d0: move-result-object v8 │ │ +49623a: 6e20 44d2 1800 |00d1: invoke-virtual {v8, v1}, Lorg/purple/smokestack/State;.getString:(Ljava/lang/String;)Ljava/lang/String; // method@d244 │ │ +496240: 0c08 |00d4: move-result-object v8 │ │ +496242: 6e20 da5c 0800 |00d5: invoke-virtual {v8, v0}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ +496248: 0a08 |00d8: move-result v8 │ │ +49624a: 3808 ce00 |00d9: if-eqz v8, 01a7 // +00ce │ │ +49624e: 5478 1169 |00db: iget-object v8, v7, Lorg/purple/smokestack/Settings$35;.this$0:Lorg/purple/smokestack/Settings; // field@6911 │ │ +496252: 7110 efd1 0800 |00dd: invoke-static {v8}, Lorg/purple/smokestack/Settings;.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; // method@d1ef │ │ +496258: 0c08 |00e0: move-result-object v8 │ │ +49625a: 5270 1369 |00e1: iget v0, v7, Lorg/purple/smokestack/Settings$35;.val$itemId:I // field@6913 │ │ +49625e: 7110 fa5c 0000 |00e3: invoke-static {v0}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@5cfa │ │ +496264: 0c00 |00e6: move-result-object v0 │ │ +496266: 6e20 b0d0 0800 |00e7: invoke-virtual {v8, v0}, Lorg/purple/smokestack/Database;.deleteOzoneAndSipHashId:(Ljava/lang/String;)Z // method@d0b0 │ │ +49626c: 0a08 |00ea: move-result v8 │ │ +49626e: 3808 bc00 |00eb: if-eqz v8, 01a7 // +00bc │ │ +496272: 7100 02d1 0000 |00ed: invoke-static {}, Lorg/purple/smokestack/Kernel;.getInstance:()Lorg/purple/smokestack/Kernel; // method@d102 │ │ +496278: 0c08 |00f0: move-result-object v8 │ │ +49627a: 6e10 07d1 0800 |00f1: invoke-virtual {v8}, Lorg/purple/smokestack/Kernel;.populateOzones:()V // method@d107 │ │ +496280: 7100 02d1 0000 |00f4: invoke-static {}, Lorg/purple/smokestack/Kernel;.getInstance:()Lorg/purple/smokestack/Kernel; // method@d102 │ │ +496286: 0c08 |00f7: move-result-object v8 │ │ +496288: 6e10 08d1 0800 |00f8: invoke-virtual {v8}, Lorg/purple/smokestack/Kernel;.populateSipHashIds:()V // method@d108 │ │ +49628e: 5478 1169 |00fb: iget-object v8, v7, Lorg/purple/smokestack/Settings$35;.this$0:Lorg/purple/smokestack/Settings; // field@6911 │ │ +496292: 7110 edd1 0800 |00fd: invoke-static {v8}, Lorg/purple/smokestack/Settings;.access$300:(Lorg/purple/smokestack/Settings;)V // method@d1ed │ │ +496298: 5478 1169 |0100: iget-object v8, v7, Lorg/purple/smokestack/Settings$35;.this$0:Lorg/purple/smokestack/Settings; // field@6911 │ │ +49629c: 7110 e8d1 0800 |0102: invoke-static {v8}, Lorg/purple/smokestack/Settings;.access$200:(Lorg/purple/smokestack/Settings;)V // method@d1e8 │ │ +4962a2: 2900 a200 |0105: goto/16 01a7 // +00a2 │ │ +4962a6: 7100 43d2 0000 |0107: invoke-static {}, Lorg/purple/smokestack/State;.getInstance:()Lorg/purple/smokestack/State; // method@d243 │ │ +4962ac: 0c08 |010a: move-result-object v8 │ │ +4962ae: 6e20 44d2 1800 |010b: invoke-virtual {v8, v1}, Lorg/purple/smokestack/State;.getString:(Ljava/lang/String;)Ljava/lang/String; // method@d244 │ │ +4962b4: 0c08 |010e: move-result-object v8 │ │ +4962b6: 6e20 da5c 0800 |010f: invoke-virtual {v8, v0}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ +4962bc: 0a08 |0112: move-result v8 │ │ +4962be: 3808 9400 |0113: if-eqz v8, 01a7 // +0094 │ │ +4962c2: 5478 1169 |0115: iget-object v8, v7, Lorg/purple/smokestack/Settings$35;.this$0:Lorg/purple/smokestack/Settings; // field@6911 │ │ +4962c6: 7110 efd1 0800 |0117: invoke-static {v8}, Lorg/purple/smokestack/Settings;.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; // method@d1ef │ │ +4962cc: 0c08 |011a: move-result-object v8 │ │ +4962ce: 5270 1369 |011b: iget v0, v7, Lorg/purple/smokestack/Settings$35;.val$itemId:I // field@6913 │ │ +4962d2: 7110 fa5c 0000 |011d: invoke-static {v0}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@5cfa │ │ +4962d8: 0c00 |0120: move-result-object v0 │ │ +4962da: 1a01 839e |0121: const-string v1, "ozones" // string@9e83 │ │ +4962de: 6e30 aed0 0801 |0123: invoke-virtual {v8, v0, v1}, Lorg/purple/smokestack/Database;.deleteEntry:(Ljava/lang/String;Ljava/lang/String;)Z // method@d0ae │ │ +4962e4: 0a08 |0126: move-result v8 │ │ +4962e6: 3808 8000 |0127: if-eqz v8, 01a7 // +0080 │ │ +4962ea: 7100 02d1 0000 |0129: invoke-static {}, Lorg/purple/smokestack/Kernel;.getInstance:()Lorg/purple/smokestack/Kernel; // method@d102 │ │ +4962f0: 0c08 |012c: move-result-object v8 │ │ +4962f2: 6e10 07d1 0800 |012d: invoke-virtual {v8}, Lorg/purple/smokestack/Kernel;.populateOzones:()V // method@d107 │ │ +4962f8: 5478 1169 |0130: iget-object v8, v7, Lorg/purple/smokestack/Settings$35;.this$0:Lorg/purple/smokestack/Settings; // field@6911 │ │ +4962fc: 7110 edd1 0800 |0132: invoke-static {v8}, Lorg/purple/smokestack/Settings;.access$300:(Lorg/purple/smokestack/Settings;)V // method@d1ed │ │ +496302: 2900 7200 |0135: goto/16 01a7 // +0072 │ │ +496306: 7100 43d2 0000 |0137: invoke-static {}, Lorg/purple/smokestack/State;.getInstance:()Lorg/purple/smokestack/State; // method@d243 │ │ +49630c: 0c08 |013a: move-result-object v8 │ │ +49630e: 6e20 44d2 1800 |013b: invoke-virtual {v8, v1}, Lorg/purple/smokestack/State;.getString:(Ljava/lang/String;)Ljava/lang/String; // method@d244 │ │ +496314: 0c08 |013e: move-result-object v8 │ │ +496316: 6e20 da5c 0800 |013f: invoke-virtual {v8, v0}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ +49631c: 0a08 |0142: move-result v8 │ │ +49631e: 3808 6400 |0143: if-eqz v8, 01a7 // +0064 │ │ +496322: 5478 1169 |0145: iget-object v8, v7, Lorg/purple/smokestack/Settings$35;.this$0:Lorg/purple/smokestack/Settings; // field@6911 │ │ +496326: 7110 efd1 0800 |0147: invoke-static {v8}, Lorg/purple/smokestack/Settings;.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; // method@d1ef │ │ +49632c: 0c08 |014a: move-result-object v8 │ │ +49632e: 5270 1369 |014b: iget v0, v7, Lorg/purple/smokestack/Settings$35;.val$itemId:I // field@6913 │ │ +496332: 7110 fa5c 0000 |014d: invoke-static {v0}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@5cfa │ │ +496338: 0c00 |0150: move-result-object v0 │ │ +49633a: 6e20 d1d0 0800 |0151: invoke-virtual {v8, v0}, Lorg/purple/smokestack/Database;.removeMessages:(Ljava/lang/String;)Z // method@d0d1 │ │ +496340: 0a08 |0154: move-result v8 │ │ +496342: 3808 5200 |0155: if-eqz v8, 01a7 // +0052 │ │ +496346: 5478 1169 |0157: iget-object v8, v7, Lorg/purple/smokestack/Settings$35;.this$0:Lorg/purple/smokestack/Settings; // field@6911 │ │ +49634a: 6e20 f6d1 3800 |0159: invoke-virtual {v8, v3}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +496350: 0c08 |015c: move-result-object v8 │ │ +496352: 1f08 980a |015d: check-cast v8, Landroid/widget/TableLayout; // type@0a98 │ │ +496356: 6e10 025b 0800 |015f: invoke-virtual {v8}, Landroid/widget/TableLayout;.getChildCount:()I // method@5b02 │ │ +49635c: 0a00 |0162: move-result v0 │ │ +49635e: 3502 4400 |0163: if-ge v2, v0, 01a7 // +0044 │ │ +496362: 6e20 015b 2800 |0165: invoke-virtual {v8, v2}, Landroid/widget/TableLayout;.getChildAt:(I)Landroid/view/View; // method@5b01 │ │ +496368: 0c01 |0168: move-result-object v1 │ │ +49636a: 1f01 9a0a |0169: check-cast v1, Landroid/widget/TableRow; // type@0a9a │ │ +49636e: 3901 0300 |016b: if-nez v1, 016e // +0003 │ │ +496372: 2812 |016d: goto 017f // +0012 │ │ +496374: 6e20 095b 4100 |016e: invoke-virtual {v1, v4}, Landroid/widget/TableRow;.getChildAt:(I)Landroid/view/View; // method@5b09 │ │ +49637a: 0c01 |0171: move-result-object v1 │ │ +49637c: 1f01 9c0a |0172: check-cast v1, Landroid/widget/TextView; // type@0a9c │ │ +496380: 3901 0300 |0174: if-nez v1, 0177 // +0003 │ │ +496384: 2809 |0176: goto 017f // +0009 │ │ +496386: 5273 1369 |0177: iget v3, v7, Lorg/purple/smokestack/Settings$35;.val$itemId:I // field@6913 │ │ +49638a: 6e10 175b 0100 |0179: invoke-virtual {v1}, Landroid/widget/TextView;.getId:()I // method@5b17 │ │ +496390: 0a05 |017c: move-result v5 │ │ +496392: 3253 0500 |017d: if-eq v3, v5, 0182 // +0005 │ │ +496396: d802 0201 |017f: add-int/lit8 v2, v2, #int 1 // #01 │ │ +49639a: 28e2 |0181: goto 0163 // -001e │ │ +49639c: 1a08 2305 |0182: const-string v8, "0 / 0 / 0" // string@0523 │ │ +4963a0: 6e20 525b 8100 |0184: invoke-virtual {v1, v8}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ +4963a6: 2820 |0187: goto 01a7 // +0020 │ │ +4963a8: 7100 43d2 0000 |0188: invoke-static {}, Lorg/purple/smokestack/State;.getInstance:()Lorg/purple/smokestack/State; // method@d243 │ │ +4963ae: 0c08 |018b: move-result-object v8 │ │ +4963b0: 6e20 44d2 1800 |018c: invoke-virtual {v8, v1}, Lorg/purple/smokestack/State;.getString:(Ljava/lang/String;)Ljava/lang/String; // method@d244 │ │ +4963b6: 0c08 |018f: move-result-object v8 │ │ +4963b8: 6e20 da5c 0800 |0190: invoke-virtual {v8, v0}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ +4963be: 0a08 |0193: move-result v8 │ │ +4963c0: 3808 1300 |0194: if-eqz v8, 01a7 // +0013 │ │ +4963c4: 5478 1169 |0196: iget-object v8, v7, Lorg/purple/smokestack/Settings$35;.this$0:Lorg/purple/smokestack/Settings; // field@6911 │ │ +4963c8: 7110 efd1 0800 |0198: invoke-static {v8}, Lorg/purple/smokestack/Settings;.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; // method@d1ef │ │ +4963ce: 0c08 |019b: move-result-object v8 │ │ +4963d0: 6e10 d0d0 0800 |019c: invoke-virtual {v8}, Lorg/purple/smokestack/Database;.removeMessages:()Z // method@d0d0 │ │ +4963d6: 0a08 |019f: move-result v8 │ │ +4963d8: 3808 0700 |01a0: if-eqz v8, 01a7 // +0007 │ │ +4963dc: 5478 1169 |01a2: iget-object v8, v7, Lorg/purple/smokestack/Settings$35;.this$0:Lorg/purple/smokestack/Settings; // field@6911 │ │ +4963e0: 7110 e8d1 0800 |01a4: invoke-static {v8}, Lorg/purple/smokestack/Settings;.access$200:(Lorg/purple/smokestack/Settings;)V // method@d1e8 │ │ +4963e6: 0e00 |01a7: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=2837 │ │ 0x001d line=2916 │ │ 0x0025 line=2917 │ │ 0x002b line=2918 │ │ 0x0031 line=2919 │ │ @@ -786462,17 +786461,17 @@ │ │ type : '()V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -496498: |[496498] org.purple.smokestack.Settings$3.:()V │ │ -4964a8: 7010 ad5c 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ -4964ae: 0e00 |0003: return-void │ │ +496494: |[496494] org.purple.smokestack.Settings$3.:()V │ │ +4964a4: 7010 ad5c 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ +4964aa: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=255 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lorg/purple/smokestack/Settings$3; │ │ │ │ Virtual methods - │ │ @@ -786481,56 +786480,56 @@ │ │ type : '(Ljava/lang/CharSequence;IILandroid/text/Spanned;II)Ljava/lang/CharSequence;' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 7 │ │ ins : 7 │ │ outs : 3 │ │ insns size : 77 16-bit code units │ │ -4963ec: |[4963ec] org.purple.smokestack.Settings$3.filter:(Ljava/lang/CharSequence;IILandroid/text/Spanned;II)Ljava/lang/CharSequence; │ │ -4963fc: 0124 |0000: move v4, v2 │ │ -4963fe: 3534 4a00 |0001: if-ge v4, v3, 004b // +004a │ │ -496402: 7220 185c 4100 |0003: invoke-interface {v1, v4}, Ljava/lang/CharSequence;.charAt:(I)C // method@5c18 │ │ -496408: 0a05 |0006: move-result v5 │ │ -49640a: 1306 2000 |0007: const/16 v6, #int 32 // #20 │ │ -49640e: 3265 3f00 |0009: if-eq v5, v6, 0048 // +003f │ │ -496412: 7220 185c 4100 |000b: invoke-interface {v1, v4}, Ljava/lang/CharSequence;.charAt:(I)C // method@5c18 │ │ -496418: 0a05 |000e: move-result v5 │ │ -49641a: 1306 2d00 |000f: const/16 v6, #int 45 // #2d │ │ -49641e: 3265 3700 |0011: if-eq v5, v6, 0048 // +0037 │ │ -496422: 7220 185c 4100 |0013: invoke-interface {v1, v4}, Ljava/lang/CharSequence;.charAt:(I)C // method@5c18 │ │ -496428: 0a05 |0016: move-result v5 │ │ -49642a: 1306 3000 |0017: const/16 v6, #int 48 // #30 │ │ -49642e: 3465 0a00 |0019: if-lt v5, v6, 0023 // +000a │ │ -496432: 7220 185c 4100 |001b: invoke-interface {v1, v4}, Ljava/lang/CharSequence;.charAt:(I)C // method@5c18 │ │ -496438: 0a05 |001e: move-result v5 │ │ -49643a: 1306 3900 |001f: const/16 v6, #int 57 // #39 │ │ -49643e: 3765 2700 |0021: if-le v5, v6, 0048 // +0027 │ │ -496442: 7220 185c 4100 |0023: invoke-interface {v1, v4}, Ljava/lang/CharSequence;.charAt:(I)C // method@5c18 │ │ -496448: 0a05 |0026: move-result v5 │ │ -49644a: 1306 4100 |0027: const/16 v6, #int 65 // #41 │ │ -49644e: 3465 0a00 |0029: if-lt v5, v6, 0033 // +000a │ │ -496452: 7220 185c 4100 |002b: invoke-interface {v1, v4}, Ljava/lang/CharSequence;.charAt:(I)C // method@5c18 │ │ -496458: 0a05 |002e: move-result v5 │ │ -49645a: 1306 4600 |002f: const/16 v6, #int 70 // #46 │ │ -49645e: 3765 1700 |0031: if-le v5, v6, 0048 // +0017 │ │ -496462: 7220 185c 4100 |0033: invoke-interface {v1, v4}, Ljava/lang/CharSequence;.charAt:(I)C // method@5c18 │ │ -496468: 0a05 |0036: move-result v5 │ │ -49646a: 1306 6100 |0037: const/16 v6, #int 97 // #61 │ │ -49646e: 3465 0a00 |0039: if-lt v5, v6, 0043 // +000a │ │ -496472: 7220 185c 4100 |003b: invoke-interface {v1, v4}, Ljava/lang/CharSequence;.charAt:(I)C // method@5c18 │ │ -496478: 0a05 |003e: move-result v5 │ │ -49647a: 1306 6600 |003f: const/16 v6, #int 102 // #66 │ │ -49647e: 3765 0700 |0041: if-le v5, v6, 0048 // +0007 │ │ -496482: 7230 1a5c 2104 |0043: invoke-interface {v1, v2, v4}, Ljava/lang/CharSequence;.subSequence:(II)Ljava/lang/CharSequence; // method@5c1a │ │ -496488: 0c01 |0046: move-result-object v1 │ │ -49648a: 1101 |0047: return-object v1 │ │ -49648c: d804 0401 |0048: add-int/lit8 v4, v4, #int 1 // #01 │ │ -496490: 28b7 |004a: goto 0001 // -0049 │ │ -496492: 1201 |004b: const/4 v1, #int 0 // #0 │ │ -496494: 1101 |004c: return-object v1 │ │ +4963e8: |[4963e8] org.purple.smokestack.Settings$3.filter:(Ljava/lang/CharSequence;IILandroid/text/Spanned;II)Ljava/lang/CharSequence; │ │ +4963f8: 0124 |0000: move v4, v2 │ │ +4963fa: 3534 4a00 |0001: if-ge v4, v3, 004b // +004a │ │ +4963fe: 7220 185c 4100 |0003: invoke-interface {v1, v4}, Ljava/lang/CharSequence;.charAt:(I)C // method@5c18 │ │ +496404: 0a05 |0006: move-result v5 │ │ +496406: 1306 2000 |0007: const/16 v6, #int 32 // #20 │ │ +49640a: 3265 3f00 |0009: if-eq v5, v6, 0048 // +003f │ │ +49640e: 7220 185c 4100 |000b: invoke-interface {v1, v4}, Ljava/lang/CharSequence;.charAt:(I)C // method@5c18 │ │ +496414: 0a05 |000e: move-result v5 │ │ +496416: 1306 2d00 |000f: const/16 v6, #int 45 // #2d │ │ +49641a: 3265 3700 |0011: if-eq v5, v6, 0048 // +0037 │ │ +49641e: 7220 185c 4100 |0013: invoke-interface {v1, v4}, Ljava/lang/CharSequence;.charAt:(I)C // method@5c18 │ │ +496424: 0a05 |0016: move-result v5 │ │ +496426: 1306 3000 |0017: const/16 v6, #int 48 // #30 │ │ +49642a: 3465 0a00 |0019: if-lt v5, v6, 0023 // +000a │ │ +49642e: 7220 185c 4100 |001b: invoke-interface {v1, v4}, Ljava/lang/CharSequence;.charAt:(I)C // method@5c18 │ │ +496434: 0a05 |001e: move-result v5 │ │ +496436: 1306 3900 |001f: const/16 v6, #int 57 // #39 │ │ +49643a: 3765 2700 |0021: if-le v5, v6, 0048 // +0027 │ │ +49643e: 7220 185c 4100 |0023: invoke-interface {v1, v4}, Ljava/lang/CharSequence;.charAt:(I)C // method@5c18 │ │ +496444: 0a05 |0026: move-result v5 │ │ +496446: 1306 4100 |0027: const/16 v6, #int 65 // #41 │ │ +49644a: 3465 0a00 |0029: if-lt v5, v6, 0033 // +000a │ │ +49644e: 7220 185c 4100 |002b: invoke-interface {v1, v4}, Ljava/lang/CharSequence;.charAt:(I)C // method@5c18 │ │ +496454: 0a05 |002e: move-result v5 │ │ +496456: 1306 4600 |002f: const/16 v6, #int 70 // #46 │ │ +49645a: 3765 1700 |0031: if-le v5, v6, 0048 // +0017 │ │ +49645e: 7220 185c 4100 |0033: invoke-interface {v1, v4}, Ljava/lang/CharSequence;.charAt:(I)C // method@5c18 │ │ +496464: 0a05 |0036: move-result v5 │ │ +496466: 1306 6100 |0037: const/16 v6, #int 97 // #61 │ │ +49646a: 3465 0a00 |0039: if-lt v5, v6, 0043 // +000a │ │ +49646e: 7220 185c 4100 |003b: invoke-interface {v1, v4}, Ljava/lang/CharSequence;.charAt:(I)C // method@5c18 │ │ +496474: 0a05 |003e: move-result v5 │ │ +496476: 1306 6600 |003f: const/16 v6, #int 102 // #66 │ │ +49647a: 3765 0700 |0041: if-le v5, v6, 0048 // +0007 │ │ +49647e: 7230 1a5c 2104 |0043: invoke-interface {v1, v2, v4}, Ljava/lang/CharSequence;.subSequence:(II)Ljava/lang/CharSequence; // method@5c1a │ │ +496484: 0c01 |0046: move-result-object v1 │ │ +496486: 1101 |0047: return-object v1 │ │ +496488: d804 0401 |0048: add-int/lit8 v4, v4, #int 1 // #01 │ │ +49648c: 28b7 |004a: goto 0001 // -0049 │ │ +49648e: 1201 |004b: const/4 v1, #int 0 // #0 │ │ +496490: 1101 |004c: return-object v1 │ │ catches : (none) │ │ positions : │ │ 0x0003 line=268 │ │ 0x0013 line=269 │ │ 0x0023 line=270 │ │ 0x0033 line=271 │ │ 0x0043 line=272 │ │ @@ -786582,19 +786581,19 @@ │ │ type : '(Lorg/purple/smokestack/Settings;Ljava/lang/String;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 3 │ │ ins : 3 │ │ outs : 1 │ │ insns size : 8 16-bit code units │ │ -4964b0: |[4964b0] org.purple.smokestack.Settings$4.:(Lorg/purple/smokestack/Settings;Ljava/lang/String;)V │ │ -4964c0: 5b01 1469 |0000: iput-object v1, v0, Lorg/purple/smokestack/Settings$4;.this$0:Lorg/purple/smokestack/Settings; // field@6914 │ │ -4964c4: 5b02 1569 |0002: iput-object v2, v0, Lorg/purple/smokestack/Settings$4;.val$oid:Ljava/lang/String; // field@6915 │ │ -4964c8: 7010 ad5c 0000 |0004: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ -4964ce: 0e00 |0007: return-void │ │ +4964ac: |[4964ac] org.purple.smokestack.Settings$4.:(Lorg/purple/smokestack/Settings;Ljava/lang/String;)V │ │ +4964bc: 5b01 1469 |0000: iput-object v1, v0, Lorg/purple/smokestack/Settings$4;.this$0:Lorg/purple/smokestack/Settings; // field@6914 │ │ +4964c0: 5b02 1569 |0002: iput-object v2, v0, Lorg/purple/smokestack/Settings$4;.val$oid:Ljava/lang/String; // field@6915 │ │ +4964c4: 7010 ad5c 0000 |0004: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ +4964ca: 0e00 |0007: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=706 │ │ locals : │ │ 0x0000 - 0x0008 reg=0 this Lorg/purple/smokestack/Settings$4; │ │ 0x0000 - 0x0008 reg=1 (null) Lorg/purple/smokestack/Settings; │ │ 0x0000 - 0x0008 reg=2 (null) Ljava/lang/String; │ │ @@ -786605,28 +786604,28 @@ │ │ type : '(Landroid/widget/CompoundButton;Z)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 6 │ │ ins : 3 │ │ outs : 5 │ │ insns size : 25 16-bit code units │ │ -4964d0: |[4964d0] org.purple.smokestack.Settings$4.onCheckedChanged:(Landroid/widget/CompoundButton;Z)V │ │ -4964e0: 5434 1469 |0000: iget-object v4, v3, Lorg/purple/smokestack/Settings$4;.this$0:Lorg/purple/smokestack/Settings; // field@6914 │ │ -4964e4: 7110 efd1 0400 |0002: invoke-static {v4}, Lorg/purple/smokestack/Settings;.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; // method@d1ef │ │ -4964ea: 0c04 |0005: move-result-object v4 │ │ -4964ec: 7100 eed1 0000 |0006: invoke-static {}, Lorg/purple/smokestack/Settings;.access$400:()Lorg/purple/smokestack/Cryptography; // method@d1ee │ │ -4964f2: 0c00 |0009: move-result-object v0 │ │ -4964f4: 3805 0500 |000a: if-eqz v5, 000f // +0005 │ │ -4964f8: 1a05 628a |000c: const-string v5, "listen" // string@8a62 │ │ -4964fc: 2803 |000e: goto 0011 // +0003 │ │ -4964fe: 1a05 4f6d |000f: const-string v5, "disconnect" // string@6d4f │ │ -496502: 5431 1569 |0011: iget-object v1, v3, Lorg/purple/smokestack/Settings$4;.val$oid:Ljava/lang/String; // field@6915 │ │ -496506: 1a02 658a |0013: const-string v2, "listeners" // string@8a65 │ │ -49650a: 6e52 b7d0 0415 |0015: invoke-virtual {v4, v0, v5, v1, v2}, Lorg/purple/smokestack/Database;.listenerNeighborControlStatus:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V // method@d0b7 │ │ -496510: 0e00 |0018: return-void │ │ +4964cc: |[4964cc] org.purple.smokestack.Settings$4.onCheckedChanged:(Landroid/widget/CompoundButton;Z)V │ │ +4964dc: 5434 1469 |0000: iget-object v4, v3, Lorg/purple/smokestack/Settings$4;.this$0:Lorg/purple/smokestack/Settings; // field@6914 │ │ +4964e0: 7110 efd1 0400 |0002: invoke-static {v4}, Lorg/purple/smokestack/Settings;.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; // method@d1ef │ │ +4964e6: 0c04 |0005: move-result-object v4 │ │ +4964e8: 7100 eed1 0000 |0006: invoke-static {}, Lorg/purple/smokestack/Settings;.access$400:()Lorg/purple/smokestack/Cryptography; // method@d1ee │ │ +4964ee: 0c00 |0009: move-result-object v0 │ │ +4964f0: 3805 0500 |000a: if-eqz v5, 000f // +0005 │ │ +4964f4: 1a05 628a |000c: const-string v5, "listen" // string@8a62 │ │ +4964f8: 2803 |000e: goto 0011 // +0003 │ │ +4964fa: 1a05 4f6d |000f: const-string v5, "disconnect" // string@6d4f │ │ +4964fe: 5431 1569 |0011: iget-object v1, v3, Lorg/purple/smokestack/Settings$4;.val$oid:Ljava/lang/String; // field@6915 │ │ +496502: 1a02 658a |0013: const-string v2, "listeners" // string@8a65 │ │ +496506: 6e52 b7d0 0415 |0015: invoke-virtual {v4, v0, v5, v1, v2}, Lorg/purple/smokestack/Database;.listenerNeighborControlStatus:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V // method@d0b7 │ │ +49650c: 0e00 |0018: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=711 │ │ 0x0006 line=712 │ │ 0x0011 line=713 │ │ 0x0015 line=712 │ │ locals : │ │ @@ -786677,19 +786676,19 @@ │ │ type : '(Lorg/purple/smokestack/Settings;Landroid/widget/TableLayout;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 3 │ │ ins : 3 │ │ outs : 1 │ │ insns size : 8 16-bit code units │ │ -496514: |[496514] org.purple.smokestack.Settings$5.:(Lorg/purple/smokestack/Settings;Landroid/widget/TableLayout;)V │ │ -496524: 5b01 1669 |0000: iput-object v1, v0, Lorg/purple/smokestack/Settings$5;.this$0:Lorg/purple/smokestack/Settings; // field@6916 │ │ -496528: 5b02 1769 |0002: iput-object v2, v0, Lorg/purple/smokestack/Settings$5;.val$tableLayout:Landroid/widget/TableLayout; // field@6917 │ │ -49652c: 7010 ad5c 0000 |0004: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ -496532: 0e00 |0007: return-void │ │ +496510: |[496510] org.purple.smokestack.Settings$5.:(Lorg/purple/smokestack/Settings;Landroid/widget/TableLayout;)V │ │ +496520: 5b01 1669 |0000: iput-object v1, v0, Lorg/purple/smokestack/Settings$5;.this$0:Lorg/purple/smokestack/Settings; // field@6916 │ │ +496524: 5b02 1769 |0002: iput-object v2, v0, Lorg/purple/smokestack/Settings$5;.val$tableLayout:Landroid/widget/TableLayout; // field@6917 │ │ +496528: 7010 ad5c 0000 |0004: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ +49652e: 0e00 |0007: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=1005 │ │ locals : │ │ 0x0000 - 0x0008 reg=0 this Lorg/purple/smokestack/Settings$5; │ │ 0x0000 - 0x0008 reg=1 (null) Lorg/purple/smokestack/Settings; │ │ 0x0000 - 0x0008 reg=2 (null) Landroid/widget/TableLayout; │ │ @@ -786700,94 +786699,94 @@ │ │ type : '(Landroid/widget/AdapterView;Landroid/view/View;IJ)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 8 │ │ ins : 6 │ │ outs : 5 │ │ insns size : 156 16-bit code units │ │ -496534: |[496534] org.purple.smokestack.Settings$5.onItemSelected:(Landroid/widget/AdapterView;Landroid/view/View;IJ)V │ │ -496544: 1a04 0098 |0000: const-string v4, "neighbors" // string@9800 │ │ -496548: 1216 |0002: const/4 v6, #int 1 // #1 │ │ -49654a: 3365 1b00 |0003: if-ne v5, v6, 001e // +001b │ │ -49654e: 5425 1669 |0005: iget-object v5, v2, Lorg/purple/smokestack/Settings$5;.this$0:Lorg/purple/smokestack/Settings; // field@6916 │ │ -496552: 7110 efd1 0500 |0007: invoke-static {v5}, Lorg/purple/smokestack/Settings;.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; // method@d1ef │ │ -496558: 0c05 |000a: move-result-object v5 │ │ -49655a: 7100 eed1 0000 |000b: invoke-static {}, Lorg/purple/smokestack/Settings;.access$400:()Lorg/purple/smokestack/Cryptography; // method@d1ee │ │ -496560: 0c06 |000e: move-result-object v6 │ │ -496562: 6e10 e458 0300 |000f: invoke-virtual {v3}, Landroid/widget/AdapterView;.getId:()I // method@58e4 │ │ -496568: 0a07 |0012: move-result v7 │ │ -49656a: 7110 fa5c 0700 |0013: invoke-static {v7}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@5cfa │ │ -496570: 0c07 |0016: move-result-object v7 │ │ -496572: 1a00 c768 |0017: const-string v0, "connect" // string@68c7 │ │ -496576: 6e54 b7d0 6570 |0019: invoke-virtual {v5, v6, v0, v7, v4}, Lorg/purple/smokestack/Database;.listenerNeighborControlStatus:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V // method@d0b7 │ │ -49657c: 2900 7b00 |001c: goto/16 0097 // +007b │ │ -496580: 1226 |001e: const/4 v6, #int 2 // #2 │ │ -496582: 3365 2f00 |001f: if-ne v5, v6, 004e // +002f │ │ -496586: 5426 1669 |0021: iget-object v6, v2, Lorg/purple/smokestack/Settings$5;.this$0:Lorg/purple/smokestack/Settings; // field@6916 │ │ -49658a: 7110 efd1 0600 |0023: invoke-static {v6}, Lorg/purple/smokestack/Settings;.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; // method@d1ef │ │ -496590: 0c06 |0026: move-result-object v6 │ │ -496592: 6e10 e458 0300 |0027: invoke-virtual {v3}, Landroid/widget/AdapterView;.getId:()I // method@58e4 │ │ -496598: 0a07 |002a: move-result v7 │ │ -49659a: 7110 fa5c 0700 |002b: invoke-static {v7}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@5cfa │ │ -4965a0: 0c07 |002e: move-result-object v7 │ │ -4965a2: 6e30 aed0 7604 |002f: invoke-virtual {v6, v7, v4}, Lorg/purple/smokestack/Database;.deleteEntry:(Ljava/lang/String;Ljava/lang/String;)Z // method@d0ae │ │ -4965a8: 0a06 |0032: move-result v6 │ │ -4965aa: 3806 1b00 |0033: if-eqz v6, 004e // +001b │ │ -4965ae: 7100 02d1 0000 |0035: invoke-static {}, Lorg/purple/smokestack/Kernel;.getInstance:()Lorg/purple/smokestack/Kernel; // method@d102 │ │ -4965b4: 0c04 |0038: move-result-object v4 │ │ -4965b6: 6e10 0dd1 0400 |0039: invoke-virtual {v4}, Lorg/purple/smokestack/Kernel;.purgeDeletedNeighbors:()Ljava/util/ArrayList; // method@d10d │ │ -4965bc: 5424 1669 |003c: iget-object v4, v2, Lorg/purple/smokestack/Settings$5;.this$0:Lorg/purple/smokestack/Settings; // field@6916 │ │ -4965c0: 6e10 e458 0300 |003e: invoke-virtual {v3}, Landroid/widget/AdapterView;.getId:()I // method@58e4 │ │ -4965c6: 0a05 |0041: move-result v5 │ │ -4965c8: 6e20 f6d1 5400 |0042: invoke-virtual {v4, v5}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4965ce: 0c04 |0045: move-result-object v4 │ │ -4965d0: 1f04 9a0a |0046: check-cast v4, Landroid/widget/TableRow; // type@0a9a │ │ -4965d4: 5425 1769 |0048: iget-object v5, v2, Lorg/purple/smokestack/Settings$5;.val$tableLayout:Landroid/widget/TableLayout; // field@6917 │ │ -4965d8: 6e20 045b 4500 |004a: invoke-virtual {v5, v4}, Landroid/widget/TableLayout;.removeView:(Landroid/view/View;)V // method@5b04 │ │ -4965de: 284a |004d: goto 0097 // +004a │ │ -4965e0: 1236 |004e: const/4 v6, #int 3 // #3 │ │ -4965e2: 1a07 4f6d |004f: const-string v7, "disconnect" // string@6d4f │ │ -4965e6: 3365 1800 |0051: if-ne v5, v6, 0069 // +0018 │ │ -4965ea: 5425 1669 |0053: iget-object v5, v2, Lorg/purple/smokestack/Settings$5;.this$0:Lorg/purple/smokestack/Settings; // field@6916 │ │ -4965ee: 7110 efd1 0500 |0055: invoke-static {v5}, Lorg/purple/smokestack/Settings;.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; // method@d1ef │ │ -4965f4: 0c05 |0058: move-result-object v5 │ │ -4965f6: 7100 eed1 0000 |0059: invoke-static {}, Lorg/purple/smokestack/Settings;.access$400:()Lorg/purple/smokestack/Cryptography; // method@d1ee │ │ -4965fc: 0c06 |005c: move-result-object v6 │ │ -4965fe: 6e10 e458 0300 |005d: invoke-virtual {v3}, Landroid/widget/AdapterView;.getId:()I // method@58e4 │ │ -496604: 0a00 |0060: move-result v0 │ │ -496606: 7110 fa5c 0000 |0061: invoke-static {v0}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@5cfa │ │ -49660c: 0c00 |0064: move-result-object v0 │ │ -49660e: 6e54 b7d0 6507 |0065: invoke-virtual {v5, v6, v7, v0, v4}, Lorg/purple/smokestack/Database;.listenerNeighborControlStatus:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V // method@d0b7 │ │ -496614: 282f |0068: goto 0097 // +002f │ │ -496616: 1246 |0069: const/4 v6, #int 4 // #4 │ │ -496618: 3365 2d00 |006a: if-ne v5, v6, 0097 // +002d │ │ -49661c: 5425 1669 |006c: iget-object v5, v2, Lorg/purple/smokestack/Settings$5;.this$0:Lorg/purple/smokestack/Settings; // field@6916 │ │ -496620: 7110 efd1 0500 |006e: invoke-static {v5}, Lorg/purple/smokestack/Settings;.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; // method@d1ef │ │ -496626: 0c05 |0071: move-result-object v5 │ │ -496628: 7100 eed1 0000 |0072: invoke-static {}, Lorg/purple/smokestack/Settings;.access$400:()Lorg/purple/smokestack/Cryptography; // method@d1ee │ │ -49662e: 0c06 |0075: move-result-object v6 │ │ -496630: 6e10 e458 0300 |0076: invoke-virtual {v3}, Landroid/widget/AdapterView;.getId:()I // method@58e4 │ │ -496636: 0a00 |0079: move-result v0 │ │ -496638: 7110 fa5c 0000 |007a: invoke-static {v0}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@5cfa │ │ -49663e: 0c00 |007d: move-result-object v0 │ │ -496640: 1201 |007e: const/4 v1, #int 0 // #0 │ │ -496642: 6e40 b9d0 6510 |007f: invoke-virtual {v5, v6, v0, v1}, Lorg/purple/smokestack/Database;.neighborRecordCertificate:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;[B)V // method@d0b9 │ │ -496648: 5425 1669 |0082: iget-object v5, v2, Lorg/purple/smokestack/Settings$5;.this$0:Lorg/purple/smokestack/Settings; // field@6916 │ │ -49664c: 7110 efd1 0500 |0084: invoke-static {v5}, Lorg/purple/smokestack/Settings;.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; // method@d1ef │ │ -496652: 0c05 |0087: move-result-object v5 │ │ -496654: 7100 eed1 0000 |0088: invoke-static {}, Lorg/purple/smokestack/Settings;.access$400:()Lorg/purple/smokestack/Cryptography; // method@d1ee │ │ -49665a: 0c06 |008b: move-result-object v6 │ │ -49665c: 6e10 e458 0300 |008c: invoke-virtual {v3}, Landroid/widget/AdapterView;.getId:()I // method@58e4 │ │ -496662: 0a00 |008f: move-result v0 │ │ -496664: 7110 fa5c 0000 |0090: invoke-static {v0}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@5cfa │ │ -49666a: 0c00 |0093: move-result-object v0 │ │ -49666c: 6e54 b7d0 6507 |0094: invoke-virtual {v5, v6, v7, v0, v4}, Lorg/purple/smokestack/Database;.listenerNeighborControlStatus:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V // method@d0b7 │ │ -496672: 1204 |0097: const/4 v4, #int 0 // #0 │ │ -496674: 6e20 e558 4300 |0098: invoke-virtual {v3, v4}, Landroid/widget/AdapterView;.setSelection:(I)V // method@58e5 │ │ -49667a: 0e00 |009b: return-void │ │ +496530: |[496530] org.purple.smokestack.Settings$5.onItemSelected:(Landroid/widget/AdapterView;Landroid/view/View;IJ)V │ │ +496540: 1a04 0098 |0000: const-string v4, "neighbors" // string@9800 │ │ +496544: 1216 |0002: const/4 v6, #int 1 // #1 │ │ +496546: 3365 1b00 |0003: if-ne v5, v6, 001e // +001b │ │ +49654a: 5425 1669 |0005: iget-object v5, v2, Lorg/purple/smokestack/Settings$5;.this$0:Lorg/purple/smokestack/Settings; // field@6916 │ │ +49654e: 7110 efd1 0500 |0007: invoke-static {v5}, Lorg/purple/smokestack/Settings;.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; // method@d1ef │ │ +496554: 0c05 |000a: move-result-object v5 │ │ +496556: 7100 eed1 0000 |000b: invoke-static {}, Lorg/purple/smokestack/Settings;.access$400:()Lorg/purple/smokestack/Cryptography; // method@d1ee │ │ +49655c: 0c06 |000e: move-result-object v6 │ │ +49655e: 6e10 e458 0300 |000f: invoke-virtual {v3}, Landroid/widget/AdapterView;.getId:()I // method@58e4 │ │ +496564: 0a07 |0012: move-result v7 │ │ +496566: 7110 fa5c 0700 |0013: invoke-static {v7}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@5cfa │ │ +49656c: 0c07 |0016: move-result-object v7 │ │ +49656e: 1a00 c768 |0017: const-string v0, "connect" // string@68c7 │ │ +496572: 6e54 b7d0 6570 |0019: invoke-virtual {v5, v6, v0, v7, v4}, Lorg/purple/smokestack/Database;.listenerNeighborControlStatus:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V // method@d0b7 │ │ +496578: 2900 7b00 |001c: goto/16 0097 // +007b │ │ +49657c: 1226 |001e: const/4 v6, #int 2 // #2 │ │ +49657e: 3365 2f00 |001f: if-ne v5, v6, 004e // +002f │ │ +496582: 5426 1669 |0021: iget-object v6, v2, Lorg/purple/smokestack/Settings$5;.this$0:Lorg/purple/smokestack/Settings; // field@6916 │ │ +496586: 7110 efd1 0600 |0023: invoke-static {v6}, Lorg/purple/smokestack/Settings;.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; // method@d1ef │ │ +49658c: 0c06 |0026: move-result-object v6 │ │ +49658e: 6e10 e458 0300 |0027: invoke-virtual {v3}, Landroid/widget/AdapterView;.getId:()I // method@58e4 │ │ +496594: 0a07 |002a: move-result v7 │ │ +496596: 7110 fa5c 0700 |002b: invoke-static {v7}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@5cfa │ │ +49659c: 0c07 |002e: move-result-object v7 │ │ +49659e: 6e30 aed0 7604 |002f: invoke-virtual {v6, v7, v4}, Lorg/purple/smokestack/Database;.deleteEntry:(Ljava/lang/String;Ljava/lang/String;)Z // method@d0ae │ │ +4965a4: 0a06 |0032: move-result v6 │ │ +4965a6: 3806 1b00 |0033: if-eqz v6, 004e // +001b │ │ +4965aa: 7100 02d1 0000 |0035: invoke-static {}, Lorg/purple/smokestack/Kernel;.getInstance:()Lorg/purple/smokestack/Kernel; // method@d102 │ │ +4965b0: 0c04 |0038: move-result-object v4 │ │ +4965b2: 6e10 0dd1 0400 |0039: invoke-virtual {v4}, Lorg/purple/smokestack/Kernel;.purgeDeletedNeighbors:()Ljava/util/ArrayList; // method@d10d │ │ +4965b8: 5424 1669 |003c: iget-object v4, v2, Lorg/purple/smokestack/Settings$5;.this$0:Lorg/purple/smokestack/Settings; // field@6916 │ │ +4965bc: 6e10 e458 0300 |003e: invoke-virtual {v3}, Landroid/widget/AdapterView;.getId:()I // method@58e4 │ │ +4965c2: 0a05 |0041: move-result v5 │ │ +4965c4: 6e20 f6d1 5400 |0042: invoke-virtual {v4, v5}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4965ca: 0c04 |0045: move-result-object v4 │ │ +4965cc: 1f04 9a0a |0046: check-cast v4, Landroid/widget/TableRow; // type@0a9a │ │ +4965d0: 5425 1769 |0048: iget-object v5, v2, Lorg/purple/smokestack/Settings$5;.val$tableLayout:Landroid/widget/TableLayout; // field@6917 │ │ +4965d4: 6e20 045b 4500 |004a: invoke-virtual {v5, v4}, Landroid/widget/TableLayout;.removeView:(Landroid/view/View;)V // method@5b04 │ │ +4965da: 284a |004d: goto 0097 // +004a │ │ +4965dc: 1236 |004e: const/4 v6, #int 3 // #3 │ │ +4965de: 1a07 4f6d |004f: const-string v7, "disconnect" // string@6d4f │ │ +4965e2: 3365 1800 |0051: if-ne v5, v6, 0069 // +0018 │ │ +4965e6: 5425 1669 |0053: iget-object v5, v2, Lorg/purple/smokestack/Settings$5;.this$0:Lorg/purple/smokestack/Settings; // field@6916 │ │ +4965ea: 7110 efd1 0500 |0055: invoke-static {v5}, Lorg/purple/smokestack/Settings;.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; // method@d1ef │ │ +4965f0: 0c05 |0058: move-result-object v5 │ │ +4965f2: 7100 eed1 0000 |0059: invoke-static {}, Lorg/purple/smokestack/Settings;.access$400:()Lorg/purple/smokestack/Cryptography; // method@d1ee │ │ +4965f8: 0c06 |005c: move-result-object v6 │ │ +4965fa: 6e10 e458 0300 |005d: invoke-virtual {v3}, Landroid/widget/AdapterView;.getId:()I // method@58e4 │ │ +496600: 0a00 |0060: move-result v0 │ │ +496602: 7110 fa5c 0000 |0061: invoke-static {v0}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@5cfa │ │ +496608: 0c00 |0064: move-result-object v0 │ │ +49660a: 6e54 b7d0 6507 |0065: invoke-virtual {v5, v6, v7, v0, v4}, Lorg/purple/smokestack/Database;.listenerNeighborControlStatus:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V // method@d0b7 │ │ +496610: 282f |0068: goto 0097 // +002f │ │ +496612: 1246 |0069: const/4 v6, #int 4 // #4 │ │ +496614: 3365 2d00 |006a: if-ne v5, v6, 0097 // +002d │ │ +496618: 5425 1669 |006c: iget-object v5, v2, Lorg/purple/smokestack/Settings$5;.this$0:Lorg/purple/smokestack/Settings; // field@6916 │ │ +49661c: 7110 efd1 0500 |006e: invoke-static {v5}, Lorg/purple/smokestack/Settings;.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; // method@d1ef │ │ +496622: 0c05 |0071: move-result-object v5 │ │ +496624: 7100 eed1 0000 |0072: invoke-static {}, Lorg/purple/smokestack/Settings;.access$400:()Lorg/purple/smokestack/Cryptography; // method@d1ee │ │ +49662a: 0c06 |0075: move-result-object v6 │ │ +49662c: 6e10 e458 0300 |0076: invoke-virtual {v3}, Landroid/widget/AdapterView;.getId:()I // method@58e4 │ │ +496632: 0a00 |0079: move-result v0 │ │ +496634: 7110 fa5c 0000 |007a: invoke-static {v0}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@5cfa │ │ +49663a: 0c00 |007d: move-result-object v0 │ │ +49663c: 1201 |007e: const/4 v1, #int 0 // #0 │ │ +49663e: 6e40 b9d0 6510 |007f: invoke-virtual {v5, v6, v0, v1}, Lorg/purple/smokestack/Database;.neighborRecordCertificate:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;[B)V // method@d0b9 │ │ +496644: 5425 1669 |0082: iget-object v5, v2, Lorg/purple/smokestack/Settings$5;.this$0:Lorg/purple/smokestack/Settings; // field@6916 │ │ +496648: 7110 efd1 0500 |0084: invoke-static {v5}, Lorg/purple/smokestack/Settings;.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; // method@d1ef │ │ +49664e: 0c05 |0087: move-result-object v5 │ │ +496650: 7100 eed1 0000 |0088: invoke-static {}, Lorg/purple/smokestack/Settings;.access$400:()Lorg/purple/smokestack/Cryptography; // method@d1ee │ │ +496656: 0c06 |008b: move-result-object v6 │ │ +496658: 6e10 e458 0300 |008c: invoke-virtual {v3}, Landroid/widget/AdapterView;.getId:()I // method@58e4 │ │ +49665e: 0a00 |008f: move-result v0 │ │ +496660: 7110 fa5c 0000 |0090: invoke-static {v0}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@5cfa │ │ +496666: 0c00 |0093: move-result-object v0 │ │ +496668: 6e54 b7d0 6507 |0094: invoke-virtual {v5, v6, v7, v0, v4}, Lorg/purple/smokestack/Database;.listenerNeighborControlStatus:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V // method@d0b7 │ │ +49666e: 1204 |0097: const/4 v4, #int 0 // #0 │ │ +496670: 6e20 e558 4300 |0098: invoke-virtual {v3, v4}, Landroid/widget/AdapterView;.setSelection:(I)V // method@58e5 │ │ +496676: 0e00 |009b: return-void │ │ catches : (none) │ │ positions : │ │ 0x0005 line=1013 │ │ 0x000b line=1014 │ │ 0x000f line=1016 │ │ 0x0019 line=1014 │ │ 0x0021 line=1018 │ │ @@ -786822,16 +786821,16 @@ │ │ type : '(Landroid/widget/AdapterView;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 0 │ │ insns size : 1 16-bit code units │ │ -49667c: |[49667c] org.purple.smokestack.Settings$5.onNothingSelected:(Landroid/widget/AdapterView;)V │ │ -49668c: 0e00 |0000: return-void │ │ +496678: |[496678] org.purple.smokestack.Settings$5.onNothingSelected:(Landroid/widget/AdapterView;)V │ │ +496688: 0e00 |0000: return-void │ │ catches : (none) │ │ positions : │ │ locals : │ │ │ │ source_file_idx : 20898 (Settings.java) │ │ │ │ Class #3063 header: │ │ @@ -786867,18 +786866,18 @@ │ │ type : '(Lorg/purple/smokestack/Settings;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 6 16-bit code units │ │ -496690: |[496690] org.purple.smokestack.Settings$6.:(Lorg/purple/smokestack/Settings;)V │ │ -4966a0: 5b01 1869 |0000: iput-object v1, v0, Lorg/purple/smokestack/Settings$6;.this$0:Lorg/purple/smokestack/Settings; // field@6918 │ │ -4966a4: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ -4966aa: 0e00 |0005: return-void │ │ +49668c: |[49668c] org.purple.smokestack.Settings$6.:(Lorg/purple/smokestack/Settings;)V │ │ +49669c: 5b01 1869 |0000: iput-object v1, v0, Lorg/purple/smokestack/Settings$6;.this$0:Lorg/purple/smokestack/Settings; // field@6918 │ │ +4966a0: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ +4966a6: 0e00 |0005: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=1659 │ │ locals : │ │ 0x0000 - 0x0006 reg=0 this Lorg/purple/smokestack/Settings$6; │ │ 0x0000 - 0x0006 reg=1 (null) Lorg/purple/smokestack/Settings; │ │ │ │ @@ -786888,23 +786887,23 @@ │ │ type : '(Landroid/view/View;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 15 16-bit code units │ │ -4966ac: |[4966ac] org.purple.smokestack.Settings$6.onClick:(Landroid/view/View;)V │ │ -4966bc: 5401 1869 |0000: iget-object v1, v0, Lorg/purple/smokestack/Settings$6;.this$0:Lorg/purple/smokestack/Settings; // field@6918 │ │ -4966c0: 6e10 fed1 0100 |0002: invoke-virtual {v1}, Lorg/purple/smokestack/Settings;.isFinishing:()Z // method@d1fe │ │ -4966c6: 0a01 |0005: move-result v1 │ │ -4966c8: 3801 0300 |0006: if-eqz v1, 0009 // +0003 │ │ -4966cc: 0e00 |0008: return-void │ │ -4966ce: 5401 1869 |0009: iget-object v1, v0, Lorg/purple/smokestack/Settings$6;.this$0:Lorg/purple/smokestack/Settings; // field@6918 │ │ -4966d2: 7110 e1d1 0100 |000b: invoke-static {v1}, Lorg/purple/smokestack/Settings;.access$1300:(Lorg/purple/smokestack/Settings;)V // method@d1e1 │ │ -4966d8: 0e00 |000e: return-void │ │ +4966a8: |[4966a8] org.purple.smokestack.Settings$6.onClick:(Landroid/view/View;)V │ │ +4966b8: 5401 1869 |0000: iget-object v1, v0, Lorg/purple/smokestack/Settings$6;.this$0:Lorg/purple/smokestack/Settings; // field@6918 │ │ +4966bc: 6e10 fed1 0100 |0002: invoke-virtual {v1}, Lorg/purple/smokestack/Settings;.isFinishing:()Z // method@d1fe │ │ +4966c2: 0a01 |0005: move-result v1 │ │ +4966c4: 3801 0300 |0006: if-eqz v1, 0009 // +0003 │ │ +4966c8: 0e00 |0008: return-void │ │ +4966ca: 5401 1869 |0009: iget-object v1, v0, Lorg/purple/smokestack/Settings$6;.this$0:Lorg/purple/smokestack/Settings; // field@6918 │ │ +4966ce: 7110 e1d1 0100 |000b: invoke-static {v1}, Lorg/purple/smokestack/Settings;.access$1300:(Lorg/purple/smokestack/Settings;)V // method@d1e1 │ │ +4966d4: 0e00 |000e: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=1662 │ │ 0x0009 line=1665 │ │ locals : │ │ 0x0000 - 0x000f reg=0 this Lorg/purple/smokestack/Settings$6; │ │ 0x0000 - 0x000f reg=1 (null) Landroid/view/View; │ │ @@ -786944,18 +786943,18 @@ │ │ type : '(Lorg/purple/smokestack/Settings;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 6 16-bit code units │ │ -4966dc: |[4966dc] org.purple.smokestack.Settings$7.:(Lorg/purple/smokestack/Settings;)V │ │ -4966ec: 5b01 1969 |0000: iput-object v1, v0, Lorg/purple/smokestack/Settings$7;.this$0:Lorg/purple/smokestack/Settings; // field@6919 │ │ -4966f0: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ -4966f6: 0e00 |0005: return-void │ │ +4966d8: |[4966d8] org.purple.smokestack.Settings$7.:(Lorg/purple/smokestack/Settings;)V │ │ +4966e8: 5b01 1969 |0000: iput-object v1, v0, Lorg/purple/smokestack/Settings$7;.this$0:Lorg/purple/smokestack/Settings; // field@6919 │ │ +4966ec: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ +4966f2: 0e00 |0005: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=1671 │ │ locals : │ │ 0x0000 - 0x0006 reg=0 this Lorg/purple/smokestack/Settings$7; │ │ 0x0000 - 0x0006 reg=1 (null) Lorg/purple/smokestack/Settings; │ │ │ │ @@ -786965,23 +786964,23 @@ │ │ type : '(Landroid/view/View;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 15 16-bit code units │ │ -4966f8: |[4966f8] org.purple.smokestack.Settings$7.onClick:(Landroid/view/View;)V │ │ -496708: 5401 1969 |0000: iget-object v1, v0, Lorg/purple/smokestack/Settings$7;.this$0:Lorg/purple/smokestack/Settings; // field@6919 │ │ -49670c: 6e10 fed1 0100 |0002: invoke-virtual {v1}, Lorg/purple/smokestack/Settings;.isFinishing:()Z // method@d1fe │ │ -496712: 0a01 |0005: move-result v1 │ │ -496714: 3801 0300 |0006: if-eqz v1, 0009 // +0003 │ │ -496718: 0e00 |0008: return-void │ │ -49671a: 5401 1969 |0009: iget-object v1, v0, Lorg/purple/smokestack/Settings$7;.this$0:Lorg/purple/smokestack/Settings; // field@6919 │ │ -49671e: 7110 e2d1 0100 |000b: invoke-static {v1}, Lorg/purple/smokestack/Settings;.access$1400:(Lorg/purple/smokestack/Settings;)V // method@d1e2 │ │ -496724: 0e00 |000e: return-void │ │ +4966f4: |[4966f4] org.purple.smokestack.Settings$7.onClick:(Landroid/view/View;)V │ │ +496704: 5401 1969 |0000: iget-object v1, v0, Lorg/purple/smokestack/Settings$7;.this$0:Lorg/purple/smokestack/Settings; // field@6919 │ │ +496708: 6e10 fed1 0100 |0002: invoke-virtual {v1}, Lorg/purple/smokestack/Settings;.isFinishing:()Z // method@d1fe │ │ +49670e: 0a01 |0005: move-result v1 │ │ +496710: 3801 0300 |0006: if-eqz v1, 0009 // +0003 │ │ +496714: 0e00 |0008: return-void │ │ +496716: 5401 1969 |0009: iget-object v1, v0, Lorg/purple/smokestack/Settings$7;.this$0:Lorg/purple/smokestack/Settings; // field@6919 │ │ +49671a: 7110 e2d1 0100 |000b: invoke-static {v1}, Lorg/purple/smokestack/Settings;.access$1400:(Lorg/purple/smokestack/Settings;)V // method@d1e2 │ │ +496720: 0e00 |000e: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=1674 │ │ 0x0009 line=1677 │ │ locals : │ │ 0x0000 - 0x000f reg=0 this Lorg/purple/smokestack/Settings$7; │ │ 0x0000 - 0x000f reg=1 (null) Landroid/view/View; │ │ @@ -787021,18 +787020,18 @@ │ │ type : '(Lorg/purple/smokestack/Settings;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 6 16-bit code units │ │ -496728: |[496728] org.purple.smokestack.Settings$8.:(Lorg/purple/smokestack/Settings;)V │ │ -496738: 5b01 1a69 |0000: iput-object v1, v0, Lorg/purple/smokestack/Settings$8;.this$0:Lorg/purple/smokestack/Settings; // field@691a │ │ -49673c: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ -496742: 0e00 |0005: return-void │ │ +496724: |[496724] org.purple.smokestack.Settings$8.:(Lorg/purple/smokestack/Settings;)V │ │ +496734: 5b01 1a69 |0000: iput-object v1, v0, Lorg/purple/smokestack/Settings$8;.this$0:Lorg/purple/smokestack/Settings; // field@691a │ │ +496738: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ +49673e: 0e00 |0005: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=1683 │ │ locals : │ │ 0x0000 - 0x0006 reg=0 this Lorg/purple/smokestack/Settings$8; │ │ 0x0000 - 0x0006 reg=1 (null) Lorg/purple/smokestack/Settings; │ │ │ │ @@ -787042,23 +787041,23 @@ │ │ type : '(Landroid/view/View;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 15 16-bit code units │ │ -496744: |[496744] org.purple.smokestack.Settings$8.onClick:(Landroid/view/View;)V │ │ -496754: 5401 1a69 |0000: iget-object v1, v0, Lorg/purple/smokestack/Settings$8;.this$0:Lorg/purple/smokestack/Settings; // field@691a │ │ -496758: 6e10 fed1 0100 |0002: invoke-virtual {v1}, Lorg/purple/smokestack/Settings;.isFinishing:()Z // method@d1fe │ │ -49675e: 0a01 |0005: move-result v1 │ │ -496760: 3801 0300 |0006: if-eqz v1, 0009 // +0003 │ │ -496764: 0e00 |0008: return-void │ │ -496766: 5401 1a69 |0009: iget-object v1, v0, Lorg/purple/smokestack/Settings$8;.this$0:Lorg/purple/smokestack/Settings; // field@691a │ │ -49676a: 7110 e3d1 0100 |000b: invoke-static {v1}, Lorg/purple/smokestack/Settings;.access$1500:(Lorg/purple/smokestack/Settings;)V // method@d1e3 │ │ -496770: 0e00 |000e: return-void │ │ +496740: |[496740] org.purple.smokestack.Settings$8.onClick:(Landroid/view/View;)V │ │ +496750: 5401 1a69 |0000: iget-object v1, v0, Lorg/purple/smokestack/Settings$8;.this$0:Lorg/purple/smokestack/Settings; // field@691a │ │ +496754: 6e10 fed1 0100 |0002: invoke-virtual {v1}, Lorg/purple/smokestack/Settings;.isFinishing:()Z // method@d1fe │ │ +49675a: 0a01 |0005: move-result v1 │ │ +49675c: 3801 0300 |0006: if-eqz v1, 0009 // +0003 │ │ +496760: 0e00 |0008: return-void │ │ +496762: 5401 1a69 |0009: iget-object v1, v0, Lorg/purple/smokestack/Settings$8;.this$0:Lorg/purple/smokestack/Settings; // field@691a │ │ +496766: 7110 e3d1 0100 |000b: invoke-static {v1}, Lorg/purple/smokestack/Settings;.access$1500:(Lorg/purple/smokestack/Settings;)V // method@d1e3 │ │ +49676c: 0e00 |000e: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=1686 │ │ 0x0009 line=1689 │ │ locals : │ │ 0x0000 - 0x000f reg=0 this Lorg/purple/smokestack/Settings$8; │ │ 0x0000 - 0x000f reg=1 (null) Landroid/view/View; │ │ @@ -787098,18 +787097,18 @@ │ │ type : '(Lorg/purple/smokestack/Settings;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 6 16-bit code units │ │ -496774: |[496774] org.purple.smokestack.Settings$9.:(Lorg/purple/smokestack/Settings;)V │ │ -496784: 5b01 1b69 |0000: iput-object v1, v0, Lorg/purple/smokestack/Settings$9;.this$0:Lorg/purple/smokestack/Settings; // field@691b │ │ -496788: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ -49678e: 0e00 |0005: return-void │ │ +496770: |[496770] org.purple.smokestack.Settings$9.:(Lorg/purple/smokestack/Settings;)V │ │ +496780: 5b01 1b69 |0000: iput-object v1, v0, Lorg/purple/smokestack/Settings$9;.this$0:Lorg/purple/smokestack/Settings; // field@691b │ │ +496784: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ +49678a: 0e00 |0005: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=1695 │ │ locals : │ │ 0x0000 - 0x0006 reg=0 this Lorg/purple/smokestack/Settings$9; │ │ 0x0000 - 0x0006 reg=1 (null) Lorg/purple/smokestack/Settings; │ │ │ │ @@ -787119,26 +787118,26 @@ │ │ type : '(Landroid/view/View;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 3 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 21 16-bit code units │ │ -496790: |[496790] org.purple.smokestack.Settings$9.onClick:(Landroid/view/View;)V │ │ -4967a0: 5412 1b69 |0000: iget-object v2, v1, Lorg/purple/smokestack/Settings$9;.this$0:Lorg/purple/smokestack/Settings; // field@691b │ │ -4967a4: 6e10 fed1 0200 |0002: invoke-virtual {v2}, Lorg/purple/smokestack/Settings;.isFinishing:()Z // method@d1fe │ │ -4967aa: 0a02 |0005: move-result v2 │ │ -4967ac: 3802 0300 |0006: if-eqz v2, 0009 // +0003 │ │ -4967b0: 0e00 |0008: return-void │ │ -4967b2: 5412 1b69 |0009: iget-object v2, v1, Lorg/purple/smokestack/Settings$9;.this$0:Lorg/purple/smokestack/Settings; // field@691b │ │ -4967b6: 7110 efd1 0200 |000b: invoke-static {v2}, Lorg/purple/smokestack/Settings;.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; // method@d1ef │ │ -4967bc: 0c02 |000e: move-result-object v2 │ │ -4967be: 1a00 c68a |000f: const-string v0, "log" // string@8ac6 │ │ -4967c2: 6e20 a6d0 0200 |0011: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Database;.clearTable:(Ljava/lang/String;)V // method@d0a6 │ │ -4967c8: 0e00 |0014: return-void │ │ +49678c: |[49678c] org.purple.smokestack.Settings$9.onClick:(Landroid/view/View;)V │ │ +49679c: 5412 1b69 |0000: iget-object v2, v1, Lorg/purple/smokestack/Settings$9;.this$0:Lorg/purple/smokestack/Settings; // field@691b │ │ +4967a0: 6e10 fed1 0200 |0002: invoke-virtual {v2}, Lorg/purple/smokestack/Settings;.isFinishing:()Z // method@d1fe │ │ +4967a6: 0a02 |0005: move-result v2 │ │ +4967a8: 3802 0300 |0006: if-eqz v2, 0009 // +0003 │ │ +4967ac: 0e00 |0008: return-void │ │ +4967ae: 5412 1b69 |0009: iget-object v2, v1, Lorg/purple/smokestack/Settings$9;.this$0:Lorg/purple/smokestack/Settings; // field@691b │ │ +4967b2: 7110 efd1 0200 |000b: invoke-static {v2}, Lorg/purple/smokestack/Settings;.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; // method@d1ef │ │ +4967b8: 0c02 |000e: move-result-object v2 │ │ +4967ba: 1a00 c68a |000f: const-string v0, "log" // string@8ac6 │ │ +4967be: 6e20 a6d0 0200 |0011: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Database;.clearTable:(Ljava/lang/String;)V // method@d0a6 │ │ +4967c4: 0e00 |0014: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=1698 │ │ 0x0009 line=1701 │ │ locals : │ │ 0x0000 - 0x0015 reg=1 this Lorg/purple/smokestack/Settings$9; │ │ 0x0000 - 0x0015 reg=2 (null) Landroid/view/View; │ │ @@ -787213,17 +787212,17 @@ │ │ type : '()V' │ │ access : 0x10002 (PRIVATE CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -4967cc: |[4967cc] org.purple.smokestack.Settings$ContextMenuEnumerator.:()V │ │ -4967dc: 7010 ad5c 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ -4967e2: 0e00 |0003: return-void │ │ +4967c8: |[4967c8] org.purple.smokestack.Settings$ContextMenuEnumerator.:()V │ │ +4967d8: 7010 ad5c 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ +4967de: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=82 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lorg/purple/smokestack/Settings$ContextMenuEnumerator; │ │ │ │ Virtual methods - │ │ @@ -787270,21 +787269,21 @@ │ │ type : '(Lorg/purple/smokestack/Settings;Ljava/util/ArrayList;)V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 3 │ │ ins : 3 │ │ outs : 1 │ │ insns size : 11 16-bit code units │ │ -496824: |[496824] org.purple.smokestack.Settings$PopulateListeners.:(Lorg/purple/smokestack/Settings;Ljava/util/ArrayList;)V │ │ -496834: 5b01 2569 |0000: iput-object v1, v0, Lorg/purple/smokestack/Settings$PopulateListeners;.this$0:Lorg/purple/smokestack/Settings; // field@6925 │ │ -496838: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ -49683e: 1201 |0005: const/4 v1, #int 0 // #0 │ │ -496840: 5b01 2469 |0006: iput-object v1, v0, Lorg/purple/smokestack/Settings$PopulateListeners;.m_arrayList:Ljava/util/ArrayList; // field@6924 │ │ -496844: 5b02 2469 |0008: iput-object v2, v0, Lorg/purple/smokestack/Settings$PopulateListeners;.m_arrayList:Ljava/util/ArrayList; // field@6924 │ │ -496848: 0e00 |000a: return-void │ │ +496820: |[496820] org.purple.smokestack.Settings$PopulateListeners.:(Lorg/purple/smokestack/Settings;Ljava/util/ArrayList;)V │ │ +496830: 5b01 2569 |0000: iput-object v1, v0, Lorg/purple/smokestack/Settings$PopulateListeners;.this$0:Lorg/purple/smokestack/Settings; // field@6925 │ │ +496834: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ +49683a: 1201 |0005: const/4 v1, #int 0 // #0 │ │ +49683c: 5b01 2469 |0006: iput-object v1, v0, Lorg/purple/smokestack/Settings$PopulateListeners;.m_arrayList:Ljava/util/ArrayList; // field@6924 │ │ +496840: 5b02 2469 |0008: iput-object v2, v0, Lorg/purple/smokestack/Settings$PopulateListeners;.m_arrayList:Ljava/util/ArrayList; // field@6924 │ │ +496844: 0e00 |000a: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=125 │ │ 0x0006 line=122 │ │ 0x0008 line=126 │ │ locals : │ │ 0x0000 - 0x000b reg=0 this Lorg/purple/smokestack/Settings$PopulateListeners; │ │ @@ -787297,24 +787296,24 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 17 16-bit code units │ │ -49684c: |[49684c] org.purple.smokestack.Settings$PopulateListeners.run:()V │ │ -49685c: 5420 2569 |0000: iget-object v0, v2, Lorg/purple/smokestack/Settings$PopulateListeners;.this$0:Lorg/purple/smokestack/Settings; // field@6925 │ │ -496860: 5421 2469 |0002: iget-object v1, v2, Lorg/purple/smokestack/Settings$PopulateListeners;.m_arrayList:Ljava/util/ArrayList; // field@6924 │ │ -496864: 7120 dcd1 1000 |0004: invoke-static {v0, v1}, Lorg/purple/smokestack/Settings;.access$000:(Lorg/purple/smokestack/Settings;Ljava/util/ArrayList;)V // method@d1dc │ │ -49686a: 2802 |0007: goto 0009 // +0002 │ │ -49686c: 0000 |0008: nop // spacer │ │ -49686e: 5420 2469 |0009: iget-object v0, v2, Lorg/purple/smokestack/Settings$PopulateListeners;.m_arrayList:Ljava/util/ArrayList; // field@6924 │ │ -496872: 3800 0500 |000b: if-eqz v0, 0010 // +0005 │ │ -496876: 6e10 d45f 0000 |000d: invoke-virtual {v0}, Ljava/util/ArrayList;.clear:()V // method@5fd4 │ │ -49687c: 0e00 |0010: return-void │ │ +496848: |[496848] org.purple.smokestack.Settings$PopulateListeners.run:()V │ │ +496858: 5420 2569 |0000: iget-object v0, v2, Lorg/purple/smokestack/Settings$PopulateListeners;.this$0:Lorg/purple/smokestack/Settings; // field@6925 │ │ +49685c: 5421 2469 |0002: iget-object v1, v2, Lorg/purple/smokestack/Settings$PopulateListeners;.m_arrayList:Ljava/util/ArrayList; // field@6924 │ │ +496860: 7120 dcd1 1000 |0004: invoke-static {v0, v1}, Lorg/purple/smokestack/Settings;.access$000:(Lorg/purple/smokestack/Settings;Ljava/util/ArrayList;)V // method@d1dc │ │ +496866: 2802 |0007: goto 0009 // +0002 │ │ +496868: 0000 |0008: nop // spacer │ │ +49686a: 5420 2469 |0009: iget-object v0, v2, Lorg/purple/smokestack/Settings$PopulateListeners;.m_arrayList:Ljava/util/ArrayList; // field@6924 │ │ +49686e: 3800 0500 |000b: if-eqz v0, 0010 // +0005 │ │ +496872: 6e10 d45f 0000 |000d: invoke-virtual {v0}, Ljava/util/ArrayList;.clear:()V // method@5fd4 │ │ +496878: 0e00 |0010: return-void │ │ catches : 1 │ │ 0x0000 - 0x0007 │ │ Ljava/lang/Exception; -> 0x0008 │ │ positions : │ │ 0x0000 line=134 │ │ 0x0009 line=140 │ │ 0x000d line=141 │ │ @@ -787364,21 +787363,21 @@ │ │ type : '(Lorg/purple/smokestack/Settings;Ljava/util/ArrayList;)V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 3 │ │ ins : 3 │ │ outs : 1 │ │ insns size : 11 16-bit code units │ │ -496890: |[496890] org.purple.smokestack.Settings$PopulateNeighbors.:(Lorg/purple/smokestack/Settings;Ljava/util/ArrayList;)V │ │ -4968a0: 5b01 2769 |0000: iput-object v1, v0, Lorg/purple/smokestack/Settings$PopulateNeighbors;.this$0:Lorg/purple/smokestack/Settings; // field@6927 │ │ -4968a4: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ -4968aa: 1201 |0005: const/4 v1, #int 0 // #0 │ │ -4968ac: 5b01 2669 |0006: iput-object v1, v0, Lorg/purple/smokestack/Settings$PopulateNeighbors;.m_arrayList:Ljava/util/ArrayList; // field@6926 │ │ -4968b0: 5b02 2669 |0008: iput-object v2, v0, Lorg/purple/smokestack/Settings$PopulateNeighbors;.m_arrayList:Ljava/util/ArrayList; // field@6926 │ │ -4968b4: 0e00 |000a: return-void │ │ +49688c: |[49688c] org.purple.smokestack.Settings$PopulateNeighbors.:(Lorg/purple/smokestack/Settings;Ljava/util/ArrayList;)V │ │ +49689c: 5b01 2769 |0000: iput-object v1, v0, Lorg/purple/smokestack/Settings$PopulateNeighbors;.this$0:Lorg/purple/smokestack/Settings; // field@6927 │ │ +4968a0: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ +4968a6: 1201 |0005: const/4 v1, #int 0 // #0 │ │ +4968a8: 5b01 2669 |0006: iput-object v1, v0, Lorg/purple/smokestack/Settings$PopulateNeighbors;.m_arrayList:Ljava/util/ArrayList; // field@6926 │ │ +4968ac: 5b02 2669 |0008: iput-object v2, v0, Lorg/purple/smokestack/Settings$PopulateNeighbors;.m_arrayList:Ljava/util/ArrayList; // field@6926 │ │ +4968b0: 0e00 |000a: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=150 │ │ 0x0006 line=147 │ │ 0x0008 line=151 │ │ locals : │ │ 0x0000 - 0x000b reg=0 this Lorg/purple/smokestack/Settings$PopulateNeighbors; │ │ @@ -787391,24 +787390,24 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 17 16-bit code units │ │ -4968b8: |[4968b8] org.purple.smokestack.Settings$PopulateNeighbors.run:()V │ │ -4968c8: 5420 2769 |0000: iget-object v0, v2, Lorg/purple/smokestack/Settings$PopulateNeighbors;.this$0:Lorg/purple/smokestack/Settings; // field@6927 │ │ -4968cc: 5421 2669 |0002: iget-object v1, v2, Lorg/purple/smokestack/Settings$PopulateNeighbors;.m_arrayList:Ljava/util/ArrayList; // field@6926 │ │ -4968d0: 7120 ddd1 1000 |0004: invoke-static {v0, v1}, Lorg/purple/smokestack/Settings;.access$100:(Lorg/purple/smokestack/Settings;Ljava/util/ArrayList;)V // method@d1dd │ │ -4968d6: 2802 |0007: goto 0009 // +0002 │ │ -4968d8: 0000 |0008: nop // spacer │ │ -4968da: 5420 2669 |0009: iget-object v0, v2, Lorg/purple/smokestack/Settings$PopulateNeighbors;.m_arrayList:Ljava/util/ArrayList; // field@6926 │ │ -4968de: 3800 0500 |000b: if-eqz v0, 0010 // +0005 │ │ -4968e2: 6e10 d45f 0000 |000d: invoke-virtual {v0}, Ljava/util/ArrayList;.clear:()V // method@5fd4 │ │ -4968e8: 0e00 |0010: return-void │ │ +4968b4: |[4968b4] org.purple.smokestack.Settings$PopulateNeighbors.run:()V │ │ +4968c4: 5420 2769 |0000: iget-object v0, v2, Lorg/purple/smokestack/Settings$PopulateNeighbors;.this$0:Lorg/purple/smokestack/Settings; // field@6927 │ │ +4968c8: 5421 2669 |0002: iget-object v1, v2, Lorg/purple/smokestack/Settings$PopulateNeighbors;.m_arrayList:Ljava/util/ArrayList; // field@6926 │ │ +4968cc: 7120 ddd1 1000 |0004: invoke-static {v0, v1}, Lorg/purple/smokestack/Settings;.access$100:(Lorg/purple/smokestack/Settings;Ljava/util/ArrayList;)V // method@d1dd │ │ +4968d2: 2802 |0007: goto 0009 // +0002 │ │ +4968d4: 0000 |0008: nop // spacer │ │ +4968d6: 5420 2669 |0009: iget-object v0, v2, Lorg/purple/smokestack/Settings$PopulateNeighbors;.m_arrayList:Ljava/util/ArrayList; // field@6926 │ │ +4968da: 3800 0500 |000b: if-eqz v0, 0010 // +0005 │ │ +4968de: 6e10 d45f 0000 |000d: invoke-virtual {v0}, Ljava/util/ArrayList;.clear:()V // method@5fd4 │ │ +4968e4: 0e00 |0010: return-void │ │ catches : 1 │ │ 0x0000 - 0x0007 │ │ Ljava/lang/Exception; -> 0x0008 │ │ positions : │ │ 0x0000 line=159 │ │ 0x0009 line=165 │ │ 0x000d line=166 │ │ @@ -787449,18 +787448,18 @@ │ │ type : '(Lorg/purple/smokestack/Settings;)V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 6 16-bit code units │ │ -4968fc: |[4968fc] org.purple.smokestack.Settings$SettingsBroadcastReceiver.:(Lorg/purple/smokestack/Settings;)V │ │ -49690c: 5b01 2869 |0000: iput-object v1, v0, Lorg/purple/smokestack/Settings$SettingsBroadcastReceiver;.this$0:Lorg/purple/smokestack/Settings; // field@6928 │ │ -496910: 7010 4701 0000 |0002: invoke-direct {v0}, Landroid/content/BroadcastReceiver;.:()V // method@0147 │ │ -496916: 0e00 |0005: return-void │ │ +4968f8: |[4968f8] org.purple.smokestack.Settings$SettingsBroadcastReceiver.:(Lorg/purple/smokestack/Settings;)V │ │ +496908: 5b01 2869 |0000: iput-object v1, v0, Lorg/purple/smokestack/Settings$SettingsBroadcastReceiver;.this$0:Lorg/purple/smokestack/Settings; // field@6928 │ │ +49690c: 7010 4701 0000 |0002: invoke-direct {v0}, Landroid/content/BroadcastReceiver;.:()V // method@0147 │ │ +496912: 0e00 |0005: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=173 │ │ locals : │ │ 0x0000 - 0x0006 reg=0 this Lorg/purple/smokestack/Settings$SettingsBroadcastReceiver; │ │ 0x0000 - 0x0006 reg=1 (null) Lorg/purple/smokestack/Settings; │ │ │ │ @@ -787470,40 +787469,40 @@ │ │ type : '(Landroid/content/Context;Landroid/content/Intent;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 4 │ │ ins : 3 │ │ outs : 2 │ │ insns size : 50 16-bit code units │ │ -496918: |[496918] org.purple.smokestack.Settings$SettingsBroadcastReceiver.onReceive:(Landroid/content/Context;Landroid/content/Intent;)V │ │ -496928: 3803 3100 |0000: if-eqz v3, 0031 // +0031 │ │ -49692c: 6e10 a501 0300 |0002: invoke-virtual {v3}, Landroid/content/Intent;.getAction:()Ljava/lang/String; // method@01a5 │ │ -496932: 0c02 |0005: move-result-object v2 │ │ -496934: 3902 0300 |0006: if-nez v2, 0009 // +0003 │ │ -496938: 2829 |0008: goto 0031 // +0029 │ │ -49693a: 6e10 a501 0300 |0009: invoke-virtual {v3}, Landroid/content/Intent;.getAction:()Ljava/lang/String; // method@01a5 │ │ -496940: 0c02 |000c: move-result-object v2 │ │ -496942: 1a00 109e |000d: const-string v0, "org.purple.smokestack.populate_participants" // string@9e10 │ │ -496946: 6e20 da5c 0200 |000f: invoke-virtual {v2, v0}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ -49694c: 0a02 |0012: move-result v2 │ │ -49694e: 3802 0800 |0013: if-eqz v2, 001b // +0008 │ │ -496952: 5412 2869 |0015: iget-object v2, v1, Lorg/purple/smokestack/Settings$SettingsBroadcastReceiver;.this$0:Lorg/purple/smokestack/Settings; // field@6928 │ │ -496956: 7110 e8d1 0200 |0017: invoke-static {v2}, Lorg/purple/smokestack/Settings;.access$200:(Lorg/purple/smokestack/Settings;)V // method@d1e8 │ │ -49695c: 2817 |001a: goto 0031 // +0017 │ │ -49695e: 6e10 a501 0300 |001b: invoke-virtual {v3}, Landroid/content/Intent;.getAction:()Ljava/lang/String; // method@01a5 │ │ -496964: 0c02 |001e: move-result-object v2 │ │ -496966: 1a03 0f9e |001f: const-string v3, "org.purple.smokestack.populate_ozones_participants" // string@9e0f │ │ -49696a: 6e20 da5c 3200 |0021: invoke-virtual {v2, v3}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ -496970: 0a02 |0024: move-result v2 │ │ -496972: 3802 0c00 |0025: if-eqz v2, 0031 // +000c │ │ -496976: 5412 2869 |0027: iget-object v2, v1, Lorg/purple/smokestack/Settings$SettingsBroadcastReceiver;.this$0:Lorg/purple/smokestack/Settings; // field@6928 │ │ -49697a: 7110 edd1 0200 |0029: invoke-static {v2}, Lorg/purple/smokestack/Settings;.access$300:(Lorg/purple/smokestack/Settings;)V // method@d1ed │ │ -496980: 5412 2869 |002c: iget-object v2, v1, Lorg/purple/smokestack/Settings$SettingsBroadcastReceiver;.this$0:Lorg/purple/smokestack/Settings; // field@6928 │ │ -496984: 7110 e8d1 0200 |002e: invoke-static {v2}, Lorg/purple/smokestack/Settings;.access$200:(Lorg/purple/smokestack/Settings;)V // method@d1e8 │ │ -49698a: 0e00 |0031: return-void │ │ +496914: |[496914] org.purple.smokestack.Settings$SettingsBroadcastReceiver.onReceive:(Landroid/content/Context;Landroid/content/Intent;)V │ │ +496924: 3803 3100 |0000: if-eqz v3, 0031 // +0031 │ │ +496928: 6e10 a501 0300 |0002: invoke-virtual {v3}, Landroid/content/Intent;.getAction:()Ljava/lang/String; // method@01a5 │ │ +49692e: 0c02 |0005: move-result-object v2 │ │ +496930: 3902 0300 |0006: if-nez v2, 0009 // +0003 │ │ +496934: 2829 |0008: goto 0031 // +0029 │ │ +496936: 6e10 a501 0300 |0009: invoke-virtual {v3}, Landroid/content/Intent;.getAction:()Ljava/lang/String; // method@01a5 │ │ +49693c: 0c02 |000c: move-result-object v2 │ │ +49693e: 1a00 109e |000d: const-string v0, "org.purple.smokestack.populate_participants" // string@9e10 │ │ +496942: 6e20 da5c 0200 |000f: invoke-virtual {v2, v0}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ +496948: 0a02 |0012: move-result v2 │ │ +49694a: 3802 0800 |0013: if-eqz v2, 001b // +0008 │ │ +49694e: 5412 2869 |0015: iget-object v2, v1, Lorg/purple/smokestack/Settings$SettingsBroadcastReceiver;.this$0:Lorg/purple/smokestack/Settings; // field@6928 │ │ +496952: 7110 e8d1 0200 |0017: invoke-static {v2}, Lorg/purple/smokestack/Settings;.access$200:(Lorg/purple/smokestack/Settings;)V // method@d1e8 │ │ +496958: 2817 |001a: goto 0031 // +0017 │ │ +49695a: 6e10 a501 0300 |001b: invoke-virtual {v3}, Landroid/content/Intent;.getAction:()Ljava/lang/String; // method@01a5 │ │ +496960: 0c02 |001e: move-result-object v2 │ │ +496962: 1a03 0f9e |001f: const-string v3, "org.purple.smokestack.populate_ozones_participants" // string@9e0f │ │ +496966: 6e20 da5c 3200 |0021: invoke-virtual {v2, v3}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ +49696c: 0a02 |0024: move-result v2 │ │ +49696e: 3802 0c00 |0025: if-eqz v2, 0031 // +000c │ │ +496972: 5412 2869 |0027: iget-object v2, v1, Lorg/purple/smokestack/Settings$SettingsBroadcastReceiver;.this$0:Lorg/purple/smokestack/Settings; // field@6928 │ │ +496976: 7110 edd1 0200 |0029: invoke-static {v2}, Lorg/purple/smokestack/Settings;.access$300:(Lorg/purple/smokestack/Settings;)V // method@d1ed │ │ +49697c: 5412 2869 |002c: iget-object v2, v1, Lorg/purple/smokestack/Settings$SettingsBroadcastReceiver;.this$0:Lorg/purple/smokestack/Settings; // field@6928 │ │ +496980: 7110 e8d1 0200 |002e: invoke-static {v2}, Lorg/purple/smokestack/Settings;.access$200:(Lorg/purple/smokestack/Settings;)V // method@d1e8 │ │ +496986: 0e00 |0031: return-void │ │ catches : (none) │ │ positions : │ │ 0x0002 line=179 │ │ 0x0009 line=182 │ │ 0x000f line=183 │ │ 0x0015 line=184 │ │ 0x001b line=185 │ │ @@ -787603,25 +787602,25 @@ │ │ type : '()V' │ │ access : 0x10008 (STATIC CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 0 │ │ outs : 0 │ │ insns size : 32 16-bit code units │ │ -49a3f0: |[49a3f0] org.purple.smokestack.SipHash.:()V │ │ -49a400: 1220 |0000: const/4 v0, #int 2 // #2 │ │ -49a402: 2301 0e1f |0001: new-array v1, v0, [I // type@1f0e │ │ -49a406: 2601 0d00 0000 |0003: fill-array-data v1, 00000010 // +0000000d │ │ -49a40c: 6901 4469 |0006: sput-object v1, Lorg/purple/smokestack/SipHash;.C_ROUNDS:[I // field@6944 │ │ -49a410: 2300 0e1f |0008: new-array v0, v0, [I // type@1f0e │ │ -49a414: 2600 0e00 0000 |000a: fill-array-data v0, 00000018 // +0000000e │ │ -49a41a: 6900 4569 |000d: sput-object v0, Lorg/purple/smokestack/SipHash;.D_ROUNDS:[I // field@6945 │ │ -49a41e: 0e00 |000f: return-void │ │ -49a420: 0003 0400 0200 0000 0200 0000 0400 ... |0010: array-data (8 units) │ │ -49a430: 0003 0400 0200 0000 0400 0000 0800 ... |0018: array-data (8 units) │ │ +49a3ec: |[49a3ec] org.purple.smokestack.SipHash.:()V │ │ +49a3fc: 1220 |0000: const/4 v0, #int 2 // #2 │ │ +49a3fe: 2301 0e1f |0001: new-array v1, v0, [I // type@1f0e │ │ +49a402: 2601 0d00 0000 |0003: fill-array-data v1, 00000010 // +0000000d │ │ +49a408: 6901 4469 |0006: sput-object v1, Lorg/purple/smokestack/SipHash;.C_ROUNDS:[I // field@6944 │ │ +49a40c: 2300 0e1f |0008: new-array v0, v0, [I // type@1f0e │ │ +49a410: 2600 0e00 0000 |000a: fill-array-data v0, 00000018 // +0000000e │ │ +49a416: 6900 4569 |000d: sput-object v0, Lorg/purple/smokestack/SipHash;.D_ROUNDS:[I // field@6945 │ │ +49a41a: 0e00 |000f: return-void │ │ +49a41c: 0003 0400 0200 0000 0200 0000 0400 ... |0010: array-data (8 units) │ │ +49a42c: 0003 0400 0200 0000 0400 0000 0800 ... |0018: array-data (8 units) │ │ catches : (none) │ │ positions : │ │ 0x0003 line=36 │ │ 0x000a line=37 │ │ locals : │ │ │ │ #1 : (in Lorg/purple/smokestack/SipHash;) │ │ @@ -787629,27 +787628,27 @@ │ │ type : '()V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 22 16-bit code units │ │ -49a440: |[49a440] org.purple.smokestack.SipHash.:()V │ │ -49a450: 7010 ad5c 0200 |0000: invoke-direct {v2}, Ljava/lang/Object;.:()V // method@5cad │ │ -49a456: 1200 |0003: const/4 v0, #int 0 // #0 │ │ -49a458: 5b20 4969 |0004: iput-object v0, v2, Lorg/purple/smokestack/SipHash;.m_key:[B // field@6949 │ │ -49a45c: 1210 |0006: const/4 v0, #int 1 // #1 │ │ -49a45e: 5920 4769 |0007: iput v0, v2, Lorg/purple/smokestack/SipHash;.m_c_rounds_index:I // field@6947 │ │ -49a462: 5920 4869 |0009: iput v0, v2, Lorg/purple/smokestack/SipHash;.m_d_rounds_index:I // field@6948 │ │ -49a466: 1600 0000 |000b: const-wide/16 v0, #int 0 // #0 │ │ -49a46a: 5a20 4a69 |000d: iput-wide v0, v2, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ -49a46e: 5a20 4b69 |000f: iput-wide v0, v2, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ -49a472: 5a20 4c69 |0011: iput-wide v0, v2, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ -49a476: 5a20 4d69 |0013: iput-wide v0, v2, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ -49a47a: 0e00 |0015: return-void │ │ +49a43c: |[49a43c] org.purple.smokestack.SipHash.:()V │ │ +49a44c: 7010 ad5c 0200 |0000: invoke-direct {v2}, Ljava/lang/Object;.:()V // method@5cad │ │ +49a452: 1200 |0003: const/4 v0, #int 0 // #0 │ │ +49a454: 5b20 4969 |0004: iput-object v0, v2, Lorg/purple/smokestack/SipHash;.m_key:[B // field@6949 │ │ +49a458: 1210 |0006: const/4 v0, #int 1 // #1 │ │ +49a45a: 5920 4769 |0007: iput v0, v2, Lorg/purple/smokestack/SipHash;.m_c_rounds_index:I // field@6947 │ │ +49a45e: 5920 4869 |0009: iput v0, v2, Lorg/purple/smokestack/SipHash;.m_d_rounds_index:I // field@6948 │ │ +49a462: 1600 0000 |000b: const-wide/16 v0, #int 0 // #0 │ │ +49a466: 5a20 4a69 |000d: iput-wide v0, v2, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ +49a46a: 5a20 4b69 |000f: iput-wide v0, v2, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ +49a46e: 5a20 4c69 |0011: iput-wide v0, v2, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ +49a472: 5a20 4d69 |0013: iput-wide v0, v2, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ +49a476: 0e00 |0015: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=100 │ │ 0x0004 line=42 │ │ 0x0007 line=43 │ │ 0x0009 line=44 │ │ 0x000d line=45 │ │ @@ -787664,33 +787663,33 @@ │ │ type : '([B)V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 4 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 32 16-bit code units │ │ -49a47c: |[49a47c] org.purple.smokestack.SipHash.:([B)V │ │ -49a48c: 7010 ad5c 0200 |0000: invoke-direct {v2}, Ljava/lang/Object;.:()V // method@5cad │ │ -49a492: 1200 |0003: const/4 v0, #int 0 // #0 │ │ -49a494: 5b20 4969 |0004: iput-object v0, v2, Lorg/purple/smokestack/SipHash;.m_key:[B // field@6949 │ │ -49a498: 1210 |0006: const/4 v0, #int 1 // #1 │ │ -49a49a: 5920 4769 |0007: iput v0, v2, Lorg/purple/smokestack/SipHash;.m_c_rounds_index:I // field@6947 │ │ -49a49e: 5920 4869 |0009: iput v0, v2, Lorg/purple/smokestack/SipHash;.m_d_rounds_index:I // field@6948 │ │ -49a4a2: 1600 0000 |000b: const-wide/16 v0, #int 0 // #0 │ │ -49a4a6: 5a20 4a69 |000d: iput-wide v0, v2, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ -49a4aa: 5a20 4b69 |000f: iput-wide v0, v2, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ -49a4ae: 5a20 4c69 |0011: iput-wide v0, v2, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ -49a4b2: 5a20 4d69 |0013: iput-wide v0, v2, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ -49a4b6: 3803 0a00 |0015: if-eqz v3, 001f // +000a │ │ -49a4ba: 2130 |0017: array-length v0, v3 │ │ -49a4bc: 1301 1000 |0018: const/16 v1, #int 16 // #10 │ │ -49a4c0: 3210 0300 |001a: if-eq v0, v1, 001d // +0003 │ │ -49a4c4: 2803 |001c: goto 001f // +0003 │ │ -49a4c6: 5b23 4969 |001d: iput-object v3, v2, Lorg/purple/smokestack/SipHash;.m_key:[B // field@6949 │ │ -49a4ca: 0e00 |001f: return-void │ │ +49a478: |[49a478] org.purple.smokestack.SipHash.:([B)V │ │ +49a488: 7010 ad5c 0200 |0000: invoke-direct {v2}, Ljava/lang/Object;.:()V // method@5cad │ │ +49a48e: 1200 |0003: const/4 v0, #int 0 // #0 │ │ +49a490: 5b20 4969 |0004: iput-object v0, v2, Lorg/purple/smokestack/SipHash;.m_key:[B // field@6949 │ │ +49a494: 1210 |0006: const/4 v0, #int 1 // #1 │ │ +49a496: 5920 4769 |0007: iput v0, v2, Lorg/purple/smokestack/SipHash;.m_c_rounds_index:I // field@6947 │ │ +49a49a: 5920 4869 |0009: iput v0, v2, Lorg/purple/smokestack/SipHash;.m_d_rounds_index:I // field@6948 │ │ +49a49e: 1600 0000 |000b: const-wide/16 v0, #int 0 // #0 │ │ +49a4a2: 5a20 4a69 |000d: iput-wide v0, v2, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ +49a4a6: 5a20 4b69 |000f: iput-wide v0, v2, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ +49a4aa: 5a20 4c69 |0011: iput-wide v0, v2, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ +49a4ae: 5a20 4d69 |0013: iput-wide v0, v2, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ +49a4b2: 3803 0a00 |0015: if-eqz v3, 001f // +000a │ │ +49a4b6: 2130 |0017: array-length v0, v3 │ │ +49a4b8: 1301 1000 |0018: const/16 v1, #int 16 // #10 │ │ +49a4bc: 3210 0300 |001a: if-eq v0, v1, 001d // +0003 │ │ +49a4c0: 2803 |001c: goto 001f // +0003 │ │ +49a4c2: 5b23 4969 |001d: iput-object v3, v2, Lorg/purple/smokestack/SipHash;.m_key:[B // field@6949 │ │ +49a4c6: 0e00 |001f: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=104 │ │ 0x0004 line=42 │ │ 0x0007 line=43 │ │ 0x0009 line=44 │ │ 0x000d line=45 │ │ @@ -787708,43 +787707,43 @@ │ │ type : '([BII)V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 6 │ │ ins : 4 │ │ outs : 1 │ │ insns size : 50 16-bit code units │ │ -49a4cc: |[49a4cc] org.purple.smokestack.SipHash.:([BII)V │ │ -49a4dc: 7010 ad5c 0200 |0000: invoke-direct {v2}, Ljava/lang/Object;.:()V // method@5cad │ │ -49a4e2: 1200 |0003: const/4 v0, #int 0 // #0 │ │ -49a4e4: 5b20 4969 |0004: iput-object v0, v2, Lorg/purple/smokestack/SipHash;.m_key:[B // field@6949 │ │ -49a4e8: 1210 |0006: const/4 v0, #int 1 // #1 │ │ -49a4ea: 5920 4769 |0007: iput v0, v2, Lorg/purple/smokestack/SipHash;.m_c_rounds_index:I // field@6947 │ │ -49a4ee: 5920 4869 |0009: iput v0, v2, Lorg/purple/smokestack/SipHash;.m_d_rounds_index:I // field@6948 │ │ -49a4f2: 1600 0000 |000b: const-wide/16 v0, #int 0 // #0 │ │ -49a4f6: 5a20 4a69 |000d: iput-wide v0, v2, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ -49a4fa: 5a20 4b69 |000f: iput-wide v0, v2, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ -49a4fe: 5a20 4c69 |0011: iput-wide v0, v2, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ -49a502: 5a20 4d69 |0013: iput-wide v0, v2, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ -49a506: 3803 1c00 |0015: if-eqz v3, 0031 // +001c │ │ -49a50a: 2130 |0017: array-length v0, v3 │ │ -49a50c: 1301 1000 |0018: const/16 v1, #int 16 // #10 │ │ -49a510: 3210 0300 |001a: if-eq v0, v1, 001d // +0003 │ │ -49a514: 2815 |001c: goto 0031 // +0015 │ │ -49a516: 3a04 0900 |001d: if-ltz v4, 0026 // +0009 │ │ -49a51a: 6200 4469 |001f: sget-object v0, Lorg/purple/smokestack/SipHash;.C_ROUNDS:[I // field@6944 │ │ -49a51e: 2100 |0021: array-length v0, v0 │ │ -49a520: 3504 0400 |0022: if-ge v4, v0, 0026 // +0004 │ │ -49a524: 5924 4769 |0024: iput v4, v2, Lorg/purple/smokestack/SipHash;.m_c_rounds_index:I // field@6947 │ │ -49a528: 3a05 0900 |0026: if-ltz v5, 002f // +0009 │ │ -49a52c: 6204 4569 |0028: sget-object v4, Lorg/purple/smokestack/SipHash;.D_ROUNDS:[I // field@6945 │ │ -49a530: 2144 |002a: array-length v4, v4 │ │ -49a532: 3545 0400 |002b: if-ge v5, v4, 002f // +0004 │ │ -49a536: 5925 4869 |002d: iput v5, v2, Lorg/purple/smokestack/SipHash;.m_d_rounds_index:I // field@6948 │ │ -49a53a: 5b23 4969 |002f: iput-object v3, v2, Lorg/purple/smokestack/SipHash;.m_key:[B // field@6949 │ │ -49a53e: 0e00 |0031: return-void │ │ +49a4c8: |[49a4c8] org.purple.smokestack.SipHash.:([BII)V │ │ +49a4d8: 7010 ad5c 0200 |0000: invoke-direct {v2}, Ljava/lang/Object;.:()V // method@5cad │ │ +49a4de: 1200 |0003: const/4 v0, #int 0 // #0 │ │ +49a4e0: 5b20 4969 |0004: iput-object v0, v2, Lorg/purple/smokestack/SipHash;.m_key:[B // field@6949 │ │ +49a4e4: 1210 |0006: const/4 v0, #int 1 // #1 │ │ +49a4e6: 5920 4769 |0007: iput v0, v2, Lorg/purple/smokestack/SipHash;.m_c_rounds_index:I // field@6947 │ │ +49a4ea: 5920 4869 |0009: iput v0, v2, Lorg/purple/smokestack/SipHash;.m_d_rounds_index:I // field@6948 │ │ +49a4ee: 1600 0000 |000b: const-wide/16 v0, #int 0 // #0 │ │ +49a4f2: 5a20 4a69 |000d: iput-wide v0, v2, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ +49a4f6: 5a20 4b69 |000f: iput-wide v0, v2, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ +49a4fa: 5a20 4c69 |0011: iput-wide v0, v2, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ +49a4fe: 5a20 4d69 |0013: iput-wide v0, v2, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ +49a502: 3803 1c00 |0015: if-eqz v3, 0031 // +001c │ │ +49a506: 2130 |0017: array-length v0, v3 │ │ +49a508: 1301 1000 |0018: const/16 v1, #int 16 // #10 │ │ +49a50c: 3210 0300 |001a: if-eq v0, v1, 001d // +0003 │ │ +49a510: 2815 |001c: goto 0031 // +0015 │ │ +49a512: 3a04 0900 |001d: if-ltz v4, 0026 // +0009 │ │ +49a516: 6200 4469 |001f: sget-object v0, Lorg/purple/smokestack/SipHash;.C_ROUNDS:[I // field@6944 │ │ +49a51a: 2100 |0021: array-length v0, v0 │ │ +49a51c: 3504 0400 |0022: if-ge v4, v0, 0026 // +0004 │ │ +49a520: 5924 4769 |0024: iput v4, v2, Lorg/purple/smokestack/SipHash;.m_c_rounds_index:I // field@6947 │ │ +49a524: 3a05 0900 |0026: if-ltz v5, 002f // +0009 │ │ +49a528: 6204 4569 |0028: sget-object v4, Lorg/purple/smokestack/SipHash;.D_ROUNDS:[I // field@6945 │ │ +49a52c: 2144 |002a: array-length v4, v4 │ │ +49a52e: 3545 0400 |002b: if-ge v5, v4, 002f // +0004 │ │ +49a532: 5925 4869 |002d: iput v5, v2, Lorg/purple/smokestack/SipHash;.m_d_rounds_index:I // field@6948 │ │ +49a536: 5b23 4969 |002f: iput-object v3, v2, Lorg/purple/smokestack/SipHash;.m_key:[B // field@6949 │ │ +49a53a: 0e00 |0031: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=112 │ │ 0x0004 line=42 │ │ 0x0007 line=43 │ │ 0x0009 line=44 │ │ 0x000d line=45 │ │ @@ -787768,79 +787767,79 @@ │ │ type : '([BI)J' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 11 │ │ ins : 3 │ │ outs : 0 │ │ insns size : 91 16-bit code units │ │ -499f34: |[499f34] org.purple.smokestack.SipHash.byteArrayToLong:([BI)J │ │ -499f44: 1600 0000 |0000: const-wide/16 v0, #int 0 // #0 │ │ -499f48: 3809 5800 |0002: if-eqz v9, 005a // +0058 │ │ -499f4c: 2192 |0004: array-length v2, v9 │ │ -499f4e: b1a2 |0005: sub-int/2addr v2, v10 │ │ -499f50: 1303 0800 |0006: const/16 v3, #int 8 // #8 │ │ -499f54: 3532 0300 |0008: if-ge v2, v3, 000b // +0003 │ │ -499f58: 2850 |000a: goto 005a // +0050 │ │ -499f5a: 4802 090a |000b: aget-byte v2, v9, v10 │ │ -499f5e: 8124 |000d: int-to-long v4, v2 │ │ -499f60: 1606 ff00 |000e: const-wide/16 v6, #int 255 // #ff │ │ -499f64: c064 |0010: and-long/2addr v4, v6 │ │ -499f66: 1202 |0011: const/4 v2, #int 0 // #0 │ │ -499f68: c324 |0012: shl-long/2addr v4, v2 │ │ -499f6a: c140 |0013: or-long/2addr v0, v4 │ │ -499f6c: d802 0a01 |0014: add-int/lit8 v2, v10, #int 1 // #01 │ │ -499f70: 4802 0902 |0016: aget-byte v2, v9, v2 │ │ -499f74: 8124 |0018: int-to-long v4, v2 │ │ -499f76: c064 |0019: and-long/2addr v4, v6 │ │ -499f78: a302 0403 |001a: shl-long v2, v4, v3 │ │ -499f7c: c120 |001c: or-long/2addr v0, v2 │ │ -499f7e: d802 0a02 |001d: add-int/lit8 v2, v10, #int 2 // #02 │ │ -499f82: 4802 0902 |001f: aget-byte v2, v9, v2 │ │ -499f86: 8122 |0021: int-to-long v2, v2 │ │ -499f88: c062 |0022: and-long/2addr v2, v6 │ │ -499f8a: 1304 1000 |0023: const/16 v4, #int 16 // #10 │ │ -499f8e: c342 |0025: shl-long/2addr v2, v4 │ │ -499f90: c120 |0026: or-long/2addr v0, v2 │ │ -499f92: d802 0a03 |0027: add-int/lit8 v2, v10, #int 3 // #03 │ │ -499f96: 4802 0902 |0029: aget-byte v2, v9, v2 │ │ -499f9a: 8122 |002b: int-to-long v2, v2 │ │ -499f9c: c062 |002c: and-long/2addr v2, v6 │ │ -499f9e: 1304 1800 |002d: const/16 v4, #int 24 // #18 │ │ -499fa2: c342 |002f: shl-long/2addr v2, v4 │ │ -499fa4: c120 |0030: or-long/2addr v0, v2 │ │ -499fa6: d802 0a04 |0031: add-int/lit8 v2, v10, #int 4 // #04 │ │ -499faa: 4802 0902 |0033: aget-byte v2, v9, v2 │ │ -499fae: 8122 |0035: int-to-long v2, v2 │ │ -499fb0: c062 |0036: and-long/2addr v2, v6 │ │ -499fb2: 1304 2000 |0037: const/16 v4, #int 32 // #20 │ │ -499fb6: c342 |0039: shl-long/2addr v2, v4 │ │ -499fb8: c120 |003a: or-long/2addr v0, v2 │ │ -499fba: d802 0a05 |003b: add-int/lit8 v2, v10, #int 5 // #05 │ │ -499fbe: 4802 0902 |003d: aget-byte v2, v9, v2 │ │ -499fc2: 8122 |003f: int-to-long v2, v2 │ │ -499fc4: c062 |0040: and-long/2addr v2, v6 │ │ -499fc6: 1304 2800 |0041: const/16 v4, #int 40 // #28 │ │ -499fca: c342 |0043: shl-long/2addr v2, v4 │ │ -499fcc: c120 |0044: or-long/2addr v0, v2 │ │ -499fce: d802 0a06 |0045: add-int/lit8 v2, v10, #int 6 // #06 │ │ -499fd2: 4802 0902 |0047: aget-byte v2, v9, v2 │ │ -499fd6: 8122 |0049: int-to-long v2, v2 │ │ -499fd8: c062 |004a: and-long/2addr v2, v6 │ │ -499fda: 1304 3000 |004b: const/16 v4, #int 48 // #30 │ │ -499fde: c342 |004d: shl-long/2addr v2, v4 │ │ -499fe0: c120 |004e: or-long/2addr v0, v2 │ │ -499fe2: d80a 0a07 |004f: add-int/lit8 v10, v10, #int 7 // #07 │ │ -499fe6: 4809 090a |0051: aget-byte v9, v9, v10 │ │ -499fea: 8199 |0053: int-to-long v9, v9 │ │ -499fec: c069 |0054: and-long/2addr v9, v6 │ │ -499fee: 1302 3800 |0055: const/16 v2, #int 56 // #38 │ │ -499ff2: c329 |0057: shl-long/2addr v9, v2 │ │ -499ff4: c109 |0058: or-long/2addr v9, v0 │ │ -499ff6: 1009 |0059: return-wide v9 │ │ -499ff8: 1000 |005a: return-wide v0 │ │ +499f30: |[499f30] org.purple.smokestack.SipHash.byteArrayToLong:([BI)J │ │ +499f40: 1600 0000 |0000: const-wide/16 v0, #int 0 // #0 │ │ +499f44: 3809 5800 |0002: if-eqz v9, 005a // +0058 │ │ +499f48: 2192 |0004: array-length v2, v9 │ │ +499f4a: b1a2 |0005: sub-int/2addr v2, v10 │ │ +499f4c: 1303 0800 |0006: const/16 v3, #int 8 // #8 │ │ +499f50: 3532 0300 |0008: if-ge v2, v3, 000b // +0003 │ │ +499f54: 2850 |000a: goto 005a // +0050 │ │ +499f56: 4802 090a |000b: aget-byte v2, v9, v10 │ │ +499f5a: 8124 |000d: int-to-long v4, v2 │ │ +499f5c: 1606 ff00 |000e: const-wide/16 v6, #int 255 // #ff │ │ +499f60: c064 |0010: and-long/2addr v4, v6 │ │ +499f62: 1202 |0011: const/4 v2, #int 0 // #0 │ │ +499f64: c324 |0012: shl-long/2addr v4, v2 │ │ +499f66: c140 |0013: or-long/2addr v0, v4 │ │ +499f68: d802 0a01 |0014: add-int/lit8 v2, v10, #int 1 // #01 │ │ +499f6c: 4802 0902 |0016: aget-byte v2, v9, v2 │ │ +499f70: 8124 |0018: int-to-long v4, v2 │ │ +499f72: c064 |0019: and-long/2addr v4, v6 │ │ +499f74: a302 0403 |001a: shl-long v2, v4, v3 │ │ +499f78: c120 |001c: or-long/2addr v0, v2 │ │ +499f7a: d802 0a02 |001d: add-int/lit8 v2, v10, #int 2 // #02 │ │ +499f7e: 4802 0902 |001f: aget-byte v2, v9, v2 │ │ +499f82: 8122 |0021: int-to-long v2, v2 │ │ +499f84: c062 |0022: and-long/2addr v2, v6 │ │ +499f86: 1304 1000 |0023: const/16 v4, #int 16 // #10 │ │ +499f8a: c342 |0025: shl-long/2addr v2, v4 │ │ +499f8c: c120 |0026: or-long/2addr v0, v2 │ │ +499f8e: d802 0a03 |0027: add-int/lit8 v2, v10, #int 3 // #03 │ │ +499f92: 4802 0902 |0029: aget-byte v2, v9, v2 │ │ +499f96: 8122 |002b: int-to-long v2, v2 │ │ +499f98: c062 |002c: and-long/2addr v2, v6 │ │ +499f9a: 1304 1800 |002d: const/16 v4, #int 24 // #18 │ │ +499f9e: c342 |002f: shl-long/2addr v2, v4 │ │ +499fa0: c120 |0030: or-long/2addr v0, v2 │ │ +499fa2: d802 0a04 |0031: add-int/lit8 v2, v10, #int 4 // #04 │ │ +499fa6: 4802 0902 |0033: aget-byte v2, v9, v2 │ │ +499faa: 8122 |0035: int-to-long v2, v2 │ │ +499fac: c062 |0036: and-long/2addr v2, v6 │ │ +499fae: 1304 2000 |0037: const/16 v4, #int 32 // #20 │ │ +499fb2: c342 |0039: shl-long/2addr v2, v4 │ │ +499fb4: c120 |003a: or-long/2addr v0, v2 │ │ +499fb6: d802 0a05 |003b: add-int/lit8 v2, v10, #int 5 // #05 │ │ +499fba: 4802 0902 |003d: aget-byte v2, v9, v2 │ │ +499fbe: 8122 |003f: int-to-long v2, v2 │ │ +499fc0: c062 |0040: and-long/2addr v2, v6 │ │ +499fc2: 1304 2800 |0041: const/16 v4, #int 40 // #28 │ │ +499fc6: c342 |0043: shl-long/2addr v2, v4 │ │ +499fc8: c120 |0044: or-long/2addr v0, v2 │ │ +499fca: d802 0a06 |0045: add-int/lit8 v2, v10, #int 6 // #06 │ │ +499fce: 4802 0902 |0047: aget-byte v2, v9, v2 │ │ +499fd2: 8122 |0049: int-to-long v2, v2 │ │ +499fd4: c062 |004a: and-long/2addr v2, v6 │ │ +499fd6: 1304 3000 |004b: const/16 v4, #int 48 // #30 │ │ +499fda: c342 |004d: shl-long/2addr v2, v4 │ │ +499fdc: c120 |004e: or-long/2addr v0, v2 │ │ +499fde: d80a 0a07 |004f: add-int/lit8 v10, v10, #int 7 // #07 │ │ +499fe2: 4809 090a |0051: aget-byte v9, v9, v10 │ │ +499fe6: 8199 |0053: int-to-long v9, v9 │ │ +499fe8: c069 |0054: and-long/2addr v9, v6 │ │ +499fea: 1302 3800 |0055: const/16 v2, #int 56 // #38 │ │ +499fee: c329 |0057: shl-long/2addr v9, v2 │ │ +499ff0: c109 |0058: or-long/2addr v9, v0 │ │ +499ff2: 1009 |0059: return-wide v9 │ │ +499ff4: 1000 |005a: return-wide v0 │ │ catches : (none) │ │ positions : │ │ 0x0004 line=53 │ │ 0x000b line=58 │ │ 0x0016 line=59 │ │ 0x001f line=61 │ │ 0x0029 line=63 │ │ @@ -787858,88 +787857,88 @@ │ │ type : '(JJ)J' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 9 │ │ ins : 5 │ │ outs : 0 │ │ insns size : 10 16-bit code units │ │ -499ffc: |[499ffc] org.purple.smokestack.SipHash.rotl:(JJ)J │ │ -49a00c: 8470 |0000: long-to-int v0, v7 │ │ -49a00e: a300 0500 |0001: shl-long v0, v5, v0 │ │ -49a012: 1602 4000 |0003: const-wide/16 v2, #int 64 // #40 │ │ -49a016: bc72 |0005: sub-long/2addr v2, v7 │ │ -49a018: 8427 |0006: long-to-int v7, v2 │ │ -49a01a: c575 |0007: ushr-long/2addr v5, v7 │ │ -49a01c: c105 |0008: or-long/2addr v5, v0 │ │ -49a01e: 1005 |0009: return-wide v5 │ │ +499ff8: |[499ff8] org.purple.smokestack.SipHash.rotl:(JJ)J │ │ +49a008: 8470 |0000: long-to-int v0, v7 │ │ +49a00a: a300 0500 |0001: shl-long v0, v5, v0 │ │ +49a00e: 1602 4000 |0003: const-wide/16 v2, #int 64 // #40 │ │ +49a012: bc72 |0005: sub-long/2addr v2, v7 │ │ +49a014: 8427 |0006: long-to-int v7, v2 │ │ +49a016: c575 |0007: ushr-long/2addr v5, v7 │ │ +49a018: c105 |0008: or-long/2addr v5, v0 │ │ +49a01a: 1005 |0009: return-wide v5 │ │ catches : (none) │ │ positions : │ │ locals : │ │ │ │ #6 : (in Lorg/purple/smokestack/SipHash;) │ │ name : 'round' │ │ type : '()V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 7 │ │ ins : 1 │ │ outs : 5 │ │ insns size : 93 16-bit code units │ │ -49a540: |[49a540] org.purple.smokestack.SipHash.round:()V │ │ -49a550: 5360 4a69 |0000: iget-wide v0, v6, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ -49a554: 5362 4b69 |0002: iget-wide v2, v6, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ -49a558: bb20 |0004: add-long/2addr v0, v2 │ │ -49a55a: 5a60 4a69 |0005: iput-wide v0, v6, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ -49a55e: 1600 0d00 |0007: const-wide/16 v0, #int 13 // #d │ │ -49a562: 7051 25d2 2603 |0009: invoke-direct {v6, v2, v3, v0, v1}, Lorg/purple/smokestack/SipHash;.rotl:(JJ)J // method@d225 │ │ -49a568: 0b00 |000c: move-result-wide v0 │ │ -49a56a: 5a60 4b69 |000d: iput-wide v0, v6, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ -49a56e: 5362 4a69 |000f: iget-wide v2, v6, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ -49a572: c220 |0011: xor-long/2addr v0, v2 │ │ -49a574: 5a60 4b69 |0012: iput-wide v0, v6, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ -49a578: 1600 2000 |0014: const-wide/16 v0, #int 32 // #20 │ │ -49a57c: 7051 25d2 2603 |0016: invoke-direct {v6, v2, v3, v0, v1}, Lorg/purple/smokestack/SipHash;.rotl:(JJ)J // method@d225 │ │ -49a582: 0b02 |0019: move-result-wide v2 │ │ -49a584: 5a62 4a69 |001a: iput-wide v2, v6, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ -49a588: 5362 4c69 |001c: iget-wide v2, v6, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ -49a58c: 5364 4d69 |001e: iget-wide v4, v6, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ -49a590: bb42 |0020: add-long/2addr v2, v4 │ │ -49a592: 5a62 4c69 |0021: iput-wide v2, v6, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ -49a596: 1602 1000 |0023: const-wide/16 v2, #int 16 // #10 │ │ -49a59a: 7053 25d2 4625 |0025: invoke-direct {v6, v4, v5, v2, v3}, Lorg/purple/smokestack/SipHash;.rotl:(JJ)J // method@d225 │ │ -49a5a0: 0b02 |0028: move-result-wide v2 │ │ -49a5a2: 5a62 4d69 |0029: iput-wide v2, v6, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ -49a5a6: 5364 4c69 |002b: iget-wide v4, v6, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ -49a5aa: c242 |002d: xor-long/2addr v2, v4 │ │ -49a5ac: 5a62 4d69 |002e: iput-wide v2, v6, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ -49a5b0: 5362 4b69 |0030: iget-wide v2, v6, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ -49a5b4: bb24 |0032: add-long/2addr v4, v2 │ │ -49a5b6: 5a64 4c69 |0033: iput-wide v4, v6, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ -49a5ba: 1604 1100 |0035: const-wide/16 v4, #int 17 // #11 │ │ -49a5be: 7055 25d2 2643 |0037: invoke-direct {v6, v2, v3, v4, v5}, Lorg/purple/smokestack/SipHash;.rotl:(JJ)J // method@d225 │ │ -49a5c4: 0b02 |003a: move-result-wide v2 │ │ -49a5c6: 5a62 4b69 |003b: iput-wide v2, v6, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ -49a5ca: 5364 4c69 |003d: iget-wide v4, v6, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ -49a5ce: c242 |003f: xor-long/2addr v2, v4 │ │ -49a5d0: 5a62 4b69 |0040: iput-wide v2, v6, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ -49a5d4: 7051 25d2 4605 |0042: invoke-direct {v6, v4, v5, v0, v1}, Lorg/purple/smokestack/SipHash;.rotl:(JJ)J // method@d225 │ │ -49a5da: 0b00 |0045: move-result-wide v0 │ │ -49a5dc: 5a60 4c69 |0046: iput-wide v0, v6, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ -49a5e0: 5360 4a69 |0048: iget-wide v0, v6, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ -49a5e4: 5362 4d69 |004a: iget-wide v2, v6, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ -49a5e8: bb20 |004c: add-long/2addr v0, v2 │ │ -49a5ea: 5a60 4a69 |004d: iput-wide v0, v6, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ -49a5ee: 1600 1500 |004f: const-wide/16 v0, #int 21 // #15 │ │ -49a5f2: 7051 25d2 2603 |0051: invoke-direct {v6, v2, v3, v0, v1}, Lorg/purple/smokestack/SipHash;.rotl:(JJ)J // method@d225 │ │ -49a5f8: 0b00 |0054: move-result-wide v0 │ │ -49a5fa: 5a60 4d69 |0055: iput-wide v0, v6, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ -49a5fe: 5362 4a69 |0057: iget-wide v2, v6, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ -49a602: c220 |0059: xor-long/2addr v0, v2 │ │ -49a604: 5a60 4d69 |005a: iput-wide v0, v6, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ -49a608: 0e00 |005c: return-void │ │ +49a53c: |[49a53c] org.purple.smokestack.SipHash.round:()V │ │ +49a54c: 5360 4a69 |0000: iget-wide v0, v6, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ +49a550: 5362 4b69 |0002: iget-wide v2, v6, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ +49a554: bb20 |0004: add-long/2addr v0, v2 │ │ +49a556: 5a60 4a69 |0005: iput-wide v0, v6, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ +49a55a: 1600 0d00 |0007: const-wide/16 v0, #int 13 // #d │ │ +49a55e: 7051 25d2 2603 |0009: invoke-direct {v6, v2, v3, v0, v1}, Lorg/purple/smokestack/SipHash;.rotl:(JJ)J // method@d225 │ │ +49a564: 0b00 |000c: move-result-wide v0 │ │ +49a566: 5a60 4b69 |000d: iput-wide v0, v6, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ +49a56a: 5362 4a69 |000f: iget-wide v2, v6, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ +49a56e: c220 |0011: xor-long/2addr v0, v2 │ │ +49a570: 5a60 4b69 |0012: iput-wide v0, v6, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ +49a574: 1600 2000 |0014: const-wide/16 v0, #int 32 // #20 │ │ +49a578: 7051 25d2 2603 |0016: invoke-direct {v6, v2, v3, v0, v1}, Lorg/purple/smokestack/SipHash;.rotl:(JJ)J // method@d225 │ │ +49a57e: 0b02 |0019: move-result-wide v2 │ │ +49a580: 5a62 4a69 |001a: iput-wide v2, v6, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ +49a584: 5362 4c69 |001c: iget-wide v2, v6, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ +49a588: 5364 4d69 |001e: iget-wide v4, v6, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ +49a58c: bb42 |0020: add-long/2addr v2, v4 │ │ +49a58e: 5a62 4c69 |0021: iput-wide v2, v6, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ +49a592: 1602 1000 |0023: const-wide/16 v2, #int 16 // #10 │ │ +49a596: 7053 25d2 4625 |0025: invoke-direct {v6, v4, v5, v2, v3}, Lorg/purple/smokestack/SipHash;.rotl:(JJ)J // method@d225 │ │ +49a59c: 0b02 |0028: move-result-wide v2 │ │ +49a59e: 5a62 4d69 |0029: iput-wide v2, v6, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ +49a5a2: 5364 4c69 |002b: iget-wide v4, v6, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ +49a5a6: c242 |002d: xor-long/2addr v2, v4 │ │ +49a5a8: 5a62 4d69 |002e: iput-wide v2, v6, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ +49a5ac: 5362 4b69 |0030: iget-wide v2, v6, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ +49a5b0: bb24 |0032: add-long/2addr v4, v2 │ │ +49a5b2: 5a64 4c69 |0033: iput-wide v4, v6, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ +49a5b6: 1604 1100 |0035: const-wide/16 v4, #int 17 // #11 │ │ +49a5ba: 7055 25d2 2643 |0037: invoke-direct {v6, v2, v3, v4, v5}, Lorg/purple/smokestack/SipHash;.rotl:(JJ)J // method@d225 │ │ +49a5c0: 0b02 |003a: move-result-wide v2 │ │ +49a5c2: 5a62 4b69 |003b: iput-wide v2, v6, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ +49a5c6: 5364 4c69 |003d: iget-wide v4, v6, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ +49a5ca: c242 |003f: xor-long/2addr v2, v4 │ │ +49a5cc: 5a62 4b69 |0040: iput-wide v2, v6, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ +49a5d0: 7051 25d2 4605 |0042: invoke-direct {v6, v4, v5, v0, v1}, Lorg/purple/smokestack/SipHash;.rotl:(JJ)J // method@d225 │ │ +49a5d6: 0b00 |0045: move-result-wide v0 │ │ +49a5d8: 5a60 4c69 |0046: iput-wide v0, v6, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ +49a5dc: 5360 4a69 |0048: iget-wide v0, v6, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ +49a5e0: 5362 4d69 |004a: iget-wide v2, v6, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ +49a5e4: bb20 |004c: add-long/2addr v0, v2 │ │ +49a5e6: 5a60 4a69 |004d: iput-wide v0, v6, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ +49a5ea: 1600 1500 |004f: const-wide/16 v0, #int 21 // #15 │ │ +49a5ee: 7051 25d2 2603 |0051: invoke-direct {v6, v2, v3, v0, v1}, Lorg/purple/smokestack/SipHash;.rotl:(JJ)J // method@d225 │ │ +49a5f4: 0b00 |0054: move-result-wide v0 │ │ +49a5f6: 5a60 4d69 |0055: iput-wide v0, v6, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ +49a5fa: 5362 4a69 |0057: iget-wide v2, v6, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ +49a5fe: c220 |0059: xor-long/2addr v0, v2 │ │ +49a600: 5a60 4d69 |005a: iput-wide v0, v6, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ +49a604: 0e00 |005c: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=83 │ │ 0x0009 line=84 │ │ 0x000f line=85 │ │ 0x0016 line=86 │ │ 0x001c line=87 │ │ @@ -787960,40 +787959,40 @@ │ │ type : '()Z' │ │ access : 0x0009 (PUBLIC STATIC) │ │ code - │ │ registers : 7 │ │ ins : 0 │ │ outs : 4 │ │ insns size : 76 16-bit code units │ │ -499e8c: |[499e8c] org.purple.smokestack.SipHash.test1:()Z │ │ -499e9c: 2200 f11e |0000: new-instance v0, Lorg/purple/smokestack/SipHash; // type@1ef1 │ │ -499ea0: 1301 1000 |0002: const/16 v1, #int 16 // #10 │ │ -499ea4: 2311 0a1f |0004: new-array v1, v1, [B // type@1f0a │ │ -499ea8: 2601 2600 0000 |0006: fill-array-data v1, 0000002c // +00000026 │ │ -499eae: 1202 |0009: const/4 v2, #int 0 // #0 │ │ -499eb0: 7040 21d2 1022 |000a: invoke-direct {v0, v1, v2, v2}, Lorg/purple/smokestack/SipHash;.:([BII)V // method@d221 │ │ -499eb6: 1301 0800 |000d: const/16 v1, #int 8 // #8 │ │ -499eba: 2313 0a1f |000f: new-array v3, v1, [B // type@1f0a │ │ -499ebe: 2603 2700 0000 |0011: fill-array-data v3, 00000038 // +00000027 │ │ -499ec4: 7110 39d1 0300 |0014: invoke-static {v3}, Lorg/purple/smokestack/Miscellaneous;.byteArrayToLong:([B)J // method@d139 │ │ -499eca: 0b03 |0017: move-result-wide v3 │ │ -499ecc: 1305 0f00 |0018: const/16 v5, #int 15 // #f │ │ -499ed0: 2355 0a1f |001a: new-array v5, v5, [B // type@1f0a │ │ -499ed4: 2605 2400 0000 |001c: fill-array-data v5, 00000040 // +00000024 │ │ -499eda: 6e30 23d2 5001 |001f: invoke-virtual {v0, v5, v1}, Lorg/purple/smokestack/SipHash;.hmac:([BI)[J // method@d223 │ │ -499ee0: 0c00 |0022: move-result-object v0 │ │ -499ee2: 4505 0002 |0023: aget-wide v5, v0, v2 │ │ -499ee6: 3100 0305 |0025: cmp-long v0, v3, v5 │ │ -499eea: 3900 0300 |0027: if-nez v0, 002a // +0003 │ │ -499eee: 1212 |0029: const/4 v2, #int 1 // #1 │ │ -499ef0: 0f02 |002a: return v2 │ │ -499ef2: 0000 |002b: nop // spacer │ │ -499ef4: 0003 0100 1000 0000 0001 0203 0405 ... |002c: array-data (12 units) │ │ -499f0c: 0003 0100 0800 0000 a129 ca61 49be ... |0038: array-data (8 units) │ │ -499f1c: 0003 0100 0f00 0000 0001 0203 0405 ... |0040: array-data (12 units) │ │ +499e88: |[499e88] org.purple.smokestack.SipHash.test1:()Z │ │ +499e98: 2200 f11e |0000: new-instance v0, Lorg/purple/smokestack/SipHash; // type@1ef1 │ │ +499e9c: 1301 1000 |0002: const/16 v1, #int 16 // #10 │ │ +499ea0: 2311 0a1f |0004: new-array v1, v1, [B // type@1f0a │ │ +499ea4: 2601 2600 0000 |0006: fill-array-data v1, 0000002c // +00000026 │ │ +499eaa: 1202 |0009: const/4 v2, #int 0 // #0 │ │ +499eac: 7040 21d2 1022 |000a: invoke-direct {v0, v1, v2, v2}, Lorg/purple/smokestack/SipHash;.:([BII)V // method@d221 │ │ +499eb2: 1301 0800 |000d: const/16 v1, #int 8 // #8 │ │ +499eb6: 2313 0a1f |000f: new-array v3, v1, [B // type@1f0a │ │ +499eba: 2603 2700 0000 |0011: fill-array-data v3, 00000038 // +00000027 │ │ +499ec0: 7110 39d1 0300 |0014: invoke-static {v3}, Lorg/purple/smokestack/Miscellaneous;.byteArrayToLong:([B)J // method@d139 │ │ +499ec6: 0b03 |0017: move-result-wide v3 │ │ +499ec8: 1305 0f00 |0018: const/16 v5, #int 15 // #f │ │ +499ecc: 2355 0a1f |001a: new-array v5, v5, [B // type@1f0a │ │ +499ed0: 2605 2400 0000 |001c: fill-array-data v5, 00000040 // +00000024 │ │ +499ed6: 6e30 23d2 5001 |001f: invoke-virtual {v0, v5, v1}, Lorg/purple/smokestack/SipHash;.hmac:([BI)[J // method@d223 │ │ +499edc: 0c00 |0022: move-result-object v0 │ │ +499ede: 4505 0002 |0023: aget-wide v5, v0, v2 │ │ +499ee2: 3100 0305 |0025: cmp-long v0, v3, v5 │ │ +499ee6: 3900 0300 |0027: if-nez v0, 002a // +0003 │ │ +499eea: 1212 |0029: const/4 v2, #int 1 // #1 │ │ +499eec: 0f02 |002a: return v2 │ │ +499eee: 0000 |002b: nop // spacer │ │ +499ef0: 0003 0100 1000 0000 0001 0203 0405 ... |002c: array-data (12 units) │ │ +499f08: 0003 0100 0800 0000 a129 ca61 49be ... |0038: array-data (8 units) │ │ +499f18: 0003 0100 0f00 0000 0001 0203 0405 ... |0040: array-data (12 units) │ │ catches : (none) │ │ positions : │ │ 0x0000 line=305 │ │ 0x0011 line=311 │ │ 0x0014 line=312 │ │ 0x001c line=314 │ │ 0x001f line=315 │ │ @@ -788006,19 +788005,19 @@ │ │ type : '([BI)[J' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 4 │ │ ins : 3 │ │ outs : 4 │ │ insns size : 7 16-bit code units │ │ -49a3d0: |[49a3d0] org.purple.smokestack.SipHash.hmac:([BI)[J │ │ -49a3e0: 5410 4969 |0000: iget-object v0, v1, Lorg/purple/smokestack/SipHash;.m_key:[B // field@6949 │ │ -49a3e4: 6e40 24d2 2130 |0002: invoke-virtual {v1, v2, v0, v3}, Lorg/purple/smokestack/SipHash;.hmac:([B[BI)[J // method@d224 │ │ -49a3ea: 0c02 |0005: move-result-object v2 │ │ -49a3ec: 1102 |0006: return-object v2 │ │ +49a3cc: |[49a3cc] org.purple.smokestack.SipHash.hmac:([BI)[J │ │ +49a3dc: 5410 4969 |0000: iget-object v0, v1, Lorg/purple/smokestack/SipHash;.m_key:[B // field@6949 │ │ +49a3e0: 6e40 24d2 2130 |0002: invoke-virtual {v1, v2, v0, v3}, Lorg/purple/smokestack/SipHash;.hmac:([B[BI)[J // method@d224 │ │ +49a3e6: 0c02 |0005: move-result-object v2 │ │ +49a3e8: 1102 |0006: return-object v2 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=127 │ │ locals : │ │ 0x0000 - 0x0007 reg=1 this Lorg/purple/smokestack/SipHash; │ │ 0x0000 - 0x0007 reg=2 (null) [B │ │ 0x0000 - 0x0007 reg=3 (null) I │ │ @@ -788028,248 +788027,248 @@ │ │ type : '([B[BI)[J' │ │ access : 0x20001 (PUBLIC DECLARED_SYNCHRONIZED) │ │ code - │ │ registers : 21 │ │ ins : 4 │ │ outs : 3 │ │ insns size : 450 16-bit code units │ │ -49a020: |[49a020] org.purple.smokestack.SipHash.hmac:([B[BI)[J │ │ -49a030: 0801 1100 |0000: move-object/from16 v1, v17 │ │ -49a034: 0800 1200 |0002: move-object/from16 v0, v18 │ │ -49a038: 0802 1300 |0004: move-object/from16 v2, v19 │ │ -49a03c: 0203 1400 |0006: move/from16 v3, v20 │ │ -49a040: 1d11 |0008: monitor-enter v17 │ │ -49a042: 1204 |0009: const/4 v4, #int 0 // #0 │ │ -49a044: 1228 |000a: const/4 v8, #int 2 // #2 │ │ -49a046: 3800 9301 |000b: if-eqz v0, 019e // +0193 │ │ -49a04a: 3802 9101 |000d: if-eqz v2, 019e // +0191 │ │ -49a04e: 2129 |000f: array-length v9, v2 │ │ -49a050: 130a 1000 |0010: const/16 v10, #int 16 // #10 │ │ -49a054: 32a9 0400 |0012: if-eq v9, v10, 0016 // +0004 │ │ -49a058: 2900 8a01 |0014: goto/16 019e // +018a │ │ -49a05c: 7030 22d2 2104 |0016: invoke-direct {v1, v2, v4}, Lorg/purple/smokestack/SipHash;.byteArrayToLong:([BI)J // method@d222 │ │ -49a062: 0b0b |0019: move-result-wide v11 │ │ -49a064: 1309 0800 |001a: const/16 v9, #int 8 // #8 │ │ -49a068: 7030 22d2 2109 |001c: invoke-direct {v1, v2, v9}, Lorg/purple/smokestack/SipHash;.byteArrayToLong:([BI)J // method@d222 │ │ -49a06e: 0b0d |001f: move-result-wide v13 │ │ -49a070: 180f 7565 7370 656d 6f73 |0020: const-wide v15, #double 1.09869e+248 // #736f6d6570736575 │ │ -49a07a: a205 0b0f |0025: xor-long v5, v11, v15 │ │ -49a07e: 5a15 4a69 |0027: iput-wide v5, v1, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ -49a082: 1805 6d6f 646e 6172 6f64 |0029: const-wide v5, #double 6.2222e+175 // #646f72616e646f6d │ │ -49a08c: c2d5 |002e: xor-long/2addr v5, v13 │ │ -49a08e: 5a15 4b69 |002f: iput-wide v5, v1, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ -49a092: 180f 6172 656e 6567 796c |0031: const-wide v15, #double 3.42087e+214 // #6c7967656e657261 │ │ -49a09c: c2fb |0036: xor-long/2addr v11, v15 │ │ -49a09e: 5a1b 4c69 |0037: iput-wide v11, v1, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ -49a0a2: 180b 7365 7479 6264 6574 |0039: const-wide v11, #double 4.90118e+252 // #7465646279746573 │ │ -49a0ac: c2db |003e: xor-long/2addr v11, v13 │ │ -49a0ae: 5a1b 4d69 |003f: iput-wide v11, v1, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ -49a0b2: 160b ee00 |0041: const-wide/16 v11, #int 238 // #ee │ │ -49a0b6: 33a3 0500 |0043: if-ne v3, v10, 0048 // +0005 │ │ -49a0ba: c2b5 |0045: xor-long/2addr v5, v11 │ │ -49a0bc: 5a15 4b69 |0046: iput-wide v5, v1, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ -49a0c0: 2105 |0048: array-length v5, v0 │ │ -49a0c2: b395 |0049: div-int/2addr v5, v9 │ │ -49a0c4: 6206 4469 |004a: sget-object v6, Lorg/purple/smokestack/SipHash;.C_ROUNDS:[I // field@6944 │ │ -49a0c8: 5217 4769 |004c: iget v7, v1, Lorg/purple/smokestack/SipHash;.m_c_rounds_index:I // field@6947 │ │ -49a0cc: 4406 0607 |004e: aget v6, v6, v7 │ │ -49a0d0: 1207 |0050: const/4 v7, #int 0 // #0 │ │ -49a0d2: 124d |0051: const/4 v13, #int 4 // #4 │ │ -49a0d4: 3557 3200 |0052: if-ge v7, v5, 0084 // +0032 │ │ -49a0d8: da0e 0708 |0054: mul-int/lit8 v14, v7, #int 8 // #08 │ │ -49a0dc: 7030 22d2 010e |0056: invoke-direct {v1, v0, v14}, Lorg/purple/smokestack/SipHash;.byteArrayToLong:([BI)J // method@d222 │ │ -49a0e2: 0b0e |0059: move-result-wide v14 │ │ -49a0e4: 0213 0500 |005a: move/from16 v19, v5 │ │ -49a0e8: 5314 4d69 |005c: iget-wide v4, v1, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ -49a0ec: c2e4 |005e: xor-long/2addr v4, v14 │ │ -49a0ee: 5a14 4d69 |005f: iput-wide v4, v1, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ -49a0f2: 3286 1200 |0061: if-eq v6, v8, 0073 // +0012 │ │ -49a0f6: 32d6 0300 |0063: if-eq v6, v13, 0066 // +0003 │ │ -49a0fa: 2814 |0065: goto 0079 // +0014 │ │ -49a0fc: 7601 26d2 1100 |0066: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a102: 7601 26d2 1100 |0069: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a108: 7601 26d2 1100 |006c: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a10e: 7601 26d2 1100 |006f: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a114: 2807 |0072: goto 0079 // +0007 │ │ -49a116: 7601 26d2 1100 |0073: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a11c: 7601 26d2 1100 |0076: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a122: 5314 4a69 |0079: iget-wide v4, v1, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ -49a126: c2e4 |007b: xor-long/2addr v4, v14 │ │ -49a128: 5a14 4a69 |007c: iput-wide v4, v1, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ -49a12c: d807 0701 |007e: add-int/lit8 v7, v7, #int 1 // #01 │ │ -49a130: 0205 1300 |0080: move/from16 v5, v19 │ │ -49a134: 1204 |0082: const/4 v4, #int 0 // #0 │ │ -49a136: 28ce |0083: goto 0051 // -0032 │ │ -49a138: 2104 |0084: array-length v4, v0 │ │ -49a13a: b394 |0085: div-int/2addr v4, v9 │ │ -49a13c: da04 0408 |0086: mul-int/lit8 v4, v4, #int 8 // #08 │ │ -49a140: 2105 |0088: array-length v5, v0 │ │ -49a142: 8155 |0089: int-to-long v5, v5 │ │ -49a144: 1307 3800 |008a: const/16 v7, #int 56 // #38 │ │ -49a148: c375 |008c: shl-long/2addr v5, v7 │ │ -49a14a: 2107 |008d: array-length v7, v0 │ │ -49a14c: b497 |008e: rem-int/2addr v7, v9 │ │ -49a14e: 2b07 2101 0000 |008f: packed-switch v7, 000001b0 // +00000121 │ │ -49a154: 2837 |0092: goto 00c9 // +0037 │ │ -49a156: d807 0406 |0093: add-int/lit8 v7, v4, #int 6 // #06 │ │ -49a15a: 4807 0007 |0095: aget-byte v7, v0, v7 │ │ -49a15e: 817e |0097: int-to-long v14, v7 │ │ -49a160: 1307 3000 |0098: const/16 v7, #int 48 // #30 │ │ -49a164: c37e |009a: shl-long/2addr v14, v7 │ │ -49a166: c1e5 |009b: or-long/2addr v5, v14 │ │ -49a168: d807 0405 |009c: add-int/lit8 v7, v4, #int 5 // #05 │ │ -49a16c: 4807 0007 |009e: aget-byte v7, v0, v7 │ │ -49a170: 817e |00a0: int-to-long v14, v7 │ │ -49a172: 1307 2800 |00a1: const/16 v7, #int 40 // #28 │ │ -49a176: c37e |00a3: shl-long/2addr v14, v7 │ │ -49a178: c1e5 |00a4: or-long/2addr v5, v14 │ │ -49a17a: d807 0404 |00a5: add-int/lit8 v7, v4, #int 4 // #04 │ │ -49a17e: 4807 0007 |00a7: aget-byte v7, v0, v7 │ │ -49a182: 817e |00a9: int-to-long v14, v7 │ │ -49a184: 1307 2000 |00aa: const/16 v7, #int 32 // #20 │ │ -49a188: c37e |00ac: shl-long/2addr v14, v7 │ │ -49a18a: c1e5 |00ad: or-long/2addr v5, v14 │ │ -49a18c: d807 0403 |00ae: add-int/lit8 v7, v4, #int 3 // #03 │ │ -49a190: 4807 0007 |00b0: aget-byte v7, v0, v7 │ │ -49a194: 817e |00b2: int-to-long v14, v7 │ │ -49a196: 1307 1800 |00b3: const/16 v7, #int 24 // #18 │ │ -49a19a: c37e |00b5: shl-long/2addr v14, v7 │ │ -49a19c: c1e5 |00b6: or-long/2addr v5, v14 │ │ -49a19e: d807 0402 |00b7: add-int/lit8 v7, v4, #int 2 // #02 │ │ -49a1a2: 4807 0007 |00b9: aget-byte v7, v0, v7 │ │ -49a1a6: 817e |00bb: int-to-long v14, v7 │ │ -49a1a8: c3ae |00bc: shl-long/2addr v14, v10 │ │ -49a1aa: c1e5 |00bd: or-long/2addr v5, v14 │ │ -49a1ac: d807 0401 |00be: add-int/lit8 v7, v4, #int 1 // #01 │ │ -49a1b0: 4807 0007 |00c0: aget-byte v7, v0, v7 │ │ -49a1b4: 817e |00c2: int-to-long v14, v7 │ │ -49a1b6: c39e |00c3: shl-long/2addr v14, v9 │ │ -49a1b8: c1e5 |00c4: or-long/2addr v5, v14 │ │ -49a1ba: 4800 0004 |00c5: aget-byte v0, v0, v4 │ │ -49a1be: 810e |00c7: int-to-long v14, v0 │ │ -49a1c0: c1e5 |00c8: or-long/2addr v5, v14 │ │ -49a1c2: 531e 4d69 |00c9: iget-wide v14, v1, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ -49a1c6: c25e |00cb: xor-long/2addr v14, v5 │ │ -49a1c8: 5a1e 4d69 |00cc: iput-wide v14, v1, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ -49a1cc: 6200 4469 |00ce: sget-object v0, Lorg/purple/smokestack/SipHash;.C_ROUNDS:[I // field@6944 │ │ -49a1d0: 5214 4769 |00d0: iget v4, v1, Lorg/purple/smokestack/SipHash;.m_c_rounds_index:I // field@6947 │ │ -49a1d4: 4400 0004 |00d2: aget v0, v0, v4 │ │ -49a1d8: 3280 1200 |00d4: if-eq v0, v8, 00e6 // +0012 │ │ -49a1dc: 32d0 0300 |00d6: if-eq v0, v13, 00d9 // +0003 │ │ -49a1e0: 2814 |00d8: goto 00ec // +0014 │ │ -49a1e2: 7601 26d2 1100 |00d9: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a1e8: 7601 26d2 1100 |00dc: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a1ee: 7601 26d2 1100 |00df: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a1f4: 7601 26d2 1100 |00e2: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a1fa: 2807 |00e5: goto 00ec // +0007 │ │ -49a1fc: 7601 26d2 1100 |00e6: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a202: 7601 26d2 1100 |00e9: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a208: 531e 4a69 |00ec: iget-wide v14, v1, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ -49a20c: c2e5 |00ee: xor-long/2addr v5, v14 │ │ -49a20e: 5a15 4a69 |00ef: iput-wide v5, v1, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ -49a212: 33a3 0800 |00f1: if-ne v3, v10, 00f9 // +0008 │ │ -49a216: 5314 4c69 |00f3: iget-wide v4, v1, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ -49a21a: c2b4 |00f5: xor-long/2addr v4, v11 │ │ -49a21c: 5a14 4c69 |00f6: iput-wide v4, v1, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ -49a220: 2808 |00f8: goto 0100 // +0008 │ │ -49a222: 5314 4c69 |00f9: iget-wide v4, v1, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ -49a226: 1606 ff00 |00fb: const-wide/16 v6, #int 255 // #ff │ │ -49a22a: c264 |00fd: xor-long/2addr v4, v6 │ │ -49a22c: 5a14 4c69 |00fe: iput-wide v4, v1, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ -49a230: 6200 4569 |0100: sget-object v0, Lorg/purple/smokestack/SipHash;.D_ROUNDS:[I // field@6945 │ │ -49a234: 5214 4869 |0102: iget v4, v1, Lorg/purple/smokestack/SipHash;.m_d_rounds_index:I // field@6948 │ │ -49a238: 4404 0004 |0104: aget v4, v0, v4 │ │ -49a23c: 32d4 1e00 |0106: if-eq v4, v13, 0124 // +001e │ │ -49a240: 3294 0300 |0108: if-eq v4, v9, 010b // +0003 │ │ -49a244: 2826 |010a: goto 0130 // +0026 │ │ -49a246: 7601 26d2 1100 |010b: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a24c: 7601 26d2 1100 |010e: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a252: 7601 26d2 1100 |0111: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a258: 7601 26d2 1100 |0114: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a25e: 7601 26d2 1100 |0117: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a264: 7601 26d2 1100 |011a: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a26a: 7601 26d2 1100 |011d: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a270: 7601 26d2 1100 |0120: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a276: 280d |0123: goto 0130 // +000d │ │ -49a278: 7601 26d2 1100 |0124: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a27e: 7601 26d2 1100 |0127: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a284: 7601 26d2 1100 |012a: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a28a: 7601 26d2 1100 |012d: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a290: 2384 0f1f |0130: new-array v4, v8, [J // type@1f0f │ │ -49a294: 5315 4a69 |0132: iget-wide v5, v1, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ -49a298: 5317 4b69 |0134: iget-wide v7, v1, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ -49a29c: c275 |0136: xor-long/2addr v5, v7 │ │ -49a29e: 531a 4c69 |0137: iget-wide v10, v1, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ -49a2a2: c2a5 |0139: xor-long/2addr v5, v10 │ │ -49a2a4: 531a 4d69 |013a: iget-wide v10, v1, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ -49a2a8: c2a5 |013c: xor-long/2addr v5, v10 │ │ -49a2aa: 120a |013d: const/4 v10, #int 0 // #0 │ │ -49a2ac: 4c05 040a |013e: aput-wide v5, v4, v10 │ │ -49a2b0: 1212 |0140: const/4 v2, #int 1 // #1 │ │ -49a2b2: 1605 0000 |0141: const-wide/16 v5, #int 0 // #0 │ │ -49a2b6: 4c05 0402 |0143: aput-wide v5, v4, v2 │ │ -49a2ba: 3393 0c00 |0145: if-ne v3, v9, 0151 // +000c │ │ -49a2be: 5a15 4d69 |0147: iput-wide v5, v1, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ -49a2c2: 5a15 4c69 |0149: iput-wide v5, v1, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ -49a2c6: 5a15 4b69 |014b: iput-wide v5, v1, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ -49a2ca: 5a15 4a69 |014d: iput-wide v5, v1, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ -49a2ce: 1e11 |014f: monitor-exit v17 │ │ -49a2d0: 1104 |0150: return-object v4 │ │ -49a2d2: 1605 dd00 |0151: const-wide/16 v5, #int 221 // #dd │ │ -49a2d6: c275 |0153: xor-long/2addr v5, v7 │ │ -49a2d8: 5a15 4b69 |0154: iput-wide v5, v1, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ -49a2dc: 5213 4869 |0156: iget v3, v1, Lorg/purple/smokestack/SipHash;.m_d_rounds_index:I // field@6948 │ │ -49a2e0: 4400 0003 |0158: aget v0, v0, v3 │ │ -49a2e4: 32d0 1e00 |015a: if-eq v0, v13, 0178 // +001e │ │ -49a2e8: 3290 0300 |015c: if-eq v0, v9, 015f // +0003 │ │ -49a2ec: 2826 |015e: goto 0184 // +0026 │ │ -49a2ee: 7601 26d2 1100 |015f: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a2f4: 7601 26d2 1100 |0162: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a2fa: 7601 26d2 1100 |0165: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a300: 7601 26d2 1100 |0168: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a306: 7601 26d2 1100 |016b: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a30c: 7601 26d2 1100 |016e: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a312: 7601 26d2 1100 |0171: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a318: 7601 26d2 1100 |0174: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a31e: 280d |0177: goto 0184 // +000d │ │ -49a320: 7601 26d2 1100 |0178: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a326: 7601 26d2 1100 |017b: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a32c: 7601 26d2 1100 |017e: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a332: 7601 26d2 1100 |0181: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ -49a338: 5315 4a69 |0184: iget-wide v5, v1, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ -49a33c: 5317 4b69 |0186: iget-wide v7, v1, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ -49a340: c275 |0188: xor-long/2addr v5, v7 │ │ -49a342: 5317 4c69 |0189: iget-wide v7, v1, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ -49a346: c275 |018b: xor-long/2addr v5, v7 │ │ -49a348: 5317 4d69 |018c: iget-wide v7, v1, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ -49a34c: c275 |018e: xor-long/2addr v5, v7 │ │ -49a34e: 1210 |018f: const/4 v0, #int 1 // #1 │ │ -49a350: 4c05 0400 |0190: aput-wide v5, v4, v0 │ │ -49a354: 1602 0000 |0192: const-wide/16 v2, #int 0 // #0 │ │ -49a358: 5a12 4d69 |0194: iput-wide v2, v1, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ -49a35c: 5a12 4c69 |0196: iput-wide v2, v1, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ -49a360: 5a12 4b69 |0198: iput-wide v2, v1, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ -49a364: 5a12 4a69 |019a: iput-wide v2, v1, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ -49a368: 1e11 |019c: monitor-exit v17 │ │ -49a36a: 1104 |019d: return-object v4 │ │ -49a36c: 2380 0f1f |019e: new-array v0, v8, [J // type@1f0f │ │ -49a370: 1203 |01a0: const/4 v3, #int 0 // #0 │ │ -49a372: 1604 0000 |01a1: const-wide/16 v4, #int 0 // #0 │ │ -49a376: 4c04 0003 |01a3: aput-wide v4, v0, v3 │ │ -49a37a: 1212 |01a5: const/4 v2, #int 1 // #1 │ │ -49a37c: 4c04 0002 |01a6: aput-wide v4, v0, v2 │ │ -49a380: 1e11 |01a8: monitor-exit v17 │ │ -49a382: 1100 |01a9: return-object v0 │ │ -49a384: 0d00 |01aa: move-exception v0 │ │ -49a386: 1e11 |01ab: monitor-exit v17 │ │ -49a388: 2802 |01ac: goto 01ae // +0002 │ │ -49a38a: 2700 |01ad: throw v0 │ │ -49a38c: 28ff |01ae: goto 01ad // -0001 │ │ -49a38e: 0000 |01af: nop // spacer │ │ -49a390: 0001 0700 0100 0000 3600 0000 2f00 ... |01b0: packed-switch-data (18 units) │ │ +49a01c: |[49a01c] org.purple.smokestack.SipHash.hmac:([B[BI)[J │ │ +49a02c: 0801 1100 |0000: move-object/from16 v1, v17 │ │ +49a030: 0800 1200 |0002: move-object/from16 v0, v18 │ │ +49a034: 0802 1300 |0004: move-object/from16 v2, v19 │ │ +49a038: 0203 1400 |0006: move/from16 v3, v20 │ │ +49a03c: 1d11 |0008: monitor-enter v17 │ │ +49a03e: 1204 |0009: const/4 v4, #int 0 // #0 │ │ +49a040: 1228 |000a: const/4 v8, #int 2 // #2 │ │ +49a042: 3800 9301 |000b: if-eqz v0, 019e // +0193 │ │ +49a046: 3802 9101 |000d: if-eqz v2, 019e // +0191 │ │ +49a04a: 2129 |000f: array-length v9, v2 │ │ +49a04c: 130a 1000 |0010: const/16 v10, #int 16 // #10 │ │ +49a050: 32a9 0400 |0012: if-eq v9, v10, 0016 // +0004 │ │ +49a054: 2900 8a01 |0014: goto/16 019e // +018a │ │ +49a058: 7030 22d2 2104 |0016: invoke-direct {v1, v2, v4}, Lorg/purple/smokestack/SipHash;.byteArrayToLong:([BI)J // method@d222 │ │ +49a05e: 0b0b |0019: move-result-wide v11 │ │ +49a060: 1309 0800 |001a: const/16 v9, #int 8 // #8 │ │ +49a064: 7030 22d2 2109 |001c: invoke-direct {v1, v2, v9}, Lorg/purple/smokestack/SipHash;.byteArrayToLong:([BI)J // method@d222 │ │ +49a06a: 0b0d |001f: move-result-wide v13 │ │ +49a06c: 180f 7565 7370 656d 6f73 |0020: const-wide v15, #double 1.09869e+248 // #736f6d6570736575 │ │ +49a076: a205 0b0f |0025: xor-long v5, v11, v15 │ │ +49a07a: 5a15 4a69 |0027: iput-wide v5, v1, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ +49a07e: 1805 6d6f 646e 6172 6f64 |0029: const-wide v5, #double 6.2222e+175 // #646f72616e646f6d │ │ +49a088: c2d5 |002e: xor-long/2addr v5, v13 │ │ +49a08a: 5a15 4b69 |002f: iput-wide v5, v1, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ +49a08e: 180f 6172 656e 6567 796c |0031: const-wide v15, #double 3.42087e+214 // #6c7967656e657261 │ │ +49a098: c2fb |0036: xor-long/2addr v11, v15 │ │ +49a09a: 5a1b 4c69 |0037: iput-wide v11, v1, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ +49a09e: 180b 7365 7479 6264 6574 |0039: const-wide v11, #double 4.90118e+252 // #7465646279746573 │ │ +49a0a8: c2db |003e: xor-long/2addr v11, v13 │ │ +49a0aa: 5a1b 4d69 |003f: iput-wide v11, v1, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ +49a0ae: 160b ee00 |0041: const-wide/16 v11, #int 238 // #ee │ │ +49a0b2: 33a3 0500 |0043: if-ne v3, v10, 0048 // +0005 │ │ +49a0b6: c2b5 |0045: xor-long/2addr v5, v11 │ │ +49a0b8: 5a15 4b69 |0046: iput-wide v5, v1, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ +49a0bc: 2105 |0048: array-length v5, v0 │ │ +49a0be: b395 |0049: div-int/2addr v5, v9 │ │ +49a0c0: 6206 4469 |004a: sget-object v6, Lorg/purple/smokestack/SipHash;.C_ROUNDS:[I // field@6944 │ │ +49a0c4: 5217 4769 |004c: iget v7, v1, Lorg/purple/smokestack/SipHash;.m_c_rounds_index:I // field@6947 │ │ +49a0c8: 4406 0607 |004e: aget v6, v6, v7 │ │ +49a0cc: 1207 |0050: const/4 v7, #int 0 // #0 │ │ +49a0ce: 124d |0051: const/4 v13, #int 4 // #4 │ │ +49a0d0: 3557 3200 |0052: if-ge v7, v5, 0084 // +0032 │ │ +49a0d4: da0e 0708 |0054: mul-int/lit8 v14, v7, #int 8 // #08 │ │ +49a0d8: 7030 22d2 010e |0056: invoke-direct {v1, v0, v14}, Lorg/purple/smokestack/SipHash;.byteArrayToLong:([BI)J // method@d222 │ │ +49a0de: 0b0e |0059: move-result-wide v14 │ │ +49a0e0: 0213 0500 |005a: move/from16 v19, v5 │ │ +49a0e4: 5314 4d69 |005c: iget-wide v4, v1, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ +49a0e8: c2e4 |005e: xor-long/2addr v4, v14 │ │ +49a0ea: 5a14 4d69 |005f: iput-wide v4, v1, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ +49a0ee: 3286 1200 |0061: if-eq v6, v8, 0073 // +0012 │ │ +49a0f2: 32d6 0300 |0063: if-eq v6, v13, 0066 // +0003 │ │ +49a0f6: 2814 |0065: goto 0079 // +0014 │ │ +49a0f8: 7601 26d2 1100 |0066: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a0fe: 7601 26d2 1100 |0069: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a104: 7601 26d2 1100 |006c: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a10a: 7601 26d2 1100 |006f: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a110: 2807 |0072: goto 0079 // +0007 │ │ +49a112: 7601 26d2 1100 |0073: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a118: 7601 26d2 1100 |0076: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a11e: 5314 4a69 |0079: iget-wide v4, v1, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ +49a122: c2e4 |007b: xor-long/2addr v4, v14 │ │ +49a124: 5a14 4a69 |007c: iput-wide v4, v1, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ +49a128: d807 0701 |007e: add-int/lit8 v7, v7, #int 1 // #01 │ │ +49a12c: 0205 1300 |0080: move/from16 v5, v19 │ │ +49a130: 1204 |0082: const/4 v4, #int 0 // #0 │ │ +49a132: 28ce |0083: goto 0051 // -0032 │ │ +49a134: 2104 |0084: array-length v4, v0 │ │ +49a136: b394 |0085: div-int/2addr v4, v9 │ │ +49a138: da04 0408 |0086: mul-int/lit8 v4, v4, #int 8 // #08 │ │ +49a13c: 2105 |0088: array-length v5, v0 │ │ +49a13e: 8155 |0089: int-to-long v5, v5 │ │ +49a140: 1307 3800 |008a: const/16 v7, #int 56 // #38 │ │ +49a144: c375 |008c: shl-long/2addr v5, v7 │ │ +49a146: 2107 |008d: array-length v7, v0 │ │ +49a148: b497 |008e: rem-int/2addr v7, v9 │ │ +49a14a: 2b07 2101 0000 |008f: packed-switch v7, 000001b0 // +00000121 │ │ +49a150: 2837 |0092: goto 00c9 // +0037 │ │ +49a152: d807 0406 |0093: add-int/lit8 v7, v4, #int 6 // #06 │ │ +49a156: 4807 0007 |0095: aget-byte v7, v0, v7 │ │ +49a15a: 817e |0097: int-to-long v14, v7 │ │ +49a15c: 1307 3000 |0098: const/16 v7, #int 48 // #30 │ │ +49a160: c37e |009a: shl-long/2addr v14, v7 │ │ +49a162: c1e5 |009b: or-long/2addr v5, v14 │ │ +49a164: d807 0405 |009c: add-int/lit8 v7, v4, #int 5 // #05 │ │ +49a168: 4807 0007 |009e: aget-byte v7, v0, v7 │ │ +49a16c: 817e |00a0: int-to-long v14, v7 │ │ +49a16e: 1307 2800 |00a1: const/16 v7, #int 40 // #28 │ │ +49a172: c37e |00a3: shl-long/2addr v14, v7 │ │ +49a174: c1e5 |00a4: or-long/2addr v5, v14 │ │ +49a176: d807 0404 |00a5: add-int/lit8 v7, v4, #int 4 // #04 │ │ +49a17a: 4807 0007 |00a7: aget-byte v7, v0, v7 │ │ +49a17e: 817e |00a9: int-to-long v14, v7 │ │ +49a180: 1307 2000 |00aa: const/16 v7, #int 32 // #20 │ │ +49a184: c37e |00ac: shl-long/2addr v14, v7 │ │ +49a186: c1e5 |00ad: or-long/2addr v5, v14 │ │ +49a188: d807 0403 |00ae: add-int/lit8 v7, v4, #int 3 // #03 │ │ +49a18c: 4807 0007 |00b0: aget-byte v7, v0, v7 │ │ +49a190: 817e |00b2: int-to-long v14, v7 │ │ +49a192: 1307 1800 |00b3: const/16 v7, #int 24 // #18 │ │ +49a196: c37e |00b5: shl-long/2addr v14, v7 │ │ +49a198: c1e5 |00b6: or-long/2addr v5, v14 │ │ +49a19a: d807 0402 |00b7: add-int/lit8 v7, v4, #int 2 // #02 │ │ +49a19e: 4807 0007 |00b9: aget-byte v7, v0, v7 │ │ +49a1a2: 817e |00bb: int-to-long v14, v7 │ │ +49a1a4: c3ae |00bc: shl-long/2addr v14, v10 │ │ +49a1a6: c1e5 |00bd: or-long/2addr v5, v14 │ │ +49a1a8: d807 0401 |00be: add-int/lit8 v7, v4, #int 1 // #01 │ │ +49a1ac: 4807 0007 |00c0: aget-byte v7, v0, v7 │ │ +49a1b0: 817e |00c2: int-to-long v14, v7 │ │ +49a1b2: c39e |00c3: shl-long/2addr v14, v9 │ │ +49a1b4: c1e5 |00c4: or-long/2addr v5, v14 │ │ +49a1b6: 4800 0004 |00c5: aget-byte v0, v0, v4 │ │ +49a1ba: 810e |00c7: int-to-long v14, v0 │ │ +49a1bc: c1e5 |00c8: or-long/2addr v5, v14 │ │ +49a1be: 531e 4d69 |00c9: iget-wide v14, v1, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ +49a1c2: c25e |00cb: xor-long/2addr v14, v5 │ │ +49a1c4: 5a1e 4d69 |00cc: iput-wide v14, v1, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ +49a1c8: 6200 4469 |00ce: sget-object v0, Lorg/purple/smokestack/SipHash;.C_ROUNDS:[I // field@6944 │ │ +49a1cc: 5214 4769 |00d0: iget v4, v1, Lorg/purple/smokestack/SipHash;.m_c_rounds_index:I // field@6947 │ │ +49a1d0: 4400 0004 |00d2: aget v0, v0, v4 │ │ +49a1d4: 3280 1200 |00d4: if-eq v0, v8, 00e6 // +0012 │ │ +49a1d8: 32d0 0300 |00d6: if-eq v0, v13, 00d9 // +0003 │ │ +49a1dc: 2814 |00d8: goto 00ec // +0014 │ │ +49a1de: 7601 26d2 1100 |00d9: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a1e4: 7601 26d2 1100 |00dc: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a1ea: 7601 26d2 1100 |00df: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a1f0: 7601 26d2 1100 |00e2: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a1f6: 2807 |00e5: goto 00ec // +0007 │ │ +49a1f8: 7601 26d2 1100 |00e6: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a1fe: 7601 26d2 1100 |00e9: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a204: 531e 4a69 |00ec: iget-wide v14, v1, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ +49a208: c2e5 |00ee: xor-long/2addr v5, v14 │ │ +49a20a: 5a15 4a69 |00ef: iput-wide v5, v1, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ +49a20e: 33a3 0800 |00f1: if-ne v3, v10, 00f9 // +0008 │ │ +49a212: 5314 4c69 |00f3: iget-wide v4, v1, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ +49a216: c2b4 |00f5: xor-long/2addr v4, v11 │ │ +49a218: 5a14 4c69 |00f6: iput-wide v4, v1, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ +49a21c: 2808 |00f8: goto 0100 // +0008 │ │ +49a21e: 5314 4c69 |00f9: iget-wide v4, v1, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ +49a222: 1606 ff00 |00fb: const-wide/16 v6, #int 255 // #ff │ │ +49a226: c264 |00fd: xor-long/2addr v4, v6 │ │ +49a228: 5a14 4c69 |00fe: iput-wide v4, v1, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ +49a22c: 6200 4569 |0100: sget-object v0, Lorg/purple/smokestack/SipHash;.D_ROUNDS:[I // field@6945 │ │ +49a230: 5214 4869 |0102: iget v4, v1, Lorg/purple/smokestack/SipHash;.m_d_rounds_index:I // field@6948 │ │ +49a234: 4404 0004 |0104: aget v4, v0, v4 │ │ +49a238: 32d4 1e00 |0106: if-eq v4, v13, 0124 // +001e │ │ +49a23c: 3294 0300 |0108: if-eq v4, v9, 010b // +0003 │ │ +49a240: 2826 |010a: goto 0130 // +0026 │ │ +49a242: 7601 26d2 1100 |010b: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a248: 7601 26d2 1100 |010e: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a24e: 7601 26d2 1100 |0111: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a254: 7601 26d2 1100 |0114: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a25a: 7601 26d2 1100 |0117: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a260: 7601 26d2 1100 |011a: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a266: 7601 26d2 1100 |011d: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a26c: 7601 26d2 1100 |0120: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a272: 280d |0123: goto 0130 // +000d │ │ +49a274: 7601 26d2 1100 |0124: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a27a: 7601 26d2 1100 |0127: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a280: 7601 26d2 1100 |012a: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a286: 7601 26d2 1100 |012d: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a28c: 2384 0f1f |0130: new-array v4, v8, [J // type@1f0f │ │ +49a290: 5315 4a69 |0132: iget-wide v5, v1, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ +49a294: 5317 4b69 |0134: iget-wide v7, v1, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ +49a298: c275 |0136: xor-long/2addr v5, v7 │ │ +49a29a: 531a 4c69 |0137: iget-wide v10, v1, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ +49a29e: c2a5 |0139: xor-long/2addr v5, v10 │ │ +49a2a0: 531a 4d69 |013a: iget-wide v10, v1, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ +49a2a4: c2a5 |013c: xor-long/2addr v5, v10 │ │ +49a2a6: 120a |013d: const/4 v10, #int 0 // #0 │ │ +49a2a8: 4c05 040a |013e: aput-wide v5, v4, v10 │ │ +49a2ac: 1212 |0140: const/4 v2, #int 1 // #1 │ │ +49a2ae: 1605 0000 |0141: const-wide/16 v5, #int 0 // #0 │ │ +49a2b2: 4c05 0402 |0143: aput-wide v5, v4, v2 │ │ +49a2b6: 3393 0c00 |0145: if-ne v3, v9, 0151 // +000c │ │ +49a2ba: 5a15 4d69 |0147: iput-wide v5, v1, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ +49a2be: 5a15 4c69 |0149: iput-wide v5, v1, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ +49a2c2: 5a15 4b69 |014b: iput-wide v5, v1, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ +49a2c6: 5a15 4a69 |014d: iput-wide v5, v1, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ +49a2ca: 1e11 |014f: monitor-exit v17 │ │ +49a2cc: 1104 |0150: return-object v4 │ │ +49a2ce: 1605 dd00 |0151: const-wide/16 v5, #int 221 // #dd │ │ +49a2d2: c275 |0153: xor-long/2addr v5, v7 │ │ +49a2d4: 5a15 4b69 |0154: iput-wide v5, v1, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ +49a2d8: 5213 4869 |0156: iget v3, v1, Lorg/purple/smokestack/SipHash;.m_d_rounds_index:I // field@6948 │ │ +49a2dc: 4400 0003 |0158: aget v0, v0, v3 │ │ +49a2e0: 32d0 1e00 |015a: if-eq v0, v13, 0178 // +001e │ │ +49a2e4: 3290 0300 |015c: if-eq v0, v9, 015f // +0003 │ │ +49a2e8: 2826 |015e: goto 0184 // +0026 │ │ +49a2ea: 7601 26d2 1100 |015f: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a2f0: 7601 26d2 1100 |0162: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a2f6: 7601 26d2 1100 |0165: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a2fc: 7601 26d2 1100 |0168: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a302: 7601 26d2 1100 |016b: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a308: 7601 26d2 1100 |016e: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a30e: 7601 26d2 1100 |0171: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a314: 7601 26d2 1100 |0174: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a31a: 280d |0177: goto 0184 // +000d │ │ +49a31c: 7601 26d2 1100 |0178: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a322: 7601 26d2 1100 |017b: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a328: 7601 26d2 1100 |017e: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a32e: 7601 26d2 1100 |0181: invoke-direct/range {v17}, Lorg/purple/smokestack/SipHash;.round:()V // method@d226 │ │ +49a334: 5315 4a69 |0184: iget-wide v5, v1, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ +49a338: 5317 4b69 |0186: iget-wide v7, v1, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ +49a33c: c275 |0188: xor-long/2addr v5, v7 │ │ +49a33e: 5317 4c69 |0189: iget-wide v7, v1, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ +49a342: c275 |018b: xor-long/2addr v5, v7 │ │ +49a344: 5317 4d69 |018c: iget-wide v7, v1, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ +49a348: c275 |018e: xor-long/2addr v5, v7 │ │ +49a34a: 1210 |018f: const/4 v0, #int 1 // #1 │ │ +49a34c: 4c05 0400 |0190: aput-wide v5, v4, v0 │ │ +49a350: 1602 0000 |0192: const-wide/16 v2, #int 0 // #0 │ │ +49a354: 5a12 4d69 |0194: iput-wide v2, v1, Lorg/purple/smokestack/SipHash;.m_v3:J // field@694d │ │ +49a358: 5a12 4c69 |0196: iput-wide v2, v1, Lorg/purple/smokestack/SipHash;.m_v2:J // field@694c │ │ +49a35c: 5a12 4b69 |0198: iput-wide v2, v1, Lorg/purple/smokestack/SipHash;.m_v1:J // field@694b │ │ +49a360: 5a12 4a69 |019a: iput-wide v2, v1, Lorg/purple/smokestack/SipHash;.m_v0:J // field@694a │ │ +49a364: 1e11 |019c: monitor-exit v17 │ │ +49a366: 1104 |019d: return-object v4 │ │ +49a368: 2380 0f1f |019e: new-array v0, v8, [J // type@1f0f │ │ +49a36c: 1203 |01a0: const/4 v3, #int 0 // #0 │ │ +49a36e: 1604 0000 |01a1: const-wide/16 v4, #int 0 // #0 │ │ +49a372: 4c04 0003 |01a3: aput-wide v4, v0, v3 │ │ +49a376: 1212 |01a5: const/4 v2, #int 1 // #1 │ │ +49a378: 4c04 0002 |01a6: aput-wide v4, v0, v2 │ │ +49a37c: 1e11 |01a8: monitor-exit v17 │ │ +49a37e: 1100 |01a9: return-object v0 │ │ +49a380: 0d00 |01aa: move-exception v0 │ │ +49a382: 1e11 |01ab: monitor-exit v17 │ │ +49a384: 2802 |01ac: goto 01ae // +0002 │ │ +49a386: 2700 |01ad: throw v0 │ │ +49a388: 28ff |01ae: goto 01ad // -0001 │ │ +49a38a: 0000 |01af: nop // spacer │ │ +49a38c: 0001 0700 0100 0000 3600 0000 2f00 ... |01b0: packed-switch-data (18 units) │ │ catches : 3 │ │ 0x000f - 0x014f │ │ -> 0x01aa │ │ 0x0154 - 0x019c │ │ -> 0x01aa │ │ 0x019e - 0x01a8 │ │ -> 0x01aa │ │ @@ -788427,34 +788426,34 @@ │ │ type : '()V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 35 16-bit code units │ │ -499e34: |[499e34] org.purple.smokestack.SipHashIdElement.:()V │ │ -499e44: 7010 ad5c 0200 |0000: invoke-direct {v2}, Ljava/lang/Object;.:()V // method@5cad │ │ -499e4a: 1a00 0000 |0003: const-string v0, "" // string@0000 │ │ -499e4e: 5b20 5369 |0005: iput-object v0, v2, Lorg/purple/smokestack/SipHashIdElement;.m_name:Ljava/lang/String; // field@6953 │ │ -499e52: 5b20 5669 |0007: iput-object v0, v2, Lorg/purple/smokestack/SipHashIdElement;.m_sipHashId:Ljava/lang/String; // field@6956 │ │ -499e56: 5b20 5869 |0009: iput-object v0, v2, Lorg/purple/smokestack/SipHashIdElement;.m_timestamp:Ljava/lang/String; // field@6958 │ │ -499e5a: 1200 |000b: const/4 v0, #int 0 // #0 │ │ -499e5c: 5c20 4e69 |000c: iput-boolean v0, v2, Lorg/purple/smokestack/SipHashIdElement;.m_acceptWithoutSignatures:Z // field@694e │ │ -499e60: 5c20 5069 |000e: iput-boolean v0, v2, Lorg/purple/smokestack/SipHashIdElement;.m_epksCompleted:Z // field@6950 │ │ -499e64: 5c20 5269 |0010: iput-boolean v0, v2, Lorg/purple/smokestack/SipHashIdElement;.m_keysSigned:Z // field@6952 │ │ -499e68: 1200 |0012: const/4 v0, #int 0 // #0 │ │ -499e6a: 5b20 4f69 |0013: iput-object v0, v2, Lorg/purple/smokestack/SipHashIdElement;.m_chatEncryptionKeyDigest:[B // field@694f │ │ -499e6e: 5b20 5769 |0015: iput-object v0, v2, Lorg/purple/smokestack/SipHashIdElement;.m_stream:[B // field@6957 │ │ -499e72: 12f0 |0017: const/4 v0, #int -1 // #ff │ │ -499e74: 5920 5469 |0018: iput v0, v2, Lorg/purple/smokestack/SipHashIdElement;.m_oid:I // field@6954 │ │ -499e78: 1600 0000 |001a: const-wide/16 v0, #int 0 // #0 │ │ -499e7c: 5a20 5169 |001c: iput-wide v0, v2, Lorg/purple/smokestack/SipHashIdElement;.m_inMessages:J // field@6951 │ │ -499e80: 5a20 5569 |001e: iput-wide v0, v2, Lorg/purple/smokestack/SipHashIdElement;.m_outMessages:J // field@6955 │ │ -499e84: 5a20 5969 |0020: iput-wide v0, v2, Lorg/purple/smokestack/SipHashIdElement;.m_totalMessages:J // field@6959 │ │ -499e88: 0e00 |0022: return-void │ │ +499e30: |[499e30] org.purple.smokestack.SipHashIdElement.:()V │ │ +499e40: 7010 ad5c 0200 |0000: invoke-direct {v2}, Ljava/lang/Object;.:()V // method@5cad │ │ +499e46: 1a00 0000 |0003: const-string v0, "" // string@0000 │ │ +499e4a: 5b20 5369 |0005: iput-object v0, v2, Lorg/purple/smokestack/SipHashIdElement;.m_name:Ljava/lang/String; // field@6953 │ │ +499e4e: 5b20 5669 |0007: iput-object v0, v2, Lorg/purple/smokestack/SipHashIdElement;.m_sipHashId:Ljava/lang/String; // field@6956 │ │ +499e52: 5b20 5869 |0009: iput-object v0, v2, Lorg/purple/smokestack/SipHashIdElement;.m_timestamp:Ljava/lang/String; // field@6958 │ │ +499e56: 1200 |000b: const/4 v0, #int 0 // #0 │ │ +499e58: 5c20 4e69 |000c: iput-boolean v0, v2, Lorg/purple/smokestack/SipHashIdElement;.m_acceptWithoutSignatures:Z // field@694e │ │ +499e5c: 5c20 5069 |000e: iput-boolean v0, v2, Lorg/purple/smokestack/SipHashIdElement;.m_epksCompleted:Z // field@6950 │ │ +499e60: 5c20 5269 |0010: iput-boolean v0, v2, Lorg/purple/smokestack/SipHashIdElement;.m_keysSigned:Z // field@6952 │ │ +499e64: 1200 |0012: const/4 v0, #int 0 // #0 │ │ +499e66: 5b20 4f69 |0013: iput-object v0, v2, Lorg/purple/smokestack/SipHashIdElement;.m_chatEncryptionKeyDigest:[B // field@694f │ │ +499e6a: 5b20 5769 |0015: iput-object v0, v2, Lorg/purple/smokestack/SipHashIdElement;.m_stream:[B // field@6957 │ │ +499e6e: 12f0 |0017: const/4 v0, #int -1 // #ff │ │ +499e70: 5920 5469 |0018: iput v0, v2, Lorg/purple/smokestack/SipHashIdElement;.m_oid:I // field@6954 │ │ +499e74: 1600 0000 |001a: const-wide/16 v0, #int 0 // #0 │ │ +499e78: 5a20 5169 |001c: iput-wide v0, v2, Lorg/purple/smokestack/SipHashIdElement;.m_inMessages:J // field@6951 │ │ +499e7c: 5a20 5569 |001e: iput-wide v0, v2, Lorg/purple/smokestack/SipHashIdElement;.m_outMessages:J // field@6955 │ │ +499e80: 5a20 5969 |0020: iput-wide v0, v2, Lorg/purple/smokestack/SipHashIdElement;.m_totalMessages:J // field@6959 │ │ +499e84: 0e00 |0022: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=46 │ │ 0x0005 line=32 │ │ 0x0007 line=33 │ │ 0x0009 line=34 │ │ 0x000c line=35 │ │ @@ -788499,32 +788498,32 @@ │ │ type : '()V' │ │ access : 0x10008 (STATIC CONSTRUCTOR) │ │ code - │ │ registers : 0 │ │ ins : 0 │ │ outs : 0 │ │ insns size : 1 16-bit code units │ │ -49a874: |[49a874] org.purple.smokestack.SmokeStack.:()V │ │ -49a884: 0e00 |0000: return-void │ │ +49a870: |[49a870] org.purple.smokestack.SmokeStack.:()V │ │ +49a880: 0e00 |0000: return-void │ │ catches : (none) │ │ positions : │ │ locals : │ │ │ │ #1 : (in Lorg/purple/smokestack/SmokeStack;) │ │ name : '' │ │ type : '()V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -49a888: |[49a888] org.purple.smokestack.SmokeStack.:()V │ │ -49a898: 7010 a400 0000 |0000: invoke-direct {v0}, Landroid/app/Application;.:()V // method@00a4 │ │ -49a89e: 0e00 |0003: return-void │ │ +49a884: |[49a884] org.purple.smokestack.SmokeStack.:()V │ │ +49a894: 7010 a400 0000 |0000: invoke-direct {v0}, Landroid/app/Application;.:()V // method@00a4 │ │ +49a89a: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=35 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lorg/purple/smokestack/SmokeStack; │ │ │ │ #2 : (in Lorg/purple/smokestack/SmokeStack;) │ │ @@ -788532,29 +788531,29 @@ │ │ type : '(Landroid/content/Context;)V' │ │ access : 0x20009 (PUBLIC STATIC DECLARED_SYNCHRONIZED) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 24 16-bit code units │ │ -49a8a0: |[49a8a0] org.purple.smokestack.SmokeStack.exit:(Landroid/content/Context;)V │ │ -49a8b0: 1c00 f31e |0000: const-class v0, Lorg/purple/smokestack/SmokeStack; // type@1ef3 │ │ -49a8b4: 1d00 |0002: monitor-enter v0 │ │ -49a8b6: 7100 2cd2 0000 |0003: invoke-static {}, Lorg/purple/smokestack/SmokeStack;.getApplication:()Lorg/purple/smokestack/SmokeStack; // method@d22c │ │ -49a8bc: 0c01 |0006: move-result-object v1 │ │ -49a8be: 7110 3cd2 0100 |0007: invoke-static {v1}, Lorg/purple/smokestack/SmokeStackService;.stopForegroundTask:(Landroid/content/Context;)V // method@d23c │ │ -49a8c4: 2021 1700 |000a: instance-of v1, v2, Landroid/app/Activity; // type@0017 │ │ -49a8c8: 3801 0700 |000c: if-eqz v1, 0013 // +0007 │ │ -49a8cc: 1f02 1700 |000e: check-cast v2, Landroid/app/Activity; // type@0017 │ │ -49a8d0: 6e10 6900 0200 |0010: invoke-virtual {v2}, Landroid/app/Activity;.finishAndRemoveTask:()V // method@0069 │ │ -49a8d6: 1e00 |0013: monitor-exit v0 │ │ -49a8d8: 0e00 |0014: return-void │ │ -49a8da: 0d02 |0015: move-exception v2 │ │ -49a8dc: 1e00 |0016: monitor-exit v0 │ │ -49a8de: 2702 |0017: throw v2 │ │ +49a89c: |[49a89c] org.purple.smokestack.SmokeStack.exit:(Landroid/content/Context;)V │ │ +49a8ac: 1c00 f31e |0000: const-class v0, Lorg/purple/smokestack/SmokeStack; // type@1ef3 │ │ +49a8b0: 1d00 |0002: monitor-enter v0 │ │ +49a8b2: 7100 2cd2 0000 |0003: invoke-static {}, Lorg/purple/smokestack/SmokeStack;.getApplication:()Lorg/purple/smokestack/SmokeStack; // method@d22c │ │ +49a8b8: 0c01 |0006: move-result-object v1 │ │ +49a8ba: 7110 3cd2 0100 |0007: invoke-static {v1}, Lorg/purple/smokestack/SmokeStackService;.stopForegroundTask:(Landroid/content/Context;)V // method@d23c │ │ +49a8c0: 2021 1700 |000a: instance-of v1, v2, Landroid/app/Activity; // type@0017 │ │ +49a8c4: 3801 0700 |000c: if-eqz v1, 0013 // +0007 │ │ +49a8c8: 1f02 1700 |000e: check-cast v2, Landroid/app/Activity; // type@0017 │ │ +49a8cc: 6e10 6900 0200 |0010: invoke-virtual {v2}, Landroid/app/Activity;.finishAndRemoveTask:()V // method@0069 │ │ +49a8d2: 1e00 |0013: monitor-exit v0 │ │ +49a8d4: 0e00 |0014: return-void │ │ +49a8d6: 0d02 |0015: move-exception v2 │ │ +49a8d8: 1e00 |0016: monitor-exit v0 │ │ +49a8da: 2702 |0017: throw v2 │ │ catches : 1 │ │ 0x0003 - 0x0013 │ │ -> 0x0015 │ │ positions : │ │ 0x0003 line=50 │ │ 0x000a line=52 │ │ 0x000e line=53 │ │ @@ -788567,23 +788566,23 @@ │ │ type : '()Lorg/purple/smokestack/SmokeStack;' │ │ access : 0x20009 (PUBLIC STATIC DECLARED_SYNCHRONIZED) │ │ code - │ │ registers : 2 │ │ ins : 0 │ │ outs : 0 │ │ insns size : 10 16-bit code units │ │ -49a844: |[49a844] org.purple.smokestack.SmokeStack.getApplication:()Lorg/purple/smokestack/SmokeStack; │ │ -49a854: 1c00 f31e |0000: const-class v0, Lorg/purple/smokestack/SmokeStack; // type@1ef3 │ │ -49a858: 1d00 |0002: monitor-enter v0 │ │ -49a85a: 6201 5a69 |0003: sget-object v1, Lorg/purple/smokestack/SmokeStack;.s_instance:Lorg/purple/smokestack/SmokeStack; // field@695a │ │ -49a85e: 1e00 |0005: monitor-exit v0 │ │ -49a860: 1101 |0006: return-object v1 │ │ -49a862: 0d01 |0007: move-exception v1 │ │ -49a864: 1e00 |0008: monitor-exit v0 │ │ -49a866: 2701 |0009: throw v1 │ │ +49a840: |[49a840] org.purple.smokestack.SmokeStack.getApplication:()Lorg/purple/smokestack/SmokeStack; │ │ +49a850: 1c00 f31e |0000: const-class v0, Lorg/purple/smokestack/SmokeStack; // type@1ef3 │ │ +49a854: 1d00 |0002: monitor-enter v0 │ │ +49a856: 6201 5a69 |0003: sget-object v1, Lorg/purple/smokestack/SmokeStack;.s_instance:Lorg/purple/smokestack/SmokeStack; // field@695a │ │ +49a85a: 1e00 |0005: monitor-exit v0 │ │ +49a85c: 1101 |0006: return-object v1 │ │ +49a85e: 0d01 |0007: move-exception v1 │ │ +49a860: 1e00 |0008: monitor-exit v0 │ │ +49a862: 2701 |0009: throw v1 │ │ catches : 1 │ │ 0x0003 - 0x0005 │ │ -> 0x0007 │ │ positions : │ │ 0x0003 line=45 │ │ locals : │ │ │ │ @@ -788593,18 +788592,18 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 6 16-bit code units │ │ -49a8ec: |[49a8ec] org.purple.smokestack.SmokeStack.onCreate:()V │ │ -49a8fc: 6f10 a600 0000 |0000: invoke-super {v0}, Landroid/app/Application;.onCreate:()V // method@00a6 │ │ -49a902: 6900 5a69 |0003: sput-object v0, Lorg/purple/smokestack/SmokeStack;.s_instance:Lorg/purple/smokestack/SmokeStack; // field@695a │ │ -49a906: 0e00 |0005: return-void │ │ +49a8e8: |[49a8e8] org.purple.smokestack.SmokeStack.onCreate:()V │ │ +49a8f8: 6f10 a600 0000 |0000: invoke-super {v0}, Landroid/app/Application;.onCreate:()V // method@00a6 │ │ +49a8fe: 6900 5a69 |0003: sput-object v0, Lorg/purple/smokestack/SmokeStack;.s_instance:Lorg/purple/smokestack/SmokeStack; // field@695a │ │ +49a902: 0e00 |0005: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=59 │ │ 0x0003 line=60 │ │ locals : │ │ 0x0000 - 0x0006 reg=0 this Lorg/purple/smokestack/SmokeStack; │ │ │ │ @@ -788613,20 +788612,20 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 11 16-bit code units │ │ -49a908: |[49a908] org.purple.smokestack.SmokeStack.onLowMemory:()V │ │ -49a918: 6f10 a700 0100 |0000: invoke-super {v1}, Landroid/app/Application;.onLowMemory:()V // method@00a7 │ │ -49a91e: 7100 02d1 0000 |0003: invoke-static {}, Lorg/purple/smokestack/Kernel;.getInstance:()Lorg/purple/smokestack/Kernel; // method@d102 │ │ -49a924: 0c00 |0006: move-result-object v0 │ │ -49a926: 6e10 ffd0 0000 |0007: invoke-virtual {v0}, Lorg/purple/smokestack/Kernel;.clearNeighborQueues:()V // method@d0ff │ │ -49a92c: 0e00 |000a: return-void │ │ +49a904: |[49a904] org.purple.smokestack.SmokeStack.onLowMemory:()V │ │ +49a914: 6f10 a700 0100 |0000: invoke-super {v1}, Landroid/app/Application;.onLowMemory:()V // method@00a7 │ │ +49a91a: 7100 02d1 0000 |0003: invoke-static {}, Lorg/purple/smokestack/Kernel;.getInstance:()Lorg/purple/smokestack/Kernel; // method@d102 │ │ +49a920: 0c00 |0006: move-result-object v0 │ │ +49a922: 6e10 ffd0 0000 |0007: invoke-virtual {v0}, Lorg/purple/smokestack/Kernel;.clearNeighborQueues:()V // method@d0ff │ │ +49a928: 0e00 |000a: return-void │ │ catches : 1 │ │ 0x0003 - 0x000a │ │ Ljava/lang/Exception; -> 0x000a │ │ positions : │ │ 0x0000 line=66 │ │ 0x0003 line=70 │ │ locals : │ │ @@ -788666,19 +788665,19 @@ │ │ type : '()V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 7 16-bit code units │ │ -49a6a8: |[49a6a8] org.purple.smokestack.SmokeStackService.:()V │ │ -49a6b8: 7010 3e01 0100 |0000: invoke-direct {v1}, Landroid/app/Service;.:()V // method@013e │ │ -49a6be: 1200 |0003: const/4 v0, #int 0 // #0 │ │ -49a6c0: 5c10 5c69 |0004: iput-boolean v0, v1, Lorg/purple/smokestack/SmokeStackService;.m_isRunning:Z // field@695c │ │ -49a6c4: 0e00 |0006: return-void │ │ +49a6a4: |[49a6a4] org.purple.smokestack.SmokeStackService.:()V │ │ +49a6b4: 7010 3e01 0100 |0000: invoke-direct {v1}, Landroid/app/Service;.:()V // method@013e │ │ +49a6ba: 1200 |0003: const/4 v0, #int 0 // #0 │ │ +49a6bc: 5c10 5c69 |0004: iput-boolean v0, v1, Lorg/purple/smokestack/SmokeStackService;.m_isRunning:Z // field@695c │ │ +49a6c0: 0e00 |0006: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=38 │ │ 0x0004 line=40 │ │ locals : │ │ 0x0000 - 0x0007 reg=1 this Lorg/purple/smokestack/SmokeStackService; │ │ │ │ @@ -788687,45 +788686,45 @@ │ │ type : '()V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 4 │ │ ins : 1 │ │ outs : 4 │ │ insns size : 61 16-bit code units │ │ -49a708: |[49a708] org.purple.smokestack.SmokeStackService.prepareNotification:()V │ │ -49a718: 5530 5c69 |0000: iget-boolean v0, v3, Lorg/purple/smokestack/SmokeStackService;.m_isRunning:Z // field@695c │ │ -49a71c: 3800 0300 |0002: if-eqz v0, 0005 // +0003 │ │ -49a720: 0e00 |0004: return-void │ │ -49a722: 1210 |0005: const/4 v0, #int 1 // #1 │ │ -49a724: 5c30 5c69 |0006: iput-boolean v0, v3, Lorg/purple/smokestack/SmokeStackService;.m_isRunning:Z // field@695c │ │ -49a728: 2200 4900 |0008: new-instance v0, Landroid/content/Intent; // type@0049 │ │ -49a72c: 1c01 f01e |000a: const-class v1, Lorg/purple/smokestack/Settings; // type@1ef0 │ │ -49a730: 7030 9f01 3001 |000c: invoke-direct {v0, v3, v1}, Landroid/content/Intent;.:(Landroid/content/Context;Ljava/lang/Class;)V // method@019f │ │ -49a736: 1201 |000f: const/4 v1, #int 0 // #0 │ │ -49a738: 7140 1401 1310 |0010: invoke-static {v3, v1, v0, v1}, Landroid/app/PendingIntent;.getActivity:(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent; // method@0114 │ │ -49a73e: 0c00 |0013: move-result-object v0 │ │ -49a740: 2201 2300 |0014: new-instance v1, Landroid/app/Notification$Builder; // type@0023 │ │ -49a744: 7020 cb00 3100 |0016: invoke-direct {v1, v3}, Landroid/app/Notification$Builder;.:(Landroid/content/Context;)V // method@00cb │ │ -49a74a: 6e20 d600 0100 |0019: invoke-virtual {v1, v0}, Landroid/app/Notification$Builder;.setContentIntent:(Landroid/app/PendingIntent;)Landroid/app/Notification$Builder; // method@00d6 │ │ -49a750: 0c00 |001c: move-result-object v0 │ │ -49a752: 1a01 7052 |001d: const-string v1, "SmokeStack Activity" // string@5270 │ │ -49a756: 6e20 d700 1000 |001f: invoke-virtual {v0, v1}, Landroid/app/Notification$Builder;.setContentText:(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder; // method@00d7 │ │ -49a75c: 0c00 |0022: move-result-object v0 │ │ -49a75e: 6e20 d800 1000 |0023: invoke-virtual {v0, v1}, Landroid/app/Notification$Builder;.setContentTitle:(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder; // method@00d8 │ │ -49a764: 0c00 |0026: move-result-object v0 │ │ -49a766: 1402 7200 077f |0027: const v2, #float 1.79448e+38 // #7f070072 │ │ -49a76c: 6e20 ed00 2000 |002a: invoke-virtual {v0, v2}, Landroid/app/Notification$Builder;.setSmallIcon:(I)Landroid/app/Notification$Builder; // method@00ed │ │ -49a772: 0c00 |002d: move-result-object v0 │ │ -49a774: 6e20 f300 1000 |002e: invoke-virtual {v0, v1}, Landroid/app/Notification$Builder;.setTicker:(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder; // method@00f3 │ │ -49a77a: 0c00 |0031: move-result-object v0 │ │ -49a77c: 6e10 cf00 0000 |0032: invoke-virtual {v0}, Landroid/app/Notification$Builder;.build:()Landroid/app/Notification; // method@00cf │ │ -49a782: 0c00 |0035: move-result-object v0 │ │ -49a784: 1401 39f5 762f |0036: const v1, #float 2.24607e-10 // #2f76f539 │ │ -49a78a: 6e30 38d2 1300 |0039: invoke-virtual {v3, v1, v0}, Lorg/purple/smokestack/SmokeStackService;.startForeground:(ILandroid/app/Notification;)V // method@d238 │ │ -49a790: 0e00 |003c: return-void │ │ +49a704: |[49a704] org.purple.smokestack.SmokeStackService.prepareNotification:()V │ │ +49a714: 5530 5c69 |0000: iget-boolean v0, v3, Lorg/purple/smokestack/SmokeStackService;.m_isRunning:Z // field@695c │ │ +49a718: 3800 0300 |0002: if-eqz v0, 0005 // +0003 │ │ +49a71c: 0e00 |0004: return-void │ │ +49a71e: 1210 |0005: const/4 v0, #int 1 // #1 │ │ +49a720: 5c30 5c69 |0006: iput-boolean v0, v3, Lorg/purple/smokestack/SmokeStackService;.m_isRunning:Z // field@695c │ │ +49a724: 2200 4900 |0008: new-instance v0, Landroid/content/Intent; // type@0049 │ │ +49a728: 1c01 f01e |000a: const-class v1, Lorg/purple/smokestack/Settings; // type@1ef0 │ │ +49a72c: 7030 9f01 3001 |000c: invoke-direct {v0, v3, v1}, Landroid/content/Intent;.:(Landroid/content/Context;Ljava/lang/Class;)V // method@019f │ │ +49a732: 1201 |000f: const/4 v1, #int 0 // #0 │ │ +49a734: 7140 1401 1310 |0010: invoke-static {v3, v1, v0, v1}, Landroid/app/PendingIntent;.getActivity:(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent; // method@0114 │ │ +49a73a: 0c00 |0013: move-result-object v0 │ │ +49a73c: 2201 2300 |0014: new-instance v1, Landroid/app/Notification$Builder; // type@0023 │ │ +49a740: 7020 cb00 3100 |0016: invoke-direct {v1, v3}, Landroid/app/Notification$Builder;.:(Landroid/content/Context;)V // method@00cb │ │ +49a746: 6e20 d600 0100 |0019: invoke-virtual {v1, v0}, Landroid/app/Notification$Builder;.setContentIntent:(Landroid/app/PendingIntent;)Landroid/app/Notification$Builder; // method@00d6 │ │ +49a74c: 0c00 |001c: move-result-object v0 │ │ +49a74e: 1a01 7052 |001d: const-string v1, "SmokeStack Activity" // string@5270 │ │ +49a752: 6e20 d700 1000 |001f: invoke-virtual {v0, v1}, Landroid/app/Notification$Builder;.setContentText:(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder; // method@00d7 │ │ +49a758: 0c00 |0022: move-result-object v0 │ │ +49a75a: 6e20 d800 1000 |0023: invoke-virtual {v0, v1}, Landroid/app/Notification$Builder;.setContentTitle:(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder; // method@00d8 │ │ +49a760: 0c00 |0026: move-result-object v0 │ │ +49a762: 1402 7200 077f |0027: const v2, #float 1.79448e+38 // #7f070072 │ │ +49a768: 6e20 ed00 2000 |002a: invoke-virtual {v0, v2}, Landroid/app/Notification$Builder;.setSmallIcon:(I)Landroid/app/Notification$Builder; // method@00ed │ │ +49a76e: 0c00 |002d: move-result-object v0 │ │ +49a770: 6e20 f300 1000 |002e: invoke-virtual {v0, v1}, Landroid/app/Notification$Builder;.setTicker:(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder; // method@00f3 │ │ +49a776: 0c00 |0031: move-result-object v0 │ │ +49a778: 6e10 cf00 0000 |0032: invoke-virtual {v0}, Landroid/app/Notification$Builder;.build:()Landroid/app/Notification; // method@00cf │ │ +49a77e: 0c00 |0035: move-result-object v0 │ │ +49a780: 1401 39f5 762f |0036: const v1, #float 2.24607e-10 // #2f76f539 │ │ +49a786: 6e30 38d2 1300 |0039: invoke-virtual {v3, v1, v0}, Lorg/purple/smokestack/SmokeStackService;.startForeground:(ILandroid/app/Notification;)V // method@d238 │ │ +49a78c: 0e00 |003c: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=45 │ │ 0x0006 line=48 │ │ 0x0008 line=50 │ │ 0x0010 line=53 │ │ 0x0014 line=55 │ │ @@ -788744,17 +788743,17 @@ │ │ type : '()V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -49a794: |[49a794] org.purple.smokestack.SmokeStackService.start:()V │ │ -49a7a4: 7010 36d2 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/SmokeStackService;.prepareNotification:()V // method@d236 │ │ -49a7aa: 0e00 |0003: return-void │ │ +49a790: |[49a790] org.purple.smokestack.SmokeStackService.start:()V │ │ +49a7a0: 7010 36d2 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/SmokeStackService;.prepareNotification:()V // method@d236 │ │ +49a7a6: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=67 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lorg/purple/smokestack/SmokeStackService; │ │ │ │ #3 : (in Lorg/purple/smokestack/SmokeStackService;) │ │ @@ -788762,24 +788761,24 @@ │ │ type : '(Landroid/content/Context;)V' │ │ access : 0x0009 (PUBLIC STATIC) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 3 │ │ insns size : 19 16-bit code units │ │ -49a7ac: |[49a7ac] org.purple.smokestack.SmokeStackService.startForegroundTask:(Landroid/content/Context;)V │ │ -49a7bc: 3902 0300 |0000: if-nez v2, 0003 // +0003 │ │ -49a7c0: 0e00 |0002: return-void │ │ -49a7c2: 2200 4900 |0003: new-instance v0, Landroid/content/Intent; // type@0049 │ │ -49a7c6: 1c01 f41e |0005: const-class v1, Lorg/purple/smokestack/SmokeStackService; // type@1ef4 │ │ -49a7ca: 7030 9f01 2001 |0007: invoke-direct {v0, v2, v1}, Landroid/content/Intent;.:(Landroid/content/Context;Ljava/lang/Class;)V // method@019f │ │ -49a7d0: 1a01 12b0 |000a: const-string v1, "start" // string@b012 │ │ -49a7d4: 6e20 c301 1000 |000c: invoke-virtual {v0, v1}, Landroid/content/Intent;.setAction:(Ljava/lang/String;)Landroid/content/Intent; // method@01c3 │ │ -49a7da: 6e20 9001 0200 |000f: invoke-virtual {v2, v0}, Landroid/content/Context;.startService:(Landroid/content/Intent;)Landroid/content/ComponentName; // method@0190 │ │ -49a7e0: 0e00 |0012: return-void │ │ +49a7a8: |[49a7a8] org.purple.smokestack.SmokeStackService.startForegroundTask:(Landroid/content/Context;)V │ │ +49a7b8: 3902 0300 |0000: if-nez v2, 0003 // +0003 │ │ +49a7bc: 0e00 |0002: return-void │ │ +49a7be: 2200 4900 |0003: new-instance v0, Landroid/content/Intent; // type@0049 │ │ +49a7c2: 1c01 f41e |0005: const-class v1, Lorg/purple/smokestack/SmokeStackService; // type@1ef4 │ │ +49a7c6: 7030 9f01 2001 |0007: invoke-direct {v0, v2, v1}, Landroid/content/Intent;.:(Landroid/content/Context;Ljava/lang/Class;)V // method@019f │ │ +49a7cc: 1a01 12b0 |000a: const-string v1, "start" // string@b012 │ │ +49a7d0: 6e20 c301 1000 |000c: invoke-virtual {v0, v1}, Landroid/content/Intent;.setAction:(Ljava/lang/String;)Landroid/content/Intent; // method@01c3 │ │ +49a7d6: 6e20 9001 0200 |000f: invoke-virtual {v2, v0}, Landroid/content/Context;.startService:(Landroid/content/Intent;)Landroid/content/ComponentName; // method@0190 │ │ +49a7dc: 0e00 |0012: return-void │ │ catches : (none) │ │ positions : │ │ 0x0003 line=114 │ │ 0x000c line=116 │ │ 0x000f line=117 │ │ locals : │ │ 0x0000 - 0x0013 reg=2 (null) Landroid/content/Context; │ │ @@ -788789,21 +788788,21 @@ │ │ type : '()V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 11 16-bit code units │ │ -49a7e4: |[49a7e4] org.purple.smokestack.SmokeStackService.stop:()V │ │ -49a7f4: 1200 |0000: const/4 v0, #int 0 // #0 │ │ -49a7f6: 5c10 5c69 |0001: iput-boolean v0, v1, Lorg/purple/smokestack/SmokeStackService;.m_isRunning:Z // field@695c │ │ -49a7fa: 1210 |0003: const/4 v0, #int 1 // #1 │ │ -49a7fc: 6e20 3bd2 0100 |0004: invoke-virtual {v1, v0}, Lorg/purple/smokestack/SmokeStackService;.stopForeground:(Z)V // method@d23b │ │ -49a802: 6e10 3dd2 0100 |0007: invoke-virtual {v1}, Lorg/purple/smokestack/SmokeStackService;.stopSelf:()V // method@d23d │ │ -49a808: 0e00 |000a: return-void │ │ +49a7e0: |[49a7e0] org.purple.smokestack.SmokeStackService.stop:()V │ │ +49a7f0: 1200 |0000: const/4 v0, #int 0 // #0 │ │ +49a7f2: 5c10 5c69 |0001: iput-boolean v0, v1, Lorg/purple/smokestack/SmokeStackService;.m_isRunning:Z // field@695c │ │ +49a7f6: 1210 |0003: const/4 v0, #int 1 // #1 │ │ +49a7f8: 6e20 3bd2 0100 |0004: invoke-virtual {v1, v0}, Lorg/purple/smokestack/SmokeStackService;.stopForeground:(Z)V // method@d23b │ │ +49a7fe: 6e10 3dd2 0100 |0007: invoke-virtual {v1}, Lorg/purple/smokestack/SmokeStackService;.stopSelf:()V // method@d23d │ │ +49a804: 0e00 |000a: return-void │ │ catches : (none) │ │ positions : │ │ 0x0001 line=72 │ │ 0x0004 line=73 │ │ 0x0007 line=74 │ │ locals : │ │ 0x0000 - 0x000b reg=1 this Lorg/purple/smokestack/SmokeStackService; │ │ @@ -788813,24 +788812,24 @@ │ │ type : '(Landroid/content/Context;)V' │ │ access : 0x0009 (PUBLIC STATIC) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 3 │ │ insns size : 19 16-bit code units │ │ -49a80c: |[49a80c] org.purple.smokestack.SmokeStackService.stopForegroundTask:(Landroid/content/Context;)V │ │ -49a81c: 3902 0300 |0000: if-nez v2, 0003 // +0003 │ │ -49a820: 0e00 |0002: return-void │ │ -49a822: 2200 4900 |0003: new-instance v0, Landroid/content/Intent; // type@0049 │ │ -49a826: 1c01 f41e |0005: const-class v1, Lorg/purple/smokestack/SmokeStackService; // type@1ef4 │ │ -49a82a: 7030 9f01 2001 |0007: invoke-direct {v0, v2, v1}, Landroid/content/Intent;.:(Landroid/content/Context;Ljava/lang/Class;)V // method@019f │ │ -49a830: 1a01 79b0 |000a: const-string v1, "stop" // string@b079 │ │ -49a834: 6e20 c301 1000 |000c: invoke-virtual {v0, v1}, Landroid/content/Intent;.setAction:(Ljava/lang/String;)Landroid/content/Intent; // method@01c3 │ │ -49a83a: 6e20 9101 0200 |000f: invoke-virtual {v2, v0}, Landroid/content/Context;.stopService:(Landroid/content/Intent;)Z // method@0191 │ │ -49a840: 0e00 |0012: return-void │ │ +49a808: |[49a808] org.purple.smokestack.SmokeStackService.stopForegroundTask:(Landroid/content/Context;)V │ │ +49a818: 3902 0300 |0000: if-nez v2, 0003 // +0003 │ │ +49a81c: 0e00 |0002: return-void │ │ +49a81e: 2200 4900 |0003: new-instance v0, Landroid/content/Intent; // type@0049 │ │ +49a822: 1c01 f41e |0005: const-class v1, Lorg/purple/smokestack/SmokeStackService; // type@1ef4 │ │ +49a826: 7030 9f01 2001 |0007: invoke-direct {v0, v2, v1}, Landroid/content/Intent;.:(Landroid/content/Context;Ljava/lang/Class;)V // method@019f │ │ +49a82c: 1a01 79b0 |000a: const-string v1, "stop" // string@b079 │ │ +49a830: 6e20 c301 1000 |000c: invoke-virtual {v0, v1}, Landroid/content/Intent;.setAction:(Ljava/lang/String;)Landroid/content/Intent; // method@01c3 │ │ +49a836: 6e20 9101 0200 |000f: invoke-virtual {v2, v0}, Landroid/content/Context;.stopService:(Landroid/content/Intent;)Z // method@0191 │ │ +49a83c: 0e00 |0012: return-void │ │ catches : (none) │ │ positions : │ │ 0x0003 line=125 │ │ 0x000c line=127 │ │ 0x000f line=128 │ │ locals : │ │ 0x0000 - 0x0013 reg=2 (null) Landroid/content/Context; │ │ @@ -788841,34 +788840,34 @@ │ │ type : '(Landroid/content/Intent;)Landroid/os/IBinder;' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 0 │ │ insns size : 2 16-bit code units │ │ -49a60c: |[49a60c] org.purple.smokestack.SmokeStackService.onBind:(Landroid/content/Intent;)Landroid/os/IBinder; │ │ -49a61c: 1201 |0000: const/4 v1, #int 0 // #0 │ │ -49a61e: 1101 |0001: return-object v1 │ │ +49a608: |[49a608] org.purple.smokestack.SmokeStackService.onBind:(Landroid/content/Intent;)Landroid/os/IBinder; │ │ +49a618: 1201 |0000: const/4 v1, #int 0 // #0 │ │ +49a61a: 1101 |0001: return-object v1 │ │ catches : (none) │ │ positions : │ │ locals : │ │ │ │ #1 : (in Lorg/purple/smokestack/SmokeStackService;) │ │ name : 'onCreate' │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 7 16-bit code units │ │ -49a6c8: |[49a6c8] org.purple.smokestack.SmokeStackService.onCreate:()V │ │ -49a6d8: 6f10 3f01 0000 |0000: invoke-super {v0}, Landroid/app/Service;.onCreate:()V // method@013f │ │ -49a6de: 7010 37d2 0000 |0003: invoke-direct {v0}, Lorg/purple/smokestack/SmokeStackService;.start:()V // method@d237 │ │ -49a6e4: 0e00 |0006: return-void │ │ +49a6c4: |[49a6c4] org.purple.smokestack.SmokeStackService.onCreate:()V │ │ +49a6d4: 6f10 3f01 0000 |0000: invoke-super {v0}, Landroid/app/Service;.onCreate:()V // method@013f │ │ +49a6da: 7010 37d2 0000 |0003: invoke-direct {v0}, Lorg/purple/smokestack/SmokeStackService;.start:()V // method@d237 │ │ +49a6e0: 0e00 |0006: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=134 │ │ 0x0003 line=135 │ │ locals : │ │ 0x0000 - 0x0007 reg=0 this Lorg/purple/smokestack/SmokeStackService; │ │ │ │ @@ -788877,19 +788876,19 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 7 16-bit code units │ │ -49a6e8: |[49a6e8] org.purple.smokestack.SmokeStackService.onDestroy:()V │ │ -49a6f8: 1200 |0000: const/4 v0, #int 0 // #0 │ │ -49a6fa: 5c10 5c69 |0001: iput-boolean v0, v1, Lorg/purple/smokestack/SmokeStackService;.m_isRunning:Z // field@695c │ │ -49a6fe: 6f10 4001 0100 |0003: invoke-super {v1}, Landroid/app/Service;.onDestroy:()V // method@0140 │ │ -49a704: 0e00 |0006: return-void │ │ +49a6e4: |[49a6e4] org.purple.smokestack.SmokeStackService.onDestroy:()V │ │ +49a6f4: 1200 |0000: const/4 v0, #int 0 // #0 │ │ +49a6f6: 5c10 5c69 |0001: iput-boolean v0, v1, Lorg/purple/smokestack/SmokeStackService;.m_isRunning:Z // field@695c │ │ +49a6fa: 6f10 4001 0100 |0003: invoke-super {v1}, Landroid/app/Service;.onDestroy:()V // method@0140 │ │ +49a700: 0e00 |0006: return-void │ │ catches : (none) │ │ positions : │ │ 0x0001 line=141 │ │ 0x0003 line=142 │ │ locals : │ │ 0x0000 - 0x0007 reg=1 this Lorg/purple/smokestack/SmokeStackService; │ │ │ │ @@ -788898,38 +788897,38 @@ │ │ type : '(Landroid/content/Intent;II)I' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 4 │ │ ins : 4 │ │ outs : 2 │ │ insns size : 43 16-bit code units │ │ -49a640: |[49a640] org.purple.smokestack.SmokeStackService.onStartCommand:(Landroid/content/Intent;II)I │ │ -49a650: 3801 2900 |0000: if-eqz v1, 0029 // +0029 │ │ -49a654: 6e10 a501 0100 |0002: invoke-virtual {v1}, Landroid/content/Intent;.getAction:()Ljava/lang/String; // method@01a5 │ │ -49a65a: 0c02 |0005: move-result-object v2 │ │ -49a65c: 3802 2300 |0006: if-eqz v2, 0029 // +0023 │ │ -49a660: 6e10 a501 0100 |0008: invoke-virtual {v1}, Landroid/content/Intent;.getAction:()Ljava/lang/String; // method@01a5 │ │ -49a666: 0c01 |000b: move-result-object v1 │ │ -49a668: 6e10 e15c 0100 |000c: invoke-virtual {v1}, Ljava/lang/String;.hashCode:()I // method@5ce1 │ │ -49a66e: 1a02 79b0 |000f: const-string v2, "stop" // string@b079 │ │ -49a672: 6e20 da5c 2100 |0011: invoke-virtual {v1, v2}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ -49a678: 0a02 |0014: move-result v2 │ │ -49a67a: 3902 0f00 |0015: if-nez v2, 0024 // +000f │ │ -49a67e: 1a02 12b0 |0017: const-string v2, "start" // string@b012 │ │ -49a682: 6e20 da5c 2100 |0019: invoke-virtual {v1, v2}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ -49a688: 0a01 |001c: move-result v1 │ │ -49a68a: 3901 0300 |001d: if-nez v1, 0020 // +0003 │ │ -49a68e: 280a |001f: goto 0029 // +000a │ │ -49a690: 7010 37d2 0000 |0020: invoke-direct {v0}, Lorg/purple/smokestack/SmokeStackService;.start:()V // method@d237 │ │ -49a696: 2806 |0023: goto 0029 // +0006 │ │ -49a698: 7010 3ad2 0000 |0024: invoke-direct {v0}, Lorg/purple/smokestack/SmokeStackService;.stop:()V // method@d23a │ │ -49a69e: 1221 |0027: const/4 v1, #int 2 // #2 │ │ -49a6a0: 0f01 |0028: return v1 │ │ -49a6a2: 1211 |0029: const/4 v1, #int 1 // #1 │ │ -49a6a4: 0f01 |002a: return v1 │ │ +49a63c: |[49a63c] org.purple.smokestack.SmokeStackService.onStartCommand:(Landroid/content/Intent;II)I │ │ +49a64c: 3801 2900 |0000: if-eqz v1, 0029 // +0029 │ │ +49a650: 6e10 a501 0100 |0002: invoke-virtual {v1}, Landroid/content/Intent;.getAction:()Ljava/lang/String; // method@01a5 │ │ +49a656: 0c02 |0005: move-result-object v2 │ │ +49a658: 3802 2300 |0006: if-eqz v2, 0029 // +0023 │ │ +49a65c: 6e10 a501 0100 |0008: invoke-virtual {v1}, Landroid/content/Intent;.getAction:()Ljava/lang/String; // method@01a5 │ │ +49a662: 0c01 |000b: move-result-object v1 │ │ +49a664: 6e10 e15c 0100 |000c: invoke-virtual {v1}, Ljava/lang/String;.hashCode:()I // method@5ce1 │ │ +49a66a: 1a02 79b0 |000f: const-string v2, "stop" // string@b079 │ │ +49a66e: 6e20 da5c 2100 |0011: invoke-virtual {v1, v2}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ +49a674: 0a02 |0014: move-result v2 │ │ +49a676: 3902 0f00 |0015: if-nez v2, 0024 // +000f │ │ +49a67a: 1a02 12b0 |0017: const-string v2, "start" // string@b012 │ │ +49a67e: 6e20 da5c 2100 |0019: invoke-virtual {v1, v2}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ +49a684: 0a01 |001c: move-result v1 │ │ +49a686: 3901 0300 |001d: if-nez v1, 0020 // +0003 │ │ +49a68a: 280a |001f: goto 0029 // +000a │ │ +49a68c: 7010 37d2 0000 |0020: invoke-direct {v0}, Lorg/purple/smokestack/SmokeStackService;.start:()V // method@d237 │ │ +49a692: 2806 |0023: goto 0029 // +0006 │ │ +49a694: 7010 3ad2 0000 |0024: invoke-direct {v0}, Lorg/purple/smokestack/SmokeStackService;.stop:()V // method@d23a │ │ +49a69a: 1221 |0027: const/4 v1, #int 2 // #2 │ │ +49a69c: 0f01 |0028: return v1 │ │ +49a69e: 1211 |0029: const/4 v1, #int 1 // #1 │ │ +49a6a0: 0f01 |002a: return v1 │ │ catches : (none) │ │ positions : │ │ 0x0002 line=93 │ │ 0x0008 line=94 │ │ 0x0020 line=97 │ │ 0x0024 line=100 │ │ locals : │ │ @@ -788943,19 +788942,19 @@ │ │ type : '(Landroid/content/Intent;)Z' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 8 16-bit code units │ │ -49a620: |[49a620] org.purple.smokestack.SmokeStackService.stopService:(Landroid/content/Intent;)Z │ │ -49a630: 7010 3ad2 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/SmokeStackService;.stop:()V // method@d23a │ │ -49a636: 6f20 4301 1000 |0003: invoke-super {v0, v1}, Landroid/app/Service;.stopService:(Landroid/content/Intent;)Z // method@0143 │ │ -49a63c: 0a01 |0006: move-result v1 │ │ -49a63e: 0f01 |0007: return v1 │ │ +49a61c: |[49a61c] org.purple.smokestack.SmokeStackService.stopService:(Landroid/content/Intent;)Z │ │ +49a62c: 7010 3ad2 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/SmokeStackService;.stop:()V // method@d23a │ │ +49a632: 6f20 4301 1000 |0003: invoke-super {v0, v1}, Landroid/app/Service;.stopService:(Landroid/content/Intent;)Z // method@0143 │ │ +49a638: 0a01 |0006: move-result v1 │ │ +49a63a: 0f01 |0007: return v1 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=86 │ │ 0x0003 line=87 │ │ locals : │ │ 0x0000 - 0x0008 reg=0 this Lorg/purple/smokestack/SmokeStackService; │ │ 0x0000 - 0x0008 reg=1 (null) Landroid/content/Intent; │ │ @@ -788997,42 +788996,42 @@ │ │ type : '()V' │ │ access : 0x10008 (STATIC CONSTRUCTOR) │ │ code - │ │ registers : 0 │ │ ins : 0 │ │ outs : 0 │ │ insns size : 1 16-bit code units │ │ -49ab50: |[49ab50] org.purple.smokestack.State.:()V │ │ -49ab60: 0e00 |0000: return-void │ │ +49ab4c: |[49ab4c] org.purple.smokestack.State.:()V │ │ +49ab5c: 0e00 |0000: return-void │ │ catches : (none) │ │ positions : │ │ locals : │ │ │ │ #1 : (in Lorg/purple/smokestack/State;) │ │ name : '' │ │ type : '()V' │ │ access : 0x10002 (PRIVATE CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 25 16-bit code units │ │ -49ab64: |[49ab64] org.purple.smokestack.State.:()V │ │ -49ab74: 7010 ad5c 0100 |0000: invoke-direct {v1}, Ljava/lang/Object;.:()V // method@5cad │ │ -49ab7a: 1200 |0003: const/4 v0, #int 0 // #0 │ │ -49ab7c: 5b10 5d69 |0004: iput-object v0, v1, Lorg/purple/smokestack/State;.m_bundle:Landroid/os/Bundle; // field@695d │ │ -49ab80: 2200 f90b |0006: new-instance v0, Ljava/util/concurrent/locks/ReentrantReadWriteLock; // type@0bf9 │ │ -49ab84: 7010 2c61 0000 |0008: invoke-direct {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.:()V // method@612c │ │ -49ab8a: 5b10 5e69 |000b: iput-object v0, v1, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ -49ab8e: 2200 d800 |000d: new-instance v0, Landroid/os/Bundle; // type@00d8 │ │ -49ab92: 7010 b004 0000 |000f: invoke-direct {v0}, Landroid/os/Bundle;.:()V // method@04b0 │ │ -49ab98: 5b10 5d69 |0012: iput-object v0, v1, Lorg/purple/smokestack/State;.m_bundle:Landroid/os/Bundle; // field@695d │ │ -49ab9c: 1200 |0014: const/4 v0, #int 0 // #0 │ │ -49ab9e: 6e20 48d2 0100 |0015: invoke-virtual {v1, v0}, Lorg/purple/smokestack/State;.setAuthenticated:(Z)V // method@d248 │ │ -49aba4: 0e00 |0018: return-void │ │ +49ab60: |[49ab60] org.purple.smokestack.State.:()V │ │ +49ab70: 7010 ad5c 0100 |0000: invoke-direct {v1}, Ljava/lang/Object;.:()V // method@5cad │ │ +49ab76: 1200 |0003: const/4 v0, #int 0 // #0 │ │ +49ab78: 5b10 5d69 |0004: iput-object v0, v1, Lorg/purple/smokestack/State;.m_bundle:Landroid/os/Bundle; // field@695d │ │ +49ab7c: 2200 f90b |0006: new-instance v0, Ljava/util/concurrent/locks/ReentrantReadWriteLock; // type@0bf9 │ │ +49ab80: 7010 2c61 0000 |0008: invoke-direct {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.:()V // method@612c │ │ +49ab86: 5b10 5e69 |000b: iput-object v0, v1, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ +49ab8a: 2200 d800 |000d: new-instance v0, Landroid/os/Bundle; // type@00d8 │ │ +49ab8e: 7010 b004 0000 |000f: invoke-direct {v0}, Landroid/os/Bundle;.:()V // method@04b0 │ │ +49ab94: 5b10 5d69 |0012: iput-object v0, v1, Lorg/purple/smokestack/State;.m_bundle:Landroid/os/Bundle; // field@695d │ │ +49ab98: 1200 |0014: const/4 v0, #int 0 // #0 │ │ +49ab9a: 6e20 48d2 0100 |0015: invoke-virtual {v1, v0}, Lorg/purple/smokestack/State;.setAuthenticated:(Z)V // method@d248 │ │ +49aba0: 0e00 |0018: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=41 │ │ 0x0004 line=35 │ │ 0x0006 line=36 │ │ 0x000d line=42 │ │ 0x0015 line=43 │ │ @@ -789044,28 +789043,28 @@ │ │ type : '()Lorg/purple/smokestack/State;' │ │ access : 0x20009 (PUBLIC STATIC DECLARED_SYNCHRONIZED) │ │ code - │ │ registers : 2 │ │ ins : 0 │ │ outs : 1 │ │ insns size : 21 16-bit code units │ │ -49ab08: |[49ab08] org.purple.smokestack.State.getInstance:()Lorg/purple/smokestack/State; │ │ -49ab18: 1c00 f51e |0000: const-class v0, Lorg/purple/smokestack/State; // type@1ef5 │ │ -49ab1c: 1d00 |0002: monitor-enter v0 │ │ -49ab1e: 6201 5f69 |0003: sget-object v1, Lorg/purple/smokestack/State;.s_instance:Lorg/purple/smokestack/State; // field@695f │ │ -49ab22: 3901 0900 |0005: if-nez v1, 000e // +0009 │ │ -49ab26: 2201 f51e |0007: new-instance v1, Lorg/purple/smokestack/State; // type@1ef5 │ │ -49ab2a: 7010 40d2 0100 |0009: invoke-direct {v1}, Lorg/purple/smokestack/State;.:()V // method@d240 │ │ -49ab30: 6901 5f69 |000c: sput-object v1, Lorg/purple/smokestack/State;.s_instance:Lorg/purple/smokestack/State; // field@695f │ │ -49ab34: 6201 5f69 |000e: sget-object v1, Lorg/purple/smokestack/State;.s_instance:Lorg/purple/smokestack/State; // field@695f │ │ -49ab38: 1e00 |0010: monitor-exit v0 │ │ -49ab3a: 1101 |0011: return-object v1 │ │ -49ab3c: 0d01 |0012: move-exception v1 │ │ -49ab3e: 1e00 |0013: monitor-exit v0 │ │ -49ab40: 2701 |0014: throw v1 │ │ +49ab04: |[49ab04] org.purple.smokestack.State.getInstance:()Lorg/purple/smokestack/State; │ │ +49ab14: 1c00 f51e |0000: const-class v0, Lorg/purple/smokestack/State; // type@1ef5 │ │ +49ab18: 1d00 |0002: monitor-enter v0 │ │ +49ab1a: 6201 5f69 |0003: sget-object v1, Lorg/purple/smokestack/State;.s_instance:Lorg/purple/smokestack/State; // field@695f │ │ +49ab1e: 3901 0900 |0005: if-nez v1, 000e // +0009 │ │ +49ab22: 2201 f51e |0007: new-instance v1, Lorg/purple/smokestack/State; // type@1ef5 │ │ +49ab26: 7010 40d2 0100 |0009: invoke-direct {v1}, Lorg/purple/smokestack/State;.:()V // method@d240 │ │ +49ab2c: 6901 5f69 |000c: sput-object v1, Lorg/purple/smokestack/State;.s_instance:Lorg/purple/smokestack/State; // field@695f │ │ +49ab30: 6201 5f69 |000e: sget-object v1, Lorg/purple/smokestack/State;.s_instance:Lorg/purple/smokestack/State; // field@695f │ │ +49ab34: 1e00 |0010: monitor-exit v0 │ │ +49ab36: 1101 |0011: return-object v1 │ │ +49ab38: 0d01 |0012: move-exception v1 │ │ +49ab3a: 1e00 |0013: monitor-exit v0 │ │ +49ab3c: 2701 |0014: throw v1 │ │ catches : 1 │ │ 0x0003 - 0x0010 │ │ -> 0x0012 │ │ positions : │ │ 0x0003 line=48 │ │ 0x0007 line=49 │ │ 0x000e line=51 │ │ @@ -789077,40 +789076,40 @@ │ │ type : '()Z' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 4 │ │ ins : 1 │ │ outs : 3 │ │ insns size : 47 16-bit code units │ │ -49a940: |[49a940] org.purple.smokestack.State.exit:()Z │ │ -49a950: 5430 5e69 |0000: iget-object v0, v3, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ -49a954: 6e10 2d61 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock; // method@612d │ │ -49a95a: 0c00 |0005: move-result-object v0 │ │ -49a95c: 6e10 2861 0000 |0006: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;.lock:()V // method@6128 │ │ -49a962: 5430 5d69 |0009: iget-object v0, v3, Lorg/purple/smokestack/State;.m_bundle:Landroid/os/Bundle; // field@695d │ │ -49a966: 1a01 3571 |000b: const-string v1, "exit" // string@7135 │ │ -49a96a: 1302 3000 |000d: const/16 v2, #int 48 // #30 │ │ -49a96e: 6e30 b904 1002 |000f: invoke-virtual {v0, v1, v2}, Landroid/os/Bundle;.getChar:(Ljava/lang/String;C)C // method@04b9 │ │ -49a974: 0a00 |0012: move-result v0 │ │ -49a976: 1301 3100 |0013: const/16 v1, #int 49 // #31 │ │ -49a97a: 3310 0400 |0015: if-ne v0, v1, 0019 // +0004 │ │ -49a97e: 1210 |0017: const/4 v0, #int 1 // #1 │ │ -49a980: 2802 |0018: goto 001a // +0002 │ │ -49a982: 1200 |0019: const/4 v0, #int 0 // #0 │ │ -49a984: 5431 5e69 |001a: iget-object v1, v3, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ -49a988: 6e10 2d61 0100 |001c: invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock; // method@612d │ │ -49a98e: 0c01 |001f: move-result-object v1 │ │ -49a990: 6e10 2961 0100 |0020: invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;.unlock:()V // method@6129 │ │ -49a996: 0f00 |0023: return v0 │ │ -49a998: 0d00 |0024: move-exception v0 │ │ -49a99a: 5431 5e69 |0025: iget-object v1, v3, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ -49a99e: 6e10 2d61 0100 |0027: invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock; // method@612d │ │ -49a9a4: 0c01 |002a: move-result-object v1 │ │ -49a9a6: 6e10 2961 0100 |002b: invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;.unlock:()V // method@6129 │ │ -49a9ac: 2700 |002e: throw v0 │ │ +49a93c: |[49a93c] org.purple.smokestack.State.exit:()Z │ │ +49a94c: 5430 5e69 |0000: iget-object v0, v3, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ +49a950: 6e10 2d61 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock; // method@612d │ │ +49a956: 0c00 |0005: move-result-object v0 │ │ +49a958: 6e10 2861 0000 |0006: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;.lock:()V // method@6128 │ │ +49a95e: 5430 5d69 |0009: iget-object v0, v3, Lorg/purple/smokestack/State;.m_bundle:Landroid/os/Bundle; // field@695d │ │ +49a962: 1a01 3571 |000b: const-string v1, "exit" // string@7135 │ │ +49a966: 1302 3000 |000d: const/16 v2, #int 48 // #30 │ │ +49a96a: 6e30 b904 1002 |000f: invoke-virtual {v0, v1, v2}, Landroid/os/Bundle;.getChar:(Ljava/lang/String;C)C // method@04b9 │ │ +49a970: 0a00 |0012: move-result v0 │ │ +49a972: 1301 3100 |0013: const/16 v1, #int 49 // #31 │ │ +49a976: 3310 0400 |0015: if-ne v0, v1, 0019 // +0004 │ │ +49a97a: 1210 |0017: const/4 v0, #int 1 // #1 │ │ +49a97c: 2802 |0018: goto 001a // +0002 │ │ +49a97e: 1200 |0019: const/4 v0, #int 0 // #0 │ │ +49a980: 5431 5e69 |001a: iget-object v1, v3, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ +49a984: 6e10 2d61 0100 |001c: invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock; // method@612d │ │ +49a98a: 0c01 |001f: move-result-object v1 │ │ +49a98c: 6e10 2961 0100 |0020: invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;.unlock:()V // method@6129 │ │ +49a992: 0f00 |0023: return v0 │ │ +49a994: 0d00 |0024: move-exception v0 │ │ +49a996: 5431 5e69 |0025: iget-object v1, v3, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ +49a99a: 6e10 2d61 0100 |0027: invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock; // method@612d │ │ +49a9a0: 0c01 |002a: move-result-object v1 │ │ +49a9a2: 6e10 2961 0100 |002b: invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;.unlock:()V // method@6129 │ │ +49a9a8: 2700 |002e: throw v0 │ │ catches : 1 │ │ 0x0009 - 0x0013 │ │ -> 0x0024 │ │ positions : │ │ 0x0000 line=98 │ │ 0x0009 line=102 │ │ 0x001a line=106 │ │ @@ -789123,34 +789122,34 @@ │ │ type : '(Ljava/lang/String;)Ljava/lang/CharSequence;' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 4 │ │ ins : 2 │ │ outs : 3 │ │ insns size : 38 16-bit code units │ │ -49aa38: |[49aa38] org.purple.smokestack.State.getCharSequence:(Ljava/lang/String;)Ljava/lang/CharSequence; │ │ -49aa48: 5420 5e69 |0000: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ -49aa4c: 6e10 2d61 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock; // method@612d │ │ -49aa52: 0c00 |0005: move-result-object v0 │ │ -49aa54: 6e10 2861 0000 |0006: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;.lock:()V // method@6128 │ │ -49aa5a: 5420 5d69 |0009: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundle:Landroid/os/Bundle; // field@695d │ │ -49aa5e: 1a01 0000 |000b: const-string v1, "" // string@0000 │ │ -49aa62: 6e30 bb04 3001 |000d: invoke-virtual {v0, v3, v1}, Landroid/os/Bundle;.getCharSequence:(Ljava/lang/String;Ljava/lang/CharSequence;)Ljava/lang/CharSequence; // method@04bb │ │ -49aa68: 0c03 |0010: move-result-object v3 │ │ -49aa6a: 5420 5e69 |0011: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ -49aa6e: 6e10 2d61 0000 |0013: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock; // method@612d │ │ -49aa74: 0c00 |0016: move-result-object v0 │ │ -49aa76: 6e10 2961 0000 |0017: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;.unlock:()V // method@6129 │ │ -49aa7c: 1103 |001a: return-object v3 │ │ -49aa7e: 0d03 |001b: move-exception v3 │ │ -49aa80: 5420 5e69 |001c: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ -49aa84: 6e10 2d61 0000 |001e: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock; // method@612d │ │ -49aa8a: 0c00 |0021: move-result-object v0 │ │ -49aa8c: 6e10 2961 0000 |0022: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;.unlock:()V // method@6129 │ │ -49aa92: 2703 |0025: throw v3 │ │ +49aa34: |[49aa34] org.purple.smokestack.State.getCharSequence:(Ljava/lang/String;)Ljava/lang/CharSequence; │ │ +49aa44: 5420 5e69 |0000: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ +49aa48: 6e10 2d61 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock; // method@612d │ │ +49aa4e: 0c00 |0005: move-result-object v0 │ │ +49aa50: 6e10 2861 0000 |0006: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;.lock:()V // method@6128 │ │ +49aa56: 5420 5d69 |0009: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundle:Landroid/os/Bundle; // field@695d │ │ +49aa5a: 1a01 0000 |000b: const-string v1, "" // string@0000 │ │ +49aa5e: 6e30 bb04 3001 |000d: invoke-virtual {v0, v3, v1}, Landroid/os/Bundle;.getCharSequence:(Ljava/lang/String;Ljava/lang/CharSequence;)Ljava/lang/CharSequence; // method@04bb │ │ +49aa64: 0c03 |0010: move-result-object v3 │ │ +49aa66: 5420 5e69 |0011: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ +49aa6a: 6e10 2d61 0000 |0013: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock; // method@612d │ │ +49aa70: 0c00 |0016: move-result-object v0 │ │ +49aa72: 6e10 2961 0000 |0017: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;.unlock:()V // method@6129 │ │ +49aa78: 1103 |001a: return-object v3 │ │ +49aa7a: 0d03 |001b: move-exception v3 │ │ +49aa7c: 5420 5e69 |001c: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ +49aa80: 6e10 2d61 0000 |001e: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock; // method@612d │ │ +49aa86: 0c00 |0021: move-result-object v0 │ │ +49aa88: 6e10 2961 0000 |0022: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;.unlock:()V // method@6129 │ │ +49aa8e: 2703 |0025: throw v3 │ │ catches : 1 │ │ 0x0009 - 0x0011 │ │ -> 0x001b │ │ positions : │ │ 0x0000 line=56 │ │ 0x0009 line=60 │ │ 0x0011 line=64 │ │ @@ -789164,34 +789163,34 @@ │ │ type : '(Ljava/lang/String;)Ljava/lang/String;' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 4 │ │ ins : 2 │ │ outs : 3 │ │ insns size : 38 16-bit code units │ │ -49aaa0: |[49aaa0] org.purple.smokestack.State.getString:(Ljava/lang/String;)Ljava/lang/String; │ │ -49aab0: 5420 5e69 |0000: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ -49aab4: 6e10 2d61 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock; // method@612d │ │ -49aaba: 0c00 |0005: move-result-object v0 │ │ -49aabc: 6e10 2861 0000 |0006: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;.lock:()V // method@6128 │ │ -49aac2: 5420 5d69 |0009: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundle:Landroid/os/Bundle; // field@695d │ │ -49aac6: 1a01 0000 |000b: const-string v1, "" // string@0000 │ │ -49aaca: 6e30 c804 3001 |000d: invoke-virtual {v0, v3, v1}, Landroid/os/Bundle;.getString:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; // method@04c8 │ │ -49aad0: 0c03 |0010: move-result-object v3 │ │ -49aad2: 5420 5e69 |0011: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ -49aad6: 6e10 2d61 0000 |0013: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock; // method@612d │ │ -49aadc: 0c00 |0016: move-result-object v0 │ │ -49aade: 6e10 2961 0000 |0017: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;.unlock:()V // method@6129 │ │ -49aae4: 1103 |001a: return-object v3 │ │ -49aae6: 0d03 |001b: move-exception v3 │ │ -49aae8: 5420 5e69 |001c: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ -49aaec: 6e10 2d61 0000 |001e: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock; // method@612d │ │ -49aaf2: 0c00 |0021: move-result-object v0 │ │ -49aaf4: 6e10 2961 0000 |0022: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;.unlock:()V // method@6129 │ │ -49aafa: 2703 |0025: throw v3 │ │ +49aa9c: |[49aa9c] org.purple.smokestack.State.getString:(Ljava/lang/String;)Ljava/lang/String; │ │ +49aaac: 5420 5e69 |0000: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ +49aab0: 6e10 2d61 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock; // method@612d │ │ +49aab6: 0c00 |0005: move-result-object v0 │ │ +49aab8: 6e10 2861 0000 |0006: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;.lock:()V // method@6128 │ │ +49aabe: 5420 5d69 |0009: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundle:Landroid/os/Bundle; // field@695d │ │ +49aac2: 1a01 0000 |000b: const-string v1, "" // string@0000 │ │ +49aac6: 6e30 c804 3001 |000d: invoke-virtual {v0, v3, v1}, Landroid/os/Bundle;.getString:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; // method@04c8 │ │ +49aacc: 0c03 |0010: move-result-object v3 │ │ +49aace: 5420 5e69 |0011: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ +49aad2: 6e10 2d61 0000 |0013: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock; // method@612d │ │ +49aad8: 0c00 |0016: move-result-object v0 │ │ +49aada: 6e10 2961 0000 |0017: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;.unlock:()V // method@6129 │ │ +49aae0: 1103 |001a: return-object v3 │ │ +49aae2: 0d03 |001b: move-exception v3 │ │ +49aae4: 5420 5e69 |001c: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ +49aae8: 6e10 2d61 0000 |001e: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock; // method@612d │ │ +49aaee: 0c00 |0021: move-result-object v0 │ │ +49aaf0: 6e10 2961 0000 |0022: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;.unlock:()V // method@6129 │ │ +49aaf6: 2703 |0025: throw v3 │ │ catches : 1 │ │ 0x0009 - 0x0011 │ │ -> 0x001b │ │ positions : │ │ 0x0000 line=70 │ │ 0x0009 line=74 │ │ 0x0011 line=78 │ │ @@ -789205,40 +789204,40 @@ │ │ type : '()Z' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 4 │ │ ins : 1 │ │ outs : 3 │ │ insns size : 47 16-bit code units │ │ -49a9bc: |[49a9bc] org.purple.smokestack.State.isAuthenticated:()Z │ │ -49a9cc: 5430 5e69 |0000: iget-object v0, v3, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ -49a9d0: 6e10 2d61 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock; // method@612d │ │ -49a9d6: 0c00 |0005: move-result-object v0 │ │ -49a9d8: 6e10 2861 0000 |0006: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;.lock:()V // method@6128 │ │ -49a9de: 5430 5d69 |0009: iget-object v0, v3, Lorg/purple/smokestack/State;.m_bundle:Landroid/os/Bundle; // field@695d │ │ -49a9e2: 1a01 6f88 |000b: const-string v1, "is_authenticated" // string@886f │ │ -49a9e6: 1302 3000 |000d: const/16 v2, #int 48 // #30 │ │ -49a9ea: 6e30 b904 1002 |000f: invoke-virtual {v0, v1, v2}, Landroid/os/Bundle;.getChar:(Ljava/lang/String;C)C // method@04b9 │ │ -49a9f0: 0a00 |0012: move-result v0 │ │ -49a9f2: 1301 3100 |0013: const/16 v1, #int 49 // #31 │ │ -49a9f6: 3310 0400 |0015: if-ne v0, v1, 0019 // +0004 │ │ -49a9fa: 1210 |0017: const/4 v0, #int 1 // #1 │ │ -49a9fc: 2802 |0018: goto 001a // +0002 │ │ -49a9fe: 1200 |0019: const/4 v0, #int 0 // #0 │ │ -49aa00: 5431 5e69 |001a: iget-object v1, v3, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ -49aa04: 6e10 2d61 0100 |001c: invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock; // method@612d │ │ -49aa0a: 0c01 |001f: move-result-object v1 │ │ -49aa0c: 6e10 2961 0100 |0020: invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;.unlock:()V // method@6129 │ │ -49aa12: 0f00 |0023: return v0 │ │ -49aa14: 0d00 |0024: move-exception v0 │ │ -49aa16: 5431 5e69 |0025: iget-object v1, v3, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ -49aa1a: 6e10 2d61 0100 |0027: invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock; // method@612d │ │ -49aa20: 0c01 |002a: move-result-object v1 │ │ -49aa22: 6e10 2961 0100 |002b: invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;.unlock:()V // method@6129 │ │ -49aa28: 2700 |002e: throw v0 │ │ +49a9b8: |[49a9b8] org.purple.smokestack.State.isAuthenticated:()Z │ │ +49a9c8: 5430 5e69 |0000: iget-object v0, v3, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ +49a9cc: 6e10 2d61 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock; // method@612d │ │ +49a9d2: 0c00 |0005: move-result-object v0 │ │ +49a9d4: 6e10 2861 0000 |0006: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;.lock:()V // method@6128 │ │ +49a9da: 5430 5d69 |0009: iget-object v0, v3, Lorg/purple/smokestack/State;.m_bundle:Landroid/os/Bundle; // field@695d │ │ +49a9de: 1a01 6f88 |000b: const-string v1, "is_authenticated" // string@886f │ │ +49a9e2: 1302 3000 |000d: const/16 v2, #int 48 // #30 │ │ +49a9e6: 6e30 b904 1002 |000f: invoke-virtual {v0, v1, v2}, Landroid/os/Bundle;.getChar:(Ljava/lang/String;C)C // method@04b9 │ │ +49a9ec: 0a00 |0012: move-result v0 │ │ +49a9ee: 1301 3100 |0013: const/16 v1, #int 49 // #31 │ │ +49a9f2: 3310 0400 |0015: if-ne v0, v1, 0019 // +0004 │ │ +49a9f6: 1210 |0017: const/4 v0, #int 1 // #1 │ │ +49a9f8: 2802 |0018: goto 001a // +0002 │ │ +49a9fa: 1200 |0019: const/4 v0, #int 0 // #0 │ │ +49a9fc: 5431 5e69 |001a: iget-object v1, v3, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ +49aa00: 6e10 2d61 0100 |001c: invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock; // method@612d │ │ +49aa06: 0c01 |001f: move-result-object v1 │ │ +49aa08: 6e10 2961 0100 |0020: invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;.unlock:()V // method@6129 │ │ +49aa0e: 0f00 |0023: return v0 │ │ +49aa10: 0d00 |0024: move-exception v0 │ │ +49aa12: 5431 5e69 |0025: iget-object v1, v3, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ +49aa16: 6e10 2d61 0100 |0027: invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock; // method@612d │ │ +49aa1c: 0c01 |002a: move-result-object v1 │ │ +49aa1e: 6e10 2961 0100 |002b: invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;.unlock:()V // method@6129 │ │ +49aa24: 2700 |002e: throw v0 │ │ catches : 1 │ │ 0x0009 - 0x0013 │ │ -> 0x0024 │ │ positions : │ │ 0x0000 line=84 │ │ 0x0009 line=88 │ │ 0x001a line=92 │ │ @@ -789251,32 +789250,32 @@ │ │ type : '(Ljava/lang/String;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 3 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 35 16-bit code units │ │ -49aba8: |[49aba8] org.purple.smokestack.State.removeKey:(Ljava/lang/String;)V │ │ -49abb8: 5410 5e69 |0000: iget-object v0, v1, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ -49abbc: 6e10 2e61 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ -49abc2: 0c00 |0005: move-result-object v0 │ │ -49abc4: 6e10 2a61 0000 |0006: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.lock:()V // method@612a │ │ -49abca: 5410 5d69 |0009: iget-object v0, v1, Lorg/purple/smokestack/State;.m_bundle:Landroid/os/Bundle; // field@695d │ │ -49abce: 6e20 dd04 2000 |000b: invoke-virtual {v0, v2}, Landroid/os/Bundle;.remove:(Ljava/lang/String;)V // method@04dd │ │ -49abd4: 5412 5e69 |000e: iget-object v2, v1, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ -49abd8: 6e10 2e61 0200 |0010: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ -49abde: 0c02 |0013: move-result-object v2 │ │ -49abe0: 6e10 2b61 0200 |0014: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.unlock:()V // method@612b │ │ -49abe6: 0e00 |0017: return-void │ │ -49abe8: 0d02 |0018: move-exception v2 │ │ -49abea: 5410 5e69 |0019: iget-object v0, v1, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ -49abee: 6e10 2e61 0000 |001b: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ -49abf4: 0c00 |001e: move-result-object v0 │ │ -49abf6: 6e10 2b61 0000 |001f: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.unlock:()V // method@612b │ │ -49abfc: 2702 |0022: throw v2 │ │ +49aba4: |[49aba4] org.purple.smokestack.State.removeKey:(Ljava/lang/String;)V │ │ +49abb4: 5410 5e69 |0000: iget-object v0, v1, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ +49abb8: 6e10 2e61 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ +49abbe: 0c00 |0005: move-result-object v0 │ │ +49abc0: 6e10 2a61 0000 |0006: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.lock:()V // method@612a │ │ +49abc6: 5410 5d69 |0009: iget-object v0, v1, Lorg/purple/smokestack/State;.m_bundle:Landroid/os/Bundle; // field@695d │ │ +49abca: 6e20 dd04 2000 |000b: invoke-virtual {v0, v2}, Landroid/os/Bundle;.remove:(Ljava/lang/String;)V // method@04dd │ │ +49abd0: 5412 5e69 |000e: iget-object v2, v1, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ +49abd4: 6e10 2e61 0200 |0010: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ +49abda: 0c02 |0013: move-result-object v2 │ │ +49abdc: 6e10 2b61 0200 |0014: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.unlock:()V // method@612b │ │ +49abe2: 0e00 |0017: return-void │ │ +49abe4: 0d02 |0018: move-exception v2 │ │ +49abe6: 5410 5e69 |0019: iget-object v0, v1, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ +49abea: 6e10 2e61 0000 |001b: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ +49abf0: 0c00 |001e: move-result-object v0 │ │ +49abf2: 6e10 2b61 0000 |001f: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.unlock:()V // method@612b │ │ +49abf8: 2702 |0022: throw v2 │ │ catches : 1 │ │ 0x0009 - 0x000e │ │ -> 0x0018 │ │ positions : │ │ 0x0000 line=112 │ │ 0x0009 line=116 │ │ 0x000e line=120 │ │ @@ -789290,32 +789289,32 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 35 16-bit code units │ │ -49ac0c: |[49ac0c] org.purple.smokestack.State.reset:()V │ │ -49ac1c: 5420 5e69 |0000: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ -49ac20: 6e10 2e61 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ -49ac26: 0c00 |0005: move-result-object v0 │ │ -49ac28: 6e10 2a61 0000 |0006: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.lock:()V // method@612a │ │ -49ac2e: 5420 5d69 |0009: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundle:Landroid/os/Bundle; // field@695d │ │ -49ac32: 6e10 b204 0000 |000b: invoke-virtual {v0}, Landroid/os/Bundle;.clear:()V // method@04b2 │ │ -49ac38: 5420 5e69 |000e: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ -49ac3c: 6e10 2e61 0000 |0010: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ -49ac42: 0c00 |0013: move-result-object v0 │ │ -49ac44: 6e10 2b61 0000 |0014: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.unlock:()V // method@612b │ │ -49ac4a: 0e00 |0017: return-void │ │ -49ac4c: 0d00 |0018: move-exception v0 │ │ -49ac4e: 5421 5e69 |0019: iget-object v1, v2, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ -49ac52: 6e10 2e61 0100 |001b: invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ -49ac58: 0c01 |001e: move-result-object v1 │ │ -49ac5a: 6e10 2b61 0100 |001f: invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.unlock:()V // method@612b │ │ -49ac60: 2700 |0022: throw v0 │ │ +49ac08: |[49ac08] org.purple.smokestack.State.reset:()V │ │ +49ac18: 5420 5e69 |0000: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ +49ac1c: 6e10 2e61 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ +49ac22: 0c00 |0005: move-result-object v0 │ │ +49ac24: 6e10 2a61 0000 |0006: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.lock:()V // method@612a │ │ +49ac2a: 5420 5d69 |0009: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundle:Landroid/os/Bundle; // field@695d │ │ +49ac2e: 6e10 b204 0000 |000b: invoke-virtual {v0}, Landroid/os/Bundle;.clear:()V // method@04b2 │ │ +49ac34: 5420 5e69 |000e: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ +49ac38: 6e10 2e61 0000 |0010: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ +49ac3e: 0c00 |0013: move-result-object v0 │ │ +49ac40: 6e10 2b61 0000 |0014: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.unlock:()V // method@612b │ │ +49ac46: 0e00 |0017: return-void │ │ +49ac48: 0d00 |0018: move-exception v0 │ │ +49ac4a: 5421 5e69 |0019: iget-object v1, v2, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ +49ac4e: 6e10 2e61 0100 |001b: invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ +49ac54: 0c01 |001e: move-result-object v1 │ │ +49ac56: 6e10 2b61 0100 |001f: invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.unlock:()V // method@612b │ │ +49ac5c: 2700 |0022: throw v0 │ │ catches : 1 │ │ 0x0009 - 0x000e │ │ -> 0x0018 │ │ positions : │ │ 0x0000 line=126 │ │ 0x0009 line=130 │ │ 0x000e line=134 │ │ @@ -789328,37 +789327,37 @@ │ │ type : '(Z)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 4 │ │ ins : 2 │ │ outs : 3 │ │ insns size : 44 16-bit code units │ │ -49ac70: |[49ac70] org.purple.smokestack.State.setAuthenticated:(Z)V │ │ -49ac80: 5420 5e69 |0000: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ -49ac84: 6e10 2e61 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ -49ac8a: 0c00 |0005: move-result-object v0 │ │ -49ac8c: 6e10 2a61 0000 |0006: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.lock:()V // method@612a │ │ -49ac92: 5420 5d69 |0009: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundle:Landroid/os/Bundle; // field@695d │ │ -49ac96: 1a01 6f88 |000b: const-string v1, "is_authenticated" // string@886f │ │ -49ac9a: 3803 0500 |000d: if-eqz v3, 0012 // +0005 │ │ -49ac9e: 1303 3100 |000f: const/16 v3, #int 49 // #31 │ │ -49aca2: 2803 |0011: goto 0014 // +0003 │ │ -49aca4: 1303 3000 |0012: const/16 v3, #int 48 // #30 │ │ -49aca8: 6e30 d004 1003 |0014: invoke-virtual {v0, v1, v3}, Landroid/os/Bundle;.putChar:(Ljava/lang/String;C)V // method@04d0 │ │ -49acae: 5423 5e69 |0017: iget-object v3, v2, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ -49acb2: 6e10 2e61 0300 |0019: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ -49acb8: 0c03 |001c: move-result-object v3 │ │ -49acba: 6e10 2b61 0300 |001d: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.unlock:()V // method@612b │ │ -49acc0: 0e00 |0020: return-void │ │ -49acc2: 0d03 |0021: move-exception v3 │ │ -49acc4: 5420 5e69 |0022: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ -49acc8: 6e10 2e61 0000 |0024: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ -49acce: 0c00 |0027: move-result-object v0 │ │ -49acd0: 6e10 2b61 0000 |0028: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.unlock:()V // method@612b │ │ -49acd6: 2703 |002b: throw v3 │ │ +49ac6c: |[49ac6c] org.purple.smokestack.State.setAuthenticated:(Z)V │ │ +49ac7c: 5420 5e69 |0000: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ +49ac80: 6e10 2e61 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ +49ac86: 0c00 |0005: move-result-object v0 │ │ +49ac88: 6e10 2a61 0000 |0006: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.lock:()V // method@612a │ │ +49ac8e: 5420 5d69 |0009: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundle:Landroid/os/Bundle; // field@695d │ │ +49ac92: 1a01 6f88 |000b: const-string v1, "is_authenticated" // string@886f │ │ +49ac96: 3803 0500 |000d: if-eqz v3, 0012 // +0005 │ │ +49ac9a: 1303 3100 |000f: const/16 v3, #int 49 // #31 │ │ +49ac9e: 2803 |0011: goto 0014 // +0003 │ │ +49aca0: 1303 3000 |0012: const/16 v3, #int 48 // #30 │ │ +49aca4: 6e30 d004 1003 |0014: invoke-virtual {v0, v1, v3}, Landroid/os/Bundle;.putChar:(Ljava/lang/String;C)V // method@04d0 │ │ +49acaa: 5423 5e69 |0017: iget-object v3, v2, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ +49acae: 6e10 2e61 0300 |0019: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ +49acb4: 0c03 |001c: move-result-object v3 │ │ +49acb6: 6e10 2b61 0300 |001d: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.unlock:()V // method@612b │ │ +49acbc: 0e00 |0020: return-void │ │ +49acbe: 0d03 |0021: move-exception v3 │ │ +49acc0: 5420 5e69 |0022: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ +49acc4: 6e10 2e61 0000 |0024: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ +49acca: 0c00 |0027: move-result-object v0 │ │ +49accc: 6e10 2b61 0000 |0028: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.unlock:()V // method@612b │ │ +49acd2: 2703 |002b: throw v3 │ │ catches : 1 │ │ 0x0009 - 0x0017 │ │ -> 0x0021 │ │ positions : │ │ 0x0000 line=140 │ │ 0x0009 line=144 │ │ 0x0017 line=148 │ │ @@ -789372,37 +789371,37 @@ │ │ type : '(Z)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 4 │ │ ins : 2 │ │ outs : 3 │ │ insns size : 44 16-bit code units │ │ -49ace4: |[49ace4] org.purple.smokestack.State.setExit:(Z)V │ │ -49acf4: 5420 5e69 |0000: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ -49acf8: 6e10 2e61 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ -49acfe: 0c00 |0005: move-result-object v0 │ │ -49ad00: 6e10 2a61 0000 |0006: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.lock:()V // method@612a │ │ -49ad06: 5420 5d69 |0009: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundle:Landroid/os/Bundle; // field@695d │ │ -49ad0a: 1a01 3571 |000b: const-string v1, "exit" // string@7135 │ │ -49ad0e: 3803 0500 |000d: if-eqz v3, 0012 // +0005 │ │ -49ad12: 1303 3100 |000f: const/16 v3, #int 49 // #31 │ │ -49ad16: 2803 |0011: goto 0014 // +0003 │ │ -49ad18: 1303 3000 |0012: const/16 v3, #int 48 // #30 │ │ -49ad1c: 6e30 d004 1003 |0014: invoke-virtual {v0, v1, v3}, Landroid/os/Bundle;.putChar:(Ljava/lang/String;C)V // method@04d0 │ │ -49ad22: 5423 5e69 |0017: iget-object v3, v2, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ -49ad26: 6e10 2e61 0300 |0019: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ -49ad2c: 0c03 |001c: move-result-object v3 │ │ -49ad2e: 6e10 2b61 0300 |001d: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.unlock:()V // method@612b │ │ -49ad34: 0e00 |0020: return-void │ │ -49ad36: 0d03 |0021: move-exception v3 │ │ -49ad38: 5420 5e69 |0022: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ -49ad3c: 6e10 2e61 0000 |0024: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ -49ad42: 0c00 |0027: move-result-object v0 │ │ -49ad44: 6e10 2b61 0000 |0028: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.unlock:()V // method@612b │ │ -49ad4a: 2703 |002b: throw v3 │ │ +49ace0: |[49ace0] org.purple.smokestack.State.setExit:(Z)V │ │ +49acf0: 5420 5e69 |0000: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ +49acf4: 6e10 2e61 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ +49acfa: 0c00 |0005: move-result-object v0 │ │ +49acfc: 6e10 2a61 0000 |0006: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.lock:()V // method@612a │ │ +49ad02: 5420 5d69 |0009: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundle:Landroid/os/Bundle; // field@695d │ │ +49ad06: 1a01 3571 |000b: const-string v1, "exit" // string@7135 │ │ +49ad0a: 3803 0500 |000d: if-eqz v3, 0012 // +0005 │ │ +49ad0e: 1303 3100 |000f: const/16 v3, #int 49 // #31 │ │ +49ad12: 2803 |0011: goto 0014 // +0003 │ │ +49ad14: 1303 3000 |0012: const/16 v3, #int 48 // #30 │ │ +49ad18: 6e30 d004 1003 |0014: invoke-virtual {v0, v1, v3}, Landroid/os/Bundle;.putChar:(Ljava/lang/String;C)V // method@04d0 │ │ +49ad1e: 5423 5e69 |0017: iget-object v3, v2, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ +49ad22: 6e10 2e61 0300 |0019: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ +49ad28: 0c03 |001c: move-result-object v3 │ │ +49ad2a: 6e10 2b61 0300 |001d: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.unlock:()V // method@612b │ │ +49ad30: 0e00 |0020: return-void │ │ +49ad32: 0d03 |0021: move-exception v3 │ │ +49ad34: 5420 5e69 |0022: iget-object v0, v2, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ +49ad38: 6e10 2e61 0000 |0024: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ +49ad3e: 0c00 |0027: move-result-object v0 │ │ +49ad40: 6e10 2b61 0000 |0028: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.unlock:()V // method@612b │ │ +49ad46: 2703 |002b: throw v3 │ │ catches : 1 │ │ 0x0009 - 0x0017 │ │ -> 0x0021 │ │ positions : │ │ 0x0000 line=154 │ │ 0x0009 line=158 │ │ 0x0017 line=162 │ │ @@ -789416,32 +789415,32 @@ │ │ type : '(Ljava/lang/String;Ljava/lang/String;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 4 │ │ ins : 3 │ │ outs : 3 │ │ insns size : 35 16-bit code units │ │ -49ad58: |[49ad58] org.purple.smokestack.State.setString:(Ljava/lang/String;Ljava/lang/String;)V │ │ -49ad68: 5410 5e69 |0000: iget-object v0, v1, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ -49ad6c: 6e10 2e61 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ -49ad72: 0c00 |0005: move-result-object v0 │ │ -49ad74: 6e10 2a61 0000 |0006: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.lock:()V // method@612a │ │ -49ad7a: 5410 5d69 |0009: iget-object v0, v1, Lorg/purple/smokestack/State;.m_bundle:Landroid/os/Bundle; // field@695d │ │ -49ad7e: 6e30 db04 2003 |000b: invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;.putString:(Ljava/lang/String;Ljava/lang/String;)V // method@04db │ │ -49ad84: 5412 5e69 |000e: iget-object v2, v1, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ -49ad88: 6e10 2e61 0200 |0010: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ -49ad8e: 0c02 |0013: move-result-object v2 │ │ -49ad90: 6e10 2b61 0200 |0014: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.unlock:()V // method@612b │ │ -49ad96: 0e00 |0017: return-void │ │ -49ad98: 0d02 |0018: move-exception v2 │ │ -49ad9a: 5413 5e69 |0019: iget-object v3, v1, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ -49ad9e: 6e10 2e61 0300 |001b: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ -49ada4: 0c03 |001e: move-result-object v3 │ │ -49ada6: 6e10 2b61 0300 |001f: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.unlock:()V // method@612b │ │ -49adac: 2702 |0022: throw v2 │ │ +49ad54: |[49ad54] org.purple.smokestack.State.setString:(Ljava/lang/String;Ljava/lang/String;)V │ │ +49ad64: 5410 5e69 |0000: iget-object v0, v1, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ +49ad68: 6e10 2e61 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ +49ad6e: 0c00 |0005: move-result-object v0 │ │ +49ad70: 6e10 2a61 0000 |0006: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.lock:()V // method@612a │ │ +49ad76: 5410 5d69 |0009: iget-object v0, v1, Lorg/purple/smokestack/State;.m_bundle:Landroid/os/Bundle; // field@695d │ │ +49ad7a: 6e30 db04 2003 |000b: invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;.putString:(Ljava/lang/String;Ljava/lang/String;)V // method@04db │ │ +49ad80: 5412 5e69 |000e: iget-object v2, v1, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ +49ad84: 6e10 2e61 0200 |0010: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ +49ad8a: 0c02 |0013: move-result-object v2 │ │ +49ad8c: 6e10 2b61 0200 |0014: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.unlock:()V // method@612b │ │ +49ad92: 0e00 |0017: return-void │ │ +49ad94: 0d02 |0018: move-exception v2 │ │ +49ad96: 5413 5e69 |0019: iget-object v3, v1, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ +49ad9a: 6e10 2e61 0300 |001b: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ +49ada0: 0c03 |001e: move-result-object v3 │ │ +49ada2: 6e10 2b61 0300 |001f: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.unlock:()V // method@612b │ │ +49ada8: 2702 |0022: throw v2 │ │ catches : 1 │ │ 0x0009 - 0x000e │ │ -> 0x0018 │ │ positions : │ │ 0x0000 line=168 │ │ 0x0009 line=172 │ │ 0x000e line=176 │ │ @@ -789456,32 +789455,32 @@ │ │ type : '(Ljava/lang/String;Ljava/lang/CharSequence;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 4 │ │ ins : 3 │ │ outs : 3 │ │ insns size : 35 16-bit code units │ │ -49adbc: |[49adbc] org.purple.smokestack.State.writeCharSequence:(Ljava/lang/String;Ljava/lang/CharSequence;)V │ │ -49adcc: 5410 5e69 |0000: iget-object v0, v1, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ -49add0: 6e10 2e61 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ -49add6: 0c00 |0005: move-result-object v0 │ │ -49add8: 6e10 2a61 0000 |0006: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.lock:()V // method@612a │ │ -49adde: 5410 5d69 |0009: iget-object v0, v1, Lorg/purple/smokestack/State;.m_bundle:Landroid/os/Bundle; // field@695d │ │ -49ade2: 6e30 d104 2003 |000b: invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;.putCharSequence:(Ljava/lang/String;Ljava/lang/CharSequence;)V // method@04d1 │ │ -49ade8: 5412 5e69 |000e: iget-object v2, v1, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ -49adec: 6e10 2e61 0200 |0010: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ -49adf2: 0c02 |0013: move-result-object v2 │ │ -49adf4: 6e10 2b61 0200 |0014: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.unlock:()V // method@612b │ │ -49adfa: 0e00 |0017: return-void │ │ -49adfc: 0d02 |0018: move-exception v2 │ │ -49adfe: 5413 5e69 |0019: iget-object v3, v1, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ -49ae02: 6e10 2e61 0300 |001b: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ -49ae08: 0c03 |001e: move-result-object v3 │ │ -49ae0a: 6e10 2b61 0300 |001f: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.unlock:()V // method@612b │ │ -49ae10: 2702 |0022: throw v2 │ │ +49adb8: |[49adb8] org.purple.smokestack.State.writeCharSequence:(Ljava/lang/String;Ljava/lang/CharSequence;)V │ │ +49adc8: 5410 5e69 |0000: iget-object v0, v1, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ +49adcc: 6e10 2e61 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ +49add2: 0c00 |0005: move-result-object v0 │ │ +49add4: 6e10 2a61 0000 |0006: invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.lock:()V // method@612a │ │ +49adda: 5410 5d69 |0009: iget-object v0, v1, Lorg/purple/smokestack/State;.m_bundle:Landroid/os/Bundle; // field@695d │ │ +49adde: 6e30 d104 2003 |000b: invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;.putCharSequence:(Ljava/lang/String;Ljava/lang/CharSequence;)V // method@04d1 │ │ +49ade4: 5412 5e69 |000e: iget-object v2, v1, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ +49ade8: 6e10 2e61 0200 |0010: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ +49adee: 0c02 |0013: move-result-object v2 │ │ +49adf0: 6e10 2b61 0200 |0014: invoke-virtual {v2}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.unlock:()V // method@612b │ │ +49adf6: 0e00 |0017: return-void │ │ +49adf8: 0d02 |0018: move-exception v2 │ │ +49adfa: 5413 5e69 |0019: iget-object v3, v1, Lorg/purple/smokestack/State;.m_bundleMutex:Ljava/util/concurrent/locks/ReentrantReadWriteLock; // field@695e │ │ +49adfe: 6e10 2e61 0300 |001b: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; // method@612e │ │ +49ae04: 0c03 |001e: move-result-object v3 │ │ +49ae06: 6e10 2b61 0300 |001f: invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;.unlock:()V // method@612b │ │ +49ae0c: 2702 |0022: throw v2 │ │ catches : 1 │ │ 0x0009 - 0x000e │ │ -> 0x0018 │ │ positions : │ │ 0x0000 line=182 │ │ 0x0009 line=186 │ │ 0x000e line=190 │ │ @@ -789526,18 +789525,18 @@ │ │ type : '(Lorg/purple/smokestack/TcpListener;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 6 16-bit code units │ │ -49ae20: |[49ae20] org.purple.smokestack.TcpListener$1.:(Lorg/purple/smokestack/TcpListener;)V │ │ -49ae30: 5b01 6069 |0000: iput-object v1, v0, Lorg/purple/smokestack/TcpListener$1;.this$0:Lorg/purple/smokestack/TcpListener; // field@6960 │ │ -49ae34: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ -49ae3a: 0e00 |0005: return-void │ │ +49ae1c: |[49ae1c] org.purple.smokestack.TcpListener$1.:(Lorg/purple/smokestack/TcpListener;)V │ │ +49ae2c: 5b01 6069 |0000: iput-object v1, v0, Lorg/purple/smokestack/TcpListener$1;.this$0:Lorg/purple/smokestack/TcpListener; // field@6960 │ │ +49ae30: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ +49ae36: 0e00 |0005: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=147 │ │ locals : │ │ 0x0000 - 0x0006 reg=0 this Lorg/purple/smokestack/TcpListener$1; │ │ 0x0000 - 0x0006 reg=1 (null) Lorg/purple/smokestack/TcpListener; │ │ │ │ @@ -789547,97 +789546,97 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 7 │ │ ins : 1 │ │ outs : 4 │ │ insns size : 148 16-bit code units │ │ -49ae3c: |[49ae3c] org.purple.smokestack.TcpListener$1.run:()V │ │ -49ae4c: 5460 6069 |0000: iget-object v0, v6, Lorg/purple/smokestack/TcpListener$1;.this$0:Lorg/purple/smokestack/TcpListener; // field@6960 │ │ -49ae50: 7110 53d2 0000 |0002: invoke-static {v0}, Lorg/purple/smokestack/TcpListener;.access$000:(Lorg/purple/smokestack/TcpListener;)V // method@d253 │ │ -49ae56: 1200 |0005: const/4 v0, #int 0 // #0 │ │ -49ae58: 5461 6069 |0006: iget-object v1, v6, Lorg/purple/smokestack/TcpListener$1;.this$0:Lorg/purple/smokestack/TcpListener; // field@6960 │ │ -49ae5c: 7110 54d2 0100 |0008: invoke-static {v1}, Lorg/purple/smokestack/TcpListener;.access$100:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/atomic/AtomicBoolean; // method@d254 │ │ -49ae62: 0c01 |000b: move-result-object v1 │ │ -49ae64: 6e10 1861 0100 |000c: invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ -49ae6a: 0a01 |000f: move-result v1 │ │ -49ae6c: 3801 7d00 |0010: if-eqz v1, 008d // +007d │ │ -49ae70: 5461 6069 |0012: iget-object v1, v6, Lorg/purple/smokestack/TcpListener$1;.this$0:Lorg/purple/smokestack/TcpListener; // field@6960 │ │ -49ae74: 7110 56d2 0100 |0014: invoke-static {v1}, Lorg/purple/smokestack/TcpListener;.access$200:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/atomic/AtomicInteger; // method@d256 │ │ -49ae7a: 0c01 |0017: move-result-object v1 │ │ -49ae7c: 6e10 1c61 0100 |0018: invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@611c │ │ -49ae82: 0a01 |001b: move-result v1 │ │ -49ae84: 5462 6069 |001c: iget-object v2, v6, Lorg/purple/smokestack/TcpListener$1;.this$0:Lorg/purple/smokestack/TcpListener; // field@6960 │ │ -49ae88: 7110 57d2 0200 |001e: invoke-static {v2}, Lorg/purple/smokestack/TcpListener;.access$300:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/ConcurrentHashMap; // method@d257 │ │ -49ae8e: 0c02 |0021: move-result-object v2 │ │ -49ae90: 6e10 f160 0200 |0022: invoke-virtual {v2}, Ljava/util/concurrent/ConcurrentHashMap;.size:()I // method@60f1 │ │ -49ae96: 0a02 |0025: move-result v2 │ │ -49ae98: 3621 0300 |0026: if-gt v1, v2, 0029 // +0003 │ │ -49ae9c: 2865 |0028: goto 008d // +0065 │ │ -49ae9e: 5461 6069 |0029: iget-object v1, v6, Lorg/purple/smokestack/TcpListener$1;.this$0:Lorg/purple/smokestack/TcpListener; // field@6960 │ │ -49aea2: 7110 58d2 0100 |002b: invoke-static {v1}, Lorg/purple/smokestack/TcpListener;.access$400:(Lorg/purple/smokestack/TcpListener;)Ljava/lang/Object; // method@d258 │ │ -49aea8: 0c01 |002e: move-result-object v1 │ │ -49aeaa: 1d01 |002f: monitor-enter v1 │ │ -49aeac: 5462 6069 |0030: iget-object v2, v6, Lorg/purple/smokestack/TcpListener$1;.this$0:Lorg/purple/smokestack/TcpListener; // field@6960 │ │ -49aeb0: 7110 59d2 0200 |0032: invoke-static {v2}, Lorg/purple/smokestack/TcpListener;.access$500:(Lorg/purple/smokestack/TcpListener;)Ljavax/net/ssl/SSLServerSocket; // method@d259 │ │ -49aeb6: 0c02 |0035: move-result-object v2 │ │ -49aeb8: 3902 0400 |0036: if-nez v2, 003a // +0004 │ │ -49aebc: 1e01 |0038: monitor-exit v1 │ │ -49aebe: 0e00 |0039: return-void │ │ -49aec0: 5462 6069 |003a: iget-object v2, v6, Lorg/purple/smokestack/TcpListener$1;.this$0:Lorg/purple/smokestack/TcpListener; // field@6960 │ │ -49aec4: 7110 59d2 0200 |003c: invoke-static {v2}, Lorg/purple/smokestack/TcpListener;.access$500:(Lorg/purple/smokestack/TcpListener;)Ljavax/net/ssl/SSLServerSocket; // method@d259 │ │ -49aeca: 0c02 |003f: move-result-object v2 │ │ -49aecc: 6e10 e761 0200 |0040: invoke-virtual {v2}, Ljavax/net/ssl/SSLServerSocket;.accept:()Ljava/net/Socket; // method@61e7 │ │ -49aed2: 0c02 |0043: move-result-object v2 │ │ -49aed4: 1f02 390c |0044: check-cast v2, Ljavax/net/ssl/SSLSocket; // type@0c39 │ │ -49aed8: 1e01 |0046: monitor-exit v1 │ │ -49aeda: 3902 0300 |0047: if-nez v2, 004a // +0003 │ │ -49aede: 0e00 |0049: return-void │ │ -49aee0: 5460 6069 |004a: iget-object v0, v6, Lorg/purple/smokestack/TcpListener$1;.this$0:Lorg/purple/smokestack/TcpListener; // field@6960 │ │ -49aee4: 7110 5ad2 0000 |004c: invoke-static {v0}, Lorg/purple/smokestack/TcpListener;.access$600:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/atomic/AtomicInteger; // method@d25a │ │ -49aeea: 0c00 |004f: move-result-object v0 │ │ -49aeec: 6e10 1e61 0000 |0050: invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;.incrementAndGet:()I // method@611e │ │ -49aef2: 0a00 |0053: move-result v0 │ │ -49aef4: 2201 ff1e |0054: new-instance v1, Lorg/purple/smokestack/TcpNeighbor; // type@1eff │ │ -49aef8: 5463 6069 |0056: iget-object v3, v6, Lorg/purple/smokestack/TcpListener$1;.this$0:Lorg/purple/smokestack/TcpListener; // field@6960 │ │ -49aefc: 7110 5bd2 0300 |0058: invoke-static {v3}, Lorg/purple/smokestack/TcpListener;.access$700:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/atomic/AtomicBoolean; // method@d25b │ │ -49af02: 0c03 |005b: move-result-object v3 │ │ -49af04: 6e10 1861 0300 |005c: invoke-virtual {v3}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ -49af0a: 0a03 |005f: move-result v3 │ │ -49af0c: 7b04 |0060: neg-int v4, v0 │ │ -49af0e: 7040 7ad2 2143 |0061: invoke-direct {v1, v2, v3, v4}, Lorg/purple/smokestack/TcpNeighbor;.:(Ljavax/net/ssl/SSLSocket;ZI)V // method@d27a │ │ -49af14: 5463 6069 |0064: iget-object v3, v6, Lorg/purple/smokestack/TcpListener$1;.this$0:Lorg/purple/smokestack/TcpListener; // field@6960 │ │ -49af18: 7110 57d2 0300 |0066: invoke-static {v3}, Lorg/purple/smokestack/TcpListener;.access$300:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/ConcurrentHashMap; // method@d257 │ │ -49af1e: 0c03 |0069: move-result-object v3 │ │ -49af20: 7110 7a5c 0000 |006a: invoke-static {v0}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@5c7a │ │ -49af26: 0c04 |006d: move-result-object v4 │ │ -49af28: 6e30 ef60 4301 |006e: invoke-virtual {v3, v4, v1}, Ljava/util/concurrent/ConcurrentHashMap;.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; // method@60ef │ │ -49af2e: 2822 |0071: goto 0093 // +0022 │ │ -49af30: 5463 6069 |0072: iget-object v3, v6, Lorg/purple/smokestack/TcpListener$1;.this$0:Lorg/purple/smokestack/TcpListener; // field@6960 │ │ -49af34: 7110 57d2 0300 |0074: invoke-static {v3}, Lorg/purple/smokestack/TcpListener;.access$300:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/ConcurrentHashMap; // method@d257 │ │ -49af3a: 0c03 |0077: move-result-object v3 │ │ -49af3c: 7110 7a5c 0000 |0078: invoke-static {v0}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@5c7a │ │ -49af42: 0c00 |007b: move-result-object v0 │ │ -49af44: 6e20 f060 0300 |007c: invoke-virtual {v3, v0}, Ljava/util/concurrent/ConcurrentHashMap;.remove:(Ljava/lang/Object;)Ljava/lang/Object; // method@60f0 │ │ -49af4a: 6e10 7bd2 0100 |007f: invoke-virtual {v1}, Lorg/purple/smokestack/TcpNeighbor;.abort:()V // method@d27b │ │ -49af50: 2811 |0082: goto 0093 // +0011 │ │ -49af52: 0720 |0083: move-object v0, v2 │ │ -49af54: 280a |0084: goto 008e // +000a │ │ -49af56: 0d00 |0085: move-exception v0 │ │ -49af58: 0725 |0086: move-object v5, v2 │ │ -49af5a: 0702 |0087: move-object v2, v0 │ │ -49af5c: 0750 |0088: move-object v0, v5 │ │ -49af5e: 2802 |0089: goto 008b // +0002 │ │ -49af60: 0d02 |008a: move-exception v2 │ │ -49af62: 1e01 |008b: monitor-exit v1 │ │ -49af64: 2702 |008c: throw v2 │ │ -49af66: 0e00 |008d: return-void │ │ -49af68: 3800 0500 |008e: if-eqz v0, 0093 // +0005 │ │ -49af6c: 6e10 f661 0000 |0090: invoke-virtual {v0}, Ljavax/net/ssl/SSLSocket;.close:()V // method@61f6 │ │ -49af72: 0e00 |0093: return-void │ │ +49ae38: |[49ae38] org.purple.smokestack.TcpListener$1.run:()V │ │ +49ae48: 5460 6069 |0000: iget-object v0, v6, Lorg/purple/smokestack/TcpListener$1;.this$0:Lorg/purple/smokestack/TcpListener; // field@6960 │ │ +49ae4c: 7110 53d2 0000 |0002: invoke-static {v0}, Lorg/purple/smokestack/TcpListener;.access$000:(Lorg/purple/smokestack/TcpListener;)V // method@d253 │ │ +49ae52: 1200 |0005: const/4 v0, #int 0 // #0 │ │ +49ae54: 5461 6069 |0006: iget-object v1, v6, Lorg/purple/smokestack/TcpListener$1;.this$0:Lorg/purple/smokestack/TcpListener; // field@6960 │ │ +49ae58: 7110 54d2 0100 |0008: invoke-static {v1}, Lorg/purple/smokestack/TcpListener;.access$100:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/atomic/AtomicBoolean; // method@d254 │ │ +49ae5e: 0c01 |000b: move-result-object v1 │ │ +49ae60: 6e10 1861 0100 |000c: invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ +49ae66: 0a01 |000f: move-result v1 │ │ +49ae68: 3801 7d00 |0010: if-eqz v1, 008d // +007d │ │ +49ae6c: 5461 6069 |0012: iget-object v1, v6, Lorg/purple/smokestack/TcpListener$1;.this$0:Lorg/purple/smokestack/TcpListener; // field@6960 │ │ +49ae70: 7110 56d2 0100 |0014: invoke-static {v1}, Lorg/purple/smokestack/TcpListener;.access$200:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/atomic/AtomicInteger; // method@d256 │ │ +49ae76: 0c01 |0017: move-result-object v1 │ │ +49ae78: 6e10 1c61 0100 |0018: invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@611c │ │ +49ae7e: 0a01 |001b: move-result v1 │ │ +49ae80: 5462 6069 |001c: iget-object v2, v6, Lorg/purple/smokestack/TcpListener$1;.this$0:Lorg/purple/smokestack/TcpListener; // field@6960 │ │ +49ae84: 7110 57d2 0200 |001e: invoke-static {v2}, Lorg/purple/smokestack/TcpListener;.access$300:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/ConcurrentHashMap; // method@d257 │ │ +49ae8a: 0c02 |0021: move-result-object v2 │ │ +49ae8c: 6e10 f160 0200 |0022: invoke-virtual {v2}, Ljava/util/concurrent/ConcurrentHashMap;.size:()I // method@60f1 │ │ +49ae92: 0a02 |0025: move-result v2 │ │ +49ae94: 3621 0300 |0026: if-gt v1, v2, 0029 // +0003 │ │ +49ae98: 2865 |0028: goto 008d // +0065 │ │ +49ae9a: 5461 6069 |0029: iget-object v1, v6, Lorg/purple/smokestack/TcpListener$1;.this$0:Lorg/purple/smokestack/TcpListener; // field@6960 │ │ +49ae9e: 7110 58d2 0100 |002b: invoke-static {v1}, Lorg/purple/smokestack/TcpListener;.access$400:(Lorg/purple/smokestack/TcpListener;)Ljava/lang/Object; // method@d258 │ │ +49aea4: 0c01 |002e: move-result-object v1 │ │ +49aea6: 1d01 |002f: monitor-enter v1 │ │ +49aea8: 5462 6069 |0030: iget-object v2, v6, Lorg/purple/smokestack/TcpListener$1;.this$0:Lorg/purple/smokestack/TcpListener; // field@6960 │ │ +49aeac: 7110 59d2 0200 |0032: invoke-static {v2}, Lorg/purple/smokestack/TcpListener;.access$500:(Lorg/purple/smokestack/TcpListener;)Ljavax/net/ssl/SSLServerSocket; // method@d259 │ │ +49aeb2: 0c02 |0035: move-result-object v2 │ │ +49aeb4: 3902 0400 |0036: if-nez v2, 003a // +0004 │ │ +49aeb8: 1e01 |0038: monitor-exit v1 │ │ +49aeba: 0e00 |0039: return-void │ │ +49aebc: 5462 6069 |003a: iget-object v2, v6, Lorg/purple/smokestack/TcpListener$1;.this$0:Lorg/purple/smokestack/TcpListener; // field@6960 │ │ +49aec0: 7110 59d2 0200 |003c: invoke-static {v2}, Lorg/purple/smokestack/TcpListener;.access$500:(Lorg/purple/smokestack/TcpListener;)Ljavax/net/ssl/SSLServerSocket; // method@d259 │ │ +49aec6: 0c02 |003f: move-result-object v2 │ │ +49aec8: 6e10 e761 0200 |0040: invoke-virtual {v2}, Ljavax/net/ssl/SSLServerSocket;.accept:()Ljava/net/Socket; // method@61e7 │ │ +49aece: 0c02 |0043: move-result-object v2 │ │ +49aed0: 1f02 390c |0044: check-cast v2, Ljavax/net/ssl/SSLSocket; // type@0c39 │ │ +49aed4: 1e01 |0046: monitor-exit v1 │ │ +49aed6: 3902 0300 |0047: if-nez v2, 004a // +0003 │ │ +49aeda: 0e00 |0049: return-void │ │ +49aedc: 5460 6069 |004a: iget-object v0, v6, Lorg/purple/smokestack/TcpListener$1;.this$0:Lorg/purple/smokestack/TcpListener; // field@6960 │ │ +49aee0: 7110 5ad2 0000 |004c: invoke-static {v0}, Lorg/purple/smokestack/TcpListener;.access$600:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/atomic/AtomicInteger; // method@d25a │ │ +49aee6: 0c00 |004f: move-result-object v0 │ │ +49aee8: 6e10 1e61 0000 |0050: invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;.incrementAndGet:()I // method@611e │ │ +49aeee: 0a00 |0053: move-result v0 │ │ +49aef0: 2201 ff1e |0054: new-instance v1, Lorg/purple/smokestack/TcpNeighbor; // type@1eff │ │ +49aef4: 5463 6069 |0056: iget-object v3, v6, Lorg/purple/smokestack/TcpListener$1;.this$0:Lorg/purple/smokestack/TcpListener; // field@6960 │ │ +49aef8: 7110 5bd2 0300 |0058: invoke-static {v3}, Lorg/purple/smokestack/TcpListener;.access$700:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/atomic/AtomicBoolean; // method@d25b │ │ +49aefe: 0c03 |005b: move-result-object v3 │ │ +49af00: 6e10 1861 0300 |005c: invoke-virtual {v3}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ +49af06: 0a03 |005f: move-result v3 │ │ +49af08: 7b04 |0060: neg-int v4, v0 │ │ +49af0a: 7040 7ad2 2143 |0061: invoke-direct {v1, v2, v3, v4}, Lorg/purple/smokestack/TcpNeighbor;.:(Ljavax/net/ssl/SSLSocket;ZI)V // method@d27a │ │ +49af10: 5463 6069 |0064: iget-object v3, v6, Lorg/purple/smokestack/TcpListener$1;.this$0:Lorg/purple/smokestack/TcpListener; // field@6960 │ │ +49af14: 7110 57d2 0300 |0066: invoke-static {v3}, Lorg/purple/smokestack/TcpListener;.access$300:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/ConcurrentHashMap; // method@d257 │ │ +49af1a: 0c03 |0069: move-result-object v3 │ │ +49af1c: 7110 7a5c 0000 |006a: invoke-static {v0}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@5c7a │ │ +49af22: 0c04 |006d: move-result-object v4 │ │ +49af24: 6e30 ef60 4301 |006e: invoke-virtual {v3, v4, v1}, Ljava/util/concurrent/ConcurrentHashMap;.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; // method@60ef │ │ +49af2a: 2822 |0071: goto 0093 // +0022 │ │ +49af2c: 5463 6069 |0072: iget-object v3, v6, Lorg/purple/smokestack/TcpListener$1;.this$0:Lorg/purple/smokestack/TcpListener; // field@6960 │ │ +49af30: 7110 57d2 0300 |0074: invoke-static {v3}, Lorg/purple/smokestack/TcpListener;.access$300:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/ConcurrentHashMap; // method@d257 │ │ +49af36: 0c03 |0077: move-result-object v3 │ │ +49af38: 7110 7a5c 0000 |0078: invoke-static {v0}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@5c7a │ │ +49af3e: 0c00 |007b: move-result-object v0 │ │ +49af40: 6e20 f060 0300 |007c: invoke-virtual {v3, v0}, Ljava/util/concurrent/ConcurrentHashMap;.remove:(Ljava/lang/Object;)Ljava/lang/Object; // method@60f0 │ │ +49af46: 6e10 7bd2 0100 |007f: invoke-virtual {v1}, Lorg/purple/smokestack/TcpNeighbor;.abort:()V // method@d27b │ │ +49af4c: 2811 |0082: goto 0093 // +0011 │ │ +49af4e: 0720 |0083: move-object v0, v2 │ │ +49af50: 280a |0084: goto 008e // +000a │ │ +49af52: 0d00 |0085: move-exception v0 │ │ +49af54: 0725 |0086: move-object v5, v2 │ │ +49af56: 0702 |0087: move-object v2, v0 │ │ +49af58: 0750 |0088: move-object v0, v5 │ │ +49af5a: 2802 |0089: goto 008b // +0002 │ │ +49af5c: 0d02 |008a: move-exception v2 │ │ +49af5e: 1e01 |008b: monitor-exit v1 │ │ +49af60: 2702 |008c: throw v2 │ │ +49af62: 0e00 |008d: return-void │ │ +49af64: 3800 0500 |008e: if-eqz v0, 0093 // +0005 │ │ +49af68: 6e10 f661 0000 |0090: invoke-virtual {v0}, Ljavax/net/ssl/SSLSocket;.close:()V // method@61f6 │ │ +49af6e: 0e00 |0093: return-void │ │ catches : 10 │ │ 0x0000 - 0x0005 │ │ Ljava/lang/Exception; -> 0x0005 │ │ 0x0006 - 0x0030 │ │ Ljava/lang/Exception; -> 0x008e │ │ 0x0030 - 0x0046 │ │ -> 0x008a │ │ @@ -789710,18 +789709,18 @@ │ │ type : '(Lorg/purple/smokestack/TcpListener;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 6 16-bit code units │ │ -49afe4: |[49afe4] org.purple.smokestack.TcpListener$2.:(Lorg/purple/smokestack/TcpListener;)V │ │ -49aff4: 5b01 6169 |0000: iput-object v1, v0, Lorg/purple/smokestack/TcpListener$2;.this$0:Lorg/purple/smokestack/TcpListener; // field@6961 │ │ -49aff8: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ -49affe: 0e00 |0005: return-void │ │ +49afe0: |[49afe0] org.purple.smokestack.TcpListener$2.:(Lorg/purple/smokestack/TcpListener;)V │ │ +49aff0: 5b01 6169 |0000: iput-object v1, v0, Lorg/purple/smokestack/TcpListener$2;.this$0:Lorg/purple/smokestack/TcpListener; // field@6961 │ │ +49aff4: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ +49affa: 0e00 |0005: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=209 │ │ locals : │ │ 0x0000 - 0x0006 reg=0 this Lorg/purple/smokestack/TcpListener$2; │ │ 0x0000 - 0x0006 reg=1 (null) Lorg/purple/smokestack/TcpListener; │ │ │ │ @@ -789731,103 +789730,103 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 6 │ │ ins : 1 │ │ outs : 4 │ │ insns size : 174 16-bit code units │ │ -49b000: |[49b000] org.purple.smokestack.TcpListener$2.run:()V │ │ -49b010: 5450 6169 |0000: iget-object v0, v5, Lorg/purple/smokestack/TcpListener$2;.this$0:Lorg/purple/smokestack/TcpListener; // field@6961 │ │ -49b014: 7110 55d2 0000 |0002: invoke-static {v0}, Lorg/purple/smokestack/TcpListener;.access$1000:(Lorg/purple/smokestack/TcpListener;)Lorg/purple/smokestack/Database; // method@d255 │ │ -49b01a: 0c00 |0005: move-result-object v0 │ │ -49b01c: 5451 6169 |0006: iget-object v1, v5, Lorg/purple/smokestack/TcpListener$2;.this$0:Lorg/purple/smokestack/TcpListener; // field@6961 │ │ -49b020: 7110 5cd2 0100 |0008: invoke-static {v1}, Lorg/purple/smokestack/TcpListener;.access$800:(Lorg/purple/smokestack/TcpListener;)Lorg/purple/smokestack/Cryptography; // method@d25c │ │ -49b026: 0c01 |000b: move-result-object v1 │ │ -49b028: 1a02 658a |000c: const-string v2, "listeners" // string@8a65 │ │ -49b02c: 5453 6169 |000e: iget-object v3, v5, Lorg/purple/smokestack/TcpListener$2;.this$0:Lorg/purple/smokestack/TcpListener; // field@6961 │ │ -49b030: 7110 5dd2 0300 |0010: invoke-static {v3}, Lorg/purple/smokestack/TcpListener;.access$900:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/atomic/AtomicInteger; // method@d25d │ │ -49b036: 0c03 |0013: move-result-object v3 │ │ -49b038: 6e10 1c61 0300 |0014: invoke-virtual {v3}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@611c │ │ -49b03e: 0a03 |0017: move-result v3 │ │ -49b040: 6e40 c3d0 1032 |0018: invoke-virtual {v0, v1, v2, v3}, Lorg/purple/smokestack/Database;.readListenerNeighborStatusControl:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;I)Ljava/lang/String; // method@d0c3 │ │ -49b046: 0c00 |001b: move-result-object v0 │ │ -49b048: 12f1 |001c: const/4 v1, #int -1 // #ff │ │ -49b04a: 6e10 e15c 0000 |001d: invoke-virtual {v0}, Ljava/lang/String;.hashCode:()I // method@5ce1 │ │ -49b050: 0a02 |0020: move-result v2 │ │ -49b052: 1403 c70d 49be |0021: const v3, #float -0.196342 // #be490dc7 │ │ -49b058: 1214 |0024: const/4 v4, #int 1 // #1 │ │ -49b05a: 3232 1200 |0025: if-eq v2, v3, 0037 // +0012 │ │ -49b05e: 1403 9c58 9d1f |0027: const v3, #float 6.66387e-20 // #1f9d589c │ │ -49b064: 3232 0300 |002a: if-eq v2, v3, 002d // +0003 │ │ -49b068: 2814 |002c: goto 0040 // +0014 │ │ -49b06a: 1a02 4f6d |002d: const-string v2, "disconnect" // string@6d4f │ │ -49b06e: 6e20 da5c 2000 |002f: invoke-virtual {v0, v2}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ -49b074: 0a00 |0032: move-result v0 │ │ -49b076: 3800 0d00 |0033: if-eqz v0, 0040 // +000d │ │ -49b07a: 1201 |0035: const/4 v1, #int 0 // #0 │ │ -49b07c: 280a |0036: goto 0040 // +000a │ │ -49b07e: 1a02 628a |0037: const-string v2, "listen" // string@8a62 │ │ -49b082: 6e20 da5c 2000 |0039: invoke-virtual {v0, v2}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ -49b088: 0a00 |003c: move-result v0 │ │ -49b08a: 3800 0300 |003d: if-eqz v0, 0040 // +0003 │ │ -49b08e: 1211 |003f: const/4 v1, #int 1 // #1 │ │ -49b090: 3801 1e00 |0040: if-eqz v1, 005e // +001e │ │ -49b094: 3241 0800 |0042: if-eq v1, v4, 004a // +0008 │ │ -49b098: 5450 6169 |0044: iget-object v0, v5, Lorg/purple/smokestack/TcpListener$2;.this$0:Lorg/purple/smokestack/TcpListener; // field@6961 │ │ -49b09c: 6e10 60d2 0000 |0046: invoke-virtual {v0}, Lorg/purple/smokestack/TcpListener;.disconnect:()V // method@d260 │ │ -49b0a2: 0e00 |0049: return-void │ │ -49b0a4: 5450 6169 |004a: iget-object v0, v5, Lorg/purple/smokestack/TcpListener$2;.this$0:Lorg/purple/smokestack/TcpListener; // field@6961 │ │ -49b0a8: 6e10 61d2 0000 |004c: invoke-virtual {v0}, Lorg/purple/smokestack/TcpListener;.isNetworkConnected:()Z // method@d261 │ │ -49b0ae: 0a00 |004f: move-result v0 │ │ -49b0b0: 3800 0800 |0050: if-eqz v0, 0058 // +0008 │ │ -49b0b4: 5450 6169 |0052: iget-object v0, v5, Lorg/purple/smokestack/TcpListener$2;.this$0:Lorg/purple/smokestack/TcpListener; // field@6961 │ │ -49b0b8: 6e10 62d2 0000 |0054: invoke-virtual {v0}, Lorg/purple/smokestack/TcpListener;.listen:()V // method@d262 │ │ -49b0be: 280c |0057: goto 0063 // +000c │ │ -49b0c0: 5450 6169 |0058: iget-object v0, v5, Lorg/purple/smokestack/TcpListener$2;.this$0:Lorg/purple/smokestack/TcpListener; // field@6961 │ │ -49b0c4: 6e10 60d2 0000 |005a: invoke-virtual {v0}, Lorg/purple/smokestack/TcpListener;.disconnect:()V // method@d260 │ │ -49b0ca: 2806 |005d: goto 0063 // +0006 │ │ -49b0cc: 5450 6169 |005e: iget-object v0, v5, Lorg/purple/smokestack/TcpListener$2;.this$0:Lorg/purple/smokestack/TcpListener; // field@6961 │ │ -49b0d0: 6e10 60d2 0000 |0060: invoke-virtual {v0}, Lorg/purple/smokestack/TcpListener;.disconnect:()V // method@d260 │ │ -49b0d6: 5450 6169 |0063: iget-object v0, v5, Lorg/purple/smokestack/TcpListener$2;.this$0:Lorg/purple/smokestack/TcpListener; // field@6961 │ │ -49b0da: 7110 57d2 0000 |0065: invoke-static {v0}, Lorg/purple/smokestack/TcpListener;.access$300:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/ConcurrentHashMap; // method@d257 │ │ -49b0e0: 0c00 |0068: move-result-object v0 │ │ -49b0e2: 6e10 ee60 0000 |0069: invoke-virtual {v0}, Ljava/util/concurrent/ConcurrentHashMap;.keySet:()Ljava/util/Set; // method@60ee │ │ -49b0e8: 0c00 |006c: move-result-object v0 │ │ -49b0ea: 7210 b060 0000 |006d: invoke-interface {v0}, Ljava/util/Set;.iterator:()Ljava/util/Iterator; // method@60b0 │ │ -49b0f0: 0c00 |0070: move-result-object v0 │ │ -49b0f2: 7210 4f60 0000 |0071: invoke-interface {v0}, Ljava/util/Iterator;.hasNext:()Z // method@604f │ │ -49b0f8: 0a01 |0074: move-result v1 │ │ -49b0fa: 3801 3300 |0075: if-eqz v1, 00a8 // +0033 │ │ -49b0fe: 7210 5060 0000 |0077: invoke-interface {v0}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@6050 │ │ -49b104: 0c01 |007a: move-result-object v1 │ │ -49b106: 1f01 e40a |007b: check-cast v1, Ljava/lang/Integer; // type@0ae4 │ │ -49b10a: 5452 6169 |007d: iget-object v2, v5, Lorg/purple/smokestack/TcpListener$2;.this$0:Lorg/purple/smokestack/TcpListener; // field@6961 │ │ -49b10e: 7110 57d2 0200 |007f: invoke-static {v2}, Lorg/purple/smokestack/TcpListener;.access$300:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/ConcurrentHashMap; // method@d257 │ │ -49b114: 0c02 |0082: move-result-object v2 │ │ -49b116: 6e20 ed60 1200 |0083: invoke-virtual {v2, v1}, Ljava/util/concurrent/ConcurrentHashMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@60ed │ │ -49b11c: 0c02 |0086: move-result-object v2 │ │ -49b11e: 1f02 ff1e |0087: check-cast v2, Lorg/purple/smokestack/TcpNeighbor; // type@1eff │ │ -49b122: 3902 0c00 |0089: if-nez v2, 0095 // +000c │ │ -49b126: 5452 6169 |008b: iget-object v2, v5, Lorg/purple/smokestack/TcpListener$2;.this$0:Lorg/purple/smokestack/TcpListener; // field@6961 │ │ -49b12a: 7110 57d2 0200 |008d: invoke-static {v2}, Lorg/purple/smokestack/TcpListener;.access$300:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/ConcurrentHashMap; // method@d257 │ │ -49b130: 0c02 |0090: move-result-object v2 │ │ -49b132: 6e20 f060 1200 |0091: invoke-virtual {v2, v1}, Ljava/util/concurrent/ConcurrentHashMap;.remove:(Ljava/lang/Object;)Ljava/lang/Object; // method@60f0 │ │ -49b138: 28dd |0094: goto 0071 // -0023 │ │ -49b13a: 6e10 82d2 0200 |0095: invoke-virtual {v2}, Lorg/purple/smokestack/TcpNeighbor;.connected:()Z // method@d282 │ │ -49b140: 0a03 |0098: move-result v3 │ │ -49b142: 3903 d8ff |0099: if-nez v3, 0071 // -0028 │ │ -49b146: 5453 6169 |009b: iget-object v3, v5, Lorg/purple/smokestack/TcpListener$2;.this$0:Lorg/purple/smokestack/TcpListener; // field@6961 │ │ -49b14a: 7110 57d2 0300 |009d: invoke-static {v3}, Lorg/purple/smokestack/TcpListener;.access$300:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/ConcurrentHashMap; // method@d257 │ │ -49b150: 0c03 |00a0: move-result-object v3 │ │ -49b152: 6e20 f060 1300 |00a1: invoke-virtual {v3, v1}, Ljava/util/concurrent/ConcurrentHashMap;.remove:(Ljava/lang/Object;)Ljava/lang/Object; // method@60f0 │ │ -49b158: 6e10 7bd2 0200 |00a4: invoke-virtual {v2}, Lorg/purple/smokestack/TcpNeighbor;.abort:()V // method@d27b │ │ -49b15e: 28ca |00a7: goto 0071 // -0036 │ │ -49b160: 5450 6169 |00a8: iget-object v0, v5, Lorg/purple/smokestack/TcpListener$2;.this$0:Lorg/purple/smokestack/TcpListener; // field@6961 │ │ -49b164: 7110 53d2 0000 |00aa: invoke-static {v0}, Lorg/purple/smokestack/TcpListener;.access$000:(Lorg/purple/smokestack/TcpListener;)V // method@d253 │ │ -49b16a: 0e00 |00ad: return-void │ │ +49affc: |[49affc] org.purple.smokestack.TcpListener$2.run:()V │ │ +49b00c: 5450 6169 |0000: iget-object v0, v5, Lorg/purple/smokestack/TcpListener$2;.this$0:Lorg/purple/smokestack/TcpListener; // field@6961 │ │ +49b010: 7110 55d2 0000 |0002: invoke-static {v0}, Lorg/purple/smokestack/TcpListener;.access$1000:(Lorg/purple/smokestack/TcpListener;)Lorg/purple/smokestack/Database; // method@d255 │ │ +49b016: 0c00 |0005: move-result-object v0 │ │ +49b018: 5451 6169 |0006: iget-object v1, v5, Lorg/purple/smokestack/TcpListener$2;.this$0:Lorg/purple/smokestack/TcpListener; // field@6961 │ │ +49b01c: 7110 5cd2 0100 |0008: invoke-static {v1}, Lorg/purple/smokestack/TcpListener;.access$800:(Lorg/purple/smokestack/TcpListener;)Lorg/purple/smokestack/Cryptography; // method@d25c │ │ +49b022: 0c01 |000b: move-result-object v1 │ │ +49b024: 1a02 658a |000c: const-string v2, "listeners" // string@8a65 │ │ +49b028: 5453 6169 |000e: iget-object v3, v5, Lorg/purple/smokestack/TcpListener$2;.this$0:Lorg/purple/smokestack/TcpListener; // field@6961 │ │ +49b02c: 7110 5dd2 0300 |0010: invoke-static {v3}, Lorg/purple/smokestack/TcpListener;.access$900:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/atomic/AtomicInteger; // method@d25d │ │ +49b032: 0c03 |0013: move-result-object v3 │ │ +49b034: 6e10 1c61 0300 |0014: invoke-virtual {v3}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@611c │ │ +49b03a: 0a03 |0017: move-result v3 │ │ +49b03c: 6e40 c3d0 1032 |0018: invoke-virtual {v0, v1, v2, v3}, Lorg/purple/smokestack/Database;.readListenerNeighborStatusControl:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;I)Ljava/lang/String; // method@d0c3 │ │ +49b042: 0c00 |001b: move-result-object v0 │ │ +49b044: 12f1 |001c: const/4 v1, #int -1 // #ff │ │ +49b046: 6e10 e15c 0000 |001d: invoke-virtual {v0}, Ljava/lang/String;.hashCode:()I // method@5ce1 │ │ +49b04c: 0a02 |0020: move-result v2 │ │ +49b04e: 1403 c70d 49be |0021: const v3, #float -0.196342 // #be490dc7 │ │ +49b054: 1214 |0024: const/4 v4, #int 1 // #1 │ │ +49b056: 3232 1200 |0025: if-eq v2, v3, 0037 // +0012 │ │ +49b05a: 1403 9c58 9d1f |0027: const v3, #float 6.66387e-20 // #1f9d589c │ │ +49b060: 3232 0300 |002a: if-eq v2, v3, 002d // +0003 │ │ +49b064: 2814 |002c: goto 0040 // +0014 │ │ +49b066: 1a02 4f6d |002d: const-string v2, "disconnect" // string@6d4f │ │ +49b06a: 6e20 da5c 2000 |002f: invoke-virtual {v0, v2}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ +49b070: 0a00 |0032: move-result v0 │ │ +49b072: 3800 0d00 |0033: if-eqz v0, 0040 // +000d │ │ +49b076: 1201 |0035: const/4 v1, #int 0 // #0 │ │ +49b078: 280a |0036: goto 0040 // +000a │ │ +49b07a: 1a02 628a |0037: const-string v2, "listen" // string@8a62 │ │ +49b07e: 6e20 da5c 2000 |0039: invoke-virtual {v0, v2}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ +49b084: 0a00 |003c: move-result v0 │ │ +49b086: 3800 0300 |003d: if-eqz v0, 0040 // +0003 │ │ +49b08a: 1211 |003f: const/4 v1, #int 1 // #1 │ │ +49b08c: 3801 1e00 |0040: if-eqz v1, 005e // +001e │ │ +49b090: 3241 0800 |0042: if-eq v1, v4, 004a // +0008 │ │ +49b094: 5450 6169 |0044: iget-object v0, v5, Lorg/purple/smokestack/TcpListener$2;.this$0:Lorg/purple/smokestack/TcpListener; // field@6961 │ │ +49b098: 6e10 60d2 0000 |0046: invoke-virtual {v0}, Lorg/purple/smokestack/TcpListener;.disconnect:()V // method@d260 │ │ +49b09e: 0e00 |0049: return-void │ │ +49b0a0: 5450 6169 |004a: iget-object v0, v5, Lorg/purple/smokestack/TcpListener$2;.this$0:Lorg/purple/smokestack/TcpListener; // field@6961 │ │ +49b0a4: 6e10 61d2 0000 |004c: invoke-virtual {v0}, Lorg/purple/smokestack/TcpListener;.isNetworkConnected:()Z // method@d261 │ │ +49b0aa: 0a00 |004f: move-result v0 │ │ +49b0ac: 3800 0800 |0050: if-eqz v0, 0058 // +0008 │ │ +49b0b0: 5450 6169 |0052: iget-object v0, v5, Lorg/purple/smokestack/TcpListener$2;.this$0:Lorg/purple/smokestack/TcpListener; // field@6961 │ │ +49b0b4: 6e10 62d2 0000 |0054: invoke-virtual {v0}, Lorg/purple/smokestack/TcpListener;.listen:()V // method@d262 │ │ +49b0ba: 280c |0057: goto 0063 // +000c │ │ +49b0bc: 5450 6169 |0058: iget-object v0, v5, Lorg/purple/smokestack/TcpListener$2;.this$0:Lorg/purple/smokestack/TcpListener; // field@6961 │ │ +49b0c0: 6e10 60d2 0000 |005a: invoke-virtual {v0}, Lorg/purple/smokestack/TcpListener;.disconnect:()V // method@d260 │ │ +49b0c6: 2806 |005d: goto 0063 // +0006 │ │ +49b0c8: 5450 6169 |005e: iget-object v0, v5, Lorg/purple/smokestack/TcpListener$2;.this$0:Lorg/purple/smokestack/TcpListener; // field@6961 │ │ +49b0cc: 6e10 60d2 0000 |0060: invoke-virtual {v0}, Lorg/purple/smokestack/TcpListener;.disconnect:()V // method@d260 │ │ +49b0d2: 5450 6169 |0063: iget-object v0, v5, Lorg/purple/smokestack/TcpListener$2;.this$0:Lorg/purple/smokestack/TcpListener; // field@6961 │ │ +49b0d6: 7110 57d2 0000 |0065: invoke-static {v0}, Lorg/purple/smokestack/TcpListener;.access$300:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/ConcurrentHashMap; // method@d257 │ │ +49b0dc: 0c00 |0068: move-result-object v0 │ │ +49b0de: 6e10 ee60 0000 |0069: invoke-virtual {v0}, Ljava/util/concurrent/ConcurrentHashMap;.keySet:()Ljava/util/Set; // method@60ee │ │ +49b0e4: 0c00 |006c: move-result-object v0 │ │ +49b0e6: 7210 b060 0000 |006d: invoke-interface {v0}, Ljava/util/Set;.iterator:()Ljava/util/Iterator; // method@60b0 │ │ +49b0ec: 0c00 |0070: move-result-object v0 │ │ +49b0ee: 7210 4f60 0000 |0071: invoke-interface {v0}, Ljava/util/Iterator;.hasNext:()Z // method@604f │ │ +49b0f4: 0a01 |0074: move-result v1 │ │ +49b0f6: 3801 3300 |0075: if-eqz v1, 00a8 // +0033 │ │ +49b0fa: 7210 5060 0000 |0077: invoke-interface {v0}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@6050 │ │ +49b100: 0c01 |007a: move-result-object v1 │ │ +49b102: 1f01 e40a |007b: check-cast v1, Ljava/lang/Integer; // type@0ae4 │ │ +49b106: 5452 6169 |007d: iget-object v2, v5, Lorg/purple/smokestack/TcpListener$2;.this$0:Lorg/purple/smokestack/TcpListener; // field@6961 │ │ +49b10a: 7110 57d2 0200 |007f: invoke-static {v2}, Lorg/purple/smokestack/TcpListener;.access$300:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/ConcurrentHashMap; // method@d257 │ │ +49b110: 0c02 |0082: move-result-object v2 │ │ +49b112: 6e20 ed60 1200 |0083: invoke-virtual {v2, v1}, Ljava/util/concurrent/ConcurrentHashMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@60ed │ │ +49b118: 0c02 |0086: move-result-object v2 │ │ +49b11a: 1f02 ff1e |0087: check-cast v2, Lorg/purple/smokestack/TcpNeighbor; // type@1eff │ │ +49b11e: 3902 0c00 |0089: if-nez v2, 0095 // +000c │ │ +49b122: 5452 6169 |008b: iget-object v2, v5, Lorg/purple/smokestack/TcpListener$2;.this$0:Lorg/purple/smokestack/TcpListener; // field@6961 │ │ +49b126: 7110 57d2 0200 |008d: invoke-static {v2}, Lorg/purple/smokestack/TcpListener;.access$300:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/ConcurrentHashMap; // method@d257 │ │ +49b12c: 0c02 |0090: move-result-object v2 │ │ +49b12e: 6e20 f060 1200 |0091: invoke-virtual {v2, v1}, Ljava/util/concurrent/ConcurrentHashMap;.remove:(Ljava/lang/Object;)Ljava/lang/Object; // method@60f0 │ │ +49b134: 28dd |0094: goto 0071 // -0023 │ │ +49b136: 6e10 82d2 0200 |0095: invoke-virtual {v2}, Lorg/purple/smokestack/TcpNeighbor;.connected:()Z // method@d282 │ │ +49b13c: 0a03 |0098: move-result v3 │ │ +49b13e: 3903 d8ff |0099: if-nez v3, 0071 // -0028 │ │ +49b142: 5453 6169 |009b: iget-object v3, v5, Lorg/purple/smokestack/TcpListener$2;.this$0:Lorg/purple/smokestack/TcpListener; // field@6961 │ │ +49b146: 7110 57d2 0300 |009d: invoke-static {v3}, Lorg/purple/smokestack/TcpListener;.access$300:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/ConcurrentHashMap; // method@d257 │ │ +49b14c: 0c03 |00a0: move-result-object v3 │ │ +49b14e: 6e20 f060 1300 |00a1: invoke-virtual {v3, v1}, Ljava/util/concurrent/ConcurrentHashMap;.remove:(Ljava/lang/Object;)Ljava/lang/Object; // method@60f0 │ │ +49b154: 6e10 7bd2 0200 |00a4: invoke-virtual {v2}, Lorg/purple/smokestack/TcpNeighbor;.abort:()V // method@d27b │ │ +49b15a: 28ca |00a7: goto 0071 // -0036 │ │ +49b15c: 5450 6169 |00a8: iget-object v0, v5, Lorg/purple/smokestack/TcpListener$2;.this$0:Lorg/purple/smokestack/TcpListener; // field@6961 │ │ +49b160: 7110 53d2 0000 |00aa: invoke-static {v0}, Lorg/purple/smokestack/TcpListener;.access$000:(Lorg/purple/smokestack/TcpListener;)V // method@d253 │ │ +49b166: 0e00 |00ad: return-void │ │ catches : 3 │ │ 0x0000 - 0x0063 │ │ Ljava/lang/Exception; -> 0x00ad │ │ 0x0063 - 0x00a7 │ │ Ljava/lang/Exception; -> 0x00a8 │ │ 0x00a8 - 0x00ad │ │ Ljava/lang/Exception; -> 0x00ad │ │ @@ -790000,33 +789999,33 @@ │ │ type : '()V' │ │ access : 0x10008 (STATIC CONSTRUCTOR) │ │ code - │ │ registers : 4 │ │ ins : 0 │ │ outs : 4 │ │ insns size : 37 16-bit code units │ │ -49b3ec: |[49b3ec] org.purple.smokestack.TcpListener.:()V │ │ -49b3fc: 2200 4119 |0000: new-instance v0, Lorg/bouncycastle/jce/provider/BouncyCastleProvider; // type@1941 │ │ -49b400: 7010 2aa6 0000 |0002: invoke-direct {v0}, Lorg/bouncycastle/jce/provider/BouncyCastleProvider;.:()V // method@a62a │ │ -49b406: 7110 755e 0000 |0005: invoke-static {v0}, Ljava/security/Security;.addProvider:(Ljava/security/Provider;)I // method@5e75 │ │ -49b40c: 1a00 e64f |0008: const-string v0, "SSLv3" // string@4fe6 │ │ -49b410: 1a01 a753 |000a: const-string v1, "TLSv1" // string@53a7 │ │ -49b414: 1a02 a853 |000c: const-string v2, "TLSv1.1" // string@53a8 │ │ -49b418: 1a03 a953 |000e: const-string v3, "TLSv1.2" // string@53a9 │ │ -49b41c: 2440 6b1f 1032 |0010: filled-new-array {v0, v1, v2, v3}, [Ljava/lang/String; // type@1f6b │ │ -49b422: 0c00 |0013: move-result-object v0 │ │ -49b424: 6900 6a69 |0014: sput-object v0, Lorg/purple/smokestack/TcpListener;.TLS_LEGACY:[Ljava/lang/String; // field@696a │ │ -49b428: 1a00 aa53 |0016: const-string v0, "TLSv1.3" // string@53aa │ │ -49b42c: 2440 6b1f 2103 |0018: filled-new-array {v1, v2, v3, v0}, [Ljava/lang/String; // type@1f6b │ │ -49b432: 0c00 |001b: move-result-object v0 │ │ -49b434: 6900 6b69 |001c: sput-object v0, Lorg/purple/smokestack/TcpListener;.TLS_NEW:[Ljava/lang/String; // field@696b │ │ -49b438: 2430 6b1f 2103 |001e: filled-new-array {v1, v2, v3}, [Ljava/lang/String; // type@1f6b │ │ -49b43e: 0c00 |0021: move-result-object v0 │ │ -49b440: 6900 6c69 |0022: sput-object v0, Lorg/purple/smokestack/TcpListener;.TLS_V1_V2:[Ljava/lang/String; // field@696c │ │ -49b444: 0e00 |0024: return-void │ │ +49b3e8: |[49b3e8] org.purple.smokestack.TcpListener.:()V │ │ +49b3f8: 2200 4119 |0000: new-instance v0, Lorg/bouncycastle/jce/provider/BouncyCastleProvider; // type@1941 │ │ +49b3fc: 7010 2aa6 0000 |0002: invoke-direct {v0}, Lorg/bouncycastle/jce/provider/BouncyCastleProvider;.:()V // method@a62a │ │ +49b402: 7110 755e 0000 |0005: invoke-static {v0}, Ljava/security/Security;.addProvider:(Ljava/security/Provider;)I // method@5e75 │ │ +49b408: 1a00 e64f |0008: const-string v0, "SSLv3" // string@4fe6 │ │ +49b40c: 1a01 a753 |000a: const-string v1, "TLSv1" // string@53a7 │ │ +49b410: 1a02 a853 |000c: const-string v2, "TLSv1.1" // string@53a8 │ │ +49b414: 1a03 a953 |000e: const-string v3, "TLSv1.2" // string@53a9 │ │ +49b418: 2440 6b1f 1032 |0010: filled-new-array {v0, v1, v2, v3}, [Ljava/lang/String; // type@1f6b │ │ +49b41e: 0c00 |0013: move-result-object v0 │ │ +49b420: 6900 6a69 |0014: sput-object v0, Lorg/purple/smokestack/TcpListener;.TLS_LEGACY:[Ljava/lang/String; // field@696a │ │ +49b424: 1a00 aa53 |0016: const-string v0, "TLSv1.3" // string@53aa │ │ +49b428: 2440 6b1f 2103 |0018: filled-new-array {v1, v2, v3, v0}, [Ljava/lang/String; // type@1f6b │ │ +49b42e: 0c00 |001b: move-result-object v0 │ │ +49b430: 6900 6b69 |001c: sput-object v0, Lorg/purple/smokestack/TcpListener;.TLS_NEW:[Ljava/lang/String; // field@696b │ │ +49b434: 2430 6b1f 2103 |001e: filled-new-array {v1, v2, v3}, [Ljava/lang/String; // type@1f6b │ │ +49b43a: 0c00 |0021: move-result-object v0 │ │ +49b43c: 6900 6c69 |0022: sput-object v0, Lorg/purple/smokestack/TcpListener;.TLS_V1_V2:[Ljava/lang/String; // field@696c │ │ +49b440: 0e00 |0024: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=72 │ │ 0x0010 line=103 │ │ 0x0018 line=107 │ │ 0x001e line=111 │ │ locals : │ │ @@ -790036,110 +790035,110 @@ │ │ type : '(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z[B[B[BI)V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 19 │ │ ins : 11 │ │ outs : 7 │ │ insns size : 188 16-bit code units │ │ -49b448: |[49b448] org.purple.smokestack.TcpListener.:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z[B[B[BI)V │ │ -49b458: 0780 |0000: move-object v0, v8 │ │ -49b45a: 7010 ad5c 0800 |0001: invoke-direct {v8}, Ljava/lang/Object;.:()V // method@5cad │ │ -49b460: 1201 |0004: const/4 v1, #int 0 // #0 │ │ -49b462: 5b01 7369 |0005: iput-object v1, v0, Lorg/purple/smokestack/TcpListener;.m_isPrivateServer:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6973 │ │ -49b466: 5b01 7969 |0007: iput-object v1, v0, Lorg/purple/smokestack/TcpListener;.m_oid:Ljava/util/concurrent/atomic/AtomicInteger; // field@6979 │ │ -49b46a: 5b01 7869 |0009: iput-object v1, v0, Lorg/purple/smokestack/TcpListener;.m_neighbors:Ljava/util/concurrent/ConcurrentHashMap; // field@6978 │ │ -49b46e: 5b01 7469 |000b: iput-object v1, v0, Lorg/purple/smokestack/TcpListener;.m_keyStore:Ljava/security/KeyStore; // field@6974 │ │ -49b472: 5b01 7b69 |000d: iput-object v1, v0, Lorg/purple/smokestack/TcpListener;.m_socket:Ljavax/net/ssl/SSLServerSocket; // field@697b │ │ -49b476: 7100 0761 0000 |000f: invoke-static {}, Ljava/util/concurrent/Executors;.newSingleThreadScheduledExecutor:()Ljava/util/concurrent/ScheduledExecutorService; // method@6107 │ │ -49b47c: 0c01 |0012: move-result-object v1 │ │ -49b47e: 5b01 6d69 |0013: iput-object v1, v0, Lorg/purple/smokestack/TcpListener;.m_acceptScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@696d │ │ -49b482: 7100 0761 0000 |0015: invoke-static {}, Ljava/util/concurrent/Executors;.newSingleThreadScheduledExecutor:()Ljava/util/concurrent/ScheduledExecutorService; // method@6107 │ │ -49b488: 0c01 |0018: move-result-object v1 │ │ -49b48a: 5b01 7a69 |0019: iput-object v1, v0, Lorg/purple/smokestack/TcpListener;.m_scheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@697a │ │ -49b48e: 1a01 0000 |001b: const-string v1, "" // string@0000 │ │ -49b492: 5b01 7169 |001d: iput-object v1, v0, Lorg/purple/smokestack/TcpListener;.m_ipAddress:Ljava/lang/String; // field@6971 │ │ -49b496: 5b01 7269 |001f: iput-object v1, v0, Lorg/purple/smokestack/TcpListener;.m_ipPort:Ljava/lang/String; // field@6972 │ │ -49b49a: 2201 f30b |0021: new-instance v1, Ljava/util/concurrent/atomic/AtomicBoolean; // type@0bf3 │ │ -49b49e: 1202 |0023: const/4 v2, #int 0 // #0 │ │ -49b4a0: 7020 1661 2100 |0024: invoke-direct {v1, v2}, Ljava/util/concurrent/atomic/AtomicBoolean;.:(Z)V // method@6116 │ │ -49b4a6: 5b01 7569 |0027: iput-object v1, v0, Lorg/purple/smokestack/TcpListener;.m_listen:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6975 │ │ -49b4aa: 2201 f40b |0029: new-instance v1, Ljava/util/concurrent/atomic/AtomicInteger; // type@0bf4 │ │ -49b4ae: 1253 |002b: const/4 v3, #int 5 // #5 │ │ -49b4b0: 7020 1b61 3100 |002c: invoke-direct {v1, v3}, Ljava/util/concurrent/atomic/AtomicInteger;.:(I)V // method@611b │ │ -49b4b6: 5b01 7669 |002f: iput-object v1, v0, Lorg/purple/smokestack/TcpListener;.m_maximumClients:Ljava/util/concurrent/atomic/AtomicInteger; // field@6976 │ │ -49b4ba: 2204 f40b |0031: new-instance v4, Ljava/util/concurrent/atomic/AtomicInteger; // type@0bf4 │ │ -49b4be: 7020 1b61 2400 |0033: invoke-direct {v4, v2}, Ljava/util/concurrent/atomic/AtomicInteger;.:(I)V // method@611b │ │ -49b4c4: 5b04 7769 |0036: iput-object v4, v0, Lorg/purple/smokestack/TcpListener;.m_neighborCounter:Ljava/util/concurrent/atomic/AtomicInteger; // field@6977 │ │ -49b4c8: 2202 f50b |0038: new-instance v2, Ljava/util/concurrent/atomic/AtomicLong; // type@0bf5 │ │ -49b4cc: 7100 315d 0000 |003a: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@5d31 │ │ -49b4d2: 0b04 |003d: move-result-wide v4 │ │ -49b4d4: 7030 2061 4205 |003e: invoke-direct {v2, v4, v5}, Ljava/util/concurrent/atomic/AtomicLong;.:(J)V // method@6120 │ │ -49b4da: 5b02 7d69 |0041: iput-object v2, v0, Lorg/purple/smokestack/TcpListener;.m_startTime:Ljava/util/concurrent/atomic/AtomicLong; // field@697d │ │ -49b4de: 7100 82d0 0000 |0043: invoke-static {}, Lorg/purple/smokestack/Cryptography;.getInstance:()Lorg/purple/smokestack/Cryptography; // method@d082 │ │ -49b4e4: 0c02 |0046: move-result-object v2 │ │ -49b4e6: 5b02 6e69 |0047: iput-object v2, v0, Lorg/purple/smokestack/TcpListener;.m_cryptography:Lorg/purple/smokestack/Cryptography; // field@696e │ │ -49b4ea: 7100 b4d0 0000 |0049: invoke-static {}, Lorg/purple/smokestack/Database;.getInstance:()Lorg/purple/smokestack/Database; // method@d0b4 │ │ -49b4f0: 0c02 |004c: move-result-object v2 │ │ -49b4f2: 5b02 6f69 |004d: iput-object v2, v0, Lorg/purple/smokestack/TcpListener;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@696f │ │ -49b4f6: 2202 f00a |004f: new-instance v2, Ljava/lang/Object; // type@0af0 │ │ -49b4fa: 7010 ad5c 0200 |0051: invoke-direct {v2}, Ljava/lang/Object;.:()V // method@5cad │ │ -49b500: 5b02 7c69 |0054: iput-object v2, v0, Lorg/purple/smokestack/TcpListener;.m_socketMutex:Ljava/lang/Object; // field@697c │ │ -49b504: 1a02 f34e |0056: const-string v2, "SHA512WithRSA" // string@4ef3 │ │ -49b508: 5b02 6469 |0058: iput-object v2, v0, Lorg/purple/smokestack/TcpListener;.JCACONTENTSIGNER_ALGORITHM:Ljava/lang/String; // field@6964 │ │ -49b50c: 2202 fc0a |005a: new-instance v2, Ljava/lang/StringBuilder; // type@0afc │ │ -49b510: 7010 125d 0200 |005c: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ -49b516: 5b02 7069 |005f: iput-object v2, v0, Lorg/purple/smokestack/TcpListener;.m_error:Ljava/lang/StringBuilder; // field@6970 │ │ -49b51a: 2202 e30b |0061: new-instance v2, Ljava/util/concurrent/ConcurrentHashMap; // type@0be3 │ │ -49b51e: 7010 eb60 0200 |0063: invoke-direct {v2}, Ljava/util/concurrent/ConcurrentHashMap;.:()V // method@60eb │ │ -49b524: 5b02 7869 |0066: iput-object v2, v0, Lorg/purple/smokestack/TcpListener;.m_neighbors:Ljava/util/concurrent/ConcurrentHashMap; // field@6978 │ │ -49b528: 2202 f40b |0068: new-instance v2, Ljava/util/concurrent/atomic/AtomicInteger; // type@0bf4 │ │ -49b52c: 0204 1200 |006a: move/from16 v4, v18 │ │ -49b530: 7020 1b61 4200 |006c: invoke-direct {v2, v4}, Ljava/util/concurrent/atomic/AtomicInteger;.:(I)V // method@611b │ │ -49b536: 5b02 7969 |006f: iput-object v2, v0, Lorg/purple/smokestack/TcpListener;.m_oid:Ljava/util/concurrent/atomic/AtomicInteger; // field@6979 │ │ -49b53a: 07f2 |0071: move-object v2, v15 │ │ -49b53c: 0804 1000 |0072: move-object/from16 v4, v16 │ │ -49b540: 0805 1100 |0074: move-object/from16 v5, v17 │ │ -49b544: 7040 65d2 f854 |0076: invoke-direct {v8, v15, v4, v5}, Lorg/purple/smokestack/TcpListener;.prepareCertificate:([B[B[B)V // method@d265 │ │ -49b54a: 0792 |0079: move-object v2, v9 │ │ -49b54c: 5b02 7169 |007a: iput-object v2, v0, Lorg/purple/smokestack/TcpListener;.m_ipAddress:Ljava/lang/String; // field@6971 │ │ -49b550: 07a2 |007c: move-object v2, v10 │ │ -49b552: 5b02 7269 |007d: iput-object v2, v0, Lorg/purple/smokestack/TcpListener;.m_ipPort:Ljava/lang/String; // field@6972 │ │ -49b556: 2202 f30b |007f: new-instance v2, Ljava/util/concurrent/atomic/AtomicBoolean; // type@0bf3 │ │ -49b55a: 01e4 |0081: move v4, v14 │ │ -49b55c: 7020 1661 e200 |0082: invoke-direct {v2, v14}, Ljava/util/concurrent/atomic/AtomicBoolean;.:(Z)V // method@6116 │ │ -49b562: 5b02 7369 |0085: iput-object v2, v0, Lorg/purple/smokestack/TcpListener;.m_isPrivateServer:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6973 │ │ -49b566: 7110 6f5c 0b00 |0087: invoke-static {v11}, Ljava/lang/Integer;.parseInt:(Ljava/lang/String;)I // method@5c6f │ │ -49b56c: 0a02 |008a: move-result v2 │ │ -49b56e: 6e20 1f61 2100 |008b: invoke-virtual {v1, v2}, Ljava/util/concurrent/atomic/AtomicInteger;.set:(I)V // method@611f │ │ -49b574: 2806 |008e: goto 0094 // +0006 │ │ -49b576: 5401 7669 |008f: iget-object v1, v0, Lorg/purple/smokestack/TcpListener;.m_maximumClients:Ljava/util/concurrent/atomic/AtomicInteger; // field@6976 │ │ -49b57a: 6e20 1f61 3100 |0091: invoke-virtual {v1, v3}, Ljava/util/concurrent/atomic/AtomicInteger;.set:(I)V // method@611f │ │ -49b580: 5401 6d69 |0094: iget-object v1, v0, Lorg/purple/smokestack/TcpListener;.m_acceptScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@696d │ │ -49b584: 2202 f61e |0096: new-instance v2, Lorg/purple/smokestack/TcpListener$1; // type@1ef6 │ │ -49b588: 7020 4cd2 8200 |0098: invoke-direct {v2, v8}, Lorg/purple/smokestack/TcpListener$1;.:(Lorg/purple/smokestack/TcpListener;)V // method@d24c │ │ -49b58e: 1603 0000 |009b: const-wide/16 v3, #int 0 // #0 │ │ -49b592: 1605 6400 |009d: const-wide/16 v5, #int 100 // #64 │ │ -49b596: 6207 122d |009f: sget-object v7, Ljava/util/concurrent/TimeUnit;.MILLISECONDS:Ljava/util/concurrent/TimeUnit; // field@2d12 │ │ -49b59a: 0719 |00a1: move-object v9, v1 │ │ -49b59c: 072a |00a2: move-object v10, v2 │ │ -49b59e: 043b |00a3: move-wide v11, v3 │ │ -49b5a0: 045d |00a4: move-wide v13, v5 │ │ -49b5a2: 077f |00a5: move-object v15, v7 │ │ -49b5a4: 7807 0e61 0900 |00a6: invoke-interface/range {v9, v10, v11, v12, v13, v14, v15}, Ljava/util/concurrent/ScheduledExecutorService;.scheduleAtFixedRate:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; // method@610e │ │ -49b5aa: 5401 7a69 |00a9: iget-object v1, v0, Lorg/purple/smokestack/TcpListener;.m_scheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@697a │ │ -49b5ae: 2202 f71e |00ab: new-instance v2, Lorg/purple/smokestack/TcpListener$2; // type@1ef7 │ │ -49b5b2: 7020 4ed2 8200 |00ad: invoke-direct {v2, v8}, Lorg/purple/smokestack/TcpListener$2;.:(Lorg/purple/smokestack/TcpListener;)V // method@d24e │ │ -49b5b8: 1605 c409 |00b0: const-wide/16 v5, #int 2500 // #9c4 │ │ -49b5bc: 6207 122d |00b2: sget-object v7, Ljava/util/concurrent/TimeUnit;.MILLISECONDS:Ljava/util/concurrent/TimeUnit; // field@2d12 │ │ -49b5c0: 0719 |00b4: move-object v9, v1 │ │ -49b5c2: 072a |00b5: move-object v10, v2 │ │ -49b5c4: 045d |00b6: move-wide v13, v5 │ │ -49b5c6: 077f |00b7: move-object v15, v7 │ │ -49b5c8: 7807 0e61 0900 |00b8: invoke-interface/range {v9, v10, v11, v12, v13, v14, v15}, Ljava/util/concurrent/ScheduledExecutorService;.scheduleAtFixedRate:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; // method@610e │ │ -49b5ce: 0e00 |00bb: return-void │ │ +49b444: |[49b444] org.purple.smokestack.TcpListener.:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z[B[B[BI)V │ │ +49b454: 0780 |0000: move-object v0, v8 │ │ +49b456: 7010 ad5c 0800 |0001: invoke-direct {v8}, Ljava/lang/Object;.:()V // method@5cad │ │ +49b45c: 1201 |0004: const/4 v1, #int 0 // #0 │ │ +49b45e: 5b01 7369 |0005: iput-object v1, v0, Lorg/purple/smokestack/TcpListener;.m_isPrivateServer:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6973 │ │ +49b462: 5b01 7969 |0007: iput-object v1, v0, Lorg/purple/smokestack/TcpListener;.m_oid:Ljava/util/concurrent/atomic/AtomicInteger; // field@6979 │ │ +49b466: 5b01 7869 |0009: iput-object v1, v0, Lorg/purple/smokestack/TcpListener;.m_neighbors:Ljava/util/concurrent/ConcurrentHashMap; // field@6978 │ │ +49b46a: 5b01 7469 |000b: iput-object v1, v0, Lorg/purple/smokestack/TcpListener;.m_keyStore:Ljava/security/KeyStore; // field@6974 │ │ +49b46e: 5b01 7b69 |000d: iput-object v1, v0, Lorg/purple/smokestack/TcpListener;.m_socket:Ljavax/net/ssl/SSLServerSocket; // field@697b │ │ +49b472: 7100 0761 0000 |000f: invoke-static {}, Ljava/util/concurrent/Executors;.newSingleThreadScheduledExecutor:()Ljava/util/concurrent/ScheduledExecutorService; // method@6107 │ │ +49b478: 0c01 |0012: move-result-object v1 │ │ +49b47a: 5b01 6d69 |0013: iput-object v1, v0, Lorg/purple/smokestack/TcpListener;.m_acceptScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@696d │ │ +49b47e: 7100 0761 0000 |0015: invoke-static {}, Ljava/util/concurrent/Executors;.newSingleThreadScheduledExecutor:()Ljava/util/concurrent/ScheduledExecutorService; // method@6107 │ │ +49b484: 0c01 |0018: move-result-object v1 │ │ +49b486: 5b01 7a69 |0019: iput-object v1, v0, Lorg/purple/smokestack/TcpListener;.m_scheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@697a │ │ +49b48a: 1a01 0000 |001b: const-string v1, "" // string@0000 │ │ +49b48e: 5b01 7169 |001d: iput-object v1, v0, Lorg/purple/smokestack/TcpListener;.m_ipAddress:Ljava/lang/String; // field@6971 │ │ +49b492: 5b01 7269 |001f: iput-object v1, v0, Lorg/purple/smokestack/TcpListener;.m_ipPort:Ljava/lang/String; // field@6972 │ │ +49b496: 2201 f30b |0021: new-instance v1, Ljava/util/concurrent/atomic/AtomicBoolean; // type@0bf3 │ │ +49b49a: 1202 |0023: const/4 v2, #int 0 // #0 │ │ +49b49c: 7020 1661 2100 |0024: invoke-direct {v1, v2}, Ljava/util/concurrent/atomic/AtomicBoolean;.:(Z)V // method@6116 │ │ +49b4a2: 5b01 7569 |0027: iput-object v1, v0, Lorg/purple/smokestack/TcpListener;.m_listen:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6975 │ │ +49b4a6: 2201 f40b |0029: new-instance v1, Ljava/util/concurrent/atomic/AtomicInteger; // type@0bf4 │ │ +49b4aa: 1253 |002b: const/4 v3, #int 5 // #5 │ │ +49b4ac: 7020 1b61 3100 |002c: invoke-direct {v1, v3}, Ljava/util/concurrent/atomic/AtomicInteger;.:(I)V // method@611b │ │ +49b4b2: 5b01 7669 |002f: iput-object v1, v0, Lorg/purple/smokestack/TcpListener;.m_maximumClients:Ljava/util/concurrent/atomic/AtomicInteger; // field@6976 │ │ +49b4b6: 2204 f40b |0031: new-instance v4, Ljava/util/concurrent/atomic/AtomicInteger; // type@0bf4 │ │ +49b4ba: 7020 1b61 2400 |0033: invoke-direct {v4, v2}, Ljava/util/concurrent/atomic/AtomicInteger;.:(I)V // method@611b │ │ +49b4c0: 5b04 7769 |0036: iput-object v4, v0, Lorg/purple/smokestack/TcpListener;.m_neighborCounter:Ljava/util/concurrent/atomic/AtomicInteger; // field@6977 │ │ +49b4c4: 2202 f50b |0038: new-instance v2, Ljava/util/concurrent/atomic/AtomicLong; // type@0bf5 │ │ +49b4c8: 7100 315d 0000 |003a: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@5d31 │ │ +49b4ce: 0b04 |003d: move-result-wide v4 │ │ +49b4d0: 7030 2061 4205 |003e: invoke-direct {v2, v4, v5}, Ljava/util/concurrent/atomic/AtomicLong;.:(J)V // method@6120 │ │ +49b4d6: 5b02 7d69 |0041: iput-object v2, v0, Lorg/purple/smokestack/TcpListener;.m_startTime:Ljava/util/concurrent/atomic/AtomicLong; // field@697d │ │ +49b4da: 7100 82d0 0000 |0043: invoke-static {}, Lorg/purple/smokestack/Cryptography;.getInstance:()Lorg/purple/smokestack/Cryptography; // method@d082 │ │ +49b4e0: 0c02 |0046: move-result-object v2 │ │ +49b4e2: 5b02 6e69 |0047: iput-object v2, v0, Lorg/purple/smokestack/TcpListener;.m_cryptography:Lorg/purple/smokestack/Cryptography; // field@696e │ │ +49b4e6: 7100 b4d0 0000 |0049: invoke-static {}, Lorg/purple/smokestack/Database;.getInstance:()Lorg/purple/smokestack/Database; // method@d0b4 │ │ +49b4ec: 0c02 |004c: move-result-object v2 │ │ +49b4ee: 5b02 6f69 |004d: iput-object v2, v0, Lorg/purple/smokestack/TcpListener;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@696f │ │ +49b4f2: 2202 f00a |004f: new-instance v2, Ljava/lang/Object; // type@0af0 │ │ +49b4f6: 7010 ad5c 0200 |0051: invoke-direct {v2}, Ljava/lang/Object;.:()V // method@5cad │ │ +49b4fc: 5b02 7c69 |0054: iput-object v2, v0, Lorg/purple/smokestack/TcpListener;.m_socketMutex:Ljava/lang/Object; // field@697c │ │ +49b500: 1a02 f34e |0056: const-string v2, "SHA512WithRSA" // string@4ef3 │ │ +49b504: 5b02 6469 |0058: iput-object v2, v0, Lorg/purple/smokestack/TcpListener;.JCACONTENTSIGNER_ALGORITHM:Ljava/lang/String; // field@6964 │ │ +49b508: 2202 fc0a |005a: new-instance v2, Ljava/lang/StringBuilder; // type@0afc │ │ +49b50c: 7010 125d 0200 |005c: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ +49b512: 5b02 7069 |005f: iput-object v2, v0, Lorg/purple/smokestack/TcpListener;.m_error:Ljava/lang/StringBuilder; // field@6970 │ │ +49b516: 2202 e30b |0061: new-instance v2, Ljava/util/concurrent/ConcurrentHashMap; // type@0be3 │ │ +49b51a: 7010 eb60 0200 |0063: invoke-direct {v2}, Ljava/util/concurrent/ConcurrentHashMap;.:()V // method@60eb │ │ +49b520: 5b02 7869 |0066: iput-object v2, v0, Lorg/purple/smokestack/TcpListener;.m_neighbors:Ljava/util/concurrent/ConcurrentHashMap; // field@6978 │ │ +49b524: 2202 f40b |0068: new-instance v2, Ljava/util/concurrent/atomic/AtomicInteger; // type@0bf4 │ │ +49b528: 0204 1200 |006a: move/from16 v4, v18 │ │ +49b52c: 7020 1b61 4200 |006c: invoke-direct {v2, v4}, Ljava/util/concurrent/atomic/AtomicInteger;.:(I)V // method@611b │ │ +49b532: 5b02 7969 |006f: iput-object v2, v0, Lorg/purple/smokestack/TcpListener;.m_oid:Ljava/util/concurrent/atomic/AtomicInteger; // field@6979 │ │ +49b536: 07f2 |0071: move-object v2, v15 │ │ +49b538: 0804 1000 |0072: move-object/from16 v4, v16 │ │ +49b53c: 0805 1100 |0074: move-object/from16 v5, v17 │ │ +49b540: 7040 65d2 f854 |0076: invoke-direct {v8, v15, v4, v5}, Lorg/purple/smokestack/TcpListener;.prepareCertificate:([B[B[B)V // method@d265 │ │ +49b546: 0792 |0079: move-object v2, v9 │ │ +49b548: 5b02 7169 |007a: iput-object v2, v0, Lorg/purple/smokestack/TcpListener;.m_ipAddress:Ljava/lang/String; // field@6971 │ │ +49b54c: 07a2 |007c: move-object v2, v10 │ │ +49b54e: 5b02 7269 |007d: iput-object v2, v0, Lorg/purple/smokestack/TcpListener;.m_ipPort:Ljava/lang/String; // field@6972 │ │ +49b552: 2202 f30b |007f: new-instance v2, Ljava/util/concurrent/atomic/AtomicBoolean; // type@0bf3 │ │ +49b556: 01e4 |0081: move v4, v14 │ │ +49b558: 7020 1661 e200 |0082: invoke-direct {v2, v14}, Ljava/util/concurrent/atomic/AtomicBoolean;.:(Z)V // method@6116 │ │ +49b55e: 5b02 7369 |0085: iput-object v2, v0, Lorg/purple/smokestack/TcpListener;.m_isPrivateServer:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6973 │ │ +49b562: 7110 6f5c 0b00 |0087: invoke-static {v11}, Ljava/lang/Integer;.parseInt:(Ljava/lang/String;)I // method@5c6f │ │ +49b568: 0a02 |008a: move-result v2 │ │ +49b56a: 6e20 1f61 2100 |008b: invoke-virtual {v1, v2}, Ljava/util/concurrent/atomic/AtomicInteger;.set:(I)V // method@611f │ │ +49b570: 2806 |008e: goto 0094 // +0006 │ │ +49b572: 5401 7669 |008f: iget-object v1, v0, Lorg/purple/smokestack/TcpListener;.m_maximumClients:Ljava/util/concurrent/atomic/AtomicInteger; // field@6976 │ │ +49b576: 6e20 1f61 3100 |0091: invoke-virtual {v1, v3}, Ljava/util/concurrent/atomic/AtomicInteger;.set:(I)V // method@611f │ │ +49b57c: 5401 6d69 |0094: iget-object v1, v0, Lorg/purple/smokestack/TcpListener;.m_acceptScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@696d │ │ +49b580: 2202 f61e |0096: new-instance v2, Lorg/purple/smokestack/TcpListener$1; // type@1ef6 │ │ +49b584: 7020 4cd2 8200 |0098: invoke-direct {v2, v8}, Lorg/purple/smokestack/TcpListener$1;.:(Lorg/purple/smokestack/TcpListener;)V // method@d24c │ │ +49b58a: 1603 0000 |009b: const-wide/16 v3, #int 0 // #0 │ │ +49b58e: 1605 6400 |009d: const-wide/16 v5, #int 100 // #64 │ │ +49b592: 6207 122d |009f: sget-object v7, Ljava/util/concurrent/TimeUnit;.MILLISECONDS:Ljava/util/concurrent/TimeUnit; // field@2d12 │ │ +49b596: 0719 |00a1: move-object v9, v1 │ │ +49b598: 072a |00a2: move-object v10, v2 │ │ +49b59a: 043b |00a3: move-wide v11, v3 │ │ +49b59c: 045d |00a4: move-wide v13, v5 │ │ +49b59e: 077f |00a5: move-object v15, v7 │ │ +49b5a0: 7807 0e61 0900 |00a6: invoke-interface/range {v9, v10, v11, v12, v13, v14, v15}, Ljava/util/concurrent/ScheduledExecutorService;.scheduleAtFixedRate:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; // method@610e │ │ +49b5a6: 5401 7a69 |00a9: iget-object v1, v0, Lorg/purple/smokestack/TcpListener;.m_scheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@697a │ │ +49b5aa: 2202 f71e |00ab: new-instance v2, Lorg/purple/smokestack/TcpListener$2; // type@1ef7 │ │ +49b5ae: 7020 4ed2 8200 |00ad: invoke-direct {v2, v8}, Lorg/purple/smokestack/TcpListener$2;.:(Lorg/purple/smokestack/TcpListener;)V // method@d24e │ │ +49b5b4: 1605 c409 |00b0: const-wide/16 v5, #int 2500 // #9c4 │ │ +49b5b8: 6207 122d |00b2: sget-object v7, Ljava/util/concurrent/TimeUnit;.MILLISECONDS:Ljava/util/concurrent/TimeUnit; // field@2d12 │ │ +49b5bc: 0719 |00b4: move-object v9, v1 │ │ +49b5be: 072a |00b5: move-object v10, v2 │ │ +49b5c0: 045d |00b6: move-wide v13, v5 │ │ +49b5c2: 077f |00b7: move-object v15, v7 │ │ +49b5c4: 7807 0e61 0900 |00b8: invoke-interface/range {v9, v10, v11, v12, v13, v14, v15}, Ljava/util/concurrent/ScheduledExecutorService;.scheduleAtFixedRate:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; // method@610e │ │ +49b5ca: 0e00 |00bb: return-void │ │ catches : 1 │ │ 0x0087 - 0x008e │ │ Ljava/lang/Exception; -> 0x008f │ │ positions : │ │ 0x0001 line=125 │ │ 0x0005 line=75 │ │ 0x0007 line=76 │ │ @@ -790187,17 +790186,17 @@ │ │ type : '(Lorg/purple/smokestack/TcpListener;)V' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -49b6c4: |[49b6c4] org.purple.smokestack.TcpListener.access$000:(Lorg/purple/smokestack/TcpListener;)V │ │ -49b6d4: 7010 66d2 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/TcpListener;.saveStatistics:()V // method@d266 │ │ -49b6da: 0e00 |0003: return-void │ │ +49b6c0: |[49b6c0] org.purple.smokestack.TcpListener.access$000:(Lorg/purple/smokestack/TcpListener;)V │ │ +49b6d0: 7010 66d2 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/TcpListener;.saveStatistics:()V // method@d266 │ │ +49b6d6: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=68 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 (null) Lorg/purple/smokestack/TcpListener; │ │ │ │ #3 : (in Lorg/purple/smokestack/TcpListener;) │ │ @@ -790205,17 +790204,17 @@ │ │ type : '(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/atomic/AtomicBoolean;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -49b32c: |[49b32c] org.purple.smokestack.TcpListener.access$100:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/atomic/AtomicBoolean; │ │ -49b33c: 5400 7569 |0000: iget-object v0, v0, Lorg/purple/smokestack/TcpListener;.m_listen:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6975 │ │ -49b340: 1100 |0002: return-object v0 │ │ +49b328: |[49b328] org.purple.smokestack.TcpListener.access$100:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/atomic/AtomicBoolean; │ │ +49b338: 5400 7569 |0000: iget-object v0, v0, Lorg/purple/smokestack/TcpListener;.m_listen:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6975 │ │ +49b33c: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=68 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/purple/smokestack/TcpListener; │ │ │ │ #4 : (in Lorg/purple/smokestack/TcpListener;) │ │ @@ -790223,17 +790222,17 @@ │ │ type : '(Lorg/purple/smokestack/TcpListener;)Lorg/purple/smokestack/Database;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -49b3d4: |[49b3d4] org.purple.smokestack.TcpListener.access$1000:(Lorg/purple/smokestack/TcpListener;)Lorg/purple/smokestack/Database; │ │ -49b3e4: 5400 6f69 |0000: iget-object v0, v0, Lorg/purple/smokestack/TcpListener;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@696f │ │ -49b3e8: 1100 |0002: return-object v0 │ │ +49b3d0: |[49b3d0] org.purple.smokestack.TcpListener.access$1000:(Lorg/purple/smokestack/TcpListener;)Lorg/purple/smokestack/Database; │ │ +49b3e0: 5400 6f69 |0000: iget-object v0, v0, Lorg/purple/smokestack/TcpListener;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@696f │ │ +49b3e4: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=68 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/purple/smokestack/TcpListener; │ │ │ │ #5 : (in Lorg/purple/smokestack/TcpListener;) │ │ @@ -790241,17 +790240,17 @@ │ │ type : '(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/atomic/AtomicInteger;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -49b35c: |[49b35c] org.purple.smokestack.TcpListener.access$200:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/atomic/AtomicInteger; │ │ -49b36c: 5400 7669 |0000: iget-object v0, v0, Lorg/purple/smokestack/TcpListener;.m_maximumClients:Ljava/util/concurrent/atomic/AtomicInteger; // field@6976 │ │ -49b370: 1100 |0002: return-object v0 │ │ +49b358: |[49b358] org.purple.smokestack.TcpListener.access$200:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/atomic/AtomicInteger; │ │ +49b368: 5400 7669 |0000: iget-object v0, v0, Lorg/purple/smokestack/TcpListener;.m_maximumClients:Ljava/util/concurrent/atomic/AtomicInteger; // field@6976 │ │ +49b36c: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=68 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/purple/smokestack/TcpListener; │ │ │ │ #6 : (in Lorg/purple/smokestack/TcpListener;) │ │ @@ -790259,17 +790258,17 @@ │ │ type : '(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/ConcurrentHashMap;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -49b314: |[49b314] org.purple.smokestack.TcpListener.access$300:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/ConcurrentHashMap; │ │ -49b324: 5400 7869 |0000: iget-object v0, v0, Lorg/purple/smokestack/TcpListener;.m_neighbors:Ljava/util/concurrent/ConcurrentHashMap; // field@6978 │ │ -49b328: 1100 |0002: return-object v0 │ │ +49b310: |[49b310] org.purple.smokestack.TcpListener.access$300:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/ConcurrentHashMap; │ │ +49b320: 5400 7869 |0000: iget-object v0, v0, Lorg/purple/smokestack/TcpListener;.m_neighbors:Ljava/util/concurrent/ConcurrentHashMap; // field@6978 │ │ +49b324: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=68 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/purple/smokestack/TcpListener; │ │ │ │ #7 : (in Lorg/purple/smokestack/TcpListener;) │ │ @@ -790277,17 +790276,17 @@ │ │ type : '(Lorg/purple/smokestack/TcpListener;)Ljava/lang/Object;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -49b280: |[49b280] org.purple.smokestack.TcpListener.access$400:(Lorg/purple/smokestack/TcpListener;)Ljava/lang/Object; │ │ -49b290: 5400 7c69 |0000: iget-object v0, v0, Lorg/purple/smokestack/TcpListener;.m_socketMutex:Ljava/lang/Object; // field@697c │ │ -49b294: 1100 |0002: return-object v0 │ │ +49b27c: |[49b27c] org.purple.smokestack.TcpListener.access$400:(Lorg/purple/smokestack/TcpListener;)Ljava/lang/Object; │ │ +49b28c: 5400 7c69 |0000: iget-object v0, v0, Lorg/purple/smokestack/TcpListener;.m_socketMutex:Ljava/lang/Object; // field@697c │ │ +49b290: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=68 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/purple/smokestack/TcpListener; │ │ │ │ #8 : (in Lorg/purple/smokestack/TcpListener;) │ │ @@ -790295,17 +790294,17 @@ │ │ type : '(Lorg/purple/smokestack/TcpListener;)Ljavax/net/ssl/SSLServerSocket;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -49b3a4: |[49b3a4] org.purple.smokestack.TcpListener.access$500:(Lorg/purple/smokestack/TcpListener;)Ljavax/net/ssl/SSLServerSocket; │ │ -49b3b4: 5400 7b69 |0000: iget-object v0, v0, Lorg/purple/smokestack/TcpListener;.m_socket:Ljavax/net/ssl/SSLServerSocket; // field@697b │ │ -49b3b8: 1100 |0002: return-object v0 │ │ +49b3a0: |[49b3a0] org.purple.smokestack.TcpListener.access$500:(Lorg/purple/smokestack/TcpListener;)Ljavax/net/ssl/SSLServerSocket; │ │ +49b3b0: 5400 7b69 |0000: iget-object v0, v0, Lorg/purple/smokestack/TcpListener;.m_socket:Ljavax/net/ssl/SSLServerSocket; // field@697b │ │ +49b3b4: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=68 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/purple/smokestack/TcpListener; │ │ │ │ #9 : (in Lorg/purple/smokestack/TcpListener;) │ │ @@ -790313,17 +790312,17 @@ │ │ type : '(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/atomic/AtomicInteger;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -49b374: |[49b374] org.purple.smokestack.TcpListener.access$600:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/atomic/AtomicInteger; │ │ -49b384: 5400 7769 |0000: iget-object v0, v0, Lorg/purple/smokestack/TcpListener;.m_neighborCounter:Ljava/util/concurrent/atomic/AtomicInteger; // field@6977 │ │ -49b388: 1100 |0002: return-object v0 │ │ +49b370: |[49b370] org.purple.smokestack.TcpListener.access$600:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/atomic/AtomicInteger; │ │ +49b380: 5400 7769 |0000: iget-object v0, v0, Lorg/purple/smokestack/TcpListener;.m_neighborCounter:Ljava/util/concurrent/atomic/AtomicInteger; // field@6977 │ │ +49b384: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=68 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/purple/smokestack/TcpListener; │ │ │ │ #10 : (in Lorg/purple/smokestack/TcpListener;) │ │ @@ -790331,17 +790330,17 @@ │ │ type : '(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/atomic/AtomicBoolean;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -49b344: |[49b344] org.purple.smokestack.TcpListener.access$700:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/atomic/AtomicBoolean; │ │ -49b354: 5400 7369 |0000: iget-object v0, v0, Lorg/purple/smokestack/TcpListener;.m_isPrivateServer:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6973 │ │ -49b358: 1100 |0002: return-object v0 │ │ +49b340: |[49b340] org.purple.smokestack.TcpListener.access$700:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/atomic/AtomicBoolean; │ │ +49b350: 5400 7369 |0000: iget-object v0, v0, Lorg/purple/smokestack/TcpListener;.m_isPrivateServer:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6973 │ │ +49b354: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=68 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/purple/smokestack/TcpListener; │ │ │ │ #11 : (in Lorg/purple/smokestack/TcpListener;) │ │ @@ -790349,17 +790348,17 @@ │ │ type : '(Lorg/purple/smokestack/TcpListener;)Lorg/purple/smokestack/Cryptography;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -49b3bc: |[49b3bc] org.purple.smokestack.TcpListener.access$800:(Lorg/purple/smokestack/TcpListener;)Lorg/purple/smokestack/Cryptography; │ │ -49b3cc: 5400 6e69 |0000: iget-object v0, v0, Lorg/purple/smokestack/TcpListener;.m_cryptography:Lorg/purple/smokestack/Cryptography; // field@696e │ │ -49b3d0: 1100 |0002: return-object v0 │ │ +49b3b8: |[49b3b8] org.purple.smokestack.TcpListener.access$800:(Lorg/purple/smokestack/TcpListener;)Lorg/purple/smokestack/Cryptography; │ │ +49b3c8: 5400 6e69 |0000: iget-object v0, v0, Lorg/purple/smokestack/TcpListener;.m_cryptography:Lorg/purple/smokestack/Cryptography; // field@696e │ │ +49b3cc: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=68 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/purple/smokestack/TcpListener; │ │ │ │ #12 : (in Lorg/purple/smokestack/TcpListener;) │ │ @@ -790367,17 +790366,17 @@ │ │ type : '(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/atomic/AtomicInteger;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -49b38c: |[49b38c] org.purple.smokestack.TcpListener.access$900:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/atomic/AtomicInteger; │ │ -49b39c: 5400 7969 |0000: iget-object v0, v0, Lorg/purple/smokestack/TcpListener;.m_oid:Ljava/util/concurrent/atomic/AtomicInteger; // field@6979 │ │ -49b3a0: 1100 |0002: return-object v0 │ │ +49b388: |[49b388] org.purple.smokestack.TcpListener.access$900:(Lorg/purple/smokestack/TcpListener;)Ljava/util/concurrent/atomic/AtomicInteger; │ │ +49b398: 5400 7969 |0000: iget-object v0, v0, Lorg/purple/smokestack/TcpListener;.m_oid:Ljava/util/concurrent/atomic/AtomicInteger; // field@6979 │ │ +49b39c: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=68 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/purple/smokestack/TcpListener; │ │ │ │ #13 : (in Lorg/purple/smokestack/TcpListener;) │ │ @@ -790385,32 +790384,32 @@ │ │ type : '()Z' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 4 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 23 16-bit code units │ │ -49b1e8: |[49b1e8] org.purple.smokestack.TcpListener.listening:()Z │ │ -49b1f8: 5430 7c69 |0000: iget-object v0, v3, Lorg/purple/smokestack/TcpListener;.m_socketMutex:Ljava/lang/Object; // field@697c │ │ -49b1fc: 1d00 |0002: monitor-enter v0 │ │ -49b1fe: 1201 |0003: const/4 v1, #int 0 // #0 │ │ -49b200: 5432 7b69 |0004: iget-object v2, v3, Lorg/purple/smokestack/TcpListener;.m_socket:Ljavax/net/ssl/SSLServerSocket; // field@697b │ │ -49b204: 3802 0900 |0006: if-eqz v2, 000f // +0009 │ │ -49b208: 6e10 ea61 0200 |0008: invoke-virtual {v2}, Ljavax/net/ssl/SSLServerSocket;.isBound:()Z // method@61ea │ │ -49b20e: 0a02 |000b: move-result v2 │ │ -49b210: 3802 0300 |000c: if-eqz v2, 000f // +0003 │ │ -49b214: 1211 |000e: const/4 v1, #int 1 // #1 │ │ -49b216: 1e00 |000f: monitor-exit v0 │ │ -49b218: 0f01 |0010: return v1 │ │ -49b21a: 0d01 |0011: move-exception v1 │ │ -49b21c: 2803 |0012: goto 0015 // +0003 │ │ -49b21e: 1e00 |0013: monitor-exit v0 │ │ -49b220: 0f01 |0014: return v1 │ │ -49b222: 1e00 |0015: monitor-exit v0 │ │ -49b224: 2701 |0016: throw v1 │ │ +49b1e4: |[49b1e4] org.purple.smokestack.TcpListener.listening:()Z │ │ +49b1f4: 5430 7c69 |0000: iget-object v0, v3, Lorg/purple/smokestack/TcpListener;.m_socketMutex:Ljava/lang/Object; // field@697c │ │ +49b1f8: 1d00 |0002: monitor-enter v0 │ │ +49b1fa: 1201 |0003: const/4 v1, #int 0 // #0 │ │ +49b1fc: 5432 7b69 |0004: iget-object v2, v3, Lorg/purple/smokestack/TcpListener;.m_socket:Ljavax/net/ssl/SSLServerSocket; // field@697b │ │ +49b200: 3802 0900 |0006: if-eqz v2, 000f // +0009 │ │ +49b204: 6e10 ea61 0200 |0008: invoke-virtual {v2}, Ljavax/net/ssl/SSLServerSocket;.isBound:()Z // method@61ea │ │ +49b20a: 0a02 |000b: move-result v2 │ │ +49b20c: 3802 0300 |000c: if-eqz v2, 000f // +0003 │ │ +49b210: 1211 |000e: const/4 v1, #int 1 // #1 │ │ +49b212: 1e00 |000f: monitor-exit v0 │ │ +49b214: 0f01 |0010: return v1 │ │ +49b216: 0d01 |0011: move-exception v1 │ │ +49b218: 2803 |0012: goto 0015 // +0003 │ │ +49b21a: 1e00 |0013: monitor-exit v0 │ │ +49b21c: 0f01 |0014: return v1 │ │ +49b21e: 1e00 |0015: monitor-exit v0 │ │ +49b220: 2701 |0016: throw v1 │ │ catches : 2 │ │ 0x0004 - 0x000c │ │ Ljava/lang/Exception; -> 0x0013 │ │ -> 0x0011 │ │ 0x000f - 0x0016 │ │ -> 0x0011 │ │ positions : │ │ @@ -790425,204 +790424,204 @@ │ │ type : '([B[B[B)V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 22 │ │ ins : 4 │ │ outs : 7 │ │ insns size : 387 16-bit code units │ │ -49b974: |[49b974] org.purple.smokestack.TcpListener.prepareCertificate:([B[B[B)V │ │ -49b984: 0801 1200 |0000: move-object/from16 v1, v18 │ │ -49b988: 0800 1300 |0002: move-object/from16 v0, v19 │ │ -49b98c: 0802 1400 |0004: move-object/from16 v2, v20 │ │ -49b990: 0803 1500 |0006: move-object/from16 v3, v21 │ │ -49b994: 1a04 890f |0008: const-string v4, "BC" // string@0f89 │ │ -49b998: 5415 7469 |000a: iget-object v5, v1, Lorg/purple/smokestack/TcpListener;.m_keyStore:Ljava/security/KeyStore; // field@6974 │ │ -49b99c: 3805 0300 |000c: if-eqz v5, 000f // +0003 │ │ -49b9a0: 0e00 |000e: return-void │ │ -49b9a2: 1205 |000f: const/4 v5, #int 0 // #0 │ │ -49b9a4: 1216 |0010: const/4 v6, #int 1 // #1 │ │ -49b9a6: 1a07 3304 |0011: const-string v7, ") occurred while preparing the key pair." // string@0433 │ │ -49b9aa: 1a08 8f4c |0013: const-string v8, "RSA" // string@4c8f │ │ -49b9ae: 1a09 1a0e |0015: const-string v9, "An error (" // string@0e1a │ │ -49b9b2: 120a |0017: const/4 v10, #int 0 // #0 │ │ -49b9b4: 3800 7e00 |0018: if-eqz v0, 0096 // +007e │ │ -49b9b8: 210b |001a: array-length v11, v0 │ │ -49b9ba: 380b 7b00 |001b: if-eqz v11, 0096 // +007b │ │ -49b9be: 3802 7900 |001d: if-eqz v2, 0096 // +0079 │ │ -49b9c2: 212b |001f: array-length v11, v2 │ │ -49b9c4: 380b 7600 |0020: if-eqz v11, 0096 // +0076 │ │ -49b9c8: 3803 7400 |0022: if-eqz v3, 0096 // +0074 │ │ -49b9cc: 213b |0024: array-length v11, v3 │ │ -49b9ce: 390b 0300 |0025: if-nez v11, 0028 // +0003 │ │ -49b9d2: 286f |0027: goto 0096 // +006f │ │ -49b9d4: 7130 81d0 2803 |0028: invoke-static {v8, v2, v3}, Lorg/purple/smokestack/Cryptography;.generatePrivatePublicKeyPair:(Ljava/lang/String;[B[B)Ljava/security/KeyPair; // method@d081 │ │ -49b9da: 0c02 |002b: move-result-object v2 │ │ -49b9dc: 3802 7000 |002c: if-eqz v2, 009c // +0070 │ │ -49b9e0: 2203 ab0a |002e: new-instance v3, Ljava/io/ByteArrayInputStream; // type@0aab │ │ -49b9e4: 7020 745b 0300 |0030: invoke-direct {v3, v0}, Ljava/io/ByteArrayInputStream;.:([B)V // method@5b74 │ │ -49b9ea: 1a00 675a |0033: const-string v0, "X.509" // string@5a67 │ │ -49b9ee: 7110 c55e 0000 |0035: invoke-static {v0}, Ljava/security/cert/CertificateFactory;.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory; // method@5ec5 │ │ -49b9f4: 0c00 |0038: move-result-object v0 │ │ -49b9f6: 6e20 c45e 3000 |0039: invoke-virtual {v0, v3}, Ljava/security/cert/CertificateFactory;.generateCertificate:(Ljava/io/InputStream;)Ljava/security/cert/Certificate; // method@5ec4 │ │ -49b9fc: 0c00 |003c: move-result-object v0 │ │ -49b9fe: 1f00 8c0b |003d: check-cast v0, Ljava/security/cert/X509Certificate; // type@0b8c │ │ -49ba02: 7100 315e 0000 |003f: invoke-static {}, Ljava/security/KeyStore;.getDefaultType:()Ljava/lang/String; // method@5e31 │ │ -49ba08: 0c08 |0042: move-result-object v8 │ │ -49ba0a: 7110 325e 0800 |0043: invoke-static {v8}, Ljava/security/KeyStore;.getInstance:(Ljava/lang/String;)Ljava/security/KeyStore; // method@5e32 │ │ -49ba10: 0c08 |0046: move-result-object v8 │ │ -49ba12: 5b18 7469 |0047: iput-object v8, v1, Lorg/purple/smokestack/TcpListener;.m_keyStore:Ljava/security/KeyStore; // field@6974 │ │ -49ba16: 6e30 365e a80a |0049: invoke-virtual {v8, v10, v10}, Ljava/security/KeyStore;.load:(Ljava/io/InputStream;[C)V // method@5e36 │ │ -49ba1c: 5418 7469 |004c: iget-object v8, v1, Lorg/purple/smokestack/TcpListener;.m_keyStore:Ljava/security/KeyStore; // field@6974 │ │ -49ba20: 541b 7169 |004e: iget-object v11, v1, Lorg/purple/smokestack/TcpListener;.m_ipAddress:Ljava/lang/String; // field@6971 │ │ -49ba24: 6e20 2f5e b800 |0050: invoke-virtual {v8, v11}, Ljava/security/KeyStore;.deleteEntry:(Ljava/lang/String;)V // method@5e2f │ │ -49ba2a: 5418 7469 |0053: iget-object v8, v1, Lorg/purple/smokestack/TcpListener;.m_keyStore:Ljava/security/KeyStore; // field@6974 │ │ -49ba2e: 541b 7169 |0055: iget-object v11, v1, Lorg/purple/smokestack/TcpListener;.m_ipAddress:Ljava/lang/String; // field@6971 │ │ -49ba32: 6e10 205e 0200 |0057: invoke-virtual {v2}, Ljava/security/KeyPair;.getPrivate:()Ljava/security/PrivateKey; // method@5e20 │ │ -49ba38: 0c0c |005a: move-result-object v12 │ │ -49ba3a: 236d 771f |005b: new-array v13, v6, [Ljava/security/cert/X509Certificate; // type@1f77 │ │ -49ba3e: 4d00 0d05 |005d: aput-object v0, v13, v5 │ │ -49ba42: 6e5d 375e b8ac |005f: invoke-virtual {v8, v11, v12, v10, v13}, Ljava/security/KeyStore;.setKeyEntry:(Ljava/lang/String;Ljava/security/Key;[C[Ljava/security/cert/Certificate;)V // method@5e37 │ │ -49ba48: 6e10 775b 0300 |0062: invoke-virtual {v3}, Ljava/io/ByteArrayInputStream;.close:()V // method@5b77 │ │ -49ba4e: 0e00 |0065: return-void │ │ -49ba50: 0d00 |0066: move-exception v0 │ │ -49ba52: 2805 |0067: goto 006c // +0005 │ │ -49ba54: 0d00 |0068: move-exception v0 │ │ -49ba56: 2824 |0069: goto 008d // +0024 │ │ -49ba58: 0d00 |006a: move-exception v0 │ │ -49ba5a: 07a3 |006b: move-object v3, v10 │ │ -49ba5c: 2208 fc0a |006c: new-instance v8, Ljava/lang/StringBuilder; // type@0afc │ │ -49ba60: 7010 125d 0800 |006e: invoke-direct {v8}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ -49ba66: 6e20 1d5d 9800 |0071: invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49ba6c: 6e10 505c 0000 |0074: invoke-virtual {v0}, Ljava/lang/Exception;.getMessage:()Ljava/lang/String; // method@5c50 │ │ -49ba72: 0c00 |0077: move-result-object v0 │ │ -49ba74: 6e20 1d5d 0800 |0078: invoke-virtual {v8, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49ba7a: 6e20 1d5d 7800 |007b: invoke-virtual {v8, v7}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49ba80: 6e10 285d 0800 |007e: invoke-virtual {v8}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ -49ba86: 0c00 |0081: move-result-object v0 │ │ -49ba88: 7020 69d2 0100 |0082: invoke-direct {v1, v0}, Lorg/purple/smokestack/TcpListener;.setError:(Ljava/lang/String;)V // method@d269 │ │ -49ba8e: 3803 1700 |0085: if-eqz v3, 009c // +0017 │ │ -49ba92: 6e10 775b 0300 |0087: invoke-virtual {v3}, Ljava/io/ByteArrayInputStream;.close:()V // method@5b77 │ │ -49ba98: 2812 |008a: goto 009c // +0012 │ │ -49ba9a: 0d00 |008b: move-exception v0 │ │ -49ba9c: 073a |008c: move-object v10, v3 │ │ -49ba9e: 380a 0500 |008d: if-eqz v10, 0092 // +0005 │ │ -49baa2: 6e10 775b 0a00 |008f: invoke-virtual {v10}, Ljava/io/ByteArrayInputStream;.close:()V // method@5b77 │ │ -49baa8: 2700 |0092: throw v0 │ │ -49baaa: 0d00 |0093: move-exception v0 │ │ -49baac: 2900 d500 |0094: goto/16 0169 // +00d5 │ │ -49bab0: 1300 000c |0096: const/16 v0, #int 3072 // #c00 │ │ -49bab4: 7120 80d0 0800 |0098: invoke-static {v8, v0}, Lorg/purple/smokestack/Cryptography;.generatePrivatePublicKeyPair:(Ljava/lang/String;I)Ljava/security/KeyPair; // method@d080 │ │ -49baba: 0c02 |009b: move-result-object v2 │ │ -49babc: 220f c00b |009c: new-instance v15, Ljava/util/Date; // type@0bc0 │ │ -49bac0: 7100 2b5d 0000 |009e: invoke-static {}, Ljava/lang/System;.currentTimeMillis:()J // method@5d2b │ │ -49bac6: 0b07 |00a1: move-result-wide v7 │ │ -49bac8: 180b 002c b157 0700 0000 |00a2: const-wide v11, #double 1.55809e-313 // #0000000757b12c00 │ │ -49bad2: bbb7 |00a7: add-long/2addr v7, v11 │ │ -49bad4: 7030 2860 7f08 |00a8: invoke-direct {v15, v7, v8}, Ljava/util/Date;.:(J)V // method@6028 │ │ -49bada: 220e c00b |00ab: new-instance v14, Ljava/util/Date; // type@0bc0 │ │ -49bade: 7100 2b5d 0000 |00ad: invoke-static {}, Ljava/lang/System;.currentTimeMillis:()J // method@5d2b │ │ -49bae4: 0b07 |00b0: move-result-wide v7 │ │ -49bae6: bcb7 |00b1: sub-long/2addr v7, v11 │ │ -49bae8: 7030 2860 7e08 |00b2: invoke-direct {v14, v7, v8}, Ljava/util/Date;.:(J)V // method@6028 │ │ -49baee: 2200 880e |00b5: new-instance v0, Lorg/bouncycastle/asn1/x500/X500NameBuilder; // type@0e88 │ │ -49baf2: 6203 4c37 |00b7: sget-object v3, Lorg/bouncycastle/asn1/x500/style/BCStyle;.INSTANCE:Lorg/bouncycastle/asn1/x500/X500NameStyle; // field@374c │ │ -49baf6: 7020 cc72 3000 |00b9: invoke-direct {v0, v3}, Lorg/bouncycastle/asn1/x500/X500NameBuilder;.:(Lorg/bouncycastle/asn1/x500/X500NameStyle;)V // method@72cc │ │ -49bafc: 2203 590b |00bc: new-instance v3, Ljava/security/SecureRandom; // type@0b59 │ │ -49bb00: 7010 685e 0300 |00be: invoke-direct {v3}, Ljava/security/SecureRandom;.:()V // method@5e68 │ │ -49bb06: 6e10 215e 0200 |00c1: invoke-virtual {v2}, Ljava/security/KeyPair;.getPublic:()Ljava/security/PublicKey; // method@5e21 │ │ -49bb0c: 0c07 |00c4: move-result-object v7 │ │ -49bb0e: 7210 675e 0700 |00c5: invoke-interface {v7}, Ljava/security/PublicKey;.getEncoded:()[B // method@5e67 │ │ -49bb14: 0c07 |00c8: move-result-object v7 │ │ -49bb16: 7110 4975 0700 |00c9: invoke-static {v7}, Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo; // method@7549 │ │ -49bb1c: 0c11 |00cc: move-result-object v17 │ │ -49bb1e: 6e10 d372 0000 |00cd: invoke-virtual {v0}, Lorg/bouncycastle/asn1/x500/X500NameBuilder;.build:()Lorg/bouncycastle/asn1/x500/X500Name; // method@72d3 │ │ -49bb24: 0c10 |00d0: move-result-object v16 │ │ -49bb26: 2200 260f |00d1: new-instance v0, Lorg/bouncycastle/cert/X509v3CertificateBuilder; // type@0f26 │ │ -49bb2a: 6e10 715e 0300 |00d3: invoke-virtual {v3}, Ljava/security/SecureRandom;.nextLong:()J // method@5e71 │ │ -49bb30: 0b07 |00d6: move-result-wide v7 │ │ -49bb32: 7120 8f5d 8700 |00d7: invoke-static {v7, v8}, Ljava/math/BigInteger;.valueOf:(J)Ljava/math/BigInteger; // method@5d8f │ │ -49bb38: 0c0d |00da: move-result-object v13 │ │ -49bb3a: 070b |00db: move-object v11, v0 │ │ -49bb3c: 080c 1000 |00dc: move-object/from16 v12, v16 │ │ -49bb40: 7607 2078 0b00 |00de: invoke-direct/range {v11, v12, v13, v14, v15, v16, v17}, Lorg/bouncycastle/cert/X509v3CertificateBuilder;.:(Lorg/bouncycastle/asn1/x500/X500Name;Ljava/math/BigInteger;Ljava/util/Date;Ljava/util/Date;Lorg/bouncycastle/asn1/x500/X500Name;Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;)V // method@7820 │ │ -49bb46: 2203 ed1b |00e1: new-instance v3, Lorg/bouncycastle/operator/jcajce/JcaContentSignerBuilder; // type@1bed │ │ -49bb4a: 1a07 f34e |00e3: const-string v7, "SHA512WithRSA" // string@4ef3 │ │ -49bb4e: 7020 56bd 7300 |00e5: invoke-direct {v3, v7}, Lorg/bouncycastle/operator/jcajce/JcaContentSignerBuilder;.:(Ljava/lang/String;)V // method@bd56 │ │ -49bb54: 6e20 5dbd 4300 |00e8: invoke-virtual {v3, v4}, Lorg/bouncycastle/operator/jcajce/JcaContentSignerBuilder;.setProvider:(Ljava/lang/String;)Lorg/bouncycastle/operator/jcajce/JcaContentSignerBuilder; // method@bd5d │ │ -49bb5a: 0c03 |00eb: move-result-object v3 │ │ -49bb5c: 6e10 205e 0200 |00ec: invoke-virtual {v2}, Ljava/security/KeyPair;.getPrivate:()Ljava/security/PrivateKey; // method@5e20 │ │ -49bb62: 0c07 |00ef: move-result-object v7 │ │ -49bb64: 6e20 59bd 7300 |00f0: invoke-virtual {v3, v7}, Lorg/bouncycastle/operator/jcajce/JcaContentSignerBuilder;.build:(Ljava/security/PrivateKey;)Lorg/bouncycastle/operator/ContentSigner; // method@bd59 │ │ -49bb6a: 0c03 |00f3: move-result-object v3 │ │ -49bb6c: 6e20 2778 3000 |00f4: invoke-virtual {v0, v3}, Lorg/bouncycastle/cert/X509v3CertificateBuilder;.build:(Lorg/bouncycastle/operator/ContentSigner;)Lorg/bouncycastle/cert/X509CertificateHolder; // method@7827 │ │ -49bb72: 0c00 |00f7: move-result-object v0 │ │ -49bb74: 2203 750f |00f8: new-instance v3, Lorg/bouncycastle/cert/jcajce/JcaX509CertificateConverter; // type@0f75 │ │ -49bb78: 7010 9e79 0300 |00fa: invoke-direct {v3}, Lorg/bouncycastle/cert/jcajce/JcaX509CertificateConverter;.:()V // method@799e │ │ -49bb7e: 6e20 a079 4300 |00fd: invoke-virtual {v3, v4}, Lorg/bouncycastle/cert/jcajce/JcaX509CertificateConverter;.setProvider:(Ljava/lang/String;)Lorg/bouncycastle/cert/jcajce/JcaX509CertificateConverter; // method@79a0 │ │ -49bb84: 0c03 |0100: move-result-object v3 │ │ -49bb86: 6e20 9f79 0300 |0101: invoke-virtual {v3, v0}, Lorg/bouncycastle/cert/jcajce/JcaX509CertificateConverter;.getCertificate:(Lorg/bouncycastle/cert/X509CertificateHolder;)Ljava/security/cert/X509Certificate; // method@799f │ │ -49bb8c: 0c00 |0104: move-result-object v0 │ │ -49bb8e: 7100 315e 0000 |0105: invoke-static {}, Ljava/security/KeyStore;.getDefaultType:()Ljava/lang/String; // method@5e31 │ │ -49bb94: 0c03 |0108: move-result-object v3 │ │ -49bb96: 7110 325e 0300 |0109: invoke-static {v3}, Ljava/security/KeyStore;.getInstance:(Ljava/lang/String;)Ljava/security/KeyStore; // method@5e32 │ │ -49bb9c: 0c03 |010c: move-result-object v3 │ │ -49bb9e: 5b13 7469 |010d: iput-object v3, v1, Lorg/purple/smokestack/TcpListener;.m_keyStore:Ljava/security/KeyStore; // field@6974 │ │ -49bba2: 6e30 365e a30a |010f: invoke-virtual {v3, v10, v10}, Ljava/security/KeyStore;.load:(Ljava/io/InputStream;[C)V // method@5e36 │ │ -49bba8: 5413 7469 |0112: iget-object v3, v1, Lorg/purple/smokestack/TcpListener;.m_keyStore:Ljava/security/KeyStore; // field@6974 │ │ -49bbac: 5414 7169 |0114: iget-object v4, v1, Lorg/purple/smokestack/TcpListener;.m_ipAddress:Ljava/lang/String; // field@6971 │ │ -49bbb0: 6e20 2f5e 4300 |0116: invoke-virtual {v3, v4}, Ljava/security/KeyStore;.deleteEntry:(Ljava/lang/String;)V // method@5e2f │ │ -49bbb6: 5413 7469 |0119: iget-object v3, v1, Lorg/purple/smokestack/TcpListener;.m_keyStore:Ljava/security/KeyStore; // field@6974 │ │ -49bbba: 5414 7169 |011b: iget-object v4, v1, Lorg/purple/smokestack/TcpListener;.m_ipAddress:Ljava/lang/String; // field@6971 │ │ -49bbbe: 6e10 205e 0200 |011d: invoke-virtual {v2}, Ljava/security/KeyPair;.getPrivate:()Ljava/security/PrivateKey; // method@5e20 │ │ -49bbc4: 0c07 |0120: move-result-object v7 │ │ -49bbc6: 2366 771f |0121: new-array v6, v6, [Ljava/security/cert/X509Certificate; // type@1f77 │ │ -49bbca: 4d00 0605 |0123: aput-object v0, v6, v5 │ │ -49bbce: 6e56 375e 43a7 |0125: invoke-virtual {v3, v4, v7, v10, v6}, Ljava/security/KeyStore;.setKeyEntry:(Ljava/lang/String;Ljava/security/Key;[C[Ljava/security/cert/Certificate;)V // method@5e37 │ │ -49bbd4: 541b 6f69 |0128: iget-object v11, v1, Lorg/purple/smokestack/TcpListener;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@696f │ │ -49bbd8: 541c 6e69 |012a: iget-object v12, v1, Lorg/purple/smokestack/TcpListener;.m_cryptography:Lorg/purple/smokestack/Cryptography; // field@696e │ │ -49bbdc: 6e10 3f5f 0000 |012c: invoke-virtual {v0}, Ljava/security/cert/X509Certificate;.getEncoded:()[B // method@5f3f │ │ -49bbe2: 0c0d |012f: move-result-object v13 │ │ -49bbe4: 6e10 205e 0200 |0130: invoke-virtual {v2}, Ljava/security/KeyPair;.getPrivate:()Ljava/security/PrivateKey; // method@5e20 │ │ -49bbea: 0c00 |0133: move-result-object v0 │ │ -49bbec: 7210 605e 0000 |0134: invoke-interface {v0}, Ljava/security/PrivateKey;.getEncoded:()[B // method@5e60 │ │ -49bbf2: 0c0e |0137: move-result-object v14 │ │ -49bbf4: 6e10 215e 0200 |0138: invoke-virtual {v2}, Ljava/security/KeyPair;.getPublic:()Ljava/security/PublicKey; // method@5e21 │ │ -49bbfa: 0c00 |013b: move-result-object v0 │ │ -49bbfc: 7210 675e 0000 |013c: invoke-interface {v0}, Ljava/security/PublicKey;.getEncoded:()[B // method@5e67 │ │ -49bc02: 0c0f |013f: move-result-object v15 │ │ -49bc04: 5410 7969 |0140: iget-object v0, v1, Lorg/purple/smokestack/TcpListener;.m_oid:Ljava/util/concurrent/atomic/AtomicInteger; // field@6979 │ │ -49bc08: 6e10 1c61 0000 |0142: invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@611c │ │ -49bc0e: 0a10 |0145: move-result v16 │ │ -49bc10: 7406 e2d0 0b00 |0146: invoke-virtual/range {v11, v12, v13, v14, v15, v16}, Lorg/purple/smokestack/Database;.writeListenerCertificateDetails:(Lorg/purple/smokestack/Cryptography;[B[B[BI)V // method@d0e2 │ │ -49bc16: 281f |0149: goto 0168 // +001f │ │ -49bc18: 0d00 |014a: move-exception v0 │ │ -49bc1a: 5b1a 7469 |014b: iput-object v10, v1, Lorg/purple/smokestack/TcpListener;.m_keyStore:Ljava/security/KeyStore; // field@6974 │ │ -49bc1e: 2202 fc0a |014d: new-instance v2, Ljava/lang/StringBuilder; // type@0afc │ │ -49bc22: 7010 125d 0200 |014f: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ -49bc28: 6e20 1d5d 9200 |0152: invoke-virtual {v2, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49bc2e: 6e10 505c 0000 |0155: invoke-virtual {v0}, Ljava/lang/Exception;.getMessage:()Ljava/lang/String; // method@5c50 │ │ -49bc34: 0c00 |0158: move-result-object v0 │ │ -49bc36: 6e20 1d5d 0200 |0159: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49bc3c: 1a00 3404 |015c: const-string v0, ") occurred while preparing the key store." // string@0434 │ │ -49bc40: 6e20 1d5d 0200 |015e: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49bc46: 6e10 285d 0200 |0161: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ -49bc4c: 0c00 |0164: move-result-object v0 │ │ -49bc4e: 7020 69d2 0100 |0165: invoke-direct {v1, v0}, Lorg/purple/smokestack/TcpListener;.setError:(Ljava/lang/String;)V // method@d269 │ │ -49bc54: 0e00 |0168: return-void │ │ -49bc56: 2202 fc0a |0169: new-instance v2, Ljava/lang/StringBuilder; // type@0afc │ │ -49bc5a: 7010 125d 0200 |016b: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ -49bc60: 6e20 1d5d 9200 |016e: invoke-virtual {v2, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49bc66: 6e10 505c 0000 |0171: invoke-virtual {v0}, Ljava/lang/Exception;.getMessage:()Ljava/lang/String; // method@5c50 │ │ -49bc6c: 0c00 |0174: move-result-object v0 │ │ -49bc6e: 6e20 1d5d 0200 |0175: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49bc74: 6e20 1d5d 7200 |0178: invoke-virtual {v2, v7}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49bc7a: 6e10 285d 0200 |017b: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ -49bc80: 0c00 |017e: move-result-object v0 │ │ -49bc82: 7020 69d2 0100 |017f: invoke-direct {v1, v0}, Lorg/purple/smokestack/TcpListener;.setError:(Ljava/lang/String;)V // method@d269 │ │ -49bc88: 0e00 |0182: return-void │ │ +49b970: |[49b970] org.purple.smokestack.TcpListener.prepareCertificate:([B[B[B)V │ │ +49b980: 0801 1200 |0000: move-object/from16 v1, v18 │ │ +49b984: 0800 1300 |0002: move-object/from16 v0, v19 │ │ +49b988: 0802 1400 |0004: move-object/from16 v2, v20 │ │ +49b98c: 0803 1500 |0006: move-object/from16 v3, v21 │ │ +49b990: 1a04 890f |0008: const-string v4, "BC" // string@0f89 │ │ +49b994: 5415 7469 |000a: iget-object v5, v1, Lorg/purple/smokestack/TcpListener;.m_keyStore:Ljava/security/KeyStore; // field@6974 │ │ +49b998: 3805 0300 |000c: if-eqz v5, 000f // +0003 │ │ +49b99c: 0e00 |000e: return-void │ │ +49b99e: 1205 |000f: const/4 v5, #int 0 // #0 │ │ +49b9a0: 1216 |0010: const/4 v6, #int 1 // #1 │ │ +49b9a2: 1a07 3304 |0011: const-string v7, ") occurred while preparing the key pair." // string@0433 │ │ +49b9a6: 1a08 8f4c |0013: const-string v8, "RSA" // string@4c8f │ │ +49b9aa: 1a09 1a0e |0015: const-string v9, "An error (" // string@0e1a │ │ +49b9ae: 120a |0017: const/4 v10, #int 0 // #0 │ │ +49b9b0: 3800 7e00 |0018: if-eqz v0, 0096 // +007e │ │ +49b9b4: 210b |001a: array-length v11, v0 │ │ +49b9b6: 380b 7b00 |001b: if-eqz v11, 0096 // +007b │ │ +49b9ba: 3802 7900 |001d: if-eqz v2, 0096 // +0079 │ │ +49b9be: 212b |001f: array-length v11, v2 │ │ +49b9c0: 380b 7600 |0020: if-eqz v11, 0096 // +0076 │ │ +49b9c4: 3803 7400 |0022: if-eqz v3, 0096 // +0074 │ │ +49b9c8: 213b |0024: array-length v11, v3 │ │ +49b9ca: 390b 0300 |0025: if-nez v11, 0028 // +0003 │ │ +49b9ce: 286f |0027: goto 0096 // +006f │ │ +49b9d0: 7130 81d0 2803 |0028: invoke-static {v8, v2, v3}, Lorg/purple/smokestack/Cryptography;.generatePrivatePublicKeyPair:(Ljava/lang/String;[B[B)Ljava/security/KeyPair; // method@d081 │ │ +49b9d6: 0c02 |002b: move-result-object v2 │ │ +49b9d8: 3802 7000 |002c: if-eqz v2, 009c // +0070 │ │ +49b9dc: 2203 ab0a |002e: new-instance v3, Ljava/io/ByteArrayInputStream; // type@0aab │ │ +49b9e0: 7020 745b 0300 |0030: invoke-direct {v3, v0}, Ljava/io/ByteArrayInputStream;.:([B)V // method@5b74 │ │ +49b9e6: 1a00 675a |0033: const-string v0, "X.509" // string@5a67 │ │ +49b9ea: 7110 c55e 0000 |0035: invoke-static {v0}, Ljava/security/cert/CertificateFactory;.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory; // method@5ec5 │ │ +49b9f0: 0c00 |0038: move-result-object v0 │ │ +49b9f2: 6e20 c45e 3000 |0039: invoke-virtual {v0, v3}, Ljava/security/cert/CertificateFactory;.generateCertificate:(Ljava/io/InputStream;)Ljava/security/cert/Certificate; // method@5ec4 │ │ +49b9f8: 0c00 |003c: move-result-object v0 │ │ +49b9fa: 1f00 8c0b |003d: check-cast v0, Ljava/security/cert/X509Certificate; // type@0b8c │ │ +49b9fe: 7100 315e 0000 |003f: invoke-static {}, Ljava/security/KeyStore;.getDefaultType:()Ljava/lang/String; // method@5e31 │ │ +49ba04: 0c08 |0042: move-result-object v8 │ │ +49ba06: 7110 325e 0800 |0043: invoke-static {v8}, Ljava/security/KeyStore;.getInstance:(Ljava/lang/String;)Ljava/security/KeyStore; // method@5e32 │ │ +49ba0c: 0c08 |0046: move-result-object v8 │ │ +49ba0e: 5b18 7469 |0047: iput-object v8, v1, Lorg/purple/smokestack/TcpListener;.m_keyStore:Ljava/security/KeyStore; // field@6974 │ │ +49ba12: 6e30 365e a80a |0049: invoke-virtual {v8, v10, v10}, Ljava/security/KeyStore;.load:(Ljava/io/InputStream;[C)V // method@5e36 │ │ +49ba18: 5418 7469 |004c: iget-object v8, v1, Lorg/purple/smokestack/TcpListener;.m_keyStore:Ljava/security/KeyStore; // field@6974 │ │ +49ba1c: 541b 7169 |004e: iget-object v11, v1, Lorg/purple/smokestack/TcpListener;.m_ipAddress:Ljava/lang/String; // field@6971 │ │ +49ba20: 6e20 2f5e b800 |0050: invoke-virtual {v8, v11}, Ljava/security/KeyStore;.deleteEntry:(Ljava/lang/String;)V // method@5e2f │ │ +49ba26: 5418 7469 |0053: iget-object v8, v1, Lorg/purple/smokestack/TcpListener;.m_keyStore:Ljava/security/KeyStore; // field@6974 │ │ +49ba2a: 541b 7169 |0055: iget-object v11, v1, Lorg/purple/smokestack/TcpListener;.m_ipAddress:Ljava/lang/String; // field@6971 │ │ +49ba2e: 6e10 205e 0200 |0057: invoke-virtual {v2}, Ljava/security/KeyPair;.getPrivate:()Ljava/security/PrivateKey; // method@5e20 │ │ +49ba34: 0c0c |005a: move-result-object v12 │ │ +49ba36: 236d 771f |005b: new-array v13, v6, [Ljava/security/cert/X509Certificate; // type@1f77 │ │ +49ba3a: 4d00 0d05 |005d: aput-object v0, v13, v5 │ │ +49ba3e: 6e5d 375e b8ac |005f: invoke-virtual {v8, v11, v12, v10, v13}, Ljava/security/KeyStore;.setKeyEntry:(Ljava/lang/String;Ljava/security/Key;[C[Ljava/security/cert/Certificate;)V // method@5e37 │ │ +49ba44: 6e10 775b 0300 |0062: invoke-virtual {v3}, Ljava/io/ByteArrayInputStream;.close:()V // method@5b77 │ │ +49ba4a: 0e00 |0065: return-void │ │ +49ba4c: 0d00 |0066: move-exception v0 │ │ +49ba4e: 2805 |0067: goto 006c // +0005 │ │ +49ba50: 0d00 |0068: move-exception v0 │ │ +49ba52: 2824 |0069: goto 008d // +0024 │ │ +49ba54: 0d00 |006a: move-exception v0 │ │ +49ba56: 07a3 |006b: move-object v3, v10 │ │ +49ba58: 2208 fc0a |006c: new-instance v8, Ljava/lang/StringBuilder; // type@0afc │ │ +49ba5c: 7010 125d 0800 |006e: invoke-direct {v8}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ +49ba62: 6e20 1d5d 9800 |0071: invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49ba68: 6e10 505c 0000 |0074: invoke-virtual {v0}, Ljava/lang/Exception;.getMessage:()Ljava/lang/String; // method@5c50 │ │ +49ba6e: 0c00 |0077: move-result-object v0 │ │ +49ba70: 6e20 1d5d 0800 |0078: invoke-virtual {v8, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49ba76: 6e20 1d5d 7800 |007b: invoke-virtual {v8, v7}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49ba7c: 6e10 285d 0800 |007e: invoke-virtual {v8}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ +49ba82: 0c00 |0081: move-result-object v0 │ │ +49ba84: 7020 69d2 0100 |0082: invoke-direct {v1, v0}, Lorg/purple/smokestack/TcpListener;.setError:(Ljava/lang/String;)V // method@d269 │ │ +49ba8a: 3803 1700 |0085: if-eqz v3, 009c // +0017 │ │ +49ba8e: 6e10 775b 0300 |0087: invoke-virtual {v3}, Ljava/io/ByteArrayInputStream;.close:()V // method@5b77 │ │ +49ba94: 2812 |008a: goto 009c // +0012 │ │ +49ba96: 0d00 |008b: move-exception v0 │ │ +49ba98: 073a |008c: move-object v10, v3 │ │ +49ba9a: 380a 0500 |008d: if-eqz v10, 0092 // +0005 │ │ +49ba9e: 6e10 775b 0a00 |008f: invoke-virtual {v10}, Ljava/io/ByteArrayInputStream;.close:()V // method@5b77 │ │ +49baa4: 2700 |0092: throw v0 │ │ +49baa6: 0d00 |0093: move-exception v0 │ │ +49baa8: 2900 d500 |0094: goto/16 0169 // +00d5 │ │ +49baac: 1300 000c |0096: const/16 v0, #int 3072 // #c00 │ │ +49bab0: 7120 80d0 0800 |0098: invoke-static {v8, v0}, Lorg/purple/smokestack/Cryptography;.generatePrivatePublicKeyPair:(Ljava/lang/String;I)Ljava/security/KeyPair; // method@d080 │ │ +49bab6: 0c02 |009b: move-result-object v2 │ │ +49bab8: 220f c00b |009c: new-instance v15, Ljava/util/Date; // type@0bc0 │ │ +49babc: 7100 2b5d 0000 |009e: invoke-static {}, Ljava/lang/System;.currentTimeMillis:()J // method@5d2b │ │ +49bac2: 0b07 |00a1: move-result-wide v7 │ │ +49bac4: 180b 002c b157 0700 0000 |00a2: const-wide v11, #double 1.55809e-313 // #0000000757b12c00 │ │ +49bace: bbb7 |00a7: add-long/2addr v7, v11 │ │ +49bad0: 7030 2860 7f08 |00a8: invoke-direct {v15, v7, v8}, Ljava/util/Date;.:(J)V // method@6028 │ │ +49bad6: 220e c00b |00ab: new-instance v14, Ljava/util/Date; // type@0bc0 │ │ +49bada: 7100 2b5d 0000 |00ad: invoke-static {}, Ljava/lang/System;.currentTimeMillis:()J // method@5d2b │ │ +49bae0: 0b07 |00b0: move-result-wide v7 │ │ +49bae2: bcb7 |00b1: sub-long/2addr v7, v11 │ │ +49bae4: 7030 2860 7e08 |00b2: invoke-direct {v14, v7, v8}, Ljava/util/Date;.:(J)V // method@6028 │ │ +49baea: 2200 880e |00b5: new-instance v0, Lorg/bouncycastle/asn1/x500/X500NameBuilder; // type@0e88 │ │ +49baee: 6203 4c37 |00b7: sget-object v3, Lorg/bouncycastle/asn1/x500/style/BCStyle;.INSTANCE:Lorg/bouncycastle/asn1/x500/X500NameStyle; // field@374c │ │ +49baf2: 7020 cc72 3000 |00b9: invoke-direct {v0, v3}, Lorg/bouncycastle/asn1/x500/X500NameBuilder;.:(Lorg/bouncycastle/asn1/x500/X500NameStyle;)V // method@72cc │ │ +49baf8: 2203 590b |00bc: new-instance v3, Ljava/security/SecureRandom; // type@0b59 │ │ +49bafc: 7010 685e 0300 |00be: invoke-direct {v3}, Ljava/security/SecureRandom;.:()V // method@5e68 │ │ +49bb02: 6e10 215e 0200 |00c1: invoke-virtual {v2}, Ljava/security/KeyPair;.getPublic:()Ljava/security/PublicKey; // method@5e21 │ │ +49bb08: 0c07 |00c4: move-result-object v7 │ │ +49bb0a: 7210 675e 0700 |00c5: invoke-interface {v7}, Ljava/security/PublicKey;.getEncoded:()[B // method@5e67 │ │ +49bb10: 0c07 |00c8: move-result-object v7 │ │ +49bb12: 7110 4975 0700 |00c9: invoke-static {v7}, Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo; // method@7549 │ │ +49bb18: 0c11 |00cc: move-result-object v17 │ │ +49bb1a: 6e10 d372 0000 |00cd: invoke-virtual {v0}, Lorg/bouncycastle/asn1/x500/X500NameBuilder;.build:()Lorg/bouncycastle/asn1/x500/X500Name; // method@72d3 │ │ +49bb20: 0c10 |00d0: move-result-object v16 │ │ +49bb22: 2200 260f |00d1: new-instance v0, Lorg/bouncycastle/cert/X509v3CertificateBuilder; // type@0f26 │ │ +49bb26: 6e10 715e 0300 |00d3: invoke-virtual {v3}, Ljava/security/SecureRandom;.nextLong:()J // method@5e71 │ │ +49bb2c: 0b07 |00d6: move-result-wide v7 │ │ +49bb2e: 7120 8f5d 8700 |00d7: invoke-static {v7, v8}, Ljava/math/BigInteger;.valueOf:(J)Ljava/math/BigInteger; // method@5d8f │ │ +49bb34: 0c0d |00da: move-result-object v13 │ │ +49bb36: 070b |00db: move-object v11, v0 │ │ +49bb38: 080c 1000 |00dc: move-object/from16 v12, v16 │ │ +49bb3c: 7607 2078 0b00 |00de: invoke-direct/range {v11, v12, v13, v14, v15, v16, v17}, Lorg/bouncycastle/cert/X509v3CertificateBuilder;.:(Lorg/bouncycastle/asn1/x500/X500Name;Ljava/math/BigInteger;Ljava/util/Date;Ljava/util/Date;Lorg/bouncycastle/asn1/x500/X500Name;Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;)V // method@7820 │ │ +49bb42: 2203 ed1b |00e1: new-instance v3, Lorg/bouncycastle/operator/jcajce/JcaContentSignerBuilder; // type@1bed │ │ +49bb46: 1a07 f34e |00e3: const-string v7, "SHA512WithRSA" // string@4ef3 │ │ +49bb4a: 7020 56bd 7300 |00e5: invoke-direct {v3, v7}, Lorg/bouncycastle/operator/jcajce/JcaContentSignerBuilder;.:(Ljava/lang/String;)V // method@bd56 │ │ +49bb50: 6e20 5dbd 4300 |00e8: invoke-virtual {v3, v4}, Lorg/bouncycastle/operator/jcajce/JcaContentSignerBuilder;.setProvider:(Ljava/lang/String;)Lorg/bouncycastle/operator/jcajce/JcaContentSignerBuilder; // method@bd5d │ │ +49bb56: 0c03 |00eb: move-result-object v3 │ │ +49bb58: 6e10 205e 0200 |00ec: invoke-virtual {v2}, Ljava/security/KeyPair;.getPrivate:()Ljava/security/PrivateKey; // method@5e20 │ │ +49bb5e: 0c07 |00ef: move-result-object v7 │ │ +49bb60: 6e20 59bd 7300 |00f0: invoke-virtual {v3, v7}, Lorg/bouncycastle/operator/jcajce/JcaContentSignerBuilder;.build:(Ljava/security/PrivateKey;)Lorg/bouncycastle/operator/ContentSigner; // method@bd59 │ │ +49bb66: 0c03 |00f3: move-result-object v3 │ │ +49bb68: 6e20 2778 3000 |00f4: invoke-virtual {v0, v3}, Lorg/bouncycastle/cert/X509v3CertificateBuilder;.build:(Lorg/bouncycastle/operator/ContentSigner;)Lorg/bouncycastle/cert/X509CertificateHolder; // method@7827 │ │ +49bb6e: 0c00 |00f7: move-result-object v0 │ │ +49bb70: 2203 750f |00f8: new-instance v3, Lorg/bouncycastle/cert/jcajce/JcaX509CertificateConverter; // type@0f75 │ │ +49bb74: 7010 9e79 0300 |00fa: invoke-direct {v3}, Lorg/bouncycastle/cert/jcajce/JcaX509CertificateConverter;.:()V // method@799e │ │ +49bb7a: 6e20 a079 4300 |00fd: invoke-virtual {v3, v4}, Lorg/bouncycastle/cert/jcajce/JcaX509CertificateConverter;.setProvider:(Ljava/lang/String;)Lorg/bouncycastle/cert/jcajce/JcaX509CertificateConverter; // method@79a0 │ │ +49bb80: 0c03 |0100: move-result-object v3 │ │ +49bb82: 6e20 9f79 0300 |0101: invoke-virtual {v3, v0}, Lorg/bouncycastle/cert/jcajce/JcaX509CertificateConverter;.getCertificate:(Lorg/bouncycastle/cert/X509CertificateHolder;)Ljava/security/cert/X509Certificate; // method@799f │ │ +49bb88: 0c00 |0104: move-result-object v0 │ │ +49bb8a: 7100 315e 0000 |0105: invoke-static {}, Ljava/security/KeyStore;.getDefaultType:()Ljava/lang/String; // method@5e31 │ │ +49bb90: 0c03 |0108: move-result-object v3 │ │ +49bb92: 7110 325e 0300 |0109: invoke-static {v3}, Ljava/security/KeyStore;.getInstance:(Ljava/lang/String;)Ljava/security/KeyStore; // method@5e32 │ │ +49bb98: 0c03 |010c: move-result-object v3 │ │ +49bb9a: 5b13 7469 |010d: iput-object v3, v1, Lorg/purple/smokestack/TcpListener;.m_keyStore:Ljava/security/KeyStore; // field@6974 │ │ +49bb9e: 6e30 365e a30a |010f: invoke-virtual {v3, v10, v10}, Ljava/security/KeyStore;.load:(Ljava/io/InputStream;[C)V // method@5e36 │ │ +49bba4: 5413 7469 |0112: iget-object v3, v1, Lorg/purple/smokestack/TcpListener;.m_keyStore:Ljava/security/KeyStore; // field@6974 │ │ +49bba8: 5414 7169 |0114: iget-object v4, v1, Lorg/purple/smokestack/TcpListener;.m_ipAddress:Ljava/lang/String; // field@6971 │ │ +49bbac: 6e20 2f5e 4300 |0116: invoke-virtual {v3, v4}, Ljava/security/KeyStore;.deleteEntry:(Ljava/lang/String;)V // method@5e2f │ │ +49bbb2: 5413 7469 |0119: iget-object v3, v1, Lorg/purple/smokestack/TcpListener;.m_keyStore:Ljava/security/KeyStore; // field@6974 │ │ +49bbb6: 5414 7169 |011b: iget-object v4, v1, Lorg/purple/smokestack/TcpListener;.m_ipAddress:Ljava/lang/String; // field@6971 │ │ +49bbba: 6e10 205e 0200 |011d: invoke-virtual {v2}, Ljava/security/KeyPair;.getPrivate:()Ljava/security/PrivateKey; // method@5e20 │ │ +49bbc0: 0c07 |0120: move-result-object v7 │ │ +49bbc2: 2366 771f |0121: new-array v6, v6, [Ljava/security/cert/X509Certificate; // type@1f77 │ │ +49bbc6: 4d00 0605 |0123: aput-object v0, v6, v5 │ │ +49bbca: 6e56 375e 43a7 |0125: invoke-virtual {v3, v4, v7, v10, v6}, Ljava/security/KeyStore;.setKeyEntry:(Ljava/lang/String;Ljava/security/Key;[C[Ljava/security/cert/Certificate;)V // method@5e37 │ │ +49bbd0: 541b 6f69 |0128: iget-object v11, v1, Lorg/purple/smokestack/TcpListener;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@696f │ │ +49bbd4: 541c 6e69 |012a: iget-object v12, v1, Lorg/purple/smokestack/TcpListener;.m_cryptography:Lorg/purple/smokestack/Cryptography; // field@696e │ │ +49bbd8: 6e10 3f5f 0000 |012c: invoke-virtual {v0}, Ljava/security/cert/X509Certificate;.getEncoded:()[B // method@5f3f │ │ +49bbde: 0c0d |012f: move-result-object v13 │ │ +49bbe0: 6e10 205e 0200 |0130: invoke-virtual {v2}, Ljava/security/KeyPair;.getPrivate:()Ljava/security/PrivateKey; // method@5e20 │ │ +49bbe6: 0c00 |0133: move-result-object v0 │ │ +49bbe8: 7210 605e 0000 |0134: invoke-interface {v0}, Ljava/security/PrivateKey;.getEncoded:()[B // method@5e60 │ │ +49bbee: 0c0e |0137: move-result-object v14 │ │ +49bbf0: 6e10 215e 0200 |0138: invoke-virtual {v2}, Ljava/security/KeyPair;.getPublic:()Ljava/security/PublicKey; // method@5e21 │ │ +49bbf6: 0c00 |013b: move-result-object v0 │ │ +49bbf8: 7210 675e 0000 |013c: invoke-interface {v0}, Ljava/security/PublicKey;.getEncoded:()[B // method@5e67 │ │ +49bbfe: 0c0f |013f: move-result-object v15 │ │ +49bc00: 5410 7969 |0140: iget-object v0, v1, Lorg/purple/smokestack/TcpListener;.m_oid:Ljava/util/concurrent/atomic/AtomicInteger; // field@6979 │ │ +49bc04: 6e10 1c61 0000 |0142: invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@611c │ │ +49bc0a: 0a10 |0145: move-result v16 │ │ +49bc0c: 7406 e2d0 0b00 |0146: invoke-virtual/range {v11, v12, v13, v14, v15, v16}, Lorg/purple/smokestack/Database;.writeListenerCertificateDetails:(Lorg/purple/smokestack/Cryptography;[B[B[BI)V // method@d0e2 │ │ +49bc12: 281f |0149: goto 0168 // +001f │ │ +49bc14: 0d00 |014a: move-exception v0 │ │ +49bc16: 5b1a 7469 |014b: iput-object v10, v1, Lorg/purple/smokestack/TcpListener;.m_keyStore:Ljava/security/KeyStore; // field@6974 │ │ +49bc1a: 2202 fc0a |014d: new-instance v2, Ljava/lang/StringBuilder; // type@0afc │ │ +49bc1e: 7010 125d 0200 |014f: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ +49bc24: 6e20 1d5d 9200 |0152: invoke-virtual {v2, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49bc2a: 6e10 505c 0000 |0155: invoke-virtual {v0}, Ljava/lang/Exception;.getMessage:()Ljava/lang/String; // method@5c50 │ │ +49bc30: 0c00 |0158: move-result-object v0 │ │ +49bc32: 6e20 1d5d 0200 |0159: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49bc38: 1a00 3404 |015c: const-string v0, ") occurred while preparing the key store." // string@0434 │ │ +49bc3c: 6e20 1d5d 0200 |015e: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49bc42: 6e10 285d 0200 |0161: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ +49bc48: 0c00 |0164: move-result-object v0 │ │ +49bc4a: 7020 69d2 0100 |0165: invoke-direct {v1, v0}, Lorg/purple/smokestack/TcpListener;.setError:(Ljava/lang/String;)V // method@d269 │ │ +49bc50: 0e00 |0168: return-void │ │ +49bc52: 2202 fc0a |0169: new-instance v2, Ljava/lang/StringBuilder; // type@0afc │ │ +49bc56: 7010 125d 0200 |016b: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ +49bc5c: 6e20 1d5d 9200 |016e: invoke-virtual {v2, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49bc62: 6e10 505c 0000 |0171: invoke-virtual {v0}, Ljava/lang/Exception;.getMessage:()Ljava/lang/String; // method@5c50 │ │ +49bc68: 0c00 |0174: move-result-object v0 │ │ +49bc6a: 6e20 1d5d 0200 |0175: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49bc70: 6e20 1d5d 7200 |0178: invoke-virtual {v2, v7}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49bc76: 6e10 285d 0200 |017b: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ +49bc7c: 0c00 |017e: move-result-object v0 │ │ +49bc7e: 7020 69d2 0100 |017f: invoke-direct {v1, v0}, Lorg/purple/smokestack/TcpListener;.setError:(Ljava/lang/String;)V // method@d269 │ │ +49bc84: 0e00 |0182: return-void │ │ catches : 7 │ │ 0x001a - 0x002c │ │ Ljava/lang/Exception; -> 0x0093 │ │ 0x002e - 0x0033 │ │ Ljava/lang/Exception; -> 0x006a │ │ -> 0x0068 │ │ 0x0033 - 0x0062 │ │ @@ -790698,56 +790697,56 @@ │ │ type : '()V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 9 │ │ ins : 1 │ │ outs : 7 │ │ insns size : 71 16-bit code units │ │ -49bce0: |[49bce0] org.purple.smokestack.TcpListener.saveStatistics:()V │ │ -49bcf0: 5480 7869 |0000: iget-object v0, v8, Lorg/purple/smokestack/TcpListener;.m_neighbors:Ljava/util/concurrent/ConcurrentHashMap; // field@6978 │ │ -49bcf4: 6e10 f160 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/ConcurrentHashMap;.size:()I // method@60f1 │ │ -49bcfa: 0a00 |0005: move-result v0 │ │ -49bcfc: 7110 fa5c 0000 |0006: invoke-static {v0}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@5cfa │ │ -49bd02: 0c04 |0009: move-result-object v4 │ │ -49bd04: 7100 315d 0000 |000a: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@5d31 │ │ -49bd0a: 0b00 |000d: move-result-wide v0 │ │ -49bd0c: 5482 7d69 |000e: iget-object v2, v8, Lorg/purple/smokestack/TcpListener;.m_startTime:Ljava/util/concurrent/atomic/AtomicLong; // field@697d │ │ -49bd10: 6e10 2161 0200 |0010: invoke-virtual {v2}, Ljava/util/concurrent/atomic/AtomicLong;.get:()J // method@6121 │ │ -49bd16: 0b02 |0013: move-result-wide v2 │ │ -49bd18: bc20 |0014: sub-long/2addr v0, v2 │ │ -49bd1a: 5482 7069 |0015: iget-object v2, v8, Lorg/purple/smokestack/TcpListener;.m_error:Ljava/lang/StringBuilder; // field@6970 │ │ -49bd1e: 1d02 |0017: monitor-enter v2 │ │ -49bd20: 5483 7069 |0018: iget-object v3, v8, Lorg/purple/smokestack/TcpListener;.m_error:Ljava/lang/StringBuilder; // field@6970 │ │ -49bd24: 6e10 285d 0300 |001a: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ -49bd2a: 0c03 |001d: move-result-object v3 │ │ -49bd2c: 1e02 |001e: monitor-exit v2 │ │ -49bd2e: 5482 6f69 |001f: iget-object v2, v8, Lorg/purple/smokestack/TcpListener;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@696f │ │ -49bd32: 5485 6e69 |0021: iget-object v5, v8, Lorg/purple/smokestack/TcpListener;.m_cryptography:Lorg/purple/smokestack/Cryptography; // field@696e │ │ -49bd36: 7010 63d2 0800 |0023: invoke-direct {v8}, Lorg/purple/smokestack/TcpListener;.listening:()Z // method@d263 │ │ -49bd3c: 0a06 |0026: move-result v6 │ │ -49bd3e: 3806 0500 |0027: if-eqz v6, 002c // +0005 │ │ -49bd42: 1a06 6f8a |0029: const-string v6, "listening" // string@8a6f │ │ -49bd46: 2803 |002b: goto 002e // +0003 │ │ -49bd48: 1a06 536d |002c: const-string v6, "disconnected" // string@6d53 │ │ -49bd4c: 7120 fb5c 1000 |002e: invoke-static {v0, v1}, Ljava/lang/String;.valueOf:(J)Ljava/lang/String; // method@5cfb │ │ -49bd52: 0c00 |0031: move-result-object v0 │ │ -49bd54: 5481 7969 |0032: iget-object v1, v8, Lorg/purple/smokestack/TcpListener;.m_oid:Ljava/util/concurrent/atomic/AtomicInteger; // field@6979 │ │ -49bd58: 6e10 1c61 0100 |0034: invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@611c │ │ -49bd5e: 0a01 |0037: move-result v1 │ │ -49bd60: 7110 fa5c 0100 |0038: invoke-static {v1}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@5cfa │ │ -49bd66: 0c07 |003b: move-result-object v7 │ │ -49bd68: 0721 |003c: move-object v1, v2 │ │ -49bd6a: 0752 |003d: move-object v2, v5 │ │ -49bd6c: 0765 |003e: move-object v5, v6 │ │ -49bd6e: 0706 |003f: move-object v6, v0 │ │ -49bd70: 7407 d5d0 0100 |0040: invoke-virtual/range {v1, v2, v3, v4, v5, v6, v7}, Lorg/purple/smokestack/Database;.saveListenerInformation:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V // method@d0d5 │ │ -49bd76: 0e00 |0043: return-void │ │ -49bd78: 0d00 |0044: move-exception v0 │ │ -49bd7a: 1e02 |0045: monitor-exit v2 │ │ -49bd7c: 2700 |0046: throw v0 │ │ +49bcdc: |[49bcdc] org.purple.smokestack.TcpListener.saveStatistics:()V │ │ +49bcec: 5480 7869 |0000: iget-object v0, v8, Lorg/purple/smokestack/TcpListener;.m_neighbors:Ljava/util/concurrent/ConcurrentHashMap; // field@6978 │ │ +49bcf0: 6e10 f160 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/ConcurrentHashMap;.size:()I // method@60f1 │ │ +49bcf6: 0a00 |0005: move-result v0 │ │ +49bcf8: 7110 fa5c 0000 |0006: invoke-static {v0}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@5cfa │ │ +49bcfe: 0c04 |0009: move-result-object v4 │ │ +49bd00: 7100 315d 0000 |000a: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@5d31 │ │ +49bd06: 0b00 |000d: move-result-wide v0 │ │ +49bd08: 5482 7d69 |000e: iget-object v2, v8, Lorg/purple/smokestack/TcpListener;.m_startTime:Ljava/util/concurrent/atomic/AtomicLong; // field@697d │ │ +49bd0c: 6e10 2161 0200 |0010: invoke-virtual {v2}, Ljava/util/concurrent/atomic/AtomicLong;.get:()J // method@6121 │ │ +49bd12: 0b02 |0013: move-result-wide v2 │ │ +49bd14: bc20 |0014: sub-long/2addr v0, v2 │ │ +49bd16: 5482 7069 |0015: iget-object v2, v8, Lorg/purple/smokestack/TcpListener;.m_error:Ljava/lang/StringBuilder; // field@6970 │ │ +49bd1a: 1d02 |0017: monitor-enter v2 │ │ +49bd1c: 5483 7069 |0018: iget-object v3, v8, Lorg/purple/smokestack/TcpListener;.m_error:Ljava/lang/StringBuilder; // field@6970 │ │ +49bd20: 6e10 285d 0300 |001a: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ +49bd26: 0c03 |001d: move-result-object v3 │ │ +49bd28: 1e02 |001e: monitor-exit v2 │ │ +49bd2a: 5482 6f69 |001f: iget-object v2, v8, Lorg/purple/smokestack/TcpListener;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@696f │ │ +49bd2e: 5485 6e69 |0021: iget-object v5, v8, Lorg/purple/smokestack/TcpListener;.m_cryptography:Lorg/purple/smokestack/Cryptography; // field@696e │ │ +49bd32: 7010 63d2 0800 |0023: invoke-direct {v8}, Lorg/purple/smokestack/TcpListener;.listening:()Z // method@d263 │ │ +49bd38: 0a06 |0026: move-result v6 │ │ +49bd3a: 3806 0500 |0027: if-eqz v6, 002c // +0005 │ │ +49bd3e: 1a06 6f8a |0029: const-string v6, "listening" // string@8a6f │ │ +49bd42: 2803 |002b: goto 002e // +0003 │ │ +49bd44: 1a06 536d |002c: const-string v6, "disconnected" // string@6d53 │ │ +49bd48: 7120 fb5c 1000 |002e: invoke-static {v0, v1}, Ljava/lang/String;.valueOf:(J)Ljava/lang/String; // method@5cfb │ │ +49bd4e: 0c00 |0031: move-result-object v0 │ │ +49bd50: 5481 7969 |0032: iget-object v1, v8, Lorg/purple/smokestack/TcpListener;.m_oid:Ljava/util/concurrent/atomic/AtomicInteger; // field@6979 │ │ +49bd54: 6e10 1c61 0100 |0034: invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@611c │ │ +49bd5a: 0a01 |0037: move-result v1 │ │ +49bd5c: 7110 fa5c 0100 |0038: invoke-static {v1}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@5cfa │ │ +49bd62: 0c07 |003b: move-result-object v7 │ │ +49bd64: 0721 |003c: move-object v1, v2 │ │ +49bd66: 0752 |003d: move-object v2, v5 │ │ +49bd68: 0765 |003e: move-object v5, v6 │ │ +49bd6a: 0706 |003f: move-object v6, v0 │ │ +49bd6c: 7407 d5d0 0100 |0040: invoke-virtual/range {v1, v2, v3, v4, v5, v6, v7}, Lorg/purple/smokestack/Database;.saveListenerInformation:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V // method@d0d5 │ │ +49bd72: 0e00 |0043: return-void │ │ +49bd74: 0d00 |0044: move-exception v0 │ │ +49bd76: 1e02 |0045: monitor-exit v2 │ │ +49bd78: 2700 |0046: throw v0 │ │ catches : 2 │ │ 0x0018 - 0x001f │ │ -> 0x0044 │ │ 0x0045 - 0x0046 │ │ -> 0x0044 │ │ positions : │ │ 0x0000 line=436 │ │ @@ -790769,31 +790768,31 @@ │ │ type : '(Ljava/lang/String;)V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 6 │ │ ins : 2 │ │ outs : 3 │ │ insns size : 28 16-bit code units │ │ -49be78: |[49be78] org.purple.smokestack.TcpListener.setError:(Ljava/lang/String;)V │ │ -49be88: 5440 7069 |0000: iget-object v0, v4, Lorg/purple/smokestack/TcpListener;.m_error:Ljava/lang/StringBuilder; // field@6970 │ │ -49be8c: 1d00 |0002: monitor-enter v0 │ │ -49be8e: 5441 7069 |0003: iget-object v1, v4, Lorg/purple/smokestack/TcpListener;.m_error:Ljava/lang/StringBuilder; // field@6970 │ │ -49be92: 1202 |0005: const/4 v2, #int 0 // #0 │ │ -49be94: 6e10 245d 0100 |0006: invoke-virtual {v1}, Ljava/lang/StringBuilder;.length:()I // method@5d24 │ │ -49be9a: 0a03 |0009: move-result v3 │ │ -49be9c: 6e30 215d 2103 |000a: invoke-virtual {v1, v2, v3}, Ljava/lang/StringBuilder;.delete:(II)Ljava/lang/StringBuilder; // method@5d21 │ │ -49bea2: 5441 7069 |000d: iget-object v1, v4, Lorg/purple/smokestack/TcpListener;.m_error:Ljava/lang/StringBuilder; // field@6970 │ │ -49bea6: 6e10 295d 0100 |000f: invoke-virtual {v1}, Ljava/lang/StringBuilder;.trimToSize:()V // method@5d29 │ │ -49beac: 5441 7069 |0012: iget-object v1, v4, Lorg/purple/smokestack/TcpListener;.m_error:Ljava/lang/StringBuilder; // field@6970 │ │ -49beb0: 6e20 1d5d 5100 |0014: invoke-virtual {v1, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49beb6: 1e00 |0017: monitor-exit v0 │ │ -49beb8: 0e00 |0018: return-void │ │ -49beba: 0d05 |0019: move-exception v5 │ │ -49bebc: 1e00 |001a: monitor-exit v0 │ │ -49bebe: 2705 |001b: throw v5 │ │ +49be74: |[49be74] org.purple.smokestack.TcpListener.setError:(Ljava/lang/String;)V │ │ +49be84: 5440 7069 |0000: iget-object v0, v4, Lorg/purple/smokestack/TcpListener;.m_error:Ljava/lang/StringBuilder; // field@6970 │ │ +49be88: 1d00 |0002: monitor-enter v0 │ │ +49be8a: 5441 7069 |0003: iget-object v1, v4, Lorg/purple/smokestack/TcpListener;.m_error:Ljava/lang/StringBuilder; // field@6970 │ │ +49be8e: 1202 |0005: const/4 v2, #int 0 // #0 │ │ +49be90: 6e10 245d 0100 |0006: invoke-virtual {v1}, Ljava/lang/StringBuilder;.length:()I // method@5d24 │ │ +49be96: 0a03 |0009: move-result v3 │ │ +49be98: 6e30 215d 2103 |000a: invoke-virtual {v1, v2, v3}, Ljava/lang/StringBuilder;.delete:(II)Ljava/lang/StringBuilder; // method@5d21 │ │ +49be9e: 5441 7069 |000d: iget-object v1, v4, Lorg/purple/smokestack/TcpListener;.m_error:Ljava/lang/StringBuilder; // field@6970 │ │ +49bea2: 6e10 295d 0100 |000f: invoke-virtual {v1}, Ljava/lang/StringBuilder;.trimToSize:()V // method@5d29 │ │ +49bea8: 5441 7069 |0012: iget-object v1, v4, Lorg/purple/smokestack/TcpListener;.m_error:Ljava/lang/StringBuilder; // field@6970 │ │ +49beac: 6e20 1d5d 5100 |0014: invoke-virtual {v1, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49beb2: 1e00 |0017: monitor-exit v0 │ │ +49beb4: 0e00 |0018: return-void │ │ +49beb6: 0d05 |0019: move-exception v5 │ │ +49beb8: 1e00 |001a: monitor-exit v0 │ │ +49beba: 2705 |001b: throw v5 │ │ catches : 1 │ │ 0x0003 - 0x001b │ │ -> 0x0019 │ │ positions : │ │ 0x0000 line=455 │ │ 0x0003 line=457 │ │ 0x000d line=458 │ │ @@ -790809,52 +790808,52 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 6 │ │ ins : 1 │ │ outs : 4 │ │ insns size : 64 16-bit code units │ │ -49b5e0: |[49b5e0] org.purple.smokestack.TcpListener.abort:()V │ │ -49b5f0: 6e10 60d2 0500 |0000: invoke-virtual {v5}, Lorg/purple/smokestack/TcpListener;.disconnect:()V // method@d260 │ │ -49b5f6: 5450 6d69 |0003: iget-object v0, v5, Lorg/purple/smokestack/TcpListener;.m_acceptScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@696d │ │ -49b5fa: 1d00 |0005: monitor-enter v0 │ │ -49b5fc: 5451 6d69 |0006: iget-object v1, v5, Lorg/purple/smokestack/TcpListener;.m_acceptScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@696d │ │ -49b600: 7210 0f61 0100 |0008: invoke-interface {v1}, Ljava/util/concurrent/ScheduledExecutorService;.shutdown:()V // method@610f │ │ -49b606: 2803 |000b: goto 000e // +0003 │ │ -49b608: 0d01 |000c: move-exception v1 │ │ -49b60a: 2831 |000d: goto 003e // +0031 │ │ -49b60c: 1601 0a00 |000e: const-wide/16 v1, #int 10 // #a │ │ -49b610: 5453 6d69 |0010: iget-object v3, v5, Lorg/purple/smokestack/TcpListener;.m_acceptScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@696d │ │ -49b614: 6204 152d |0012: sget-object v4, Ljava/util/concurrent/TimeUnit;.SECONDS:Ljava/util/concurrent/TimeUnit; // field@2d15 │ │ -49b618: 7240 0d61 1342 |0014: invoke-interface {v3, v1, v2, v4}, Ljava/util/concurrent/ScheduledExecutorService;.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z // method@610d │ │ -49b61e: 0a03 |0017: move-result v3 │ │ -49b620: 3903 0700 |0018: if-nez v3, 001f // +0007 │ │ -49b624: 5453 6d69 |001a: iget-object v3, v5, Lorg/purple/smokestack/TcpListener;.m_acceptScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@696d │ │ -49b628: 7210 1061 0300 |001c: invoke-interface {v3}, Ljava/util/concurrent/ScheduledExecutorService;.shutdownNow:()Ljava/util/List; // method@6110 │ │ -49b62e: 1e00 |001f: monitor-exit v0 │ │ -49b630: 5453 7a69 |0020: iget-object v3, v5, Lorg/purple/smokestack/TcpListener;.m_scheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@697a │ │ -49b634: 1d03 |0022: monitor-enter v3 │ │ -49b636: 5450 7a69 |0023: iget-object v0, v5, Lorg/purple/smokestack/TcpListener;.m_scheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@697a │ │ -49b63a: 7210 0f61 0000 |0025: invoke-interface {v0}, Ljava/util/concurrent/ScheduledExecutorService;.shutdown:()V // method@610f │ │ -49b640: 2803 |0028: goto 002b // +0003 │ │ -49b642: 0d00 |0029: move-exception v0 │ │ -49b644: 2812 |002a: goto 003c // +0012 │ │ -49b646: 5450 7a69 |002b: iget-object v0, v5, Lorg/purple/smokestack/TcpListener;.m_scheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@697a │ │ -49b64a: 6204 152d |002d: sget-object v4, Ljava/util/concurrent/TimeUnit;.SECONDS:Ljava/util/concurrent/TimeUnit; // field@2d15 │ │ -49b64e: 7240 0d61 1042 |002f: invoke-interface {v0, v1, v2, v4}, Ljava/util/concurrent/ScheduledExecutorService;.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z // method@610d │ │ -49b654: 0a00 |0032: move-result v0 │ │ -49b656: 3900 0700 |0033: if-nez v0, 003a // +0007 │ │ -49b65a: 5450 7a69 |0035: iget-object v0, v5, Lorg/purple/smokestack/TcpListener;.m_scheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@697a │ │ -49b65e: 7210 1061 0000 |0037: invoke-interface {v0}, Ljava/util/concurrent/ScheduledExecutorService;.shutdownNow:()Ljava/util/List; // method@6110 │ │ -49b664: 1e03 |003a: monitor-exit v3 │ │ -49b666: 0e00 |003b: return-void │ │ -49b668: 1e03 |003c: monitor-exit v3 │ │ -49b66a: 2700 |003d: throw v0 │ │ -49b66c: 1e00 |003e: monitor-exit v0 │ │ -49b66e: 2701 |003f: throw v1 │ │ +49b5dc: |[49b5dc] org.purple.smokestack.TcpListener.abort:()V │ │ +49b5ec: 6e10 60d2 0500 |0000: invoke-virtual {v5}, Lorg/purple/smokestack/TcpListener;.disconnect:()V // method@d260 │ │ +49b5f2: 5450 6d69 |0003: iget-object v0, v5, Lorg/purple/smokestack/TcpListener;.m_acceptScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@696d │ │ +49b5f6: 1d00 |0005: monitor-enter v0 │ │ +49b5f8: 5451 6d69 |0006: iget-object v1, v5, Lorg/purple/smokestack/TcpListener;.m_acceptScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@696d │ │ +49b5fc: 7210 0f61 0100 |0008: invoke-interface {v1}, Ljava/util/concurrent/ScheduledExecutorService;.shutdown:()V // method@610f │ │ +49b602: 2803 |000b: goto 000e // +0003 │ │ +49b604: 0d01 |000c: move-exception v1 │ │ +49b606: 2831 |000d: goto 003e // +0031 │ │ +49b608: 1601 0a00 |000e: const-wide/16 v1, #int 10 // #a │ │ +49b60c: 5453 6d69 |0010: iget-object v3, v5, Lorg/purple/smokestack/TcpListener;.m_acceptScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@696d │ │ +49b610: 6204 152d |0012: sget-object v4, Ljava/util/concurrent/TimeUnit;.SECONDS:Ljava/util/concurrent/TimeUnit; // field@2d15 │ │ +49b614: 7240 0d61 1342 |0014: invoke-interface {v3, v1, v2, v4}, Ljava/util/concurrent/ScheduledExecutorService;.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z // method@610d │ │ +49b61a: 0a03 |0017: move-result v3 │ │ +49b61c: 3903 0700 |0018: if-nez v3, 001f // +0007 │ │ +49b620: 5453 6d69 |001a: iget-object v3, v5, Lorg/purple/smokestack/TcpListener;.m_acceptScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@696d │ │ +49b624: 7210 1061 0300 |001c: invoke-interface {v3}, Ljava/util/concurrent/ScheduledExecutorService;.shutdownNow:()Ljava/util/List; // method@6110 │ │ +49b62a: 1e00 |001f: monitor-exit v0 │ │ +49b62c: 5453 7a69 |0020: iget-object v3, v5, Lorg/purple/smokestack/TcpListener;.m_scheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@697a │ │ +49b630: 1d03 |0022: monitor-enter v3 │ │ +49b632: 5450 7a69 |0023: iget-object v0, v5, Lorg/purple/smokestack/TcpListener;.m_scheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@697a │ │ +49b636: 7210 0f61 0000 |0025: invoke-interface {v0}, Ljava/util/concurrent/ScheduledExecutorService;.shutdown:()V // method@610f │ │ +49b63c: 2803 |0028: goto 002b // +0003 │ │ +49b63e: 0d00 |0029: move-exception v0 │ │ +49b640: 2812 |002a: goto 003c // +0012 │ │ +49b642: 5450 7a69 |002b: iget-object v0, v5, Lorg/purple/smokestack/TcpListener;.m_scheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@697a │ │ +49b646: 6204 152d |002d: sget-object v4, Ljava/util/concurrent/TimeUnit;.SECONDS:Ljava/util/concurrent/TimeUnit; // field@2d15 │ │ +49b64a: 7240 0d61 1042 |002f: invoke-interface {v0, v1, v2, v4}, Ljava/util/concurrent/ScheduledExecutorService;.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z // method@610d │ │ +49b650: 0a00 |0032: move-result v0 │ │ +49b652: 3900 0700 |0033: if-nez v0, 003a // +0007 │ │ +49b656: 5450 7a69 |0035: iget-object v0, v5, Lorg/purple/smokestack/TcpListener;.m_scheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@697a │ │ +49b65a: 7210 1061 0000 |0037: invoke-interface {v0}, Ljava/util/concurrent/ScheduledExecutorService;.shutdownNow:()Ljava/util/List; // method@6110 │ │ +49b660: 1e03 |003a: monitor-exit v3 │ │ +49b662: 0e00 |003b: return-void │ │ +49b664: 1e03 |003c: monitor-exit v3 │ │ +49b666: 2700 |003d: throw v0 │ │ +49b668: 1e00 |003e: monitor-exit v0 │ │ +49b66a: 2701 |003f: throw v1 │ │ catches : 7 │ │ 0x0006 - 0x000b │ │ Ljava/lang/Exception; -> 0x000e │ │ -> 0x000c │ │ 0x0010 - 0x001f │ │ Ljava/lang/Exception; -> 0x001f │ │ -> 0x000c │ │ @@ -790893,38 +790892,38 @@ │ │ type : '()Ljava/util/ArrayList;' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 5 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 46 16-bit code units │ │ -49b298: |[49b298] org.purple.smokestack.TcpListener.clientsAddresses:()Ljava/util/ArrayList; │ │ -49b2a8: 2200 b90b |0000: new-instance v0, Ljava/util/ArrayList; // type@0bb9 │ │ -49b2ac: 7010 ce5f 0000 |0002: invoke-direct {v0}, Ljava/util/ArrayList;.:()V // method@5fce │ │ -49b2b2: 5441 7869 |0005: iget-object v1, v4, Lorg/purple/smokestack/TcpListener;.m_neighbors:Ljava/util/concurrent/ConcurrentHashMap; // field@6978 │ │ -49b2b6: 6e10 ee60 0100 |0007: invoke-virtual {v1}, Ljava/util/concurrent/ConcurrentHashMap;.keySet:()Ljava/util/Set; // method@60ee │ │ -49b2bc: 0c01 |000a: move-result-object v1 │ │ -49b2be: 7210 b060 0100 |000b: invoke-interface {v1}, Ljava/util/Set;.iterator:()Ljava/util/Iterator; // method@60b0 │ │ -49b2c4: 0c01 |000e: move-result-object v1 │ │ -49b2c6: 7210 4f60 0100 |000f: invoke-interface {v1}, Ljava/util/Iterator;.hasNext:()Z // method@604f │ │ -49b2cc: 0a02 |0012: move-result v2 │ │ -49b2ce: 3802 1a00 |0013: if-eqz v2, 002d // +001a │ │ -49b2d2: 7210 5060 0100 |0015: invoke-interface {v1}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@6050 │ │ -49b2d8: 0c02 |0018: move-result-object v2 │ │ -49b2da: 1f02 e40a |0019: check-cast v2, Ljava/lang/Integer; // type@0ae4 │ │ -49b2de: 5443 7869 |001b: iget-object v3, v4, Lorg/purple/smokestack/TcpListener;.m_neighbors:Ljava/util/concurrent/ConcurrentHashMap; // field@6978 │ │ -49b2e2: 6e20 ed60 2300 |001d: invoke-virtual {v3, v2}, Ljava/util/concurrent/ConcurrentHashMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@60ed │ │ -49b2e8: 0c02 |0020: move-result-object v2 │ │ -49b2ea: 1f02 ff1e |0021: check-cast v2, Lorg/purple/smokestack/TcpNeighbor; // type@1eff │ │ -49b2ee: 3802 ecff |0023: if-eqz v2, 000f // -0014 │ │ -49b2f2: 6e10 80d2 0200 |0025: invoke-virtual {v2}, Lorg/purple/smokestack/TcpNeighbor;.address:()Ljava/lang/String; // method@d280 │ │ -49b2f8: 0c02 |0028: move-result-object v2 │ │ -49b2fa: 6e20 d25f 2000 |0029: invoke-virtual {v0, v2}, Ljava/util/ArrayList;.add:(Ljava/lang/Object;)Z // method@5fd2 │ │ -49b300: 28e3 |002c: goto 000f // -001d │ │ -49b302: 1100 |002d: return-object v0 │ │ +49b294: |[49b294] org.purple.smokestack.TcpListener.clientsAddresses:()Ljava/util/ArrayList; │ │ +49b2a4: 2200 b90b |0000: new-instance v0, Ljava/util/ArrayList; // type@0bb9 │ │ +49b2a8: 7010 ce5f 0000 |0002: invoke-direct {v0}, Ljava/util/ArrayList;.:()V // method@5fce │ │ +49b2ae: 5441 7869 |0005: iget-object v1, v4, Lorg/purple/smokestack/TcpListener;.m_neighbors:Ljava/util/concurrent/ConcurrentHashMap; // field@6978 │ │ +49b2b2: 6e10 ee60 0100 |0007: invoke-virtual {v1}, Ljava/util/concurrent/ConcurrentHashMap;.keySet:()Ljava/util/Set; // method@60ee │ │ +49b2b8: 0c01 |000a: move-result-object v1 │ │ +49b2ba: 7210 b060 0100 |000b: invoke-interface {v1}, Ljava/util/Set;.iterator:()Ljava/util/Iterator; // method@60b0 │ │ +49b2c0: 0c01 |000e: move-result-object v1 │ │ +49b2c2: 7210 4f60 0100 |000f: invoke-interface {v1}, Ljava/util/Iterator;.hasNext:()Z // method@604f │ │ +49b2c8: 0a02 |0012: move-result v2 │ │ +49b2ca: 3802 1a00 |0013: if-eqz v2, 002d // +001a │ │ +49b2ce: 7210 5060 0100 |0015: invoke-interface {v1}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@6050 │ │ +49b2d4: 0c02 |0018: move-result-object v2 │ │ +49b2d6: 1f02 e40a |0019: check-cast v2, Ljava/lang/Integer; // type@0ae4 │ │ +49b2da: 5443 7869 |001b: iget-object v3, v4, Lorg/purple/smokestack/TcpListener;.m_neighbors:Ljava/util/concurrent/ConcurrentHashMap; // field@6978 │ │ +49b2de: 6e20 ed60 2300 |001d: invoke-virtual {v3, v2}, Ljava/util/concurrent/ConcurrentHashMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@60ed │ │ +49b2e4: 0c02 |0020: move-result-object v2 │ │ +49b2e6: 1f02 ff1e |0021: check-cast v2, Lorg/purple/smokestack/TcpNeighbor; // type@1eff │ │ +49b2ea: 3802 ecff |0023: if-eqz v2, 000f // -0014 │ │ +49b2ee: 6e10 80d2 0200 |0025: invoke-virtual {v2}, Lorg/purple/smokestack/TcpNeighbor;.address:()Ljava/lang/String; // method@d280 │ │ +49b2f4: 0c02 |0028: move-result-object v2 │ │ +49b2f6: 6e20 d25f 2000 |0029: invoke-virtual {v0, v2}, Ljava/util/ArrayList;.add:(Ljava/lang/Object;)Z // method@5fd2 │ │ +49b2fc: 28e3 |002c: goto 000f // -001d │ │ +49b2fe: 1100 |002d: return-object v0 │ │ catches : 1 │ │ 0x0005 - 0x002c │ │ Ljava/lang/Exception; -> 0x002d │ │ positions : │ │ 0x0000 line=465 │ │ 0x0005 line=469 │ │ 0x001b line=471 │ │ @@ -790937,19 +790936,19 @@ │ │ type : '()I' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 7 16-bit code units │ │ -49b240: |[49b240] org.purple.smokestack.TcpListener.clientsCount:()I │ │ -49b250: 5410 7869 |0000: iget-object v0, v1, Lorg/purple/smokestack/TcpListener;.m_neighbors:Ljava/util/concurrent/ConcurrentHashMap; // field@6978 │ │ -49b254: 6e10 f160 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/ConcurrentHashMap;.size:()I // method@60f1 │ │ -49b25a: 0a00 |0005: move-result v0 │ │ -49b25c: 0f00 |0006: return v0 │ │ +49b23c: |[49b23c] org.purple.smokestack.TcpListener.clientsCount:()I │ │ +49b24c: 5410 7869 |0000: iget-object v0, v1, Lorg/purple/smokestack/TcpListener;.m_neighbors:Ljava/util/concurrent/ConcurrentHashMap; // field@6978 │ │ +49b250: 6e10 f160 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/ConcurrentHashMap;.size:()I // method@60f1 │ │ +49b256: 0a00 |0005: move-result v0 │ │ +49b258: 0f00 |0006: return v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=486 │ │ locals : │ │ 0x0000 - 0x0007 reg=1 this Lorg/purple/smokestack/TcpListener; │ │ │ │ #3 : (in Lorg/purple/smokestack/TcpListener;) │ │ @@ -790957,58 +790956,58 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 4 │ │ ins : 1 │ │ outs : 3 │ │ insns size : 76 16-bit code units │ │ -49b6dc: |[49b6dc] org.purple.smokestack.TcpListener.disconnect:()V │ │ -49b6ec: 5430 7569 |0000: iget-object v0, v3, Lorg/purple/smokestack/TcpListener;.m_listen:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6975 │ │ -49b6f0: 1201 |0002: const/4 v1, #int 0 // #0 │ │ -49b6f2: 6e20 1a61 1000 |0003: invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ -49b6f8: 5430 7c69 |0006: iget-object v0, v3, Lorg/purple/smokestack/TcpListener;.m_socketMutex:Ljava/lang/Object; // field@697c │ │ -49b6fc: 1d00 |0008: monitor-enter v0 │ │ -49b6fe: 1201 |0009: const/4 v1, #int 0 // #0 │ │ -49b700: 5432 7b69 |000a: iget-object v2, v3, Lorg/purple/smokestack/TcpListener;.m_socket:Ljavax/net/ssl/SSLServerSocket; // field@697b │ │ -49b704: 3802 0500 |000c: if-eqz v2, 0011 // +0005 │ │ -49b708: 6e10 e961 0200 |000e: invoke-virtual {v2}, Ljavax/net/ssl/SSLServerSocket;.close:()V // method@61e9 │ │ -49b70e: 5b31 7b69 |0011: iput-object v1, v3, Lorg/purple/smokestack/TcpListener;.m_socket:Ljavax/net/ssl/SSLServerSocket; // field@697b │ │ -49b712: 2805 |0013: goto 0018 // +0005 │ │ -49b714: 0d02 |0014: move-exception v2 │ │ -49b716: 5b31 7b69 |0015: iput-object v1, v3, Lorg/purple/smokestack/TcpListener;.m_socket:Ljavax/net/ssl/SSLServerSocket; // field@697b │ │ -49b71a: 2702 |0017: throw v2 │ │ -49b71c: 1e00 |0018: monitor-exit v0 │ │ -49b71e: 5430 7869 |0019: iget-object v0, v3, Lorg/purple/smokestack/TcpListener;.m_neighbors:Ljava/util/concurrent/ConcurrentHashMap; // field@6978 │ │ -49b722: 6e10 ee60 0000 |001b: invoke-virtual {v0}, Ljava/util/concurrent/ConcurrentHashMap;.keySet:()Ljava/util/Set; // method@60ee │ │ -49b728: 0c00 |001e: move-result-object v0 │ │ -49b72a: 7210 b060 0000 |001f: invoke-interface {v0}, Ljava/util/Set;.iterator:()Ljava/util/Iterator; // method@60b0 │ │ -49b730: 0c00 |0022: move-result-object v0 │ │ -49b732: 7210 4f60 0000 |0023: invoke-interface {v0}, Ljava/util/Iterator;.hasNext:()Z // method@604f │ │ -49b738: 0a01 |0026: move-result v1 │ │ -49b73a: 3801 1600 |0027: if-eqz v1, 003d // +0016 │ │ -49b73e: 7210 5060 0000 |0029: invoke-interface {v0}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@6050 │ │ -49b744: 0c01 |002c: move-result-object v1 │ │ -49b746: 1f01 e40a |002d: check-cast v1, Ljava/lang/Integer; // type@0ae4 │ │ -49b74a: 5432 7869 |002f: iget-object v2, v3, Lorg/purple/smokestack/TcpListener;.m_neighbors:Ljava/util/concurrent/ConcurrentHashMap; // field@6978 │ │ -49b74e: 6e20 f060 1200 |0031: invoke-virtual {v2, v1}, Ljava/util/concurrent/ConcurrentHashMap;.remove:(Ljava/lang/Object;)Ljava/lang/Object; // method@60f0 │ │ -49b754: 0c01 |0034: move-result-object v1 │ │ -49b756: 1f01 ff1e |0035: check-cast v1, Lorg/purple/smokestack/TcpNeighbor; // type@1eff │ │ -49b75a: 3801 ecff |0037: if-eqz v1, 0023 // -0014 │ │ -49b75e: 6e10 7bd2 0100 |0039: invoke-virtual {v1}, Lorg/purple/smokestack/TcpNeighbor;.abort:()V // method@d27b │ │ -49b764: 28e7 |003c: goto 0023 // -0019 │ │ -49b766: 5430 7d69 |003d: iget-object v0, v3, Lorg/purple/smokestack/TcpListener;.m_startTime:Ljava/util/concurrent/atomic/AtomicLong; // field@697d │ │ -49b76a: 7100 315d 0000 |003f: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@5d31 │ │ -49b770: 0b01 |0042: move-result-wide v1 │ │ -49b772: 6e30 2461 1002 |0043: invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ -49b778: 0e00 |0046: return-void │ │ -49b77a: 0d01 |0047: move-exception v1 │ │ -49b77c: 1e00 |0048: monitor-exit v0 │ │ -49b77e: 2802 |0049: goto 004b // +0002 │ │ -49b780: 2701 |004a: throw v1 │ │ -49b782: 28ff |004b: goto 004a // -0001 │ │ +49b6d8: |[49b6d8] org.purple.smokestack.TcpListener.disconnect:()V │ │ +49b6e8: 5430 7569 |0000: iget-object v0, v3, Lorg/purple/smokestack/TcpListener;.m_listen:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6975 │ │ +49b6ec: 1201 |0002: const/4 v1, #int 0 // #0 │ │ +49b6ee: 6e20 1a61 1000 |0003: invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ +49b6f4: 5430 7c69 |0006: iget-object v0, v3, Lorg/purple/smokestack/TcpListener;.m_socketMutex:Ljava/lang/Object; // field@697c │ │ +49b6f8: 1d00 |0008: monitor-enter v0 │ │ +49b6fa: 1201 |0009: const/4 v1, #int 0 // #0 │ │ +49b6fc: 5432 7b69 |000a: iget-object v2, v3, Lorg/purple/smokestack/TcpListener;.m_socket:Ljavax/net/ssl/SSLServerSocket; // field@697b │ │ +49b700: 3802 0500 |000c: if-eqz v2, 0011 // +0005 │ │ +49b704: 6e10 e961 0200 |000e: invoke-virtual {v2}, Ljavax/net/ssl/SSLServerSocket;.close:()V // method@61e9 │ │ +49b70a: 5b31 7b69 |0011: iput-object v1, v3, Lorg/purple/smokestack/TcpListener;.m_socket:Ljavax/net/ssl/SSLServerSocket; // field@697b │ │ +49b70e: 2805 |0013: goto 0018 // +0005 │ │ +49b710: 0d02 |0014: move-exception v2 │ │ +49b712: 5b31 7b69 |0015: iput-object v1, v3, Lorg/purple/smokestack/TcpListener;.m_socket:Ljavax/net/ssl/SSLServerSocket; // field@697b │ │ +49b716: 2702 |0017: throw v2 │ │ +49b718: 1e00 |0018: monitor-exit v0 │ │ +49b71a: 5430 7869 |0019: iget-object v0, v3, Lorg/purple/smokestack/TcpListener;.m_neighbors:Ljava/util/concurrent/ConcurrentHashMap; // field@6978 │ │ +49b71e: 6e10 ee60 0000 |001b: invoke-virtual {v0}, Ljava/util/concurrent/ConcurrentHashMap;.keySet:()Ljava/util/Set; // method@60ee │ │ +49b724: 0c00 |001e: move-result-object v0 │ │ +49b726: 7210 b060 0000 |001f: invoke-interface {v0}, Ljava/util/Set;.iterator:()Ljava/util/Iterator; // method@60b0 │ │ +49b72c: 0c00 |0022: move-result-object v0 │ │ +49b72e: 7210 4f60 0000 |0023: invoke-interface {v0}, Ljava/util/Iterator;.hasNext:()Z // method@604f │ │ +49b734: 0a01 |0026: move-result v1 │ │ +49b736: 3801 1600 |0027: if-eqz v1, 003d // +0016 │ │ +49b73a: 7210 5060 0000 |0029: invoke-interface {v0}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@6050 │ │ +49b740: 0c01 |002c: move-result-object v1 │ │ +49b742: 1f01 e40a |002d: check-cast v1, Ljava/lang/Integer; // type@0ae4 │ │ +49b746: 5432 7869 |002f: iget-object v2, v3, Lorg/purple/smokestack/TcpListener;.m_neighbors:Ljava/util/concurrent/ConcurrentHashMap; // field@6978 │ │ +49b74a: 6e20 f060 1200 |0031: invoke-virtual {v2, v1}, Ljava/util/concurrent/ConcurrentHashMap;.remove:(Ljava/lang/Object;)Ljava/lang/Object; // method@60f0 │ │ +49b750: 0c01 |0034: move-result-object v1 │ │ +49b752: 1f01 ff1e |0035: check-cast v1, Lorg/purple/smokestack/TcpNeighbor; // type@1eff │ │ +49b756: 3801 ecff |0037: if-eqz v1, 0023 // -0014 │ │ +49b75a: 6e10 7bd2 0100 |0039: invoke-virtual {v1}, Lorg/purple/smokestack/TcpNeighbor;.abort:()V // method@d27b │ │ +49b760: 28e7 |003c: goto 0023 // -0019 │ │ +49b762: 5430 7d69 |003d: iget-object v0, v3, Lorg/purple/smokestack/TcpListener;.m_startTime:Ljava/util/concurrent/atomic/AtomicLong; // field@697d │ │ +49b766: 7100 315d 0000 |003f: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@5d31 │ │ +49b76c: 0b01 |0042: move-result-wide v1 │ │ +49b76e: 6e30 2461 1002 |0043: invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ +49b774: 0e00 |0046: return-void │ │ +49b776: 0d01 |0047: move-exception v1 │ │ +49b778: 1e00 |0048: monitor-exit v0 │ │ +49b77a: 2802 |0049: goto 004b // +0002 │ │ +49b77c: 2701 |004a: throw v1 │ │ +49b77e: 28ff |004b: goto 004a // -0001 │ │ catches : 4 │ │ 0x000a - 0x0011 │ │ Ljava/lang/Exception; -> 0x0011 │ │ -> 0x0014 │ │ 0x0011 - 0x0019 │ │ -> 0x0047 │ │ 0x0019 - 0x003c │ │ @@ -791036,30 +791035,30 @@ │ │ type : '()Z' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 4 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 27 16-bit code units │ │ -49b190: |[49b190] org.purple.smokestack.TcpListener.isNetworkConnected:()Z │ │ -49b1a0: 1200 |0000: const/4 v0, #int 0 // #0 │ │ -49b1a2: 7100 2cd2 0000 |0001: invoke-static {}, Lorg/purple/smokestack/SmokeStack;.getApplication:()Lorg/purple/smokestack/SmokeStack; // method@d22c │ │ -49b1a8: 0c01 |0004: move-result-object v1 │ │ -49b1aa: 1a02 d068 |0005: const-string v2, "connectivity" // string@68d0 │ │ -49b1ae: 6e20 2ed2 2100 |0007: invoke-virtual {v1, v2}, Lorg/purple/smokestack/SmokeStack;.getSystemService:(Ljava/lang/String;)Ljava/lang/Object; // method@d22e │ │ -49b1b4: 0c01 |000a: move-result-object v1 │ │ -49b1b6: 1f01 cd00 |000b: check-cast v1, Landroid/net/ConnectivityManager; // type@00cd │ │ -49b1ba: 6e10 7e04 0100 |000d: invoke-virtual {v1}, Landroid/net/ConnectivityManager;.getActiveNetworkInfo:()Landroid/net/NetworkInfo; // method@047e │ │ -49b1c0: 0c01 |0010: move-result-object v1 │ │ -49b1c2: 6e10 8204 0100 |0011: invoke-virtual {v1}, Landroid/net/NetworkInfo;.getState:()Landroid/net/NetworkInfo$State; // method@0482 │ │ -49b1c8: 0c01 |0014: move-result-object v1 │ │ -49b1ca: 6202 6500 |0015: sget-object v2, Landroid/net/NetworkInfo$State;.CONNECTED:Landroid/net/NetworkInfo$State; // field@0065 │ │ -49b1ce: 3321 0300 |0017: if-ne v1, v2, 001a // +0003 │ │ -49b1d2: 1210 |0019: const/4 v0, #int 1 // #1 │ │ -49b1d4: 0f00 |001a: return v0 │ │ +49b18c: |[49b18c] org.purple.smokestack.TcpListener.isNetworkConnected:()Z │ │ +49b19c: 1200 |0000: const/4 v0, #int 0 // #0 │ │ +49b19e: 7100 2cd2 0000 |0001: invoke-static {}, Lorg/purple/smokestack/SmokeStack;.getApplication:()Lorg/purple/smokestack/SmokeStack; // method@d22c │ │ +49b1a4: 0c01 |0004: move-result-object v1 │ │ +49b1a6: 1a02 d068 |0005: const-string v2, "connectivity" // string@68d0 │ │ +49b1aa: 6e20 2ed2 2100 |0007: invoke-virtual {v1, v2}, Lorg/purple/smokestack/SmokeStack;.getSystemService:(Ljava/lang/String;)Ljava/lang/Object; // method@d22e │ │ +49b1b0: 0c01 |000a: move-result-object v1 │ │ +49b1b2: 1f01 cd00 |000b: check-cast v1, Landroid/net/ConnectivityManager; // type@00cd │ │ +49b1b6: 6e10 7e04 0100 |000d: invoke-virtual {v1}, Landroid/net/ConnectivityManager;.getActiveNetworkInfo:()Landroid/net/NetworkInfo; // method@047e │ │ +49b1bc: 0c01 |0010: move-result-object v1 │ │ +49b1be: 6e10 8204 0100 |0011: invoke-virtual {v1}, Landroid/net/NetworkInfo;.getState:()Landroid/net/NetworkInfo$State; // method@0482 │ │ +49b1c4: 0c01 |0014: move-result-object v1 │ │ +49b1c6: 6202 6500 |0015: sget-object v2, Landroid/net/NetworkInfo$State;.CONNECTED:Landroid/net/NetworkInfo$State; // field@0065 │ │ +49b1ca: 3321 0300 |0017: if-ne v1, v2, 001a // +0003 │ │ +49b1ce: 1210 |0019: const/4 v0, #int 1 // #1 │ │ +49b1d0: 0f00 |001a: return v0 │ │ catches : 1 │ │ 0x0001 - 0x0017 │ │ Ljava/lang/Exception; -> 0x001a │ │ positions : │ │ 0x0001 line=274 │ │ 0x0007 line=275 │ │ 0x000d line=277 │ │ @@ -791072,109 +791071,109 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 7 │ │ ins : 1 │ │ outs : 4 │ │ insns size : 192 16-bit code units │ │ -49b7b0: |[49b7b0] org.purple.smokestack.TcpListener.listen:()V │ │ -49b7c0: 7010 63d2 0600 |0000: invoke-direct {v6}, Lorg/purple/smokestack/TcpListener;.listening:()Z // method@d263 │ │ -49b7c6: 0a00 |0003: move-result v0 │ │ -49b7c8: 3800 0300 |0004: if-eqz v0, 0007 // +0003 │ │ -49b7cc: 0e00 |0006: return-void │ │ -49b7ce: 5460 7569 |0007: iget-object v0, v6, Lorg/purple/smokestack/TcpListener;.m_listen:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6975 │ │ -49b7d2: 1211 |0009: const/4 v1, #int 1 // #1 │ │ -49b7d4: 6e20 1a61 1000 |000a: invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ -49b7da: 6000 6b00 |000d: sget v0, Landroid/os/Build$VERSION;.SDK_INT:I // field@006b │ │ -49b7de: 1302 1500 |000f: const/16 v2, #int 21 // #15 │ │ -49b7e2: 3420 0900 |0011: if-lt v0, v2, 001a // +0009 │ │ -49b7e6: 1a00 9653 |0013: const-string v0, "TLS" // string@5396 │ │ -49b7ea: 7110 e261 0000 |0015: invoke-static {v0}, Ljavax/net/ssl/SSLContext;.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/SSLContext; // method@61e2 │ │ -49b7f0: 0c00 |0018: move-result-object v0 │ │ -49b7f2: 2807 |0019: goto 0020 // +0007 │ │ -49b7f4: 1a00 e54f |001a: const-string v0, "SSL" // string@4fe5 │ │ -49b7f8: 7110 e261 0000 |001c: invoke-static {v0}, Ljavax/net/ssl/SSLContext;.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/SSLContext; // method@61e2 │ │ -49b7fe: 0c00 |001f: move-result-object v0 │ │ -49b800: 1a03 7f5a |0020: const-string v3, "X509" // string@5a7f │ │ -49b804: 7110 de61 0300 |0022: invoke-static {v3}, Ljavax/net/ssl/KeyManagerFactory;.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/KeyManagerFactory; // method@61de │ │ -49b80a: 0c03 |0025: move-result-object v3 │ │ -49b80c: 5464 7469 |0026: iget-object v4, v6, Lorg/purple/smokestack/TcpListener;.m_keyStore:Ljava/security/KeyStore; // field@6974 │ │ -49b810: 1205 |0028: const/4 v5, #int 0 // #0 │ │ -49b812: 6e30 e161 4305 |0029: invoke-virtual {v3, v4, v5}, Ljavax/net/ssl/KeyManagerFactory;.init:(Ljava/security/KeyStore;[C)V // method@61e1 │ │ -49b818: 6e10 e061 0300 |002c: invoke-virtual {v3}, Ljavax/net/ssl/KeyManagerFactory;.getKeyManagers:()[Ljavax/net/ssl/KeyManager; // method@61e0 │ │ -49b81e: 0c03 |002f: move-result-object v3 │ │ -49b820: 6e40 e661 3055 |0030: invoke-virtual {v0, v3, v5, v5}, Ljavax/net/ssl/SSLContext;.init:([Ljavax/net/ssl/KeyManager;[Ljavax/net/ssl/TrustManager;Ljava/security/SecureRandom;)V // method@61e6 │ │ -49b826: 5463 7c69 |0033: iget-object v3, v6, Lorg/purple/smokestack/TcpListener;.m_socketMutex:Ljava/lang/Object; // field@697c │ │ -49b82a: 1d03 |0035: monitor-enter v3 │ │ -49b82c: 6e10 e461 0000 |0036: invoke-virtual {v0}, Ljavax/net/ssl/SSLContext;.getServerSocketFactory:()Ljavax/net/ssl/SSLServerSocketFactory; // method@61e4 │ │ -49b832: 0c00 |0039: move-result-object v0 │ │ -49b834: 6e10 f061 0000 |003a: invoke-virtual {v0}, Ljavax/net/ssl/SSLServerSocketFactory;.createServerSocket:()Ljava/net/ServerSocket; // method@61f0 │ │ -49b83a: 0c00 |003d: move-result-object v0 │ │ -49b83c: 1f00 360c |003e: check-cast v0, Ljavax/net/ssl/SSLServerSocket; // type@0c36 │ │ -49b840: 5b60 7b69 |0040: iput-object v0, v6, Lorg/purple/smokestack/TcpListener;.m_socket:Ljavax/net/ssl/SSLServerSocket; // field@697b │ │ -49b844: 1504 0100 |0042: const/high16 v4, #int 65536 // #1 │ │ -49b848: 6e20 ed61 4000 |0044: invoke-virtual {v0, v4}, Ljavax/net/ssl/SSLServerSocket;.setReceiveBufferSize:(I)V // method@61ed │ │ -49b84e: 5460 7b69 |0047: iget-object v0, v6, Lorg/purple/smokestack/TcpListener;.m_socket:Ljavax/net/ssl/SSLServerSocket; // field@697b │ │ -49b852: 6e20 ee61 1000 |0049: invoke-virtual {v0, v1}, Ljavax/net/ssl/SSLServerSocket;.setReuseAddress:(Z)V // method@61ee │ │ -49b858: 5460 7b69 |004c: iget-object v0, v6, Lorg/purple/smokestack/TcpListener;.m_socket:Ljavax/net/ssl/SSLServerSocket; // field@697b │ │ -49b85c: 2201 1a0b |004e: new-instance v1, Ljava/net/InetSocketAddress; // type@0b1a │ │ -49b860: 5464 7169 |0050: iget-object v4, v6, Lorg/purple/smokestack/TcpListener;.m_ipAddress:Ljava/lang/String; // field@6971 │ │ -49b864: 7110 ae5d 0400 |0052: invoke-static {v4}, Ljava/net/InetAddress;.getByName:(Ljava/lang/String;)Ljava/net/InetAddress; // method@5dae │ │ -49b86a: 0c04 |0055: move-result-object v4 │ │ -49b86c: 5465 7269 |0056: iget-object v5, v6, Lorg/purple/smokestack/TcpListener;.m_ipPort:Ljava/lang/String; // field@6972 │ │ -49b870: 7110 6f5c 0500 |0058: invoke-static {v5}, Ljava/lang/Integer;.parseInt:(Ljava/lang/String;)I // method@5c6f │ │ -49b876: 0a05 |005b: move-result v5 │ │ -49b878: 7030 b35d 4105 |005c: invoke-direct {v1, v4, v5}, Ljava/net/InetSocketAddress;.:(Ljava/net/InetAddress;I)V // method@5db3 │ │ -49b87e: 1204 |005f: const/4 v4, #int 0 // #0 │ │ -49b880: 6e30 e861 1004 |0060: invoke-virtual {v0, v1, v4}, Ljavax/net/ssl/SSLServerSocket;.bind:(Ljava/net/SocketAddress;I)V // method@61e8 │ │ -49b886: 6000 6b00 |0063: sget v0, Landroid/os/Build$VERSION;.SDK_INT:I // field@006b │ │ -49b88a: 1301 1d00 |0065: const/16 v1, #int 29 // #1d │ │ -49b88e: 3410 0a00 |0067: if-lt v0, v1, 0071 // +000a │ │ -49b892: 5460 7b69 |0069: iget-object v0, v6, Lorg/purple/smokestack/TcpListener;.m_socket:Ljavax/net/ssl/SSLServerSocket; // field@697b │ │ -49b896: 6201 6b69 |006b: sget-object v1, Lorg/purple/smokestack/TcpListener;.TLS_NEW:[Ljava/lang/String; // field@696b │ │ -49b89a: 6e20 eb61 1000 |006d: invoke-virtual {v0, v1}, Ljavax/net/ssl/SSLServerSocket;.setEnabledProtocols:([Ljava/lang/String;)V // method@61eb │ │ -49b8a0: 2814 |0070: goto 0084 // +0014 │ │ -49b8a2: 6000 6b00 |0071: sget v0, Landroid/os/Build$VERSION;.SDK_INT:I // field@006b │ │ -49b8a6: 3420 0a00 |0073: if-lt v0, v2, 007d // +000a │ │ -49b8aa: 5460 7b69 |0075: iget-object v0, v6, Lorg/purple/smokestack/TcpListener;.m_socket:Ljavax/net/ssl/SSLServerSocket; // field@697b │ │ -49b8ae: 6201 6c69 |0077: sget-object v1, Lorg/purple/smokestack/TcpListener;.TLS_V1_V2:[Ljava/lang/String; // field@696c │ │ -49b8b2: 6e20 eb61 1000 |0079: invoke-virtual {v0, v1}, Ljavax/net/ssl/SSLServerSocket;.setEnabledProtocols:([Ljava/lang/String;)V // method@61eb │ │ -49b8b8: 2808 |007c: goto 0084 // +0008 │ │ -49b8ba: 5460 7b69 |007d: iget-object v0, v6, Lorg/purple/smokestack/TcpListener;.m_socket:Ljavax/net/ssl/SSLServerSocket; // field@697b │ │ -49b8be: 6201 6a69 |007f: sget-object v1, Lorg/purple/smokestack/TcpListener;.TLS_LEGACY:[Ljava/lang/String; // field@696a │ │ -49b8c2: 6e20 eb61 1000 |0081: invoke-virtual {v0, v1}, Ljavax/net/ssl/SSLServerSocket;.setEnabledProtocols:([Ljava/lang/String;)V // method@61eb │ │ -49b8c8: 5460 7b69 |0084: iget-object v0, v6, Lorg/purple/smokestack/TcpListener;.m_socket:Ljavax/net/ssl/SSLServerSocket; // field@697b │ │ -49b8cc: 6e20 ec61 4000 |0086: invoke-virtual {v0, v4}, Ljavax/net/ssl/SSLServerSocket;.setNeedClientAuth:(Z)V // method@61ec │ │ -49b8d2: 5460 7b69 |0089: iget-object v0, v6, Lorg/purple/smokestack/TcpListener;.m_socket:Ljavax/net/ssl/SSLServerSocket; // field@697b │ │ -49b8d6: 1301 8813 |008b: const/16 v1, #int 5000 // #1388 │ │ -49b8da: 6e20 ef61 1000 |008d: invoke-virtual {v0, v1}, Ljavax/net/ssl/SSLServerSocket;.setSoTimeout:(I)V // method@61ef │ │ -49b8e0: 1e03 |0090: monitor-exit v3 │ │ -49b8e2: 5460 7d69 |0091: iget-object v0, v6, Lorg/purple/smokestack/TcpListener;.m_startTime:Ljava/util/concurrent/atomic/AtomicLong; // field@697d │ │ -49b8e6: 7100 315d 0000 |0093: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@5d31 │ │ -49b8ec: 0b01 |0096: move-result-wide v1 │ │ -49b8ee: 6e30 2461 1002 |0097: invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ -49b8f4: 2825 |009a: goto 00bf // +0025 │ │ -49b8f6: 0d00 |009b: move-exception v0 │ │ -49b8f8: 1e03 |009c: monitor-exit v3 │ │ -49b8fa: 2700 |009d: throw v0 │ │ -49b8fc: 0d00 |009e: move-exception v0 │ │ -49b8fe: 2201 fc0a |009f: new-instance v1, Ljava/lang/StringBuilder; // type@0afc │ │ -49b902: 7010 125d 0100 |00a1: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ -49b908: 1a02 1a0e |00a4: const-string v2, "An error (" // string@0e1a │ │ -49b90c: 6e20 1d5d 2100 |00a6: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49b912: 6e10 505c 0000 |00a9: invoke-virtual {v0}, Ljava/lang/Exception;.getMessage:()Ljava/lang/String; // method@5c50 │ │ -49b918: 0c00 |00ac: move-result-object v0 │ │ -49b91a: 6e20 1d5d 0100 |00ad: invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49b920: 1a00 3104 |00b0: const-string v0, ") occurred while attempting to listen." // string@0431 │ │ -49b924: 6e20 1d5d 0100 |00b2: invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49b92a: 6e10 285d 0100 |00b5: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ -49b930: 0c00 |00b8: move-result-object v0 │ │ -49b932: 7020 69d2 0600 |00b9: invoke-direct {v6, v0}, Lorg/purple/smokestack/TcpListener;.setError:(Ljava/lang/String;)V // method@d269 │ │ -49b938: 6e10 60d2 0600 |00bc: invoke-virtual {v6}, Lorg/purple/smokestack/TcpListener;.disconnect:()V // method@d260 │ │ -49b93e: 0e00 |00bf: return-void │ │ +49b7ac: |[49b7ac] org.purple.smokestack.TcpListener.listen:()V │ │ +49b7bc: 7010 63d2 0600 |0000: invoke-direct {v6}, Lorg/purple/smokestack/TcpListener;.listening:()Z // method@d263 │ │ +49b7c2: 0a00 |0003: move-result v0 │ │ +49b7c4: 3800 0300 |0004: if-eqz v0, 0007 // +0003 │ │ +49b7c8: 0e00 |0006: return-void │ │ +49b7ca: 5460 7569 |0007: iget-object v0, v6, Lorg/purple/smokestack/TcpListener;.m_listen:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6975 │ │ +49b7ce: 1211 |0009: const/4 v1, #int 1 // #1 │ │ +49b7d0: 6e20 1a61 1000 |000a: invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ +49b7d6: 6000 6b00 |000d: sget v0, Landroid/os/Build$VERSION;.SDK_INT:I // field@006b │ │ +49b7da: 1302 1500 |000f: const/16 v2, #int 21 // #15 │ │ +49b7de: 3420 0900 |0011: if-lt v0, v2, 001a // +0009 │ │ +49b7e2: 1a00 9653 |0013: const-string v0, "TLS" // string@5396 │ │ +49b7e6: 7110 e261 0000 |0015: invoke-static {v0}, Ljavax/net/ssl/SSLContext;.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/SSLContext; // method@61e2 │ │ +49b7ec: 0c00 |0018: move-result-object v0 │ │ +49b7ee: 2807 |0019: goto 0020 // +0007 │ │ +49b7f0: 1a00 e54f |001a: const-string v0, "SSL" // string@4fe5 │ │ +49b7f4: 7110 e261 0000 |001c: invoke-static {v0}, Ljavax/net/ssl/SSLContext;.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/SSLContext; // method@61e2 │ │ +49b7fa: 0c00 |001f: move-result-object v0 │ │ +49b7fc: 1a03 7f5a |0020: const-string v3, "X509" // string@5a7f │ │ +49b800: 7110 de61 0300 |0022: invoke-static {v3}, Ljavax/net/ssl/KeyManagerFactory;.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/KeyManagerFactory; // method@61de │ │ +49b806: 0c03 |0025: move-result-object v3 │ │ +49b808: 5464 7469 |0026: iget-object v4, v6, Lorg/purple/smokestack/TcpListener;.m_keyStore:Ljava/security/KeyStore; // field@6974 │ │ +49b80c: 1205 |0028: const/4 v5, #int 0 // #0 │ │ +49b80e: 6e30 e161 4305 |0029: invoke-virtual {v3, v4, v5}, Ljavax/net/ssl/KeyManagerFactory;.init:(Ljava/security/KeyStore;[C)V // method@61e1 │ │ +49b814: 6e10 e061 0300 |002c: invoke-virtual {v3}, Ljavax/net/ssl/KeyManagerFactory;.getKeyManagers:()[Ljavax/net/ssl/KeyManager; // method@61e0 │ │ +49b81a: 0c03 |002f: move-result-object v3 │ │ +49b81c: 6e40 e661 3055 |0030: invoke-virtual {v0, v3, v5, v5}, Ljavax/net/ssl/SSLContext;.init:([Ljavax/net/ssl/KeyManager;[Ljavax/net/ssl/TrustManager;Ljava/security/SecureRandom;)V // method@61e6 │ │ +49b822: 5463 7c69 |0033: iget-object v3, v6, Lorg/purple/smokestack/TcpListener;.m_socketMutex:Ljava/lang/Object; // field@697c │ │ +49b826: 1d03 |0035: monitor-enter v3 │ │ +49b828: 6e10 e461 0000 |0036: invoke-virtual {v0}, Ljavax/net/ssl/SSLContext;.getServerSocketFactory:()Ljavax/net/ssl/SSLServerSocketFactory; // method@61e4 │ │ +49b82e: 0c00 |0039: move-result-object v0 │ │ +49b830: 6e10 f061 0000 |003a: invoke-virtual {v0}, Ljavax/net/ssl/SSLServerSocketFactory;.createServerSocket:()Ljava/net/ServerSocket; // method@61f0 │ │ +49b836: 0c00 |003d: move-result-object v0 │ │ +49b838: 1f00 360c |003e: check-cast v0, Ljavax/net/ssl/SSLServerSocket; // type@0c36 │ │ +49b83c: 5b60 7b69 |0040: iput-object v0, v6, Lorg/purple/smokestack/TcpListener;.m_socket:Ljavax/net/ssl/SSLServerSocket; // field@697b │ │ +49b840: 1504 0100 |0042: const/high16 v4, #int 65536 // #1 │ │ +49b844: 6e20 ed61 4000 |0044: invoke-virtual {v0, v4}, Ljavax/net/ssl/SSLServerSocket;.setReceiveBufferSize:(I)V // method@61ed │ │ +49b84a: 5460 7b69 |0047: iget-object v0, v6, Lorg/purple/smokestack/TcpListener;.m_socket:Ljavax/net/ssl/SSLServerSocket; // field@697b │ │ +49b84e: 6e20 ee61 1000 |0049: invoke-virtual {v0, v1}, Ljavax/net/ssl/SSLServerSocket;.setReuseAddress:(Z)V // method@61ee │ │ +49b854: 5460 7b69 |004c: iget-object v0, v6, Lorg/purple/smokestack/TcpListener;.m_socket:Ljavax/net/ssl/SSLServerSocket; // field@697b │ │ +49b858: 2201 1a0b |004e: new-instance v1, Ljava/net/InetSocketAddress; // type@0b1a │ │ +49b85c: 5464 7169 |0050: iget-object v4, v6, Lorg/purple/smokestack/TcpListener;.m_ipAddress:Ljava/lang/String; // field@6971 │ │ +49b860: 7110 ae5d 0400 |0052: invoke-static {v4}, Ljava/net/InetAddress;.getByName:(Ljava/lang/String;)Ljava/net/InetAddress; // method@5dae │ │ +49b866: 0c04 |0055: move-result-object v4 │ │ +49b868: 5465 7269 |0056: iget-object v5, v6, Lorg/purple/smokestack/TcpListener;.m_ipPort:Ljava/lang/String; // field@6972 │ │ +49b86c: 7110 6f5c 0500 |0058: invoke-static {v5}, Ljava/lang/Integer;.parseInt:(Ljava/lang/String;)I // method@5c6f │ │ +49b872: 0a05 |005b: move-result v5 │ │ +49b874: 7030 b35d 4105 |005c: invoke-direct {v1, v4, v5}, Ljava/net/InetSocketAddress;.:(Ljava/net/InetAddress;I)V // method@5db3 │ │ +49b87a: 1204 |005f: const/4 v4, #int 0 // #0 │ │ +49b87c: 6e30 e861 1004 |0060: invoke-virtual {v0, v1, v4}, Ljavax/net/ssl/SSLServerSocket;.bind:(Ljava/net/SocketAddress;I)V // method@61e8 │ │ +49b882: 6000 6b00 |0063: sget v0, Landroid/os/Build$VERSION;.SDK_INT:I // field@006b │ │ +49b886: 1301 1d00 |0065: const/16 v1, #int 29 // #1d │ │ +49b88a: 3410 0a00 |0067: if-lt v0, v1, 0071 // +000a │ │ +49b88e: 5460 7b69 |0069: iget-object v0, v6, Lorg/purple/smokestack/TcpListener;.m_socket:Ljavax/net/ssl/SSLServerSocket; // field@697b │ │ +49b892: 6201 6b69 |006b: sget-object v1, Lorg/purple/smokestack/TcpListener;.TLS_NEW:[Ljava/lang/String; // field@696b │ │ +49b896: 6e20 eb61 1000 |006d: invoke-virtual {v0, v1}, Ljavax/net/ssl/SSLServerSocket;.setEnabledProtocols:([Ljava/lang/String;)V // method@61eb │ │ +49b89c: 2814 |0070: goto 0084 // +0014 │ │ +49b89e: 6000 6b00 |0071: sget v0, Landroid/os/Build$VERSION;.SDK_INT:I // field@006b │ │ +49b8a2: 3420 0a00 |0073: if-lt v0, v2, 007d // +000a │ │ +49b8a6: 5460 7b69 |0075: iget-object v0, v6, Lorg/purple/smokestack/TcpListener;.m_socket:Ljavax/net/ssl/SSLServerSocket; // field@697b │ │ +49b8aa: 6201 6c69 |0077: sget-object v1, Lorg/purple/smokestack/TcpListener;.TLS_V1_V2:[Ljava/lang/String; // field@696c │ │ +49b8ae: 6e20 eb61 1000 |0079: invoke-virtual {v0, v1}, Ljavax/net/ssl/SSLServerSocket;.setEnabledProtocols:([Ljava/lang/String;)V // method@61eb │ │ +49b8b4: 2808 |007c: goto 0084 // +0008 │ │ +49b8b6: 5460 7b69 |007d: iget-object v0, v6, Lorg/purple/smokestack/TcpListener;.m_socket:Ljavax/net/ssl/SSLServerSocket; // field@697b │ │ +49b8ba: 6201 6a69 |007f: sget-object v1, Lorg/purple/smokestack/TcpListener;.TLS_LEGACY:[Ljava/lang/String; // field@696a │ │ +49b8be: 6e20 eb61 1000 |0081: invoke-virtual {v0, v1}, Ljavax/net/ssl/SSLServerSocket;.setEnabledProtocols:([Ljava/lang/String;)V // method@61eb │ │ +49b8c4: 5460 7b69 |0084: iget-object v0, v6, Lorg/purple/smokestack/TcpListener;.m_socket:Ljavax/net/ssl/SSLServerSocket; // field@697b │ │ +49b8c8: 6e20 ec61 4000 |0086: invoke-virtual {v0, v4}, Ljavax/net/ssl/SSLServerSocket;.setNeedClientAuth:(Z)V // method@61ec │ │ +49b8ce: 5460 7b69 |0089: iget-object v0, v6, Lorg/purple/smokestack/TcpListener;.m_socket:Ljavax/net/ssl/SSLServerSocket; // field@697b │ │ +49b8d2: 1301 8813 |008b: const/16 v1, #int 5000 // #1388 │ │ +49b8d6: 6e20 ef61 1000 |008d: invoke-virtual {v0, v1}, Ljavax/net/ssl/SSLServerSocket;.setSoTimeout:(I)V // method@61ef │ │ +49b8dc: 1e03 |0090: monitor-exit v3 │ │ +49b8de: 5460 7d69 |0091: iget-object v0, v6, Lorg/purple/smokestack/TcpListener;.m_startTime:Ljava/util/concurrent/atomic/AtomicLong; // field@697d │ │ +49b8e2: 7100 315d 0000 |0093: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@5d31 │ │ +49b8e8: 0b01 |0096: move-result-wide v1 │ │ +49b8ea: 6e30 2461 1002 |0097: invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ +49b8f0: 2825 |009a: goto 00bf // +0025 │ │ +49b8f2: 0d00 |009b: move-exception v0 │ │ +49b8f4: 1e03 |009c: monitor-exit v3 │ │ +49b8f6: 2700 |009d: throw v0 │ │ +49b8f8: 0d00 |009e: move-exception v0 │ │ +49b8fa: 2201 fc0a |009f: new-instance v1, Ljava/lang/StringBuilder; // type@0afc │ │ +49b8fe: 7010 125d 0100 |00a1: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ +49b904: 1a02 1a0e |00a4: const-string v2, "An error (" // string@0e1a │ │ +49b908: 6e20 1d5d 2100 |00a6: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49b90e: 6e10 505c 0000 |00a9: invoke-virtual {v0}, Ljava/lang/Exception;.getMessage:()Ljava/lang/String; // method@5c50 │ │ +49b914: 0c00 |00ac: move-result-object v0 │ │ +49b916: 6e20 1d5d 0100 |00ad: invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49b91c: 1a00 3104 |00b0: const-string v0, ") occurred while attempting to listen." // string@0431 │ │ +49b920: 6e20 1d5d 0100 |00b2: invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49b926: 6e10 285d 0100 |00b5: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ +49b92c: 0c00 |00b8: move-result-object v0 │ │ +49b92e: 7020 69d2 0600 |00b9: invoke-direct {v6, v0}, Lorg/purple/smokestack/TcpListener;.setError:(Ljava/lang/String;)V // method@d269 │ │ +49b934: 6e10 60d2 0600 |00bc: invoke-virtual {v6}, Lorg/purple/smokestack/TcpListener;.disconnect:()V // method@d260 │ │ +49b93a: 0e00 |00bf: return-void │ │ catches : 5 │ │ 0x000d - 0x0036 │ │ Ljava/lang/Exception; -> 0x009e │ │ 0x0036 - 0x0091 │ │ -> 0x009b │ │ 0x0091 - 0x009a │ │ Ljava/lang/Exception; -> 0x009e │ │ @@ -791221,19 +791220,19 @@ │ │ type : '()I' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 7 16-bit code units │ │ -49b260: |[49b260] org.purple.smokestack.TcpListener.oid:()I │ │ -49b270: 5410 7969 |0000: iget-object v0, v1, Lorg/purple/smokestack/TcpListener;.m_oid:Ljava/util/concurrent/atomic/AtomicInteger; // field@6979 │ │ -49b274: 6e10 1c61 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@611c │ │ -49b27a: 0a00 |0005: move-result v0 │ │ -49b27c: 0f00 |0006: return v0 │ │ +49b25c: |[49b25c] org.purple.smokestack.TcpListener.oid:()I │ │ +49b26c: 5410 7969 |0000: iget-object v0, v1, Lorg/purple/smokestack/TcpListener;.m_oid:Ljava/util/concurrent/atomic/AtomicInteger; // field@6979 │ │ +49b270: 6e10 1c61 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@611c │ │ +49b276: 0a00 |0005: move-result v0 │ │ +49b278: 0f00 |0006: return v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=491 │ │ locals : │ │ 0x0000 - 0x0007 reg=1 this Lorg/purple/smokestack/TcpListener; │ │ │ │ #7 : (in Lorg/purple/smokestack/TcpListener;) │ │ @@ -791241,37 +791240,37 @@ │ │ type : '(Ljava/lang/String;I)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 6 │ │ ins : 3 │ │ outs : 2 │ │ insns size : 43 16-bit code units │ │ -49bd94: |[49bd94] org.purple.smokestack.TcpListener.scheduleEchoSend:(Ljava/lang/String;I)V │ │ -49bda4: 5430 7869 |0000: iget-object v0, v3, Lorg/purple/smokestack/TcpListener;.m_neighbors:Ljava/util/concurrent/ConcurrentHashMap; // field@6978 │ │ -49bda8: 6e10 ee60 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/ConcurrentHashMap;.keySet:()Ljava/util/Set; // method@60ee │ │ -49bdae: 0c00 |0005: move-result-object v0 │ │ -49bdb0: 7210 b060 0000 |0006: invoke-interface {v0}, Ljava/util/Set;.iterator:()Ljava/util/Iterator; // method@60b0 │ │ -49bdb6: 0c00 |0009: move-result-object v0 │ │ -49bdb8: 7210 4f60 0000 |000a: invoke-interface {v0}, Ljava/util/Iterator;.hasNext:()Z // method@604f │ │ -49bdbe: 0a01 |000d: move-result v1 │ │ -49bdc0: 3801 1c00 |000e: if-eqz v1, 002a // +001c │ │ -49bdc4: 7210 5060 0000 |0010: invoke-interface {v0}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@6050 │ │ -49bdca: 0c01 |0013: move-result-object v1 │ │ -49bdcc: 1f01 e40a |0014: check-cast v1, Ljava/lang/Integer; // type@0ae4 │ │ -49bdd0: 5432 7869 |0016: iget-object v2, v3, Lorg/purple/smokestack/TcpListener;.m_neighbors:Ljava/util/concurrent/ConcurrentHashMap; // field@6978 │ │ -49bdd4: 6e20 ed60 1200 |0018: invoke-virtual {v2, v1}, Ljava/util/concurrent/ConcurrentHashMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@60ed │ │ -49bdda: 0c01 |001b: move-result-object v1 │ │ -49bddc: 1f01 ff1e |001c: check-cast v1, Lorg/purple/smokestack/TcpNeighbor; // type@1eff │ │ -49bde0: 3801 ecff |001e: if-eqz v1, 000a // -0014 │ │ -49bde4: 6e10 86d2 0100 |0020: invoke-virtual {v1}, Lorg/purple/smokestack/TcpNeighbor;.getOid:()I // method@d286 │ │ -49bdea: 0a02 |0023: move-result v2 │ │ -49bdec: 3225 e6ff |0024: if-eq v5, v2, 000a // -001a │ │ -49bdf0: 6e20 8dd2 4100 |0026: invoke-virtual {v1, v4}, Lorg/purple/smokestack/TcpNeighbor;.scheduleEchoSend:(Ljava/lang/String;)V // method@d28d │ │ -49bdf6: 28e1 |0029: goto 000a // -001f │ │ -49bdf8: 0e00 |002a: return-void │ │ +49bd90: |[49bd90] org.purple.smokestack.TcpListener.scheduleEchoSend:(Ljava/lang/String;I)V │ │ +49bda0: 5430 7869 |0000: iget-object v0, v3, Lorg/purple/smokestack/TcpListener;.m_neighbors:Ljava/util/concurrent/ConcurrentHashMap; // field@6978 │ │ +49bda4: 6e10 ee60 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/ConcurrentHashMap;.keySet:()Ljava/util/Set; // method@60ee │ │ +49bdaa: 0c00 |0005: move-result-object v0 │ │ +49bdac: 7210 b060 0000 |0006: invoke-interface {v0}, Ljava/util/Set;.iterator:()Ljava/util/Iterator; // method@60b0 │ │ +49bdb2: 0c00 |0009: move-result-object v0 │ │ +49bdb4: 7210 4f60 0000 |000a: invoke-interface {v0}, Ljava/util/Iterator;.hasNext:()Z // method@604f │ │ +49bdba: 0a01 |000d: move-result v1 │ │ +49bdbc: 3801 1c00 |000e: if-eqz v1, 002a // +001c │ │ +49bdc0: 7210 5060 0000 |0010: invoke-interface {v0}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@6050 │ │ +49bdc6: 0c01 |0013: move-result-object v1 │ │ +49bdc8: 1f01 e40a |0014: check-cast v1, Ljava/lang/Integer; // type@0ae4 │ │ +49bdcc: 5432 7869 |0016: iget-object v2, v3, Lorg/purple/smokestack/TcpListener;.m_neighbors:Ljava/util/concurrent/ConcurrentHashMap; // field@6978 │ │ +49bdd0: 6e20 ed60 1200 |0018: invoke-virtual {v2, v1}, Ljava/util/concurrent/ConcurrentHashMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@60ed │ │ +49bdd6: 0c01 |001b: move-result-object v1 │ │ +49bdd8: 1f01 ff1e |001c: check-cast v1, Lorg/purple/smokestack/TcpNeighbor; // type@1eff │ │ +49bddc: 3801 ecff |001e: if-eqz v1, 000a // -0014 │ │ +49bde0: 6e10 86d2 0100 |0020: invoke-virtual {v1}, Lorg/purple/smokestack/TcpNeighbor;.getOid:()I // method@d286 │ │ +49bde6: 0a02 |0023: move-result v2 │ │ +49bde8: 3225 e6ff |0024: if-eq v5, v2, 000a // -001a │ │ +49bdec: 6e20 8dd2 4100 |0026: invoke-virtual {v1, v4}, Lorg/purple/smokestack/TcpNeighbor;.scheduleEchoSend:(Ljava/lang/String;)V // method@d28d │ │ +49bdf2: 28e1 |0029: goto 000a // -001f │ │ +49bdf4: 0e00 |002a: return-void │ │ catches : 1 │ │ 0x0000 - 0x0029 │ │ Ljava/lang/Exception; -> 0x002a │ │ positions : │ │ 0x0000 line=641 │ │ 0x0016 line=643 │ │ 0x0020 line=645 │ │ @@ -791286,34 +791285,34 @@ │ │ type : '(Ljava/lang/String;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 5 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 37 16-bit code units │ │ -49be0c: |[49be0c] org.purple.smokestack.TcpListener.scheduleSend:(Ljava/lang/String;)V │ │ -49be1c: 5430 7869 |0000: iget-object v0, v3, Lorg/purple/smokestack/TcpListener;.m_neighbors:Ljava/util/concurrent/ConcurrentHashMap; // field@6978 │ │ -49be20: 6e10 ee60 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/ConcurrentHashMap;.keySet:()Ljava/util/Set; // method@60ee │ │ -49be26: 0c00 |0005: move-result-object v0 │ │ -49be28: 7210 b060 0000 |0006: invoke-interface {v0}, Ljava/util/Set;.iterator:()Ljava/util/Iterator; // method@60b0 │ │ -49be2e: 0c00 |0009: move-result-object v0 │ │ -49be30: 7210 4f60 0000 |000a: invoke-interface {v0}, Ljava/util/Iterator;.hasNext:()Z // method@604f │ │ -49be36: 0a01 |000d: move-result v1 │ │ -49be38: 3801 1600 |000e: if-eqz v1, 0024 // +0016 │ │ -49be3c: 7210 5060 0000 |0010: invoke-interface {v0}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@6050 │ │ -49be42: 0c01 |0013: move-result-object v1 │ │ -49be44: 1f01 e40a |0014: check-cast v1, Ljava/lang/Integer; // type@0ae4 │ │ -49be48: 5432 7869 |0016: iget-object v2, v3, Lorg/purple/smokestack/TcpListener;.m_neighbors:Ljava/util/concurrent/ConcurrentHashMap; // field@6978 │ │ -49be4c: 6e20 ed60 1200 |0018: invoke-virtual {v2, v1}, Ljava/util/concurrent/ConcurrentHashMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@60ed │ │ -49be52: 0c01 |001b: move-result-object v1 │ │ -49be54: 1f01 ff1e |001c: check-cast v1, Lorg/purple/smokestack/TcpNeighbor; // type@1eff │ │ -49be58: 3801 ecff |001e: if-eqz v1, 000a // -0014 │ │ -49be5c: 6e20 8ed2 4100 |0020: invoke-virtual {v1, v4}, Lorg/purple/smokestack/TcpNeighbor;.scheduleSend:(Ljava/lang/String;)V // method@d28e │ │ -49be62: 28e7 |0023: goto 000a // -0019 │ │ -49be64: 0e00 |0024: return-void │ │ +49be08: |[49be08] org.purple.smokestack.TcpListener.scheduleSend:(Ljava/lang/String;)V │ │ +49be18: 5430 7869 |0000: iget-object v0, v3, Lorg/purple/smokestack/TcpListener;.m_neighbors:Ljava/util/concurrent/ConcurrentHashMap; // field@6978 │ │ +49be1c: 6e10 ee60 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/ConcurrentHashMap;.keySet:()Ljava/util/Set; // method@60ee │ │ +49be22: 0c00 |0005: move-result-object v0 │ │ +49be24: 7210 b060 0000 |0006: invoke-interface {v0}, Ljava/util/Set;.iterator:()Ljava/util/Iterator; // method@60b0 │ │ +49be2a: 0c00 |0009: move-result-object v0 │ │ +49be2c: 7210 4f60 0000 |000a: invoke-interface {v0}, Ljava/util/Iterator;.hasNext:()Z // method@604f │ │ +49be32: 0a01 |000d: move-result v1 │ │ +49be34: 3801 1600 |000e: if-eqz v1, 0024 // +0016 │ │ +49be38: 7210 5060 0000 |0010: invoke-interface {v0}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@6050 │ │ +49be3e: 0c01 |0013: move-result-object v1 │ │ +49be40: 1f01 e40a |0014: check-cast v1, Ljava/lang/Integer; // type@0ae4 │ │ +49be44: 5432 7869 |0016: iget-object v2, v3, Lorg/purple/smokestack/TcpListener;.m_neighbors:Ljava/util/concurrent/ConcurrentHashMap; // field@6978 │ │ +49be48: 6e20 ed60 1200 |0018: invoke-virtual {v2, v1}, Ljava/util/concurrent/ConcurrentHashMap;.get:(Ljava/lang/Object;)Ljava/lang/Object; // method@60ed │ │ +49be4e: 0c01 |001b: move-result-object v1 │ │ +49be50: 1f01 ff1e |001c: check-cast v1, Lorg/purple/smokestack/TcpNeighbor; // type@1eff │ │ +49be54: 3801 ecff |001e: if-eqz v1, 000a // -0014 │ │ +49be58: 6e20 8ed2 4100 |0020: invoke-virtual {v1, v4}, Lorg/purple/smokestack/TcpNeighbor;.scheduleSend:(Ljava/lang/String;)V // method@d28e │ │ +49be5e: 28e7 |0023: goto 000a // -0019 │ │ +49be60: 0e00 |0024: return-void │ │ catches : 1 │ │ 0x0000 - 0x0023 │ │ Ljava/lang/Exception; -> 0x0024 │ │ positions : │ │ 0x0000 line=658 │ │ 0x0016 line=660 │ │ 0x0020 line=663 │ │ @@ -791326,21 +791325,21 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 12 16-bit code units │ │ -49becc: |[49becc] org.purple.smokestack.TcpListener.togglePrivacy:()V │ │ -49bedc: 5420 7369 |0000: iget-object v0, v2, Lorg/purple/smokestack/TcpListener;.m_isPrivateServer:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6973 │ │ -49bee0: 6e10 1861 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ -49bee6: 0a01 |0005: move-result v1 │ │ -49bee8: df01 0101 |0006: xor-int/lit8 v1, v1, #int 1 // #01 │ │ -49beec: 6e20 1a61 1000 |0008: invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ -49bef2: 0e00 |000b: return-void │ │ +49bec8: |[49bec8] org.purple.smokestack.TcpListener.togglePrivacy:()V │ │ +49bed8: 5420 7369 |0000: iget-object v0, v2, Lorg/purple/smokestack/TcpListener;.m_isPrivateServer:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6973 │ │ +49bedc: 6e10 1861 0000 |0002: invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ +49bee2: 0a01 |0005: move-result v1 │ │ +49bee4: df01 0101 |0006: xor-int/lit8 v1, v1, #int 1 // #01 │ │ +49bee8: 6e20 1a61 1000 |0008: invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ +49beee: 0e00 |000b: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=673 │ │ locals : │ │ 0x0000 - 0x000c reg=2 this Lorg/purple/smokestack/TcpListener; │ │ │ │ source_file_idx : 21760 (TcpListener.java) │ │ @@ -791378,18 +791377,18 @@ │ │ type : '(Lorg/purple/smokestack/TcpNeighbor;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 6 16-bit code units │ │ -49bef4: |[49bef4] org.purple.smokestack.TcpNeighbor$1.:(Lorg/purple/smokestack/TcpNeighbor;)V │ │ -49bf04: 5b01 7e69 |0000: iput-object v1, v0, Lorg/purple/smokestack/TcpNeighbor$1;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@697e │ │ -49bf08: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ -49bf0e: 0e00 |0005: return-void │ │ +49bef0: |[49bef0] org.purple.smokestack.TcpNeighbor$1.:(Lorg/purple/smokestack/TcpNeighbor;)V │ │ +49bf00: 5b01 7e69 |0000: iput-object v1, v0, Lorg/purple/smokestack/TcpNeighbor$1;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@697e │ │ +49bf04: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ +49bf0a: 0e00 |0005: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=254 │ │ locals : │ │ 0x0000 - 0x0006 reg=0 this Lorg/purple/smokestack/TcpNeighbor$1; │ │ 0x0000 - 0x0006 reg=1 (null) Lorg/purple/smokestack/TcpNeighbor; │ │ │ │ @@ -791399,38 +791398,38 @@ │ │ type : '(Ljavax/net/ssl/HandshakeCompletedEvent;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 3 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 43 16-bit code units │ │ -49bf10: |[49bf10] org.purple.smokestack.TcpNeighbor$1.handshakeCompleted:(Ljavax/net/ssl/HandshakeCompletedEvent;)V │ │ -49bf20: 5412 7e69 |0000: iget-object v2, v1, Lorg/purple/smokestack/TcpNeighbor$1;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@697e │ │ -49bf24: 7110 7cd2 0200 |0002: invoke-static {v2}, Lorg/purple/smokestack/TcpNeighbor;.access$000:(Lorg/purple/smokestack/TcpNeighbor;)Ljava/util/concurrent/atomic/AtomicBoolean; // method@d27c │ │ -49bf2a: 0c02 |0005: move-result-object v2 │ │ -49bf2c: 1210 |0006: const/4 v0, #int 1 // #1 │ │ -49bf2e: 6e20 1a61 0200 |0007: invoke-virtual {v2, v0}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ -49bf34: 5412 7e69 |000a: iget-object v2, v1, Lorg/purple/smokestack/TcpNeighbor$1;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@697e │ │ -49bf38: 7110 7dd2 0200 |000c: invoke-static {v2}, Lorg/purple/smokestack/TcpNeighbor;.access$100:(Lorg/purple/smokestack/TcpNeighbor;)V // method@d27d │ │ -49bf3e: 5412 7e69 |000f: iget-object v2, v1, Lorg/purple/smokestack/TcpNeighbor$1;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@697e │ │ -49bf42: 5420 9e69 |0011: iget-object v0, v2, Lorg/purple/smokestack/TcpNeighbor;.m_randomBuffer:Ljava/lang/StringBuffer; // field@699e │ │ -49bf46: 7110 25d1 0000 |0013: invoke-static {v0}, Lorg/purple/smokestack/Messages;.requestAuthentication:(Ljava/lang/StringBuffer;)Ljava/lang/String; // method@d125 │ │ -49bf4c: 0c00 |0016: move-result-object v0 │ │ -49bf4e: 6e20 8ed2 0200 |0017: invoke-virtual {v2, v0}, Lorg/purple/smokestack/TcpNeighbor;.scheduleSend:(Ljava/lang/String;)V // method@d28e │ │ -49bf54: 5412 7e69 |001a: iget-object v2, v1, Lorg/purple/smokestack/TcpNeighbor$1;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@697e │ │ -49bf58: 5422 9669 |001c: iget-object v2, v2, Lorg/purple/smokestack/TcpNeighbor;.m_mutex:Ljava/lang/Object; // field@6996 │ │ -49bf5c: 1d02 |001e: monitor-enter v2 │ │ -49bf5e: 5410 7e69 |001f: iget-object v0, v1, Lorg/purple/smokestack/TcpNeighbor$1;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@697e │ │ -49bf62: 5400 9669 |0021: iget-object v0, v0, Lorg/purple/smokestack/TcpNeighbor;.m_mutex:Ljava/lang/Object; // field@6996 │ │ -49bf66: 6e10 b45c 0000 |0023: invoke-virtual {v0}, Ljava/lang/Object;.notifyAll:()V // method@5cb4 │ │ -49bf6c: 1e02 |0026: monitor-exit v2 │ │ -49bf6e: 0e00 |0027: return-void │ │ -49bf70: 0d00 |0028: move-exception v0 │ │ -49bf72: 1e02 |0029: monitor-exit v2 │ │ -49bf74: 2700 |002a: throw v0 │ │ +49bf0c: |[49bf0c] org.purple.smokestack.TcpNeighbor$1.handshakeCompleted:(Ljavax/net/ssl/HandshakeCompletedEvent;)V │ │ +49bf1c: 5412 7e69 |0000: iget-object v2, v1, Lorg/purple/smokestack/TcpNeighbor$1;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@697e │ │ +49bf20: 7110 7cd2 0200 |0002: invoke-static {v2}, Lorg/purple/smokestack/TcpNeighbor;.access$000:(Lorg/purple/smokestack/TcpNeighbor;)Ljava/util/concurrent/atomic/AtomicBoolean; // method@d27c │ │ +49bf26: 0c02 |0005: move-result-object v2 │ │ +49bf28: 1210 |0006: const/4 v0, #int 1 // #1 │ │ +49bf2a: 6e20 1a61 0200 |0007: invoke-virtual {v2, v0}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ +49bf30: 5412 7e69 |000a: iget-object v2, v1, Lorg/purple/smokestack/TcpNeighbor$1;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@697e │ │ +49bf34: 7110 7dd2 0200 |000c: invoke-static {v2}, Lorg/purple/smokestack/TcpNeighbor;.access$100:(Lorg/purple/smokestack/TcpNeighbor;)V // method@d27d │ │ +49bf3a: 5412 7e69 |000f: iget-object v2, v1, Lorg/purple/smokestack/TcpNeighbor$1;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@697e │ │ +49bf3e: 5420 9e69 |0011: iget-object v0, v2, Lorg/purple/smokestack/TcpNeighbor;.m_randomBuffer:Ljava/lang/StringBuffer; // field@699e │ │ +49bf42: 7110 25d1 0000 |0013: invoke-static {v0}, Lorg/purple/smokestack/Messages;.requestAuthentication:(Ljava/lang/StringBuffer;)Ljava/lang/String; // method@d125 │ │ +49bf48: 0c00 |0016: move-result-object v0 │ │ +49bf4a: 6e20 8ed2 0200 |0017: invoke-virtual {v2, v0}, Lorg/purple/smokestack/TcpNeighbor;.scheduleSend:(Ljava/lang/String;)V // method@d28e │ │ +49bf50: 5412 7e69 |001a: iget-object v2, v1, Lorg/purple/smokestack/TcpNeighbor$1;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@697e │ │ +49bf54: 5422 9669 |001c: iget-object v2, v2, Lorg/purple/smokestack/TcpNeighbor;.m_mutex:Ljava/lang/Object; // field@6996 │ │ +49bf58: 1d02 |001e: monitor-enter v2 │ │ +49bf5a: 5410 7e69 |001f: iget-object v0, v1, Lorg/purple/smokestack/TcpNeighbor$1;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@697e │ │ +49bf5e: 5400 9669 |0021: iget-object v0, v0, Lorg/purple/smokestack/TcpNeighbor;.m_mutex:Ljava/lang/Object; // field@6996 │ │ +49bf62: 6e10 b45c 0000 |0023: invoke-virtual {v0}, Ljava/lang/Object;.notifyAll:()V // method@5cb4 │ │ +49bf68: 1e02 |0026: monitor-exit v2 │ │ +49bf6a: 0e00 |0027: return-void │ │ +49bf6c: 0d00 |0028: move-exception v0 │ │ +49bf6e: 1e02 |0029: monitor-exit v2 │ │ +49bf70: 2700 |002a: throw v0 │ │ catches : 1 │ │ 0x001f - 0x002a │ │ -> 0x0028 │ │ positions : │ │ 0x0000 line=259 │ │ 0x000a line=260 │ │ 0x000f line=261 │ │ @@ -791478,18 +791477,18 @@ │ │ type : '(Lorg/purple/smokestack/TcpNeighbor;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 6 16-bit code units │ │ -49bf84: |[49bf84] org.purple.smokestack.TcpNeighbor$2.:(Lorg/purple/smokestack/TcpNeighbor;)V │ │ -49bf94: 5b01 7f69 |0000: iput-object v1, v0, Lorg/purple/smokestack/TcpNeighbor$2;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@697f │ │ -49bf98: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ -49bf9e: 0e00 |0005: return-void │ │ +49bf80: |[49bf80] org.purple.smokestack.TcpNeighbor$2.:(Lorg/purple/smokestack/TcpNeighbor;)V │ │ +49bf90: 5b01 7f69 |0000: iput-object v1, v0, Lorg/purple/smokestack/TcpNeighbor$2;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@697f │ │ +49bf94: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ +49bf9a: 0e00 |0005: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=290 │ │ locals : │ │ 0x0000 - 0x0006 reg=0 this Lorg/purple/smokestack/TcpNeighbor$2; │ │ 0x0000 - 0x0006 reg=1 (null) Lorg/purple/smokestack/TcpNeighbor; │ │ │ │ @@ -791499,55 +791498,55 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 5 │ │ ins : 1 │ │ outs : 3 │ │ insns size : 74 16-bit code units │ │ -49bfa0: |[49bfa0] org.purple.smokestack.TcpNeighbor$2.run:()V │ │ -49bfb0: 5440 7f69 |0000: iget-object v0, v4, Lorg/purple/smokestack/TcpNeighbor$2;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@697f │ │ -49bfb4: 6e10 82d2 0000 |0002: invoke-virtual {v0}, Lorg/purple/smokestack/TcpNeighbor;.connected:()Z // method@d282 │ │ -49bfba: 0a00 |0005: move-result v0 │ │ -49bfbc: 3900 2100 |0006: if-nez v0, 0027 // +0021 │ │ -49bfc0: 5440 7f69 |0008: iget-object v0, v4, Lorg/purple/smokestack/TcpNeighbor$2;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@697f │ │ -49bfc4: 5400 8d69 |000a: iget-object v0, v0, Lorg/purple/smokestack/TcpNeighbor;.m_disconnected:Ljava/util/concurrent/atomic/AtomicBoolean; // field@698d │ │ -49bfc8: 6e10 1861 0000 |000c: invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ -49bfce: 0a00 |000f: move-result v0 │ │ -49bfd0: 3900 1700 |0010: if-nez v0, 0027 // +0017 │ │ -49bfd4: 5440 7f69 |0012: iget-object v0, v4, Lorg/purple/smokestack/TcpNeighbor$2;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@697f │ │ -49bfd8: 5400 9669 |0014: iget-object v0, v0, Lorg/purple/smokestack/TcpNeighbor;.m_mutex:Ljava/lang/Object; // field@6996 │ │ -49bfdc: 1d00 |0016: monitor-enter v0 │ │ -49bfde: 5441 7f69 |0017: iget-object v1, v4, Lorg/purple/smokestack/TcpNeighbor$2;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@697f │ │ -49bfe2: 5411 9669 |0019: iget-object v1, v1, Lorg/purple/smokestack/TcpNeighbor;.m_mutex:Ljava/lang/Object; // field@6996 │ │ -49bfe6: 1602 1027 |001b: const-wide/16 v2, #int 10000 // #2710 │ │ -49bfea: 6e30 b75c 2103 |001d: invoke-virtual {v1, v2, v3}, Ljava/lang/Object;.wait:(J)V // method@5cb7 │ │ -49bff0: 2803 |0020: goto 0023 // +0003 │ │ -49bff2: 0d01 |0021: move-exception v1 │ │ -49bff4: 2803 |0022: goto 0025 // +0003 │ │ -49bff6: 1e00 |0023: monitor-exit v0 │ │ -49bff8: 2803 |0024: goto 0027 // +0003 │ │ -49bffa: 1e00 |0025: monitor-exit v0 │ │ -49bffc: 2701 |0026: throw v1 │ │ -49bffe: 5440 7f69 |0027: iget-object v0, v4, Lorg/purple/smokestack/TcpNeighbor$2;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@697f │ │ -49c002: 6e10 82d2 0000 |0029: invoke-virtual {v0}, Lorg/purple/smokestack/TcpNeighbor;.connected:()Z // method@d282 │ │ -49c008: 0a00 |002c: move-result v0 │ │ -49c00a: 3800 1c00 |002d: if-eqz v0, 0049 // +001c │ │ -49c00e: 5440 7f69 |002f: iget-object v0, v4, Lorg/purple/smokestack/TcpNeighbor$2;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@697f │ │ -49c012: 5400 a069 |0031: iget-object v0, v0, Lorg/purple/smokestack/TcpNeighbor;.m_remoteUserAuthenticated:Ljava/util/concurrent/atomic/AtomicBoolean; // field@69a0 │ │ -49c016: 6e10 1861 0000 |0033: invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ -49c01c: 0a00 |0036: move-result v0 │ │ -49c01e: 3900 1200 |0037: if-nez v0, 0049 // +0012 │ │ -49c022: 5440 7f69 |0039: iget-object v0, v4, Lorg/purple/smokestack/TcpNeighbor$2;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@697f │ │ -49c026: 7110 7dd2 0000 |003b: invoke-static {v0}, Lorg/purple/smokestack/TcpNeighbor;.access$100:(Lorg/purple/smokestack/TcpNeighbor;)V // method@d27d │ │ -49c02c: 5440 7f69 |003e: iget-object v0, v4, Lorg/purple/smokestack/TcpNeighbor$2;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@697f │ │ -49c030: 5401 9e69 |0040: iget-object v1, v0, Lorg/purple/smokestack/TcpNeighbor;.m_randomBuffer:Ljava/lang/StringBuffer; // field@699e │ │ -49c034: 7110 25d1 0100 |0042: invoke-static {v1}, Lorg/purple/smokestack/Messages;.requestAuthentication:(Ljava/lang/StringBuffer;)Ljava/lang/String; // method@d125 │ │ -49c03a: 0c01 |0045: move-result-object v1 │ │ -49c03c: 6e20 8ed2 1000 |0046: invoke-virtual {v0, v1}, Lorg/purple/smokestack/TcpNeighbor;.scheduleSend:(Ljava/lang/String;)V // method@d28e │ │ -49c042: 0e00 |0049: return-void │ │ +49bf9c: |[49bf9c] org.purple.smokestack.TcpNeighbor$2.run:()V │ │ +49bfac: 5440 7f69 |0000: iget-object v0, v4, Lorg/purple/smokestack/TcpNeighbor$2;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@697f │ │ +49bfb0: 6e10 82d2 0000 |0002: invoke-virtual {v0}, Lorg/purple/smokestack/TcpNeighbor;.connected:()Z // method@d282 │ │ +49bfb6: 0a00 |0005: move-result v0 │ │ +49bfb8: 3900 2100 |0006: if-nez v0, 0027 // +0021 │ │ +49bfbc: 5440 7f69 |0008: iget-object v0, v4, Lorg/purple/smokestack/TcpNeighbor$2;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@697f │ │ +49bfc0: 5400 8d69 |000a: iget-object v0, v0, Lorg/purple/smokestack/TcpNeighbor;.m_disconnected:Ljava/util/concurrent/atomic/AtomicBoolean; // field@698d │ │ +49bfc4: 6e10 1861 0000 |000c: invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ +49bfca: 0a00 |000f: move-result v0 │ │ +49bfcc: 3900 1700 |0010: if-nez v0, 0027 // +0017 │ │ +49bfd0: 5440 7f69 |0012: iget-object v0, v4, Lorg/purple/smokestack/TcpNeighbor$2;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@697f │ │ +49bfd4: 5400 9669 |0014: iget-object v0, v0, Lorg/purple/smokestack/TcpNeighbor;.m_mutex:Ljava/lang/Object; // field@6996 │ │ +49bfd8: 1d00 |0016: monitor-enter v0 │ │ +49bfda: 5441 7f69 |0017: iget-object v1, v4, Lorg/purple/smokestack/TcpNeighbor$2;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@697f │ │ +49bfde: 5411 9669 |0019: iget-object v1, v1, Lorg/purple/smokestack/TcpNeighbor;.m_mutex:Ljava/lang/Object; // field@6996 │ │ +49bfe2: 1602 1027 |001b: const-wide/16 v2, #int 10000 // #2710 │ │ +49bfe6: 6e30 b75c 2103 |001d: invoke-virtual {v1, v2, v3}, Ljava/lang/Object;.wait:(J)V // method@5cb7 │ │ +49bfec: 2803 |0020: goto 0023 // +0003 │ │ +49bfee: 0d01 |0021: move-exception v1 │ │ +49bff0: 2803 |0022: goto 0025 // +0003 │ │ +49bff2: 1e00 |0023: monitor-exit v0 │ │ +49bff4: 2803 |0024: goto 0027 // +0003 │ │ +49bff6: 1e00 |0025: monitor-exit v0 │ │ +49bff8: 2701 |0026: throw v1 │ │ +49bffa: 5440 7f69 |0027: iget-object v0, v4, Lorg/purple/smokestack/TcpNeighbor$2;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@697f │ │ +49bffe: 6e10 82d2 0000 |0029: invoke-virtual {v0}, Lorg/purple/smokestack/TcpNeighbor;.connected:()Z // method@d282 │ │ +49c004: 0a00 |002c: move-result v0 │ │ +49c006: 3800 1c00 |002d: if-eqz v0, 0049 // +001c │ │ +49c00a: 5440 7f69 |002f: iget-object v0, v4, Lorg/purple/smokestack/TcpNeighbor$2;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@697f │ │ +49c00e: 5400 a069 |0031: iget-object v0, v0, Lorg/purple/smokestack/TcpNeighbor;.m_remoteUserAuthenticated:Ljava/util/concurrent/atomic/AtomicBoolean; // field@69a0 │ │ +49c012: 6e10 1861 0000 |0033: invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ +49c018: 0a00 |0036: move-result v0 │ │ +49c01a: 3900 1200 |0037: if-nez v0, 0049 // +0012 │ │ +49c01e: 5440 7f69 |0039: iget-object v0, v4, Lorg/purple/smokestack/TcpNeighbor$2;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@697f │ │ +49c022: 7110 7dd2 0000 |003b: invoke-static {v0}, Lorg/purple/smokestack/TcpNeighbor;.access$100:(Lorg/purple/smokestack/TcpNeighbor;)V // method@d27d │ │ +49c028: 5440 7f69 |003e: iget-object v0, v4, Lorg/purple/smokestack/TcpNeighbor$2;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@697f │ │ +49c02c: 5401 9e69 |0040: iget-object v1, v0, Lorg/purple/smokestack/TcpNeighbor;.m_randomBuffer:Ljava/lang/StringBuffer; // field@699e │ │ +49c030: 7110 25d1 0100 |0042: invoke-static {v1}, Lorg/purple/smokestack/Messages;.requestAuthentication:(Ljava/lang/StringBuffer;)Ljava/lang/String; // method@d125 │ │ +49c036: 0c01 |0045: move-result-object v1 │ │ +49c038: 6e20 8ed2 1000 |0046: invoke-virtual {v0, v1}, Lorg/purple/smokestack/TcpNeighbor;.scheduleSend:(Ljava/lang/String;)V // method@d28e │ │ +49c03e: 0e00 |0049: return-void │ │ catches : 4 │ │ 0x0000 - 0x0017 │ │ Ljava/lang/Exception; -> 0x0049 │ │ 0x0017 - 0x0020 │ │ Ljava/lang/Exception; -> 0x0023 │ │ -> 0x0021 │ │ 0x0023 - 0x0026 │ │ @@ -791606,20 +791605,20 @@ │ │ type : '(Lorg/purple/smokestack/TcpNeighbor;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 9 16-bit code units │ │ -49c070: |[49c070] org.purple.smokestack.TcpNeighbor$3.:(Lorg/purple/smokestack/TcpNeighbor;)V │ │ -49c080: 5b01 8169 |0000: iput-object v1, v0, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ -49c084: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ -49c08a: 1201 |0005: const/4 v1, #int 0 // #0 │ │ -49c08c: 5c01 8069 |0006: iput-boolean v1, v0, Lorg/purple/smokestack/TcpNeighbor$3;.m_error:Z // field@6980 │ │ -49c090: 0e00 |0008: return-void │ │ +49c06c: |[49c06c] org.purple.smokestack.TcpNeighbor$3.:(Lorg/purple/smokestack/TcpNeighbor;)V │ │ +49c07c: 5b01 8169 |0000: iput-object v1, v0, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ +49c080: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ +49c086: 1201 |0005: const/4 v1, #int 0 // #0 │ │ +49c088: 5c01 8069 |0006: iput-boolean v1, v0, Lorg/purple/smokestack/TcpNeighbor$3;.m_error:Z // field@6980 │ │ +49c08c: 0e00 |0008: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=326 │ │ 0x0006 line=327 │ │ locals : │ │ 0x0000 - 0x0009 reg=0 this Lorg/purple/smokestack/TcpNeighbor$3; │ │ 0x0000 - 0x0009 reg=1 (null) Lorg/purple/smokestack/TcpNeighbor; │ │ @@ -791630,148 +791629,148 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 9 │ │ ins : 1 │ │ outs : 4 │ │ insns size : 246 16-bit code units │ │ -49c094: |[49c094] org.purple.smokestack.TcpNeighbor$3.run:()V │ │ -49c0a4: 1210 |0000: const/4 v0, #int 1 // #1 │ │ -49c0a6: 5481 8169 |0001: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ -49c0aa: 6e10 82d2 0100 |0003: invoke-virtual {v1}, Lorg/purple/smokestack/TcpNeighbor;.connected:()Z // method@d282 │ │ -49c0b0: 0a01 |0006: move-result v1 │ │ -49c0b2: 3901 2100 |0007: if-nez v1, 0028 // +0021 │ │ -49c0b6: 5481 8169 |0009: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ -49c0ba: 5411 8d69 |000b: iget-object v1, v1, Lorg/purple/smokestack/TcpNeighbor;.m_disconnected:Ljava/util/concurrent/atomic/AtomicBoolean; // field@698d │ │ -49c0be: 6e10 1861 0100 |000d: invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ -49c0c4: 0a01 |0010: move-result v1 │ │ -49c0c6: 3901 1700 |0011: if-nez v1, 0028 // +0017 │ │ -49c0ca: 5481 8169 |0013: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ -49c0ce: 5411 9669 |0015: iget-object v1, v1, Lorg/purple/smokestack/TcpNeighbor;.m_mutex:Ljava/lang/Object; // field@6996 │ │ -49c0d2: 1d01 |0017: monitor-enter v1 │ │ -49c0d4: 5482 8169 |0018: iget-object v2, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ -49c0d8: 5422 9669 |001a: iget-object v2, v2, Lorg/purple/smokestack/TcpNeighbor;.m_mutex:Ljava/lang/Object; // field@6996 │ │ -49c0dc: 1603 1027 |001c: const-wide/16 v3, #int 10000 // #2710 │ │ -49c0e0: 6e30 b75c 3204 |001e: invoke-virtual {v2, v3, v4}, Ljava/lang/Object;.wait:(J)V // method@5cb7 │ │ -49c0e6: 2803 |0021: goto 0024 // +0003 │ │ -49c0e8: 0d02 |0022: move-exception v2 │ │ -49c0ea: 2803 |0023: goto 0026 // +0003 │ │ -49c0ec: 1e01 |0024: monitor-exit v1 │ │ -49c0ee: 2803 |0025: goto 0028 // +0003 │ │ -49c0f0: 1e01 |0026: monitor-exit v1 │ │ -49c0f2: 2702 |0027: throw v2 │ │ -49c0f4: 5481 8169 |0028: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ -49c0f8: 6e10 82d2 0100 |002a: invoke-virtual {v1}, Lorg/purple/smokestack/TcpNeighbor;.connected:()Z // method@d282 │ │ -49c0fe: 0a01 |002d: move-result v1 │ │ -49c100: 3901 0300 |002e: if-nez v1, 0031 // +0003 │ │ -49c104: 0e00 |0030: return-void │ │ -49c106: 5581 8069 |0031: iget-boolean v1, v8, Lorg/purple/smokestack/TcpNeighbor$3;.m_error:Z // field@6980 │ │ -49c10a: 1202 |0033: const/4 v2, #int 0 // #0 │ │ -49c10c: 3801 0e00 |0034: if-eqz v1, 0042 // +000e │ │ -49c110: 5481 8169 |0036: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ -49c114: 6e10 82d2 0100 |0038: invoke-virtual {v1}, Lorg/purple/smokestack/TcpNeighbor;.connected:()Z // method@d282 │ │ -49c11a: 0a01 |003b: move-result v1 │ │ -49c11c: 3801 0500 |003c: if-eqz v1, 0041 // +0005 │ │ -49c120: 5c82 8069 |003e: iput-boolean v2, v8, Lorg/purple/smokestack/TcpNeighbor$3;.m_error:Z // field@6980 │ │ -49c124: 282f |0040: goto 006f // +002f │ │ -49c126: 0e00 |0041: return-void │ │ -49c128: 5481 8169 |0042: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ -49c12c: 7110 7ed2 0100 |0044: invoke-static {v1}, Lorg/purple/smokestack/TcpNeighbor;.access$200:(Lorg/purple/smokestack/TcpNeighbor;)Ljavax/net/ssl/SSLSocket; // method@d27e │ │ -49c132: 0c01 |0047: move-result-object v1 │ │ -49c134: 3801 9e00 |0048: if-eqz v1, 00e6 // +009e │ │ -49c138: 5481 8169 |004a: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ -49c13c: 7110 7ed2 0100 |004c: invoke-static {v1}, Lorg/purple/smokestack/TcpNeighbor;.access$200:(Lorg/purple/smokestack/TcpNeighbor;)Ljavax/net/ssl/SSLSocket; // method@d27e │ │ -49c142: 0c01 |004f: move-result-object v1 │ │ -49c144: 6e10 f961 0100 |0050: invoke-virtual {v1}, Ljavax/net/ssl/SSLSocket;.getInputStream:()Ljava/io/InputStream; // method@61f9 │ │ -49c14a: 0c01 |0053: move-result-object v1 │ │ -49c14c: 3901 0400 |0054: if-nez v1, 0058 // +0004 │ │ -49c150: 2900 9000 |0056: goto/16 00e6 // +0090 │ │ -49c154: 5481 8169 |0058: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ -49c158: 7110 7ed2 0100 |005a: invoke-static {v1}, Lorg/purple/smokestack/TcpNeighbor;.access$200:(Lorg/purple/smokestack/TcpNeighbor;)Ljavax/net/ssl/SSLSocket; // method@d27e │ │ -49c15e: 0c01 |005d: move-result-object v1 │ │ -49c160: 6e10 ff61 0100 |005e: invoke-virtual {v1}, Ljavax/net/ssl/SSLSocket;.getSoTimeout:()I // method@61ff │ │ -49c166: 0a01 |0061: move-result v1 │ │ -49c168: 1303 1027 |0062: const/16 v3, #int 10000 // #2710 │ │ -49c16c: 3331 0b00 |0064: if-ne v1, v3, 006f // +000b │ │ -49c170: 5481 8169 |0066: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ -49c174: 7110 7ed2 0100 |0068: invoke-static {v1}, Lorg/purple/smokestack/TcpNeighbor;.access$200:(Lorg/purple/smokestack/TcpNeighbor;)Ljavax/net/ssl/SSLSocket; // method@d27e │ │ -49c17a: 0c01 |006b: move-result-object v1 │ │ -49c17c: 6e20 0862 2100 |006c: invoke-virtual {v1, v2}, Ljavax/net/ssl/SSLSocket;.setSoTimeout:(I)V // method@6208 │ │ -49c182: 1501 1000 |006f: const/high16 v1, #int 1048576 // #10 │ │ -49c186: 2311 0a1f |0071: new-array v1, v1, [B // type@1f0a │ │ -49c18a: 5483 8169 |0073: iget-object v3, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ -49c18e: 7110 7ed2 0300 |0075: invoke-static {v3}, Lorg/purple/smokestack/TcpNeighbor;.access$200:(Lorg/purple/smokestack/TcpNeighbor;)Ljavax/net/ssl/SSLSocket; // method@d27e │ │ -49c194: 0c03 |0078: move-result-object v3 │ │ -49c196: 6e10 f961 0300 |0079: invoke-virtual {v3}, Ljavax/net/ssl/SSLSocket;.getInputStream:()Ljava/io/InputStream; // method@61f9 │ │ -49c19c: 0c03 |007c: move-result-object v3 │ │ -49c19e: 6e20 cc5b 1300 |007d: invoke-virtual {v3, v1}, Ljava/io/InputStream;.read:([B)I // method@5bcc │ │ -49c1a4: 0a03 |0080: move-result v3 │ │ -49c1a6: 2804 |0081: goto 0085 // +0004 │ │ -49c1a8: 12f3 |0082: const/4 v3, #int -1 // #ff │ │ -49c1aa: 5c80 8069 |0083: iput-boolean v0, v8, Lorg/purple/smokestack/TcpNeighbor$3;.m_error:Z // field@6980 │ │ -49c1ae: 1604 0000 |0085: const-wide/16 v4, #int 0 // #0 │ │ -49c1b2: 3b03 0500 |0087: if-gez v3, 008c // +0005 │ │ -49c1b6: 1606 ffff |0089: const-wide/16 v6, #int -1 // #ffff │ │ -49c1ba: 2807 |008b: goto 0092 // +0007 │ │ -49c1bc: 3d03 0500 |008c: if-lez v3, 0091 // +0005 │ │ -49c1c0: 8136 |008e: int-to-long v6, v3 │ │ -49c1c2: bb46 |008f: add-long/2addr v6, v4 │ │ -49c1c4: 2802 |0090: goto 0092 // +0002 │ │ -49c1c6: 0446 |0091: move-wide v6, v4 │ │ -49c1c8: 3103 0604 |0092: cmp-long v3, v6, v4 │ │ -49c1cc: 3b03 1100 |0094: if-gez v3, 00a5 // +0011 │ │ -49c1d0: 5c80 8069 |0096: iput-boolean v0, v8, Lorg/purple/smokestack/TcpNeighbor$3;.m_error:Z // field@6980 │ │ -49c1d4: 5481 8169 |0098: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ -49c1d8: 1a02 9b09 |009a: const-string v2, "A socket read() error occurred." // string@099b │ │ -49c1dc: 6e20 90d2 2100 |009c: invoke-virtual {v1, v2}, Lorg/purple/smokestack/TcpNeighbor;.setError:(Ljava/lang/String;)V // method@d290 │ │ -49c1e2: 5481 8169 |009f: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ -49c1e6: 6e10 83d2 0100 |00a1: invoke-virtual {v1}, Lorg/purple/smokestack/TcpNeighbor;.disconnect:()V // method@d283 │ │ -49c1ec: 0e00 |00a4: return-void │ │ -49c1ee: 3103 0604 |00a5: cmp-long v3, v6, v4 │ │ -49c1f2: 3903 0300 |00a7: if-nez v3, 00aa // +0003 │ │ -49c1f6: 0e00 |00a9: return-void │ │ -49c1f8: 5483 8169 |00aa: iget-object v3, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ -49c1fc: 5433 8969 |00ac: iget-object v3, v3, Lorg/purple/smokestack/TcpNeighbor;.m_bytesRead:Ljava/util/concurrent/atomic/AtomicLong; // field@6989 │ │ -49c200: 6e30 2261 6307 |00ae: invoke-virtual {v3, v6, v7}, Ljava/util/concurrent/atomic/AtomicLong;.getAndAdd:(J)J // method@6122 │ │ -49c206: 5483 8169 |00b1: iget-object v3, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ -49c20a: 5433 9569 |00b3: iget-object v3, v3, Lorg/purple/smokestack/TcpNeighbor;.m_lastTimeRead:Ljava/util/concurrent/atomic/AtomicLong; // field@6995 │ │ -49c20e: 7100 315d 0000 |00b5: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@5d31 │ │ -49c214: 0b04 |00b8: move-result-wide v4 │ │ -49c216: 6e30 2461 4305 |00b9: invoke-virtual {v3, v4, v5}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ -49c21c: 5483 8169 |00bc: iget-object v3, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ -49c220: 5433 a469 |00be: iget-object v3, v3, Lorg/purple/smokestack/TcpNeighbor;.m_stringBuffer:Ljava/lang/StringBuffer; // field@69a4 │ │ -49c224: 6e10 0c5d 0300 |00c0: invoke-virtual {v3}, Ljava/lang/StringBuffer;.length:()I // method@5d0c │ │ -49c22a: 0a03 |00c3: move-result v3 │ │ -49c22c: 1504 8000 |00c4: const/high16 v4, #int 8388608 // #80 │ │ -49c230: 3543 0f00 |00c6: if-ge v3, v4, 00d5 // +000f │ │ -49c234: 5483 8169 |00c8: iget-object v3, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ -49c238: 5433 a469 |00ca: iget-object v3, v3, Lorg/purple/smokestack/TcpNeighbor;.m_stringBuffer:Ljava/lang/StringBuffer; // field@69a4 │ │ -49c23c: 2204 fa0a |00cc: new-instance v4, Ljava/lang/String; // type@0afa │ │ -49c240: 8465 |00ce: long-to-int v5, v6 │ │ -49c242: 7040 cf5c 1452 |00cf: invoke-direct {v4, v1, v2, v5}, Ljava/lang/String;.:([BII)V // method@5ccf │ │ -49c248: 6e20 045d 4300 |00d2: invoke-virtual {v3, v4}, Ljava/lang/StringBuffer;.append:(Ljava/lang/String;)Ljava/lang/StringBuffer; // method@5d04 │ │ -49c24e: 5481 8169 |00d5: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ -49c252: 5411 9869 |00d7: iget-object v1, v1, Lorg/purple/smokestack/TcpNeighbor;.m_parsingSchedulerObject:Ljava/lang/Object; // field@6998 │ │ -49c256: 1d01 |00d9: monitor-enter v1 │ │ -49c258: 5482 8169 |00da: iget-object v2, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ -49c25c: 5422 9869 |00dc: iget-object v2, v2, Lorg/purple/smokestack/TcpNeighbor;.m_parsingSchedulerObject:Ljava/lang/Object; // field@6998 │ │ -49c260: 6e10 b35c 0200 |00de: invoke-virtual {v2}, Ljava/lang/Object;.notify:()V // method@5cb3 │ │ -49c266: 1e01 |00e1: monitor-exit v1 │ │ -49c268: 2813 |00e2: goto 00f5 // +0013 │ │ -49c26a: 0d02 |00e3: move-exception v2 │ │ -49c26c: 1e01 |00e4: monitor-exit v1 │ │ -49c26e: 2702 |00e5: throw v2 │ │ -49c270: 0e00 |00e6: return-void │ │ -49c272: 5c80 8069 |00e7: iput-boolean v0, v8, Lorg/purple/smokestack/TcpNeighbor$3;.m_error:Z // field@6980 │ │ -49c276: 5480 8169 |00e9: iget-object v0, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ -49c27a: 1a01 9a09 |00eb: const-string v1, "A socket error occurred while reading data." // string@099a │ │ -49c27e: 6e20 90d2 1000 |00ed: invoke-virtual {v0, v1}, Lorg/purple/smokestack/TcpNeighbor;.setError:(Ljava/lang/String;)V // method@d290 │ │ -49c284: 5480 8169 |00f0: iget-object v0, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ -49c288: 6e10 83d2 0000 |00f2: invoke-virtual {v0}, Lorg/purple/smokestack/TcpNeighbor;.disconnect:()V // method@d283 │ │ -49c28e: 0e00 |00f5: return-void │ │ +49c090: |[49c090] org.purple.smokestack.TcpNeighbor$3.run:()V │ │ +49c0a0: 1210 |0000: const/4 v0, #int 1 // #1 │ │ +49c0a2: 5481 8169 |0001: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ +49c0a6: 6e10 82d2 0100 |0003: invoke-virtual {v1}, Lorg/purple/smokestack/TcpNeighbor;.connected:()Z // method@d282 │ │ +49c0ac: 0a01 |0006: move-result v1 │ │ +49c0ae: 3901 2100 |0007: if-nez v1, 0028 // +0021 │ │ +49c0b2: 5481 8169 |0009: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ +49c0b6: 5411 8d69 |000b: iget-object v1, v1, Lorg/purple/smokestack/TcpNeighbor;.m_disconnected:Ljava/util/concurrent/atomic/AtomicBoolean; // field@698d │ │ +49c0ba: 6e10 1861 0100 |000d: invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ +49c0c0: 0a01 |0010: move-result v1 │ │ +49c0c2: 3901 1700 |0011: if-nez v1, 0028 // +0017 │ │ +49c0c6: 5481 8169 |0013: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ +49c0ca: 5411 9669 |0015: iget-object v1, v1, Lorg/purple/smokestack/TcpNeighbor;.m_mutex:Ljava/lang/Object; // field@6996 │ │ +49c0ce: 1d01 |0017: monitor-enter v1 │ │ +49c0d0: 5482 8169 |0018: iget-object v2, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ +49c0d4: 5422 9669 |001a: iget-object v2, v2, Lorg/purple/smokestack/TcpNeighbor;.m_mutex:Ljava/lang/Object; // field@6996 │ │ +49c0d8: 1603 1027 |001c: const-wide/16 v3, #int 10000 // #2710 │ │ +49c0dc: 6e30 b75c 3204 |001e: invoke-virtual {v2, v3, v4}, Ljava/lang/Object;.wait:(J)V // method@5cb7 │ │ +49c0e2: 2803 |0021: goto 0024 // +0003 │ │ +49c0e4: 0d02 |0022: move-exception v2 │ │ +49c0e6: 2803 |0023: goto 0026 // +0003 │ │ +49c0e8: 1e01 |0024: monitor-exit v1 │ │ +49c0ea: 2803 |0025: goto 0028 // +0003 │ │ +49c0ec: 1e01 |0026: monitor-exit v1 │ │ +49c0ee: 2702 |0027: throw v2 │ │ +49c0f0: 5481 8169 |0028: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ +49c0f4: 6e10 82d2 0100 |002a: invoke-virtual {v1}, Lorg/purple/smokestack/TcpNeighbor;.connected:()Z // method@d282 │ │ +49c0fa: 0a01 |002d: move-result v1 │ │ +49c0fc: 3901 0300 |002e: if-nez v1, 0031 // +0003 │ │ +49c100: 0e00 |0030: return-void │ │ +49c102: 5581 8069 |0031: iget-boolean v1, v8, Lorg/purple/smokestack/TcpNeighbor$3;.m_error:Z // field@6980 │ │ +49c106: 1202 |0033: const/4 v2, #int 0 // #0 │ │ +49c108: 3801 0e00 |0034: if-eqz v1, 0042 // +000e │ │ +49c10c: 5481 8169 |0036: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ +49c110: 6e10 82d2 0100 |0038: invoke-virtual {v1}, Lorg/purple/smokestack/TcpNeighbor;.connected:()Z // method@d282 │ │ +49c116: 0a01 |003b: move-result v1 │ │ +49c118: 3801 0500 |003c: if-eqz v1, 0041 // +0005 │ │ +49c11c: 5c82 8069 |003e: iput-boolean v2, v8, Lorg/purple/smokestack/TcpNeighbor$3;.m_error:Z // field@6980 │ │ +49c120: 282f |0040: goto 006f // +002f │ │ +49c122: 0e00 |0041: return-void │ │ +49c124: 5481 8169 |0042: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ +49c128: 7110 7ed2 0100 |0044: invoke-static {v1}, Lorg/purple/smokestack/TcpNeighbor;.access$200:(Lorg/purple/smokestack/TcpNeighbor;)Ljavax/net/ssl/SSLSocket; // method@d27e │ │ +49c12e: 0c01 |0047: move-result-object v1 │ │ +49c130: 3801 9e00 |0048: if-eqz v1, 00e6 // +009e │ │ +49c134: 5481 8169 |004a: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ +49c138: 7110 7ed2 0100 |004c: invoke-static {v1}, Lorg/purple/smokestack/TcpNeighbor;.access$200:(Lorg/purple/smokestack/TcpNeighbor;)Ljavax/net/ssl/SSLSocket; // method@d27e │ │ +49c13e: 0c01 |004f: move-result-object v1 │ │ +49c140: 6e10 f961 0100 |0050: invoke-virtual {v1}, Ljavax/net/ssl/SSLSocket;.getInputStream:()Ljava/io/InputStream; // method@61f9 │ │ +49c146: 0c01 |0053: move-result-object v1 │ │ +49c148: 3901 0400 |0054: if-nez v1, 0058 // +0004 │ │ +49c14c: 2900 9000 |0056: goto/16 00e6 // +0090 │ │ +49c150: 5481 8169 |0058: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ +49c154: 7110 7ed2 0100 |005a: invoke-static {v1}, Lorg/purple/smokestack/TcpNeighbor;.access$200:(Lorg/purple/smokestack/TcpNeighbor;)Ljavax/net/ssl/SSLSocket; // method@d27e │ │ +49c15a: 0c01 |005d: move-result-object v1 │ │ +49c15c: 6e10 ff61 0100 |005e: invoke-virtual {v1}, Ljavax/net/ssl/SSLSocket;.getSoTimeout:()I // method@61ff │ │ +49c162: 0a01 |0061: move-result v1 │ │ +49c164: 1303 1027 |0062: const/16 v3, #int 10000 // #2710 │ │ +49c168: 3331 0b00 |0064: if-ne v1, v3, 006f // +000b │ │ +49c16c: 5481 8169 |0066: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ +49c170: 7110 7ed2 0100 |0068: invoke-static {v1}, Lorg/purple/smokestack/TcpNeighbor;.access$200:(Lorg/purple/smokestack/TcpNeighbor;)Ljavax/net/ssl/SSLSocket; // method@d27e │ │ +49c176: 0c01 |006b: move-result-object v1 │ │ +49c178: 6e20 0862 2100 |006c: invoke-virtual {v1, v2}, Ljavax/net/ssl/SSLSocket;.setSoTimeout:(I)V // method@6208 │ │ +49c17e: 1501 1000 |006f: const/high16 v1, #int 1048576 // #10 │ │ +49c182: 2311 0a1f |0071: new-array v1, v1, [B // type@1f0a │ │ +49c186: 5483 8169 |0073: iget-object v3, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ +49c18a: 7110 7ed2 0300 |0075: invoke-static {v3}, Lorg/purple/smokestack/TcpNeighbor;.access$200:(Lorg/purple/smokestack/TcpNeighbor;)Ljavax/net/ssl/SSLSocket; // method@d27e │ │ +49c190: 0c03 |0078: move-result-object v3 │ │ +49c192: 6e10 f961 0300 |0079: invoke-virtual {v3}, Ljavax/net/ssl/SSLSocket;.getInputStream:()Ljava/io/InputStream; // method@61f9 │ │ +49c198: 0c03 |007c: move-result-object v3 │ │ +49c19a: 6e20 cc5b 1300 |007d: invoke-virtual {v3, v1}, Ljava/io/InputStream;.read:([B)I // method@5bcc │ │ +49c1a0: 0a03 |0080: move-result v3 │ │ +49c1a2: 2804 |0081: goto 0085 // +0004 │ │ +49c1a4: 12f3 |0082: const/4 v3, #int -1 // #ff │ │ +49c1a6: 5c80 8069 |0083: iput-boolean v0, v8, Lorg/purple/smokestack/TcpNeighbor$3;.m_error:Z // field@6980 │ │ +49c1aa: 1604 0000 |0085: const-wide/16 v4, #int 0 // #0 │ │ +49c1ae: 3b03 0500 |0087: if-gez v3, 008c // +0005 │ │ +49c1b2: 1606 ffff |0089: const-wide/16 v6, #int -1 // #ffff │ │ +49c1b6: 2807 |008b: goto 0092 // +0007 │ │ +49c1b8: 3d03 0500 |008c: if-lez v3, 0091 // +0005 │ │ +49c1bc: 8136 |008e: int-to-long v6, v3 │ │ +49c1be: bb46 |008f: add-long/2addr v6, v4 │ │ +49c1c0: 2802 |0090: goto 0092 // +0002 │ │ +49c1c2: 0446 |0091: move-wide v6, v4 │ │ +49c1c4: 3103 0604 |0092: cmp-long v3, v6, v4 │ │ +49c1c8: 3b03 1100 |0094: if-gez v3, 00a5 // +0011 │ │ +49c1cc: 5c80 8069 |0096: iput-boolean v0, v8, Lorg/purple/smokestack/TcpNeighbor$3;.m_error:Z // field@6980 │ │ +49c1d0: 5481 8169 |0098: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ +49c1d4: 1a02 9b09 |009a: const-string v2, "A socket read() error occurred." // string@099b │ │ +49c1d8: 6e20 90d2 2100 |009c: invoke-virtual {v1, v2}, Lorg/purple/smokestack/TcpNeighbor;.setError:(Ljava/lang/String;)V // method@d290 │ │ +49c1de: 5481 8169 |009f: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ +49c1e2: 6e10 83d2 0100 |00a1: invoke-virtual {v1}, Lorg/purple/smokestack/TcpNeighbor;.disconnect:()V // method@d283 │ │ +49c1e8: 0e00 |00a4: return-void │ │ +49c1ea: 3103 0604 |00a5: cmp-long v3, v6, v4 │ │ +49c1ee: 3903 0300 |00a7: if-nez v3, 00aa // +0003 │ │ +49c1f2: 0e00 |00a9: return-void │ │ +49c1f4: 5483 8169 |00aa: iget-object v3, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ +49c1f8: 5433 8969 |00ac: iget-object v3, v3, Lorg/purple/smokestack/TcpNeighbor;.m_bytesRead:Ljava/util/concurrent/atomic/AtomicLong; // field@6989 │ │ +49c1fc: 6e30 2261 6307 |00ae: invoke-virtual {v3, v6, v7}, Ljava/util/concurrent/atomic/AtomicLong;.getAndAdd:(J)J // method@6122 │ │ +49c202: 5483 8169 |00b1: iget-object v3, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ +49c206: 5433 9569 |00b3: iget-object v3, v3, Lorg/purple/smokestack/TcpNeighbor;.m_lastTimeRead:Ljava/util/concurrent/atomic/AtomicLong; // field@6995 │ │ +49c20a: 7100 315d 0000 |00b5: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@5d31 │ │ +49c210: 0b04 |00b8: move-result-wide v4 │ │ +49c212: 6e30 2461 4305 |00b9: invoke-virtual {v3, v4, v5}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ +49c218: 5483 8169 |00bc: iget-object v3, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ +49c21c: 5433 a469 |00be: iget-object v3, v3, Lorg/purple/smokestack/TcpNeighbor;.m_stringBuffer:Ljava/lang/StringBuffer; // field@69a4 │ │ +49c220: 6e10 0c5d 0300 |00c0: invoke-virtual {v3}, Ljava/lang/StringBuffer;.length:()I // method@5d0c │ │ +49c226: 0a03 |00c3: move-result v3 │ │ +49c228: 1504 8000 |00c4: const/high16 v4, #int 8388608 // #80 │ │ +49c22c: 3543 0f00 |00c6: if-ge v3, v4, 00d5 // +000f │ │ +49c230: 5483 8169 |00c8: iget-object v3, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ +49c234: 5433 a469 |00ca: iget-object v3, v3, Lorg/purple/smokestack/TcpNeighbor;.m_stringBuffer:Ljava/lang/StringBuffer; // field@69a4 │ │ +49c238: 2204 fa0a |00cc: new-instance v4, Ljava/lang/String; // type@0afa │ │ +49c23c: 8465 |00ce: long-to-int v5, v6 │ │ +49c23e: 7040 cf5c 1452 |00cf: invoke-direct {v4, v1, v2, v5}, Ljava/lang/String;.:([BII)V // method@5ccf │ │ +49c244: 6e20 045d 4300 |00d2: invoke-virtual {v3, v4}, Ljava/lang/StringBuffer;.append:(Ljava/lang/String;)Ljava/lang/StringBuffer; // method@5d04 │ │ +49c24a: 5481 8169 |00d5: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ +49c24e: 5411 9869 |00d7: iget-object v1, v1, Lorg/purple/smokestack/TcpNeighbor;.m_parsingSchedulerObject:Ljava/lang/Object; // field@6998 │ │ +49c252: 1d01 |00d9: monitor-enter v1 │ │ +49c254: 5482 8169 |00da: iget-object v2, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ +49c258: 5422 9869 |00dc: iget-object v2, v2, Lorg/purple/smokestack/TcpNeighbor;.m_parsingSchedulerObject:Ljava/lang/Object; // field@6998 │ │ +49c25c: 6e10 b35c 0200 |00de: invoke-virtual {v2}, Ljava/lang/Object;.notify:()V // method@5cb3 │ │ +49c262: 1e01 |00e1: monitor-exit v1 │ │ +49c264: 2813 |00e2: goto 00f5 // +0013 │ │ +49c266: 0d02 |00e3: move-exception v2 │ │ +49c268: 1e01 |00e4: monitor-exit v1 │ │ +49c26a: 2702 |00e5: throw v2 │ │ +49c26c: 0e00 |00e6: return-void │ │ +49c26e: 5c80 8069 |00e7: iput-boolean v0, v8, Lorg/purple/smokestack/TcpNeighbor$3;.m_error:Z // field@6980 │ │ +49c272: 5480 8169 |00e9: iget-object v0, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ +49c276: 1a01 9a09 |00eb: const-string v1, "A socket error occurred while reading data." // string@099a │ │ +49c27a: 6e20 90d2 1000 |00ed: invoke-virtual {v0, v1}, Lorg/purple/smokestack/TcpNeighbor;.setError:(Ljava/lang/String;)V // method@d290 │ │ +49c280: 5480 8169 |00f0: iget-object v0, v8, Lorg/purple/smokestack/TcpNeighbor$3;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6981 │ │ +49c284: 6e10 83d2 0000 |00f2: invoke-virtual {v0}, Lorg/purple/smokestack/TcpNeighbor;.disconnect:()V // method@d283 │ │ +49c28a: 0e00 |00f5: return-void │ │ catches : 8 │ │ 0x0001 - 0x0018 │ │ Ljava/net/SocketException; -> 0x00e7 │ │ Ljava/lang/Exception; -> 0x00f5 │ │ 0x0018 - 0x0021 │ │ Ljava/lang/Exception; -> 0x0024 │ │ -> 0x0022 │ │ @@ -791862,20 +791861,20 @@ │ │ type : '(Lorg/purple/smokestack/TcpNeighbor;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 9 16-bit code units │ │ -49c2f0: |[49c2f0] org.purple.smokestack.TcpNeighbor$4.:(Lorg/purple/smokestack/TcpNeighbor;)V │ │ -49c300: 5b01 8369 |0000: iput-object v1, v0, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ -49c304: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ -49c30a: 1201 |0005: const/4 v1, #int 0 // #0 │ │ -49c30c: 5c01 8269 |0006: iput-boolean v1, v0, Lorg/purple/smokestack/TcpNeighbor$4;.m_error:Z // field@6982 │ │ -49c310: 0e00 |0008: return-void │ │ +49c2ec: |[49c2ec] org.purple.smokestack.TcpNeighbor$4.:(Lorg/purple/smokestack/TcpNeighbor;)V │ │ +49c2fc: 5b01 8369 |0000: iput-object v1, v0, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ +49c300: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ +49c306: 1201 |0005: const/4 v1, #int 0 // #0 │ │ +49c308: 5c01 8269 |0006: iput-boolean v1, v0, Lorg/purple/smokestack/TcpNeighbor$4;.m_error:Z // field@6982 │ │ +49c30c: 0e00 |0008: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=466 │ │ 0x0006 line=467 │ │ locals : │ │ 0x0000 - 0x0009 reg=0 this Lorg/purple/smokestack/TcpNeighbor$4; │ │ 0x0000 - 0x0009 reg=1 (null) Lorg/purple/smokestack/TcpNeighbor; │ │ @@ -791886,148 +791885,148 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 9 │ │ ins : 1 │ │ outs : 4 │ │ insns size : 246 16-bit code units │ │ -49c314: |[49c314] org.purple.smokestack.TcpNeighbor$4.run:()V │ │ -49c324: 1210 |0000: const/4 v0, #int 1 // #1 │ │ -49c326: 5481 8369 |0001: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ -49c32a: 6e10 82d2 0100 |0003: invoke-virtual {v1}, Lorg/purple/smokestack/TcpNeighbor;.connected:()Z // method@d282 │ │ -49c330: 0a01 |0006: move-result v1 │ │ -49c332: 3901 2100 |0007: if-nez v1, 0028 // +0021 │ │ -49c336: 5481 8369 |0009: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ -49c33a: 5411 8d69 |000b: iget-object v1, v1, Lorg/purple/smokestack/TcpNeighbor;.m_disconnected:Ljava/util/concurrent/atomic/AtomicBoolean; // field@698d │ │ -49c33e: 6e10 1861 0100 |000d: invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ -49c344: 0a01 |0010: move-result v1 │ │ -49c346: 3901 1700 |0011: if-nez v1, 0028 // +0017 │ │ -49c34a: 5481 8369 |0013: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ -49c34e: 5411 9669 |0015: iget-object v1, v1, Lorg/purple/smokestack/TcpNeighbor;.m_mutex:Ljava/lang/Object; // field@6996 │ │ -49c352: 1d01 |0017: monitor-enter v1 │ │ -49c354: 5482 8369 |0018: iget-object v2, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ -49c358: 5422 9669 |001a: iget-object v2, v2, Lorg/purple/smokestack/TcpNeighbor;.m_mutex:Ljava/lang/Object; // field@6996 │ │ -49c35c: 1603 1027 |001c: const-wide/16 v3, #int 10000 // #2710 │ │ -49c360: 6e30 b75c 3204 |001e: invoke-virtual {v2, v3, v4}, Ljava/lang/Object;.wait:(J)V // method@5cb7 │ │ -49c366: 2803 |0021: goto 0024 // +0003 │ │ -49c368: 0d02 |0022: move-exception v2 │ │ -49c36a: 2803 |0023: goto 0026 // +0003 │ │ -49c36c: 1e01 |0024: monitor-exit v1 │ │ -49c36e: 2803 |0025: goto 0028 // +0003 │ │ -49c370: 1e01 |0026: monitor-exit v1 │ │ -49c372: 2702 |0027: throw v2 │ │ -49c374: 5481 8369 |0028: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ -49c378: 6e10 82d2 0100 |002a: invoke-virtual {v1}, Lorg/purple/smokestack/TcpNeighbor;.connected:()Z // method@d282 │ │ -49c37e: 0a01 |002d: move-result v1 │ │ -49c380: 3901 0300 |002e: if-nez v1, 0031 // +0003 │ │ -49c384: 0e00 |0030: return-void │ │ -49c386: 5581 8269 |0031: iget-boolean v1, v8, Lorg/purple/smokestack/TcpNeighbor$4;.m_error:Z // field@6982 │ │ -49c38a: 1202 |0033: const/4 v2, #int 0 // #0 │ │ -49c38c: 3801 0e00 |0034: if-eqz v1, 0042 // +000e │ │ -49c390: 5481 8369 |0036: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ -49c394: 6e10 82d2 0100 |0038: invoke-virtual {v1}, Lorg/purple/smokestack/TcpNeighbor;.connected:()Z // method@d282 │ │ -49c39a: 0a01 |003b: move-result v1 │ │ -49c39c: 3801 0500 |003c: if-eqz v1, 0041 // +0005 │ │ -49c3a0: 5c82 8269 |003e: iput-boolean v2, v8, Lorg/purple/smokestack/TcpNeighbor$4;.m_error:Z // field@6982 │ │ -49c3a4: 282f |0040: goto 006f // +002f │ │ -49c3a6: 0e00 |0041: return-void │ │ -49c3a8: 5481 8369 |0042: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ -49c3ac: 7110 7ed2 0100 |0044: invoke-static {v1}, Lorg/purple/smokestack/TcpNeighbor;.access$200:(Lorg/purple/smokestack/TcpNeighbor;)Ljavax/net/ssl/SSLSocket; // method@d27e │ │ -49c3b2: 0c01 |0047: move-result-object v1 │ │ -49c3b4: 3801 9e00 |0048: if-eqz v1, 00e6 // +009e │ │ -49c3b8: 5481 8369 |004a: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ -49c3bc: 7110 7ed2 0100 |004c: invoke-static {v1}, Lorg/purple/smokestack/TcpNeighbor;.access$200:(Lorg/purple/smokestack/TcpNeighbor;)Ljavax/net/ssl/SSLSocket; // method@d27e │ │ -49c3c2: 0c01 |004f: move-result-object v1 │ │ -49c3c4: 6e10 f961 0100 |0050: invoke-virtual {v1}, Ljavax/net/ssl/SSLSocket;.getInputStream:()Ljava/io/InputStream; // method@61f9 │ │ -49c3ca: 0c01 |0053: move-result-object v1 │ │ -49c3cc: 3901 0400 |0054: if-nez v1, 0058 // +0004 │ │ -49c3d0: 2900 9000 |0056: goto/16 00e6 // +0090 │ │ -49c3d4: 5481 8369 |0058: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ -49c3d8: 7110 7ed2 0100 |005a: invoke-static {v1}, Lorg/purple/smokestack/TcpNeighbor;.access$200:(Lorg/purple/smokestack/TcpNeighbor;)Ljavax/net/ssl/SSLSocket; // method@d27e │ │ -49c3de: 0c01 |005d: move-result-object v1 │ │ -49c3e0: 6e10 ff61 0100 |005e: invoke-virtual {v1}, Ljavax/net/ssl/SSLSocket;.getSoTimeout:()I // method@61ff │ │ -49c3e6: 0a01 |0061: move-result v1 │ │ -49c3e8: 1303 1027 |0062: const/16 v3, #int 10000 // #2710 │ │ -49c3ec: 3331 0b00 |0064: if-ne v1, v3, 006f // +000b │ │ -49c3f0: 5481 8369 |0066: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ -49c3f4: 7110 7ed2 0100 |0068: invoke-static {v1}, Lorg/purple/smokestack/TcpNeighbor;.access$200:(Lorg/purple/smokestack/TcpNeighbor;)Ljavax/net/ssl/SSLSocket; // method@d27e │ │ -49c3fa: 0c01 |006b: move-result-object v1 │ │ -49c3fc: 6e20 0862 2100 |006c: invoke-virtual {v1, v2}, Ljavax/net/ssl/SSLSocket;.setSoTimeout:(I)V // method@6208 │ │ -49c402: 1501 1000 |006f: const/high16 v1, #int 1048576 // #10 │ │ -49c406: 2311 0a1f |0071: new-array v1, v1, [B // type@1f0a │ │ -49c40a: 5483 8369 |0073: iget-object v3, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ -49c40e: 7110 7ed2 0300 |0075: invoke-static {v3}, Lorg/purple/smokestack/TcpNeighbor;.access$200:(Lorg/purple/smokestack/TcpNeighbor;)Ljavax/net/ssl/SSLSocket; // method@d27e │ │ -49c414: 0c03 |0078: move-result-object v3 │ │ -49c416: 6e10 f961 0300 |0079: invoke-virtual {v3}, Ljavax/net/ssl/SSLSocket;.getInputStream:()Ljava/io/InputStream; // method@61f9 │ │ -49c41c: 0c03 |007c: move-result-object v3 │ │ -49c41e: 6e20 cc5b 1300 |007d: invoke-virtual {v3, v1}, Ljava/io/InputStream;.read:([B)I // method@5bcc │ │ -49c424: 0a03 |0080: move-result v3 │ │ -49c426: 2804 |0081: goto 0085 // +0004 │ │ -49c428: 12f3 |0082: const/4 v3, #int -1 // #ff │ │ -49c42a: 5c80 8269 |0083: iput-boolean v0, v8, Lorg/purple/smokestack/TcpNeighbor$4;.m_error:Z // field@6982 │ │ -49c42e: 1604 0000 |0085: const-wide/16 v4, #int 0 // #0 │ │ -49c432: 3b03 0500 |0087: if-gez v3, 008c // +0005 │ │ -49c436: 1606 ffff |0089: const-wide/16 v6, #int -1 // #ffff │ │ -49c43a: 2807 |008b: goto 0092 // +0007 │ │ -49c43c: 3d03 0500 |008c: if-lez v3, 0091 // +0005 │ │ -49c440: 8136 |008e: int-to-long v6, v3 │ │ -49c442: bb46 |008f: add-long/2addr v6, v4 │ │ -49c444: 2802 |0090: goto 0092 // +0002 │ │ -49c446: 0446 |0091: move-wide v6, v4 │ │ -49c448: 3103 0604 |0092: cmp-long v3, v6, v4 │ │ -49c44c: 3b03 1100 |0094: if-gez v3, 00a5 // +0011 │ │ -49c450: 5c80 8269 |0096: iput-boolean v0, v8, Lorg/purple/smokestack/TcpNeighbor$4;.m_error:Z // field@6982 │ │ -49c454: 5481 8369 |0098: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ -49c458: 1a02 9b09 |009a: const-string v2, "A socket read() error occurred." // string@099b │ │ -49c45c: 6e20 90d2 2100 |009c: invoke-virtual {v1, v2}, Lorg/purple/smokestack/TcpNeighbor;.setError:(Ljava/lang/String;)V // method@d290 │ │ -49c462: 5481 8369 |009f: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ -49c466: 6e10 83d2 0100 |00a1: invoke-virtual {v1}, Lorg/purple/smokestack/TcpNeighbor;.disconnect:()V // method@d283 │ │ -49c46c: 0e00 |00a4: return-void │ │ -49c46e: 3103 0604 |00a5: cmp-long v3, v6, v4 │ │ -49c472: 3903 0300 |00a7: if-nez v3, 00aa // +0003 │ │ -49c476: 0e00 |00a9: return-void │ │ -49c478: 5483 8369 |00aa: iget-object v3, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ -49c47c: 5433 8969 |00ac: iget-object v3, v3, Lorg/purple/smokestack/TcpNeighbor;.m_bytesRead:Ljava/util/concurrent/atomic/AtomicLong; // field@6989 │ │ -49c480: 6e30 2261 6307 |00ae: invoke-virtual {v3, v6, v7}, Ljava/util/concurrent/atomic/AtomicLong;.getAndAdd:(J)J // method@6122 │ │ -49c486: 5483 8369 |00b1: iget-object v3, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ -49c48a: 5433 9569 |00b3: iget-object v3, v3, Lorg/purple/smokestack/TcpNeighbor;.m_lastTimeRead:Ljava/util/concurrent/atomic/AtomicLong; // field@6995 │ │ -49c48e: 7100 315d 0000 |00b5: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@5d31 │ │ -49c494: 0b04 |00b8: move-result-wide v4 │ │ -49c496: 6e30 2461 4305 |00b9: invoke-virtual {v3, v4, v5}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ -49c49c: 5483 8369 |00bc: iget-object v3, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ -49c4a0: 5433 a469 |00be: iget-object v3, v3, Lorg/purple/smokestack/TcpNeighbor;.m_stringBuffer:Ljava/lang/StringBuffer; // field@69a4 │ │ -49c4a4: 6e10 0c5d 0300 |00c0: invoke-virtual {v3}, Ljava/lang/StringBuffer;.length:()I // method@5d0c │ │ -49c4aa: 0a03 |00c3: move-result v3 │ │ -49c4ac: 1504 8000 |00c4: const/high16 v4, #int 8388608 // #80 │ │ -49c4b0: 3543 0f00 |00c6: if-ge v3, v4, 00d5 // +000f │ │ -49c4b4: 5483 8369 |00c8: iget-object v3, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ -49c4b8: 5433 a469 |00ca: iget-object v3, v3, Lorg/purple/smokestack/TcpNeighbor;.m_stringBuffer:Ljava/lang/StringBuffer; // field@69a4 │ │ -49c4bc: 2204 fa0a |00cc: new-instance v4, Ljava/lang/String; // type@0afa │ │ -49c4c0: 8465 |00ce: long-to-int v5, v6 │ │ -49c4c2: 7040 cf5c 1452 |00cf: invoke-direct {v4, v1, v2, v5}, Ljava/lang/String;.:([BII)V // method@5ccf │ │ -49c4c8: 6e20 045d 4300 |00d2: invoke-virtual {v3, v4}, Ljava/lang/StringBuffer;.append:(Ljava/lang/String;)Ljava/lang/StringBuffer; // method@5d04 │ │ -49c4ce: 5481 8369 |00d5: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ -49c4d2: 5411 9869 |00d7: iget-object v1, v1, Lorg/purple/smokestack/TcpNeighbor;.m_parsingSchedulerObject:Ljava/lang/Object; // field@6998 │ │ -49c4d6: 1d01 |00d9: monitor-enter v1 │ │ -49c4d8: 5482 8369 |00da: iget-object v2, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ -49c4dc: 5422 9869 |00dc: iget-object v2, v2, Lorg/purple/smokestack/TcpNeighbor;.m_parsingSchedulerObject:Ljava/lang/Object; // field@6998 │ │ -49c4e0: 6e10 b35c 0200 |00de: invoke-virtual {v2}, Ljava/lang/Object;.notify:()V // method@5cb3 │ │ -49c4e6: 1e01 |00e1: monitor-exit v1 │ │ -49c4e8: 2813 |00e2: goto 00f5 // +0013 │ │ -49c4ea: 0d02 |00e3: move-exception v2 │ │ -49c4ec: 1e01 |00e4: monitor-exit v1 │ │ -49c4ee: 2702 |00e5: throw v2 │ │ -49c4f0: 0e00 |00e6: return-void │ │ -49c4f2: 5c80 8269 |00e7: iput-boolean v0, v8, Lorg/purple/smokestack/TcpNeighbor$4;.m_error:Z // field@6982 │ │ -49c4f6: 5480 8369 |00e9: iget-object v0, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ -49c4fa: 1a01 9a09 |00eb: const-string v1, "A socket error occurred while reading data." // string@099a │ │ -49c4fe: 6e20 90d2 1000 |00ed: invoke-virtual {v0, v1}, Lorg/purple/smokestack/TcpNeighbor;.setError:(Ljava/lang/String;)V // method@d290 │ │ -49c504: 5480 8369 |00f0: iget-object v0, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ -49c508: 6e10 83d2 0000 |00f2: invoke-virtual {v0}, Lorg/purple/smokestack/TcpNeighbor;.disconnect:()V // method@d283 │ │ -49c50e: 0e00 |00f5: return-void │ │ +49c310: |[49c310] org.purple.smokestack.TcpNeighbor$4.run:()V │ │ +49c320: 1210 |0000: const/4 v0, #int 1 // #1 │ │ +49c322: 5481 8369 |0001: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ +49c326: 6e10 82d2 0100 |0003: invoke-virtual {v1}, Lorg/purple/smokestack/TcpNeighbor;.connected:()Z // method@d282 │ │ +49c32c: 0a01 |0006: move-result v1 │ │ +49c32e: 3901 2100 |0007: if-nez v1, 0028 // +0021 │ │ +49c332: 5481 8369 |0009: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ +49c336: 5411 8d69 |000b: iget-object v1, v1, Lorg/purple/smokestack/TcpNeighbor;.m_disconnected:Ljava/util/concurrent/atomic/AtomicBoolean; // field@698d │ │ +49c33a: 6e10 1861 0100 |000d: invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ +49c340: 0a01 |0010: move-result v1 │ │ +49c342: 3901 1700 |0011: if-nez v1, 0028 // +0017 │ │ +49c346: 5481 8369 |0013: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ +49c34a: 5411 9669 |0015: iget-object v1, v1, Lorg/purple/smokestack/TcpNeighbor;.m_mutex:Ljava/lang/Object; // field@6996 │ │ +49c34e: 1d01 |0017: monitor-enter v1 │ │ +49c350: 5482 8369 |0018: iget-object v2, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ +49c354: 5422 9669 |001a: iget-object v2, v2, Lorg/purple/smokestack/TcpNeighbor;.m_mutex:Ljava/lang/Object; // field@6996 │ │ +49c358: 1603 1027 |001c: const-wide/16 v3, #int 10000 // #2710 │ │ +49c35c: 6e30 b75c 3204 |001e: invoke-virtual {v2, v3, v4}, Ljava/lang/Object;.wait:(J)V // method@5cb7 │ │ +49c362: 2803 |0021: goto 0024 // +0003 │ │ +49c364: 0d02 |0022: move-exception v2 │ │ +49c366: 2803 |0023: goto 0026 // +0003 │ │ +49c368: 1e01 |0024: monitor-exit v1 │ │ +49c36a: 2803 |0025: goto 0028 // +0003 │ │ +49c36c: 1e01 |0026: monitor-exit v1 │ │ +49c36e: 2702 |0027: throw v2 │ │ +49c370: 5481 8369 |0028: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ +49c374: 6e10 82d2 0100 |002a: invoke-virtual {v1}, Lorg/purple/smokestack/TcpNeighbor;.connected:()Z // method@d282 │ │ +49c37a: 0a01 |002d: move-result v1 │ │ +49c37c: 3901 0300 |002e: if-nez v1, 0031 // +0003 │ │ +49c380: 0e00 |0030: return-void │ │ +49c382: 5581 8269 |0031: iget-boolean v1, v8, Lorg/purple/smokestack/TcpNeighbor$4;.m_error:Z // field@6982 │ │ +49c386: 1202 |0033: const/4 v2, #int 0 // #0 │ │ +49c388: 3801 0e00 |0034: if-eqz v1, 0042 // +000e │ │ +49c38c: 5481 8369 |0036: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ +49c390: 6e10 82d2 0100 |0038: invoke-virtual {v1}, Lorg/purple/smokestack/TcpNeighbor;.connected:()Z // method@d282 │ │ +49c396: 0a01 |003b: move-result v1 │ │ +49c398: 3801 0500 |003c: if-eqz v1, 0041 // +0005 │ │ +49c39c: 5c82 8269 |003e: iput-boolean v2, v8, Lorg/purple/smokestack/TcpNeighbor$4;.m_error:Z // field@6982 │ │ +49c3a0: 282f |0040: goto 006f // +002f │ │ +49c3a2: 0e00 |0041: return-void │ │ +49c3a4: 5481 8369 |0042: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ +49c3a8: 7110 7ed2 0100 |0044: invoke-static {v1}, Lorg/purple/smokestack/TcpNeighbor;.access$200:(Lorg/purple/smokestack/TcpNeighbor;)Ljavax/net/ssl/SSLSocket; // method@d27e │ │ +49c3ae: 0c01 |0047: move-result-object v1 │ │ +49c3b0: 3801 9e00 |0048: if-eqz v1, 00e6 // +009e │ │ +49c3b4: 5481 8369 |004a: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ +49c3b8: 7110 7ed2 0100 |004c: invoke-static {v1}, Lorg/purple/smokestack/TcpNeighbor;.access$200:(Lorg/purple/smokestack/TcpNeighbor;)Ljavax/net/ssl/SSLSocket; // method@d27e │ │ +49c3be: 0c01 |004f: move-result-object v1 │ │ +49c3c0: 6e10 f961 0100 |0050: invoke-virtual {v1}, Ljavax/net/ssl/SSLSocket;.getInputStream:()Ljava/io/InputStream; // method@61f9 │ │ +49c3c6: 0c01 |0053: move-result-object v1 │ │ +49c3c8: 3901 0400 |0054: if-nez v1, 0058 // +0004 │ │ +49c3cc: 2900 9000 |0056: goto/16 00e6 // +0090 │ │ +49c3d0: 5481 8369 |0058: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ +49c3d4: 7110 7ed2 0100 |005a: invoke-static {v1}, Lorg/purple/smokestack/TcpNeighbor;.access$200:(Lorg/purple/smokestack/TcpNeighbor;)Ljavax/net/ssl/SSLSocket; // method@d27e │ │ +49c3da: 0c01 |005d: move-result-object v1 │ │ +49c3dc: 6e10 ff61 0100 |005e: invoke-virtual {v1}, Ljavax/net/ssl/SSLSocket;.getSoTimeout:()I // method@61ff │ │ +49c3e2: 0a01 |0061: move-result v1 │ │ +49c3e4: 1303 1027 |0062: const/16 v3, #int 10000 // #2710 │ │ +49c3e8: 3331 0b00 |0064: if-ne v1, v3, 006f // +000b │ │ +49c3ec: 5481 8369 |0066: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ +49c3f0: 7110 7ed2 0100 |0068: invoke-static {v1}, Lorg/purple/smokestack/TcpNeighbor;.access$200:(Lorg/purple/smokestack/TcpNeighbor;)Ljavax/net/ssl/SSLSocket; // method@d27e │ │ +49c3f6: 0c01 |006b: move-result-object v1 │ │ +49c3f8: 6e20 0862 2100 |006c: invoke-virtual {v1, v2}, Ljavax/net/ssl/SSLSocket;.setSoTimeout:(I)V // method@6208 │ │ +49c3fe: 1501 1000 |006f: const/high16 v1, #int 1048576 // #10 │ │ +49c402: 2311 0a1f |0071: new-array v1, v1, [B // type@1f0a │ │ +49c406: 5483 8369 |0073: iget-object v3, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ +49c40a: 7110 7ed2 0300 |0075: invoke-static {v3}, Lorg/purple/smokestack/TcpNeighbor;.access$200:(Lorg/purple/smokestack/TcpNeighbor;)Ljavax/net/ssl/SSLSocket; // method@d27e │ │ +49c410: 0c03 |0078: move-result-object v3 │ │ +49c412: 6e10 f961 0300 |0079: invoke-virtual {v3}, Ljavax/net/ssl/SSLSocket;.getInputStream:()Ljava/io/InputStream; // method@61f9 │ │ +49c418: 0c03 |007c: move-result-object v3 │ │ +49c41a: 6e20 cc5b 1300 |007d: invoke-virtual {v3, v1}, Ljava/io/InputStream;.read:([B)I // method@5bcc │ │ +49c420: 0a03 |0080: move-result v3 │ │ +49c422: 2804 |0081: goto 0085 // +0004 │ │ +49c424: 12f3 |0082: const/4 v3, #int -1 // #ff │ │ +49c426: 5c80 8269 |0083: iput-boolean v0, v8, Lorg/purple/smokestack/TcpNeighbor$4;.m_error:Z // field@6982 │ │ +49c42a: 1604 0000 |0085: const-wide/16 v4, #int 0 // #0 │ │ +49c42e: 3b03 0500 |0087: if-gez v3, 008c // +0005 │ │ +49c432: 1606 ffff |0089: const-wide/16 v6, #int -1 // #ffff │ │ +49c436: 2807 |008b: goto 0092 // +0007 │ │ +49c438: 3d03 0500 |008c: if-lez v3, 0091 // +0005 │ │ +49c43c: 8136 |008e: int-to-long v6, v3 │ │ +49c43e: bb46 |008f: add-long/2addr v6, v4 │ │ +49c440: 2802 |0090: goto 0092 // +0002 │ │ +49c442: 0446 |0091: move-wide v6, v4 │ │ +49c444: 3103 0604 |0092: cmp-long v3, v6, v4 │ │ +49c448: 3b03 1100 |0094: if-gez v3, 00a5 // +0011 │ │ +49c44c: 5c80 8269 |0096: iput-boolean v0, v8, Lorg/purple/smokestack/TcpNeighbor$4;.m_error:Z // field@6982 │ │ +49c450: 5481 8369 |0098: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ +49c454: 1a02 9b09 |009a: const-string v2, "A socket read() error occurred." // string@099b │ │ +49c458: 6e20 90d2 2100 |009c: invoke-virtual {v1, v2}, Lorg/purple/smokestack/TcpNeighbor;.setError:(Ljava/lang/String;)V // method@d290 │ │ +49c45e: 5481 8369 |009f: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ +49c462: 6e10 83d2 0100 |00a1: invoke-virtual {v1}, Lorg/purple/smokestack/TcpNeighbor;.disconnect:()V // method@d283 │ │ +49c468: 0e00 |00a4: return-void │ │ +49c46a: 3103 0604 |00a5: cmp-long v3, v6, v4 │ │ +49c46e: 3903 0300 |00a7: if-nez v3, 00aa // +0003 │ │ +49c472: 0e00 |00a9: return-void │ │ +49c474: 5483 8369 |00aa: iget-object v3, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ +49c478: 5433 8969 |00ac: iget-object v3, v3, Lorg/purple/smokestack/TcpNeighbor;.m_bytesRead:Ljava/util/concurrent/atomic/AtomicLong; // field@6989 │ │ +49c47c: 6e30 2261 6307 |00ae: invoke-virtual {v3, v6, v7}, Ljava/util/concurrent/atomic/AtomicLong;.getAndAdd:(J)J // method@6122 │ │ +49c482: 5483 8369 |00b1: iget-object v3, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ +49c486: 5433 9569 |00b3: iget-object v3, v3, Lorg/purple/smokestack/TcpNeighbor;.m_lastTimeRead:Ljava/util/concurrent/atomic/AtomicLong; // field@6995 │ │ +49c48a: 7100 315d 0000 |00b5: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@5d31 │ │ +49c490: 0b04 |00b8: move-result-wide v4 │ │ +49c492: 6e30 2461 4305 |00b9: invoke-virtual {v3, v4, v5}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ +49c498: 5483 8369 |00bc: iget-object v3, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ +49c49c: 5433 a469 |00be: iget-object v3, v3, Lorg/purple/smokestack/TcpNeighbor;.m_stringBuffer:Ljava/lang/StringBuffer; // field@69a4 │ │ +49c4a0: 6e10 0c5d 0300 |00c0: invoke-virtual {v3}, Ljava/lang/StringBuffer;.length:()I // method@5d0c │ │ +49c4a6: 0a03 |00c3: move-result v3 │ │ +49c4a8: 1504 8000 |00c4: const/high16 v4, #int 8388608 // #80 │ │ +49c4ac: 3543 0f00 |00c6: if-ge v3, v4, 00d5 // +000f │ │ +49c4b0: 5483 8369 |00c8: iget-object v3, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ +49c4b4: 5433 a469 |00ca: iget-object v3, v3, Lorg/purple/smokestack/TcpNeighbor;.m_stringBuffer:Ljava/lang/StringBuffer; // field@69a4 │ │ +49c4b8: 2204 fa0a |00cc: new-instance v4, Ljava/lang/String; // type@0afa │ │ +49c4bc: 8465 |00ce: long-to-int v5, v6 │ │ +49c4be: 7040 cf5c 1452 |00cf: invoke-direct {v4, v1, v2, v5}, Ljava/lang/String;.:([BII)V // method@5ccf │ │ +49c4c4: 6e20 045d 4300 |00d2: invoke-virtual {v3, v4}, Ljava/lang/StringBuffer;.append:(Ljava/lang/String;)Ljava/lang/StringBuffer; // method@5d04 │ │ +49c4ca: 5481 8369 |00d5: iget-object v1, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ +49c4ce: 5411 9869 |00d7: iget-object v1, v1, Lorg/purple/smokestack/TcpNeighbor;.m_parsingSchedulerObject:Ljava/lang/Object; // field@6998 │ │ +49c4d2: 1d01 |00d9: monitor-enter v1 │ │ +49c4d4: 5482 8369 |00da: iget-object v2, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ +49c4d8: 5422 9869 |00dc: iget-object v2, v2, Lorg/purple/smokestack/TcpNeighbor;.m_parsingSchedulerObject:Ljava/lang/Object; // field@6998 │ │ +49c4dc: 6e10 b35c 0200 |00de: invoke-virtual {v2}, Ljava/lang/Object;.notify:()V // method@5cb3 │ │ +49c4e2: 1e01 |00e1: monitor-exit v1 │ │ +49c4e4: 2813 |00e2: goto 00f5 // +0013 │ │ +49c4e6: 0d02 |00e3: move-exception v2 │ │ +49c4e8: 1e01 |00e4: monitor-exit v1 │ │ +49c4ea: 2702 |00e5: throw v2 │ │ +49c4ec: 0e00 |00e6: return-void │ │ +49c4ee: 5c80 8269 |00e7: iput-boolean v0, v8, Lorg/purple/smokestack/TcpNeighbor$4;.m_error:Z // field@6982 │ │ +49c4f2: 5480 8369 |00e9: iget-object v0, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ +49c4f6: 1a01 9a09 |00eb: const-string v1, "A socket error occurred while reading data." // string@099a │ │ +49c4fa: 6e20 90d2 1000 |00ed: invoke-virtual {v0, v1}, Lorg/purple/smokestack/TcpNeighbor;.setError:(Ljava/lang/String;)V // method@d290 │ │ +49c500: 5480 8369 |00f0: iget-object v0, v8, Lorg/purple/smokestack/TcpNeighbor$4;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6983 │ │ +49c504: 6e10 83d2 0000 |00f2: invoke-virtual {v0}, Lorg/purple/smokestack/TcpNeighbor;.disconnect:()V // method@d283 │ │ +49c50a: 0e00 |00f5: return-void │ │ catches : 8 │ │ 0x0001 - 0x0018 │ │ Ljava/net/SocketException; -> 0x00e7 │ │ Ljava/lang/Exception; -> 0x00f5 │ │ 0x0018 - 0x0021 │ │ Ljava/lang/Exception; -> 0x0024 │ │ -> 0x0022 │ │ @@ -792114,18 +792113,18 @@ │ │ type : '(Lorg/purple/smokestack/TcpNeighbor;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 6 16-bit code units │ │ -49c588: |[49c588] org.purple.smokestack.TcpNeighbor$5.:(Lorg/purple/smokestack/TcpNeighbor;)V │ │ -49c598: 5b01 8469 |0000: iput-object v1, v0, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ -49c59c: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ -49c5a2: 0e00 |0005: return-void │ │ +49c584: |[49c584] org.purple.smokestack.TcpNeighbor$5.:(Lorg/purple/smokestack/TcpNeighbor;)V │ │ +49c594: 5b01 8469 |0000: iput-object v1, v0, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ +49c598: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ +49c59e: 0e00 |0005: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=562 │ │ locals : │ │ 0x0000 - 0x0006 reg=0 this Lorg/purple/smokestack/TcpNeighbor$5; │ │ 0x0000 - 0x0006 reg=1 (null) Lorg/purple/smokestack/TcpNeighbor; │ │ │ │ @@ -792135,130 +792134,130 @@ │ │ type : '([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 3 │ │ ins : 3 │ │ outs : 0 │ │ insns size : 1 16-bit code units │ │ -49c5a4: |[49c5a4] org.purple.smokestack.TcpNeighbor$5.checkClientTrusted:([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V │ │ -49c5b4: 0e00 |0000: return-void │ │ +49c5a0: |[49c5a0] org.purple.smokestack.TcpNeighbor$5.checkClientTrusted:([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V │ │ +49c5b0: 0e00 |0000: return-void │ │ catches : (none) │ │ positions : │ │ locals : │ │ │ │ #1 : (in Lorg/purple/smokestack/TcpNeighbor$5;) │ │ name : 'checkServerTrusted' │ │ type : '([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 7 │ │ ins : 3 │ │ outs : 4 │ │ insns size : 201 16-bit code units │ │ -49c5b8: |[49c5b8] org.purple.smokestack.TcpNeighbor$5.checkServerTrusted:([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V │ │ -49c5c8: 1200 |0000: const/4 v0, #int 0 // #0 │ │ -49c5ca: 3806 9a00 |0001: if-eqz v6, 009b // +009a │ │ -49c5ce: 6e10 e95c 0600 |0003: invoke-virtual {v6}, Ljava/lang/String;.length:()I // method@5ce9 │ │ -49c5d4: 0a06 |0006: move-result v6 │ │ -49c5d6: 3906 0400 |0007: if-nez v6, 000b // +0004 │ │ -49c5da: 2900 9200 |0009: goto/16 009b // +0092 │ │ -49c5de: 3805 8600 |000b: if-eqz v5, 0091 // +0086 │ │ -49c5e2: 2156 |000d: array-length v6, v5 │ │ -49c5e4: 3906 0400 |000e: if-nez v6, 0012 // +0004 │ │ -49c5e8: 2900 8100 |0010: goto/16 0091 // +0081 │ │ -49c5ec: 4606 0500 |0012: aget-object v6, v5, v0 │ │ -49c5f0: 6e10 3a5f 0600 |0014: invoke-virtual {v6}, Ljava/security/cert/X509Certificate;.checkValidity:()V // method@5f3a │ │ -49c5f6: 5446 8469 |0017: iget-object v6, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ -49c5fa: 5466 8c69 |0019: iget-object v6, v6, Lorg/purple/smokestack/TcpNeighbor;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@698c │ │ -49c5fe: 5441 8469 |001b: iget-object v1, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ -49c602: 5411 8b69 |001d: iget-object v1, v1, Lorg/purple/smokestack/TcpNeighbor;.m_cryptography:Lorg/purple/smokestack/Cryptography; // field@698b │ │ -49c606: 5442 8469 |001f: iget-object v2, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ -49c60a: 5422 9769 |0021: iget-object v2, v2, Lorg/purple/smokestack/TcpNeighbor;.m_oid:Ljava/util/concurrent/atomic/AtomicInteger; // field@6997 │ │ -49c60e: 6e10 1c61 0200 |0023: invoke-virtual {v2}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@611c │ │ -49c614: 0a02 |0026: move-result v2 │ │ -49c616: 6e30 bad0 1602 |0027: invoke-virtual {v6, v1, v2}, Lorg/purple/smokestack/Database;.neighborRemoteCertificate:(Lorg/purple/smokestack/Cryptography;I)[B // method@d0ba │ │ -49c61c: 0c06 |002a: move-result-object v6 │ │ -49c61e: 1211 |002b: const/4 v1, #int 1 // #1 │ │ -49c620: 3806 2d00 |002c: if-eqz v6, 0059 // +002d │ │ -49c624: 2162 |002e: array-length v2, v6 │ │ -49c626: 3902 0300 |002f: if-nez v2, 0032 // +0003 │ │ -49c62a: 2828 |0031: goto 0059 // +0028 │ │ -49c62c: 4605 0500 |0032: aget-object v5, v5, v0 │ │ -49c630: 6e10 3f5f 0500 |0034: invoke-virtual {v5}, Ljava/security/cert/X509Certificate;.getEncoded:()[B // method@5f3f │ │ -49c636: 0c05 |0037: move-result-object v5 │ │ -49c638: 7120 86d0 5600 |0038: invoke-static {v6, v5}, Lorg/purple/smokestack/Cryptography;.memcmp:([B[B)Z // method@d086 │ │ -49c63e: 0a05 |003b: move-result v5 │ │ -49c640: 3905 1300 |003c: if-nez v5, 004f // +0013 │ │ -49c644: 5445 8469 |003e: iget-object v5, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ -49c648: 1a06 a555 |0040: const-string v6, "The stored server's certificate does not match the certificate that was provided by the server." // string@55a5 │ │ -49c64c: 6e20 90d2 6500 |0042: invoke-virtual {v5, v6}, Lorg/purple/smokestack/TcpNeighbor;.setError:(Ljava/lang/String;)V // method@d290 │ │ -49c652: 5445 8469 |0045: iget-object v5, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ -49c656: 7110 7fd2 0500 |0047: invoke-static {v5}, Lorg/purple/smokestack/TcpNeighbor;.access$300:(Lorg/purple/smokestack/TcpNeighbor;)Ljava/util/concurrent/atomic/AtomicBoolean; // method@d27f │ │ -49c65c: 0c05 |004a: move-result-object v5 │ │ -49c65e: 6e20 1a61 0500 |004b: invoke-virtual {v5, v0}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ -49c664: 2856 |004e: goto 00a4 // +0056 │ │ -49c666: 5445 8469 |004f: iget-object v5, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ -49c66a: 7110 7fd2 0500 |0051: invoke-static {v5}, Lorg/purple/smokestack/TcpNeighbor;.access$300:(Lorg/purple/smokestack/TcpNeighbor;)Ljava/util/concurrent/atomic/AtomicBoolean; // method@d27f │ │ -49c670: 0c05 |0054: move-result-object v5 │ │ -49c672: 6e20 1a61 1500 |0055: invoke-virtual {v5, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ -49c678: 284c |0058: goto 00a4 // +004c │ │ -49c67a: 5446 8469 |0059: iget-object v6, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ -49c67e: 5466 8c69 |005b: iget-object v6, v6, Lorg/purple/smokestack/TcpNeighbor;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@698c │ │ -49c682: 5442 8469 |005d: iget-object v2, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ -49c686: 5422 8b69 |005f: iget-object v2, v2, Lorg/purple/smokestack/TcpNeighbor;.m_cryptography:Lorg/purple/smokestack/Cryptography; // field@698b │ │ -49c68a: 5443 8469 |0061: iget-object v3, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ -49c68e: 5433 9769 |0063: iget-object v3, v3, Lorg/purple/smokestack/TcpNeighbor;.m_oid:Ljava/util/concurrent/atomic/AtomicInteger; // field@6997 │ │ -49c692: 6e10 1c61 0300 |0065: invoke-virtual {v3}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@611c │ │ -49c698: 0a03 |0068: move-result v3 │ │ -49c69a: 7110 fa5c 0300 |0069: invoke-static {v3}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@5cfa │ │ -49c6a0: 0c03 |006c: move-result-object v3 │ │ -49c6a2: 4605 0500 |006d: aget-object v5, v5, v0 │ │ -49c6a6: 6e10 3f5f 0500 |006f: invoke-virtual {v5}, Ljava/security/cert/X509Certificate;.getEncoded:()[B // method@5f3f │ │ -49c6ac: 0c05 |0072: move-result-object v5 │ │ -49c6ae: 6e40 b9d0 2653 |0073: invoke-virtual {v6, v2, v3, v5}, Lorg/purple/smokestack/Database;.neighborRecordCertificate:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;[B)V // method@d0b9 │ │ -49c6b4: 5445 8469 |0076: iget-object v5, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ -49c6b8: 7110 7fd2 0500 |0078: invoke-static {v5}, Lorg/purple/smokestack/TcpNeighbor;.access$300:(Lorg/purple/smokestack/TcpNeighbor;)Ljava/util/concurrent/atomic/AtomicBoolean; // method@d27f │ │ -49c6be: 0c05 |007b: move-result-object v5 │ │ -49c6c0: 6e20 1a61 1500 |007c: invoke-virtual {v5, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ -49c6c6: 2825 |007f: goto 00a4 // +0025 │ │ -49c6c8: 5445 8469 |0080: iget-object v5, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ -49c6cc: 1a06 a355 |0082: const-string v6, "The server's certificate has expired." // string@55a3 │ │ -49c6d0: 6e20 90d2 6500 |0084: invoke-virtual {v5, v6}, Lorg/purple/smokestack/TcpNeighbor;.setError:(Ljava/lang/String;)V // method@d290 │ │ -49c6d6: 5445 8469 |0087: iget-object v5, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ -49c6da: 7110 7fd2 0500 |0089: invoke-static {v5}, Lorg/purple/smokestack/TcpNeighbor;.access$300:(Lorg/purple/smokestack/TcpNeighbor;)Ljava/util/concurrent/atomic/AtomicBoolean; // method@d27f │ │ -49c6e0: 0c05 |008c: move-result-object v5 │ │ -49c6e2: 6e20 1a61 0500 |008d: invoke-virtual {v5, v0}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ -49c6e8: 2814 |0090: goto 00a4 // +0014 │ │ -49c6ea: 5445 8469 |0091: iget-object v5, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ -49c6ee: 7110 7fd2 0500 |0093: invoke-static {v5}, Lorg/purple/smokestack/TcpNeighbor;.access$300:(Lorg/purple/smokestack/TcpNeighbor;)Ljava/util/concurrent/atomic/AtomicBoolean; // method@d27f │ │ -49c6f4: 0c05 |0096: move-result-object v5 │ │ -49c6f6: 6e20 1a61 0500 |0097: invoke-virtual {v5, v0}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ -49c6fc: 280a |009a: goto 00a4 // +000a │ │ -49c6fe: 5445 8469 |009b: iget-object v5, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ -49c702: 7110 7fd2 0500 |009d: invoke-static {v5}, Lorg/purple/smokestack/TcpNeighbor;.access$300:(Lorg/purple/smokestack/TcpNeighbor;)Ljava/util/concurrent/atomic/AtomicBoolean; // method@d27f │ │ -49c708: 0c05 |00a0: move-result-object v5 │ │ -49c70a: 6e20 1a61 0500 |00a1: invoke-virtual {v5, v0}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ -49c710: 5445 8469 |00a4: iget-object v5, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ -49c714: 7110 7fd2 0500 |00a6: invoke-static {v5}, Lorg/purple/smokestack/TcpNeighbor;.access$300:(Lorg/purple/smokestack/TcpNeighbor;)Ljava/util/concurrent/atomic/AtomicBoolean; // method@d27f │ │ -49c71a: 0c05 |00a9: move-result-object v5 │ │ -49c71c: 6e10 1861 0500 |00aa: invoke-virtual {v5}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ -49c722: 0a05 |00ad: move-result v5 │ │ -49c724: 3905 1a00 |00ae: if-nez v5, 00c8 // +001a │ │ -49c728: 5445 8469 |00b0: iget-object v5, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ -49c72c: 6e10 83d2 0500 |00b2: invoke-virtual {v5}, Lorg/purple/smokestack/TcpNeighbor;.disconnect:()V // method@d283 │ │ -49c732: 5445 8469 |00b5: iget-object v5, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ -49c736: 5455 8e69 |00b7: iget-object v5, v5, Lorg/purple/smokestack/TcpNeighbor;.m_error:Ljava/lang/StringBuffer; // field@698e │ │ -49c73a: 6e10 0c5d 0500 |00b9: invoke-virtual {v5}, Ljava/lang/StringBuffer;.length:()I // method@5d0c │ │ -49c740: 0a05 |00bc: move-result v5 │ │ -49c742: 3905 0b00 |00bd: if-nez v5, 00c8 // +000b │ │ -49c746: 5445 8469 |00bf: iget-object v5, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ -49c74a: 5455 8e69 |00c1: iget-object v5, v5, Lorg/purple/smokestack/TcpNeighbor;.m_error:Ljava/lang/StringBuffer; // field@698e │ │ -49c74e: 1a06 9409 |00c3: const-string v6, "A generic certificate error occurred." // string@0994 │ │ -49c752: 6e20 045d 6500 |00c5: invoke-virtual {v5, v6}, Ljava/lang/StringBuffer;.append:(Ljava/lang/String;)Ljava/lang/StringBuffer; // method@5d04 │ │ -49c758: 0e00 |00c8: return-void │ │ +49c5b4: |[49c5b4] org.purple.smokestack.TcpNeighbor$5.checkServerTrusted:([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V │ │ +49c5c4: 1200 |0000: const/4 v0, #int 0 // #0 │ │ +49c5c6: 3806 9a00 |0001: if-eqz v6, 009b // +009a │ │ +49c5ca: 6e10 e95c 0600 |0003: invoke-virtual {v6}, Ljava/lang/String;.length:()I // method@5ce9 │ │ +49c5d0: 0a06 |0006: move-result v6 │ │ +49c5d2: 3906 0400 |0007: if-nez v6, 000b // +0004 │ │ +49c5d6: 2900 9200 |0009: goto/16 009b // +0092 │ │ +49c5da: 3805 8600 |000b: if-eqz v5, 0091 // +0086 │ │ +49c5de: 2156 |000d: array-length v6, v5 │ │ +49c5e0: 3906 0400 |000e: if-nez v6, 0012 // +0004 │ │ +49c5e4: 2900 8100 |0010: goto/16 0091 // +0081 │ │ +49c5e8: 4606 0500 |0012: aget-object v6, v5, v0 │ │ +49c5ec: 6e10 3a5f 0600 |0014: invoke-virtual {v6}, Ljava/security/cert/X509Certificate;.checkValidity:()V // method@5f3a │ │ +49c5f2: 5446 8469 |0017: iget-object v6, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ +49c5f6: 5466 8c69 |0019: iget-object v6, v6, Lorg/purple/smokestack/TcpNeighbor;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@698c │ │ +49c5fa: 5441 8469 |001b: iget-object v1, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ +49c5fe: 5411 8b69 |001d: iget-object v1, v1, Lorg/purple/smokestack/TcpNeighbor;.m_cryptography:Lorg/purple/smokestack/Cryptography; // field@698b │ │ +49c602: 5442 8469 |001f: iget-object v2, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ +49c606: 5422 9769 |0021: iget-object v2, v2, Lorg/purple/smokestack/TcpNeighbor;.m_oid:Ljava/util/concurrent/atomic/AtomicInteger; // field@6997 │ │ +49c60a: 6e10 1c61 0200 |0023: invoke-virtual {v2}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@611c │ │ +49c610: 0a02 |0026: move-result v2 │ │ +49c612: 6e30 bad0 1602 |0027: invoke-virtual {v6, v1, v2}, Lorg/purple/smokestack/Database;.neighborRemoteCertificate:(Lorg/purple/smokestack/Cryptography;I)[B // method@d0ba │ │ +49c618: 0c06 |002a: move-result-object v6 │ │ +49c61a: 1211 |002b: const/4 v1, #int 1 // #1 │ │ +49c61c: 3806 2d00 |002c: if-eqz v6, 0059 // +002d │ │ +49c620: 2162 |002e: array-length v2, v6 │ │ +49c622: 3902 0300 |002f: if-nez v2, 0032 // +0003 │ │ +49c626: 2828 |0031: goto 0059 // +0028 │ │ +49c628: 4605 0500 |0032: aget-object v5, v5, v0 │ │ +49c62c: 6e10 3f5f 0500 |0034: invoke-virtual {v5}, Ljava/security/cert/X509Certificate;.getEncoded:()[B // method@5f3f │ │ +49c632: 0c05 |0037: move-result-object v5 │ │ +49c634: 7120 86d0 5600 |0038: invoke-static {v6, v5}, Lorg/purple/smokestack/Cryptography;.memcmp:([B[B)Z // method@d086 │ │ +49c63a: 0a05 |003b: move-result v5 │ │ +49c63c: 3905 1300 |003c: if-nez v5, 004f // +0013 │ │ +49c640: 5445 8469 |003e: iget-object v5, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ +49c644: 1a06 a555 |0040: const-string v6, "The stored server's certificate does not match the certificate that was provided by the server." // string@55a5 │ │ +49c648: 6e20 90d2 6500 |0042: invoke-virtual {v5, v6}, Lorg/purple/smokestack/TcpNeighbor;.setError:(Ljava/lang/String;)V // method@d290 │ │ +49c64e: 5445 8469 |0045: iget-object v5, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ +49c652: 7110 7fd2 0500 |0047: invoke-static {v5}, Lorg/purple/smokestack/TcpNeighbor;.access$300:(Lorg/purple/smokestack/TcpNeighbor;)Ljava/util/concurrent/atomic/AtomicBoolean; // method@d27f │ │ +49c658: 0c05 |004a: move-result-object v5 │ │ +49c65a: 6e20 1a61 0500 |004b: invoke-virtual {v5, v0}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ +49c660: 2856 |004e: goto 00a4 // +0056 │ │ +49c662: 5445 8469 |004f: iget-object v5, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ +49c666: 7110 7fd2 0500 |0051: invoke-static {v5}, Lorg/purple/smokestack/TcpNeighbor;.access$300:(Lorg/purple/smokestack/TcpNeighbor;)Ljava/util/concurrent/atomic/AtomicBoolean; // method@d27f │ │ +49c66c: 0c05 |0054: move-result-object v5 │ │ +49c66e: 6e20 1a61 1500 |0055: invoke-virtual {v5, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ +49c674: 284c |0058: goto 00a4 // +004c │ │ +49c676: 5446 8469 |0059: iget-object v6, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ +49c67a: 5466 8c69 |005b: iget-object v6, v6, Lorg/purple/smokestack/TcpNeighbor;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@698c │ │ +49c67e: 5442 8469 |005d: iget-object v2, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ +49c682: 5422 8b69 |005f: iget-object v2, v2, Lorg/purple/smokestack/TcpNeighbor;.m_cryptography:Lorg/purple/smokestack/Cryptography; // field@698b │ │ +49c686: 5443 8469 |0061: iget-object v3, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ +49c68a: 5433 9769 |0063: iget-object v3, v3, Lorg/purple/smokestack/TcpNeighbor;.m_oid:Ljava/util/concurrent/atomic/AtomicInteger; // field@6997 │ │ +49c68e: 6e10 1c61 0300 |0065: invoke-virtual {v3}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@611c │ │ +49c694: 0a03 |0068: move-result v3 │ │ +49c696: 7110 fa5c 0300 |0069: invoke-static {v3}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@5cfa │ │ +49c69c: 0c03 |006c: move-result-object v3 │ │ +49c69e: 4605 0500 |006d: aget-object v5, v5, v0 │ │ +49c6a2: 6e10 3f5f 0500 |006f: invoke-virtual {v5}, Ljava/security/cert/X509Certificate;.getEncoded:()[B // method@5f3f │ │ +49c6a8: 0c05 |0072: move-result-object v5 │ │ +49c6aa: 6e40 b9d0 2653 |0073: invoke-virtual {v6, v2, v3, v5}, Lorg/purple/smokestack/Database;.neighborRecordCertificate:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;[B)V // method@d0b9 │ │ +49c6b0: 5445 8469 |0076: iget-object v5, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ +49c6b4: 7110 7fd2 0500 |0078: invoke-static {v5}, Lorg/purple/smokestack/TcpNeighbor;.access$300:(Lorg/purple/smokestack/TcpNeighbor;)Ljava/util/concurrent/atomic/AtomicBoolean; // method@d27f │ │ +49c6ba: 0c05 |007b: move-result-object v5 │ │ +49c6bc: 6e20 1a61 1500 |007c: invoke-virtual {v5, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ +49c6c2: 2825 |007f: goto 00a4 // +0025 │ │ +49c6c4: 5445 8469 |0080: iget-object v5, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ +49c6c8: 1a06 a355 |0082: const-string v6, "The server's certificate has expired." // string@55a3 │ │ +49c6cc: 6e20 90d2 6500 |0084: invoke-virtual {v5, v6}, Lorg/purple/smokestack/TcpNeighbor;.setError:(Ljava/lang/String;)V // method@d290 │ │ +49c6d2: 5445 8469 |0087: iget-object v5, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ +49c6d6: 7110 7fd2 0500 |0089: invoke-static {v5}, Lorg/purple/smokestack/TcpNeighbor;.access$300:(Lorg/purple/smokestack/TcpNeighbor;)Ljava/util/concurrent/atomic/AtomicBoolean; // method@d27f │ │ +49c6dc: 0c05 |008c: move-result-object v5 │ │ +49c6de: 6e20 1a61 0500 |008d: invoke-virtual {v5, v0}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ +49c6e4: 2814 |0090: goto 00a4 // +0014 │ │ +49c6e6: 5445 8469 |0091: iget-object v5, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ +49c6ea: 7110 7fd2 0500 |0093: invoke-static {v5}, Lorg/purple/smokestack/TcpNeighbor;.access$300:(Lorg/purple/smokestack/TcpNeighbor;)Ljava/util/concurrent/atomic/AtomicBoolean; // method@d27f │ │ +49c6f0: 0c05 |0096: move-result-object v5 │ │ +49c6f2: 6e20 1a61 0500 |0097: invoke-virtual {v5, v0}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ +49c6f8: 280a |009a: goto 00a4 // +000a │ │ +49c6fa: 5445 8469 |009b: iget-object v5, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ +49c6fe: 7110 7fd2 0500 |009d: invoke-static {v5}, Lorg/purple/smokestack/TcpNeighbor;.access$300:(Lorg/purple/smokestack/TcpNeighbor;)Ljava/util/concurrent/atomic/AtomicBoolean; // method@d27f │ │ +49c704: 0c05 |00a0: move-result-object v5 │ │ +49c706: 6e20 1a61 0500 |00a1: invoke-virtual {v5, v0}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ +49c70c: 5445 8469 |00a4: iget-object v5, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ +49c710: 7110 7fd2 0500 |00a6: invoke-static {v5}, Lorg/purple/smokestack/TcpNeighbor;.access$300:(Lorg/purple/smokestack/TcpNeighbor;)Ljava/util/concurrent/atomic/AtomicBoolean; // method@d27f │ │ +49c716: 0c05 |00a9: move-result-object v5 │ │ +49c718: 6e10 1861 0500 |00aa: invoke-virtual {v5}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ +49c71e: 0a05 |00ad: move-result v5 │ │ +49c720: 3905 1a00 |00ae: if-nez v5, 00c8 // +001a │ │ +49c724: 5445 8469 |00b0: iget-object v5, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ +49c728: 6e10 83d2 0500 |00b2: invoke-virtual {v5}, Lorg/purple/smokestack/TcpNeighbor;.disconnect:()V // method@d283 │ │ +49c72e: 5445 8469 |00b5: iget-object v5, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ +49c732: 5455 8e69 |00b7: iget-object v5, v5, Lorg/purple/smokestack/TcpNeighbor;.m_error:Ljava/lang/StringBuffer; // field@698e │ │ +49c736: 6e10 0c5d 0500 |00b9: invoke-virtual {v5}, Ljava/lang/StringBuffer;.length:()I // method@5d0c │ │ +49c73c: 0a05 |00bc: move-result v5 │ │ +49c73e: 3905 0b00 |00bd: if-nez v5, 00c8 // +000b │ │ +49c742: 5445 8469 |00bf: iget-object v5, v4, Lorg/purple/smokestack/TcpNeighbor$5;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6984 │ │ +49c746: 5455 8e69 |00c1: iget-object v5, v5, Lorg/purple/smokestack/TcpNeighbor;.m_error:Ljava/lang/StringBuffer; // field@698e │ │ +49c74a: 1a06 9409 |00c3: const-string v6, "A generic certificate error occurred." // string@0994 │ │ +49c74e: 6e20 045d 6500 |00c5: invoke-virtual {v5, v6}, Ljava/lang/StringBuffer;.append:(Ljava/lang/String;)Ljava/lang/StringBuffer; // method@5d04 │ │ +49c754: 0e00 |00c8: return-void │ │ catches : 1 │ │ 0x0012 - 0x007f │ │ Ljava/lang/Exception; -> 0x0080 │ │ positions : │ │ 0x0003 line=576 │ │ 0x000d line=578 │ │ 0x0012 line=584 │ │ @@ -792295,18 +792294,18 @@ │ │ type : '()[Ljava/security/cert/X509Certificate;' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 4 16-bit code units │ │ -49c570: |[49c570] org.purple.smokestack.TcpNeighbor$5.getAcceptedIssuers:()[Ljava/security/cert/X509Certificate; │ │ -49c580: 1200 |0000: const/4 v0, #int 0 // #0 │ │ -49c582: 2300 771f |0001: new-array v0, v0, [Ljava/security/cert/X509Certificate; // type@1f77 │ │ -49c586: 1100 |0003: return-object v0 │ │ +49c56c: |[49c56c] org.purple.smokestack.TcpNeighbor$5.getAcceptedIssuers:()[Ljava/security/cert/X509Certificate; │ │ +49c57c: 1200 |0000: const/4 v0, #int 0 // #0 │ │ +49c57e: 2300 771f |0001: new-array v0, v0, [Ljava/security/cert/X509Certificate; // type@1f77 │ │ +49c582: 1100 |0003: return-object v0 │ │ catches : (none) │ │ positions : │ │ locals : │ │ │ │ source_file_idx : 21761 (TcpNeighbor.java) │ │ │ │ Class #3084 header: │ │ @@ -792342,18 +792341,18 @@ │ │ type : '(Lorg/purple/smokestack/TcpNeighbor;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 6 16-bit code units │ │ -49c76c: |[49c76c] org.purple.smokestack.TcpNeighbor$6.:(Lorg/purple/smokestack/TcpNeighbor;)V │ │ -49c77c: 5b01 8569 |0000: iput-object v1, v0, Lorg/purple/smokestack/TcpNeighbor$6;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6985 │ │ -49c780: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ -49c786: 0e00 |0005: return-void │ │ +49c768: |[49c768] org.purple.smokestack.TcpNeighbor$6.:(Lorg/purple/smokestack/TcpNeighbor;)V │ │ +49c778: 5b01 8569 |0000: iput-object v1, v0, Lorg/purple/smokestack/TcpNeighbor$6;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6985 │ │ +49c77c: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ +49c782: 0e00 |0005: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=738 │ │ locals : │ │ 0x0000 - 0x0006 reg=0 this Lorg/purple/smokestack/TcpNeighbor$6; │ │ 0x0000 - 0x0006 reg=1 (null) Lorg/purple/smokestack/TcpNeighbor; │ │ │ │ @@ -792363,35 +792362,35 @@ │ │ type : '(Ljavax/net/ssl/HandshakeCompletedEvent;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 3 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 35 16-bit code units │ │ -49c788: |[49c788] org.purple.smokestack.TcpNeighbor$6.handshakeCompleted:(Ljavax/net/ssl/HandshakeCompletedEvent;)V │ │ -49c798: 5412 8569 |0000: iget-object v2, v1, Lorg/purple/smokestack/TcpNeighbor$6;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6985 │ │ -49c79c: 5422 8d69 |0002: iget-object v2, v2, Lorg/purple/smokestack/TcpNeighbor;.m_disconnected:Ljava/util/concurrent/atomic/AtomicBoolean; // field@698d │ │ -49c7a0: 1200 |0004: const/4 v0, #int 0 // #0 │ │ -49c7a2: 6e20 1a61 0200 |0005: invoke-virtual {v2, v0}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ -49c7a8: 5412 8569 |0008: iget-object v2, v1, Lorg/purple/smokestack/TcpNeighbor$6;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6985 │ │ -49c7ac: 7110 7cd2 0200 |000a: invoke-static {v2}, Lorg/purple/smokestack/TcpNeighbor;.access$000:(Lorg/purple/smokestack/TcpNeighbor;)Ljava/util/concurrent/atomic/AtomicBoolean; // method@d27c │ │ -49c7b2: 0c02 |000d: move-result-object v2 │ │ -49c7b4: 1210 |000e: const/4 v0, #int 1 // #1 │ │ -49c7b6: 6e20 1a61 0200 |000f: invoke-virtual {v2, v0}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ -49c7bc: 5412 8569 |0012: iget-object v2, v1, Lorg/purple/smokestack/TcpNeighbor$6;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6985 │ │ -49c7c0: 5422 9669 |0014: iget-object v2, v2, Lorg/purple/smokestack/TcpNeighbor;.m_mutex:Ljava/lang/Object; // field@6996 │ │ -49c7c4: 1d02 |0016: monitor-enter v2 │ │ -49c7c6: 5410 8569 |0017: iget-object v0, v1, Lorg/purple/smokestack/TcpNeighbor$6;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6985 │ │ -49c7ca: 5400 9669 |0019: iget-object v0, v0, Lorg/purple/smokestack/TcpNeighbor;.m_mutex:Ljava/lang/Object; // field@6996 │ │ -49c7ce: 6e10 b45c 0000 |001b: invoke-virtual {v0}, Ljava/lang/Object;.notifyAll:()V // method@5cb4 │ │ -49c7d4: 1e02 |001e: monitor-exit v2 │ │ -49c7d6: 0e00 |001f: return-void │ │ -49c7d8: 0d00 |0020: move-exception v0 │ │ -49c7da: 1e02 |0021: monitor-exit v2 │ │ -49c7dc: 2700 |0022: throw v0 │ │ +49c784: |[49c784] org.purple.smokestack.TcpNeighbor$6.handshakeCompleted:(Ljavax/net/ssl/HandshakeCompletedEvent;)V │ │ +49c794: 5412 8569 |0000: iget-object v2, v1, Lorg/purple/smokestack/TcpNeighbor$6;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6985 │ │ +49c798: 5422 8d69 |0002: iget-object v2, v2, Lorg/purple/smokestack/TcpNeighbor;.m_disconnected:Ljava/util/concurrent/atomic/AtomicBoolean; // field@698d │ │ +49c79c: 1200 |0004: const/4 v0, #int 0 // #0 │ │ +49c79e: 6e20 1a61 0200 |0005: invoke-virtual {v2, v0}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ +49c7a4: 5412 8569 |0008: iget-object v2, v1, Lorg/purple/smokestack/TcpNeighbor$6;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6985 │ │ +49c7a8: 7110 7cd2 0200 |000a: invoke-static {v2}, Lorg/purple/smokestack/TcpNeighbor;.access$000:(Lorg/purple/smokestack/TcpNeighbor;)Ljava/util/concurrent/atomic/AtomicBoolean; // method@d27c │ │ +49c7ae: 0c02 |000d: move-result-object v2 │ │ +49c7b0: 1210 |000e: const/4 v0, #int 1 // #1 │ │ +49c7b2: 6e20 1a61 0200 |000f: invoke-virtual {v2, v0}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ +49c7b8: 5412 8569 |0012: iget-object v2, v1, Lorg/purple/smokestack/TcpNeighbor$6;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6985 │ │ +49c7bc: 5422 9669 |0014: iget-object v2, v2, Lorg/purple/smokestack/TcpNeighbor;.m_mutex:Ljava/lang/Object; // field@6996 │ │ +49c7c0: 1d02 |0016: monitor-enter v2 │ │ +49c7c2: 5410 8569 |0017: iget-object v0, v1, Lorg/purple/smokestack/TcpNeighbor$6;.this$0:Lorg/purple/smokestack/TcpNeighbor; // field@6985 │ │ +49c7c6: 5400 9669 |0019: iget-object v0, v0, Lorg/purple/smokestack/TcpNeighbor;.m_mutex:Ljava/lang/Object; // field@6996 │ │ +49c7ca: 6e10 b45c 0000 |001b: invoke-virtual {v0}, Ljava/lang/Object;.notifyAll:()V // method@5cb4 │ │ +49c7d0: 1e02 |001e: monitor-exit v2 │ │ +49c7d2: 0e00 |001f: return-void │ │ +49c7d4: 0d00 |0020: move-exception v0 │ │ +49c7d6: 1e02 |0021: monitor-exit v2 │ │ +49c7d8: 2700 |0022: throw v0 │ │ catches : 1 │ │ 0x0017 - 0x0022 │ │ -> 0x0020 │ │ positions : │ │ 0x0000 line=743 │ │ 0x0008 line=744 │ │ 0x0012 line=746 │ │ @@ -792440,20 +792439,20 @@ │ │ type : '(Lorg/purple/smokestack/UdpMulticastNeighbor;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 9 16-bit code units │ │ -49d3d0: |[49d3d0] org.purple.smokestack.UdpMulticastNeighbor$1.:(Lorg/purple/smokestack/UdpMulticastNeighbor;)V │ │ -49d3e0: 5b01 aa69 |0000: iput-object v1, v0, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ -49d3e4: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ -49d3ea: 1201 |0005: const/4 v1, #int 0 // #0 │ │ -49d3ec: 5c01 a969 |0006: iput-boolean v1, v0, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.m_error:Z // field@69a9 │ │ -49d3f0: 0e00 |0008: return-void │ │ +49d3cc: |[49d3cc] org.purple.smokestack.UdpMulticastNeighbor$1.:(Lorg/purple/smokestack/UdpMulticastNeighbor;)V │ │ +49d3dc: 5b01 aa69 |0000: iput-object v1, v0, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ +49d3e0: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ +49d3e6: 1201 |0005: const/4 v1, #int 0 // #0 │ │ +49d3e8: 5c01 a969 |0006: iput-boolean v1, v0, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.m_error:Z // field@69a9 │ │ +49d3ec: 0e00 |0008: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=154 │ │ 0x0006 line=155 │ │ locals : │ │ 0x0000 - 0x0009 reg=0 this Lorg/purple/smokestack/UdpMulticastNeighbor$1; │ │ 0x0000 - 0x0009 reg=1 (null) Lorg/purple/smokestack/UdpMulticastNeighbor; │ │ @@ -792464,136 +792463,136 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 7 │ │ ins : 1 │ │ outs : 4 │ │ insns size : 229 16-bit code units │ │ -49d3f4: |[49d3f4] org.purple.smokestack.UdpMulticastNeighbor$1.run:()V │ │ -49d404: 1200 |0000: const/4 v0, #int 0 // #0 │ │ -49d406: 5461 aa69 |0001: iget-object v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ -49d40a: 6e10 98d2 0100 |0003: invoke-virtual {v1}, Lorg/purple/smokestack/UdpMulticastNeighbor;.connected:()Z // method@d298 │ │ -49d410: 0a01 |0006: move-result v1 │ │ -49d412: 3901 2100 |0007: if-nez v1, 0028 // +0021 │ │ -49d416: 5461 aa69 |0009: iget-object v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ -49d41a: 5411 af69 |000b: iget-object v1, v1, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_disconnected:Ljava/util/concurrent/atomic/AtomicBoolean; // field@69af │ │ -49d41e: 6e10 1861 0100 |000d: invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ -49d424: 0a01 |0010: move-result v1 │ │ -49d426: 3901 1700 |0011: if-nez v1, 0028 // +0017 │ │ -49d42a: 5461 aa69 |0013: iget-object v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ -49d42e: 5411 b469 |0015: iget-object v1, v1, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_mutex:Ljava/lang/Object; // field@69b4 │ │ -49d432: 1d01 |0017: monitor-enter v1 │ │ -49d434: 5462 aa69 |0018: iget-object v2, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ -49d438: 5422 b469 |001a: iget-object v2, v2, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_mutex:Ljava/lang/Object; // field@69b4 │ │ -49d43c: 1603 1027 |001c: const-wide/16 v3, #int 10000 // #2710 │ │ -49d440: 6e30 b75c 3204 |001e: invoke-virtual {v2, v3, v4}, Ljava/lang/Object;.wait:(J)V // method@5cb7 │ │ -49d446: 2803 |0021: goto 0024 // +0003 │ │ -49d448: 0d02 |0022: move-exception v2 │ │ -49d44a: 2803 |0023: goto 0026 // +0003 │ │ -49d44c: 1e01 |0024: monitor-exit v1 │ │ -49d44e: 2803 |0025: goto 0028 // +0003 │ │ -49d450: 1e01 |0026: monitor-exit v1 │ │ -49d452: 2702 |0027: throw v2 │ │ -49d454: 5461 aa69 |0028: iget-object v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ -49d458: 6e10 98d2 0100 |002a: invoke-virtual {v1}, Lorg/purple/smokestack/UdpMulticastNeighbor;.connected:()Z // method@d298 │ │ -49d45e: 0a01 |002d: move-result v1 │ │ -49d460: 3901 0300 |002e: if-nez v1, 0031 // +0003 │ │ -49d464: 0e00 |0030: return-void │ │ -49d466: 5561 a969 |0031: iget-boolean v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.m_error:Z // field@69a9 │ │ -49d46a: 1202 |0033: const/4 v2, #int 0 // #0 │ │ -49d46c: 3801 0e00 |0034: if-eqz v1, 0042 // +000e │ │ -49d470: 5461 aa69 |0036: iget-object v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ -49d474: 6e10 98d2 0100 |0038: invoke-virtual {v1}, Lorg/purple/smokestack/UdpMulticastNeighbor;.connected:()Z // method@d298 │ │ -49d47a: 0a01 |003b: move-result v1 │ │ -49d47c: 3801 0500 |003c: if-eqz v1, 0041 // +0005 │ │ -49d480: 5c62 a969 |003e: iput-boolean v2, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.m_error:Z // field@69a9 │ │ -49d484: 2802 |0040: goto 0042 // +0002 │ │ -49d486: 0e00 |0041: return-void │ │ -49d488: 1501 1000 |0042: const/high16 v1, #int 1048576 // #10 │ │ -49d48c: 2313 0a1f |0044: new-array v3, v1, [B // type@1f0a │ │ -49d490: 2204 140b |0046: new-instance v4, Ljava/net/DatagramPacket; // type@0b14 │ │ -49d494: 7030 915d 3401 |0048: invoke-direct {v4, v3, v1}, Ljava/net/DatagramPacket;.:([BI)V // method@5d91 │ │ -49d49a: 1211 |004b: const/4 v1, #int 1 // #1 │ │ -49d49c: 5463 aa69 |004c: iget-object v3, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ -49d4a0: 7110 96d2 0300 |004e: invoke-static {v3}, Lorg/purple/smokestack/UdpMulticastNeighbor;.access$000:(Lorg/purple/smokestack/UdpMulticastNeighbor;)Ljava/net/MulticastSocket; // method@d296 │ │ -49d4a6: 0c03 |0051: move-result-object v3 │ │ -49d4a8: 6e20 bb5d 4300 |0052: invoke-virtual {v3, v4}, Ljava/net/MulticastSocket;.receive:(Ljava/net/DatagramPacket;)V // method@5dbb │ │ -49d4ae: 6e10 945d 0400 |0055: invoke-virtual {v4}, Ljava/net/DatagramPacket;.getLength:()I // method@5d94 │ │ -49d4b4: 0a03 |0058: move-result v3 │ │ -49d4b6: 3d03 1900 |0059: if-lez v3, 0072 // +0019 │ │ -49d4ba: 2203 ac0a |005b: new-instance v3, Ljava/io/ByteArrayOutputStream; // type@0aac │ │ -49d4be: 7010 795b 0300 |005d: invoke-direct {v3}, Ljava/io/ByteArrayOutputStream;.:()V // method@5b79 │ │ -49d4c4: 6e10 935d 0400 |0060: invoke-virtual {v4}, Ljava/net/DatagramPacket;.getData:()[B // method@5d93 │ │ -49d4ca: 0c00 |0063: move-result-object v0 │ │ -49d4cc: 6e10 945d 0400 |0064: invoke-virtual {v4}, Ljava/net/DatagramPacket;.getLength:()I // method@5d94 │ │ -49d4d2: 0a05 |0067: move-result v5 │ │ -49d4d4: 6e40 825b 0352 |0068: invoke-virtual {v3, v0, v2, v5}, Ljava/io/ByteArrayOutputStream;.write:([BII)V // method@5b82 │ │ -49d4da: 0730 |006b: move-object v0, v3 │ │ -49d4dc: 2806 |006c: goto 0072 // +0006 │ │ -49d4de: 0d01 |006d: move-exception v1 │ │ -49d4e0: 0730 |006e: move-object v0, v3 │ │ -49d4e2: 286c |006f: goto 00db // +006c │ │ -49d4e4: 0730 |0070: move-object v0, v3 │ │ -49d4e6: 2870 |0071: goto 00e1 // +0070 │ │ -49d4e8: 6e10 945d 0400 |0072: invoke-virtual {v4}, Ljava/net/DatagramPacket;.getLength:()I // method@5d94 │ │ -49d4ee: 0a02 |0075: move-result v2 │ │ -49d4f0: 3b02 1600 |0076: if-gez v2, 008c // +0016 │ │ -49d4f4: 5c61 a969 |0078: iput-boolean v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.m_error:Z // field@69a9 │ │ -49d4f8: 5461 aa69 |007a: iget-object v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ -49d4fc: 1a02 9c09 |007c: const-string v2, "A socket receive() error occurred." // string@099c │ │ -49d500: 6e20 a1d2 2100 |007e: invoke-virtual {v1, v2}, Lorg/purple/smokestack/UdpMulticastNeighbor;.setError:(Ljava/lang/String;)V // method@d2a1 │ │ -49d506: 5461 aa69 |0081: iget-object v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ -49d50a: 6e10 99d2 0100 |0083: invoke-virtual {v1}, Lorg/purple/smokestack/UdpMulticastNeighbor;.disconnect:()V // method@d299 │ │ -49d510: 3800 0500 |0086: if-eqz v0, 008b // +0005 │ │ -49d514: 6e10 7b5b 0000 |0088: invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;.close:()V // method@5b7b │ │ -49d51a: 0e00 |008b: return-void │ │ -49d51c: 3902 0800 |008c: if-nez v2, 0094 // +0008 │ │ -49d520: 3800 0500 |008e: if-eqz v0, 0093 // +0005 │ │ -49d524: 6e10 7b5b 0000 |0090: invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;.close:()V // method@5b7b │ │ -49d52a: 0e00 |0093: return-void │ │ -49d52c: 5461 aa69 |0094: iget-object v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ -49d530: 5411 ac69 |0096: iget-object v1, v1, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_bytesRead:Ljava/util/concurrent/atomic/AtomicLong; // field@69ac │ │ -49d534: 8122 |0098: int-to-long v2, v2 │ │ -49d536: 6e30 2261 2103 |0099: invoke-virtual {v1, v2, v3}, Ljava/util/concurrent/atomic/AtomicLong;.getAndAdd:(J)J // method@6122 │ │ -49d53c: 5461 aa69 |009c: iget-object v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ -49d540: 5411 b369 |009e: iget-object v1, v1, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_lastTimeRead:Ljava/util/concurrent/atomic/AtomicLong; // field@69b3 │ │ -49d544: 7100 315d 0000 |00a0: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@5d31 │ │ -49d54a: 0b02 |00a3: move-result-wide v2 │ │ -49d54c: 6e30 2461 2103 |00a4: invoke-virtual {v1, v2, v3}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ -49d552: 3800 1e00 |00a7: if-eqz v0, 00c5 // +001e │ │ -49d556: 5461 aa69 |00a9: iget-object v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ -49d55a: 5411 b869 |00ab: iget-object v1, v1, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_stringBuffer:Ljava/lang/StringBuffer; // field@69b8 │ │ -49d55e: 6e10 0c5d 0100 |00ad: invoke-virtual {v1}, Ljava/lang/StringBuffer;.length:()I // method@5d0c │ │ -49d564: 0a01 |00b0: move-result v1 │ │ -49d566: 1502 8000 |00b1: const/high16 v2, #int 8388608 // #80 │ │ -49d56a: 3521 1200 |00b3: if-ge v1, v2, 00c5 // +0012 │ │ -49d56e: 5461 aa69 |00b5: iget-object v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ -49d572: 5411 b869 |00b7: iget-object v1, v1, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_stringBuffer:Ljava/lang/StringBuffer; // field@69b8 │ │ -49d576: 2202 fa0a |00b9: new-instance v2, Ljava/lang/String; // type@0afa │ │ -49d57a: 6e10 7f5b 0000 |00bb: invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;.toByteArray:()[B // method@5b7f │ │ -49d580: 0c03 |00be: move-result-object v3 │ │ -49d582: 7020 ce5c 3200 |00bf: invoke-direct {v2, v3}, Ljava/lang/String;.:([B)V // method@5cce │ │ -49d588: 6e20 045d 2100 |00c2: invoke-virtual {v1, v2}, Ljava/lang/StringBuffer;.append:(Ljava/lang/String;)Ljava/lang/StringBuffer; // method@5d04 │ │ -49d58e: 3800 1f00 |00c5: if-eqz v0, 00e4 // +001f │ │ -49d592: 6e10 7b5b 0000 |00c7: invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;.close:()V // method@5b7b │ │ -49d598: 281a |00ca: goto 00e4 // +001a │ │ -49d59a: 5c61 a969 |00cb: iput-boolean v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.m_error:Z // field@69a9 │ │ -49d59e: 5461 aa69 |00cd: iget-object v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ -49d5a2: 1a02 9c09 |00cf: const-string v2, "A socket receive() error occurred." // string@099c │ │ -49d5a6: 6e20 a1d2 2100 |00d1: invoke-virtual {v1, v2}, Lorg/purple/smokestack/UdpMulticastNeighbor;.setError:(Ljava/lang/String;)V // method@d2a1 │ │ -49d5ac: 5461 aa69 |00d4: iget-object v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ -49d5b0: 6e10 99d2 0100 |00d6: invoke-virtual {v1}, Lorg/purple/smokestack/UdpMulticastNeighbor;.disconnect:()V // method@d299 │ │ -49d5b6: 0e00 |00d9: return-void │ │ -49d5b8: 0d01 |00da: move-exception v1 │ │ -49d5ba: 3800 0500 |00db: if-eqz v0, 00e0 // +0005 │ │ -49d5be: 6e10 7b5b 0000 |00dd: invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;.close:()V // method@5b7b │ │ -49d5c4: 2701 |00e0: throw v1 │ │ -49d5c6: 3800 0300 |00e1: if-eqz v0, 00e4 // +0003 │ │ -49d5ca: 28e4 |00e3: goto 00c7 // -001c │ │ -49d5cc: 0e00 |00e4: return-void │ │ +49d3f0: |[49d3f0] org.purple.smokestack.UdpMulticastNeighbor$1.run:()V │ │ +49d400: 1200 |0000: const/4 v0, #int 0 // #0 │ │ +49d402: 5461 aa69 |0001: iget-object v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ +49d406: 6e10 98d2 0100 |0003: invoke-virtual {v1}, Lorg/purple/smokestack/UdpMulticastNeighbor;.connected:()Z // method@d298 │ │ +49d40c: 0a01 |0006: move-result v1 │ │ +49d40e: 3901 2100 |0007: if-nez v1, 0028 // +0021 │ │ +49d412: 5461 aa69 |0009: iget-object v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ +49d416: 5411 af69 |000b: iget-object v1, v1, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_disconnected:Ljava/util/concurrent/atomic/AtomicBoolean; // field@69af │ │ +49d41a: 6e10 1861 0100 |000d: invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ +49d420: 0a01 |0010: move-result v1 │ │ +49d422: 3901 1700 |0011: if-nez v1, 0028 // +0017 │ │ +49d426: 5461 aa69 |0013: iget-object v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ +49d42a: 5411 b469 |0015: iget-object v1, v1, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_mutex:Ljava/lang/Object; // field@69b4 │ │ +49d42e: 1d01 |0017: monitor-enter v1 │ │ +49d430: 5462 aa69 |0018: iget-object v2, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ +49d434: 5422 b469 |001a: iget-object v2, v2, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_mutex:Ljava/lang/Object; // field@69b4 │ │ +49d438: 1603 1027 |001c: const-wide/16 v3, #int 10000 // #2710 │ │ +49d43c: 6e30 b75c 3204 |001e: invoke-virtual {v2, v3, v4}, Ljava/lang/Object;.wait:(J)V // method@5cb7 │ │ +49d442: 2803 |0021: goto 0024 // +0003 │ │ +49d444: 0d02 |0022: move-exception v2 │ │ +49d446: 2803 |0023: goto 0026 // +0003 │ │ +49d448: 1e01 |0024: monitor-exit v1 │ │ +49d44a: 2803 |0025: goto 0028 // +0003 │ │ +49d44c: 1e01 |0026: monitor-exit v1 │ │ +49d44e: 2702 |0027: throw v2 │ │ +49d450: 5461 aa69 |0028: iget-object v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ +49d454: 6e10 98d2 0100 |002a: invoke-virtual {v1}, Lorg/purple/smokestack/UdpMulticastNeighbor;.connected:()Z // method@d298 │ │ +49d45a: 0a01 |002d: move-result v1 │ │ +49d45c: 3901 0300 |002e: if-nez v1, 0031 // +0003 │ │ +49d460: 0e00 |0030: return-void │ │ +49d462: 5561 a969 |0031: iget-boolean v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.m_error:Z // field@69a9 │ │ +49d466: 1202 |0033: const/4 v2, #int 0 // #0 │ │ +49d468: 3801 0e00 |0034: if-eqz v1, 0042 // +000e │ │ +49d46c: 5461 aa69 |0036: iget-object v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ +49d470: 6e10 98d2 0100 |0038: invoke-virtual {v1}, Lorg/purple/smokestack/UdpMulticastNeighbor;.connected:()Z // method@d298 │ │ +49d476: 0a01 |003b: move-result v1 │ │ +49d478: 3801 0500 |003c: if-eqz v1, 0041 // +0005 │ │ +49d47c: 5c62 a969 |003e: iput-boolean v2, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.m_error:Z // field@69a9 │ │ +49d480: 2802 |0040: goto 0042 // +0002 │ │ +49d482: 0e00 |0041: return-void │ │ +49d484: 1501 1000 |0042: const/high16 v1, #int 1048576 // #10 │ │ +49d488: 2313 0a1f |0044: new-array v3, v1, [B // type@1f0a │ │ +49d48c: 2204 140b |0046: new-instance v4, Ljava/net/DatagramPacket; // type@0b14 │ │ +49d490: 7030 915d 3401 |0048: invoke-direct {v4, v3, v1}, Ljava/net/DatagramPacket;.:([BI)V // method@5d91 │ │ +49d496: 1211 |004b: const/4 v1, #int 1 // #1 │ │ +49d498: 5463 aa69 |004c: iget-object v3, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ +49d49c: 7110 96d2 0300 |004e: invoke-static {v3}, Lorg/purple/smokestack/UdpMulticastNeighbor;.access$000:(Lorg/purple/smokestack/UdpMulticastNeighbor;)Ljava/net/MulticastSocket; // method@d296 │ │ +49d4a2: 0c03 |0051: move-result-object v3 │ │ +49d4a4: 6e20 bb5d 4300 |0052: invoke-virtual {v3, v4}, Ljava/net/MulticastSocket;.receive:(Ljava/net/DatagramPacket;)V // method@5dbb │ │ +49d4aa: 6e10 945d 0400 |0055: invoke-virtual {v4}, Ljava/net/DatagramPacket;.getLength:()I // method@5d94 │ │ +49d4b0: 0a03 |0058: move-result v3 │ │ +49d4b2: 3d03 1900 |0059: if-lez v3, 0072 // +0019 │ │ +49d4b6: 2203 ac0a |005b: new-instance v3, Ljava/io/ByteArrayOutputStream; // type@0aac │ │ +49d4ba: 7010 795b 0300 |005d: invoke-direct {v3}, Ljava/io/ByteArrayOutputStream;.:()V // method@5b79 │ │ +49d4c0: 6e10 935d 0400 |0060: invoke-virtual {v4}, Ljava/net/DatagramPacket;.getData:()[B // method@5d93 │ │ +49d4c6: 0c00 |0063: move-result-object v0 │ │ +49d4c8: 6e10 945d 0400 |0064: invoke-virtual {v4}, Ljava/net/DatagramPacket;.getLength:()I // method@5d94 │ │ +49d4ce: 0a05 |0067: move-result v5 │ │ +49d4d0: 6e40 825b 0352 |0068: invoke-virtual {v3, v0, v2, v5}, Ljava/io/ByteArrayOutputStream;.write:([BII)V // method@5b82 │ │ +49d4d6: 0730 |006b: move-object v0, v3 │ │ +49d4d8: 2806 |006c: goto 0072 // +0006 │ │ +49d4da: 0d01 |006d: move-exception v1 │ │ +49d4dc: 0730 |006e: move-object v0, v3 │ │ +49d4de: 286c |006f: goto 00db // +006c │ │ +49d4e0: 0730 |0070: move-object v0, v3 │ │ +49d4e2: 2870 |0071: goto 00e1 // +0070 │ │ +49d4e4: 6e10 945d 0400 |0072: invoke-virtual {v4}, Ljava/net/DatagramPacket;.getLength:()I // method@5d94 │ │ +49d4ea: 0a02 |0075: move-result v2 │ │ +49d4ec: 3b02 1600 |0076: if-gez v2, 008c // +0016 │ │ +49d4f0: 5c61 a969 |0078: iput-boolean v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.m_error:Z // field@69a9 │ │ +49d4f4: 5461 aa69 |007a: iget-object v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ +49d4f8: 1a02 9c09 |007c: const-string v2, "A socket receive() error occurred." // string@099c │ │ +49d4fc: 6e20 a1d2 2100 |007e: invoke-virtual {v1, v2}, Lorg/purple/smokestack/UdpMulticastNeighbor;.setError:(Ljava/lang/String;)V // method@d2a1 │ │ +49d502: 5461 aa69 |0081: iget-object v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ +49d506: 6e10 99d2 0100 |0083: invoke-virtual {v1}, Lorg/purple/smokestack/UdpMulticastNeighbor;.disconnect:()V // method@d299 │ │ +49d50c: 3800 0500 |0086: if-eqz v0, 008b // +0005 │ │ +49d510: 6e10 7b5b 0000 |0088: invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;.close:()V // method@5b7b │ │ +49d516: 0e00 |008b: return-void │ │ +49d518: 3902 0800 |008c: if-nez v2, 0094 // +0008 │ │ +49d51c: 3800 0500 |008e: if-eqz v0, 0093 // +0005 │ │ +49d520: 6e10 7b5b 0000 |0090: invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;.close:()V // method@5b7b │ │ +49d526: 0e00 |0093: return-void │ │ +49d528: 5461 aa69 |0094: iget-object v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ +49d52c: 5411 ac69 |0096: iget-object v1, v1, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_bytesRead:Ljava/util/concurrent/atomic/AtomicLong; // field@69ac │ │ +49d530: 8122 |0098: int-to-long v2, v2 │ │ +49d532: 6e30 2261 2103 |0099: invoke-virtual {v1, v2, v3}, Ljava/util/concurrent/atomic/AtomicLong;.getAndAdd:(J)J // method@6122 │ │ +49d538: 5461 aa69 |009c: iget-object v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ +49d53c: 5411 b369 |009e: iget-object v1, v1, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_lastTimeRead:Ljava/util/concurrent/atomic/AtomicLong; // field@69b3 │ │ +49d540: 7100 315d 0000 |00a0: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@5d31 │ │ +49d546: 0b02 |00a3: move-result-wide v2 │ │ +49d548: 6e30 2461 2103 |00a4: invoke-virtual {v1, v2, v3}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ +49d54e: 3800 1e00 |00a7: if-eqz v0, 00c5 // +001e │ │ +49d552: 5461 aa69 |00a9: iget-object v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ +49d556: 5411 b869 |00ab: iget-object v1, v1, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_stringBuffer:Ljava/lang/StringBuffer; // field@69b8 │ │ +49d55a: 6e10 0c5d 0100 |00ad: invoke-virtual {v1}, Ljava/lang/StringBuffer;.length:()I // method@5d0c │ │ +49d560: 0a01 |00b0: move-result v1 │ │ +49d562: 1502 8000 |00b1: const/high16 v2, #int 8388608 // #80 │ │ +49d566: 3521 1200 |00b3: if-ge v1, v2, 00c5 // +0012 │ │ +49d56a: 5461 aa69 |00b5: iget-object v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ +49d56e: 5411 b869 |00b7: iget-object v1, v1, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_stringBuffer:Ljava/lang/StringBuffer; // field@69b8 │ │ +49d572: 2202 fa0a |00b9: new-instance v2, Ljava/lang/String; // type@0afa │ │ +49d576: 6e10 7f5b 0000 |00bb: invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;.toByteArray:()[B // method@5b7f │ │ +49d57c: 0c03 |00be: move-result-object v3 │ │ +49d57e: 7020 ce5c 3200 |00bf: invoke-direct {v2, v3}, Ljava/lang/String;.:([B)V // method@5cce │ │ +49d584: 6e20 045d 2100 |00c2: invoke-virtual {v1, v2}, Ljava/lang/StringBuffer;.append:(Ljava/lang/String;)Ljava/lang/StringBuffer; // method@5d04 │ │ +49d58a: 3800 1f00 |00c5: if-eqz v0, 00e4 // +001f │ │ +49d58e: 6e10 7b5b 0000 |00c7: invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;.close:()V // method@5b7b │ │ +49d594: 281a |00ca: goto 00e4 // +001a │ │ +49d596: 5c61 a969 |00cb: iput-boolean v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.m_error:Z // field@69a9 │ │ +49d59a: 5461 aa69 |00cd: iget-object v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ +49d59e: 1a02 9c09 |00cf: const-string v2, "A socket receive() error occurred." // string@099c │ │ +49d5a2: 6e20 a1d2 2100 |00d1: invoke-virtual {v1, v2}, Lorg/purple/smokestack/UdpMulticastNeighbor;.setError:(Ljava/lang/String;)V // method@d2a1 │ │ +49d5a8: 5461 aa69 |00d4: iget-object v1, v6, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.this$0:Lorg/purple/smokestack/UdpMulticastNeighbor; // field@69aa │ │ +49d5ac: 6e10 99d2 0100 |00d6: invoke-virtual {v1}, Lorg/purple/smokestack/UdpMulticastNeighbor;.disconnect:()V // method@d299 │ │ +49d5b2: 0e00 |00d9: return-void │ │ +49d5b4: 0d01 |00da: move-exception v1 │ │ +49d5b6: 3800 0500 |00db: if-eqz v0, 00e0 // +0005 │ │ +49d5ba: 6e10 7b5b 0000 |00dd: invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;.close:()V // method@5b7b │ │ +49d5c0: 2701 |00e0: throw v1 │ │ +49d5c2: 3800 0300 |00e1: if-eqz v0, 00e4 // +0003 │ │ +49d5c6: 28e4 |00e3: goto 00c7 // -001c │ │ +49d5c8: 0e00 |00e4: return-void │ │ catches : 14 │ │ 0x0001 - 0x0018 │ │ Ljava/lang/Exception; -> 0x00e1 │ │ -> 0x00da │ │ 0x0018 - 0x0021 │ │ Ljava/lang/Exception; -> 0x0024 │ │ -> 0x0022 │ │ @@ -792703,20 +792702,20 @@ │ │ type : '(Lorg/purple/smokestack/UdpNeighbor;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 9 16-bit code units │ │ -49dadc: |[49dadc] org.purple.smokestack.UdpNeighbor$1.:(Lorg/purple/smokestack/UdpNeighbor;)V │ │ -49daec: 5b01 bb69 |0000: iput-object v1, v0, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ -49daf0: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ -49daf6: 1201 |0005: const/4 v1, #int 0 // #0 │ │ -49daf8: 5c01 ba69 |0006: iput-boolean v1, v0, Lorg/purple/smokestack/UdpNeighbor$1;.m_error:Z // field@69ba │ │ -49dafc: 0e00 |0008: return-void │ │ +49dad8: |[49dad8] org.purple.smokestack.UdpNeighbor$1.:(Lorg/purple/smokestack/UdpNeighbor;)V │ │ +49dae8: 5b01 bb69 |0000: iput-object v1, v0, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ +49daec: 7010 ad5c 0000 |0002: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@5cad │ │ +49daf2: 1201 |0005: const/4 v1, #int 0 // #0 │ │ +49daf4: 5c01 ba69 |0006: iput-boolean v1, v0, Lorg/purple/smokestack/UdpNeighbor$1;.m_error:Z // field@69ba │ │ +49daf8: 0e00 |0008: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=170 │ │ 0x0006 line=171 │ │ locals : │ │ 0x0000 - 0x0009 reg=0 this Lorg/purple/smokestack/UdpNeighbor$1; │ │ 0x0000 - 0x0009 reg=1 (null) Lorg/purple/smokestack/UdpNeighbor; │ │ @@ -792727,136 +792726,136 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 7 │ │ ins : 1 │ │ outs : 4 │ │ insns size : 229 16-bit code units │ │ -49db00: |[49db00] org.purple.smokestack.UdpNeighbor$1.run:()V │ │ -49db10: 1200 |0000: const/4 v0, #int 0 // #0 │ │ -49db12: 5461 bb69 |0001: iget-object v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ -49db16: 6e10 a8d2 0100 |0003: invoke-virtual {v1}, Lorg/purple/smokestack/UdpNeighbor;.connected:()Z // method@d2a8 │ │ -49db1c: 0a01 |0006: move-result v1 │ │ -49db1e: 3901 2100 |0007: if-nez v1, 0028 // +0021 │ │ -49db22: 5461 bb69 |0009: iget-object v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ -49db26: 5411 bf69 |000b: iget-object v1, v1, Lorg/purple/smokestack/UdpNeighbor;.m_disconnected:Ljava/util/concurrent/atomic/AtomicBoolean; // field@69bf │ │ -49db2a: 6e10 1861 0100 |000d: invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ -49db30: 0a01 |0010: move-result v1 │ │ -49db32: 3901 1700 |0011: if-nez v1, 0028 // +0017 │ │ -49db36: 5461 bb69 |0013: iget-object v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ -49db3a: 5411 c469 |0015: iget-object v1, v1, Lorg/purple/smokestack/UdpNeighbor;.m_mutex:Ljava/lang/Object; // field@69c4 │ │ -49db3e: 1d01 |0017: monitor-enter v1 │ │ -49db40: 5462 bb69 |0018: iget-object v2, v6, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ -49db44: 5422 c469 |001a: iget-object v2, v2, Lorg/purple/smokestack/UdpNeighbor;.m_mutex:Ljava/lang/Object; // field@69c4 │ │ -49db48: 1603 1027 |001c: const-wide/16 v3, #int 10000 // #2710 │ │ -49db4c: 6e30 b75c 3204 |001e: invoke-virtual {v2, v3, v4}, Ljava/lang/Object;.wait:(J)V // method@5cb7 │ │ -49db52: 2803 |0021: goto 0024 // +0003 │ │ -49db54: 0d02 |0022: move-exception v2 │ │ -49db56: 2803 |0023: goto 0026 // +0003 │ │ -49db58: 1e01 |0024: monitor-exit v1 │ │ -49db5a: 2803 |0025: goto 0028 // +0003 │ │ -49db5c: 1e01 |0026: monitor-exit v1 │ │ -49db5e: 2702 |0027: throw v2 │ │ -49db60: 5461 bb69 |0028: iget-object v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ -49db64: 6e10 a8d2 0100 |002a: invoke-virtual {v1}, Lorg/purple/smokestack/UdpNeighbor;.connected:()Z // method@d2a8 │ │ -49db6a: 0a01 |002d: move-result v1 │ │ -49db6c: 3901 0300 |002e: if-nez v1, 0031 // +0003 │ │ -49db70: 0e00 |0030: return-void │ │ -49db72: 5561 ba69 |0031: iget-boolean v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.m_error:Z // field@69ba │ │ -49db76: 1202 |0033: const/4 v2, #int 0 // #0 │ │ -49db78: 3801 0e00 |0034: if-eqz v1, 0042 // +000e │ │ -49db7c: 5461 bb69 |0036: iget-object v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ -49db80: 6e10 a8d2 0100 |0038: invoke-virtual {v1}, Lorg/purple/smokestack/UdpNeighbor;.connected:()Z // method@d2a8 │ │ -49db86: 0a01 |003b: move-result v1 │ │ -49db88: 3801 0500 |003c: if-eqz v1, 0041 // +0005 │ │ -49db8c: 5c62 ba69 |003e: iput-boolean v2, v6, Lorg/purple/smokestack/UdpNeighbor$1;.m_error:Z // field@69ba │ │ -49db90: 2802 |0040: goto 0042 // +0002 │ │ -49db92: 0e00 |0041: return-void │ │ -49db94: 1501 1000 |0042: const/high16 v1, #int 1048576 // #10 │ │ -49db98: 2313 0a1f |0044: new-array v3, v1, [B // type@1f0a │ │ -49db9c: 2204 140b |0046: new-instance v4, Ljava/net/DatagramPacket; // type@0b14 │ │ -49dba0: 7030 915d 3401 |0048: invoke-direct {v4, v3, v1}, Ljava/net/DatagramPacket;.:([BI)V // method@5d91 │ │ -49dba6: 1211 |004b: const/4 v1, #int 1 // #1 │ │ -49dba8: 5463 bb69 |004c: iget-object v3, v6, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ -49dbac: 7110 a6d2 0300 |004e: invoke-static {v3}, Lorg/purple/smokestack/UdpNeighbor;.access$000:(Lorg/purple/smokestack/UdpNeighbor;)Ljava/net/DatagramSocket; // method@d2a6 │ │ -49dbb2: 0c03 |0051: move-result-object v3 │ │ -49dbb4: 6e20 9b5d 4300 |0052: invoke-virtual {v3, v4}, Ljava/net/DatagramSocket;.receive:(Ljava/net/DatagramPacket;)V // method@5d9b │ │ -49dbba: 6e10 945d 0400 |0055: invoke-virtual {v4}, Ljava/net/DatagramPacket;.getLength:()I // method@5d94 │ │ -49dbc0: 0a03 |0058: move-result v3 │ │ -49dbc2: 3d03 1900 |0059: if-lez v3, 0072 // +0019 │ │ -49dbc6: 2203 ac0a |005b: new-instance v3, Ljava/io/ByteArrayOutputStream; // type@0aac │ │ -49dbca: 7010 795b 0300 |005d: invoke-direct {v3}, Ljava/io/ByteArrayOutputStream;.:()V // method@5b79 │ │ -49dbd0: 6e10 935d 0400 |0060: invoke-virtual {v4}, Ljava/net/DatagramPacket;.getData:()[B // method@5d93 │ │ -49dbd6: 0c00 |0063: move-result-object v0 │ │ -49dbd8: 6e10 945d 0400 |0064: invoke-virtual {v4}, Ljava/net/DatagramPacket;.getLength:()I // method@5d94 │ │ -49dbde: 0a05 |0067: move-result v5 │ │ -49dbe0: 6e40 825b 0352 |0068: invoke-virtual {v3, v0, v2, v5}, Ljava/io/ByteArrayOutputStream;.write:([BII)V // method@5b82 │ │ -49dbe6: 0730 |006b: move-object v0, v3 │ │ -49dbe8: 2806 |006c: goto 0072 // +0006 │ │ -49dbea: 0d01 |006d: move-exception v1 │ │ -49dbec: 0730 |006e: move-object v0, v3 │ │ -49dbee: 286c |006f: goto 00db // +006c │ │ -49dbf0: 0730 |0070: move-object v0, v3 │ │ -49dbf2: 2870 |0071: goto 00e1 // +0070 │ │ -49dbf4: 6e10 945d 0400 |0072: invoke-virtual {v4}, Ljava/net/DatagramPacket;.getLength:()I // method@5d94 │ │ -49dbfa: 0a02 |0075: move-result v2 │ │ -49dbfc: 3b02 1600 |0076: if-gez v2, 008c // +0016 │ │ -49dc00: 5c61 ba69 |0078: iput-boolean v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.m_error:Z // field@69ba │ │ -49dc04: 5461 bb69 |007a: iget-object v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ -49dc08: 1a02 9c09 |007c: const-string v2, "A socket receive() error occurred." // string@099c │ │ -49dc0c: 6e20 b1d2 2100 |007e: invoke-virtual {v1, v2}, Lorg/purple/smokestack/UdpNeighbor;.setError:(Ljava/lang/String;)V // method@d2b1 │ │ -49dc12: 5461 bb69 |0081: iget-object v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ -49dc16: 6e10 a9d2 0100 |0083: invoke-virtual {v1}, Lorg/purple/smokestack/UdpNeighbor;.disconnect:()V // method@d2a9 │ │ -49dc1c: 3800 0500 |0086: if-eqz v0, 008b // +0005 │ │ -49dc20: 6e10 7b5b 0000 |0088: invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;.close:()V // method@5b7b │ │ -49dc26: 0e00 |008b: return-void │ │ -49dc28: 3902 0800 |008c: if-nez v2, 0094 // +0008 │ │ -49dc2c: 3800 0500 |008e: if-eqz v0, 0093 // +0005 │ │ -49dc30: 6e10 7b5b 0000 |0090: invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;.close:()V // method@5b7b │ │ -49dc36: 0e00 |0093: return-void │ │ -49dc38: 5461 bb69 |0094: iget-object v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ -49dc3c: 5411 bc69 |0096: iget-object v1, v1, Lorg/purple/smokestack/UdpNeighbor;.m_bytesRead:Ljava/util/concurrent/atomic/AtomicLong; // field@69bc │ │ -49dc40: 8122 |0098: int-to-long v2, v2 │ │ -49dc42: 6e30 2261 2103 |0099: invoke-virtual {v1, v2, v3}, Ljava/util/concurrent/atomic/AtomicLong;.getAndAdd:(J)J // method@6122 │ │ -49dc48: 5461 bb69 |009c: iget-object v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ -49dc4c: 5411 c369 |009e: iget-object v1, v1, Lorg/purple/smokestack/UdpNeighbor;.m_lastTimeRead:Ljava/util/concurrent/atomic/AtomicLong; // field@69c3 │ │ -49dc50: 7100 315d 0000 |00a0: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@5d31 │ │ -49dc56: 0b02 |00a3: move-result-wide v2 │ │ -49dc58: 6e30 2461 2103 |00a4: invoke-virtual {v1, v2, v3}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ -49dc5e: 3800 1e00 |00a7: if-eqz v0, 00c5 // +001e │ │ -49dc62: 5461 bb69 |00a9: iget-object v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ -49dc66: 5411 c869 |00ab: iget-object v1, v1, Lorg/purple/smokestack/UdpNeighbor;.m_stringBuffer:Ljava/lang/StringBuffer; // field@69c8 │ │ -49dc6a: 6e10 0c5d 0100 |00ad: invoke-virtual {v1}, Ljava/lang/StringBuffer;.length:()I // method@5d0c │ │ -49dc70: 0a01 |00b0: move-result v1 │ │ -49dc72: 1502 8000 |00b1: const/high16 v2, #int 8388608 // #80 │ │ -49dc76: 3521 1200 |00b3: if-ge v1, v2, 00c5 // +0012 │ │ -49dc7a: 5461 bb69 |00b5: iget-object v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ -49dc7e: 5411 c869 |00b7: iget-object v1, v1, Lorg/purple/smokestack/UdpNeighbor;.m_stringBuffer:Ljava/lang/StringBuffer; // field@69c8 │ │ -49dc82: 2202 fa0a |00b9: new-instance v2, Ljava/lang/String; // type@0afa │ │ -49dc86: 6e10 7f5b 0000 |00bb: invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;.toByteArray:()[B // method@5b7f │ │ -49dc8c: 0c03 |00be: move-result-object v3 │ │ -49dc8e: 7020 ce5c 3200 |00bf: invoke-direct {v2, v3}, Ljava/lang/String;.:([B)V // method@5cce │ │ -49dc94: 6e20 045d 2100 |00c2: invoke-virtual {v1, v2}, Ljava/lang/StringBuffer;.append:(Ljava/lang/String;)Ljava/lang/StringBuffer; // method@5d04 │ │ -49dc9a: 3800 1f00 |00c5: if-eqz v0, 00e4 // +001f │ │ -49dc9e: 6e10 7b5b 0000 |00c7: invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;.close:()V // method@5b7b │ │ -49dca4: 281a |00ca: goto 00e4 // +001a │ │ -49dca6: 5c61 ba69 |00cb: iput-boolean v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.m_error:Z // field@69ba │ │ -49dcaa: 5461 bb69 |00cd: iget-object v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ -49dcae: 1a02 9c09 |00cf: const-string v2, "A socket receive() error occurred." // string@099c │ │ -49dcb2: 6e20 b1d2 2100 |00d1: invoke-virtual {v1, v2}, Lorg/purple/smokestack/UdpNeighbor;.setError:(Ljava/lang/String;)V // method@d2b1 │ │ -49dcb8: 5461 bb69 |00d4: iget-object v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ -49dcbc: 6e10 a9d2 0100 |00d6: invoke-virtual {v1}, Lorg/purple/smokestack/UdpNeighbor;.disconnect:()V // method@d2a9 │ │ -49dcc2: 0e00 |00d9: return-void │ │ -49dcc4: 0d01 |00da: move-exception v1 │ │ -49dcc6: 3800 0500 |00db: if-eqz v0, 00e0 // +0005 │ │ -49dcca: 6e10 7b5b 0000 |00dd: invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;.close:()V // method@5b7b │ │ -49dcd0: 2701 |00e0: throw v1 │ │ -49dcd2: 3800 0300 |00e1: if-eqz v0, 00e4 // +0003 │ │ -49dcd6: 28e4 |00e3: goto 00c7 // -001c │ │ -49dcd8: 0e00 |00e4: return-void │ │ +49dafc: |[49dafc] org.purple.smokestack.UdpNeighbor$1.run:()V │ │ +49db0c: 1200 |0000: const/4 v0, #int 0 // #0 │ │ +49db0e: 5461 bb69 |0001: iget-object v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ +49db12: 6e10 a8d2 0100 |0003: invoke-virtual {v1}, Lorg/purple/smokestack/UdpNeighbor;.connected:()Z // method@d2a8 │ │ +49db18: 0a01 |0006: move-result v1 │ │ +49db1a: 3901 2100 |0007: if-nez v1, 0028 // +0021 │ │ +49db1e: 5461 bb69 |0009: iget-object v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ +49db22: 5411 bf69 |000b: iget-object v1, v1, Lorg/purple/smokestack/UdpNeighbor;.m_disconnected:Ljava/util/concurrent/atomic/AtomicBoolean; // field@69bf │ │ +49db26: 6e10 1861 0100 |000d: invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ +49db2c: 0a01 |0010: move-result v1 │ │ +49db2e: 3901 1700 |0011: if-nez v1, 0028 // +0017 │ │ +49db32: 5461 bb69 |0013: iget-object v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ +49db36: 5411 c469 |0015: iget-object v1, v1, Lorg/purple/smokestack/UdpNeighbor;.m_mutex:Ljava/lang/Object; // field@69c4 │ │ +49db3a: 1d01 |0017: monitor-enter v1 │ │ +49db3c: 5462 bb69 |0018: iget-object v2, v6, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ +49db40: 5422 c469 |001a: iget-object v2, v2, Lorg/purple/smokestack/UdpNeighbor;.m_mutex:Ljava/lang/Object; // field@69c4 │ │ +49db44: 1603 1027 |001c: const-wide/16 v3, #int 10000 // #2710 │ │ +49db48: 6e30 b75c 3204 |001e: invoke-virtual {v2, v3, v4}, Ljava/lang/Object;.wait:(J)V // method@5cb7 │ │ +49db4e: 2803 |0021: goto 0024 // +0003 │ │ +49db50: 0d02 |0022: move-exception v2 │ │ +49db52: 2803 |0023: goto 0026 // +0003 │ │ +49db54: 1e01 |0024: monitor-exit v1 │ │ +49db56: 2803 |0025: goto 0028 // +0003 │ │ +49db58: 1e01 |0026: monitor-exit v1 │ │ +49db5a: 2702 |0027: throw v2 │ │ +49db5c: 5461 bb69 |0028: iget-object v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ +49db60: 6e10 a8d2 0100 |002a: invoke-virtual {v1}, Lorg/purple/smokestack/UdpNeighbor;.connected:()Z // method@d2a8 │ │ +49db66: 0a01 |002d: move-result v1 │ │ +49db68: 3901 0300 |002e: if-nez v1, 0031 // +0003 │ │ +49db6c: 0e00 |0030: return-void │ │ +49db6e: 5561 ba69 |0031: iget-boolean v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.m_error:Z // field@69ba │ │ +49db72: 1202 |0033: const/4 v2, #int 0 // #0 │ │ +49db74: 3801 0e00 |0034: if-eqz v1, 0042 // +000e │ │ +49db78: 5461 bb69 |0036: iget-object v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ +49db7c: 6e10 a8d2 0100 |0038: invoke-virtual {v1}, Lorg/purple/smokestack/UdpNeighbor;.connected:()Z // method@d2a8 │ │ +49db82: 0a01 |003b: move-result v1 │ │ +49db84: 3801 0500 |003c: if-eqz v1, 0041 // +0005 │ │ +49db88: 5c62 ba69 |003e: iput-boolean v2, v6, Lorg/purple/smokestack/UdpNeighbor$1;.m_error:Z // field@69ba │ │ +49db8c: 2802 |0040: goto 0042 // +0002 │ │ +49db8e: 0e00 |0041: return-void │ │ +49db90: 1501 1000 |0042: const/high16 v1, #int 1048576 // #10 │ │ +49db94: 2313 0a1f |0044: new-array v3, v1, [B // type@1f0a │ │ +49db98: 2204 140b |0046: new-instance v4, Ljava/net/DatagramPacket; // type@0b14 │ │ +49db9c: 7030 915d 3401 |0048: invoke-direct {v4, v3, v1}, Ljava/net/DatagramPacket;.:([BI)V // method@5d91 │ │ +49dba2: 1211 |004b: const/4 v1, #int 1 // #1 │ │ +49dba4: 5463 bb69 |004c: iget-object v3, v6, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ +49dba8: 7110 a6d2 0300 |004e: invoke-static {v3}, Lorg/purple/smokestack/UdpNeighbor;.access$000:(Lorg/purple/smokestack/UdpNeighbor;)Ljava/net/DatagramSocket; // method@d2a6 │ │ +49dbae: 0c03 |0051: move-result-object v3 │ │ +49dbb0: 6e20 9b5d 4300 |0052: invoke-virtual {v3, v4}, Ljava/net/DatagramSocket;.receive:(Ljava/net/DatagramPacket;)V // method@5d9b │ │ +49dbb6: 6e10 945d 0400 |0055: invoke-virtual {v4}, Ljava/net/DatagramPacket;.getLength:()I // method@5d94 │ │ +49dbbc: 0a03 |0058: move-result v3 │ │ +49dbbe: 3d03 1900 |0059: if-lez v3, 0072 // +0019 │ │ +49dbc2: 2203 ac0a |005b: new-instance v3, Ljava/io/ByteArrayOutputStream; // type@0aac │ │ +49dbc6: 7010 795b 0300 |005d: invoke-direct {v3}, Ljava/io/ByteArrayOutputStream;.:()V // method@5b79 │ │ +49dbcc: 6e10 935d 0400 |0060: invoke-virtual {v4}, Ljava/net/DatagramPacket;.getData:()[B // method@5d93 │ │ +49dbd2: 0c00 |0063: move-result-object v0 │ │ +49dbd4: 6e10 945d 0400 |0064: invoke-virtual {v4}, Ljava/net/DatagramPacket;.getLength:()I // method@5d94 │ │ +49dbda: 0a05 |0067: move-result v5 │ │ +49dbdc: 6e40 825b 0352 |0068: invoke-virtual {v3, v0, v2, v5}, Ljava/io/ByteArrayOutputStream;.write:([BII)V // method@5b82 │ │ +49dbe2: 0730 |006b: move-object v0, v3 │ │ +49dbe4: 2806 |006c: goto 0072 // +0006 │ │ +49dbe6: 0d01 |006d: move-exception v1 │ │ +49dbe8: 0730 |006e: move-object v0, v3 │ │ +49dbea: 286c |006f: goto 00db // +006c │ │ +49dbec: 0730 |0070: move-object v0, v3 │ │ +49dbee: 2870 |0071: goto 00e1 // +0070 │ │ +49dbf0: 6e10 945d 0400 |0072: invoke-virtual {v4}, Ljava/net/DatagramPacket;.getLength:()I // method@5d94 │ │ +49dbf6: 0a02 |0075: move-result v2 │ │ +49dbf8: 3b02 1600 |0076: if-gez v2, 008c // +0016 │ │ +49dbfc: 5c61 ba69 |0078: iput-boolean v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.m_error:Z // field@69ba │ │ +49dc00: 5461 bb69 |007a: iget-object v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ +49dc04: 1a02 9c09 |007c: const-string v2, "A socket receive() error occurred." // string@099c │ │ +49dc08: 6e20 b1d2 2100 |007e: invoke-virtual {v1, v2}, Lorg/purple/smokestack/UdpNeighbor;.setError:(Ljava/lang/String;)V // method@d2b1 │ │ +49dc0e: 5461 bb69 |0081: iget-object v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ +49dc12: 6e10 a9d2 0100 |0083: invoke-virtual {v1}, Lorg/purple/smokestack/UdpNeighbor;.disconnect:()V // method@d2a9 │ │ +49dc18: 3800 0500 |0086: if-eqz v0, 008b // +0005 │ │ +49dc1c: 6e10 7b5b 0000 |0088: invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;.close:()V // method@5b7b │ │ +49dc22: 0e00 |008b: return-void │ │ +49dc24: 3902 0800 |008c: if-nez v2, 0094 // +0008 │ │ +49dc28: 3800 0500 |008e: if-eqz v0, 0093 // +0005 │ │ +49dc2c: 6e10 7b5b 0000 |0090: invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;.close:()V // method@5b7b │ │ +49dc32: 0e00 |0093: return-void │ │ +49dc34: 5461 bb69 |0094: iget-object v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ +49dc38: 5411 bc69 |0096: iget-object v1, v1, Lorg/purple/smokestack/UdpNeighbor;.m_bytesRead:Ljava/util/concurrent/atomic/AtomicLong; // field@69bc │ │ +49dc3c: 8122 |0098: int-to-long v2, v2 │ │ +49dc3e: 6e30 2261 2103 |0099: invoke-virtual {v1, v2, v3}, Ljava/util/concurrent/atomic/AtomicLong;.getAndAdd:(J)J // method@6122 │ │ +49dc44: 5461 bb69 |009c: iget-object v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ +49dc48: 5411 c369 |009e: iget-object v1, v1, Lorg/purple/smokestack/UdpNeighbor;.m_lastTimeRead:Ljava/util/concurrent/atomic/AtomicLong; // field@69c3 │ │ +49dc4c: 7100 315d 0000 |00a0: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@5d31 │ │ +49dc52: 0b02 |00a3: move-result-wide v2 │ │ +49dc54: 6e30 2461 2103 |00a4: invoke-virtual {v1, v2, v3}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ +49dc5a: 3800 1e00 |00a7: if-eqz v0, 00c5 // +001e │ │ +49dc5e: 5461 bb69 |00a9: iget-object v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ +49dc62: 5411 c869 |00ab: iget-object v1, v1, Lorg/purple/smokestack/UdpNeighbor;.m_stringBuffer:Ljava/lang/StringBuffer; // field@69c8 │ │ +49dc66: 6e10 0c5d 0100 |00ad: invoke-virtual {v1}, Ljava/lang/StringBuffer;.length:()I // method@5d0c │ │ +49dc6c: 0a01 |00b0: move-result v1 │ │ +49dc6e: 1502 8000 |00b1: const/high16 v2, #int 8388608 // #80 │ │ +49dc72: 3521 1200 |00b3: if-ge v1, v2, 00c5 // +0012 │ │ +49dc76: 5461 bb69 |00b5: iget-object v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ +49dc7a: 5411 c869 |00b7: iget-object v1, v1, Lorg/purple/smokestack/UdpNeighbor;.m_stringBuffer:Ljava/lang/StringBuffer; // field@69c8 │ │ +49dc7e: 2202 fa0a |00b9: new-instance v2, Ljava/lang/String; // type@0afa │ │ +49dc82: 6e10 7f5b 0000 |00bb: invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;.toByteArray:()[B // method@5b7f │ │ +49dc88: 0c03 |00be: move-result-object v3 │ │ +49dc8a: 7020 ce5c 3200 |00bf: invoke-direct {v2, v3}, Ljava/lang/String;.:([B)V // method@5cce │ │ +49dc90: 6e20 045d 2100 |00c2: invoke-virtual {v1, v2}, Ljava/lang/StringBuffer;.append:(Ljava/lang/String;)Ljava/lang/StringBuffer; // method@5d04 │ │ +49dc96: 3800 1f00 |00c5: if-eqz v0, 00e4 // +001f │ │ +49dc9a: 6e10 7b5b 0000 |00c7: invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;.close:()V // method@5b7b │ │ +49dca0: 281a |00ca: goto 00e4 // +001a │ │ +49dca2: 5c61 ba69 |00cb: iput-boolean v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.m_error:Z // field@69ba │ │ +49dca6: 5461 bb69 |00cd: iget-object v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ +49dcaa: 1a02 9c09 |00cf: const-string v2, "A socket receive() error occurred." // string@099c │ │ +49dcae: 6e20 b1d2 2100 |00d1: invoke-virtual {v1, v2}, Lorg/purple/smokestack/UdpNeighbor;.setError:(Ljava/lang/String;)V // method@d2b1 │ │ +49dcb4: 5461 bb69 |00d4: iget-object v1, v6, Lorg/purple/smokestack/UdpNeighbor$1;.this$0:Lorg/purple/smokestack/UdpNeighbor; // field@69bb │ │ +49dcb8: 6e10 a9d2 0100 |00d6: invoke-virtual {v1}, Lorg/purple/smokestack/UdpNeighbor;.disconnect:()V // method@d2a9 │ │ +49dcbe: 0e00 |00d9: return-void │ │ +49dcc0: 0d01 |00da: move-exception v1 │ │ +49dcc2: 3800 0500 |00db: if-eqz v0, 00e0 // +0005 │ │ +49dcc6: 6e10 7b5b 0000 |00dd: invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;.close:()V // method@5b7b │ │ +49dccc: 2701 |00e0: throw v1 │ │ +49dcce: 3800 0300 |00e1: if-eqz v0, 00e4 // +0003 │ │ +49dcd2: 28e4 |00e3: goto 00c7 // -001c │ │ +49dcd4: 0e00 |00e4: return-void │ │ catches : 14 │ │ 0x0001 - 0x0018 │ │ Ljava/lang/Exception; -> 0x00e1 │ │ -> 0x00da │ │ 0x0018 - 0x0021 │ │ Ljava/lang/Exception; -> 0x0024 │ │ -> 0x0022 │ │ @@ -1268353,18 +1268352,18 @@ │ │ type : '(Lorg/purple/smokestack/Settings;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 1 │ │ insns size : 6 16-bit code units │ │ -495fe4: |[495fe4] org.purple.smokestack.Settings$34.:(Lorg/purple/smokestack/Settings;)V │ │ -495ff4: 5b01 1069 |0000: iput-object v1, v0, Lorg/purple/smokestack/Settings$34;.this$0:Lorg/purple/smokestack/Settings; // field@6910 │ │ -495ff8: 7010 7e4c 0000 |0002: invoke-direct {v0}, Landroid/support/v7/widget/RecyclerView$AdapterDataObserver;.:()V // method@4c7e │ │ -495ffe: 0e00 |0005: return-void │ │ +495fe0: |[495fe0] org.purple.smokestack.Settings$34.:(Lorg/purple/smokestack/Settings;)V │ │ +495ff0: 5b01 1069 |0000: iput-object v1, v0, Lorg/purple/smokestack/Settings$34;.this$0:Lorg/purple/smokestack/Settings; // field@6910 │ │ +495ff4: 7010 7e4c 0000 |0002: invoke-direct {v0}, Landroid/support/v7/widget/RecyclerView$AdapterDataObserver;.:()V // method@4c7e │ │ +495ffa: 0e00 |0005: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=2627 │ │ locals : │ │ 0x0000 - 0x0006 reg=0 this Lorg/purple/smokestack/Settings$34; │ │ 0x0000 - 0x0006 reg=1 (null) Lorg/purple/smokestack/Settings; │ │ │ │ @@ -1268374,24 +1268373,24 @@ │ │ type : '(II)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 5 │ │ ins : 3 │ │ outs : 4 │ │ insns size : 17 16-bit code units │ │ -496000: |[496000] org.purple.smokestack.Settings$34.onItemRangeInserted:(II)V │ │ -496010: 5424 1069 |0000: iget-object v4, v2, Lorg/purple/smokestack/Settings$34;.this$0:Lorg/purple/smokestack/Settings; // field@6910 │ │ -496014: 7110 ecd1 0400 |0002: invoke-static {v4}, Lorg/purple/smokestack/Settings;.access$2300:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager; // method@d1ec │ │ -49601a: 0c04 |0005: move-result-object v4 │ │ -49601c: 5420 1069 |0006: iget-object v0, v2, Lorg/purple/smokestack/Settings$34;.this$0:Lorg/purple/smokestack/Settings; // field@6910 │ │ -496020: 7110 ebd1 0000 |0008: invoke-static {v0}, Lorg/purple/smokestack/Settings;.access$2200:(Lorg/purple/smokestack/Settings;)Landroid/support/v7/widget/RecyclerView; // method@d1eb │ │ -496026: 0c00 |000b: move-result-object v0 │ │ -496028: 1201 |000c: const/4 v1, #int 0 // #0 │ │ -49602a: 6e40 d3d1 0431 |000d: invoke-virtual {v4, v0, v1, v3}, Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager;.smoothScrollToPosition:(Landroid/support/v7/widget/RecyclerView;Landroid/support/v7/widget/RecyclerView$State;I)V // method@d1d3 │ │ -496030: 0e00 |0010: return-void │ │ +495ffc: |[495ffc] org.purple.smokestack.Settings$34.onItemRangeInserted:(II)V │ │ +49600c: 5424 1069 |0000: iget-object v4, v2, Lorg/purple/smokestack/Settings$34;.this$0:Lorg/purple/smokestack/Settings; // field@6910 │ │ +496010: 7110 ecd1 0400 |0002: invoke-static {v4}, Lorg/purple/smokestack/Settings;.access$2300:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager; // method@d1ec │ │ +496016: 0c04 |0005: move-result-object v4 │ │ +496018: 5420 1069 |0006: iget-object v0, v2, Lorg/purple/smokestack/Settings$34;.this$0:Lorg/purple/smokestack/Settings; // field@6910 │ │ +49601c: 7110 ebd1 0000 |0008: invoke-static {v0}, Lorg/purple/smokestack/Settings;.access$2200:(Lorg/purple/smokestack/Settings;)Landroid/support/v7/widget/RecyclerView; // method@d1eb │ │ +496022: 0c00 |000b: move-result-object v0 │ │ +496024: 1201 |000c: const/4 v1, #int 0 // #0 │ │ +496026: 6e40 d3d1 0431 |000d: invoke-virtual {v4, v0, v1, v3}, Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager;.smoothScrollToPosition:(Landroid/support/v7/widget/RecyclerView;Landroid/support/v7/widget/RecyclerView$State;I)V // method@d1d3 │ │ +49602c: 0e00 |0010: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=2632 │ │ 0x0008 line=2633 │ │ locals : │ │ 0x0000 - 0x0011 reg=2 this Lorg/purple/smokestack/Settings$34; │ │ 0x0000 - 0x0011 reg=3 (null) I │ │ @@ -1268402,25 +1268401,25 @@ │ │ type : '(II)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 5 │ │ ins : 3 │ │ outs : 4 │ │ insns size : 18 16-bit code units │ │ -496034: |[496034] org.purple.smokestack.Settings$34.onItemRangeRemoved:(II)V │ │ -496044: 5420 1069 |0000: iget-object v0, v2, Lorg/purple/smokestack/Settings$34;.this$0:Lorg/purple/smokestack/Settings; // field@6910 │ │ -496048: 7110 ecd1 0000 |0002: invoke-static {v0}, Lorg/purple/smokestack/Settings;.access$2300:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager; // method@d1ec │ │ -49604e: 0c00 |0005: move-result-object v0 │ │ -496050: 5421 1069 |0006: iget-object v1, v2, Lorg/purple/smokestack/Settings$34;.this$0:Lorg/purple/smokestack/Settings; // field@6910 │ │ -496054: 7110 ebd1 0100 |0008: invoke-static {v1}, Lorg/purple/smokestack/Settings;.access$2200:(Lorg/purple/smokestack/Settings;)Landroid/support/v7/widget/RecyclerView; // method@d1eb │ │ -49605a: 0c01 |000b: move-result-object v1 │ │ -49605c: b143 |000c: sub-int/2addr v3, v4 │ │ -49605e: 1204 |000d: const/4 v4, #int 0 // #0 │ │ -496060: 6e40 d3d1 1034 |000e: invoke-virtual {v0, v1, v4, v3}, Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager;.smoothScrollToPosition:(Landroid/support/v7/widget/RecyclerView;Landroid/support/v7/widget/RecyclerView$State;I)V // method@d1d3 │ │ -496066: 0e00 |0011: return-void │ │ +496030: |[496030] org.purple.smokestack.Settings$34.onItemRangeRemoved:(II)V │ │ +496040: 5420 1069 |0000: iget-object v0, v2, Lorg/purple/smokestack/Settings$34;.this$0:Lorg/purple/smokestack/Settings; // field@6910 │ │ +496044: 7110 ecd1 0000 |0002: invoke-static {v0}, Lorg/purple/smokestack/Settings;.access$2300:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager; // method@d1ec │ │ +49604a: 0c00 |0005: move-result-object v0 │ │ +49604c: 5421 1069 |0006: iget-object v1, v2, Lorg/purple/smokestack/Settings$34;.this$0:Lorg/purple/smokestack/Settings; // field@6910 │ │ +496050: 7110 ebd1 0100 |0008: invoke-static {v1}, Lorg/purple/smokestack/Settings;.access$2200:(Lorg/purple/smokestack/Settings;)Landroid/support/v7/widget/RecyclerView; // method@d1eb │ │ +496056: 0c01 |000b: move-result-object v1 │ │ +496058: b143 |000c: sub-int/2addr v3, v4 │ │ +49605a: 1204 |000d: const/4 v4, #int 0 // #0 │ │ +49605c: 6e40 d3d1 1034 |000e: invoke-virtual {v0, v1, v4, v3}, Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager;.smoothScrollToPosition:(Landroid/support/v7/widget/RecyclerView;Landroid/support/v7/widget/RecyclerView$State;I)V // method@d1d3 │ │ +496062: 0e00 |0011: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=2640 │ │ 0x0008 line=2641 │ │ locals : │ │ 0x0000 - 0x0012 reg=2 this Lorg/purple/smokestack/Settings$34; │ │ 0x0000 - 0x0012 reg=3 (null) I │ │ @@ -1268506,108 +1268505,108 @@ │ │ type : '(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 19 │ │ ins : 9 │ │ outs : 9 │ │ insns size : 171 16-bit code units │ │ -49cb54: |[49cb54] org.purple.smokestack.TcpNeighbor.:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V │ │ -49cb64: 07a9 |0000: move-object v9, v10 │ │ -49cb66: 1a04 5c53 |0001: const-string v4, "TCP" // string@535c │ │ -49cb6a: 1206 |0003: const/4 v6, #int 0 // #0 │ │ -49cb6c: 1217 |0004: const/4 v7, #int 1 // #1 │ │ -49cb6e: 07a0 |0005: move-object v0, v10 │ │ -49cb70: 07e1 |0006: move-object v1, v14 │ │ -49cb72: 07f2 |0007: move-object v2, v15 │ │ -49cb74: 0803 1000 |0008: move-object/from16 v3, v16 │ │ -49cb78: 0805 1100 |000a: move-object/from16 v5, v17 │ │ -49cb7c: 0208 1200 |000c: move/from16 v8, v18 │ │ -49cb80: 7609 4cd1 0000 |000e: invoke-direct/range {v0, v1, v2, v3, v4, v5, v6, v7, v8}, Lorg/purple/smokestack/Neighbor;.:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZI)V // method@d14c │ │ -49cb86: 1200 |0011: const/4 v0, #int 0 // #0 │ │ -49cb88: 5b90 8f69 |0012: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_handshakeCompleted:Ljava/util/concurrent/atomic/AtomicBoolean; // field@698f │ │ -49cb8c: 5b90 9369 |0014: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_isValidCertificate:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6993 │ │ -49cb90: 5b90 9a69 |0016: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyInetSocketAddress:Ljava/net/InetSocketAddress; // field@699a │ │ -49cb94: 5b90 a269 |0018: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49cb98: 5b90 a169 |001a: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_requestAuthenticationScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69a1 │ │ -49cb9c: 5b90 9969 |001c: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_protocols:[Ljava/lang/String; // field@6999 │ │ -49cba0: 1a01 0000 |001e: const-string v1, "" // string@0000 │ │ -49cba4: 5b91 9b69 |0020: iput-object v1, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyIpAddress:Ljava/lang/String; // field@699b │ │ -49cba8: 5b91 9d69 |0022: iput-object v1, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyType:Ljava/lang/String; // field@699d │ │ -49cbac: 5b90 a569 |0024: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_trustManagers:[Ljavax/net/ssl/TrustManager; // field@69a5 │ │ -49cbb0: 12f1 |0026: const/4 v1, #int -1 // #ff │ │ -49cbb2: 5991 9c69 |0027: iput v1, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyPort:I // field@699c │ │ -49cbb6: 2202 f30b |0029: new-instance v2, Ljava/util/concurrent/atomic/AtomicBoolean; // type@0bf3 │ │ -49cbba: 1203 |002b: const/4 v3, #int 0 // #0 │ │ -49cbbc: 7020 1661 3200 |002c: invoke-direct {v2, v3}, Ljava/util/concurrent/atomic/AtomicBoolean;.:(Z)V // method@6116 │ │ -49cbc2: 5b92 8f69 |002f: iput-object v2, v9, Lorg/purple/smokestack/TcpNeighbor;.m_handshakeCompleted:Ljava/util/concurrent/atomic/AtomicBoolean; // field@698f │ │ -49cbc6: 2202 f30b |0031: new-instance v2, Ljava/util/concurrent/atomic/AtomicBoolean; // type@0bf3 │ │ -49cbca: 7020 1661 3200 |0033: invoke-direct {v2, v3}, Ljava/util/concurrent/atomic/AtomicBoolean;.:(Z)V // method@6116 │ │ -49cbd0: 5b92 9369 |0036: iput-object v2, v9, Lorg/purple/smokestack/TcpNeighbor;.m_isValidCertificate:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6993 │ │ -49cbd4: 6202 6a00 |0038: sget-object v2, Landroid/os/Build$VERSION;.RELEASE:Ljava/lang/String; // field@006a │ │ -49cbd8: 1a04 d506 |003a: const-string v4, "10" // string@06d5 │ │ -49cbdc: 6e20 ee5c 4200 |003c: invoke-virtual {v2, v4}, Ljava/lang/String;.startsWith:(Ljava/lang/String;)Z // method@5cee │ │ -49cbe2: 0a02 |003f: move-result v2 │ │ -49cbe4: 3802 0800 |0040: if-eqz v2, 0048 // +0008 │ │ -49cbe8: 6202 6b69 |0042: sget-object v2, Lorg/purple/smokestack/TcpListener;.TLS_NEW:[Ljava/lang/String; // field@696b │ │ -49cbec: 5b92 9969 |0044: iput-object v2, v9, Lorg/purple/smokestack/TcpNeighbor;.m_protocols:[Ljava/lang/String; // field@6999 │ │ -49cbf0: 07b2 |0046: move-object v2, v11 │ │ -49cbf2: 2811 |0047: goto 0058 // +0011 │ │ -49cbf4: 6002 6b00 |0048: sget v2, Landroid/os/Build$VERSION;.SDK_INT:I // field@006b │ │ -49cbf8: 1304 1500 |004a: const/16 v4, #int 21 // #15 │ │ -49cbfc: 3442 0700 |004c: if-lt v2, v4, 0053 // +0007 │ │ -49cc00: 6202 6c69 |004e: sget-object v2, Lorg/purple/smokestack/TcpListener;.TLS_V1_V2:[Ljava/lang/String; // field@696c │ │ -49cc04: 5b92 9969 |0050: iput-object v2, v9, Lorg/purple/smokestack/TcpNeighbor;.m_protocols:[Ljava/lang/String; // field@6999 │ │ -49cc08: 28f4 |0052: goto 0046 // -000c │ │ -49cc0a: 6202 6a69 |0053: sget-object v2, Lorg/purple/smokestack/TcpListener;.TLS_LEGACY:[Ljava/lang/String; // field@696a │ │ -49cc0e: 5b92 9969 |0055: iput-object v2, v9, Lorg/purple/smokestack/TcpNeighbor;.m_protocols:[Ljava/lang/String; // field@6999 │ │ -49cc12: 28ef |0057: goto 0046 // -0011 │ │ -49cc14: 5b92 9b69 |0058: iput-object v2, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyIpAddress:Ljava/lang/String; // field@699b │ │ -49cc18: 7110 6f5c 0c00 |005a: invoke-static {v12}, Ljava/lang/Integer;.parseInt:(Ljava/lang/String;)I // method@5c6f │ │ -49cc1e: 0a02 |005d: move-result v2 │ │ -49cc20: 5992 9c69 |005e: iput v2, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyPort:I // field@699c │ │ -49cc24: 2803 |0060: goto 0063 // +0003 │ │ -49cc26: 5991 9c69 |0061: iput v1, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyPort:I // field@699c │ │ -49cc2a: 07d2 |0063: move-object v2, v13 │ │ -49cc2c: 5b92 9d69 |0064: iput-object v2, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyType:Ljava/lang/String; // field@699d │ │ -49cc30: 5492 9b69 |0066: iget-object v2, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyIpAddress:Ljava/lang/String; // field@699b │ │ -49cc34: 6e10 e65c 0200 |0068: invoke-virtual {v2}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ -49cc3a: 0a02 |006b: move-result v2 │ │ -49cc3c: 3902 1c00 |006c: if-nez v2, 0088 // +001c │ │ -49cc40: 5292 9c69 |006e: iget v2, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyPort:I // field@699c │ │ -49cc44: 3212 1800 |0070: if-eq v2, v1, 0088 // +0018 │ │ -49cc48: 5491 9d69 |0072: iget-object v1, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyType:Ljava/lang/String; // field@699d │ │ -49cc4c: 6e10 e65c 0100 |0074: invoke-virtual {v1}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ -49cc52: 0a01 |0077: move-result v1 │ │ -49cc54: 3901 1000 |0078: if-nez v1, 0088 // +0010 │ │ -49cc58: 2201 1a0b |007a: new-instance v1, Ljava/net/InetSocketAddress; // type@0b1a │ │ -49cc5c: 5492 9b69 |007c: iget-object v2, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyIpAddress:Ljava/lang/String; // field@699b │ │ -49cc60: 5294 9c69 |007e: iget v4, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyPort:I // field@699c │ │ -49cc64: 7030 b25d 2104 |0080: invoke-direct {v1, v2, v4}, Ljava/net/InetSocketAddress;.:(Ljava/lang/String;I)V // method@5db2 │ │ -49cc6a: 5b91 9a69 |0083: iput-object v1, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyInetSocketAddress:Ljava/net/InetSocketAddress; // field@699a │ │ -49cc6e: 2803 |0085: goto 0088 // +0003 │ │ -49cc70: 5b90 9a69 |0086: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyInetSocketAddress:Ljava/net/InetSocketAddress; // field@699a │ │ -49cc74: 5490 9f69 |0088: iget-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@699f │ │ -49cc78: 2201 fc1e |008a: new-instance v1, Lorg/purple/smokestack/TcpNeighbor$4; // type@1efc │ │ -49cc7c: 7020 71d2 a100 |008c: invoke-direct {v1, v10}, Lorg/purple/smokestack/TcpNeighbor$4;.:(Lorg/purple/smokestack/TcpNeighbor;)V // method@d271 │ │ -49cc82: 1604 0000 |008f: const-wide/16 v4, #int 0 // #0 │ │ -49cc86: 1606 6400 |0091: const-wide/16 v6, #int 100 // #64 │ │ -49cc8a: 6202 122d |0093: sget-object v2, Ljava/util/concurrent/TimeUnit;.MILLISECONDS:Ljava/util/concurrent/TimeUnit; // field@2d12 │ │ -49cc8e: 070b |0095: move-object v11, v0 │ │ -49cc90: 071c |0096: move-object v12, v1 │ │ -49cc92: 044d |0097: move-wide v13, v4 │ │ -49cc94: 046f |0098: move-wide v15, v6 │ │ -49cc96: 0811 0200 |0099: move-object/from16 v17, v2 │ │ -49cc9a: 7807 0e61 0b00 |009b: invoke-interface/range {v11, v12, v13, v14, v15, v16, v17}, Ljava/util/concurrent/ScheduledExecutorService;.scheduleAtFixedRate:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; // method@610e │ │ -49cca0: 1210 |009e: const/4 v0, #int 1 // #1 │ │ -49cca2: 2300 821f |009f: new-array v0, v0, [Ljavax/net/ssl/TrustManager; // type@1f82 │ │ -49cca6: 2201 fd1e |00a1: new-instance v1, Lorg/purple/smokestack/TcpNeighbor$5; // type@1efd │ │ -49ccaa: 7020 73d2 a100 |00a3: invoke-direct {v1, v10}, Lorg/purple/smokestack/TcpNeighbor$5;.:(Lorg/purple/smokestack/TcpNeighbor;)V // method@d273 │ │ -49ccb0: 4d01 0003 |00a6: aput-object v1, v0, v3 │ │ -49ccb4: 5b90 a569 |00a8: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_trustManagers:[Ljavax/net/ssl/TrustManager; // field@69a5 │ │ -49ccb8: 0e00 |00aa: return-void │ │ +49cb50: |[49cb50] org.purple.smokestack.TcpNeighbor.:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V │ │ +49cb60: 07a9 |0000: move-object v9, v10 │ │ +49cb62: 1a04 5c53 |0001: const-string v4, "TCP" // string@535c │ │ +49cb66: 1206 |0003: const/4 v6, #int 0 // #0 │ │ +49cb68: 1217 |0004: const/4 v7, #int 1 // #1 │ │ +49cb6a: 07a0 |0005: move-object v0, v10 │ │ +49cb6c: 07e1 |0006: move-object v1, v14 │ │ +49cb6e: 07f2 |0007: move-object v2, v15 │ │ +49cb70: 0803 1000 |0008: move-object/from16 v3, v16 │ │ +49cb74: 0805 1100 |000a: move-object/from16 v5, v17 │ │ +49cb78: 0208 1200 |000c: move/from16 v8, v18 │ │ +49cb7c: 7609 4cd1 0000 |000e: invoke-direct/range {v0, v1, v2, v3, v4, v5, v6, v7, v8}, Lorg/purple/smokestack/Neighbor;.:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZI)V // method@d14c │ │ +49cb82: 1200 |0011: const/4 v0, #int 0 // #0 │ │ +49cb84: 5b90 8f69 |0012: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_handshakeCompleted:Ljava/util/concurrent/atomic/AtomicBoolean; // field@698f │ │ +49cb88: 5b90 9369 |0014: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_isValidCertificate:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6993 │ │ +49cb8c: 5b90 9a69 |0016: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyInetSocketAddress:Ljava/net/InetSocketAddress; // field@699a │ │ +49cb90: 5b90 a269 |0018: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49cb94: 5b90 a169 |001a: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_requestAuthenticationScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69a1 │ │ +49cb98: 5b90 9969 |001c: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_protocols:[Ljava/lang/String; // field@6999 │ │ +49cb9c: 1a01 0000 |001e: const-string v1, "" // string@0000 │ │ +49cba0: 5b91 9b69 |0020: iput-object v1, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyIpAddress:Ljava/lang/String; // field@699b │ │ +49cba4: 5b91 9d69 |0022: iput-object v1, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyType:Ljava/lang/String; // field@699d │ │ +49cba8: 5b90 a569 |0024: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_trustManagers:[Ljavax/net/ssl/TrustManager; // field@69a5 │ │ +49cbac: 12f1 |0026: const/4 v1, #int -1 // #ff │ │ +49cbae: 5991 9c69 |0027: iput v1, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyPort:I // field@699c │ │ +49cbb2: 2202 f30b |0029: new-instance v2, Ljava/util/concurrent/atomic/AtomicBoolean; // type@0bf3 │ │ +49cbb6: 1203 |002b: const/4 v3, #int 0 // #0 │ │ +49cbb8: 7020 1661 3200 |002c: invoke-direct {v2, v3}, Ljava/util/concurrent/atomic/AtomicBoolean;.:(Z)V // method@6116 │ │ +49cbbe: 5b92 8f69 |002f: iput-object v2, v9, Lorg/purple/smokestack/TcpNeighbor;.m_handshakeCompleted:Ljava/util/concurrent/atomic/AtomicBoolean; // field@698f │ │ +49cbc2: 2202 f30b |0031: new-instance v2, Ljava/util/concurrent/atomic/AtomicBoolean; // type@0bf3 │ │ +49cbc6: 7020 1661 3200 |0033: invoke-direct {v2, v3}, Ljava/util/concurrent/atomic/AtomicBoolean;.:(Z)V // method@6116 │ │ +49cbcc: 5b92 9369 |0036: iput-object v2, v9, Lorg/purple/smokestack/TcpNeighbor;.m_isValidCertificate:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6993 │ │ +49cbd0: 6202 6a00 |0038: sget-object v2, Landroid/os/Build$VERSION;.RELEASE:Ljava/lang/String; // field@006a │ │ +49cbd4: 1a04 d506 |003a: const-string v4, "10" // string@06d5 │ │ +49cbd8: 6e20 ee5c 4200 |003c: invoke-virtual {v2, v4}, Ljava/lang/String;.startsWith:(Ljava/lang/String;)Z // method@5cee │ │ +49cbde: 0a02 |003f: move-result v2 │ │ +49cbe0: 3802 0800 |0040: if-eqz v2, 0048 // +0008 │ │ +49cbe4: 6202 6b69 |0042: sget-object v2, Lorg/purple/smokestack/TcpListener;.TLS_NEW:[Ljava/lang/String; // field@696b │ │ +49cbe8: 5b92 9969 |0044: iput-object v2, v9, Lorg/purple/smokestack/TcpNeighbor;.m_protocols:[Ljava/lang/String; // field@6999 │ │ +49cbec: 07b2 |0046: move-object v2, v11 │ │ +49cbee: 2811 |0047: goto 0058 // +0011 │ │ +49cbf0: 6002 6b00 |0048: sget v2, Landroid/os/Build$VERSION;.SDK_INT:I // field@006b │ │ +49cbf4: 1304 1500 |004a: const/16 v4, #int 21 // #15 │ │ +49cbf8: 3442 0700 |004c: if-lt v2, v4, 0053 // +0007 │ │ +49cbfc: 6202 6c69 |004e: sget-object v2, Lorg/purple/smokestack/TcpListener;.TLS_V1_V2:[Ljava/lang/String; // field@696c │ │ +49cc00: 5b92 9969 |0050: iput-object v2, v9, Lorg/purple/smokestack/TcpNeighbor;.m_protocols:[Ljava/lang/String; // field@6999 │ │ +49cc04: 28f4 |0052: goto 0046 // -000c │ │ +49cc06: 6202 6a69 |0053: sget-object v2, Lorg/purple/smokestack/TcpListener;.TLS_LEGACY:[Ljava/lang/String; // field@696a │ │ +49cc0a: 5b92 9969 |0055: iput-object v2, v9, Lorg/purple/smokestack/TcpNeighbor;.m_protocols:[Ljava/lang/String; // field@6999 │ │ +49cc0e: 28ef |0057: goto 0046 // -0011 │ │ +49cc10: 5b92 9b69 |0058: iput-object v2, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyIpAddress:Ljava/lang/String; // field@699b │ │ +49cc14: 7110 6f5c 0c00 |005a: invoke-static {v12}, Ljava/lang/Integer;.parseInt:(Ljava/lang/String;)I // method@5c6f │ │ +49cc1a: 0a02 |005d: move-result v2 │ │ +49cc1c: 5992 9c69 |005e: iput v2, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyPort:I // field@699c │ │ +49cc20: 2803 |0060: goto 0063 // +0003 │ │ +49cc22: 5991 9c69 |0061: iput v1, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyPort:I // field@699c │ │ +49cc26: 07d2 |0063: move-object v2, v13 │ │ +49cc28: 5b92 9d69 |0064: iput-object v2, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyType:Ljava/lang/String; // field@699d │ │ +49cc2c: 5492 9b69 |0066: iget-object v2, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyIpAddress:Ljava/lang/String; // field@699b │ │ +49cc30: 6e10 e65c 0200 |0068: invoke-virtual {v2}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ +49cc36: 0a02 |006b: move-result v2 │ │ +49cc38: 3902 1c00 |006c: if-nez v2, 0088 // +001c │ │ +49cc3c: 5292 9c69 |006e: iget v2, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyPort:I // field@699c │ │ +49cc40: 3212 1800 |0070: if-eq v2, v1, 0088 // +0018 │ │ +49cc44: 5491 9d69 |0072: iget-object v1, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyType:Ljava/lang/String; // field@699d │ │ +49cc48: 6e10 e65c 0100 |0074: invoke-virtual {v1}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ +49cc4e: 0a01 |0077: move-result v1 │ │ +49cc50: 3901 1000 |0078: if-nez v1, 0088 // +0010 │ │ +49cc54: 2201 1a0b |007a: new-instance v1, Ljava/net/InetSocketAddress; // type@0b1a │ │ +49cc58: 5492 9b69 |007c: iget-object v2, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyIpAddress:Ljava/lang/String; // field@699b │ │ +49cc5c: 5294 9c69 |007e: iget v4, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyPort:I // field@699c │ │ +49cc60: 7030 b25d 2104 |0080: invoke-direct {v1, v2, v4}, Ljava/net/InetSocketAddress;.:(Ljava/lang/String;I)V // method@5db2 │ │ +49cc66: 5b91 9a69 |0083: iput-object v1, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyInetSocketAddress:Ljava/net/InetSocketAddress; // field@699a │ │ +49cc6a: 2803 |0085: goto 0088 // +0003 │ │ +49cc6c: 5b90 9a69 |0086: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyInetSocketAddress:Ljava/net/InetSocketAddress; // field@699a │ │ +49cc70: 5490 9f69 |0088: iget-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@699f │ │ +49cc74: 2201 fc1e |008a: new-instance v1, Lorg/purple/smokestack/TcpNeighbor$4; // type@1efc │ │ +49cc78: 7020 71d2 a100 |008c: invoke-direct {v1, v10}, Lorg/purple/smokestack/TcpNeighbor$4;.:(Lorg/purple/smokestack/TcpNeighbor;)V // method@d271 │ │ +49cc7e: 1604 0000 |008f: const-wide/16 v4, #int 0 // #0 │ │ +49cc82: 1606 6400 |0091: const-wide/16 v6, #int 100 // #64 │ │ +49cc86: 6202 122d |0093: sget-object v2, Ljava/util/concurrent/TimeUnit;.MILLISECONDS:Ljava/util/concurrent/TimeUnit; // field@2d12 │ │ +49cc8a: 070b |0095: move-object v11, v0 │ │ +49cc8c: 071c |0096: move-object v12, v1 │ │ +49cc8e: 044d |0097: move-wide v13, v4 │ │ +49cc90: 046f |0098: move-wide v15, v6 │ │ +49cc92: 0811 0200 |0099: move-object/from16 v17, v2 │ │ +49cc96: 7807 0e61 0b00 |009b: invoke-interface/range {v11, v12, v13, v14, v15, v16, v17}, Ljava/util/concurrent/ScheduledExecutorService;.scheduleAtFixedRate:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; // method@610e │ │ +49cc9c: 1210 |009e: const/4 v0, #int 1 // #1 │ │ +49cc9e: 2300 821f |009f: new-array v0, v0, [Ljavax/net/ssl/TrustManager; // type@1f82 │ │ +49cca2: 2201 fd1e |00a1: new-instance v1, Lorg/purple/smokestack/TcpNeighbor$5; // type@1efd │ │ +49cca6: 7020 73d2 a100 |00a3: invoke-direct {v1, v10}, Lorg/purple/smokestack/TcpNeighbor$5;.:(Lorg/purple/smokestack/TcpNeighbor;)V // method@d273 │ │ +49ccac: 4d01 0003 |00a6: aput-object v1, v0, v3 │ │ +49ccb0: 5b90 a569 |00a8: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_trustManagers:[Ljavax/net/ssl/TrustManager; // field@69a5 │ │ +49ccb4: 0e00 |00aa: return-void │ │ catches : 2 │ │ 0x005a - 0x0060 │ │ Ljava/lang/Exception; -> 0x0061 │ │ 0x007a - 0x0085 │ │ Ljava/lang/Exception; -> 0x0086 │ │ positions : │ │ 0x000e line=429 │ │ @@ -1268654,90 +1268653,90 @@ │ │ type : '(Ljavax/net/ssl/SSLSocket;ZI)V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 21 │ │ ins : 4 │ │ outs : 9 │ │ insns size : 156 16-bit code units │ │ -49ccd8: |[49ccd8] org.purple.smokestack.TcpNeighbor.:(Ljavax/net/ssl/SSLSocket;ZI)V │ │ -49cce8: 0809 1100 |0000: move-object/from16 v9, v17 │ │ -49ccec: 1a01 0000 |0002: const-string v1, "" // string@0000 │ │ -49ccf0: 1a02 0000 |0004: const-string v2, "" // string@0000 │ │ -49ccf4: 1a03 0000 |0006: const-string v3, "" // string@0000 │ │ -49ccf8: 1a04 5c53 |0008: const-string v4, "TCP" // string@535c │ │ -49ccfc: 1a05 0000 |000a: const-string v5, "" // string@0000 │ │ -49cd00: 1207 |000c: const/4 v7, #int 0 // #0 │ │ -49cd02: 0800 1100 |000d: move-object/from16 v0, v17 │ │ -49cd06: 0206 1300 |000f: move/from16 v6, v19 │ │ -49cd0a: 0208 1400 |0011: move/from16 v8, v20 │ │ -49cd0e: 7609 4cd1 0000 |0013: invoke-direct/range {v0, v1, v2, v3, v4, v5, v6, v7, v8}, Lorg/purple/smokestack/Neighbor;.:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZI)V // method@d14c │ │ -49cd14: 1200 |0016: const/4 v0, #int 0 // #0 │ │ -49cd16: 5b90 8f69 |0017: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_handshakeCompleted:Ljava/util/concurrent/atomic/AtomicBoolean; // field@698f │ │ -49cd1a: 5b90 9369 |0019: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_isValidCertificate:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6993 │ │ -49cd1e: 5b90 9a69 |001b: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyInetSocketAddress:Ljava/net/InetSocketAddress; // field@699a │ │ -49cd22: 5b90 a269 |001d: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49cd26: 5b90 a169 |001f: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_requestAuthenticationScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69a1 │ │ -49cd2a: 5b90 9969 |0021: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_protocols:[Ljava/lang/String; // field@6999 │ │ -49cd2e: 1a01 0000 |0023: const-string v1, "" // string@0000 │ │ -49cd32: 5b91 9b69 |0025: iput-object v1, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyIpAddress:Ljava/lang/String; // field@699b │ │ -49cd36: 5b91 9d69 |0027: iput-object v1, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyType:Ljava/lang/String; // field@699d │ │ -49cd3a: 5b90 a569 |0029: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_trustManagers:[Ljavax/net/ssl/TrustManager; // field@69a5 │ │ -49cd3e: 12f0 |002b: const/4 v0, #int -1 // #ff │ │ -49cd40: 5990 9c69 |002c: iput v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyPort:I // field@699c │ │ -49cd44: 2200 f30b |002e: new-instance v0, Ljava/util/concurrent/atomic/AtomicBoolean; // type@0bf3 │ │ -49cd48: 1211 |0030: const/4 v1, #int 1 // #1 │ │ -49cd4a: 7020 1661 1000 |0031: invoke-direct {v0, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.:(Z)V // method@6116 │ │ -49cd50: 5b90 8f69 |0034: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_handshakeCompleted:Ljava/util/concurrent/atomic/AtomicBoolean; // field@698f │ │ -49cd54: 2200 f30b |0036: new-instance v0, Ljava/util/concurrent/atomic/AtomicBoolean; // type@0bf3 │ │ -49cd58: 7020 1661 1000 |0038: invoke-direct {v0, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.:(Z)V // method@6116 │ │ -49cd5e: 5b90 9369 |003b: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_isValidCertificate:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6993 │ │ -49cd62: 0800 1200 |003d: move-object/from16 v0, v18 │ │ -49cd66: 5b90 a269 |003f: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49cd6a: 5490 a669 |0041: iget-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_userDefined:Ljava/util/concurrent/atomic/AtomicBoolean; // field@69a6 │ │ -49cd6e: 1202 |0043: const/4 v2, #int 0 // #0 │ │ -49cd70: 6e20 1a61 2000 |0044: invoke-virtual {v0, v2}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ -49cd76: 5490 a269 |0047: iget-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49cd7a: 3800 2c00 |0049: if-eqz v0, 0075 // +002c │ │ -49cd7e: 5490 9269 |004b: iget-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_isPrivateServer:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6992 │ │ -49cd82: 6e10 1861 0000 |004d: invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ -49cd88: 0a00 |0050: move-result v0 │ │ -49cd8a: 3800 0c00 |0051: if-eqz v0, 005d // +000c │ │ -49cd8e: 5490 a269 |0053: iget-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49cd92: 2203 f91e |0055: new-instance v3, Lorg/purple/smokestack/TcpNeighbor$1; // type@1ef9 │ │ -49cd96: 7020 6bd2 9300 |0057: invoke-direct {v3, v9}, Lorg/purple/smokestack/TcpNeighbor$1;.:(Lorg/purple/smokestack/TcpNeighbor;)V // method@d26b │ │ -49cd9c: 6e20 f561 3000 |005a: invoke-virtual {v0, v3}, Ljavax/net/ssl/SSLSocket;.addHandshakeCompletedListener:(Ljavax/net/ssl/HandshakeCompletedListener;)V // method@61f5 │ │ -49cda2: 5490 a269 |005d: iget-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49cda6: 6e20 0462 2000 |005f: invoke-virtual {v0, v2}, Ljavax/net/ssl/SSLSocket;.setKeepAlive:(Z)V // method@6204 │ │ -49cdac: 5490 a269 |0062: iget-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49cdb0: 6e30 0762 1002 |0064: invoke-virtual {v0, v1, v2}, Ljavax/net/ssl/SSLSocket;.setSoLinger:(ZI)V // method@6207 │ │ -49cdb6: 5490 a269 |0067: iget-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49cdba: 1302 1027 |0069: const/16 v2, #int 10000 // #2710 │ │ -49cdbe: 6e20 0862 2000 |006b: invoke-virtual {v0, v2}, Ljavax/net/ssl/SSLSocket;.setSoTimeout:(I)V // method@6208 │ │ -49cdc4: 5490 a269 |006e: iget-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49cdc8: 6e20 0962 1000 |0070: invoke-virtual {v0, v1}, Ljavax/net/ssl/SSLSocket;.setTcpNoDelay:(Z)V // method@6209 │ │ -49cdce: 2802 |0073: goto 0075 // +0002 │ │ -49cdd0: 0000 |0074: nop // spacer │ │ -49cdd2: 3813 1600 |0075: if-eqz v19, 008b // +0016 │ │ -49cdd6: 7100 0761 0000 |0077: invoke-static {}, Ljava/util/concurrent/Executors;.newSingleThreadScheduledExecutor:()Ljava/util/concurrent/ScheduledExecutorService; // method@6107 │ │ -49cddc: 0c00 |007a: move-result-object v0 │ │ -49cdde: 5b90 a169 |007b: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_requestAuthenticationScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69a1 │ │ -49cde2: 2201 fa1e |007d: new-instance v1, Lorg/purple/smokestack/TcpNeighbor$2; // type@1efa │ │ -49cde6: 7020 6dd2 9100 |007f: invoke-direct {v1, v9}, Lorg/purple/smokestack/TcpNeighbor$2;.:(Lorg/purple/smokestack/TcpNeighbor;)V // method@d26d │ │ -49cdec: 1602 1027 |0082: const-wide/16 v2, #int 10000 // #2710 │ │ -49cdf0: 1604 1027 |0084: const-wide/16 v4, #int 10000 // #2710 │ │ -49cdf4: 6206 122d |0086: sget-object v6, Ljava/util/concurrent/TimeUnit;.MILLISECONDS:Ljava/util/concurrent/TimeUnit; // field@2d12 │ │ -49cdf8: 7807 0e61 0000 |0088: invoke-interface/range {v0, v1, v2, v3, v4, v5, v6}, Ljava/util/concurrent/ScheduledExecutorService;.scheduleAtFixedRate:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; // method@610e │ │ -49cdfe: 549a 9f69 |008b: iget-object v10, v9, Lorg/purple/smokestack/TcpNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@699f │ │ -49ce02: 220b fb1e |008d: new-instance v11, Lorg/purple/smokestack/TcpNeighbor$3; // type@1efb │ │ -49ce06: 7020 6fd2 9b00 |008f: invoke-direct {v11, v9}, Lorg/purple/smokestack/TcpNeighbor$3;.:(Lorg/purple/smokestack/TcpNeighbor;)V // method@d26f │ │ -49ce0c: 160c 0000 |0092: const-wide/16 v12, #int 0 // #0 │ │ -49ce10: 160e 6400 |0094: const-wide/16 v14, #int 100 // #64 │ │ -49ce14: 6210 122d |0096: sget-object v16, Ljava/util/concurrent/TimeUnit;.MILLISECONDS:Ljava/util/concurrent/TimeUnit; // field@2d12 │ │ -49ce18: 7807 0e61 0a00 |0098: invoke-interface/range {v10, v11, v12, v13, v14, v15, v16}, Ljava/util/concurrent/ScheduledExecutorService;.scheduleAtFixedRate:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; // method@610e │ │ -49ce1e: 0e00 |009b: return-void │ │ +49ccd4: |[49ccd4] org.purple.smokestack.TcpNeighbor.:(Ljavax/net/ssl/SSLSocket;ZI)V │ │ +49cce4: 0809 1100 |0000: move-object/from16 v9, v17 │ │ +49cce8: 1a01 0000 |0002: const-string v1, "" // string@0000 │ │ +49ccec: 1a02 0000 |0004: const-string v2, "" // string@0000 │ │ +49ccf0: 1a03 0000 |0006: const-string v3, "" // string@0000 │ │ +49ccf4: 1a04 5c53 |0008: const-string v4, "TCP" // string@535c │ │ +49ccf8: 1a05 0000 |000a: const-string v5, "" // string@0000 │ │ +49ccfc: 1207 |000c: const/4 v7, #int 0 // #0 │ │ +49ccfe: 0800 1100 |000d: move-object/from16 v0, v17 │ │ +49cd02: 0206 1300 |000f: move/from16 v6, v19 │ │ +49cd06: 0208 1400 |0011: move/from16 v8, v20 │ │ +49cd0a: 7609 4cd1 0000 |0013: invoke-direct/range {v0, v1, v2, v3, v4, v5, v6, v7, v8}, Lorg/purple/smokestack/Neighbor;.:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZI)V // method@d14c │ │ +49cd10: 1200 |0016: const/4 v0, #int 0 // #0 │ │ +49cd12: 5b90 8f69 |0017: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_handshakeCompleted:Ljava/util/concurrent/atomic/AtomicBoolean; // field@698f │ │ +49cd16: 5b90 9369 |0019: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_isValidCertificate:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6993 │ │ +49cd1a: 5b90 9a69 |001b: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyInetSocketAddress:Ljava/net/InetSocketAddress; // field@699a │ │ +49cd1e: 5b90 a269 |001d: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49cd22: 5b90 a169 |001f: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_requestAuthenticationScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69a1 │ │ +49cd26: 5b90 9969 |0021: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_protocols:[Ljava/lang/String; // field@6999 │ │ +49cd2a: 1a01 0000 |0023: const-string v1, "" // string@0000 │ │ +49cd2e: 5b91 9b69 |0025: iput-object v1, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyIpAddress:Ljava/lang/String; // field@699b │ │ +49cd32: 5b91 9d69 |0027: iput-object v1, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyType:Ljava/lang/String; // field@699d │ │ +49cd36: 5b90 a569 |0029: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_trustManagers:[Ljavax/net/ssl/TrustManager; // field@69a5 │ │ +49cd3a: 12f0 |002b: const/4 v0, #int -1 // #ff │ │ +49cd3c: 5990 9c69 |002c: iput v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_proxyPort:I // field@699c │ │ +49cd40: 2200 f30b |002e: new-instance v0, Ljava/util/concurrent/atomic/AtomicBoolean; // type@0bf3 │ │ +49cd44: 1211 |0030: const/4 v1, #int 1 // #1 │ │ +49cd46: 7020 1661 1000 |0031: invoke-direct {v0, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.:(Z)V // method@6116 │ │ +49cd4c: 5b90 8f69 |0034: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_handshakeCompleted:Ljava/util/concurrent/atomic/AtomicBoolean; // field@698f │ │ +49cd50: 2200 f30b |0036: new-instance v0, Ljava/util/concurrent/atomic/AtomicBoolean; // type@0bf3 │ │ +49cd54: 7020 1661 1000 |0038: invoke-direct {v0, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.:(Z)V // method@6116 │ │ +49cd5a: 5b90 9369 |003b: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_isValidCertificate:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6993 │ │ +49cd5e: 0800 1200 |003d: move-object/from16 v0, v18 │ │ +49cd62: 5b90 a269 |003f: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49cd66: 5490 a669 |0041: iget-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_userDefined:Ljava/util/concurrent/atomic/AtomicBoolean; // field@69a6 │ │ +49cd6a: 1202 |0043: const/4 v2, #int 0 // #0 │ │ +49cd6c: 6e20 1a61 2000 |0044: invoke-virtual {v0, v2}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ +49cd72: 5490 a269 |0047: iget-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49cd76: 3800 2c00 |0049: if-eqz v0, 0075 // +002c │ │ +49cd7a: 5490 9269 |004b: iget-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_isPrivateServer:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6992 │ │ +49cd7e: 6e10 1861 0000 |004d: invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ +49cd84: 0a00 |0050: move-result v0 │ │ +49cd86: 3800 0c00 |0051: if-eqz v0, 005d // +000c │ │ +49cd8a: 5490 a269 |0053: iget-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49cd8e: 2203 f91e |0055: new-instance v3, Lorg/purple/smokestack/TcpNeighbor$1; // type@1ef9 │ │ +49cd92: 7020 6bd2 9300 |0057: invoke-direct {v3, v9}, Lorg/purple/smokestack/TcpNeighbor$1;.:(Lorg/purple/smokestack/TcpNeighbor;)V // method@d26b │ │ +49cd98: 6e20 f561 3000 |005a: invoke-virtual {v0, v3}, Ljavax/net/ssl/SSLSocket;.addHandshakeCompletedListener:(Ljavax/net/ssl/HandshakeCompletedListener;)V // method@61f5 │ │ +49cd9e: 5490 a269 |005d: iget-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49cda2: 6e20 0462 2000 |005f: invoke-virtual {v0, v2}, Ljavax/net/ssl/SSLSocket;.setKeepAlive:(Z)V // method@6204 │ │ +49cda8: 5490 a269 |0062: iget-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49cdac: 6e30 0762 1002 |0064: invoke-virtual {v0, v1, v2}, Ljavax/net/ssl/SSLSocket;.setSoLinger:(ZI)V // method@6207 │ │ +49cdb2: 5490 a269 |0067: iget-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49cdb6: 1302 1027 |0069: const/16 v2, #int 10000 // #2710 │ │ +49cdba: 6e20 0862 2000 |006b: invoke-virtual {v0, v2}, Ljavax/net/ssl/SSLSocket;.setSoTimeout:(I)V // method@6208 │ │ +49cdc0: 5490 a269 |006e: iget-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49cdc4: 6e20 0962 1000 |0070: invoke-virtual {v0, v1}, Ljavax/net/ssl/SSLSocket;.setTcpNoDelay:(Z)V // method@6209 │ │ +49cdca: 2802 |0073: goto 0075 // +0002 │ │ +49cdcc: 0000 |0074: nop // spacer │ │ +49cdce: 3813 1600 |0075: if-eqz v19, 008b // +0016 │ │ +49cdd2: 7100 0761 0000 |0077: invoke-static {}, Ljava/util/concurrent/Executors;.newSingleThreadScheduledExecutor:()Ljava/util/concurrent/ScheduledExecutorService; // method@6107 │ │ +49cdd8: 0c00 |007a: move-result-object v0 │ │ +49cdda: 5b90 a169 |007b: iput-object v0, v9, Lorg/purple/smokestack/TcpNeighbor;.m_requestAuthenticationScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69a1 │ │ +49cdde: 2201 fa1e |007d: new-instance v1, Lorg/purple/smokestack/TcpNeighbor$2; // type@1efa │ │ +49cde2: 7020 6dd2 9100 |007f: invoke-direct {v1, v9}, Lorg/purple/smokestack/TcpNeighbor$2;.:(Lorg/purple/smokestack/TcpNeighbor;)V // method@d26d │ │ +49cde8: 1602 1027 |0082: const-wide/16 v2, #int 10000 // #2710 │ │ +49cdec: 1604 1027 |0084: const-wide/16 v4, #int 10000 // #2710 │ │ +49cdf0: 6206 122d |0086: sget-object v6, Ljava/util/concurrent/TimeUnit;.MILLISECONDS:Ljava/util/concurrent/TimeUnit; // field@2d12 │ │ +49cdf4: 7807 0e61 0000 |0088: invoke-interface/range {v0, v1, v2, v3, v4, v5, v6}, Ljava/util/concurrent/ScheduledExecutorService;.scheduleAtFixedRate:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; // method@610e │ │ +49cdfa: 549a 9f69 |008b: iget-object v10, v9, Lorg/purple/smokestack/TcpNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@699f │ │ +49cdfe: 220b fb1e |008d: new-instance v11, Lorg/purple/smokestack/TcpNeighbor$3; // type@1efb │ │ +49ce02: 7020 6fd2 9b00 |008f: invoke-direct {v11, v9}, Lorg/purple/smokestack/TcpNeighbor$3;.:(Lorg/purple/smokestack/TcpNeighbor;)V // method@d26f │ │ +49ce08: 160c 0000 |0092: const-wide/16 v12, #int 0 // #0 │ │ +49ce0c: 160e 6400 |0094: const-wide/16 v14, #int 100 // #64 │ │ +49ce10: 6210 122d |0096: sget-object v16, Ljava/util/concurrent/TimeUnit;.MILLISECONDS:Ljava/util/concurrent/TimeUnit; // field@2d12 │ │ +49ce14: 7807 0e61 0a00 |0098: invoke-interface/range {v10, v11, v12, v13, v14, v15, v16}, Ljava/util/concurrent/ScheduledExecutorService;.scheduleAtFixedRate:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; // method@610e │ │ +49ce1a: 0e00 |009b: return-void │ │ catches : 1 │ │ 0x004b - 0x0073 │ │ Ljava/lang/Exception; -> 0x0074 │ │ positions : │ │ 0x0013 line=242 │ │ 0x0017 line=50 │ │ 0x0019 line=51 │ │ @@ -1268775,17 +1268774,17 @@ │ │ type : '(Lorg/purple/smokestack/TcpNeighbor;)Ljava/util/concurrent/atomic/AtomicBoolean;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -49cb0c: |[49cb0c] org.purple.smokestack.TcpNeighbor.access$000:(Lorg/purple/smokestack/TcpNeighbor;)Ljava/util/concurrent/atomic/AtomicBoolean; │ │ -49cb1c: 5400 8f69 |0000: iget-object v0, v0, Lorg/purple/smokestack/TcpNeighbor;.m_handshakeCompleted:Ljava/util/concurrent/atomic/AtomicBoolean; // field@698f │ │ -49cb20: 1100 |0002: return-object v0 │ │ +49cb08: |[49cb08] org.purple.smokestack.TcpNeighbor.access$000:(Lorg/purple/smokestack/TcpNeighbor;)Ljava/util/concurrent/atomic/AtomicBoolean; │ │ +49cb18: 5400 8f69 |0000: iget-object v0, v0, Lorg/purple/smokestack/TcpNeighbor;.m_handshakeCompleted:Ljava/util/concurrent/atomic/AtomicBoolean; // field@698f │ │ +49cb1c: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=48 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/purple/smokestack/TcpNeighbor; │ │ │ │ #3 : (in Lorg/purple/smokestack/TcpNeighbor;) │ │ @@ -1268793,17 +1268792,17 @@ │ │ type : '(Lorg/purple/smokestack/TcpNeighbor;)V' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -49cf40: |[49cf40] org.purple.smokestack.TcpNeighbor.access$100:(Lorg/purple/smokestack/TcpNeighbor;)V │ │ -49cf50: 7010 8bd2 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/TcpNeighbor;.prepareMRandom:()V // method@d28b │ │ -49cf56: 0e00 |0003: return-void │ │ +49cf3c: |[49cf3c] org.purple.smokestack.TcpNeighbor.access$100:(Lorg/purple/smokestack/TcpNeighbor;)V │ │ +49cf4c: 7010 8bd2 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/TcpNeighbor;.prepareMRandom:()V // method@d28b │ │ +49cf52: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=48 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 (null) Lorg/purple/smokestack/TcpNeighbor; │ │ │ │ #4 : (in Lorg/purple/smokestack/TcpNeighbor;) │ │ @@ -1268811,17 +1268810,17 @@ │ │ type : '(Lorg/purple/smokestack/TcpNeighbor;)Ljavax/net/ssl/SSLSocket;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -49cb3c: |[49cb3c] org.purple.smokestack.TcpNeighbor.access$200:(Lorg/purple/smokestack/TcpNeighbor;)Ljavax/net/ssl/SSLSocket; │ │ -49cb4c: 5400 a269 |0000: iget-object v0, v0, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49cb50: 1100 |0002: return-object v0 │ │ +49cb38: |[49cb38] org.purple.smokestack.TcpNeighbor.access$200:(Lorg/purple/smokestack/TcpNeighbor;)Ljavax/net/ssl/SSLSocket; │ │ +49cb48: 5400 a269 |0000: iget-object v0, v0, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49cb4c: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=48 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/purple/smokestack/TcpNeighbor; │ │ │ │ #5 : (in Lorg/purple/smokestack/TcpNeighbor;) │ │ @@ -1268829,17 +1268828,17 @@ │ │ type : '(Lorg/purple/smokestack/TcpNeighbor;)Ljava/util/concurrent/atomic/AtomicBoolean;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -49cb24: |[49cb24] org.purple.smokestack.TcpNeighbor.access$300:(Lorg/purple/smokestack/TcpNeighbor;)Ljava/util/concurrent/atomic/AtomicBoolean; │ │ -49cb34: 5400 9369 |0000: iget-object v0, v0, Lorg/purple/smokestack/TcpNeighbor;.m_isValidCertificate:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6993 │ │ -49cb38: 1100 |0002: return-object v0 │ │ +49cb20: |[49cb20] org.purple.smokestack.TcpNeighbor.access$300:(Lorg/purple/smokestack/TcpNeighbor;)Ljava/util/concurrent/atomic/AtomicBoolean; │ │ +49cb30: 5400 9369 |0000: iget-object v0, v0, Lorg/purple/smokestack/TcpNeighbor;.m_isValidCertificate:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6993 │ │ +49cb34: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=48 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/purple/smokestack/TcpNeighbor; │ │ │ │ #6 : (in Lorg/purple/smokestack/TcpNeighbor;) │ │ @@ -1268847,54 +1268846,54 @@ │ │ type : '()V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 6 │ │ ins : 1 │ │ outs : 3 │ │ insns size : 78 16-bit code units │ │ -49d2e4: |[49d2e4] org.purple.smokestack.TcpNeighbor.prepareMRandom:()V │ │ -49d2f4: 5450 9e69 |0000: iget-object v0, v5, Lorg/purple/smokestack/TcpNeighbor;.m_randomBuffer:Ljava/lang/StringBuffer; // field@699e │ │ -49d2f8: 5451 9e69 |0002: iget-object v1, v5, Lorg/purple/smokestack/TcpNeighbor;.m_randomBuffer:Ljava/lang/StringBuffer; // field@699e │ │ -49d2fc: 6e10 0c5d 0100 |0004: invoke-virtual {v1}, Ljava/lang/StringBuffer;.length:()I // method@5d0c │ │ -49d302: 0a01 |0007: move-result v1 │ │ -49d304: 1202 |0008: const/4 v2, #int 0 // #0 │ │ -49d306: 6e30 085d 2001 |0009: invoke-virtual {v0, v2, v1}, Ljava/lang/StringBuffer;.delete:(II)Ljava/lang/StringBuffer; // method@5d08 │ │ -49d30c: 5450 9e69 |000c: iget-object v0, v5, Lorg/purple/smokestack/TcpNeighbor;.m_randomBuffer:Ljava/lang/StringBuffer; // field@699e │ │ -49d310: 6e10 115d 0000 |000e: invoke-virtual {v0}, Ljava/lang/StringBuffer;.trimToSize:()V // method@5d11 │ │ -49d316: 1220 |0011: const/4 v0, #int 2 // #2 │ │ -49d318: 2301 1620 |0012: new-array v1, v0, [[B // type@2016 │ │ -49d31c: 1303 4000 |0014: const/16 v3, #int 64 // #40 │ │ -49d320: 7110 8bd0 0300 |0016: invoke-static {v3}, Lorg/purple/smokestack/Cryptography;.randomBytes:(I)[B // method@d08b │ │ -49d326: 0c03 |0019: move-result-object v3 │ │ -49d328: 4d03 0102 |001a: aput-object v3, v1, v2 │ │ -49d32c: 7100 2b5d 0000 |001c: invoke-static {}, Ljava/lang/System;.currentTimeMillis:()J // method@5d2b │ │ -49d332: 0b03 |001f: move-result-wide v3 │ │ -49d334: 7120 40d1 4300 |0020: invoke-static {v3, v4}, Lorg/purple/smokestack/Miscellaneous;.longToByteArray:(J)[B // method@d140 │ │ -49d33a: 0c03 |0023: move-result-object v3 │ │ -49d33c: 1214 |0024: const/4 v4, #int 1 // #1 │ │ -49d33e: 4d03 0104 |0025: aput-object v3, v1, v4 │ │ -49d342: 7110 3ed1 0100 |0027: invoke-static {v1}, Lorg/purple/smokestack/Miscellaneous;.joinByteArrays:([[B)[B // method@d13e │ │ -49d348: 0c01 |002a: move-result-object v1 │ │ -49d34a: 5453 9e69 |002b: iget-object v3, v5, Lorg/purple/smokestack/TcpNeighbor;.m_randomBuffer:Ljava/lang/StringBuffer; // field@699e │ │ -49d34e: 2344 1620 |002d: new-array v4, v4, [[B // type@2016 │ │ -49d352: 4d01 0402 |002f: aput-object v1, v4, v2 │ │ -49d356: 7110 8fd0 0400 |0031: invoke-static {v4}, Lorg/purple/smokestack/Cryptography;.shaX512:([[B)[B // method@d08f │ │ -49d35c: 0c01 |0034: move-result-object v1 │ │ -49d35e: 7120 e754 0100 |0035: invoke-static {v1, v0}, Landroid/util/Base64;.encodeToString:([BI)Ljava/lang/String; // method@54e7 │ │ -49d364: 0c00 |0038: move-result-object v0 │ │ -49d366: 6e20 045d 0300 |0039: invoke-virtual {v3, v0}, Ljava/lang/StringBuffer;.append:(Ljava/lang/String;)Ljava/lang/StringBuffer; // method@5d04 │ │ -49d36c: 2811 |003c: goto 004d // +0011 │ │ -49d36e: 5450 9e69 |003d: iget-object v0, v5, Lorg/purple/smokestack/TcpNeighbor;.m_randomBuffer:Ljava/lang/StringBuffer; // field@699e │ │ -49d372: 5451 9e69 |003f: iget-object v1, v5, Lorg/purple/smokestack/TcpNeighbor;.m_randomBuffer:Ljava/lang/StringBuffer; // field@699e │ │ -49d376: 6e10 0c5d 0100 |0041: invoke-virtual {v1}, Ljava/lang/StringBuffer;.length:()I // method@5d0c │ │ -49d37c: 0a01 |0044: move-result v1 │ │ -49d37e: 6e30 085d 2001 |0045: invoke-virtual {v0, v2, v1}, Ljava/lang/StringBuffer;.delete:(II)Ljava/lang/StringBuffer; // method@5d08 │ │ -49d384: 5450 9e69 |0048: iget-object v0, v5, Lorg/purple/smokestack/TcpNeighbor;.m_randomBuffer:Ljava/lang/StringBuffer; // field@699e │ │ -49d388: 6e10 115d 0000 |004a: invoke-virtual {v0}, Ljava/lang/StringBuffer;.trimToSize:()V // method@5d11 │ │ -49d38e: 0e00 |004d: return-void │ │ +49d2e0: |[49d2e0] org.purple.smokestack.TcpNeighbor.prepareMRandom:()V │ │ +49d2f0: 5450 9e69 |0000: iget-object v0, v5, Lorg/purple/smokestack/TcpNeighbor;.m_randomBuffer:Ljava/lang/StringBuffer; // field@699e │ │ +49d2f4: 5451 9e69 |0002: iget-object v1, v5, Lorg/purple/smokestack/TcpNeighbor;.m_randomBuffer:Ljava/lang/StringBuffer; // field@699e │ │ +49d2f8: 6e10 0c5d 0100 |0004: invoke-virtual {v1}, Ljava/lang/StringBuffer;.length:()I // method@5d0c │ │ +49d2fe: 0a01 |0007: move-result v1 │ │ +49d300: 1202 |0008: const/4 v2, #int 0 // #0 │ │ +49d302: 6e30 085d 2001 |0009: invoke-virtual {v0, v2, v1}, Ljava/lang/StringBuffer;.delete:(II)Ljava/lang/StringBuffer; // method@5d08 │ │ +49d308: 5450 9e69 |000c: iget-object v0, v5, Lorg/purple/smokestack/TcpNeighbor;.m_randomBuffer:Ljava/lang/StringBuffer; // field@699e │ │ +49d30c: 6e10 115d 0000 |000e: invoke-virtual {v0}, Ljava/lang/StringBuffer;.trimToSize:()V // method@5d11 │ │ +49d312: 1220 |0011: const/4 v0, #int 2 // #2 │ │ +49d314: 2301 1620 |0012: new-array v1, v0, [[B // type@2016 │ │ +49d318: 1303 4000 |0014: const/16 v3, #int 64 // #40 │ │ +49d31c: 7110 8bd0 0300 |0016: invoke-static {v3}, Lorg/purple/smokestack/Cryptography;.randomBytes:(I)[B // method@d08b │ │ +49d322: 0c03 |0019: move-result-object v3 │ │ +49d324: 4d03 0102 |001a: aput-object v3, v1, v2 │ │ +49d328: 7100 2b5d 0000 |001c: invoke-static {}, Ljava/lang/System;.currentTimeMillis:()J // method@5d2b │ │ +49d32e: 0b03 |001f: move-result-wide v3 │ │ +49d330: 7120 40d1 4300 |0020: invoke-static {v3, v4}, Lorg/purple/smokestack/Miscellaneous;.longToByteArray:(J)[B // method@d140 │ │ +49d336: 0c03 |0023: move-result-object v3 │ │ +49d338: 1214 |0024: const/4 v4, #int 1 // #1 │ │ +49d33a: 4d03 0104 |0025: aput-object v3, v1, v4 │ │ +49d33e: 7110 3ed1 0100 |0027: invoke-static {v1}, Lorg/purple/smokestack/Miscellaneous;.joinByteArrays:([[B)[B // method@d13e │ │ +49d344: 0c01 |002a: move-result-object v1 │ │ +49d346: 5453 9e69 |002b: iget-object v3, v5, Lorg/purple/smokestack/TcpNeighbor;.m_randomBuffer:Ljava/lang/StringBuffer; // field@699e │ │ +49d34a: 2344 1620 |002d: new-array v4, v4, [[B // type@2016 │ │ +49d34e: 4d01 0402 |002f: aput-object v1, v4, v2 │ │ +49d352: 7110 8fd0 0400 |0031: invoke-static {v4}, Lorg/purple/smokestack/Cryptography;.shaX512:([[B)[B // method@d08f │ │ +49d358: 0c01 |0034: move-result-object v1 │ │ +49d35a: 7120 e754 0100 |0035: invoke-static {v1, v0}, Landroid/util/Base64;.encodeToString:([BI)Ljava/lang/String; // method@54e7 │ │ +49d360: 0c00 |0038: move-result-object v0 │ │ +49d362: 6e20 045d 0300 |0039: invoke-virtual {v3, v0}, Ljava/lang/StringBuffer;.append:(Ljava/lang/String;)Ljava/lang/StringBuffer; // method@5d04 │ │ +49d368: 2811 |003c: goto 004d // +0011 │ │ +49d36a: 5450 9e69 |003d: iget-object v0, v5, Lorg/purple/smokestack/TcpNeighbor;.m_randomBuffer:Ljava/lang/StringBuffer; // field@699e │ │ +49d36e: 5451 9e69 |003f: iget-object v1, v5, Lorg/purple/smokestack/TcpNeighbor;.m_randomBuffer:Ljava/lang/StringBuffer; // field@699e │ │ +49d372: 6e10 0c5d 0100 |0041: invoke-virtual {v1}, Ljava/lang/StringBuffer;.length:()I // method@5d0c │ │ +49d378: 0a01 |0044: move-result v1 │ │ +49d37a: 6e30 085d 2001 |0045: invoke-virtual {v0, v2, v1}, Ljava/lang/StringBuffer;.delete:(II)Ljava/lang/StringBuffer; // method@5d08 │ │ +49d380: 5450 9e69 |0048: iget-object v0, v5, Lorg/purple/smokestack/TcpNeighbor;.m_randomBuffer:Ljava/lang/StringBuffer; // field@699e │ │ +49d384: 6e10 115d 0000 |004a: invoke-virtual {v0}, Ljava/lang/StringBuffer;.trimToSize:()V // method@5d11 │ │ +49d38a: 0e00 |004d: return-void │ │ catches : 1 │ │ 0x0012 - 0x003c │ │ Ljava/lang/Exception; -> 0x003d │ │ positions : │ │ 0x0000 line=67 │ │ 0x000c line=68 │ │ 0x0016 line=73 │ │ @@ -1268913,64 +1268912,64 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 6 │ │ ins : 1 │ │ outs : 4 │ │ insns size : 89 16-bit code units │ │ -49ce30: |[49ce30] org.purple.smokestack.TcpNeighbor.abort:()V │ │ -49ce40: 6e10 83d2 0500 |0000: invoke-virtual {v5}, Lorg/purple/smokestack/TcpNeighbor;.disconnect:()V // method@d283 │ │ -49ce46: 6f10 4dd1 0500 |0003: invoke-super {v5}, Lorg/purple/smokestack/Neighbor;.abort:()V // method@d14d │ │ -49ce4c: 5450 8f69 |0006: iget-object v0, v5, Lorg/purple/smokestack/TcpNeighbor;.m_handshakeCompleted:Ljava/util/concurrent/atomic/AtomicBoolean; // field@698f │ │ -49ce50: 1201 |0008: const/4 v1, #int 0 // #0 │ │ -49ce52: 6e20 1a61 1000 |0009: invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ -49ce58: 5450 9769 |000c: iget-object v0, v5, Lorg/purple/smokestack/TcpNeighbor;.m_oid:Ljava/util/concurrent/atomic/AtomicInteger; // field@6997 │ │ -49ce5c: 6e10 1c61 0000 |000e: invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@611c │ │ -49ce62: 0a00 |0011: move-result v0 │ │ -49ce64: 3a00 0700 |0012: if-ltz v0, 0019 // +0007 │ │ -49ce68: 5450 9369 |0014: iget-object v0, v5, Lorg/purple/smokestack/TcpNeighbor;.m_isValidCertificate:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6993 │ │ -49ce6c: 6e20 1a61 1000 |0016: invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ -49ce72: 5450 a169 |0019: iget-object v0, v5, Lorg/purple/smokestack/TcpNeighbor;.m_requestAuthenticationScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69a1 │ │ -49ce76: 1601 0500 |001b: const-wide/16 v1, #int 5 // #5 │ │ -49ce7a: 3800 1e00 |001d: if-eqz v0, 003b // +001e │ │ -49ce7e: 1d00 |001f: monitor-enter v0 │ │ -49ce80: 5453 a169 |0020: iget-object v3, v5, Lorg/purple/smokestack/TcpNeighbor;.m_requestAuthenticationScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69a1 │ │ -49ce84: 7210 0f61 0300 |0022: invoke-interface {v3}, Ljava/util/concurrent/ScheduledExecutorService;.shutdown:()V // method@610f │ │ -49ce8a: 2803 |0025: goto 0028 // +0003 │ │ -49ce8c: 0d01 |0026: move-exception v1 │ │ -49ce8e: 2812 |0027: goto 0039 // +0012 │ │ -49ce90: 5453 a169 |0028: iget-object v3, v5, Lorg/purple/smokestack/TcpNeighbor;.m_requestAuthenticationScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69a1 │ │ -49ce94: 6204 152d |002a: sget-object v4, Ljava/util/concurrent/TimeUnit;.SECONDS:Ljava/util/concurrent/TimeUnit; // field@2d15 │ │ -49ce98: 7240 0d61 1342 |002c: invoke-interface {v3, v1, v2, v4}, Ljava/util/concurrent/ScheduledExecutorService;.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z // method@610d │ │ -49ce9e: 0a03 |002f: move-result v3 │ │ -49cea0: 3903 0700 |0030: if-nez v3, 0037 // +0007 │ │ -49cea4: 5453 a169 |0032: iget-object v3, v5, Lorg/purple/smokestack/TcpNeighbor;.m_requestAuthenticationScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69a1 │ │ -49cea8: 7210 1061 0300 |0034: invoke-interface {v3}, Ljava/util/concurrent/ScheduledExecutorService;.shutdownNow:()Ljava/util/List; // method@6110 │ │ -49ceae: 1e00 |0037: monitor-exit v0 │ │ -49ceb0: 2803 |0038: goto 003b // +0003 │ │ -49ceb2: 1e00 |0039: monitor-exit v0 │ │ -49ceb4: 2701 |003a: throw v1 │ │ -49ceb6: 5450 9f69 |003b: iget-object v0, v5, Lorg/purple/smokestack/TcpNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@699f │ │ -49ceba: 1d00 |003d: monitor-enter v0 │ │ -49cebc: 5453 9f69 |003e: iget-object v3, v5, Lorg/purple/smokestack/TcpNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@699f │ │ -49cec0: 7210 0f61 0300 |0040: invoke-interface {v3}, Ljava/util/concurrent/ScheduledExecutorService;.shutdown:()V // method@610f │ │ -49cec6: 2803 |0043: goto 0046 // +0003 │ │ -49cec8: 0d01 |0044: move-exception v1 │ │ -49ceca: 2812 |0045: goto 0057 // +0012 │ │ -49cecc: 5453 9f69 |0046: iget-object v3, v5, Lorg/purple/smokestack/TcpNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@699f │ │ -49ced0: 6204 152d |0048: sget-object v4, Ljava/util/concurrent/TimeUnit;.SECONDS:Ljava/util/concurrent/TimeUnit; // field@2d15 │ │ -49ced4: 7240 0d61 1342 |004a: invoke-interface {v3, v1, v2, v4}, Ljava/util/concurrent/ScheduledExecutorService;.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z // method@610d │ │ -49ceda: 0a01 |004d: move-result v1 │ │ -49cedc: 3901 0700 |004e: if-nez v1, 0055 // +0007 │ │ -49cee0: 5451 9f69 |0050: iget-object v1, v5, Lorg/purple/smokestack/TcpNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@699f │ │ -49cee4: 7210 1061 0100 |0052: invoke-interface {v1}, Ljava/util/concurrent/ScheduledExecutorService;.shutdownNow:()Ljava/util/List; // method@6110 │ │ -49ceea: 1e00 |0055: monitor-exit v0 │ │ -49ceec: 0e00 |0056: return-void │ │ -49ceee: 1e00 |0057: monitor-exit v0 │ │ -49cef0: 2701 |0058: throw v1 │ │ +49ce2c: |[49ce2c] org.purple.smokestack.TcpNeighbor.abort:()V │ │ +49ce3c: 6e10 83d2 0500 |0000: invoke-virtual {v5}, Lorg/purple/smokestack/TcpNeighbor;.disconnect:()V // method@d283 │ │ +49ce42: 6f10 4dd1 0500 |0003: invoke-super {v5}, Lorg/purple/smokestack/Neighbor;.abort:()V // method@d14d │ │ +49ce48: 5450 8f69 |0006: iget-object v0, v5, Lorg/purple/smokestack/TcpNeighbor;.m_handshakeCompleted:Ljava/util/concurrent/atomic/AtomicBoolean; // field@698f │ │ +49ce4c: 1201 |0008: const/4 v1, #int 0 // #0 │ │ +49ce4e: 6e20 1a61 1000 |0009: invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ +49ce54: 5450 9769 |000c: iget-object v0, v5, Lorg/purple/smokestack/TcpNeighbor;.m_oid:Ljava/util/concurrent/atomic/AtomicInteger; // field@6997 │ │ +49ce58: 6e10 1c61 0000 |000e: invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@611c │ │ +49ce5e: 0a00 |0011: move-result v0 │ │ +49ce60: 3a00 0700 |0012: if-ltz v0, 0019 // +0007 │ │ +49ce64: 5450 9369 |0014: iget-object v0, v5, Lorg/purple/smokestack/TcpNeighbor;.m_isValidCertificate:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6993 │ │ +49ce68: 6e20 1a61 1000 |0016: invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ +49ce6e: 5450 a169 |0019: iget-object v0, v5, Lorg/purple/smokestack/TcpNeighbor;.m_requestAuthenticationScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69a1 │ │ +49ce72: 1601 0500 |001b: const-wide/16 v1, #int 5 // #5 │ │ +49ce76: 3800 1e00 |001d: if-eqz v0, 003b // +001e │ │ +49ce7a: 1d00 |001f: monitor-enter v0 │ │ +49ce7c: 5453 a169 |0020: iget-object v3, v5, Lorg/purple/smokestack/TcpNeighbor;.m_requestAuthenticationScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69a1 │ │ +49ce80: 7210 0f61 0300 |0022: invoke-interface {v3}, Ljava/util/concurrent/ScheduledExecutorService;.shutdown:()V // method@610f │ │ +49ce86: 2803 |0025: goto 0028 // +0003 │ │ +49ce88: 0d01 |0026: move-exception v1 │ │ +49ce8a: 2812 |0027: goto 0039 // +0012 │ │ +49ce8c: 5453 a169 |0028: iget-object v3, v5, Lorg/purple/smokestack/TcpNeighbor;.m_requestAuthenticationScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69a1 │ │ +49ce90: 6204 152d |002a: sget-object v4, Ljava/util/concurrent/TimeUnit;.SECONDS:Ljava/util/concurrent/TimeUnit; // field@2d15 │ │ +49ce94: 7240 0d61 1342 |002c: invoke-interface {v3, v1, v2, v4}, Ljava/util/concurrent/ScheduledExecutorService;.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z // method@610d │ │ +49ce9a: 0a03 |002f: move-result v3 │ │ +49ce9c: 3903 0700 |0030: if-nez v3, 0037 // +0007 │ │ +49cea0: 5453 a169 |0032: iget-object v3, v5, Lorg/purple/smokestack/TcpNeighbor;.m_requestAuthenticationScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69a1 │ │ +49cea4: 7210 1061 0300 |0034: invoke-interface {v3}, Ljava/util/concurrent/ScheduledExecutorService;.shutdownNow:()Ljava/util/List; // method@6110 │ │ +49ceaa: 1e00 |0037: monitor-exit v0 │ │ +49ceac: 2803 |0038: goto 003b // +0003 │ │ +49ceae: 1e00 |0039: monitor-exit v0 │ │ +49ceb0: 2701 |003a: throw v1 │ │ +49ceb2: 5450 9f69 |003b: iget-object v0, v5, Lorg/purple/smokestack/TcpNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@699f │ │ +49ceb6: 1d00 |003d: monitor-enter v0 │ │ +49ceb8: 5453 9f69 |003e: iget-object v3, v5, Lorg/purple/smokestack/TcpNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@699f │ │ +49cebc: 7210 0f61 0300 |0040: invoke-interface {v3}, Ljava/util/concurrent/ScheduledExecutorService;.shutdown:()V // method@610f │ │ +49cec2: 2803 |0043: goto 0046 // +0003 │ │ +49cec4: 0d01 |0044: move-exception v1 │ │ +49cec6: 2812 |0045: goto 0057 // +0012 │ │ +49cec8: 5453 9f69 |0046: iget-object v3, v5, Lorg/purple/smokestack/TcpNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@699f │ │ +49cecc: 6204 152d |0048: sget-object v4, Ljava/util/concurrent/TimeUnit;.SECONDS:Ljava/util/concurrent/TimeUnit; // field@2d15 │ │ +49ced0: 7240 0d61 1342 |004a: invoke-interface {v3, v1, v2, v4}, Ljava/util/concurrent/ScheduledExecutorService;.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z // method@610d │ │ +49ced6: 0a01 |004d: move-result v1 │ │ +49ced8: 3901 0700 |004e: if-nez v1, 0055 // +0007 │ │ +49cedc: 5451 9f69 |0050: iget-object v1, v5, Lorg/purple/smokestack/TcpNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@699f │ │ +49cee0: 7210 1061 0100 |0052: invoke-interface {v1}, Ljava/util/concurrent/ScheduledExecutorService;.shutdownNow:()Ljava/util/List; // method@6110 │ │ +49cee6: 1e00 |0055: monitor-exit v0 │ │ +49cee8: 0e00 |0056: return-void │ │ +49ceea: 1e00 |0057: monitor-exit v0 │ │ +49ceec: 2701 |0058: throw v1 │ │ catches : 6 │ │ 0x0020 - 0x0025 │ │ Ljava/lang/Exception; -> 0x0028 │ │ -> 0x0026 │ │ 0x0028 - 0x0037 │ │ Ljava/lang/Exception; -> 0x0037 │ │ -> 0x0026 │ │ @@ -1269011,152 +1269010,152 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 11 │ │ ins : 1 │ │ outs : 5 │ │ insns size : 292 16-bit code units │ │ -49cf58: |[49cf58] org.purple.smokestack.TcpNeighbor.connect:()V │ │ -49cf68: 6e10 82d2 0a00 |0000: invoke-virtual {v10}, Lorg/purple/smokestack/TcpNeighbor;.connected:()Z // method@d282 │ │ -49cf6e: 0a00 |0003: move-result v0 │ │ -49cf70: 3800 0300 |0004: if-eqz v0, 0007 // +0003 │ │ -49cf74: 0e00 |0006: return-void │ │ -49cf76: 54a0 9769 |0007: iget-object v0, v10, Lorg/purple/smokestack/TcpNeighbor;.m_oid:Ljava/util/concurrent/atomic/AtomicInteger; // field@6997 │ │ -49cf7a: 6e10 1c61 0000 |0009: invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@611c │ │ -49cf80: 0a00 |000c: move-result v0 │ │ -49cf82: 3b00 0300 |000d: if-gez v0, 0010 // +0003 │ │ -49cf86: 0e00 |000f: return-void │ │ -49cf88: 54a0 8969 |0010: iget-object v0, v10, Lorg/purple/smokestack/TcpNeighbor;.m_bytesRead:Ljava/util/concurrent/atomic/AtomicLong; // field@6989 │ │ -49cf8c: 1601 0000 |0012: const-wide/16 v1, #int 0 // #0 │ │ -49cf90: 6e30 2461 1002 |0014: invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ -49cf96: 54a0 8a69 |0017: iget-object v0, v10, Lorg/purple/smokestack/TcpNeighbor;.m_bytesWritten:Ljava/util/concurrent/atomic/AtomicLong; // field@698a │ │ -49cf9a: 6e30 2461 1002 |0019: invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ -49cfa0: 54a0 8f69 |001c: iget-object v0, v10, Lorg/purple/smokestack/TcpNeighbor;.m_handshakeCompleted:Ljava/util/concurrent/atomic/AtomicBoolean; // field@698f │ │ -49cfa4: 1201 |001e: const/4 v1, #int 0 // #0 │ │ -49cfa6: 6e20 1a61 1000 |001f: invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ -49cfac: 54a0 9469 |0022: iget-object v0, v10, Lorg/purple/smokestack/TcpNeighbor;.m_lastParsed:Ljava/util/concurrent/atomic/AtomicLong; // field@6994 │ │ -49cfb0: 7100 2b5d 0000 |0024: invoke-static {}, Ljava/lang/System;.currentTimeMillis:()J // method@5d2b │ │ -49cfb6: 0b02 |0027: move-result-wide v2 │ │ -49cfb8: 6e30 2461 2003 |0028: invoke-virtual {v0, v2, v3}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ -49cfbe: 54a0 9569 |002b: iget-object v0, v10, Lorg/purple/smokestack/TcpNeighbor;.m_lastTimeRead:Ljava/util/concurrent/atomic/AtomicLong; // field@6995 │ │ -49cfc2: 7100 315d 0000 |002d: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@5d31 │ │ -49cfc8: 0b02 |0030: move-result-wide v2 │ │ -49cfca: 6e30 2461 2003 |0031: invoke-virtual {v0, v2, v3}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ -49cfd0: 2200 1a0b |0034: new-instance v0, Ljava/net/InetSocketAddress; // type@0b1a │ │ -49cfd4: 54a2 9069 |0036: iget-object v2, v10, Lorg/purple/smokestack/TcpNeighbor;.m_ipAddress:Ljava/lang/String; // field@6990 │ │ -49cfd8: 54a3 9169 |0038: iget-object v3, v10, Lorg/purple/smokestack/TcpNeighbor;.m_ipPort:Ljava/lang/String; // field@6991 │ │ -49cfdc: 7110 6f5c 0300 |003a: invoke-static {v3}, Ljava/lang/Integer;.parseInt:(Ljava/lang/String;)I // method@5c6f │ │ -49cfe2: 0a03 |003d: move-result v3 │ │ -49cfe4: 7030 b25d 2003 |003e: invoke-direct {v0, v2, v3}, Ljava/net/InetSocketAddress;.:(Ljava/lang/String;I)V // method@5db2 │ │ -49cfea: 6002 6b00 |0041: sget v2, Landroid/os/Build$VERSION;.SDK_INT:I // field@006b │ │ -49cfee: 1303 1500 |0043: const/16 v3, #int 21 // #15 │ │ -49cff2: 3532 0900 |0045: if-ge v2, v3, 004e // +0009 │ │ -49cff6: 1a02 e54f |0047: const-string v2, "SSL" // string@4fe5 │ │ -49cffa: 7110 e261 0200 |0049: invoke-static {v2}, Ljavax/net/ssl/SSLContext;.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/SSLContext; // method@61e2 │ │ -49d000: 0c02 |004c: move-result-object v2 │ │ -49d002: 2807 |004d: goto 0054 // +0007 │ │ -49d004: 1a02 9653 |004e: const-string v2, "TLS" // string@5396 │ │ -49d008: 7110 e261 0200 |0050: invoke-static {v2}, Ljavax/net/ssl/SSLContext;.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/SSLContext; // method@61e2 │ │ -49d00e: 0c02 |0053: move-result-object v2 │ │ -49d010: 1203 |0054: const/4 v3, #int 0 // #0 │ │ -49d012: 54a4 a569 |0055: iget-object v4, v10, Lorg/purple/smokestack/TcpNeighbor;.m_trustManagers:[Ljavax/net/ssl/TrustManager; // field@69a5 │ │ -49d016: 2205 590b |0057: new-instance v5, Ljava/security/SecureRandom; // type@0b59 │ │ -49d01a: 7010 685e 0500 |0059: invoke-direct {v5}, Ljava/security/SecureRandom;.:()V // method@5e68 │ │ -49d020: 6e40 e661 3254 |005c: invoke-virtual {v2, v3, v4, v5}, Ljavax/net/ssl/SSLContext;.init:([Ljavax/net/ssl/KeyManager;[Ljavax/net/ssl/TrustManager;Ljava/security/SecureRandom;)V // method@61e6 │ │ -49d026: 54a3 9a69 |005f: iget-object v3, v10, Lorg/purple/smokestack/TcpNeighbor;.m_proxyInetSocketAddress:Ljava/net/InetSocketAddress; // field@699a │ │ -49d02a: 1214 |0061: const/4 v4, #int 1 // #1 │ │ -49d02c: 1305 1027 |0062: const/16 v5, #int 10000 // #2710 │ │ -49d030: 1506 0100 |0064: const/high16 v6, #int 65536 // #1 │ │ -49d034: 3903 1c00 |0066: if-nez v3, 0082 // +001c │ │ -49d038: 6e10 e561 0200 |0068: invoke-virtual {v2}, Ljavax/net/ssl/SSLContext;.getSocketFactory:()Ljavax/net/ssl/SSLSocketFactory; // method@61e5 │ │ -49d03e: 0c02 |006b: move-result-object v2 │ │ -49d040: 6e10 0b62 0200 |006c: invoke-virtual {v2}, Ljavax/net/ssl/SSLSocketFactory;.createSocket:()Ljava/net/Socket; // method@620b │ │ -49d046: 0c02 |006f: move-result-object v2 │ │ -49d048: 1f02 390c |0070: check-cast v2, Ljavax/net/ssl/SSLSocket; // type@0c39 │ │ -49d04c: 5ba2 a269 |0072: iput-object v2, v10, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49d050: 6e20 0562 6200 |0074: invoke-virtual {v2, v6}, Ljavax/net/ssl/SSLSocket;.setReceiveBufferSize:(I)V // method@6205 │ │ -49d056: 54a2 a269 |0077: iget-object v2, v10, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49d05a: 6e20 0662 6200 |0079: invoke-virtual {v2, v6}, Ljavax/net/ssl/SSLSocket;.setSendBufferSize:(I)V // method@6206 │ │ -49d060: 54a2 a269 |007c: iget-object v2, v10, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49d064: 6e30 f761 0205 |007e: invoke-virtual {v2, v0, v5}, Ljavax/net/ssl/SSLSocket;.connect:(Ljava/net/SocketAddress;I)V // method@61f7 │ │ -49d06a: 2841 |0081: goto 00c2 // +0041 │ │ -49d06c: 54a3 9d69 |0082: iget-object v3, v10, Lorg/purple/smokestack/TcpNeighbor;.m_proxyType:Ljava/lang/String; // field@699d │ │ -49d070: 1a07 4f1e |0084: const-string v7, "HTTP" // string@1e4f │ │ -49d074: 6e20 da5c 7300 |0086: invoke-virtual {v3, v7}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ -49d07a: 0a03 |0089: move-result v3 │ │ -49d07c: 3803 1100 |008a: if-eqz v3, 009b // +0011 │ │ -49d080: 2203 210b |008c: new-instance v3, Ljava/net/Socket; // type@0b21 │ │ -49d084: 2207 1f0b |008e: new-instance v7, Ljava/net/Proxy; // type@0b1f │ │ -49d088: 6208 032d |0090: sget-object v8, Ljava/net/Proxy$Type;.HTTP:Ljava/net/Proxy$Type; // field@2d03 │ │ -49d08c: 54a9 9a69 |0092: iget-object v9, v10, Lorg/purple/smokestack/TcpNeighbor;.m_proxyInetSocketAddress:Ljava/net/InetSocketAddress; // field@699a │ │ -49d090: 7030 c25d 8709 |0094: invoke-direct {v7, v8, v9}, Ljava/net/Proxy;.:(Ljava/net/Proxy$Type;Ljava/net/SocketAddress;)V // method@5dc2 │ │ -49d096: 7020 c35d 7300 |0097: invoke-direct {v3, v7}, Ljava/net/Socket;.:(Ljava/net/Proxy;)V // method@5dc3 │ │ -49d09c: 280f |009a: goto 00a9 // +000f │ │ -49d09e: 2203 210b |009b: new-instance v3, Ljava/net/Socket; // type@0b21 │ │ -49d0a2: 2207 1f0b |009d: new-instance v7, Ljava/net/Proxy; // type@0b1f │ │ -49d0a6: 6208 042d |009f: sget-object v8, Ljava/net/Proxy$Type;.SOCKS:Ljava/net/Proxy$Type; // field@2d04 │ │ -49d0aa: 54a9 9a69 |00a1: iget-object v9, v10, Lorg/purple/smokestack/TcpNeighbor;.m_proxyInetSocketAddress:Ljava/net/InetSocketAddress; // field@699a │ │ -49d0ae: 7030 c25d 8709 |00a3: invoke-direct {v7, v8, v9}, Ljava/net/Proxy;.:(Ljava/net/Proxy$Type;Ljava/net/SocketAddress;)V // method@5dc2 │ │ -49d0b4: 7020 c35d 7300 |00a6: invoke-direct {v3, v7}, Ljava/net/Socket;.:(Ljava/net/Proxy;)V // method@5dc3 │ │ -49d0ba: 6e20 c65d 6300 |00a9: invoke-virtual {v3, v6}, Ljava/net/Socket;.setReceiveBufferSize:(I)V // method@5dc6 │ │ -49d0c0: 6e20 c75d 6300 |00ac: invoke-virtual {v3, v6}, Ljava/net/Socket;.setSendBufferSize:(I)V // method@5dc7 │ │ -49d0c6: 6e30 c55d 0305 |00af: invoke-virtual {v3, v0, v5}, Ljava/net/Socket;.connect:(Ljava/net/SocketAddress;I)V // method@5dc5 │ │ -49d0cc: 6e10 e561 0200 |00b2: invoke-virtual {v2}, Ljavax/net/ssl/SSLContext;.getSocketFactory:()Ljavax/net/ssl/SSLSocketFactory; // method@61e5 │ │ -49d0d2: 0c00 |00b5: move-result-object v0 │ │ -49d0d4: 54a2 9b69 |00b6: iget-object v2, v10, Lorg/purple/smokestack/TcpNeighbor;.m_proxyIpAddress:Ljava/lang/String; // field@699b │ │ -49d0d8: 52a6 9c69 |00b8: iget v6, v10, Lorg/purple/smokestack/TcpNeighbor;.m_proxyPort:I // field@699c │ │ -49d0dc: 6e54 0d62 3062 |00ba: invoke-virtual {v0, v3, v2, v6, v4}, Ljavax/net/ssl/SSLSocketFactory;.createSocket:(Ljava/net/Socket;Ljava/lang/String;IZ)Ljava/net/Socket; // method@620d │ │ -49d0e2: 0c00 |00bd: move-result-object v0 │ │ -49d0e4: 1f00 390c |00be: check-cast v0, Ljavax/net/ssl/SSLSocket; // type@0c39 │ │ -49d0e8: 5ba0 a269 |00c0: iput-object v0, v10, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49d0ec: 54a0 a269 |00c2: iget-object v0, v10, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49d0f0: 2202 fe1e |00c4: new-instance v2, Lorg/purple/smokestack/TcpNeighbor$6; // type@1efe │ │ -49d0f4: 7020 77d2 a200 |00c6: invoke-direct {v2, v10}, Lorg/purple/smokestack/TcpNeighbor$6;.:(Lorg/purple/smokestack/TcpNeighbor;)V // method@d277 │ │ -49d0fa: 6e20 f561 2000 |00c9: invoke-virtual {v0, v2}, Ljavax/net/ssl/SSLSocket;.addHandshakeCompletedListener:(Ljavax/net/ssl/HandshakeCompletedListener;)V // method@61f5 │ │ -49d100: 54a0 a269 |00cc: iget-object v0, v10, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49d104: 54a2 9969 |00ce: iget-object v2, v10, Lorg/purple/smokestack/TcpNeighbor;.m_protocols:[Ljava/lang/String; // field@6999 │ │ -49d108: 6e20 0362 2000 |00d0: invoke-virtual {v0, v2}, Ljavax/net/ssl/SSLSocket;.setEnabledProtocols:([Ljava/lang/String;)V // method@6203 │ │ -49d10e: 54a0 a269 |00d3: iget-object v0, v10, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49d112: 6e20 0462 1000 |00d5: invoke-virtual {v0, v1}, Ljavax/net/ssl/SSLSocket;.setKeepAlive:(Z)V // method@6204 │ │ -49d118: 54a0 a269 |00d8: iget-object v0, v10, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49d11c: 6e30 0762 4001 |00da: invoke-virtual {v0, v4, v1}, Ljavax/net/ssl/SSLSocket;.setSoLinger:(ZI)V // method@6207 │ │ -49d122: 54a0 a269 |00dd: iget-object v0, v10, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49d126: 6e20 0862 5000 |00df: invoke-virtual {v0, v5}, Ljavax/net/ssl/SSLSocket;.setSoTimeout:(I)V // method@6208 │ │ -49d12c: 54a0 a269 |00e2: iget-object v0, v10, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49d130: 6e20 0962 4000 |00e4: invoke-virtual {v0, v4}, Ljavax/net/ssl/SSLSocket;.setTcpNoDelay:(Z)V // method@6209 │ │ -49d136: 54a0 a369 |00e7: iget-object v0, v10, Lorg/purple/smokestack/TcpNeighbor;.m_startTime:Ljava/util/concurrent/atomic/AtomicLong; // field@69a3 │ │ -49d13a: 7100 315d 0000 |00e9: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@5d31 │ │ -49d140: 0b01 |00ec: move-result-wide v1 │ │ -49d142: 6e30 2461 1002 |00ed: invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ -49d148: 1a00 0000 |00f0: const-string v0, "" // string@0000 │ │ -49d14c: 6e20 90d2 0a00 |00f2: invoke-virtual {v10, v0}, Lorg/purple/smokestack/TcpNeighbor;.setError:(Ljava/lang/String;)V // method@d290 │ │ -49d152: 54a0 9669 |00f5: iget-object v0, v10, Lorg/purple/smokestack/TcpNeighbor;.m_mutex:Ljava/lang/Object; // field@6996 │ │ -49d156: 1d00 |00f7: monitor-enter v0 │ │ -49d158: 54a1 9669 |00f8: iget-object v1, v10, Lorg/purple/smokestack/TcpNeighbor;.m_mutex:Ljava/lang/Object; // field@6996 │ │ -49d15c: 6e10 b45c 0100 |00fa: invoke-virtual {v1}, Ljava/lang/Object;.notifyAll:()V // method@5cb4 │ │ -49d162: 1e00 |00fd: monitor-exit v0 │ │ -49d164: 2825 |00fe: goto 0123 // +0025 │ │ -49d166: 0d01 |00ff: move-exception v1 │ │ -49d168: 1e00 |0100: monitor-exit v0 │ │ -49d16a: 2701 |0101: throw v1 │ │ -49d16c: 0d00 |0102: move-exception v0 │ │ -49d16e: 2201 fc0a |0103: new-instance v1, Ljava/lang/StringBuilder; // type@0afc │ │ -49d172: 7010 125d 0100 |0105: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ -49d178: 1a02 1a0e |0108: const-string v2, "An error (" // string@0e1a │ │ -49d17c: 6e20 1d5d 2100 |010a: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49d182: 6e10 505c 0000 |010d: invoke-virtual {v0}, Ljava/lang/Exception;.getMessage:()Ljava/lang/String; // method@5c50 │ │ -49d188: 0c00 |0110: move-result-object v0 │ │ -49d18a: 6e20 1d5d 0100 |0111: invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49d190: 1a00 3004 |0114: const-string v0, ") occurred while attempting a connection." // string@0430 │ │ -49d194: 6e20 1d5d 0100 |0116: invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49d19a: 6e10 285d 0100 |0119: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ -49d1a0: 0c00 |011c: move-result-object v0 │ │ -49d1a2: 6e20 90d2 0a00 |011d: invoke-virtual {v10, v0}, Lorg/purple/smokestack/TcpNeighbor;.setError:(Ljava/lang/String;)V // method@d290 │ │ -49d1a8: 6e10 83d2 0a00 |0120: invoke-virtual {v10}, Lorg/purple/smokestack/TcpNeighbor;.disconnect:()V // method@d283 │ │ -49d1ae: 0e00 |0123: return-void │ │ +49cf54: |[49cf54] org.purple.smokestack.TcpNeighbor.connect:()V │ │ +49cf64: 6e10 82d2 0a00 |0000: invoke-virtual {v10}, Lorg/purple/smokestack/TcpNeighbor;.connected:()Z // method@d282 │ │ +49cf6a: 0a00 |0003: move-result v0 │ │ +49cf6c: 3800 0300 |0004: if-eqz v0, 0007 // +0003 │ │ +49cf70: 0e00 |0006: return-void │ │ +49cf72: 54a0 9769 |0007: iget-object v0, v10, Lorg/purple/smokestack/TcpNeighbor;.m_oid:Ljava/util/concurrent/atomic/AtomicInteger; // field@6997 │ │ +49cf76: 6e10 1c61 0000 |0009: invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@611c │ │ +49cf7c: 0a00 |000c: move-result v0 │ │ +49cf7e: 3b00 0300 |000d: if-gez v0, 0010 // +0003 │ │ +49cf82: 0e00 |000f: return-void │ │ +49cf84: 54a0 8969 |0010: iget-object v0, v10, Lorg/purple/smokestack/TcpNeighbor;.m_bytesRead:Ljava/util/concurrent/atomic/AtomicLong; // field@6989 │ │ +49cf88: 1601 0000 |0012: const-wide/16 v1, #int 0 // #0 │ │ +49cf8c: 6e30 2461 1002 |0014: invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ +49cf92: 54a0 8a69 |0017: iget-object v0, v10, Lorg/purple/smokestack/TcpNeighbor;.m_bytesWritten:Ljava/util/concurrent/atomic/AtomicLong; // field@698a │ │ +49cf96: 6e30 2461 1002 |0019: invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ +49cf9c: 54a0 8f69 |001c: iget-object v0, v10, Lorg/purple/smokestack/TcpNeighbor;.m_handshakeCompleted:Ljava/util/concurrent/atomic/AtomicBoolean; // field@698f │ │ +49cfa0: 1201 |001e: const/4 v1, #int 0 // #0 │ │ +49cfa2: 6e20 1a61 1000 |001f: invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ +49cfa8: 54a0 9469 |0022: iget-object v0, v10, Lorg/purple/smokestack/TcpNeighbor;.m_lastParsed:Ljava/util/concurrent/atomic/AtomicLong; // field@6994 │ │ +49cfac: 7100 2b5d 0000 |0024: invoke-static {}, Ljava/lang/System;.currentTimeMillis:()J // method@5d2b │ │ +49cfb2: 0b02 |0027: move-result-wide v2 │ │ +49cfb4: 6e30 2461 2003 |0028: invoke-virtual {v0, v2, v3}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ +49cfba: 54a0 9569 |002b: iget-object v0, v10, Lorg/purple/smokestack/TcpNeighbor;.m_lastTimeRead:Ljava/util/concurrent/atomic/AtomicLong; // field@6995 │ │ +49cfbe: 7100 315d 0000 |002d: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@5d31 │ │ +49cfc4: 0b02 |0030: move-result-wide v2 │ │ +49cfc6: 6e30 2461 2003 |0031: invoke-virtual {v0, v2, v3}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ +49cfcc: 2200 1a0b |0034: new-instance v0, Ljava/net/InetSocketAddress; // type@0b1a │ │ +49cfd0: 54a2 9069 |0036: iget-object v2, v10, Lorg/purple/smokestack/TcpNeighbor;.m_ipAddress:Ljava/lang/String; // field@6990 │ │ +49cfd4: 54a3 9169 |0038: iget-object v3, v10, Lorg/purple/smokestack/TcpNeighbor;.m_ipPort:Ljava/lang/String; // field@6991 │ │ +49cfd8: 7110 6f5c 0300 |003a: invoke-static {v3}, Ljava/lang/Integer;.parseInt:(Ljava/lang/String;)I // method@5c6f │ │ +49cfde: 0a03 |003d: move-result v3 │ │ +49cfe0: 7030 b25d 2003 |003e: invoke-direct {v0, v2, v3}, Ljava/net/InetSocketAddress;.:(Ljava/lang/String;I)V // method@5db2 │ │ +49cfe6: 6002 6b00 |0041: sget v2, Landroid/os/Build$VERSION;.SDK_INT:I // field@006b │ │ +49cfea: 1303 1500 |0043: const/16 v3, #int 21 // #15 │ │ +49cfee: 3532 0900 |0045: if-ge v2, v3, 004e // +0009 │ │ +49cff2: 1a02 e54f |0047: const-string v2, "SSL" // string@4fe5 │ │ +49cff6: 7110 e261 0200 |0049: invoke-static {v2}, Ljavax/net/ssl/SSLContext;.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/SSLContext; // method@61e2 │ │ +49cffc: 0c02 |004c: move-result-object v2 │ │ +49cffe: 2807 |004d: goto 0054 // +0007 │ │ +49d000: 1a02 9653 |004e: const-string v2, "TLS" // string@5396 │ │ +49d004: 7110 e261 0200 |0050: invoke-static {v2}, Ljavax/net/ssl/SSLContext;.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/SSLContext; // method@61e2 │ │ +49d00a: 0c02 |0053: move-result-object v2 │ │ +49d00c: 1203 |0054: const/4 v3, #int 0 // #0 │ │ +49d00e: 54a4 a569 |0055: iget-object v4, v10, Lorg/purple/smokestack/TcpNeighbor;.m_trustManagers:[Ljavax/net/ssl/TrustManager; // field@69a5 │ │ +49d012: 2205 590b |0057: new-instance v5, Ljava/security/SecureRandom; // type@0b59 │ │ +49d016: 7010 685e 0500 |0059: invoke-direct {v5}, Ljava/security/SecureRandom;.:()V // method@5e68 │ │ +49d01c: 6e40 e661 3254 |005c: invoke-virtual {v2, v3, v4, v5}, Ljavax/net/ssl/SSLContext;.init:([Ljavax/net/ssl/KeyManager;[Ljavax/net/ssl/TrustManager;Ljava/security/SecureRandom;)V // method@61e6 │ │ +49d022: 54a3 9a69 |005f: iget-object v3, v10, Lorg/purple/smokestack/TcpNeighbor;.m_proxyInetSocketAddress:Ljava/net/InetSocketAddress; // field@699a │ │ +49d026: 1214 |0061: const/4 v4, #int 1 // #1 │ │ +49d028: 1305 1027 |0062: const/16 v5, #int 10000 // #2710 │ │ +49d02c: 1506 0100 |0064: const/high16 v6, #int 65536 // #1 │ │ +49d030: 3903 1c00 |0066: if-nez v3, 0082 // +001c │ │ +49d034: 6e10 e561 0200 |0068: invoke-virtual {v2}, Ljavax/net/ssl/SSLContext;.getSocketFactory:()Ljavax/net/ssl/SSLSocketFactory; // method@61e5 │ │ +49d03a: 0c02 |006b: move-result-object v2 │ │ +49d03c: 6e10 0b62 0200 |006c: invoke-virtual {v2}, Ljavax/net/ssl/SSLSocketFactory;.createSocket:()Ljava/net/Socket; // method@620b │ │ +49d042: 0c02 |006f: move-result-object v2 │ │ +49d044: 1f02 390c |0070: check-cast v2, Ljavax/net/ssl/SSLSocket; // type@0c39 │ │ +49d048: 5ba2 a269 |0072: iput-object v2, v10, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49d04c: 6e20 0562 6200 |0074: invoke-virtual {v2, v6}, Ljavax/net/ssl/SSLSocket;.setReceiveBufferSize:(I)V // method@6205 │ │ +49d052: 54a2 a269 |0077: iget-object v2, v10, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49d056: 6e20 0662 6200 |0079: invoke-virtual {v2, v6}, Ljavax/net/ssl/SSLSocket;.setSendBufferSize:(I)V // method@6206 │ │ +49d05c: 54a2 a269 |007c: iget-object v2, v10, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49d060: 6e30 f761 0205 |007e: invoke-virtual {v2, v0, v5}, Ljavax/net/ssl/SSLSocket;.connect:(Ljava/net/SocketAddress;I)V // method@61f7 │ │ +49d066: 2841 |0081: goto 00c2 // +0041 │ │ +49d068: 54a3 9d69 |0082: iget-object v3, v10, Lorg/purple/smokestack/TcpNeighbor;.m_proxyType:Ljava/lang/String; // field@699d │ │ +49d06c: 1a07 4f1e |0084: const-string v7, "HTTP" // string@1e4f │ │ +49d070: 6e20 da5c 7300 |0086: invoke-virtual {v3, v7}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ +49d076: 0a03 |0089: move-result v3 │ │ +49d078: 3803 1100 |008a: if-eqz v3, 009b // +0011 │ │ +49d07c: 2203 210b |008c: new-instance v3, Ljava/net/Socket; // type@0b21 │ │ +49d080: 2207 1f0b |008e: new-instance v7, Ljava/net/Proxy; // type@0b1f │ │ +49d084: 6208 032d |0090: sget-object v8, Ljava/net/Proxy$Type;.HTTP:Ljava/net/Proxy$Type; // field@2d03 │ │ +49d088: 54a9 9a69 |0092: iget-object v9, v10, Lorg/purple/smokestack/TcpNeighbor;.m_proxyInetSocketAddress:Ljava/net/InetSocketAddress; // field@699a │ │ +49d08c: 7030 c25d 8709 |0094: invoke-direct {v7, v8, v9}, Ljava/net/Proxy;.:(Ljava/net/Proxy$Type;Ljava/net/SocketAddress;)V // method@5dc2 │ │ +49d092: 7020 c35d 7300 |0097: invoke-direct {v3, v7}, Ljava/net/Socket;.:(Ljava/net/Proxy;)V // method@5dc3 │ │ +49d098: 280f |009a: goto 00a9 // +000f │ │ +49d09a: 2203 210b |009b: new-instance v3, Ljava/net/Socket; // type@0b21 │ │ +49d09e: 2207 1f0b |009d: new-instance v7, Ljava/net/Proxy; // type@0b1f │ │ +49d0a2: 6208 042d |009f: sget-object v8, Ljava/net/Proxy$Type;.SOCKS:Ljava/net/Proxy$Type; // field@2d04 │ │ +49d0a6: 54a9 9a69 |00a1: iget-object v9, v10, Lorg/purple/smokestack/TcpNeighbor;.m_proxyInetSocketAddress:Ljava/net/InetSocketAddress; // field@699a │ │ +49d0aa: 7030 c25d 8709 |00a3: invoke-direct {v7, v8, v9}, Ljava/net/Proxy;.:(Ljava/net/Proxy$Type;Ljava/net/SocketAddress;)V // method@5dc2 │ │ +49d0b0: 7020 c35d 7300 |00a6: invoke-direct {v3, v7}, Ljava/net/Socket;.:(Ljava/net/Proxy;)V // method@5dc3 │ │ +49d0b6: 6e20 c65d 6300 |00a9: invoke-virtual {v3, v6}, Ljava/net/Socket;.setReceiveBufferSize:(I)V // method@5dc6 │ │ +49d0bc: 6e20 c75d 6300 |00ac: invoke-virtual {v3, v6}, Ljava/net/Socket;.setSendBufferSize:(I)V // method@5dc7 │ │ +49d0c2: 6e30 c55d 0305 |00af: invoke-virtual {v3, v0, v5}, Ljava/net/Socket;.connect:(Ljava/net/SocketAddress;I)V // method@5dc5 │ │ +49d0c8: 6e10 e561 0200 |00b2: invoke-virtual {v2}, Ljavax/net/ssl/SSLContext;.getSocketFactory:()Ljavax/net/ssl/SSLSocketFactory; // method@61e5 │ │ +49d0ce: 0c00 |00b5: move-result-object v0 │ │ +49d0d0: 54a2 9b69 |00b6: iget-object v2, v10, Lorg/purple/smokestack/TcpNeighbor;.m_proxyIpAddress:Ljava/lang/String; // field@699b │ │ +49d0d4: 52a6 9c69 |00b8: iget v6, v10, Lorg/purple/smokestack/TcpNeighbor;.m_proxyPort:I // field@699c │ │ +49d0d8: 6e54 0d62 3062 |00ba: invoke-virtual {v0, v3, v2, v6, v4}, Ljavax/net/ssl/SSLSocketFactory;.createSocket:(Ljava/net/Socket;Ljava/lang/String;IZ)Ljava/net/Socket; // method@620d │ │ +49d0de: 0c00 |00bd: move-result-object v0 │ │ +49d0e0: 1f00 390c |00be: check-cast v0, Ljavax/net/ssl/SSLSocket; // type@0c39 │ │ +49d0e4: 5ba0 a269 |00c0: iput-object v0, v10, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49d0e8: 54a0 a269 |00c2: iget-object v0, v10, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49d0ec: 2202 fe1e |00c4: new-instance v2, Lorg/purple/smokestack/TcpNeighbor$6; // type@1efe │ │ +49d0f0: 7020 77d2 a200 |00c6: invoke-direct {v2, v10}, Lorg/purple/smokestack/TcpNeighbor$6;.:(Lorg/purple/smokestack/TcpNeighbor;)V // method@d277 │ │ +49d0f6: 6e20 f561 2000 |00c9: invoke-virtual {v0, v2}, Ljavax/net/ssl/SSLSocket;.addHandshakeCompletedListener:(Ljavax/net/ssl/HandshakeCompletedListener;)V // method@61f5 │ │ +49d0fc: 54a0 a269 |00cc: iget-object v0, v10, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49d100: 54a2 9969 |00ce: iget-object v2, v10, Lorg/purple/smokestack/TcpNeighbor;.m_protocols:[Ljava/lang/String; // field@6999 │ │ +49d104: 6e20 0362 2000 |00d0: invoke-virtual {v0, v2}, Ljavax/net/ssl/SSLSocket;.setEnabledProtocols:([Ljava/lang/String;)V // method@6203 │ │ +49d10a: 54a0 a269 |00d3: iget-object v0, v10, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49d10e: 6e20 0462 1000 |00d5: invoke-virtual {v0, v1}, Ljavax/net/ssl/SSLSocket;.setKeepAlive:(Z)V // method@6204 │ │ +49d114: 54a0 a269 |00d8: iget-object v0, v10, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49d118: 6e30 0762 4001 |00da: invoke-virtual {v0, v4, v1}, Ljavax/net/ssl/SSLSocket;.setSoLinger:(ZI)V // method@6207 │ │ +49d11e: 54a0 a269 |00dd: iget-object v0, v10, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49d122: 6e20 0862 5000 |00df: invoke-virtual {v0, v5}, Ljavax/net/ssl/SSLSocket;.setSoTimeout:(I)V // method@6208 │ │ +49d128: 54a0 a269 |00e2: iget-object v0, v10, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49d12c: 6e20 0962 4000 |00e4: invoke-virtual {v0, v4}, Ljavax/net/ssl/SSLSocket;.setTcpNoDelay:(Z)V // method@6209 │ │ +49d132: 54a0 a369 |00e7: iget-object v0, v10, Lorg/purple/smokestack/TcpNeighbor;.m_startTime:Ljava/util/concurrent/atomic/AtomicLong; // field@69a3 │ │ +49d136: 7100 315d 0000 |00e9: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@5d31 │ │ +49d13c: 0b01 |00ec: move-result-wide v1 │ │ +49d13e: 6e30 2461 1002 |00ed: invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ +49d144: 1a00 0000 |00f0: const-string v0, "" // string@0000 │ │ +49d148: 6e20 90d2 0a00 |00f2: invoke-virtual {v10, v0}, Lorg/purple/smokestack/TcpNeighbor;.setError:(Ljava/lang/String;)V // method@d290 │ │ +49d14e: 54a0 9669 |00f5: iget-object v0, v10, Lorg/purple/smokestack/TcpNeighbor;.m_mutex:Ljava/lang/Object; // field@6996 │ │ +49d152: 1d00 |00f7: monitor-enter v0 │ │ +49d154: 54a1 9669 |00f8: iget-object v1, v10, Lorg/purple/smokestack/TcpNeighbor;.m_mutex:Ljava/lang/Object; // field@6996 │ │ +49d158: 6e10 b45c 0100 |00fa: invoke-virtual {v1}, Ljava/lang/Object;.notifyAll:()V // method@5cb4 │ │ +49d15e: 1e00 |00fd: monitor-exit v0 │ │ +49d160: 2825 |00fe: goto 0123 // +0025 │ │ +49d162: 0d01 |00ff: move-exception v1 │ │ +49d164: 1e00 |0100: monitor-exit v0 │ │ +49d166: 2701 |0101: throw v1 │ │ +49d168: 0d00 |0102: move-exception v0 │ │ +49d16a: 2201 fc0a |0103: new-instance v1, Ljava/lang/StringBuilder; // type@0afc │ │ +49d16e: 7010 125d 0100 |0105: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ +49d174: 1a02 1a0e |0108: const-string v2, "An error (" // string@0e1a │ │ +49d178: 6e20 1d5d 2100 |010a: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49d17e: 6e10 505c 0000 |010d: invoke-virtual {v0}, Ljava/lang/Exception;.getMessage:()Ljava/lang/String; // method@5c50 │ │ +49d184: 0c00 |0110: move-result-object v0 │ │ +49d186: 6e20 1d5d 0100 |0111: invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49d18c: 1a00 3004 |0114: const-string v0, ") occurred while attempting a connection." // string@0430 │ │ +49d190: 6e20 1d5d 0100 |0116: invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49d196: 6e10 285d 0100 |0119: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ +49d19c: 0c00 |011c: move-result-object v0 │ │ +49d19e: 6e20 90d2 0a00 |011d: invoke-virtual {v10, v0}, Lorg/purple/smokestack/TcpNeighbor;.setError:(Ljava/lang/String;)V // method@d290 │ │ +49d1a4: 6e10 83d2 0a00 |0120: invoke-virtual {v10}, Lorg/purple/smokestack/TcpNeighbor;.disconnect:()V // method@d283 │ │ +49d1aa: 0e00 |0123: return-void │ │ catches : 3 │ │ 0x0010 - 0x00f8 │ │ Ljava/lang/Exception; -> 0x0102 │ │ 0x00f8 - 0x0101 │ │ -> 0x00ff │ │ 0x0101 - 0x0102 │ │ Ljava/lang/Exception; -> 0x0102 │ │ @@ -1269213,34 +1269212,34 @@ │ │ type : '()Z' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 35 16-bit code units │ │ -49c7ec: |[49c7ec] org.purple.smokestack.TcpNeighbor.connected:()Z │ │ -49c7fc: 1200 |0000: const/4 v0, #int 0 // #0 │ │ -49c7fe: 6e10 8ad2 0200 |0001: invoke-virtual {v2}, Lorg/purple/smokestack/TcpNeighbor;.isNetworkConnected:()Z // method@d28a │ │ -49c804: 0a01 |0004: move-result v1 │ │ -49c806: 3801 1d00 |0005: if-eqz v1, 0022 // +001d │ │ -49c80a: 5421 8f69 |0007: iget-object v1, v2, Lorg/purple/smokestack/TcpNeighbor;.m_handshakeCompleted:Ljava/util/concurrent/atomic/AtomicBoolean; // field@698f │ │ -49c80e: 6e10 1861 0100 |0009: invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ -49c814: 0a01 |000c: move-result v1 │ │ -49c816: 3801 1500 |000d: if-eqz v1, 0022 // +0015 │ │ -49c81a: 5421 9369 |000f: iget-object v1, v2, Lorg/purple/smokestack/TcpNeighbor;.m_isValidCertificate:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6993 │ │ -49c81e: 6e10 1861 0100 |0011: invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ -49c824: 0a01 |0014: move-result v1 │ │ -49c826: 3801 0d00 |0015: if-eqz v1, 0022 // +000d │ │ -49c82a: 5421 a269 |0017: iget-object v1, v2, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49c82e: 3801 0900 |0019: if-eqz v1, 0022 // +0009 │ │ -49c832: 6e10 0162 0100 |001b: invoke-virtual {v1}, Ljavax/net/ssl/SSLSocket;.isClosed:()Z // method@6201 │ │ -49c838: 0a01 |001e: move-result v1 │ │ -49c83a: 3901 0300 |001f: if-nez v1, 0022 // +0003 │ │ -49c83e: 1210 |0021: const/4 v0, #int 1 // #1 │ │ -49c840: 0f00 |0022: return v0 │ │ +49c7e8: |[49c7e8] org.purple.smokestack.TcpNeighbor.connected:()Z │ │ +49c7f8: 1200 |0000: const/4 v0, #int 0 // #0 │ │ +49c7fa: 6e10 8ad2 0200 |0001: invoke-virtual {v2}, Lorg/purple/smokestack/TcpNeighbor;.isNetworkConnected:()Z // method@d28a │ │ +49c800: 0a01 |0004: move-result v1 │ │ +49c802: 3801 1d00 |0005: if-eqz v1, 0022 // +001d │ │ +49c806: 5421 8f69 |0007: iget-object v1, v2, Lorg/purple/smokestack/TcpNeighbor;.m_handshakeCompleted:Ljava/util/concurrent/atomic/AtomicBoolean; // field@698f │ │ +49c80a: 6e10 1861 0100 |0009: invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ +49c810: 0a01 |000c: move-result v1 │ │ +49c812: 3801 1500 |000d: if-eqz v1, 0022 // +0015 │ │ +49c816: 5421 9369 |000f: iget-object v1, v2, Lorg/purple/smokestack/TcpNeighbor;.m_isValidCertificate:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6993 │ │ +49c81a: 6e10 1861 0100 |0011: invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ +49c820: 0a01 |0014: move-result v1 │ │ +49c822: 3801 0d00 |0015: if-eqz v1, 0022 // +000d │ │ +49c826: 5421 a269 |0017: iget-object v1, v2, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49c82a: 3801 0900 |0019: if-eqz v1, 0022 // +0009 │ │ +49c82e: 6e10 0162 0100 |001b: invoke-virtual {v1}, Ljavax/net/ssl/SSLSocket;.isClosed:()Z // method@6201 │ │ +49c834: 0a01 |001e: move-result v1 │ │ +49c836: 3901 0300 |001f: if-nez v1, 0022 // +0003 │ │ +49c83a: 1210 |0021: const/4 v0, #int 1 // #1 │ │ +49c83c: 0f00 |0022: return v0 │ │ catches : 1 │ │ 0x0001 - 0x001f │ │ Ljava/lang/Exception; -> 0x0022 │ │ positions : │ │ 0x0001 line=143 │ │ 0x0009 line=144 │ │ 0x0011 line=145 │ │ @@ -1269253,71 +1269252,71 @@ │ │ type : '()V' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 6 │ │ ins : 1 │ │ outs : 3 │ │ insns size : 119 16-bit code units │ │ -49d1d4: |[49d1d4] org.purple.smokestack.TcpNeighbor.disconnect:()V │ │ -49d1e4: 6f10 56d1 0500 |0000: invoke-super {v5}, Lorg/purple/smokestack/Neighbor;.disconnect:()V // method@d156 │ │ -49d1ea: 5450 8c69 |0003: iget-object v0, v5, Lorg/purple/smokestack/TcpNeighbor;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@698c │ │ -49d1ee: 5451 a769 |0005: iget-object v1, v5, Lorg/purple/smokestack/TcpNeighbor;.m_uuid:Ljava/util/UUID; // field@69a7 │ │ -49d1f2: 6e10 d160 0100 |0007: invoke-virtual {v1}, Ljava/util/UUID;.toString:()Ljava/lang/String; // method@60d1 │ │ -49d1f8: 0c01 |000a: move-result-object v1 │ │ -49d1fa: 6e20 b1d0 1000 |000b: invoke-virtual {v0, v1}, Lorg/purple/smokestack/Database;.deleteRoutingEntry:(Ljava/lang/String;)V // method@d0b1 │ │ -49d200: 1200 |000e: const/4 v0, #int 0 // #0 │ │ -49d202: 1201 |000f: const/4 v1, #int 0 // #0 │ │ -49d204: 5452 a269 |0010: iget-object v2, v5, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49d208: 3802 0500 |0012: if-eqz v2, 0017 // +0005 │ │ -49d20c: 6e10 f661 0200 |0014: invoke-virtual {v2}, Ljavax/net/ssl/SSLSocket;.close:()V // method@61f6 │ │ -49d212: 5452 8f69 |0017: iget-object v2, v5, Lorg/purple/smokestack/TcpNeighbor;.m_handshakeCompleted:Ljava/util/concurrent/atomic/AtomicBoolean; // field@698f │ │ -49d216: 6e20 1a61 1200 |0019: invoke-virtual {v2, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ -49d21c: 5452 9769 |001c: iget-object v2, v5, Lorg/purple/smokestack/TcpNeighbor;.m_oid:Ljava/util/concurrent/atomic/AtomicInteger; // field@6997 │ │ -49d220: 6e10 1c61 0200 |001e: invoke-virtual {v2}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@611c │ │ -49d226: 0a02 |0021: move-result v2 │ │ -49d228: 3a02 3f00 |0022: if-ltz v2, 0061 // +003f │ │ -49d22c: 2838 |0024: goto 005c // +0038 │ │ -49d22e: 0d02 |0025: move-exception v2 │ │ -49d230: 5453 8f69 |0026: iget-object v3, v5, Lorg/purple/smokestack/TcpNeighbor;.m_handshakeCompleted:Ljava/util/concurrent/atomic/AtomicBoolean; // field@698f │ │ -49d234: 6e20 1a61 1300 |0028: invoke-virtual {v3, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ -49d23a: 5453 9769 |002b: iget-object v3, v5, Lorg/purple/smokestack/TcpNeighbor;.m_oid:Ljava/util/concurrent/atomic/AtomicInteger; // field@6997 │ │ -49d23e: 6e10 1c61 0300 |002d: invoke-virtual {v3}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@611c │ │ -49d244: 0a03 |0030: move-result v3 │ │ -49d246: 3a03 0700 |0031: if-ltz v3, 0038 // +0007 │ │ -49d24a: 5453 9369 |0033: iget-object v3, v5, Lorg/purple/smokestack/TcpNeighbor;.m_isValidCertificate:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6993 │ │ -49d24e: 6e20 1a61 1300 |0035: invoke-virtual {v3, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ -49d254: 5453 9e69 |0038: iget-object v3, v5, Lorg/purple/smokestack/TcpNeighbor;.m_randomBuffer:Ljava/lang/StringBuffer; // field@699e │ │ -49d258: 5454 9e69 |003a: iget-object v4, v5, Lorg/purple/smokestack/TcpNeighbor;.m_randomBuffer:Ljava/lang/StringBuffer; // field@699e │ │ -49d25c: 6e10 0c5d 0400 |003c: invoke-virtual {v4}, Ljava/lang/StringBuffer;.length:()I // method@5d0c │ │ -49d262: 0a04 |003f: move-result v4 │ │ -49d264: 6e30 085d 1304 |0040: invoke-virtual {v3, v1, v4}, Ljava/lang/StringBuffer;.delete:(II)Ljava/lang/StringBuffer; // method@5d08 │ │ -49d26a: 5451 9e69 |0043: iget-object v1, v5, Lorg/purple/smokestack/TcpNeighbor;.m_randomBuffer:Ljava/lang/StringBuffer; // field@699e │ │ -49d26e: 6e10 115d 0100 |0045: invoke-virtual {v1}, Ljava/lang/StringBuffer;.trimToSize:()V // method@5d11 │ │ -49d274: 5b50 a269 |0048: iput-object v0, v5, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49d278: 6e10 8cd2 0500 |004a: invoke-virtual {v5}, Lorg/purple/smokestack/TcpNeighbor;.reset:()V // method@d28c │ │ -49d27e: 2702 |004d: throw v2 │ │ -49d280: 0000 |004e: nop // spacer │ │ -49d282: 5452 8f69 |004f: iget-object v2, v5, Lorg/purple/smokestack/TcpNeighbor;.m_handshakeCompleted:Ljava/util/concurrent/atomic/AtomicBoolean; // field@698f │ │ -49d286: 6e20 1a61 1200 |0051: invoke-virtual {v2, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ -49d28c: 5452 9769 |0054: iget-object v2, v5, Lorg/purple/smokestack/TcpNeighbor;.m_oid:Ljava/util/concurrent/atomic/AtomicInteger; // field@6997 │ │ -49d290: 6e10 1c61 0200 |0056: invoke-virtual {v2}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@611c │ │ -49d296: 0a02 |0059: move-result v2 │ │ -49d298: 3a02 0700 |005a: if-ltz v2, 0061 // +0007 │ │ -49d29c: 5452 9369 |005c: iget-object v2, v5, Lorg/purple/smokestack/TcpNeighbor;.m_isValidCertificate:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6993 │ │ -49d2a0: 6e20 1a61 1200 |005e: invoke-virtual {v2, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ -49d2a6: 5452 9e69 |0061: iget-object v2, v5, Lorg/purple/smokestack/TcpNeighbor;.m_randomBuffer:Ljava/lang/StringBuffer; // field@699e │ │ -49d2aa: 5453 9e69 |0063: iget-object v3, v5, Lorg/purple/smokestack/TcpNeighbor;.m_randomBuffer:Ljava/lang/StringBuffer; // field@699e │ │ -49d2ae: 6e10 0c5d 0300 |0065: invoke-virtual {v3}, Ljava/lang/StringBuffer;.length:()I // method@5d0c │ │ -49d2b4: 0a03 |0068: move-result v3 │ │ -49d2b6: 6e30 085d 1203 |0069: invoke-virtual {v2, v1, v3}, Ljava/lang/StringBuffer;.delete:(II)Ljava/lang/StringBuffer; // method@5d08 │ │ -49d2bc: 5451 9e69 |006c: iget-object v1, v5, Lorg/purple/smokestack/TcpNeighbor;.m_randomBuffer:Ljava/lang/StringBuffer; // field@699e │ │ -49d2c0: 6e10 115d 0100 |006e: invoke-virtual {v1}, Ljava/lang/StringBuffer;.trimToSize:()V // method@5d11 │ │ -49d2c6: 5b50 a269 |0071: iput-object v0, v5, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49d2ca: 6e10 8cd2 0500 |0073: invoke-virtual {v5}, Lorg/purple/smokestack/TcpNeighbor;.reset:()V // method@d28c │ │ -49d2d0: 0e00 |0076: return-void │ │ +49d1d0: |[49d1d0] org.purple.smokestack.TcpNeighbor.disconnect:()V │ │ +49d1e0: 6f10 56d1 0500 |0000: invoke-super {v5}, Lorg/purple/smokestack/Neighbor;.disconnect:()V // method@d156 │ │ +49d1e6: 5450 8c69 |0003: iget-object v0, v5, Lorg/purple/smokestack/TcpNeighbor;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@698c │ │ +49d1ea: 5451 a769 |0005: iget-object v1, v5, Lorg/purple/smokestack/TcpNeighbor;.m_uuid:Ljava/util/UUID; // field@69a7 │ │ +49d1ee: 6e10 d160 0100 |0007: invoke-virtual {v1}, Ljava/util/UUID;.toString:()Ljava/lang/String; // method@60d1 │ │ +49d1f4: 0c01 |000a: move-result-object v1 │ │ +49d1f6: 6e20 b1d0 1000 |000b: invoke-virtual {v0, v1}, Lorg/purple/smokestack/Database;.deleteRoutingEntry:(Ljava/lang/String;)V // method@d0b1 │ │ +49d1fc: 1200 |000e: const/4 v0, #int 0 // #0 │ │ +49d1fe: 1201 |000f: const/4 v1, #int 0 // #0 │ │ +49d200: 5452 a269 |0010: iget-object v2, v5, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49d204: 3802 0500 |0012: if-eqz v2, 0017 // +0005 │ │ +49d208: 6e10 f661 0200 |0014: invoke-virtual {v2}, Ljavax/net/ssl/SSLSocket;.close:()V // method@61f6 │ │ +49d20e: 5452 8f69 |0017: iget-object v2, v5, Lorg/purple/smokestack/TcpNeighbor;.m_handshakeCompleted:Ljava/util/concurrent/atomic/AtomicBoolean; // field@698f │ │ +49d212: 6e20 1a61 1200 |0019: invoke-virtual {v2, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ +49d218: 5452 9769 |001c: iget-object v2, v5, Lorg/purple/smokestack/TcpNeighbor;.m_oid:Ljava/util/concurrent/atomic/AtomicInteger; // field@6997 │ │ +49d21c: 6e10 1c61 0200 |001e: invoke-virtual {v2}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@611c │ │ +49d222: 0a02 |0021: move-result v2 │ │ +49d224: 3a02 3f00 |0022: if-ltz v2, 0061 // +003f │ │ +49d228: 2838 |0024: goto 005c // +0038 │ │ +49d22a: 0d02 |0025: move-exception v2 │ │ +49d22c: 5453 8f69 |0026: iget-object v3, v5, Lorg/purple/smokestack/TcpNeighbor;.m_handshakeCompleted:Ljava/util/concurrent/atomic/AtomicBoolean; // field@698f │ │ +49d230: 6e20 1a61 1300 |0028: invoke-virtual {v3, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ +49d236: 5453 9769 |002b: iget-object v3, v5, Lorg/purple/smokestack/TcpNeighbor;.m_oid:Ljava/util/concurrent/atomic/AtomicInteger; // field@6997 │ │ +49d23a: 6e10 1c61 0300 |002d: invoke-virtual {v3}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@611c │ │ +49d240: 0a03 |0030: move-result v3 │ │ +49d242: 3a03 0700 |0031: if-ltz v3, 0038 // +0007 │ │ +49d246: 5453 9369 |0033: iget-object v3, v5, Lorg/purple/smokestack/TcpNeighbor;.m_isValidCertificate:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6993 │ │ +49d24a: 6e20 1a61 1300 |0035: invoke-virtual {v3, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ +49d250: 5453 9e69 |0038: iget-object v3, v5, Lorg/purple/smokestack/TcpNeighbor;.m_randomBuffer:Ljava/lang/StringBuffer; // field@699e │ │ +49d254: 5454 9e69 |003a: iget-object v4, v5, Lorg/purple/smokestack/TcpNeighbor;.m_randomBuffer:Ljava/lang/StringBuffer; // field@699e │ │ +49d258: 6e10 0c5d 0400 |003c: invoke-virtual {v4}, Ljava/lang/StringBuffer;.length:()I // method@5d0c │ │ +49d25e: 0a04 |003f: move-result v4 │ │ +49d260: 6e30 085d 1304 |0040: invoke-virtual {v3, v1, v4}, Ljava/lang/StringBuffer;.delete:(II)Ljava/lang/StringBuffer; // method@5d08 │ │ +49d266: 5451 9e69 |0043: iget-object v1, v5, Lorg/purple/smokestack/TcpNeighbor;.m_randomBuffer:Ljava/lang/StringBuffer; // field@699e │ │ +49d26a: 6e10 115d 0100 |0045: invoke-virtual {v1}, Ljava/lang/StringBuffer;.trimToSize:()V // method@5d11 │ │ +49d270: 5b50 a269 |0048: iput-object v0, v5, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49d274: 6e10 8cd2 0500 |004a: invoke-virtual {v5}, Lorg/purple/smokestack/TcpNeighbor;.reset:()V // method@d28c │ │ +49d27a: 2702 |004d: throw v2 │ │ +49d27c: 0000 |004e: nop // spacer │ │ +49d27e: 5452 8f69 |004f: iget-object v2, v5, Lorg/purple/smokestack/TcpNeighbor;.m_handshakeCompleted:Ljava/util/concurrent/atomic/AtomicBoolean; // field@698f │ │ +49d282: 6e20 1a61 1200 |0051: invoke-virtual {v2, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ +49d288: 5452 9769 |0054: iget-object v2, v5, Lorg/purple/smokestack/TcpNeighbor;.m_oid:Ljava/util/concurrent/atomic/AtomicInteger; // field@6997 │ │ +49d28c: 6e10 1c61 0200 |0056: invoke-virtual {v2}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@611c │ │ +49d292: 0a02 |0059: move-result v2 │ │ +49d294: 3a02 0700 |005a: if-ltz v2, 0061 // +0007 │ │ +49d298: 5452 9369 |005c: iget-object v2, v5, Lorg/purple/smokestack/TcpNeighbor;.m_isValidCertificate:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6993 │ │ +49d29c: 6e20 1a61 1200 |005e: invoke-virtual {v2, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ +49d2a2: 5452 9e69 |0061: iget-object v2, v5, Lorg/purple/smokestack/TcpNeighbor;.m_randomBuffer:Ljava/lang/StringBuffer; // field@699e │ │ +49d2a6: 5453 9e69 |0063: iget-object v3, v5, Lorg/purple/smokestack/TcpNeighbor;.m_randomBuffer:Ljava/lang/StringBuffer; // field@699e │ │ +49d2aa: 6e10 0c5d 0300 |0065: invoke-virtual {v3}, Ljava/lang/StringBuffer;.length:()I // method@5d0c │ │ +49d2b0: 0a03 |0068: move-result v3 │ │ +49d2b2: 6e30 085d 1203 |0069: invoke-virtual {v2, v1, v3}, Ljava/lang/StringBuffer;.delete:(II)Ljava/lang/StringBuffer; // method@5d08 │ │ +49d2b8: 5451 9e69 |006c: iget-object v1, v5, Lorg/purple/smokestack/TcpNeighbor;.m_randomBuffer:Ljava/lang/StringBuffer; // field@699e │ │ +49d2bc: 6e10 115d 0100 |006e: invoke-virtual {v1}, Ljava/lang/StringBuffer;.trimToSize:()V // method@5d11 │ │ +49d2c2: 5b50 a269 |0071: iput-object v0, v5, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49d2c6: 6e10 8cd2 0500 |0073: invoke-virtual {v5}, Lorg/purple/smokestack/TcpNeighbor;.reset:()V // method@d28c │ │ +49d2cc: 0e00 |0076: return-void │ │ catches : 1 │ │ 0x0010 - 0x0017 │ │ Ljava/lang/Exception; -> 0x004e │ │ -> 0x0025 │ │ positions : │ │ 0x0000 line=211 │ │ 0x0003 line=212 │ │ @@ -1269348,36 +1269347,36 @@ │ │ type : '()Ljava/lang/String;' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 38 16-bit code units │ │ -49c990: |[49c990] org.purple.smokestack.TcpNeighbor.getLocalIp:()Ljava/lang/String; │ │ -49c9a0: 5420 a269 |0000: iget-object v0, v2, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49c9a4: 3800 1400 |0002: if-eqz v0, 0016 // +0014 │ │ -49c9a8: 6e10 fa61 0000 |0004: invoke-virtual {v0}, Ljavax/net/ssl/SSLSocket;.getLocalAddress:()Ljava/net/InetAddress; // method@61fa │ │ -49c9ae: 0c00 |0007: move-result-object v0 │ │ -49c9b0: 3800 0e00 |0008: if-eqz v0, 0016 // +000e │ │ -49c9b4: 5420 a269 |000a: iget-object v0, v2, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49c9b8: 6e10 fa61 0000 |000c: invoke-virtual {v0}, Ljavax/net/ssl/SSLSocket;.getLocalAddress:()Ljava/net/InetAddress; // method@61fa │ │ -49c9be: 0c00 |000f: move-result-object v0 │ │ -49c9c0: 6e10 af5d 0000 |0010: invoke-virtual {v0}, Ljava/net/InetAddress;.getHostAddress:()Ljava/lang/String; // method@5daf │ │ -49c9c6: 0c00 |0013: move-result-object v0 │ │ -49c9c8: 1100 |0014: return-object v0 │ │ -49c9ca: 0000 |0015: nop // spacer │ │ -49c9cc: 5420 a869 |0016: iget-object v0, v2, Lorg/purple/smokestack/TcpNeighbor;.m_version:Ljava/lang/String; // field@69a8 │ │ -49c9d0: 1a01 a11f |0018: const-string v1, "IPv4" // string@1fa1 │ │ -49c9d4: 6e20 da5c 1000 |001a: invoke-virtual {v0, v1}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ -49c9da: 0a00 |001d: move-result v0 │ │ -49c9dc: 3800 0500 |001e: if-eqz v0, 0023 // +0005 │ │ -49c9e0: 1a00 2505 |0020: const-string v0, "0.0.0.0" // string@0525 │ │ -49c9e4: 1100 |0022: return-object v0 │ │ -49c9e6: 1a00 1809 |0023: const-string v0, "::" // string@0918 │ │ -49c9ea: 1100 |0025: return-object v0 │ │ +49c98c: |[49c98c] org.purple.smokestack.TcpNeighbor.getLocalIp:()Ljava/lang/String; │ │ +49c99c: 5420 a269 |0000: iget-object v0, v2, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49c9a0: 3800 1400 |0002: if-eqz v0, 0016 // +0014 │ │ +49c9a4: 6e10 fa61 0000 |0004: invoke-virtual {v0}, Ljavax/net/ssl/SSLSocket;.getLocalAddress:()Ljava/net/InetAddress; // method@61fa │ │ +49c9aa: 0c00 |0007: move-result-object v0 │ │ +49c9ac: 3800 0e00 |0008: if-eqz v0, 0016 // +000e │ │ +49c9b0: 5420 a269 |000a: iget-object v0, v2, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49c9b4: 6e10 fa61 0000 |000c: invoke-virtual {v0}, Ljavax/net/ssl/SSLSocket;.getLocalAddress:()Ljava/net/InetAddress; // method@61fa │ │ +49c9ba: 0c00 |000f: move-result-object v0 │ │ +49c9bc: 6e10 af5d 0000 |0010: invoke-virtual {v0}, Ljava/net/InetAddress;.getHostAddress:()Ljava/lang/String; // method@5daf │ │ +49c9c2: 0c00 |0013: move-result-object v0 │ │ +49c9c4: 1100 |0014: return-object v0 │ │ +49c9c6: 0000 |0015: nop // spacer │ │ +49c9c8: 5420 a869 |0016: iget-object v0, v2, Lorg/purple/smokestack/TcpNeighbor;.m_version:Ljava/lang/String; // field@69a8 │ │ +49c9cc: 1a01 a11f |0018: const-string v1, "IPv4" // string@1fa1 │ │ +49c9d0: 6e20 da5c 1000 |001a: invoke-virtual {v0, v1}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ +49c9d6: 0a00 |001d: move-result v0 │ │ +49c9d8: 3800 0500 |001e: if-eqz v0, 0023 // +0005 │ │ +49c9dc: 1a00 2505 |0020: const-string v0, "0.0.0.0" // string@0525 │ │ +49c9e0: 1100 |0022: return-object v0 │ │ +49c9e2: 1a00 1809 |0023: const-string v0, "::" // string@0918 │ │ +49c9e6: 1100 |0025: return-object v0 │ │ catches : 1 │ │ 0x0000 - 0x0014 │ │ Ljava/lang/Exception; -> 0x0015 │ │ positions : │ │ 0x0000 line=91 │ │ 0x000a line=92 │ │ 0x0016 line=98 │ │ @@ -1269389,26 +1269388,26 @@ │ │ type : '()I' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 19 16-bit code units │ │ -49c910: |[49c910] org.purple.smokestack.TcpNeighbor.getLocalPort:()I │ │ -49c920: 5410 a269 |0000: iget-object v0, v1, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49c924: 3800 0f00 |0002: if-eqz v0, 0011 // +000f │ │ -49c928: 6e10 0162 0000 |0004: invoke-virtual {v0}, Ljavax/net/ssl/SSLSocket;.isClosed:()Z // method@6201 │ │ -49c92e: 0a00 |0007: move-result v0 │ │ -49c930: 3900 0900 |0008: if-nez v0, 0011 // +0009 │ │ -49c934: 5410 a269 |000a: iget-object v0, v1, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49c938: 6e10 fb61 0000 |000c: invoke-virtual {v0}, Ljavax/net/ssl/SSLSocket;.getLocalPort:()I // method@61fb │ │ -49c93e: 0a00 |000f: move-result v0 │ │ -49c940: 0f00 |0010: return v0 │ │ -49c942: 1200 |0011: const/4 v0, #int 0 // #0 │ │ -49c944: 0f00 |0012: return v0 │ │ +49c90c: |[49c90c] org.purple.smokestack.TcpNeighbor.getLocalPort:()I │ │ +49c91c: 5410 a269 |0000: iget-object v0, v1, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49c920: 3800 0f00 |0002: if-eqz v0, 0011 // +000f │ │ +49c924: 6e10 0162 0000 |0004: invoke-virtual {v0}, Ljavax/net/ssl/SSLSocket;.isClosed:()Z // method@6201 │ │ +49c92a: 0a00 |0007: move-result v0 │ │ +49c92c: 3900 0900 |0008: if-nez v0, 0011 // +0009 │ │ +49c930: 5410 a269 |000a: iget-object v0, v1, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49c934: 6e10 fb61 0000 |000c: invoke-virtual {v0}, Ljavax/net/ssl/SSLSocket;.getLocalPort:()I // method@61fb │ │ +49c93a: 0a00 |000f: move-result v0 │ │ +49c93c: 0f00 |0010: return v0 │ │ +49c93e: 1200 |0011: const/4 v0, #int 0 // #0 │ │ +49c940: 0f00 |0012: return v0 │ │ catches : 1 │ │ 0x0000 - 0x0010 │ │ Ljava/lang/Exception; -> 0x0011 │ │ positions : │ │ 0x0000 line=185 │ │ 0x000a line=186 │ │ locals : │ │ @@ -1269419,36 +1269418,36 @@ │ │ type : '()Ljava/lang/String;' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 38 16-bit code units │ │ -49c9fc: |[49c9fc] org.purple.smokestack.TcpNeighbor.getRemoteIp:()Ljava/lang/String; │ │ -49ca0c: 5420 a269 |0000: iget-object v0, v2, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49ca10: 3800 1400 |0002: if-eqz v0, 0016 // +0014 │ │ -49ca14: 6e10 f861 0000 |0004: invoke-virtual {v0}, Ljavax/net/ssl/SSLSocket;.getInetAddress:()Ljava/net/InetAddress; // method@61f8 │ │ -49ca1a: 0c00 |0007: move-result-object v0 │ │ -49ca1c: 3800 0e00 |0008: if-eqz v0, 0016 // +000e │ │ -49ca20: 5420 a269 |000a: iget-object v0, v2, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49ca24: 6e10 f861 0000 |000c: invoke-virtual {v0}, Ljavax/net/ssl/SSLSocket;.getInetAddress:()Ljava/net/InetAddress; // method@61f8 │ │ -49ca2a: 0c00 |000f: move-result-object v0 │ │ -49ca2c: 6e10 af5d 0000 |0010: invoke-virtual {v0}, Ljava/net/InetAddress;.getHostAddress:()Ljava/lang/String; // method@5daf │ │ -49ca32: 0c00 |0013: move-result-object v0 │ │ -49ca34: 1100 |0014: return-object v0 │ │ -49ca36: 0000 |0015: nop // spacer │ │ -49ca38: 5420 a869 |0016: iget-object v0, v2, Lorg/purple/smokestack/TcpNeighbor;.m_version:Ljava/lang/String; // field@69a8 │ │ -49ca3c: 1a01 a11f |0018: const-string v1, "IPv4" // string@1fa1 │ │ -49ca40: 6e20 da5c 1000 |001a: invoke-virtual {v0, v1}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ -49ca46: 0a00 |001d: move-result v0 │ │ -49ca48: 3800 0500 |001e: if-eqz v0, 0023 // +0005 │ │ -49ca4c: 1a00 2505 |0020: const-string v0, "0.0.0.0" // string@0525 │ │ -49ca50: 1100 |0022: return-object v0 │ │ -49ca52: 1a00 1809 |0023: const-string v0, "::" // string@0918 │ │ -49ca56: 1100 |0025: return-object v0 │ │ +49c9f8: |[49c9f8] org.purple.smokestack.TcpNeighbor.getRemoteIp:()Ljava/lang/String; │ │ +49ca08: 5420 a269 |0000: iget-object v0, v2, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49ca0c: 3800 1400 |0002: if-eqz v0, 0016 // +0014 │ │ +49ca10: 6e10 f861 0000 |0004: invoke-virtual {v0}, Ljavax/net/ssl/SSLSocket;.getInetAddress:()Ljava/net/InetAddress; // method@61f8 │ │ +49ca16: 0c00 |0007: move-result-object v0 │ │ +49ca18: 3800 0e00 |0008: if-eqz v0, 0016 // +000e │ │ +49ca1c: 5420 a269 |000a: iget-object v0, v2, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49ca20: 6e10 f861 0000 |000c: invoke-virtual {v0}, Ljavax/net/ssl/SSLSocket;.getInetAddress:()Ljava/net/InetAddress; // method@61f8 │ │ +49ca26: 0c00 |000f: move-result-object v0 │ │ +49ca28: 6e10 af5d 0000 |0010: invoke-virtual {v0}, Ljava/net/InetAddress;.getHostAddress:()Ljava/lang/String; // method@5daf │ │ +49ca2e: 0c00 |0013: move-result-object v0 │ │ +49ca30: 1100 |0014: return-object v0 │ │ +49ca32: 0000 |0015: nop // spacer │ │ +49ca34: 5420 a869 |0016: iget-object v0, v2, Lorg/purple/smokestack/TcpNeighbor;.m_version:Ljava/lang/String; // field@69a8 │ │ +49ca38: 1a01 a11f |0018: const-string v1, "IPv4" // string@1fa1 │ │ +49ca3c: 6e20 da5c 1000 |001a: invoke-virtual {v0, v1}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ +49ca42: 0a00 |001d: move-result v0 │ │ +49ca44: 3800 0500 |001e: if-eqz v0, 0023 // +0005 │ │ +49ca48: 1a00 2505 |0020: const-string v0, "0.0.0.0" // string@0525 │ │ +49ca4c: 1100 |0022: return-object v0 │ │ +49ca4e: 1a00 1809 |0023: const-string v0, "::" // string@0918 │ │ +49ca52: 1100 |0025: return-object v0 │ │ catches : 1 │ │ 0x0000 - 0x0014 │ │ Ljava/lang/Exception; -> 0x0015 │ │ positions : │ │ 0x0000 line=108 │ │ 0x000a line=109 │ │ 0x0016 line=115 │ │ @@ -1269460,22 +1269459,22 @@ │ │ type : '()I' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 11 16-bit code units │ │ -49c958: |[49c958] org.purple.smokestack.TcpNeighbor.getRemotePort:()I │ │ -49c968: 5410 a269 |0000: iget-object v0, v1, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49c96c: 3800 0700 |0002: if-eqz v0, 0009 // +0007 │ │ -49c970: 6e10 fd61 0000 |0004: invoke-virtual {v0}, Ljavax/net/ssl/SSLSocket;.getPort:()I // method@61fd │ │ -49c976: 0a00 |0007: move-result v0 │ │ -49c978: 0f00 |0008: return v0 │ │ -49c97a: 1200 |0009: const/4 v0, #int 0 // #0 │ │ -49c97c: 0f00 |000a: return v0 │ │ +49c954: |[49c954] org.purple.smokestack.TcpNeighbor.getRemotePort:()I │ │ +49c964: 5410 a269 |0000: iget-object v0, v1, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49c968: 3800 0700 |0002: if-eqz v0, 0009 // +0007 │ │ +49c96c: 6e10 fd61 0000 |0004: invoke-virtual {v0}, Ljavax/net/ssl/SSLSocket;.getPort:()I // method@61fd │ │ +49c972: 0a00 |0007: move-result v0 │ │ +49c974: 0f00 |0008: return v0 │ │ +49c976: 1200 |0009: const/4 v0, #int 0 // #0 │ │ +49c978: 0f00 |000a: return v0 │ │ catches : 1 │ │ 0x0000 - 0x0008 │ │ Ljava/lang/Exception; -> 0x0009 │ │ positions : │ │ 0x0000 line=199 │ │ 0x0004 line=200 │ │ locals : │ │ @@ -1269486,47 +1269485,47 @@ │ │ type : '()Ljava/lang/String;' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 66 16-bit code units │ │ -49ca68: |[49ca68] org.purple.smokestack.TcpNeighbor.getSessionCipher:()Ljava/lang/String; │ │ -49ca78: 5420 a269 |0000: iget-object v0, v2, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49ca7c: 3800 3d00 |0002: if-eqz v0, 003f // +003d │ │ -49ca80: 6e10 fe61 0000 |0004: invoke-virtual {v0}, Ljavax/net/ssl/SSLSocket;.getSession:()Ljavax/net/ssl/SSLSession; // method@61fe │ │ -49ca86: 0c00 |0007: move-result-object v0 │ │ -49ca88: 3800 3700 |0008: if-eqz v0, 003f // +0037 │ │ -49ca8c: 5420 a269 |000a: iget-object v0, v2, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49ca90: 6e10 fe61 0000 |000c: invoke-virtual {v0}, Ljavax/net/ssl/SSLSocket;.getSession:()Ljavax/net/ssl/SSLSession; // method@61fe │ │ -49ca96: 0c00 |000f: move-result-object v0 │ │ -49ca98: 7210 f461 0000 |0010: invoke-interface {v0}, Ljavax/net/ssl/SSLSession;.isValid:()Z // method@61f4 │ │ -49ca9e: 0a00 |0013: move-result v0 │ │ -49caa0: 3800 2b00 |0014: if-eqz v0, 003f // +002b │ │ -49caa4: 2200 fc0a |0016: new-instance v0, Ljava/lang/StringBuilder; // type@0afc │ │ -49caa8: 7010 125d 0000 |0018: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ -49caae: 5421 a269 |001b: iget-object v1, v2, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49cab2: 6e10 fe61 0100 |001d: invoke-virtual {v1}, Ljavax/net/ssl/SSLSocket;.getSession:()Ljavax/net/ssl/SSLSession; // method@61fe │ │ -49cab8: 0c01 |0020: move-result-object v1 │ │ -49caba: 7210 f161 0100 |0021: invoke-interface {v1}, Ljavax/net/ssl/SSLSession;.getCipherSuite:()Ljava/lang/String; // method@61f1 │ │ -49cac0: 0c01 |0024: move-result-object v1 │ │ -49cac2: 6e20 1d5d 1000 |0025: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49cac8: 1a01 f95c |0028: const-string v1, "_" // string@5cf9 │ │ -49cacc: 6e20 1d5d 1000 |002a: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49cad2: 5421 a269 |002d: iget-object v1, v2, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49cad6: 6e10 fe61 0100 |002f: invoke-virtual {v1}, Ljavax/net/ssl/SSLSocket;.getSession:()Ljavax/net/ssl/SSLSession; // method@61fe │ │ -49cadc: 0c01 |0032: move-result-object v1 │ │ -49cade: 7210 f361 0100 |0033: invoke-interface {v1}, Ljavax/net/ssl/SSLSession;.getProtocol:()Ljava/lang/String; // method@61f3 │ │ -49cae4: 0c01 |0036: move-result-object v1 │ │ -49cae6: 6e20 1d5d 1000 |0037: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49caec: 6e10 285d 0000 |003a: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ -49caf2: 0c00 |003d: move-result-object v0 │ │ -49caf4: 1100 |003e: return-object v0 │ │ -49caf6: 1a00 0000 |003f: const-string v0, "" // string@0000 │ │ -49cafa: 1100 |0041: return-object v0 │ │ +49ca64: |[49ca64] org.purple.smokestack.TcpNeighbor.getSessionCipher:()Ljava/lang/String; │ │ +49ca74: 5420 a269 |0000: iget-object v0, v2, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49ca78: 3800 3d00 |0002: if-eqz v0, 003f // +003d │ │ +49ca7c: 6e10 fe61 0000 |0004: invoke-virtual {v0}, Ljavax/net/ssl/SSLSocket;.getSession:()Ljavax/net/ssl/SSLSession; // method@61fe │ │ +49ca82: 0c00 |0007: move-result-object v0 │ │ +49ca84: 3800 3700 |0008: if-eqz v0, 003f // +0037 │ │ +49ca88: 5420 a269 |000a: iget-object v0, v2, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49ca8c: 6e10 fe61 0000 |000c: invoke-virtual {v0}, Ljavax/net/ssl/SSLSocket;.getSession:()Ljavax/net/ssl/SSLSession; // method@61fe │ │ +49ca92: 0c00 |000f: move-result-object v0 │ │ +49ca94: 7210 f461 0000 |0010: invoke-interface {v0}, Ljavax/net/ssl/SSLSession;.isValid:()Z // method@61f4 │ │ +49ca9a: 0a00 |0013: move-result v0 │ │ +49ca9c: 3800 2b00 |0014: if-eqz v0, 003f // +002b │ │ +49caa0: 2200 fc0a |0016: new-instance v0, Ljava/lang/StringBuilder; // type@0afc │ │ +49caa4: 7010 125d 0000 |0018: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ +49caaa: 5421 a269 |001b: iget-object v1, v2, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49caae: 6e10 fe61 0100 |001d: invoke-virtual {v1}, Ljavax/net/ssl/SSLSocket;.getSession:()Ljavax/net/ssl/SSLSession; // method@61fe │ │ +49cab4: 0c01 |0020: move-result-object v1 │ │ +49cab6: 7210 f161 0100 |0021: invoke-interface {v1}, Ljavax/net/ssl/SSLSession;.getCipherSuite:()Ljava/lang/String; // method@61f1 │ │ +49cabc: 0c01 |0024: move-result-object v1 │ │ +49cabe: 6e20 1d5d 1000 |0025: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49cac4: 1a01 f95c |0028: const-string v1, "_" // string@5cf9 │ │ +49cac8: 6e20 1d5d 1000 |002a: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49cace: 5421 a269 |002d: iget-object v1, v2, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49cad2: 6e10 fe61 0100 |002f: invoke-virtual {v1}, Ljavax/net/ssl/SSLSocket;.getSession:()Ljavax/net/ssl/SSLSession; // method@61fe │ │ +49cad8: 0c01 |0032: move-result-object v1 │ │ +49cada: 7210 f361 0100 |0033: invoke-interface {v1}, Ljavax/net/ssl/SSLSession;.getProtocol:()Ljava/lang/String; // method@61f3 │ │ +49cae0: 0c01 |0036: move-result-object v1 │ │ +49cae2: 6e20 1d5d 1000 |0037: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49cae8: 6e10 285d 0000 |003a: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ +49caee: 0c00 |003d: move-result-object v0 │ │ +49caf0: 1100 |003e: return-object v0 │ │ +49caf2: 1a00 0000 |003f: const-string v0, "" // string@0000 │ │ +49caf6: 1100 |0041: return-object v0 │ │ catches : 1 │ │ 0x0000 - 0x003e │ │ Ljava/lang/Exception; -> 0x003f │ │ positions : │ │ 0x0000 line=125 │ │ 0x0004 line=126 │ │ 0x000c line=127 │ │ @@ -1269540,55 +1269539,55 @@ │ │ type : '(Ljava/lang/String;)Z' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 6 │ │ ins : 2 │ │ outs : 3 │ │ insns size : 78 16-bit code units │ │ -49c854: |[49c854] org.purple.smokestack.TcpNeighbor.send:(Ljava/lang/String;)Z │ │ -49c864: 6e10 82d2 0400 |0000: invoke-virtual {v4}, Lorg/purple/smokestack/TcpNeighbor;.connected:()Z // method@d282 │ │ -49c86a: 0a00 |0003: move-result v0 │ │ -49c86c: 1201 |0004: const/4 v1, #int 0 // #0 │ │ -49c86e: 3800 4800 |0005: if-eqz v0, 004d // +0048 │ │ -49c872: 3805 4600 |0007: if-eqz v5, 004d // +0046 │ │ -49c876: 6e10 e65c 0500 |0009: invoke-virtual {v5}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ -49c87c: 0a00 |000c: move-result v0 │ │ -49c87e: 3800 0300 |000d: if-eqz v0, 0010 // +0003 │ │ -49c882: 283e |000f: goto 004d // +003e │ │ -49c884: 5440 9269 |0010: iget-object v0, v4, Lorg/purple/smokestack/TcpNeighbor;.m_isPrivateServer:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6992 │ │ -49c888: 6e10 1861 0000 |0012: invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ -49c88e: 0a00 |0015: move-result v0 │ │ -49c890: 3800 1300 |0016: if-eqz v0, 0029 // +0013 │ │ -49c894: 5440 a069 |0018: iget-object v0, v4, Lorg/purple/smokestack/TcpNeighbor;.m_remoteUserAuthenticated:Ljava/util/concurrent/atomic/AtomicBoolean; // field@69a0 │ │ -49c898: 6e10 1861 0000 |001a: invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ -49c89e: 0a00 |001d: move-result v0 │ │ -49c8a0: 3900 0b00 |001e: if-nez v0, 0029 // +000b │ │ -49c8a4: 1a00 57b3 |0020: const-string v0, "type=0097a&content=" // string@b357 │ │ -49c8a8: 6e20 d85c 0500 |0022: invoke-virtual {v5, v0}, Ljava/lang/String;.contains:(Ljava/lang/CharSequence;)Z // method@5cd8 │ │ -49c8ae: 0a00 |0025: move-result v0 │ │ -49c8b0: 3900 0300 |0026: if-nez v0, 0029 // +0003 │ │ -49c8b4: 0f01 |0028: return v1 │ │ -49c8b6: 5440 a269 |0029: iget-object v0, v4, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49c8ba: 6e10 fc61 0000 |002b: invoke-virtual {v0}, Ljavax/net/ssl/SSLSocket;.getOutputStream:()Ljava/io/OutputStream; // method@61fc │ │ -49c8c0: 0c00 |002e: move-result-object v0 │ │ -49c8c2: 6e10 de5c 0500 |002f: invoke-virtual {v5}, Ljava/lang/String;.getBytes:()[B // method@5cde │ │ -49c8c8: 0c02 |0032: move-result-object v2 │ │ -49c8ca: 6e20 e65b 2000 |0033: invoke-virtual {v0, v2}, Ljava/io/OutputStream;.write:([B)V // method@5be6 │ │ -49c8d0: 7110 13d1 0500 |0036: invoke-static {v5}, Lorg/purple/smokestack/Kernel;.writeCongestionDigest:(Ljava/lang/String;)V // method@d113 │ │ -49c8d6: 5440 8a69 |0039: iget-object v0, v4, Lorg/purple/smokestack/TcpNeighbor;.m_bytesWritten:Ljava/util/concurrent/atomic/AtomicLong; // field@698a │ │ -49c8da: 6e10 e95c 0500 |003b: invoke-virtual {v5}, Ljava/lang/String;.length:()I // method@5ce9 │ │ -49c8e0: 0a05 |003e: move-result v5 │ │ -49c8e2: 8152 |003f: int-to-long v2, v5 │ │ -49c8e4: 6e30 2261 2003 |0040: invoke-virtual {v0, v2, v3}, Ljava/util/concurrent/atomic/AtomicLong;.getAndAdd:(J)J // method@6122 │ │ -49c8ea: 1215 |0043: const/4 v5, #int 1 // #1 │ │ -49c8ec: 0f05 |0044: return v5 │ │ -49c8ee: 1a05 9909 |0045: const-string v5, "A socket error occurred on send()." // string@0999 │ │ -49c8f2: 6e20 90d2 5400 |0047: invoke-virtual {v4, v5}, Lorg/purple/smokestack/TcpNeighbor;.setError:(Ljava/lang/String;)V // method@d290 │ │ -49c8f8: 6e10 83d2 0400 |004a: invoke-virtual {v4}, Lorg/purple/smokestack/TcpNeighbor;.disconnect:()V // method@d283 │ │ -49c8fe: 0f01 |004d: return v1 │ │ +49c850: |[49c850] org.purple.smokestack.TcpNeighbor.send:(Ljava/lang/String;)Z │ │ +49c860: 6e10 82d2 0400 |0000: invoke-virtual {v4}, Lorg/purple/smokestack/TcpNeighbor;.connected:()Z // method@d282 │ │ +49c866: 0a00 |0003: move-result v0 │ │ +49c868: 1201 |0004: const/4 v1, #int 0 // #0 │ │ +49c86a: 3800 4800 |0005: if-eqz v0, 004d // +0048 │ │ +49c86e: 3805 4600 |0007: if-eqz v5, 004d // +0046 │ │ +49c872: 6e10 e65c 0500 |0009: invoke-virtual {v5}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ +49c878: 0a00 |000c: move-result v0 │ │ +49c87a: 3800 0300 |000d: if-eqz v0, 0010 // +0003 │ │ +49c87e: 283e |000f: goto 004d // +003e │ │ +49c880: 5440 9269 |0010: iget-object v0, v4, Lorg/purple/smokestack/TcpNeighbor;.m_isPrivateServer:Ljava/util/concurrent/atomic/AtomicBoolean; // field@6992 │ │ +49c884: 6e10 1861 0000 |0012: invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ +49c88a: 0a00 |0015: move-result v0 │ │ +49c88c: 3800 1300 |0016: if-eqz v0, 0029 // +0013 │ │ +49c890: 5440 a069 |0018: iget-object v0, v4, Lorg/purple/smokestack/TcpNeighbor;.m_remoteUserAuthenticated:Ljava/util/concurrent/atomic/AtomicBoolean; // field@69a0 │ │ +49c894: 6e10 1861 0000 |001a: invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ +49c89a: 0a00 |001d: move-result v0 │ │ +49c89c: 3900 0b00 |001e: if-nez v0, 0029 // +000b │ │ +49c8a0: 1a00 57b3 |0020: const-string v0, "type=0097a&content=" // string@b357 │ │ +49c8a4: 6e20 d85c 0500 |0022: invoke-virtual {v5, v0}, Ljava/lang/String;.contains:(Ljava/lang/CharSequence;)Z // method@5cd8 │ │ +49c8aa: 0a00 |0025: move-result v0 │ │ +49c8ac: 3900 0300 |0026: if-nez v0, 0029 // +0003 │ │ +49c8b0: 0f01 |0028: return v1 │ │ +49c8b2: 5440 a269 |0029: iget-object v0, v4, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49c8b6: 6e10 fc61 0000 |002b: invoke-virtual {v0}, Ljavax/net/ssl/SSLSocket;.getOutputStream:()Ljava/io/OutputStream; // method@61fc │ │ +49c8bc: 0c00 |002e: move-result-object v0 │ │ +49c8be: 6e10 de5c 0500 |002f: invoke-virtual {v5}, Ljava/lang/String;.getBytes:()[B // method@5cde │ │ +49c8c4: 0c02 |0032: move-result-object v2 │ │ +49c8c6: 6e20 e65b 2000 |0033: invoke-virtual {v0, v2}, Ljava/io/OutputStream;.write:([B)V // method@5be6 │ │ +49c8cc: 7110 13d1 0500 |0036: invoke-static {v5}, Lorg/purple/smokestack/Kernel;.writeCongestionDigest:(Ljava/lang/String;)V // method@d113 │ │ +49c8d2: 5440 8a69 |0039: iget-object v0, v4, Lorg/purple/smokestack/TcpNeighbor;.m_bytesWritten:Ljava/util/concurrent/atomic/AtomicLong; // field@698a │ │ +49c8d6: 6e10 e95c 0500 |003b: invoke-virtual {v5}, Ljava/lang/String;.length:()I // method@5ce9 │ │ +49c8dc: 0a05 |003e: move-result v5 │ │ +49c8de: 8152 |003f: int-to-long v2, v5 │ │ +49c8e0: 6e30 2261 2003 |0040: invoke-virtual {v0, v2, v3}, Ljava/util/concurrent/atomic/AtomicLong;.getAndAdd:(J)J // method@6122 │ │ +49c8e6: 1215 |0043: const/4 v5, #int 1 // #1 │ │ +49c8e8: 0f05 |0044: return v5 │ │ +49c8ea: 1a05 9909 |0045: const-string v5, "A socket error occurred on send()." // string@0999 │ │ +49c8ee: 6e20 90d2 5400 |0047: invoke-virtual {v4, v5}, Lorg/purple/smokestack/TcpNeighbor;.setError:(Ljava/lang/String;)V // method@d290 │ │ +49c8f4: 6e10 83d2 0400 |004a: invoke-virtual {v4}, Lorg/purple/smokestack/TcpNeighbor;.disconnect:()V // method@d283 │ │ +49c8fa: 0f01 |004d: return v1 │ │ catches : 1 │ │ 0x0010 - 0x0043 │ │ Ljava/lang/Exception; -> 0x0045 │ │ positions : │ │ 0x0000 line=157 │ │ 0x0010 line=162 │ │ 0x0018 line=163 │ │ @@ -1269607,19 +1269606,19 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 8 16-bit code units │ │ -49d3a0: |[49d3a0] org.purple.smokestack.TcpNeighbor.startHandshake:()V │ │ -49d3b0: 5410 a269 |0000: iget-object v0, v1, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ -49d3b4: 3800 0500 |0002: if-eqz v0, 0007 // +0005 │ │ -49d3b8: 6e10 0a62 0000 |0004: invoke-virtual {v0}, Ljavax/net/ssl/SSLSocket;.startHandshake:()V // method@620a │ │ -49d3be: 0e00 |0007: return-void │ │ +49d39c: |[49d39c] org.purple.smokestack.TcpNeighbor.startHandshake:()V │ │ +49d3ac: 5410 a269 |0000: iget-object v0, v1, Lorg/purple/smokestack/TcpNeighbor;.m_socket:Ljavax/net/ssl/SSLSocket; // field@69a2 │ │ +49d3b0: 3800 0500 |0002: if-eqz v0, 0007 // +0005 │ │ +49d3b4: 6e10 0a62 0000 |0004: invoke-virtual {v0}, Ljavax/net/ssl/SSLSocket;.startHandshake:()V // method@620a │ │ +49d3ba: 0e00 |0007: return-void │ │ catches : 1 │ │ 0x0000 - 0x0007 │ │ Ljava/lang/Exception; -> 0x0007 │ │ positions : │ │ 0x0000 line=778 │ │ 0x0004 line=779 │ │ locals : │ │ @@ -1269659,35 +1269658,35 @@ │ │ type : '(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 15 │ │ ins : 6 │ │ outs : 9 │ │ insns size : 33 16-bit code units │ │ -49d864: |[49d864] org.purple.smokestack.UdpMulticastNeighbor.:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V │ │ -49d874: 1a04 9756 |0000: const-string v4, "UDP" // string@5697 │ │ -49d878: 1206 |0002: const/4 v6, #int 0 // #0 │ │ -49d87a: 1217 |0003: const/4 v7, #int 1 // #1 │ │ -49d87c: 0790 |0004: move-object v0, v9 │ │ -49d87e: 07a1 |0005: move-object v1, v10 │ │ -49d880: 07b2 |0006: move-object v2, v11 │ │ -49d882: 07c3 |0007: move-object v3, v12 │ │ -49d884: 07d5 |0008: move-object v5, v13 │ │ -49d886: 01e8 |0009: move v8, v14 │ │ -49d888: 7609 4cd1 0000 |000a: invoke-direct/range {v0, v1, v2, v3, v4, v5, v6, v7, v8}, Lorg/purple/smokestack/Neighbor;.:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZI)V // method@d14c │ │ -49d88e: 120a |000d: const/4 v10, #int 0 // #0 │ │ -49d890: 5b9a b669 |000e: iput-object v10, v9, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_socket:Ljava/net/MulticastSocket; // field@69b6 │ │ -49d894: 5490 b569 |0010: iget-object v0, v9, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69b5 │ │ -49d898: 2201 001f |0012: new-instance v1, Lorg/purple/smokestack/UdpMulticastNeighbor$1; // type@1f00 │ │ -49d89c: 7020 92d2 9100 |0014: invoke-direct {v1, v9}, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.:(Lorg/purple/smokestack/UdpMulticastNeighbor;)V // method@d292 │ │ -49d8a2: 6206 122d |0017: sget-object v6, Ljava/util/concurrent/TimeUnit;.MILLISECONDS:Ljava/util/concurrent/TimeUnit; // field@2d12 │ │ -49d8a6: 1602 0000 |0019: const-wide/16 v2, #int 0 // #0 │ │ -49d8aa: 1604 6400 |001b: const-wide/16 v4, #int 100 // #64 │ │ -49d8ae: 7807 0e61 0000 |001d: invoke-interface/range {v0, v1, v2, v3, v4, v5, v6}, Ljava/util/concurrent/ScheduledExecutorService;.scheduleAtFixedRate:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; // method@610e │ │ -49d8b4: 0e00 |0020: return-void │ │ +49d860: |[49d860] org.purple.smokestack.UdpMulticastNeighbor.:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V │ │ +49d870: 1a04 9756 |0000: const-string v4, "UDP" // string@5697 │ │ +49d874: 1206 |0002: const/4 v6, #int 0 // #0 │ │ +49d876: 1217 |0003: const/4 v7, #int 1 // #1 │ │ +49d878: 0790 |0004: move-object v0, v9 │ │ +49d87a: 07a1 |0005: move-object v1, v10 │ │ +49d87c: 07b2 |0006: move-object v2, v11 │ │ +49d87e: 07c3 |0007: move-object v3, v12 │ │ +49d880: 07d5 |0008: move-object v5, v13 │ │ +49d882: 01e8 |0009: move v8, v14 │ │ +49d884: 7609 4cd1 0000 |000a: invoke-direct/range {v0, v1, v2, v3, v4, v5, v6, v7, v8}, Lorg/purple/smokestack/Neighbor;.:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZI)V // method@d14c │ │ +49d88a: 120a |000d: const/4 v10, #int 0 // #0 │ │ +49d88c: 5b9a b669 |000e: iput-object v10, v9, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_socket:Ljava/net/MulticastSocket; // field@69b6 │ │ +49d890: 5490 b569 |0010: iget-object v0, v9, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69b5 │ │ +49d894: 2201 001f |0012: new-instance v1, Lorg/purple/smokestack/UdpMulticastNeighbor$1; // type@1f00 │ │ +49d898: 7020 92d2 9100 |0014: invoke-direct {v1, v9}, Lorg/purple/smokestack/UdpMulticastNeighbor$1;.:(Lorg/purple/smokestack/UdpMulticastNeighbor;)V // method@d292 │ │ +49d89e: 6206 122d |0017: sget-object v6, Ljava/util/concurrent/TimeUnit;.MILLISECONDS:Ljava/util/concurrent/TimeUnit; // field@2d12 │ │ +49d8a2: 1602 0000 |0019: const-wide/16 v2, #int 0 // #0 │ │ +49d8a6: 1604 6400 |001b: const-wide/16 v4, #int 100 // #64 │ │ +49d8aa: 7807 0e61 0000 |001d: invoke-interface/range {v0, v1, v2, v3, v4, v5, v6}, Ljava/util/concurrent/ScheduledExecutorService;.scheduleAtFixedRate:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; // method@610e │ │ +49d8b0: 0e00 |0020: return-void │ │ catches : (none) │ │ positions : │ │ 0x000a line=152 │ │ 0x000e line=38 │ │ 0x0010 line=153 │ │ locals : │ │ 0x0000 - 0x0021 reg=9 this Lorg/purple/smokestack/UdpMulticastNeighbor; │ │ @@ -1269702,17 +1269701,17 @@ │ │ type : '(Lorg/purple/smokestack/UdpMulticastNeighbor;)Ljava/net/MulticastSocket;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -49d84c: |[49d84c] org.purple.smokestack.UdpMulticastNeighbor.access$000:(Lorg/purple/smokestack/UdpMulticastNeighbor;)Ljava/net/MulticastSocket; │ │ -49d85c: 5400 b669 |0000: iget-object v0, v0, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_socket:Ljava/net/MulticastSocket; // field@69b6 │ │ -49d860: 1100 |0002: return-object v0 │ │ +49d848: |[49d848] org.purple.smokestack.UdpMulticastNeighbor.access$000:(Lorg/purple/smokestack/UdpMulticastNeighbor;)Ljava/net/MulticastSocket; │ │ +49d858: 5400 b669 |0000: iget-object v0, v0, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_socket:Ljava/net/MulticastSocket; // field@69b6 │ │ +49d85c: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=36 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/purple/smokestack/UdpMulticastNeighbor; │ │ │ │ Virtual methods - │ │ @@ -1269721,36 +1269720,36 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 6 │ │ ins : 1 │ │ outs : 4 │ │ insns size : 38 16-bit code units │ │ -49d8b8: |[49d8b8] org.purple.smokestack.UdpMulticastNeighbor.abort:()V │ │ -49d8c8: 6e10 99d2 0500 |0000: invoke-virtual {v5}, Lorg/purple/smokestack/UdpMulticastNeighbor;.disconnect:()V // method@d299 │ │ -49d8ce: 6f10 4dd1 0500 |0003: invoke-super {v5}, Lorg/purple/smokestack/Neighbor;.abort:()V // method@d14d │ │ -49d8d4: 5450 b569 |0006: iget-object v0, v5, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69b5 │ │ -49d8d8: 1d00 |0008: monitor-enter v0 │ │ -49d8da: 5451 b569 |0009: iget-object v1, v5, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69b5 │ │ -49d8de: 7210 0f61 0100 |000b: invoke-interface {v1}, Ljava/util/concurrent/ScheduledExecutorService;.shutdown:()V // method@610f │ │ -49d8e4: 2803 |000e: goto 0011 // +0003 │ │ -49d8e6: 0d01 |000f: move-exception v1 │ │ -49d8e8: 2814 |0010: goto 0024 // +0014 │ │ -49d8ea: 5451 b569 |0011: iget-object v1, v5, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69b5 │ │ -49d8ee: 1602 0500 |0013: const-wide/16 v2, #int 5 // #5 │ │ -49d8f2: 6204 152d |0015: sget-object v4, Ljava/util/concurrent/TimeUnit;.SECONDS:Ljava/util/concurrent/TimeUnit; // field@2d15 │ │ -49d8f6: 7240 0d61 2143 |0017: invoke-interface {v1, v2, v3, v4}, Ljava/util/concurrent/ScheduledExecutorService;.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z // method@610d │ │ -49d8fc: 0a01 |001a: move-result v1 │ │ -49d8fe: 3901 0700 |001b: if-nez v1, 0022 // +0007 │ │ -49d902: 5451 b569 |001d: iget-object v1, v5, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69b5 │ │ -49d906: 7210 1061 0100 |001f: invoke-interface {v1}, Ljava/util/concurrent/ScheduledExecutorService;.shutdownNow:()Ljava/util/List; // method@6110 │ │ -49d90c: 1e00 |0022: monitor-exit v0 │ │ -49d90e: 0e00 |0023: return-void │ │ -49d910: 1e00 |0024: monitor-exit v0 │ │ -49d912: 2701 |0025: throw v1 │ │ +49d8b4: |[49d8b4] org.purple.smokestack.UdpMulticastNeighbor.abort:()V │ │ +49d8c4: 6e10 99d2 0500 |0000: invoke-virtual {v5}, Lorg/purple/smokestack/UdpMulticastNeighbor;.disconnect:()V // method@d299 │ │ +49d8ca: 6f10 4dd1 0500 |0003: invoke-super {v5}, Lorg/purple/smokestack/Neighbor;.abort:()V // method@d14d │ │ +49d8d0: 5450 b569 |0006: iget-object v0, v5, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69b5 │ │ +49d8d4: 1d00 |0008: monitor-enter v0 │ │ +49d8d6: 5451 b569 |0009: iget-object v1, v5, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69b5 │ │ +49d8da: 7210 0f61 0100 |000b: invoke-interface {v1}, Ljava/util/concurrent/ScheduledExecutorService;.shutdown:()V // method@610f │ │ +49d8e0: 2803 |000e: goto 0011 // +0003 │ │ +49d8e2: 0d01 |000f: move-exception v1 │ │ +49d8e4: 2814 |0010: goto 0024 // +0014 │ │ +49d8e6: 5451 b569 |0011: iget-object v1, v5, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69b5 │ │ +49d8ea: 1602 0500 |0013: const-wide/16 v2, #int 5 // #5 │ │ +49d8ee: 6204 152d |0015: sget-object v4, Ljava/util/concurrent/TimeUnit;.SECONDS:Ljava/util/concurrent/TimeUnit; // field@2d15 │ │ +49d8f2: 7240 0d61 2143 |0017: invoke-interface {v1, v2, v3, v4}, Ljava/util/concurrent/ScheduledExecutorService;.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z // method@610d │ │ +49d8f8: 0a01 |001a: move-result v1 │ │ +49d8fa: 3901 0700 |001b: if-nez v1, 0022 // +0007 │ │ +49d8fe: 5451 b569 |001d: iget-object v1, v5, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69b5 │ │ +49d902: 7210 1061 0100 |001f: invoke-interface {v1}, Ljava/util/concurrent/ScheduledExecutorService;.shutdownNow:()Ljava/util/List; // method@6110 │ │ +49d908: 1e00 |0022: monitor-exit v0 │ │ +49d90a: 0e00 |0023: return-void │ │ +49d90c: 1e00 |0024: monitor-exit v0 │ │ +49d90e: 2701 |0025: throw v1 │ │ catches : 3 │ │ 0x0009 - 0x000e │ │ Ljava/lang/Exception; -> 0x0011 │ │ -> 0x000f │ │ 0x0011 - 0x0022 │ │ Ljava/lang/Exception; -> 0x0022 │ │ -> 0x000f │ │ @@ -1269773,72 +1269772,72 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 5 │ │ ins : 1 │ │ outs : 3 │ │ insns size : 119 16-bit code units │ │ -49d93c: |[49d93c] org.purple.smokestack.UdpMulticastNeighbor.connect:()V │ │ -49d94c: 6e10 98d2 0400 |0000: invoke-virtual {v4}, Lorg/purple/smokestack/UdpMulticastNeighbor;.connected:()Z // method@d298 │ │ -49d952: 0a00 |0003: move-result v0 │ │ -49d954: 3800 0300 |0004: if-eqz v0, 0007 // +0003 │ │ -49d958: 0e00 |0006: return-void │ │ -49d95a: 5440 ac69 |0007: iget-object v0, v4, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_bytesRead:Ljava/util/concurrent/atomic/AtomicLong; // field@69ac │ │ -49d95e: 1601 0000 |0009: const-wide/16 v1, #int 0 // #0 │ │ -49d962: 6e30 2461 1002 |000b: invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ -49d968: 5440 ad69 |000e: iget-object v0, v4, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_bytesWritten:Ljava/util/concurrent/atomic/AtomicLong; // field@69ad │ │ -49d96c: 6e30 2461 1002 |0010: invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ -49d972: 5440 af69 |0013: iget-object v0, v4, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_disconnected:Ljava/util/concurrent/atomic/AtomicBoolean; // field@69af │ │ -49d976: 1201 |0015: const/4 v1, #int 0 // #0 │ │ -49d978: 6e20 1a61 1000 |0016: invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ -49d97e: 5440 b269 |0019: iget-object v0, v4, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_lastParsed:Ljava/util/concurrent/atomic/AtomicLong; // field@69b2 │ │ -49d982: 7100 2b5d 0000 |001b: invoke-static {}, Ljava/lang/System;.currentTimeMillis:()J // method@5d2b │ │ -49d988: 0b02 |001e: move-result-wide v2 │ │ -49d98a: 6e30 2461 2003 |001f: invoke-virtual {v0, v2, v3}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ -49d990: 5440 b369 |0022: iget-object v0, v4, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_lastTimeRead:Ljava/util/concurrent/atomic/AtomicLong; // field@69b3 │ │ -49d994: 7100 315d 0000 |0024: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@5d31 │ │ -49d99a: 0b02 |0027: move-result-wide v2 │ │ -49d99c: 6e30 2461 2003 |0028: invoke-virtual {v0, v2, v3}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ -49d9a2: 2200 1c0b |002b: new-instance v0, Ljava/net/MulticastSocket; // type@0b1c │ │ -49d9a6: 5442 b169 |002d: iget-object v2, v4, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_ipPort:Ljava/lang/String; // field@69b1 │ │ -49d9aa: 7110 6f5c 0200 |002f: invoke-static {v2}, Ljava/lang/Integer;.parseInt:(Ljava/lang/String;)I // method@5c6f │ │ -49d9b0: 0a02 |0032: move-result v2 │ │ -49d9b2: 7020 b55d 2000 |0033: invoke-direct {v0, v2}, Ljava/net/MulticastSocket;.:(I)V // method@5db5 │ │ -49d9b8: 5b40 b669 |0036: iput-object v0, v4, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_socket:Ljava/net/MulticastSocket; // field@69b6 │ │ -49d9bc: 5442 b069 |0038: iget-object v2, v4, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_ipAddress:Ljava/lang/String; // field@69b0 │ │ -49d9c0: 7110 ae5d 0200 |003a: invoke-static {v2}, Ljava/net/InetAddress;.getByName:(Ljava/lang/String;)Ljava/net/InetAddress; // method@5dae │ │ -49d9c6: 0c02 |003d: move-result-object v2 │ │ -49d9c8: 6e20 b95d 2000 |003e: invoke-virtual {v0, v2}, Ljava/net/MulticastSocket;.joinGroup:(Ljava/net/InetAddress;)V // method@5db9 │ │ -49d9ce: 5440 b669 |0041: iget-object v0, v4, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_socket:Ljava/net/MulticastSocket; // field@69b6 │ │ -49d9d2: 1212 |0043: const/4 v2, #int 1 // #1 │ │ -49d9d4: 6e20 bd5d 2000 |0044: invoke-virtual {v0, v2}, Ljava/net/MulticastSocket;.setLoopbackMode:(Z)V // method@5dbd │ │ -49d9da: 5440 b669 |0047: iget-object v0, v4, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_socket:Ljava/net/MulticastSocket; // field@69b6 │ │ -49d9de: 6e20 be5d 1000 |0049: invoke-virtual {v0, v1}, Ljava/net/MulticastSocket;.setSoTimeout:(I)V // method@5dbe │ │ -49d9e4: 5440 b669 |004c: iget-object v0, v4, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_socket:Ljava/net/MulticastSocket; // field@69b6 │ │ -49d9e8: 1301 ff00 |004e: const/16 v1, #int 255 // #ff │ │ -49d9ec: 6e20 bf5d 1000 |0050: invoke-virtual {v0, v1}, Ljava/net/MulticastSocket;.setTimeToLive:(I)V // method@5dbf │ │ -49d9f2: 5440 b769 |0053: iget-object v0, v4, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_startTime:Ljava/util/concurrent/atomic/AtomicLong; // field@69b7 │ │ -49d9f6: 7100 315d 0000 |0055: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@5d31 │ │ -49d9fc: 0b01 |0058: move-result-wide v1 │ │ -49d9fe: 6e30 2461 1002 |0059: invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ -49da04: 1a00 0000 |005c: const-string v0, "" // string@0000 │ │ -49da08: 6e20 a1d2 0400 |005e: invoke-virtual {v4, v0}, Lorg/purple/smokestack/UdpMulticastNeighbor;.setError:(Ljava/lang/String;)V // method@d2a1 │ │ -49da0e: 5440 b469 |0061: iget-object v0, v4, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_mutex:Ljava/lang/Object; // field@69b4 │ │ -49da12: 1d00 |0063: monitor-enter v0 │ │ -49da14: 5441 b469 |0064: iget-object v1, v4, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_mutex:Ljava/lang/Object; // field@69b4 │ │ -49da18: 6e10 b45c 0100 |0066: invoke-virtual {v1}, Ljava/lang/Object;.notifyAll:()V // method@5cb4 │ │ -49da1e: 1e00 |0069: monitor-exit v0 │ │ -49da20: 280c |006a: goto 0076 // +000c │ │ -49da22: 0d01 |006b: move-exception v1 │ │ -49da24: 1e00 |006c: monitor-exit v0 │ │ -49da26: 2701 |006d: throw v1 │ │ -49da28: 1a00 1b0e |006e: const-string v0, "An error occurred while attempting a connection." // string@0e1b │ │ -49da2c: 6e20 a1d2 0400 |0070: invoke-virtual {v4, v0}, Lorg/purple/smokestack/UdpMulticastNeighbor;.setError:(Ljava/lang/String;)V // method@d2a1 │ │ -49da32: 6e10 99d2 0400 |0073: invoke-virtual {v4}, Lorg/purple/smokestack/UdpMulticastNeighbor;.disconnect:()V // method@d299 │ │ -49da38: 0e00 |0076: return-void │ │ +49d938: |[49d938] org.purple.smokestack.UdpMulticastNeighbor.connect:()V │ │ +49d948: 6e10 98d2 0400 |0000: invoke-virtual {v4}, Lorg/purple/smokestack/UdpMulticastNeighbor;.connected:()Z // method@d298 │ │ +49d94e: 0a00 |0003: move-result v0 │ │ +49d950: 3800 0300 |0004: if-eqz v0, 0007 // +0003 │ │ +49d954: 0e00 |0006: return-void │ │ +49d956: 5440 ac69 |0007: iget-object v0, v4, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_bytesRead:Ljava/util/concurrent/atomic/AtomicLong; // field@69ac │ │ +49d95a: 1601 0000 |0009: const-wide/16 v1, #int 0 // #0 │ │ +49d95e: 6e30 2461 1002 |000b: invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ +49d964: 5440 ad69 |000e: iget-object v0, v4, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_bytesWritten:Ljava/util/concurrent/atomic/AtomicLong; // field@69ad │ │ +49d968: 6e30 2461 1002 |0010: invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ +49d96e: 5440 af69 |0013: iget-object v0, v4, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_disconnected:Ljava/util/concurrent/atomic/AtomicBoolean; // field@69af │ │ +49d972: 1201 |0015: const/4 v1, #int 0 // #0 │ │ +49d974: 6e20 1a61 1000 |0016: invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ +49d97a: 5440 b269 |0019: iget-object v0, v4, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_lastParsed:Ljava/util/concurrent/atomic/AtomicLong; // field@69b2 │ │ +49d97e: 7100 2b5d 0000 |001b: invoke-static {}, Ljava/lang/System;.currentTimeMillis:()J // method@5d2b │ │ +49d984: 0b02 |001e: move-result-wide v2 │ │ +49d986: 6e30 2461 2003 |001f: invoke-virtual {v0, v2, v3}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ +49d98c: 5440 b369 |0022: iget-object v0, v4, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_lastTimeRead:Ljava/util/concurrent/atomic/AtomicLong; // field@69b3 │ │ +49d990: 7100 315d 0000 |0024: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@5d31 │ │ +49d996: 0b02 |0027: move-result-wide v2 │ │ +49d998: 6e30 2461 2003 |0028: invoke-virtual {v0, v2, v3}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ +49d99e: 2200 1c0b |002b: new-instance v0, Ljava/net/MulticastSocket; // type@0b1c │ │ +49d9a2: 5442 b169 |002d: iget-object v2, v4, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_ipPort:Ljava/lang/String; // field@69b1 │ │ +49d9a6: 7110 6f5c 0200 |002f: invoke-static {v2}, Ljava/lang/Integer;.parseInt:(Ljava/lang/String;)I // method@5c6f │ │ +49d9ac: 0a02 |0032: move-result v2 │ │ +49d9ae: 7020 b55d 2000 |0033: invoke-direct {v0, v2}, Ljava/net/MulticastSocket;.:(I)V // method@5db5 │ │ +49d9b4: 5b40 b669 |0036: iput-object v0, v4, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_socket:Ljava/net/MulticastSocket; // field@69b6 │ │ +49d9b8: 5442 b069 |0038: iget-object v2, v4, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_ipAddress:Ljava/lang/String; // field@69b0 │ │ +49d9bc: 7110 ae5d 0200 |003a: invoke-static {v2}, Ljava/net/InetAddress;.getByName:(Ljava/lang/String;)Ljava/net/InetAddress; // method@5dae │ │ +49d9c2: 0c02 |003d: move-result-object v2 │ │ +49d9c4: 6e20 b95d 2000 |003e: invoke-virtual {v0, v2}, Ljava/net/MulticastSocket;.joinGroup:(Ljava/net/InetAddress;)V // method@5db9 │ │ +49d9ca: 5440 b669 |0041: iget-object v0, v4, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_socket:Ljava/net/MulticastSocket; // field@69b6 │ │ +49d9ce: 1212 |0043: const/4 v2, #int 1 // #1 │ │ +49d9d0: 6e20 bd5d 2000 |0044: invoke-virtual {v0, v2}, Ljava/net/MulticastSocket;.setLoopbackMode:(Z)V // method@5dbd │ │ +49d9d6: 5440 b669 |0047: iget-object v0, v4, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_socket:Ljava/net/MulticastSocket; // field@69b6 │ │ +49d9da: 6e20 be5d 1000 |0049: invoke-virtual {v0, v1}, Ljava/net/MulticastSocket;.setSoTimeout:(I)V // method@5dbe │ │ +49d9e0: 5440 b669 |004c: iget-object v0, v4, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_socket:Ljava/net/MulticastSocket; // field@69b6 │ │ +49d9e4: 1301 ff00 |004e: const/16 v1, #int 255 // #ff │ │ +49d9e8: 6e20 bf5d 1000 |0050: invoke-virtual {v0, v1}, Ljava/net/MulticastSocket;.setTimeToLive:(I)V // method@5dbf │ │ +49d9ee: 5440 b769 |0053: iget-object v0, v4, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_startTime:Ljava/util/concurrent/atomic/AtomicLong; // field@69b7 │ │ +49d9f2: 7100 315d 0000 |0055: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@5d31 │ │ +49d9f8: 0b01 |0058: move-result-wide v1 │ │ +49d9fa: 6e30 2461 1002 |0059: invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ +49da00: 1a00 0000 |005c: const-string v0, "" // string@0000 │ │ +49da04: 6e20 a1d2 0400 |005e: invoke-virtual {v4, v0}, Lorg/purple/smokestack/UdpMulticastNeighbor;.setError:(Ljava/lang/String;)V // method@d2a1 │ │ +49da0a: 5440 b469 |0061: iget-object v0, v4, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_mutex:Ljava/lang/Object; // field@69b4 │ │ +49da0e: 1d00 |0063: monitor-enter v0 │ │ +49da10: 5441 b469 |0064: iget-object v1, v4, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_mutex:Ljava/lang/Object; // field@69b4 │ │ +49da14: 6e10 b45c 0100 |0066: invoke-virtual {v1}, Ljava/lang/Object;.notifyAll:()V // method@5cb4 │ │ +49da1a: 1e00 |0069: monitor-exit v0 │ │ +49da1c: 280c |006a: goto 0076 // +000c │ │ +49da1e: 0d01 |006b: move-exception v1 │ │ +49da20: 1e00 |006c: monitor-exit v0 │ │ +49da22: 2701 |006d: throw v1 │ │ +49da24: 1a00 1b0e |006e: const-string v0, "An error occurred while attempting a connection." // string@0e1b │ │ +49da28: 6e20 a1d2 0400 |0070: invoke-virtual {v4, v0}, Lorg/purple/smokestack/UdpMulticastNeighbor;.setError:(Ljava/lang/String;)V // method@d2a1 │ │ +49da2e: 6e10 99d2 0400 |0073: invoke-virtual {v4}, Lorg/purple/smokestack/UdpMulticastNeighbor;.disconnect:()V // method@d299 │ │ +49da34: 0e00 |0076: return-void │ │ catches : 3 │ │ 0x0007 - 0x0064 │ │ Ljava/lang/Exception; -> 0x006e │ │ 0x0064 - 0x006d │ │ -> 0x006b │ │ 0x006d - 0x006e │ │ Ljava/lang/Exception; -> 0x006e │ │ @@ -1269869,26 +1269868,26 @@ │ │ type : '()Z' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 19 16-bit code units │ │ -49d670: |[49d670] org.purple.smokestack.UdpMulticastNeighbor.connected:()Z │ │ -49d680: 1200 |0000: const/4 v0, #int 0 // #0 │ │ -49d682: 6e10 9ed2 0200 |0001: invoke-virtual {v2}, Lorg/purple/smokestack/UdpMulticastNeighbor;.isNetworkConnected:()Z // method@d29e │ │ -49d688: 0a01 |0004: move-result v1 │ │ -49d68a: 3801 0d00 |0005: if-eqz v1, 0012 // +000d │ │ -49d68e: 5421 b669 |0007: iget-object v1, v2, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_socket:Ljava/net/MulticastSocket; // field@69b6 │ │ -49d692: 3801 0900 |0009: if-eqz v1, 0012 // +0009 │ │ -49d696: 6e10 b85d 0100 |000b: invoke-virtual {v1}, Ljava/net/MulticastSocket;.isClosed:()Z // method@5db8 │ │ -49d69c: 0a01 |000e: move-result v1 │ │ -49d69e: 3901 0300 |000f: if-nez v1, 0012 // +0003 │ │ -49d6a2: 1210 |0011: const/4 v0, #int 1 // #1 │ │ -49d6a4: 0f00 |0012: return v0 │ │ +49d66c: |[49d66c] org.purple.smokestack.UdpMulticastNeighbor.connected:()Z │ │ +49d67c: 1200 |0000: const/4 v0, #int 0 // #0 │ │ +49d67e: 6e10 9ed2 0200 |0001: invoke-virtual {v2}, Lorg/purple/smokestack/UdpMulticastNeighbor;.isNetworkConnected:()Z // method@d29e │ │ +49d684: 0a01 |0004: move-result v1 │ │ +49d686: 3801 0d00 |0005: if-eqz v1, 0012 // +000d │ │ +49d68a: 5421 b669 |0007: iget-object v1, v2, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_socket:Ljava/net/MulticastSocket; // field@69b6 │ │ +49d68e: 3801 0900 |0009: if-eqz v1, 0012 // +0009 │ │ +49d692: 6e10 b85d 0100 |000b: invoke-virtual {v1}, Ljava/net/MulticastSocket;.isClosed:()Z // method@5db8 │ │ +49d698: 0a01 |000e: move-result v1 │ │ +49d69a: 3901 0300 |000f: if-nez v1, 0012 // +0003 │ │ +49d69e: 1210 |0011: const/4 v0, #int 1 // #1 │ │ +49d6a0: 0f00 |0012: return v0 │ │ catches : 1 │ │ 0x0001 - 0x000f │ │ Ljava/lang/Exception; -> 0x0012 │ │ positions : │ │ 0x0001 line=55 │ │ 0x000b line=57 │ │ locals : │ │ @@ -1269899,38 +1269898,38 @@ │ │ type : '()V' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 4 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 47 16-bit code units │ │ -49da5c: |[49da5c] org.purple.smokestack.UdpMulticastNeighbor.disconnect:()V │ │ -49da6c: 6f10 56d1 0300 |0000: invoke-super {v3}, Lorg/purple/smokestack/Neighbor;.disconnect:()V // method@d156 │ │ -49da72: 5430 ae69 |0003: iget-object v0, v3, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@69ae │ │ -49da76: 5431 b969 |0005: iget-object v1, v3, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_uuid:Ljava/util/UUID; // field@69b9 │ │ -49da7a: 6e10 d160 0100 |0007: invoke-virtual {v1}, Ljava/util/UUID;.toString:()Ljava/lang/String; // method@60d1 │ │ -49da80: 0c01 |000a: move-result-object v1 │ │ -49da82: 6e20 b1d0 1000 |000b: invoke-virtual {v0, v1}, Lorg/purple/smokestack/Database;.deleteRoutingEntry:(Ljava/lang/String;)V // method@d0b1 │ │ -49da88: 1200 |000e: const/4 v0, #int 0 // #0 │ │ -49da8a: 5431 b669 |000f: iget-object v1, v3, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_socket:Ljava/net/MulticastSocket; // field@69b6 │ │ -49da8e: 3801 1800 |0011: if-eqz v1, 0029 // +0018 │ │ -49da92: 5432 b069 |0013: iget-object v2, v3, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_ipAddress:Ljava/lang/String; // field@69b0 │ │ -49da96: 7110 ae5d 0200 |0015: invoke-static {v2}, Ljava/net/InetAddress;.getByName:(Ljava/lang/String;)Ljava/net/InetAddress; // method@5dae │ │ -49da9c: 0c02 |0018: move-result-object v2 │ │ -49da9e: 6e20 ba5d 2100 |0019: invoke-virtual {v1, v2}, Ljava/net/MulticastSocket;.leaveGroup:(Ljava/net/InetAddress;)V // method@5dba │ │ -49daa4: 5431 b669 |001c: iget-object v1, v3, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_socket:Ljava/net/MulticastSocket; // field@69b6 │ │ -49daa8: 6e10 b65d 0100 |001e: invoke-virtual {v1}, Ljava/net/MulticastSocket;.close:()V // method@5db6 │ │ -49daae: 2808 |0021: goto 0029 // +0008 │ │ -49dab0: 0d01 |0022: move-exception v1 │ │ -49dab2: 5b30 b669 |0023: iput-object v0, v3, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_socket:Ljava/net/MulticastSocket; // field@69b6 │ │ -49dab6: 6e10 9fd2 0300 |0025: invoke-virtual {v3}, Lorg/purple/smokestack/UdpMulticastNeighbor;.reset:()V // method@d29f │ │ -49dabc: 2701 |0028: throw v1 │ │ -49dabe: 5b30 b669 |0029: iput-object v0, v3, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_socket:Ljava/net/MulticastSocket; // field@69b6 │ │ -49dac2: 6e10 9fd2 0300 |002b: invoke-virtual {v3}, Lorg/purple/smokestack/UdpMulticastNeighbor;.reset:()V // method@d29f │ │ -49dac8: 0e00 |002e: return-void │ │ +49da58: |[49da58] org.purple.smokestack.UdpMulticastNeighbor.disconnect:()V │ │ +49da68: 6f10 56d1 0300 |0000: invoke-super {v3}, Lorg/purple/smokestack/Neighbor;.disconnect:()V // method@d156 │ │ +49da6e: 5430 ae69 |0003: iget-object v0, v3, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@69ae │ │ +49da72: 5431 b969 |0005: iget-object v1, v3, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_uuid:Ljava/util/UUID; // field@69b9 │ │ +49da76: 6e10 d160 0100 |0007: invoke-virtual {v1}, Ljava/util/UUID;.toString:()Ljava/lang/String; // method@60d1 │ │ +49da7c: 0c01 |000a: move-result-object v1 │ │ +49da7e: 6e20 b1d0 1000 |000b: invoke-virtual {v0, v1}, Lorg/purple/smokestack/Database;.deleteRoutingEntry:(Ljava/lang/String;)V // method@d0b1 │ │ +49da84: 1200 |000e: const/4 v0, #int 0 // #0 │ │ +49da86: 5431 b669 |000f: iget-object v1, v3, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_socket:Ljava/net/MulticastSocket; // field@69b6 │ │ +49da8a: 3801 1800 |0011: if-eqz v1, 0029 // +0018 │ │ +49da8e: 5432 b069 |0013: iget-object v2, v3, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_ipAddress:Ljava/lang/String; // field@69b0 │ │ +49da92: 7110 ae5d 0200 |0015: invoke-static {v2}, Ljava/net/InetAddress;.getByName:(Ljava/lang/String;)Ljava/net/InetAddress; // method@5dae │ │ +49da98: 0c02 |0018: move-result-object v2 │ │ +49da9a: 6e20 ba5d 2100 |0019: invoke-virtual {v1, v2}, Ljava/net/MulticastSocket;.leaveGroup:(Ljava/net/InetAddress;)V // method@5dba │ │ +49daa0: 5431 b669 |001c: iget-object v1, v3, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_socket:Ljava/net/MulticastSocket; // field@69b6 │ │ +49daa4: 6e10 b65d 0100 |001e: invoke-virtual {v1}, Ljava/net/MulticastSocket;.close:()V // method@5db6 │ │ +49daaa: 2808 |0021: goto 0029 // +0008 │ │ +49daac: 0d01 |0022: move-exception v1 │ │ +49daae: 5b30 b669 |0023: iput-object v0, v3, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_socket:Ljava/net/MulticastSocket; // field@69b6 │ │ +49dab2: 6e10 9fd2 0300 |0025: invoke-virtual {v3}, Lorg/purple/smokestack/UdpMulticastNeighbor;.reset:()V // method@d29f │ │ +49dab8: 2701 |0028: throw v1 │ │ +49daba: 5b30 b669 |0029: iput-object v0, v3, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_socket:Ljava/net/MulticastSocket; // field@69b6 │ │ +49dabe: 6e10 9fd2 0300 |002b: invoke-virtual {v3}, Lorg/purple/smokestack/UdpMulticastNeighbor;.reset:()V // method@d29f │ │ +49dac4: 0e00 |002e: return-void │ │ catches : 1 │ │ 0x000f - 0x0021 │ │ Ljava/lang/Exception; -> 0x0029 │ │ -> 0x0022 │ │ positions : │ │ 0x0000 line=125 │ │ 0x0003 line=126 │ │ @@ -1269950,17 +1269949,17 @@ │ │ type : '()Ljava/lang/String;' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -49d81c: |[49d81c] org.purple.smokestack.UdpMulticastNeighbor.getLocalIp:()Ljava/lang/String; │ │ -49d82c: 5410 b069 |0000: iget-object v0, v1, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_ipAddress:Ljava/lang/String; // field@69b0 │ │ -49d830: 1100 |0002: return-object v0 │ │ +49d818: |[49d818] org.purple.smokestack.UdpMulticastNeighbor.getLocalIp:()Ljava/lang/String; │ │ +49d828: 5410 b069 |0000: iget-object v0, v1, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_ipAddress:Ljava/lang/String; // field@69b0 │ │ +49d82c: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=43 │ │ locals : │ │ 0x0000 - 0x0003 reg=1 this Lorg/purple/smokestack/UdpMulticastNeighbor; │ │ │ │ #5 : (in Lorg/purple/smokestack/UdpMulticastNeighbor;) │ │ @@ -1269968,26 +1269967,26 @@ │ │ type : '()I' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 19 16-bit code units │ │ -49d7b8: |[49d7b8] org.purple.smokestack.UdpMulticastNeighbor.getLocalPort:()I │ │ -49d7c8: 5410 b669 |0000: iget-object v0, v1, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_socket:Ljava/net/MulticastSocket; // field@69b6 │ │ -49d7cc: 3800 0f00 |0002: if-eqz v0, 0011 // +000f │ │ -49d7d0: 6e10 b85d 0000 |0004: invoke-virtual {v0}, Ljava/net/MulticastSocket;.isClosed:()Z // method@5db8 │ │ -49d7d6: 0a00 |0007: move-result v0 │ │ -49d7d8: 3900 0900 |0008: if-nez v0, 0011 // +0009 │ │ -49d7dc: 5410 b669 |000a: iget-object v0, v1, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_socket:Ljava/net/MulticastSocket; // field@69b6 │ │ -49d7e0: 6e10 b75d 0000 |000c: invoke-virtual {v0}, Ljava/net/MulticastSocket;.getLocalPort:()I // method@5db7 │ │ -49d7e6: 0a00 |000f: move-result v0 │ │ -49d7e8: 0f00 |0010: return v0 │ │ -49d7ea: 1200 |0011: const/4 v0, #int 0 // #0 │ │ -49d7ec: 0f00 |0012: return v0 │ │ +49d7b4: |[49d7b4] org.purple.smokestack.UdpMulticastNeighbor.getLocalPort:()I │ │ +49d7c4: 5410 b669 |0000: iget-object v0, v1, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_socket:Ljava/net/MulticastSocket; // field@69b6 │ │ +49d7c8: 3800 0f00 |0002: if-eqz v0, 0011 // +000f │ │ +49d7cc: 6e10 b85d 0000 |0004: invoke-virtual {v0}, Ljava/net/MulticastSocket;.isClosed:()Z // method@5db8 │ │ +49d7d2: 0a00 |0007: move-result v0 │ │ +49d7d4: 3900 0900 |0008: if-nez v0, 0011 // +0009 │ │ +49d7d8: 5410 b669 |000a: iget-object v0, v1, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_socket:Ljava/net/MulticastSocket; // field@69b6 │ │ +49d7dc: 6e10 b75d 0000 |000c: invoke-virtual {v0}, Ljava/net/MulticastSocket;.getLocalPort:()I // method@5db7 │ │ +49d7e2: 0a00 |000f: move-result v0 │ │ +49d7e4: 0f00 |0010: return v0 │ │ +49d7e6: 1200 |0011: const/4 v0, #int 0 // #0 │ │ +49d7e8: 0f00 |0012: return v0 │ │ catches : 1 │ │ 0x0000 - 0x0010 │ │ Ljava/lang/Exception; -> 0x0011 │ │ positions : │ │ 0x0000 line=108 │ │ 0x000a line=109 │ │ locals : │ │ @@ -1269998,17 +1269997,17 @@ │ │ type : '()Ljava/lang/String;' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -49d834: |[49d834] org.purple.smokestack.UdpMulticastNeighbor.getRemoteIp:()Ljava/lang/String; │ │ -49d844: 5410 b069 |0000: iget-object v0, v1, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_ipAddress:Ljava/lang/String; // field@69b0 │ │ -49d848: 1100 |0002: return-object v0 │ │ +49d830: |[49d830] org.purple.smokestack.UdpMulticastNeighbor.getRemoteIp:()Ljava/lang/String; │ │ +49d840: 5410 b069 |0000: iget-object v0, v1, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_ipAddress:Ljava/lang/String; // field@69b0 │ │ +49d844: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=48 │ │ locals : │ │ 0x0000 - 0x0003 reg=1 this Lorg/purple/smokestack/UdpMulticastNeighbor; │ │ │ │ #7 : (in Lorg/purple/smokestack/UdpMulticastNeighbor;) │ │ @@ -1270016,18 +1270015,18 @@ │ │ type : '()I' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 5 16-bit code units │ │ -49d800: |[49d800] org.purple.smokestack.UdpMulticastNeighbor.getRemotePort:()I │ │ -49d810: 6e10 9bd2 0100 |0000: invoke-virtual {v1}, Lorg/purple/smokestack/UdpMulticastNeighbor;.getLocalPort:()I // method@d29b │ │ -49d816: 0a00 |0003: move-result v0 │ │ -49d818: 0f00 |0004: return v0 │ │ +49d7fc: |[49d7fc] org.purple.smokestack.UdpMulticastNeighbor.getRemotePort:()I │ │ +49d80c: 6e10 9bd2 0100 |0000: invoke-virtual {v1}, Lorg/purple/smokestack/UdpMulticastNeighbor;.getLocalPort:()I // method@d29b │ │ +49d812: 0a00 |0003: move-result v0 │ │ +49d814: 0f00 |0004: return v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=120 │ │ locals : │ │ 0x0000 - 0x0005 reg=1 this Lorg/purple/smokestack/UdpMulticastNeighbor; │ │ │ │ #8 : (in Lorg/purple/smokestack/UdpMulticastNeighbor;) │ │ @@ -1270035,71 +1270034,71 @@ │ │ type : '(Ljava/lang/String;)Z' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 10 │ │ ins : 2 │ │ outs : 5 │ │ insns size : 111 16-bit code units │ │ -49d6b8: |[49d6b8] org.purple.smokestack.UdpMulticastNeighbor.send:(Ljava/lang/String;)Z │ │ -49d6c8: 6e10 98d2 0800 |0000: invoke-virtual {v8}, Lorg/purple/smokestack/UdpMulticastNeighbor;.connected:()Z // method@d298 │ │ -49d6ce: 0a00 |0003: move-result v0 │ │ -49d6d0: 1201 |0004: const/4 v1, #int 0 // #0 │ │ -49d6d2: 3800 6900 |0005: if-eqz v0, 006e // +0069 │ │ -49d6d6: 3809 6700 |0007: if-eqz v9, 006e // +0067 │ │ -49d6da: 6e10 e65c 0900 |0009: invoke-virtual {v9}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ -49d6e0: 0a00 |000c: move-result v0 │ │ -49d6e2: 3800 0300 |000d: if-eqz v0, 0010 // +0003 │ │ -49d6e6: 285f |000f: goto 006e // +005f │ │ -49d6e8: 2200 fc0a |0010: new-instance v0, Ljava/lang/StringBuilder; // type@0afc │ │ -49d6ec: 7020 145d 9000 |0012: invoke-direct {v0, v9}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@5d14 │ │ -49d6f2: 6e10 245d 0000 |0015: invoke-virtual {v0}, Ljava/lang/StringBuilder;.length:()I // method@5d24 │ │ -49d6f8: 0a02 |0018: move-result v2 │ │ -49d6fa: 3d02 3900 |0019: if-lez v2, 0052 // +0039 │ │ -49d6fe: 5482 af69 |001b: iget-object v2, v8, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_disconnected:Ljava/util/concurrent/atomic/AtomicBoolean; // field@69af │ │ -49d702: 6e10 1861 0200 |001d: invoke-virtual {v2}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ -49d708: 0a02 |0020: move-result v2 │ │ -49d70a: 3802 0300 |0021: if-eqz v2, 0024 // +0003 │ │ -49d70e: 0f01 |0023: return v1 │ │ -49d710: 1302 4002 |0024: const/16 v2, #int 576 // #240 │ │ -49d714: 6e10 245d 0000 |0026: invoke-virtual {v0}, Ljava/lang/StringBuilder;.length:()I // method@5d24 │ │ -49d71a: 0a03 |0029: move-result v3 │ │ -49d71c: 7120 9d5c 3200 |002a: invoke-static {v2, v3}, Ljava/lang/Math;.min:(II)I // method@5c9d │ │ -49d722: 0a02 |002d: move-result v2 │ │ -49d724: 6e30 275d 1002 |002e: invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;.substring:(II)Ljava/lang/String; // method@5d27 │ │ -49d72a: 0c02 |0031: move-result-object v2 │ │ -49d72c: 6e10 de5c 0200 |0032: invoke-virtual {v2}, Ljava/lang/String;.getBytes:()[B // method@5cde │ │ -49d732: 0c02 |0035: move-result-object v2 │ │ -49d734: 5483 b669 |0036: iget-object v3, v8, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_socket:Ljava/net/MulticastSocket; // field@69b6 │ │ -49d738: 2204 140b |0038: new-instance v4, Ljava/net/DatagramPacket; // type@0b14 │ │ -49d73c: 2125 |003a: array-length v5, v2 │ │ -49d73e: 5486 b069 |003b: iget-object v6, v8, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_ipAddress:Ljava/lang/String; // field@69b0 │ │ -49d742: 7110 ae5d 0600 |003d: invoke-static {v6}, Ljava/net/InetAddress;.getByName:(Ljava/lang/String;)Ljava/net/InetAddress; // method@5dae │ │ -49d748: 0c06 |0040: move-result-object v6 │ │ -49d74a: 5487 b169 |0041: iget-object v7, v8, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_ipPort:Ljava/lang/String; // field@69b1 │ │ -49d74e: 7110 6f5c 0700 |0043: invoke-static {v7}, Ljava/lang/Integer;.parseInt:(Ljava/lang/String;)I // method@5c6f │ │ -49d754: 0a07 |0046: move-result v7 │ │ -49d756: 7057 925d 2465 |0047: invoke-direct {v4, v2, v5, v6, v7}, Ljava/net/DatagramPacket;.:([BILjava/net/InetAddress;I)V // method@5d92 │ │ -49d75c: 6e20 bc5d 4300 |004a: invoke-virtual {v3, v4}, Ljava/net/MulticastSocket;.send:(Ljava/net/DatagramPacket;)V // method@5dbc │ │ -49d762: 2122 |004d: array-length v2, v2 │ │ -49d764: 6e30 215d 1002 |004e: invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;.delete:(II)Ljava/lang/StringBuilder; // method@5d21 │ │ -49d76a: 28c4 |0051: goto 0015 // -003c │ │ -49d76c: 7110 13d1 0900 |0052: invoke-static {v9}, Lorg/purple/smokestack/Kernel;.writeCongestionDigest:(Ljava/lang/String;)V // method@d113 │ │ -49d772: 5480 ad69 |0055: iget-object v0, v8, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_bytesWritten:Ljava/util/concurrent/atomic/AtomicLong; // field@69ad │ │ -49d776: 6e10 e95c 0900 |0057: invoke-virtual {v9}, Ljava/lang/String;.length:()I // method@5ce9 │ │ -49d77c: 0a09 |005a: move-result v9 │ │ -49d77e: 8192 |005b: int-to-long v2, v9 │ │ -49d780: 6e30 2261 2003 |005c: invoke-virtual {v0, v2, v3}, Ljava/util/concurrent/atomic/AtomicLong;.getAndAdd:(J)J // method@6122 │ │ -49d786: 1a09 0000 |005f: const-string v9, "" // string@0000 │ │ -49d78a: 6e20 a1d2 9800 |0061: invoke-virtual {v8, v9}, Lorg/purple/smokestack/UdpMulticastNeighbor;.setError:(Ljava/lang/String;)V // method@d2a1 │ │ -49d790: 1219 |0064: const/4 v9, #int 1 // #1 │ │ -49d792: 0f09 |0065: return v9 │ │ -49d794: 1a09 9909 |0066: const-string v9, "A socket error occurred on send()." // string@0999 │ │ -49d798: 6e20 a1d2 9800 |0068: invoke-virtual {v8, v9}, Lorg/purple/smokestack/UdpMulticastNeighbor;.setError:(Ljava/lang/String;)V // method@d2a1 │ │ -49d79e: 6e10 99d2 0800 |006b: invoke-virtual {v8}, Lorg/purple/smokestack/UdpMulticastNeighbor;.disconnect:()V // method@d299 │ │ -49d7a4: 0f01 |006e: return v1 │ │ +49d6b4: |[49d6b4] org.purple.smokestack.UdpMulticastNeighbor.send:(Ljava/lang/String;)Z │ │ +49d6c4: 6e10 98d2 0800 |0000: invoke-virtual {v8}, Lorg/purple/smokestack/UdpMulticastNeighbor;.connected:()Z // method@d298 │ │ +49d6ca: 0a00 |0003: move-result v0 │ │ +49d6cc: 1201 |0004: const/4 v1, #int 0 // #0 │ │ +49d6ce: 3800 6900 |0005: if-eqz v0, 006e // +0069 │ │ +49d6d2: 3809 6700 |0007: if-eqz v9, 006e // +0067 │ │ +49d6d6: 6e10 e65c 0900 |0009: invoke-virtual {v9}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ +49d6dc: 0a00 |000c: move-result v0 │ │ +49d6de: 3800 0300 |000d: if-eqz v0, 0010 // +0003 │ │ +49d6e2: 285f |000f: goto 006e // +005f │ │ +49d6e4: 2200 fc0a |0010: new-instance v0, Ljava/lang/StringBuilder; // type@0afc │ │ +49d6e8: 7020 145d 9000 |0012: invoke-direct {v0, v9}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@5d14 │ │ +49d6ee: 6e10 245d 0000 |0015: invoke-virtual {v0}, Ljava/lang/StringBuilder;.length:()I // method@5d24 │ │ +49d6f4: 0a02 |0018: move-result v2 │ │ +49d6f6: 3d02 3900 |0019: if-lez v2, 0052 // +0039 │ │ +49d6fa: 5482 af69 |001b: iget-object v2, v8, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_disconnected:Ljava/util/concurrent/atomic/AtomicBoolean; // field@69af │ │ +49d6fe: 6e10 1861 0200 |001d: invoke-virtual {v2}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ +49d704: 0a02 |0020: move-result v2 │ │ +49d706: 3802 0300 |0021: if-eqz v2, 0024 // +0003 │ │ +49d70a: 0f01 |0023: return v1 │ │ +49d70c: 1302 4002 |0024: const/16 v2, #int 576 // #240 │ │ +49d710: 6e10 245d 0000 |0026: invoke-virtual {v0}, Ljava/lang/StringBuilder;.length:()I // method@5d24 │ │ +49d716: 0a03 |0029: move-result v3 │ │ +49d718: 7120 9d5c 3200 |002a: invoke-static {v2, v3}, Ljava/lang/Math;.min:(II)I // method@5c9d │ │ +49d71e: 0a02 |002d: move-result v2 │ │ +49d720: 6e30 275d 1002 |002e: invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;.substring:(II)Ljava/lang/String; // method@5d27 │ │ +49d726: 0c02 |0031: move-result-object v2 │ │ +49d728: 6e10 de5c 0200 |0032: invoke-virtual {v2}, Ljava/lang/String;.getBytes:()[B // method@5cde │ │ +49d72e: 0c02 |0035: move-result-object v2 │ │ +49d730: 5483 b669 |0036: iget-object v3, v8, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_socket:Ljava/net/MulticastSocket; // field@69b6 │ │ +49d734: 2204 140b |0038: new-instance v4, Ljava/net/DatagramPacket; // type@0b14 │ │ +49d738: 2125 |003a: array-length v5, v2 │ │ +49d73a: 5486 b069 |003b: iget-object v6, v8, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_ipAddress:Ljava/lang/String; // field@69b0 │ │ +49d73e: 7110 ae5d 0600 |003d: invoke-static {v6}, Ljava/net/InetAddress;.getByName:(Ljava/lang/String;)Ljava/net/InetAddress; // method@5dae │ │ +49d744: 0c06 |0040: move-result-object v6 │ │ +49d746: 5487 b169 |0041: iget-object v7, v8, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_ipPort:Ljava/lang/String; // field@69b1 │ │ +49d74a: 7110 6f5c 0700 |0043: invoke-static {v7}, Ljava/lang/Integer;.parseInt:(Ljava/lang/String;)I // method@5c6f │ │ +49d750: 0a07 |0046: move-result v7 │ │ +49d752: 7057 925d 2465 |0047: invoke-direct {v4, v2, v5, v6, v7}, Ljava/net/DatagramPacket;.:([BILjava/net/InetAddress;I)V // method@5d92 │ │ +49d758: 6e20 bc5d 4300 |004a: invoke-virtual {v3, v4}, Ljava/net/MulticastSocket;.send:(Ljava/net/DatagramPacket;)V // method@5dbc │ │ +49d75e: 2122 |004d: array-length v2, v2 │ │ +49d760: 6e30 215d 1002 |004e: invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;.delete:(II)Ljava/lang/StringBuilder; // method@5d21 │ │ +49d766: 28c4 |0051: goto 0015 // -003c │ │ +49d768: 7110 13d1 0900 |0052: invoke-static {v9}, Lorg/purple/smokestack/Kernel;.writeCongestionDigest:(Ljava/lang/String;)V // method@d113 │ │ +49d76e: 5480 ad69 |0055: iget-object v0, v8, Lorg/purple/smokestack/UdpMulticastNeighbor;.m_bytesWritten:Ljava/util/concurrent/atomic/AtomicLong; // field@69ad │ │ +49d772: 6e10 e95c 0900 |0057: invoke-virtual {v9}, Ljava/lang/String;.length:()I // method@5ce9 │ │ +49d778: 0a09 |005a: move-result v9 │ │ +49d77a: 8192 |005b: int-to-long v2, v9 │ │ +49d77c: 6e30 2261 2003 |005c: invoke-virtual {v0, v2, v3}, Ljava/util/concurrent/atomic/AtomicLong;.getAndAdd:(J)J // method@6122 │ │ +49d782: 1a09 0000 |005f: const-string v9, "" // string@0000 │ │ +49d786: 6e20 a1d2 9800 |0061: invoke-virtual {v8, v9}, Lorg/purple/smokestack/UdpMulticastNeighbor;.setError:(Ljava/lang/String;)V // method@d2a1 │ │ +49d78c: 1219 |0064: const/4 v9, #int 1 // #1 │ │ +49d78e: 0f09 |0065: return v9 │ │ +49d790: 1a09 9909 |0066: const-string v9, "A socket error occurred on send()." // string@0999 │ │ +49d794: 6e20 a1d2 9800 |0068: invoke-virtual {v8, v9}, Lorg/purple/smokestack/UdpMulticastNeighbor;.setError:(Ljava/lang/String;)V // method@d2a1 │ │ +49d79a: 6e10 99d2 0800 |006b: invoke-virtual {v8}, Lorg/purple/smokestack/UdpMulticastNeighbor;.disconnect:()V // method@d299 │ │ +49d7a0: 0f01 |006e: return v1 │ │ catches : 1 │ │ 0x0010 - 0x0064 │ │ Ljava/lang/Exception; -> 0x0066 │ │ positions : │ │ 0x0000 line=67 │ │ 0x0010 line=72 │ │ 0x0015 line=74 │ │ @@ -1270148,35 +1270147,35 @@ │ │ type : '(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 15 │ │ ins : 6 │ │ outs : 9 │ │ insns size : 33 16-bit code units │ │ -49dfd8: |[49dfd8] org.purple.smokestack.UdpNeighbor.:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V │ │ -49dfe8: 1a04 9756 |0000: const-string v4, "UDP" // string@5697 │ │ -49dfec: 1206 |0002: const/4 v6, #int 0 // #0 │ │ -49dfee: 1217 |0003: const/4 v7, #int 1 // #1 │ │ -49dff0: 0790 |0004: move-object v0, v9 │ │ -49dff2: 07a1 |0005: move-object v1, v10 │ │ -49dff4: 07b2 |0006: move-object v2, v11 │ │ -49dff6: 07c3 |0007: move-object v3, v12 │ │ -49dff8: 07d5 |0008: move-object v5, v13 │ │ -49dffa: 01e8 |0009: move v8, v14 │ │ -49dffc: 7609 4cd1 0000 |000a: invoke-direct/range {v0, v1, v2, v3, v4, v5, v6, v7, v8}, Lorg/purple/smokestack/Neighbor;.:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZI)V // method@d14c │ │ -49e002: 120a |000d: const/4 v10, #int 0 // #0 │ │ -49e004: 5b9a c669 |000e: iput-object v10, v9, Lorg/purple/smokestack/UdpNeighbor;.m_socket:Ljava/net/DatagramSocket; // field@69c6 │ │ -49e008: 5490 c569 |0010: iget-object v0, v9, Lorg/purple/smokestack/UdpNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69c5 │ │ -49e00c: 2201 021f |0012: new-instance v1, Lorg/purple/smokestack/UdpNeighbor$1; // type@1f02 │ │ -49e010: 7020 a2d2 9100 |0014: invoke-direct {v1, v9}, Lorg/purple/smokestack/UdpNeighbor$1;.:(Lorg/purple/smokestack/UdpNeighbor;)V // method@d2a2 │ │ -49e016: 6206 122d |0017: sget-object v6, Ljava/util/concurrent/TimeUnit;.MILLISECONDS:Ljava/util/concurrent/TimeUnit; // field@2d12 │ │ -49e01a: 1602 0000 |0019: const-wide/16 v2, #int 0 // #0 │ │ -49e01e: 1604 6400 |001b: const-wide/16 v4, #int 100 // #64 │ │ -49e022: 7807 0e61 0000 |001d: invoke-interface/range {v0, v1, v2, v3, v4, v5, v6}, Ljava/util/concurrent/ScheduledExecutorService;.scheduleAtFixedRate:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; // method@610e │ │ -49e028: 0e00 |0020: return-void │ │ +49dfd4: |[49dfd4] org.purple.smokestack.UdpNeighbor.:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V │ │ +49dfe4: 1a04 9756 |0000: const-string v4, "UDP" // string@5697 │ │ +49dfe8: 1206 |0002: const/4 v6, #int 0 // #0 │ │ +49dfea: 1217 |0003: const/4 v7, #int 1 // #1 │ │ +49dfec: 0790 |0004: move-object v0, v9 │ │ +49dfee: 07a1 |0005: move-object v1, v10 │ │ +49dff0: 07b2 |0006: move-object v2, v11 │ │ +49dff2: 07c3 |0007: move-object v3, v12 │ │ +49dff4: 07d5 |0008: move-object v5, v13 │ │ +49dff6: 01e8 |0009: move v8, v14 │ │ +49dff8: 7609 4cd1 0000 |000a: invoke-direct/range {v0, v1, v2, v3, v4, v5, v6, v7, v8}, Lorg/purple/smokestack/Neighbor;.:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZI)V // method@d14c │ │ +49dffe: 120a |000d: const/4 v10, #int 0 // #0 │ │ +49e000: 5b9a c669 |000e: iput-object v10, v9, Lorg/purple/smokestack/UdpNeighbor;.m_socket:Ljava/net/DatagramSocket; // field@69c6 │ │ +49e004: 5490 c569 |0010: iget-object v0, v9, Lorg/purple/smokestack/UdpNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69c5 │ │ +49e008: 2201 021f |0012: new-instance v1, Lorg/purple/smokestack/UdpNeighbor$1; // type@1f02 │ │ +49e00c: 7020 a2d2 9100 |0014: invoke-direct {v1, v9}, Lorg/purple/smokestack/UdpNeighbor$1;.:(Lorg/purple/smokestack/UdpNeighbor;)V // method@d2a2 │ │ +49e012: 6206 122d |0017: sget-object v6, Ljava/util/concurrent/TimeUnit;.MILLISECONDS:Ljava/util/concurrent/TimeUnit; // field@2d12 │ │ +49e016: 1602 0000 |0019: const-wide/16 v2, #int 0 // #0 │ │ +49e01a: 1604 6400 |001b: const-wide/16 v4, #int 100 // #64 │ │ +49e01e: 7807 0e61 0000 |001d: invoke-interface/range {v0, v1, v2, v3, v4, v5, v6}, Ljava/util/concurrent/ScheduledExecutorService;.scheduleAtFixedRate:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; // method@610e │ │ +49e024: 0e00 |0020: return-void │ │ catches : (none) │ │ positions : │ │ 0x000a line=168 │ │ 0x000e line=38 │ │ 0x0010 line=169 │ │ locals : │ │ 0x0000 - 0x0021 reg=9 this Lorg/purple/smokestack/UdpNeighbor; │ │ @@ -1270191,17 +1270190,17 @@ │ │ type : '(Lorg/purple/smokestack/UdpNeighbor;)Ljava/net/DatagramSocket;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -49dfc0: |[49dfc0] org.purple.smokestack.UdpNeighbor.access$000:(Lorg/purple/smokestack/UdpNeighbor;)Ljava/net/DatagramSocket; │ │ -49dfd0: 5400 c669 |0000: iget-object v0, v0, Lorg/purple/smokestack/UdpNeighbor;.m_socket:Ljava/net/DatagramSocket; // field@69c6 │ │ -49dfd4: 1100 |0002: return-object v0 │ │ +49dfbc: |[49dfbc] org.purple.smokestack.UdpNeighbor.access$000:(Lorg/purple/smokestack/UdpNeighbor;)Ljava/net/DatagramSocket; │ │ +49dfcc: 5400 c669 |0000: iget-object v0, v0, Lorg/purple/smokestack/UdpNeighbor;.m_socket:Ljava/net/DatagramSocket; // field@69c6 │ │ +49dfd0: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=36 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/purple/smokestack/UdpNeighbor; │ │ │ │ Virtual methods - │ │ @@ -1270210,36 +1270209,36 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 6 │ │ ins : 1 │ │ outs : 4 │ │ insns size : 38 16-bit code units │ │ -49e02c: |[49e02c] org.purple.smokestack.UdpNeighbor.abort:()V │ │ -49e03c: 6e10 a9d2 0500 |0000: invoke-virtual {v5}, Lorg/purple/smokestack/UdpNeighbor;.disconnect:()V // method@d2a9 │ │ -49e042: 6f10 4dd1 0500 |0003: invoke-super {v5}, Lorg/purple/smokestack/Neighbor;.abort:()V // method@d14d │ │ -49e048: 5450 c569 |0006: iget-object v0, v5, Lorg/purple/smokestack/UdpNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69c5 │ │ -49e04c: 1d00 |0008: monitor-enter v0 │ │ -49e04e: 5451 c569 |0009: iget-object v1, v5, Lorg/purple/smokestack/UdpNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69c5 │ │ -49e052: 7210 0f61 0100 |000b: invoke-interface {v1}, Ljava/util/concurrent/ScheduledExecutorService;.shutdown:()V // method@610f │ │ -49e058: 2803 |000e: goto 0011 // +0003 │ │ -49e05a: 0d01 |000f: move-exception v1 │ │ -49e05c: 2814 |0010: goto 0024 // +0014 │ │ -49e05e: 5451 c569 |0011: iget-object v1, v5, Lorg/purple/smokestack/UdpNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69c5 │ │ -49e062: 1602 0500 |0013: const-wide/16 v2, #int 5 // #5 │ │ -49e066: 6204 152d |0015: sget-object v4, Ljava/util/concurrent/TimeUnit;.SECONDS:Ljava/util/concurrent/TimeUnit; // field@2d15 │ │ -49e06a: 7240 0d61 2143 |0017: invoke-interface {v1, v2, v3, v4}, Ljava/util/concurrent/ScheduledExecutorService;.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z // method@610d │ │ -49e070: 0a01 |001a: move-result v1 │ │ -49e072: 3901 0700 |001b: if-nez v1, 0022 // +0007 │ │ -49e076: 5451 c569 |001d: iget-object v1, v5, Lorg/purple/smokestack/UdpNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69c5 │ │ -49e07a: 7210 1061 0100 |001f: invoke-interface {v1}, Ljava/util/concurrent/ScheduledExecutorService;.shutdownNow:()Ljava/util/List; // method@6110 │ │ -49e080: 1e00 |0022: monitor-exit v0 │ │ -49e082: 0e00 |0023: return-void │ │ -49e084: 1e00 |0024: monitor-exit v0 │ │ -49e086: 2701 |0025: throw v1 │ │ +49e028: |[49e028] org.purple.smokestack.UdpNeighbor.abort:()V │ │ +49e038: 6e10 a9d2 0500 |0000: invoke-virtual {v5}, Lorg/purple/smokestack/UdpNeighbor;.disconnect:()V // method@d2a9 │ │ +49e03e: 6f10 4dd1 0500 |0003: invoke-super {v5}, Lorg/purple/smokestack/Neighbor;.abort:()V // method@d14d │ │ +49e044: 5450 c569 |0006: iget-object v0, v5, Lorg/purple/smokestack/UdpNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69c5 │ │ +49e048: 1d00 |0008: monitor-enter v0 │ │ +49e04a: 5451 c569 |0009: iget-object v1, v5, Lorg/purple/smokestack/UdpNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69c5 │ │ +49e04e: 7210 0f61 0100 |000b: invoke-interface {v1}, Ljava/util/concurrent/ScheduledExecutorService;.shutdown:()V // method@610f │ │ +49e054: 2803 |000e: goto 0011 // +0003 │ │ +49e056: 0d01 |000f: move-exception v1 │ │ +49e058: 2814 |0010: goto 0024 // +0014 │ │ +49e05a: 5451 c569 |0011: iget-object v1, v5, Lorg/purple/smokestack/UdpNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69c5 │ │ +49e05e: 1602 0500 |0013: const-wide/16 v2, #int 5 // #5 │ │ +49e062: 6204 152d |0015: sget-object v4, Ljava/util/concurrent/TimeUnit;.SECONDS:Ljava/util/concurrent/TimeUnit; // field@2d15 │ │ +49e066: 7240 0d61 2143 |0017: invoke-interface {v1, v2, v3, v4}, Ljava/util/concurrent/ScheduledExecutorService;.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z // method@610d │ │ +49e06c: 0a01 |001a: move-result v1 │ │ +49e06e: 3901 0700 |001b: if-nez v1, 0022 // +0007 │ │ +49e072: 5451 c569 |001d: iget-object v1, v5, Lorg/purple/smokestack/UdpNeighbor;.m_readSocketScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@69c5 │ │ +49e076: 7210 1061 0100 |001f: invoke-interface {v1}, Ljava/util/concurrent/ScheduledExecutorService;.shutdownNow:()Ljava/util/List; // method@6110 │ │ +49e07c: 1e00 |0022: monitor-exit v0 │ │ +49e07e: 0e00 |0023: return-void │ │ +49e080: 1e00 |0024: monitor-exit v0 │ │ +49e082: 2701 |0025: throw v1 │ │ catches : 3 │ │ 0x0009 - 0x000e │ │ Ljava/lang/Exception; -> 0x0011 │ │ -> 0x000f │ │ 0x0011 - 0x0022 │ │ Ljava/lang/Exception; -> 0x0022 │ │ -> 0x000f │ │ @@ -1270262,66 +1270261,66 @@ │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 5 │ │ ins : 1 │ │ outs : 3 │ │ insns size : 106 16-bit code units │ │ -49e0b0: |[49e0b0] org.purple.smokestack.UdpNeighbor.connect:()V │ │ -49e0c0: 6e10 a8d2 0400 |0000: invoke-virtual {v4}, Lorg/purple/smokestack/UdpNeighbor;.connected:()Z // method@d2a8 │ │ -49e0c6: 0a00 |0003: move-result v0 │ │ -49e0c8: 3800 0300 |0004: if-eqz v0, 0007 // +0003 │ │ -49e0cc: 0e00 |0006: return-void │ │ -49e0ce: 5440 bc69 |0007: iget-object v0, v4, Lorg/purple/smokestack/UdpNeighbor;.m_bytesRead:Ljava/util/concurrent/atomic/AtomicLong; // field@69bc │ │ -49e0d2: 1601 0000 |0009: const-wide/16 v1, #int 0 // #0 │ │ -49e0d6: 6e30 2461 1002 |000b: invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ -49e0dc: 5440 bd69 |000e: iget-object v0, v4, Lorg/purple/smokestack/UdpNeighbor;.m_bytesWritten:Ljava/util/concurrent/atomic/AtomicLong; // field@69bd │ │ -49e0e0: 6e30 2461 1002 |0010: invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ -49e0e6: 5440 bf69 |0013: iget-object v0, v4, Lorg/purple/smokestack/UdpNeighbor;.m_disconnected:Ljava/util/concurrent/atomic/AtomicBoolean; // field@69bf │ │ -49e0ea: 1201 |0015: const/4 v1, #int 0 // #0 │ │ -49e0ec: 6e20 1a61 1000 |0016: invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ -49e0f2: 5440 c269 |0019: iget-object v0, v4, Lorg/purple/smokestack/UdpNeighbor;.m_lastParsed:Ljava/util/concurrent/atomic/AtomicLong; // field@69c2 │ │ -49e0f6: 7100 2b5d 0000 |001b: invoke-static {}, Ljava/lang/System;.currentTimeMillis:()J // method@5d2b │ │ -49e0fc: 0b02 |001e: move-result-wide v2 │ │ -49e0fe: 6e30 2461 2003 |001f: invoke-virtual {v0, v2, v3}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ -49e104: 5440 c369 |0022: iget-object v0, v4, Lorg/purple/smokestack/UdpNeighbor;.m_lastTimeRead:Ljava/util/concurrent/atomic/AtomicLong; // field@69c3 │ │ -49e108: 7100 315d 0000 |0024: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@5d31 │ │ -49e10e: 0b02 |0027: move-result-wide v2 │ │ -49e110: 6e30 2461 2003 |0028: invoke-virtual {v0, v2, v3}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ -49e116: 2200 150b |002b: new-instance v0, Ljava/net/DatagramSocket; // type@0b15 │ │ -49e11a: 7010 955d 0000 |002d: invoke-direct {v0}, Ljava/net/DatagramSocket;.:()V // method@5d95 │ │ -49e120: 5b40 c669 |0030: iput-object v0, v4, Lorg/purple/smokestack/UdpNeighbor;.m_socket:Ljava/net/DatagramSocket; // field@69c6 │ │ -49e124: 5442 c069 |0032: iget-object v2, v4, Lorg/purple/smokestack/UdpNeighbor;.m_ipAddress:Ljava/lang/String; // field@69c0 │ │ -49e128: 7110 ae5d 0200 |0034: invoke-static {v2}, Ljava/net/InetAddress;.getByName:(Ljava/lang/String;)Ljava/net/InetAddress; // method@5dae │ │ -49e12e: 0c02 |0037: move-result-object v2 │ │ -49e130: 5443 c169 |0038: iget-object v3, v4, Lorg/purple/smokestack/UdpNeighbor;.m_ipPort:Ljava/lang/String; // field@69c1 │ │ -49e134: 7110 6f5c 0300 |003a: invoke-static {v3}, Ljava/lang/Integer;.parseInt:(Ljava/lang/String;)I // method@5c6f │ │ -49e13a: 0a03 |003d: move-result v3 │ │ -49e13c: 6e30 975d 2003 |003e: invoke-virtual {v0, v2, v3}, Ljava/net/DatagramSocket;.connect:(Ljava/net/InetAddress;I)V // method@5d97 │ │ -49e142: 5440 c669 |0041: iget-object v0, v4, Lorg/purple/smokestack/UdpNeighbor;.m_socket:Ljava/net/DatagramSocket; // field@69c6 │ │ -49e146: 6e20 9d5d 1000 |0043: invoke-virtual {v0, v1}, Ljava/net/DatagramSocket;.setSoTimeout:(I)V // method@5d9d │ │ -49e14c: 5440 c769 |0046: iget-object v0, v4, Lorg/purple/smokestack/UdpNeighbor;.m_startTime:Ljava/util/concurrent/atomic/AtomicLong; // field@69c7 │ │ -49e150: 7100 315d 0000 |0048: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@5d31 │ │ -49e156: 0b01 |004b: move-result-wide v1 │ │ -49e158: 6e30 2461 1002 |004c: invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ -49e15e: 1a00 0000 |004f: const-string v0, "" // string@0000 │ │ -49e162: 6e20 b1d2 0400 |0051: invoke-virtual {v4, v0}, Lorg/purple/smokestack/UdpNeighbor;.setError:(Ljava/lang/String;)V // method@d2b1 │ │ -49e168: 5440 c469 |0054: iget-object v0, v4, Lorg/purple/smokestack/UdpNeighbor;.m_mutex:Ljava/lang/Object; // field@69c4 │ │ -49e16c: 1d00 |0056: monitor-enter v0 │ │ -49e16e: 5441 c469 |0057: iget-object v1, v4, Lorg/purple/smokestack/UdpNeighbor;.m_mutex:Ljava/lang/Object; // field@69c4 │ │ -49e172: 6e10 b45c 0100 |0059: invoke-virtual {v1}, Ljava/lang/Object;.notifyAll:()V // method@5cb4 │ │ -49e178: 1e00 |005c: monitor-exit v0 │ │ -49e17a: 280c |005d: goto 0069 // +000c │ │ -49e17c: 0d01 |005e: move-exception v1 │ │ -49e17e: 1e00 |005f: monitor-exit v0 │ │ -49e180: 2701 |0060: throw v1 │ │ -49e182: 1a00 1b0e |0061: const-string v0, "An error occurred while attempting a connection." // string@0e1b │ │ -49e186: 6e20 b1d2 0400 |0063: invoke-virtual {v4, v0}, Lorg/purple/smokestack/UdpNeighbor;.setError:(Ljava/lang/String;)V // method@d2b1 │ │ -49e18c: 6e10 a9d2 0400 |0066: invoke-virtual {v4}, Lorg/purple/smokestack/UdpNeighbor;.disconnect:()V // method@d2a9 │ │ -49e192: 0e00 |0069: return-void │ │ +49e0ac: |[49e0ac] org.purple.smokestack.UdpNeighbor.connect:()V │ │ +49e0bc: 6e10 a8d2 0400 |0000: invoke-virtual {v4}, Lorg/purple/smokestack/UdpNeighbor;.connected:()Z // method@d2a8 │ │ +49e0c2: 0a00 |0003: move-result v0 │ │ +49e0c4: 3800 0300 |0004: if-eqz v0, 0007 // +0003 │ │ +49e0c8: 0e00 |0006: return-void │ │ +49e0ca: 5440 bc69 |0007: iget-object v0, v4, Lorg/purple/smokestack/UdpNeighbor;.m_bytesRead:Ljava/util/concurrent/atomic/AtomicLong; // field@69bc │ │ +49e0ce: 1601 0000 |0009: const-wide/16 v1, #int 0 // #0 │ │ +49e0d2: 6e30 2461 1002 |000b: invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ +49e0d8: 5440 bd69 |000e: iget-object v0, v4, Lorg/purple/smokestack/UdpNeighbor;.m_bytesWritten:Ljava/util/concurrent/atomic/AtomicLong; // field@69bd │ │ +49e0dc: 6e30 2461 1002 |0010: invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ +49e0e2: 5440 bf69 |0013: iget-object v0, v4, Lorg/purple/smokestack/UdpNeighbor;.m_disconnected:Ljava/util/concurrent/atomic/AtomicBoolean; // field@69bf │ │ +49e0e6: 1201 |0015: const/4 v1, #int 0 // #0 │ │ +49e0e8: 6e20 1a61 1000 |0016: invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@611a │ │ +49e0ee: 5440 c269 |0019: iget-object v0, v4, Lorg/purple/smokestack/UdpNeighbor;.m_lastParsed:Ljava/util/concurrent/atomic/AtomicLong; // field@69c2 │ │ +49e0f2: 7100 2b5d 0000 |001b: invoke-static {}, Ljava/lang/System;.currentTimeMillis:()J // method@5d2b │ │ +49e0f8: 0b02 |001e: move-result-wide v2 │ │ +49e0fa: 6e30 2461 2003 |001f: invoke-virtual {v0, v2, v3}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ +49e100: 5440 c369 |0022: iget-object v0, v4, Lorg/purple/smokestack/UdpNeighbor;.m_lastTimeRead:Ljava/util/concurrent/atomic/AtomicLong; // field@69c3 │ │ +49e104: 7100 315d 0000 |0024: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@5d31 │ │ +49e10a: 0b02 |0027: move-result-wide v2 │ │ +49e10c: 6e30 2461 2003 |0028: invoke-virtual {v0, v2, v3}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ +49e112: 2200 150b |002b: new-instance v0, Ljava/net/DatagramSocket; // type@0b15 │ │ +49e116: 7010 955d 0000 |002d: invoke-direct {v0}, Ljava/net/DatagramSocket;.:()V // method@5d95 │ │ +49e11c: 5b40 c669 |0030: iput-object v0, v4, Lorg/purple/smokestack/UdpNeighbor;.m_socket:Ljava/net/DatagramSocket; // field@69c6 │ │ +49e120: 5442 c069 |0032: iget-object v2, v4, Lorg/purple/smokestack/UdpNeighbor;.m_ipAddress:Ljava/lang/String; // field@69c0 │ │ +49e124: 7110 ae5d 0200 |0034: invoke-static {v2}, Ljava/net/InetAddress;.getByName:(Ljava/lang/String;)Ljava/net/InetAddress; // method@5dae │ │ +49e12a: 0c02 |0037: move-result-object v2 │ │ +49e12c: 5443 c169 |0038: iget-object v3, v4, Lorg/purple/smokestack/UdpNeighbor;.m_ipPort:Ljava/lang/String; // field@69c1 │ │ +49e130: 7110 6f5c 0300 |003a: invoke-static {v3}, Ljava/lang/Integer;.parseInt:(Ljava/lang/String;)I // method@5c6f │ │ +49e136: 0a03 |003d: move-result v3 │ │ +49e138: 6e30 975d 2003 |003e: invoke-virtual {v0, v2, v3}, Ljava/net/DatagramSocket;.connect:(Ljava/net/InetAddress;I)V // method@5d97 │ │ +49e13e: 5440 c669 |0041: iget-object v0, v4, Lorg/purple/smokestack/UdpNeighbor;.m_socket:Ljava/net/DatagramSocket; // field@69c6 │ │ +49e142: 6e20 9d5d 1000 |0043: invoke-virtual {v0, v1}, Ljava/net/DatagramSocket;.setSoTimeout:(I)V // method@5d9d │ │ +49e148: 5440 c769 |0046: iget-object v0, v4, Lorg/purple/smokestack/UdpNeighbor;.m_startTime:Ljava/util/concurrent/atomic/AtomicLong; // field@69c7 │ │ +49e14c: 7100 315d 0000 |0048: invoke-static {}, Ljava/lang/System;.nanoTime:()J // method@5d31 │ │ +49e152: 0b01 |004b: move-result-wide v1 │ │ +49e154: 6e30 2461 1002 |004c: invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicLong;.set:(J)V // method@6124 │ │ +49e15a: 1a00 0000 |004f: const-string v0, "" // string@0000 │ │ +49e15e: 6e20 b1d2 0400 |0051: invoke-virtual {v4, v0}, Lorg/purple/smokestack/UdpNeighbor;.setError:(Ljava/lang/String;)V // method@d2b1 │ │ +49e164: 5440 c469 |0054: iget-object v0, v4, Lorg/purple/smokestack/UdpNeighbor;.m_mutex:Ljava/lang/Object; // field@69c4 │ │ +49e168: 1d00 |0056: monitor-enter v0 │ │ +49e16a: 5441 c469 |0057: iget-object v1, v4, Lorg/purple/smokestack/UdpNeighbor;.m_mutex:Ljava/lang/Object; // field@69c4 │ │ +49e16e: 6e10 b45c 0100 |0059: invoke-virtual {v1}, Ljava/lang/Object;.notifyAll:()V // method@5cb4 │ │ +49e174: 1e00 |005c: monitor-exit v0 │ │ +49e176: 280c |005d: goto 0069 // +000c │ │ +49e178: 0d01 |005e: move-exception v1 │ │ +49e17a: 1e00 |005f: monitor-exit v0 │ │ +49e17c: 2701 |0060: throw v1 │ │ +49e17e: 1a00 1b0e |0061: const-string v0, "An error occurred while attempting a connection." // string@0e1b │ │ +49e182: 6e20 b1d2 0400 |0063: invoke-virtual {v4, v0}, Lorg/purple/smokestack/UdpNeighbor;.setError:(Ljava/lang/String;)V // method@d2b1 │ │ +49e188: 6e10 a9d2 0400 |0066: invoke-virtual {v4}, Lorg/purple/smokestack/UdpNeighbor;.disconnect:()V // method@d2a9 │ │ +49e18e: 0e00 |0069: return-void │ │ catches : 3 │ │ 0x0007 - 0x0057 │ │ Ljava/lang/Exception; -> 0x0061 │ │ 0x0057 - 0x0060 │ │ -> 0x005e │ │ 0x0060 - 0x0061 │ │ Ljava/lang/Exception; -> 0x0061 │ │ @@ -1270353,26 +1270352,26 @@ │ │ type : '()Z' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 19 16-bit code units │ │ -49dd7c: |[49dd7c] org.purple.smokestack.UdpNeighbor.connected:()Z │ │ -49dd8c: 1200 |0000: const/4 v0, #int 0 // #0 │ │ -49dd8e: 6e10 aed2 0200 |0001: invoke-virtual {v2}, Lorg/purple/smokestack/UdpNeighbor;.isNetworkConnected:()Z // method@d2ae │ │ -49dd94: 0a01 |0004: move-result v1 │ │ -49dd96: 3801 0d00 |0005: if-eqz v1, 0012 // +000d │ │ -49dd9a: 5421 c669 |0007: iget-object v1, v2, Lorg/purple/smokestack/UdpNeighbor;.m_socket:Ljava/net/DatagramSocket; // field@69c6 │ │ -49dd9e: 3801 0900 |0009: if-eqz v1, 0012 // +0009 │ │ -49dda2: 6e10 9a5d 0100 |000b: invoke-virtual {v1}, Ljava/net/DatagramSocket;.isClosed:()Z // method@5d9a │ │ -49dda8: 0a01 |000e: move-result v1 │ │ -49ddaa: 3901 0300 |000f: if-nez v1, 0012 // +0003 │ │ -49ddae: 1210 |0011: const/4 v0, #int 1 // #1 │ │ -49ddb0: 0f00 |0012: return v0 │ │ +49dd78: |[49dd78] org.purple.smokestack.UdpNeighbor.connected:()Z │ │ +49dd88: 1200 |0000: const/4 v0, #int 0 // #0 │ │ +49dd8a: 6e10 aed2 0200 |0001: invoke-virtual {v2}, Lorg/purple/smokestack/UdpNeighbor;.isNetworkConnected:()Z // method@d2ae │ │ +49dd90: 0a01 |0004: move-result v1 │ │ +49dd92: 3801 0d00 |0005: if-eqz v1, 0012 // +000d │ │ +49dd96: 5421 c669 |0007: iget-object v1, v2, Lorg/purple/smokestack/UdpNeighbor;.m_socket:Ljava/net/DatagramSocket; // field@69c6 │ │ +49dd9a: 3801 0900 |0009: if-eqz v1, 0012 // +0009 │ │ +49dd9e: 6e10 9a5d 0100 |000b: invoke-virtual {v1}, Ljava/net/DatagramSocket;.isClosed:()Z // method@5d9a │ │ +49dda4: 0a01 |000e: move-result v1 │ │ +49dda6: 3901 0300 |000f: if-nez v1, 0012 // +0003 │ │ +49ddaa: 1210 |0011: const/4 v0, #int 1 // #1 │ │ +49ddac: 0f00 |0012: return v0 │ │ catches : 1 │ │ 0x0001 - 0x000f │ │ Ljava/lang/Exception; -> 0x0012 │ │ positions : │ │ 0x0001 line=66 │ │ 0x000b line=68 │ │ locals : │ │ @@ -1270383,33 +1270382,33 @@ │ │ type : '()V' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 36 16-bit code units │ │ -49e1b4: |[49e1b4] org.purple.smokestack.UdpNeighbor.disconnect:()V │ │ -49e1c4: 6f10 56d1 0200 |0000: invoke-super {v2}, Lorg/purple/smokestack/Neighbor;.disconnect:()V // method@d156 │ │ -49e1ca: 5420 be69 |0003: iget-object v0, v2, Lorg/purple/smokestack/UdpNeighbor;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@69be │ │ -49e1ce: 5421 c969 |0005: iget-object v1, v2, Lorg/purple/smokestack/UdpNeighbor;.m_uuid:Ljava/util/UUID; // field@69c9 │ │ -49e1d2: 6e10 d160 0100 |0007: invoke-virtual {v1}, Ljava/util/UUID;.toString:()Ljava/lang/String; // method@60d1 │ │ -49e1d8: 0c01 |000a: move-result-object v1 │ │ -49e1da: 6e20 b1d0 1000 |000b: invoke-virtual {v0, v1}, Lorg/purple/smokestack/Database;.deleteRoutingEntry:(Ljava/lang/String;)V // method@d0b1 │ │ -49e1e0: 1200 |000e: const/4 v0, #int 0 // #0 │ │ -49e1e2: 5421 c669 |000f: iget-object v1, v2, Lorg/purple/smokestack/UdpNeighbor;.m_socket:Ljava/net/DatagramSocket; // field@69c6 │ │ -49e1e6: 3801 0d00 |0011: if-eqz v1, 001e // +000d │ │ -49e1ea: 6e10 965d 0100 |0013: invoke-virtual {v1}, Ljava/net/DatagramSocket;.close:()V // method@5d96 │ │ -49e1f0: 2808 |0016: goto 001e // +0008 │ │ -49e1f2: 0d01 |0017: move-exception v1 │ │ -49e1f4: 5b20 c669 |0018: iput-object v0, v2, Lorg/purple/smokestack/UdpNeighbor;.m_socket:Ljava/net/DatagramSocket; // field@69c6 │ │ -49e1f8: 6e10 afd2 0200 |001a: invoke-virtual {v2}, Lorg/purple/smokestack/UdpNeighbor;.reset:()V // method@d2af │ │ -49e1fe: 2701 |001d: throw v1 │ │ -49e200: 5b20 c669 |001e: iput-object v0, v2, Lorg/purple/smokestack/UdpNeighbor;.m_socket:Ljava/net/DatagramSocket; // field@69c6 │ │ -49e204: 6e10 afd2 0200 |0020: invoke-virtual {v2}, Lorg/purple/smokestack/UdpNeighbor;.reset:()V // method@d2af │ │ -49e20a: 0e00 |0023: return-void │ │ +49e1b0: |[49e1b0] org.purple.smokestack.UdpNeighbor.disconnect:()V │ │ +49e1c0: 6f10 56d1 0200 |0000: invoke-super {v2}, Lorg/purple/smokestack/Neighbor;.disconnect:()V // method@d156 │ │ +49e1c6: 5420 be69 |0003: iget-object v0, v2, Lorg/purple/smokestack/UdpNeighbor;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@69be │ │ +49e1ca: 5421 c969 |0005: iget-object v1, v2, Lorg/purple/smokestack/UdpNeighbor;.m_uuid:Ljava/util/UUID; // field@69c9 │ │ +49e1ce: 6e10 d160 0100 |0007: invoke-virtual {v1}, Ljava/util/UUID;.toString:()Ljava/lang/String; // method@60d1 │ │ +49e1d4: 0c01 |000a: move-result-object v1 │ │ +49e1d6: 6e20 b1d0 1000 |000b: invoke-virtual {v0, v1}, Lorg/purple/smokestack/Database;.deleteRoutingEntry:(Ljava/lang/String;)V // method@d0b1 │ │ +49e1dc: 1200 |000e: const/4 v0, #int 0 // #0 │ │ +49e1de: 5421 c669 |000f: iget-object v1, v2, Lorg/purple/smokestack/UdpNeighbor;.m_socket:Ljava/net/DatagramSocket; // field@69c6 │ │ +49e1e2: 3801 0d00 |0011: if-eqz v1, 001e // +000d │ │ +49e1e6: 6e10 965d 0100 |0013: invoke-virtual {v1}, Ljava/net/DatagramSocket;.close:()V // method@5d96 │ │ +49e1ec: 2808 |0016: goto 001e // +0008 │ │ +49e1ee: 0d01 |0017: move-exception v1 │ │ +49e1f0: 5b20 c669 |0018: iput-object v0, v2, Lorg/purple/smokestack/UdpNeighbor;.m_socket:Ljava/net/DatagramSocket; // field@69c6 │ │ +49e1f4: 6e10 afd2 0200 |001a: invoke-virtual {v2}, Lorg/purple/smokestack/UdpNeighbor;.reset:()V // method@d2af │ │ +49e1fa: 2701 |001d: throw v1 │ │ +49e1fc: 5b20 c669 |001e: iput-object v0, v2, Lorg/purple/smokestack/UdpNeighbor;.m_socket:Ljava/net/DatagramSocket; // field@69c6 │ │ +49e200: 6e10 afd2 0200 |0020: invoke-virtual {v2}, Lorg/purple/smokestack/UdpNeighbor;.reset:()V // method@d2af │ │ +49e206: 0e00 |0023: return-void │ │ catches : 1 │ │ 0x000f - 0x0016 │ │ Ljava/lang/Exception; -> 0x001e │ │ -> 0x0017 │ │ positions : │ │ 0x0000 line=144 │ │ 0x0003 line=145 │ │ @@ -1270428,36 +1270427,36 @@ │ │ type : '()Ljava/lang/String;' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 38 16-bit code units │ │ -49df3c: |[49df3c] org.purple.smokestack.UdpNeighbor.getLocalIp:()Ljava/lang/String; │ │ -49df4c: 5420 c669 |0000: iget-object v0, v2, Lorg/purple/smokestack/UdpNeighbor;.m_socket:Ljava/net/DatagramSocket; // field@69c6 │ │ -49df50: 3800 1400 |0002: if-eqz v0, 0016 // +0014 │ │ -49df54: 6e10 985d 0000 |0004: invoke-virtual {v0}, Ljava/net/DatagramSocket;.getLocalAddress:()Ljava/net/InetAddress; // method@5d98 │ │ -49df5a: 0c00 |0007: move-result-object v0 │ │ -49df5c: 3800 0e00 |0008: if-eqz v0, 0016 // +000e │ │ -49df60: 5420 c669 |000a: iget-object v0, v2, Lorg/purple/smokestack/UdpNeighbor;.m_socket:Ljava/net/DatagramSocket; // field@69c6 │ │ -49df64: 6e10 985d 0000 |000c: invoke-virtual {v0}, Ljava/net/DatagramSocket;.getLocalAddress:()Ljava/net/InetAddress; // method@5d98 │ │ -49df6a: 0c00 |000f: move-result-object v0 │ │ -49df6c: 6e10 af5d 0000 |0010: invoke-virtual {v0}, Ljava/net/InetAddress;.getHostAddress:()Ljava/lang/String; // method@5daf │ │ -49df72: 0c00 |0013: move-result-object v0 │ │ -49df74: 1100 |0014: return-object v0 │ │ -49df76: 0000 |0015: nop // spacer │ │ -49df78: 5420 ca69 |0016: iget-object v0, v2, Lorg/purple/smokestack/UdpNeighbor;.m_version:Ljava/lang/String; // field@69ca │ │ -49df7c: 1a01 a11f |0018: const-string v1, "IPv4" // string@1fa1 │ │ -49df80: 6e20 da5c 1000 |001a: invoke-virtual {v0, v1}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ -49df86: 0a00 |001d: move-result v0 │ │ -49df88: 3800 0500 |001e: if-eqz v0, 0023 // +0005 │ │ -49df8c: 1a00 2505 |0020: const-string v0, "0.0.0.0" // string@0525 │ │ -49df90: 1100 |0022: return-object v0 │ │ -49df92: 1a00 1809 |0023: const-string v0, "::" // string@0918 │ │ -49df96: 1100 |0025: return-object v0 │ │ +49df38: |[49df38] org.purple.smokestack.UdpNeighbor.getLocalIp:()Ljava/lang/String; │ │ +49df48: 5420 c669 |0000: iget-object v0, v2, Lorg/purple/smokestack/UdpNeighbor;.m_socket:Ljava/net/DatagramSocket; // field@69c6 │ │ +49df4c: 3800 1400 |0002: if-eqz v0, 0016 // +0014 │ │ +49df50: 6e10 985d 0000 |0004: invoke-virtual {v0}, Ljava/net/DatagramSocket;.getLocalAddress:()Ljava/net/InetAddress; // method@5d98 │ │ +49df56: 0c00 |0007: move-result-object v0 │ │ +49df58: 3800 0e00 |0008: if-eqz v0, 0016 // +000e │ │ +49df5c: 5420 c669 |000a: iget-object v0, v2, Lorg/purple/smokestack/UdpNeighbor;.m_socket:Ljava/net/DatagramSocket; // field@69c6 │ │ +49df60: 6e10 985d 0000 |000c: invoke-virtual {v0}, Ljava/net/DatagramSocket;.getLocalAddress:()Ljava/net/InetAddress; // method@5d98 │ │ +49df66: 0c00 |000f: move-result-object v0 │ │ +49df68: 6e10 af5d 0000 |0010: invoke-virtual {v0}, Ljava/net/InetAddress;.getHostAddress:()Ljava/lang/String; // method@5daf │ │ +49df6e: 0c00 |0013: move-result-object v0 │ │ +49df70: 1100 |0014: return-object v0 │ │ +49df72: 0000 |0015: nop // spacer │ │ +49df74: 5420 ca69 |0016: iget-object v0, v2, Lorg/purple/smokestack/UdpNeighbor;.m_version:Ljava/lang/String; // field@69ca │ │ +49df78: 1a01 a11f |0018: const-string v1, "IPv4" // string@1fa1 │ │ +49df7c: 6e20 da5c 1000 |001a: invoke-virtual {v0, v1}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ +49df82: 0a00 |001d: move-result v0 │ │ +49df84: 3800 0500 |001e: if-eqz v0, 0023 // +0005 │ │ +49df88: 1a00 2505 |0020: const-string v0, "0.0.0.0" // string@0525 │ │ +49df8c: 1100 |0022: return-object v0 │ │ +49df8e: 1a00 1809 |0023: const-string v0, "::" // string@0918 │ │ +49df92: 1100 |0025: return-object v0 │ │ catches : 1 │ │ 0x0000 - 0x0014 │ │ Ljava/lang/Exception; -> 0x0015 │ │ positions : │ │ 0x0000 line=44 │ │ 0x000a line=45 │ │ 0x0016 line=51 │ │ @@ -1270469,26 +1270468,26 @@ │ │ type : '()I' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 19 16-bit code units │ │ -49dec0: |[49dec0] org.purple.smokestack.UdpNeighbor.getLocalPort:()I │ │ -49ded0: 5410 c669 |0000: iget-object v0, v1, Lorg/purple/smokestack/UdpNeighbor;.m_socket:Ljava/net/DatagramSocket; // field@69c6 │ │ -49ded4: 3800 0f00 |0002: if-eqz v0, 0011 // +000f │ │ -49ded8: 6e10 9a5d 0000 |0004: invoke-virtual {v0}, Ljava/net/DatagramSocket;.isClosed:()Z // method@5d9a │ │ -49dede: 0a00 |0007: move-result v0 │ │ -49dee0: 3900 0900 |0008: if-nez v0, 0011 // +0009 │ │ -49dee4: 5410 c669 |000a: iget-object v0, v1, Lorg/purple/smokestack/UdpNeighbor;.m_socket:Ljava/net/DatagramSocket; // field@69c6 │ │ -49dee8: 6e10 995d 0000 |000c: invoke-virtual {v0}, Ljava/net/DatagramSocket;.getLocalPort:()I // method@5d99 │ │ -49deee: 0a00 |000f: move-result v0 │ │ -49def0: 0f00 |0010: return v0 │ │ -49def2: 1200 |0011: const/4 v0, #int 0 // #0 │ │ -49def4: 0f00 |0012: return v0 │ │ +49debc: |[49debc] org.purple.smokestack.UdpNeighbor.getLocalPort:()I │ │ +49decc: 5410 c669 |0000: iget-object v0, v1, Lorg/purple/smokestack/UdpNeighbor;.m_socket:Ljava/net/DatagramSocket; // field@69c6 │ │ +49ded0: 3800 0f00 |0002: if-eqz v0, 0011 // +000f │ │ +49ded4: 6e10 9a5d 0000 |0004: invoke-virtual {v0}, Ljava/net/DatagramSocket;.isClosed:()Z // method@5d9a │ │ +49deda: 0a00 |0007: move-result v0 │ │ +49dedc: 3900 0900 |0008: if-nez v0, 0011 // +0009 │ │ +49dee0: 5410 c669 |000a: iget-object v0, v1, Lorg/purple/smokestack/UdpNeighbor;.m_socket:Ljava/net/DatagramSocket; // field@69c6 │ │ +49dee4: 6e10 995d 0000 |000c: invoke-virtual {v0}, Ljava/net/DatagramSocket;.getLocalPort:()I // method@5d99 │ │ +49deea: 0a00 |000f: move-result v0 │ │ +49deec: 0f00 |0010: return v0 │ │ +49deee: 1200 |0011: const/4 v0, #int 0 // #0 │ │ +49def0: 0f00 |0012: return v0 │ │ catches : 1 │ │ 0x0000 - 0x0010 │ │ Ljava/lang/Exception; -> 0x0011 │ │ positions : │ │ 0x0000 line=119 │ │ 0x000a line=120 │ │ locals : │ │ @@ -1270499,17 +1270498,17 @@ │ │ type : '()Ljava/lang/String;' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -49dfa8: |[49dfa8] org.purple.smokestack.UdpNeighbor.getRemoteIp:()Ljava/lang/String; │ │ -49dfb8: 5410 c069 |0000: iget-object v0, v1, Lorg/purple/smokestack/UdpNeighbor;.m_ipAddress:Ljava/lang/String; // field@69c0 │ │ -49dfbc: 1100 |0002: return-object v0 │ │ +49dfa4: |[49dfa4] org.purple.smokestack.UdpNeighbor.getRemoteIp:()Ljava/lang/String; │ │ +49dfb4: 5410 c069 |0000: iget-object v0, v1, Lorg/purple/smokestack/UdpNeighbor;.m_ipAddress:Ljava/lang/String; // field@69c0 │ │ +49dfb8: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=59 │ │ locals : │ │ 0x0000 - 0x0003 reg=1 this Lorg/purple/smokestack/UdpNeighbor; │ │ │ │ #7 : (in Lorg/purple/smokestack/UdpNeighbor;) │ │ @@ -1270517,21 +1270516,21 @@ │ │ type : '()I' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 9 16-bit code units │ │ -49df08: |[49df08] org.purple.smokestack.UdpNeighbor.getRemotePort:()I │ │ -49df18: 5410 c169 |0000: iget-object v0, v1, Lorg/purple/smokestack/UdpNeighbor;.m_ipPort:Ljava/lang/String; // field@69c1 │ │ -49df1c: 7110 6f5c 0000 |0002: invoke-static {v0}, Ljava/lang/Integer;.parseInt:(Ljava/lang/String;)I // method@5c6f │ │ -49df22: 0a00 |0005: move-result v0 │ │ -49df24: 0f00 |0006: return v0 │ │ -49df26: 1200 |0007: const/4 v0, #int 0 // #0 │ │ -49df28: 0f00 |0008: return v0 │ │ +49df04: |[49df04] org.purple.smokestack.UdpNeighbor.getRemotePort:()I │ │ +49df14: 5410 c169 |0000: iget-object v0, v1, Lorg/purple/smokestack/UdpNeighbor;.m_ipPort:Ljava/lang/String; // field@69c1 │ │ +49df18: 7110 6f5c 0000 |0002: invoke-static {v0}, Ljava/lang/Integer;.parseInt:(Ljava/lang/String;)I // method@5c6f │ │ +49df1e: 0a00 |0005: move-result v0 │ │ +49df20: 0f00 |0006: return v0 │ │ +49df22: 1200 |0007: const/4 v0, #int 0 // #0 │ │ +49df24: 0f00 |0008: return v0 │ │ catches : 1 │ │ 0x0000 - 0x0006 │ │ Ljava/lang/Exception; -> 0x0007 │ │ positions : │ │ 0x0000 line=133 │ │ locals : │ │ 0x0000 - 0x0009 reg=1 this Lorg/purple/smokestack/UdpNeighbor; │ │ @@ -1270541,70 +1270540,70 @@ │ │ type : '(Ljava/lang/String;)Z' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 10 │ │ ins : 2 │ │ outs : 5 │ │ insns size : 110 16-bit code units │ │ -49ddc4: |[49ddc4] org.purple.smokestack.UdpNeighbor.send:(Ljava/lang/String;)Z │ │ -49ddd4: 6e10 a8d2 0800 |0000: invoke-virtual {v8}, Lorg/purple/smokestack/UdpNeighbor;.connected:()Z // method@d2a8 │ │ -49ddda: 0a00 |0003: move-result v0 │ │ -49dddc: 1201 |0004: const/4 v1, #int 0 // #0 │ │ -49ddde: 3800 6800 |0005: if-eqz v0, 006d // +0068 │ │ -49dde2: 3809 6600 |0007: if-eqz v9, 006d // +0066 │ │ -49dde6: 6e10 e65c 0900 |0009: invoke-virtual {v9}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ -49ddec: 0a00 |000c: move-result v0 │ │ -49ddee: 3800 0300 |000d: if-eqz v0, 0010 // +0003 │ │ -49ddf2: 285e |000f: goto 006d // +005e │ │ -49ddf4: 2200 fc0a |0010: new-instance v0, Ljava/lang/StringBuilder; // type@0afc │ │ -49ddf8: 7020 145d 9000 |0012: invoke-direct {v0, v9}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@5d14 │ │ -49ddfe: 6e10 245d 0000 |0015: invoke-virtual {v0}, Ljava/lang/StringBuilder;.length:()I // method@5d24 │ │ -49de04: 0a02 |0018: move-result v2 │ │ -49de06: 3d02 3900 |0019: if-lez v2, 0052 // +0039 │ │ -49de0a: 5482 bf69 |001b: iget-object v2, v8, Lorg/purple/smokestack/UdpNeighbor;.m_disconnected:Ljava/util/concurrent/atomic/AtomicBoolean; // field@69bf │ │ -49de0e: 6e10 1861 0200 |001d: invoke-virtual {v2}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ -49de14: 0a02 |0020: move-result v2 │ │ -49de16: 3802 0300 |0021: if-eqz v2, 0024 // +0003 │ │ -49de1a: 0f01 |0023: return v1 │ │ -49de1c: 1302 4002 |0024: const/16 v2, #int 576 // #240 │ │ -49de20: 6e10 245d 0000 |0026: invoke-virtual {v0}, Ljava/lang/StringBuilder;.length:()I // method@5d24 │ │ -49de26: 0a03 |0029: move-result v3 │ │ -49de28: 7120 9d5c 3200 |002a: invoke-static {v2, v3}, Ljava/lang/Math;.min:(II)I // method@5c9d │ │ -49de2e: 0a02 |002d: move-result v2 │ │ -49de30: 6e30 275d 1002 |002e: invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;.substring:(II)Ljava/lang/String; // method@5d27 │ │ -49de36: 0c02 |0031: move-result-object v2 │ │ -49de38: 6e10 de5c 0200 |0032: invoke-virtual {v2}, Ljava/lang/String;.getBytes:()[B // method@5cde │ │ -49de3e: 0c02 |0035: move-result-object v2 │ │ -49de40: 5483 c669 |0036: iget-object v3, v8, Lorg/purple/smokestack/UdpNeighbor;.m_socket:Ljava/net/DatagramSocket; // field@69c6 │ │ -49de44: 2204 140b |0038: new-instance v4, Ljava/net/DatagramPacket; // type@0b14 │ │ -49de48: 2125 |003a: array-length v5, v2 │ │ -49de4a: 5486 c069 |003b: iget-object v6, v8, Lorg/purple/smokestack/UdpNeighbor;.m_ipAddress:Ljava/lang/String; // field@69c0 │ │ -49de4e: 7110 ae5d 0600 |003d: invoke-static {v6}, Ljava/net/InetAddress;.getByName:(Ljava/lang/String;)Ljava/net/InetAddress; // method@5dae │ │ -49de54: 0c06 |0040: move-result-object v6 │ │ -49de56: 5487 c169 |0041: iget-object v7, v8, Lorg/purple/smokestack/UdpNeighbor;.m_ipPort:Ljava/lang/String; // field@69c1 │ │ -49de5a: 7110 6f5c 0700 |0043: invoke-static {v7}, Ljava/lang/Integer;.parseInt:(Ljava/lang/String;)I // method@5c6f │ │ -49de60: 0a07 |0046: move-result v7 │ │ -49de62: 7057 925d 2465 |0047: invoke-direct {v4, v2, v5, v6, v7}, Ljava/net/DatagramPacket;.:([BILjava/net/InetAddress;I)V // method@5d92 │ │ -49de68: 6e20 9c5d 4300 |004a: invoke-virtual {v3, v4}, Ljava/net/DatagramSocket;.send:(Ljava/net/DatagramPacket;)V // method@5d9c │ │ -49de6e: 2122 |004d: array-length v2, v2 │ │ -49de70: 6e30 215d 1002 |004e: invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;.delete:(II)Ljava/lang/StringBuilder; // method@5d21 │ │ -49de76: 28c4 |0051: goto 0015 // -003c │ │ -49de78: 7110 13d1 0900 |0052: invoke-static {v9}, Lorg/purple/smokestack/Kernel;.writeCongestionDigest:(Ljava/lang/String;)V // method@d113 │ │ -49de7e: 5480 bd69 |0055: iget-object v0, v8, Lorg/purple/smokestack/UdpNeighbor;.m_bytesWritten:Ljava/util/concurrent/atomic/AtomicLong; // field@69bd │ │ -49de82: 6e10 e95c 0900 |0057: invoke-virtual {v9}, Ljava/lang/String;.length:()I // method@5ce9 │ │ -49de88: 0a09 |005a: move-result v9 │ │ -49de8a: 8192 |005b: int-to-long v2, v9 │ │ -49de8c: 6e30 2261 2003 |005c: invoke-virtual {v0, v2, v3}, Ljava/util/concurrent/atomic/AtomicLong;.getAndAdd:(J)J // method@6122 │ │ -49de92: 1a09 0000 |005f: const-string v9, "" // string@0000 │ │ -49de96: 6e20 b1d2 9800 |0061: invoke-virtual {v8, v9}, Lorg/purple/smokestack/UdpNeighbor;.setError:(Ljava/lang/String;)V // method@d2b1 │ │ -49de9c: 0f01 |0064: return v1 │ │ -49de9e: 1a09 9909 |0065: const-string v9, "A socket error occurred on send()." // string@0999 │ │ -49dea2: 6e20 b1d2 9800 |0067: invoke-virtual {v8, v9}, Lorg/purple/smokestack/UdpNeighbor;.setError:(Ljava/lang/String;)V // method@d2b1 │ │ -49dea8: 6e10 a9d2 0800 |006a: invoke-virtual {v8}, Lorg/purple/smokestack/UdpNeighbor;.disconnect:()V // method@d2a9 │ │ -49deae: 0f01 |006d: return v1 │ │ +49ddc0: |[49ddc0] org.purple.smokestack.UdpNeighbor.send:(Ljava/lang/String;)Z │ │ +49ddd0: 6e10 a8d2 0800 |0000: invoke-virtual {v8}, Lorg/purple/smokestack/UdpNeighbor;.connected:()Z // method@d2a8 │ │ +49ddd6: 0a00 |0003: move-result v0 │ │ +49ddd8: 1201 |0004: const/4 v1, #int 0 // #0 │ │ +49ddda: 3800 6800 |0005: if-eqz v0, 006d // +0068 │ │ +49ddde: 3809 6600 |0007: if-eqz v9, 006d // +0066 │ │ +49dde2: 6e10 e65c 0900 |0009: invoke-virtual {v9}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ +49dde8: 0a00 |000c: move-result v0 │ │ +49ddea: 3800 0300 |000d: if-eqz v0, 0010 // +0003 │ │ +49ddee: 285e |000f: goto 006d // +005e │ │ +49ddf0: 2200 fc0a |0010: new-instance v0, Ljava/lang/StringBuilder; // type@0afc │ │ +49ddf4: 7020 145d 9000 |0012: invoke-direct {v0, v9}, Ljava/lang/StringBuilder;.:(Ljava/lang/String;)V // method@5d14 │ │ +49ddfa: 6e10 245d 0000 |0015: invoke-virtual {v0}, Ljava/lang/StringBuilder;.length:()I // method@5d24 │ │ +49de00: 0a02 |0018: move-result v2 │ │ +49de02: 3d02 3900 |0019: if-lez v2, 0052 // +0039 │ │ +49de06: 5482 bf69 |001b: iget-object v2, v8, Lorg/purple/smokestack/UdpNeighbor;.m_disconnected:Ljava/util/concurrent/atomic/AtomicBoolean; // field@69bf │ │ +49de0a: 6e10 1861 0200 |001d: invoke-virtual {v2}, Ljava/util/concurrent/atomic/AtomicBoolean;.get:()Z // method@6118 │ │ +49de10: 0a02 |0020: move-result v2 │ │ +49de12: 3802 0300 |0021: if-eqz v2, 0024 // +0003 │ │ +49de16: 0f01 |0023: return v1 │ │ +49de18: 1302 4002 |0024: const/16 v2, #int 576 // #240 │ │ +49de1c: 6e10 245d 0000 |0026: invoke-virtual {v0}, Ljava/lang/StringBuilder;.length:()I // method@5d24 │ │ +49de22: 0a03 |0029: move-result v3 │ │ +49de24: 7120 9d5c 3200 |002a: invoke-static {v2, v3}, Ljava/lang/Math;.min:(II)I // method@5c9d │ │ +49de2a: 0a02 |002d: move-result v2 │ │ +49de2c: 6e30 275d 1002 |002e: invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;.substring:(II)Ljava/lang/String; // method@5d27 │ │ +49de32: 0c02 |0031: move-result-object v2 │ │ +49de34: 6e10 de5c 0200 |0032: invoke-virtual {v2}, Ljava/lang/String;.getBytes:()[B // method@5cde │ │ +49de3a: 0c02 |0035: move-result-object v2 │ │ +49de3c: 5483 c669 |0036: iget-object v3, v8, Lorg/purple/smokestack/UdpNeighbor;.m_socket:Ljava/net/DatagramSocket; // field@69c6 │ │ +49de40: 2204 140b |0038: new-instance v4, Ljava/net/DatagramPacket; // type@0b14 │ │ +49de44: 2125 |003a: array-length v5, v2 │ │ +49de46: 5486 c069 |003b: iget-object v6, v8, Lorg/purple/smokestack/UdpNeighbor;.m_ipAddress:Ljava/lang/String; // field@69c0 │ │ +49de4a: 7110 ae5d 0600 |003d: invoke-static {v6}, Ljava/net/InetAddress;.getByName:(Ljava/lang/String;)Ljava/net/InetAddress; // method@5dae │ │ +49de50: 0c06 |0040: move-result-object v6 │ │ +49de52: 5487 c169 |0041: iget-object v7, v8, Lorg/purple/smokestack/UdpNeighbor;.m_ipPort:Ljava/lang/String; // field@69c1 │ │ +49de56: 7110 6f5c 0700 |0043: invoke-static {v7}, Ljava/lang/Integer;.parseInt:(Ljava/lang/String;)I // method@5c6f │ │ +49de5c: 0a07 |0046: move-result v7 │ │ +49de5e: 7057 925d 2465 |0047: invoke-direct {v4, v2, v5, v6, v7}, Ljava/net/DatagramPacket;.:([BILjava/net/InetAddress;I)V // method@5d92 │ │ +49de64: 6e20 9c5d 4300 |004a: invoke-virtual {v3, v4}, Ljava/net/DatagramSocket;.send:(Ljava/net/DatagramPacket;)V // method@5d9c │ │ +49de6a: 2122 |004d: array-length v2, v2 │ │ +49de6c: 6e30 215d 1002 |004e: invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;.delete:(II)Ljava/lang/StringBuilder; // method@5d21 │ │ +49de72: 28c4 |0051: goto 0015 // -003c │ │ +49de74: 7110 13d1 0900 |0052: invoke-static {v9}, Lorg/purple/smokestack/Kernel;.writeCongestionDigest:(Ljava/lang/String;)V // method@d113 │ │ +49de7a: 5480 bd69 |0055: iget-object v0, v8, Lorg/purple/smokestack/UdpNeighbor;.m_bytesWritten:Ljava/util/concurrent/atomic/AtomicLong; // field@69bd │ │ +49de7e: 6e10 e95c 0900 |0057: invoke-virtual {v9}, Ljava/lang/String;.length:()I // method@5ce9 │ │ +49de84: 0a09 |005a: move-result v9 │ │ +49de86: 8192 |005b: int-to-long v2, v9 │ │ +49de88: 6e30 2261 2003 |005c: invoke-virtual {v0, v2, v3}, Ljava/util/concurrent/atomic/AtomicLong;.getAndAdd:(J)J // method@6122 │ │ +49de8e: 1a09 0000 |005f: const-string v9, "" // string@0000 │ │ +49de92: 6e20 b1d2 9800 |0061: invoke-virtual {v8, v9}, Lorg/purple/smokestack/UdpNeighbor;.setError:(Ljava/lang/String;)V // method@d2b1 │ │ +49de98: 0f01 |0064: return v1 │ │ +49de9a: 1a09 9909 |0065: const-string v9, "A socket error occurred on send()." // string@0999 │ │ +49de9e: 6e20 b1d2 9800 |0067: invoke-virtual {v8, v9}, Lorg/purple/smokestack/UdpNeighbor;.setError:(Ljava/lang/String;)V // method@d2b1 │ │ +49dea4: 6e10 a9d2 0800 |006a: invoke-virtual {v8}, Lorg/purple/smokestack/UdpNeighbor;.disconnect:()V // method@d2a9 │ │ +49deaa: 0f01 |006d: return v1 │ │ catches : 1 │ │ 0x0010 - 0x0064 │ │ Ljava/lang/Exception; -> 0x0065 │ │ positions : │ │ 0x0000 line=78 │ │ 0x0010 line=83 │ │ 0x0015 line=85 │ │ @@ -1603271,17 +1603270,17 @@ │ │ type : '(Landroid/content/Context;)V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 4 16-bit code units │ │ -4967e4: |[4967e4] org.purple.smokestack.Settings$ListenersLinearLayoutManager.:(Landroid/content/Context;)V │ │ -4967f4: 7020 624a 1000 |0000: invoke-direct {v0, v1}, Landroid/support/v7/widget/LinearLayoutManager;.:(Landroid/content/Context;)V // method@4a62 │ │ -4967fa: 0e00 |0003: return-void │ │ +4967e0: |[4967e0] org.purple.smokestack.Settings$ListenersLinearLayoutManager.:(Landroid/content/Context;)V │ │ +4967f0: 7020 624a 1000 |0000: invoke-direct {v0, v1}, Landroid/support/v7/widget/LinearLayoutManager;.:(Landroid/content/Context;)V // method@4a62 │ │ +4967f6: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=99 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager; │ │ 0x0000 - 0x0004 reg=1 (null) Landroid/content/Context; │ │ │ │ @@ -1603291,17 +1603290,17 @@ │ │ type : '(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 3 │ │ ins : 3 │ │ outs : 3 │ │ insns size : 4 16-bit code units │ │ -4967fc: |[4967fc] org.purple.smokestack.Settings$ListenersLinearLayoutManager.onLayoutChildren:(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;)V │ │ -49680c: 6f30 b54a 1002 |0000: invoke-super {v0, v1, v2}, Landroid/support/v7/widget/LinearLayoutManager;.onLayoutChildren:(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;)V // method@4ab5 │ │ -496812: 0e00 |0003: return-void │ │ +4967f8: |[4967f8] org.purple.smokestack.Settings$ListenersLinearLayoutManager.onLayoutChildren:(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;)V │ │ +496808: 6f30 b54a 1002 |0000: invoke-super {v0, v1, v2}, Landroid/support/v7/widget/LinearLayoutManager;.onLayoutChildren:(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;)V // method@4ab5 │ │ +49680e: 0e00 |0003: return-void │ │ catches : 1 │ │ 0x0000 - 0x0003 │ │ Ljava/lang/Exception; -> 0x0003 │ │ positions : │ │ 0x0000 line=112 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager; │ │ @@ -1714237,31 +1714236,31 @@ │ │ type : '()V' │ │ access : 0x10008 (STATIC CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 0 │ │ outs : 1 │ │ insns size : 34 16-bit code units │ │ -496e48: |[496e48] org.purple.smokestack.Settings.:()V │ │ -496e58: 7100 82d0 0000 |0000: invoke-static {}, Lorg/purple/smokestack/Cryptography;.getInstance:()Lorg/purple/smokestack/Cryptography; // method@d082 │ │ -496e5e: 0c00 |0003: move-result-object v0 │ │ -496e60: 6900 3c69 |0004: sput-object v0, Lorg/purple/smokestack/Settings;.s_cryptography:Lorg/purple/smokestack/Cryptography; // field@693c │ │ -496e64: 2200 cd1e |0006: new-instance v0, Lorg/purple/smokestack/Settings$1; // type@1ecd │ │ -496e68: 7010 8dd1 0000 |0008: invoke-direct {v0}, Lorg/purple/smokestack/Settings$1;.:()V // method@d18d │ │ -496e6e: 6900 3d69 |000b: sput-object v0, Lorg/purple/smokestack/Settings;.s_maximumClientsFilter:Landroid/text/InputFilter; // field@693d │ │ -496e72: 2200 db1e |000d: new-instance v0, Lorg/purple/smokestack/Settings$2; // type@1edb │ │ -496e76: 7010 abd1 0000 |000f: invoke-direct {v0}, Lorg/purple/smokestack/Settings$2;.:()V // method@d1ab │ │ -496e7c: 6900 3e69 |0012: sput-object v0, Lorg/purple/smokestack/Settings;.s_portFilter:Landroid/text/InputFilter; // field@693e │ │ -496e80: 2200 e41e |0014: new-instance v0, Lorg/purple/smokestack/Settings$3; // type@1ee4 │ │ -496e84: 7010 bfd1 0000 |0016: invoke-direct {v0}, Lorg/purple/smokestack/Settings$3;.:()V // method@d1bf │ │ -496e8a: 6900 3f69 |0019: sput-object v0, Lorg/purple/smokestack/Settings;.s_sipHashInputFilter:Landroid/text/InputFilter; // field@693f │ │ -496e8e: 7100 2b5d 0000 |001b: invoke-static {}, Ljava/lang/System;.currentTimeMillis:()J // method@5d2b │ │ -496e94: 0b00 |001e: move-result-wide v0 │ │ -496e96: 6800 3b69 |001f: sput-wide v0, Lorg/purple/smokestack/Settings;.m_start:J // field@693b │ │ -496e9a: 0e00 |0021: return-void │ │ +496e44: |[496e44] org.purple.smokestack.Settings.:()V │ │ +496e54: 7100 82d0 0000 |0000: invoke-static {}, Lorg/purple/smokestack/Cryptography;.getInstance:()Lorg/purple/smokestack/Cryptography; // method@d082 │ │ +496e5a: 0c00 |0003: move-result-object v0 │ │ +496e5c: 6900 3c69 |0004: sput-object v0, Lorg/purple/smokestack/Settings;.s_cryptography:Lorg/purple/smokestack/Cryptography; // field@693c │ │ +496e60: 2200 cd1e |0006: new-instance v0, Lorg/purple/smokestack/Settings$1; // type@1ecd │ │ +496e64: 7010 8dd1 0000 |0008: invoke-direct {v0}, Lorg/purple/smokestack/Settings$1;.:()V // method@d18d │ │ +496e6a: 6900 3d69 |000b: sput-object v0, Lorg/purple/smokestack/Settings;.s_maximumClientsFilter:Landroid/text/InputFilter; // field@693d │ │ +496e6e: 2200 db1e |000d: new-instance v0, Lorg/purple/smokestack/Settings$2; // type@1edb │ │ +496e72: 7010 abd1 0000 |000f: invoke-direct {v0}, Lorg/purple/smokestack/Settings$2;.:()V // method@d1ab │ │ +496e78: 6900 3e69 |0012: sput-object v0, Lorg/purple/smokestack/Settings;.s_portFilter:Landroid/text/InputFilter; // field@693e │ │ +496e7c: 2200 e41e |0014: new-instance v0, Lorg/purple/smokestack/Settings$3; // type@1ee4 │ │ +496e80: 7010 bfd1 0000 |0016: invoke-direct {v0}, Lorg/purple/smokestack/Settings$3;.:()V // method@d1bf │ │ +496e86: 6900 3f69 |0019: sput-object v0, Lorg/purple/smokestack/Settings;.s_sipHashInputFilter:Landroid/text/InputFilter; // field@693f │ │ +496e8a: 7100 2b5d 0000 |001b: invoke-static {}, Ljava/lang/System;.currentTimeMillis:()J // method@5d2b │ │ +496e90: 0b00 |001e: move-result-wide v0 │ │ +496e92: 6800 3b69 |001f: sput-wide v0, Lorg/purple/smokestack/Settings;.m_start:J // field@693b │ │ +496e96: 0e00 |0021: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=205 │ │ 0x0006 line=206 │ │ 0x000d line=230 │ │ 0x0014 line=254 │ │ 0x001b line=286 │ │ @@ -1714272,28 +1714271,28 @@ │ │ type : '()V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 24 16-bit code units │ │ -496e9c: |[496e9c] org.purple.smokestack.Settings.:()V │ │ -496eac: 7010 0a3d 0100 |0000: invoke-direct {v1}, Landroid/support/v7/app/AppCompatActivity;.:()V // method@3d0a │ │ -496eb2: 1200 |0003: const/4 v0, #int 0 // #0 │ │ -496eb4: 5b10 3269 |0004: iput-object v0, v1, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ -496eb8: 5b10 3569 |0006: iput-object v0, v1, Lorg/purple/smokestack/Settings;.m_listenersLayoutManager:Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager; // field@6935 │ │ -496ebc: 5b10 3669 |0008: iput-object v0, v1, Lorg/purple/smokestack/Settings;.m_listenersRecyclerView:Landroid/support/v7/widget/RecyclerView; // field@6936 │ │ -496ec0: 5b10 3469 |000a: iput-object v0, v1, Lorg/purple/smokestack/Settings;.m_listenersAdapter:Landroid/support/v7/widget/RecyclerView$Adapter; // field@6934 │ │ -496ec4: 5b10 3369 |000c: iput-object v0, v1, Lorg/purple/smokestack/Settings;.m_generalScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6933 │ │ -496ec8: 5b10 3769 |000e: iput-object v0, v1, Lorg/purple/smokestack/Settings;.m_listenersScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6937 │ │ -496ecc: 5b10 3869 |0010: iput-object v0, v1, Lorg/purple/smokestack/Settings;.m_neighborsScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6938 │ │ -496ed0: 5b10 3969 |0012: iput-object v0, v1, Lorg/purple/smokestack/Settings;.m_receiver:Lorg/purple/smokestack/Settings$SettingsBroadcastReceiver; // field@6939 │ │ -496ed4: 1200 |0014: const/4 v0, #int 0 // #0 │ │ -496ed6: 5c10 3a69 |0015: iput-boolean v0, v1, Lorg/purple/smokestack/Settings;.m_receiverRegistered:Z // field@693a │ │ -496eda: 0e00 |0017: return-void │ │ +496e98: |[496e98] org.purple.smokestack.Settings.:()V │ │ +496ea8: 7010 0a3d 0100 |0000: invoke-direct {v1}, Landroid/support/v7/app/AppCompatActivity;.:()V // method@3d0a │ │ +496eae: 1200 |0003: const/4 v0, #int 0 // #0 │ │ +496eb0: 5b10 3269 |0004: iput-object v0, v1, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ +496eb4: 5b10 3569 |0006: iput-object v0, v1, Lorg/purple/smokestack/Settings;.m_listenersLayoutManager:Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager; // field@6935 │ │ +496eb8: 5b10 3669 |0008: iput-object v0, v1, Lorg/purple/smokestack/Settings;.m_listenersRecyclerView:Landroid/support/v7/widget/RecyclerView; // field@6936 │ │ +496ebc: 5b10 3469 |000a: iput-object v0, v1, Lorg/purple/smokestack/Settings;.m_listenersAdapter:Landroid/support/v7/widget/RecyclerView$Adapter; // field@6934 │ │ +496ec0: 5b10 3369 |000c: iput-object v0, v1, Lorg/purple/smokestack/Settings;.m_generalScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6933 │ │ +496ec4: 5b10 3769 |000e: iput-object v0, v1, Lorg/purple/smokestack/Settings;.m_listenersScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6937 │ │ +496ec8: 5b10 3869 |0010: iput-object v0, v1, Lorg/purple/smokestack/Settings;.m_neighborsScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6938 │ │ +496ecc: 5b10 3969 |0012: iput-object v0, v1, Lorg/purple/smokestack/Settings;.m_receiver:Lorg/purple/smokestack/Settings$SettingsBroadcastReceiver; // field@6939 │ │ +496ed0: 1200 |0014: const/4 v0, #int 0 // #0 │ │ +496ed2: 5c10 3a69 |0015: iput-boolean v0, v1, Lorg/purple/smokestack/Settings;.m_receiverRegistered:Z // field@693a │ │ +496ed6: 0e00 |0017: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=80 │ │ 0x0004 line=195 │ │ 0x0006 line=196 │ │ 0x0008 line=197 │ │ 0x000a line=198 │ │ @@ -1714310,17 +1714309,17 @@ │ │ type : '(Lorg/purple/smokestack/Settings;Ljava/util/ArrayList;)V' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 4 16-bit code units │ │ -496edc: |[496edc] org.purple.smokestack.Settings.access$000:(Lorg/purple/smokestack/Settings;Ljava/util/ArrayList;)V │ │ -496eec: 7020 0ad2 1000 |0000: invoke-direct {v0, v1}, Lorg/purple/smokestack/Settings;.populateListeners:(Ljava/util/ArrayList;)V // method@d20a │ │ -496ef2: 0e00 |0003: return-void │ │ +496ed8: |[496ed8] org.purple.smokestack.Settings.access$000:(Lorg/purple/smokestack/Settings;Ljava/util/ArrayList;)V │ │ +496ee8: 7020 0ad2 1000 |0000: invoke-direct {v0, v1}, Lorg/purple/smokestack/Settings;.populateListeners:(Ljava/util/ArrayList;)V // method@d20a │ │ +496eee: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=80 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 (null) Lorg/purple/smokestack/Settings; │ │ 0x0000 - 0x0004 reg=1 (null) Ljava/util/ArrayList; │ │ │ │ @@ -1714329,17 +1714328,17 @@ │ │ type : '(Lorg/purple/smokestack/Settings;Ljava/util/ArrayList;)V' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 4 16-bit code units │ │ -496ef4: |[496ef4] org.purple.smokestack.Settings.access$100:(Lorg/purple/smokestack/Settings;Ljava/util/ArrayList;)V │ │ -496f04: 7020 0bd2 1000 |0000: invoke-direct {v0, v1}, Lorg/purple/smokestack/Settings;.populateNeighbors:(Ljava/util/ArrayList;)V // method@d20b │ │ -496f0a: 0e00 |0003: return-void │ │ +496ef0: |[496ef0] org.purple.smokestack.Settings.access$100:(Lorg/purple/smokestack/Settings;Ljava/util/ArrayList;)V │ │ +496f00: 7020 0bd2 1000 |0000: invoke-direct {v0, v1}, Lorg/purple/smokestack/Settings;.populateNeighbors:(Ljava/util/ArrayList;)V // method@d20b │ │ +496f06: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=80 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 (null) Lorg/purple/smokestack/Settings; │ │ 0x0000 - 0x0004 reg=1 (null) Ljava/util/ArrayList; │ │ │ │ @@ -1714348,17 +1714347,17 @@ │ │ type : '(Lorg/purple/smokestack/Settings;)V' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -496f0c: |[496f0c] org.purple.smokestack.Settings.access$1000:(Lorg/purple/smokestack/Settings;)V │ │ -496f1c: 7010 18d2 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/Settings;.startKernel:()V // method@d218 │ │ -496f22: 0e00 |0003: return-void │ │ +496f08: |[496f08] org.purple.smokestack.Settings.access$1000:(Lorg/purple/smokestack/Settings;)V │ │ +496f18: 7010 18d2 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/Settings;.startKernel:()V // method@d218 │ │ +496f1e: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=80 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 (null) Lorg/purple/smokestack/Settings; │ │ │ │ #5 : (in Lorg/purple/smokestack/Settings;) │ │ @@ -1714366,17 +1714365,17 @@ │ │ type : '(Lorg/purple/smokestack/Settings;)V' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -496f24: |[496f24] org.purple.smokestack.Settings.access$1100:(Lorg/purple/smokestack/Settings;)V │ │ -496f34: 7010 19d2 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/Settings;.startListenersTimers:()V // method@d219 │ │ -496f3a: 0e00 |0003: return-void │ │ +496f20: |[496f20] org.purple.smokestack.Settings.access$1100:(Lorg/purple/smokestack/Settings;)V │ │ +496f30: 7010 19d2 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/Settings;.startListenersTimers:()V // method@d219 │ │ +496f36: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=80 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 (null) Lorg/purple/smokestack/Settings; │ │ │ │ #6 : (in Lorg/purple/smokestack/Settings;) │ │ @@ -1714384,17 +1714383,17 @@ │ │ type : '(Lorg/purple/smokestack/Settings;)V' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -496f3c: |[496f3c] org.purple.smokestack.Settings.access$1200:(Lorg/purple/smokestack/Settings;)V │ │ -496f4c: 7010 1ad2 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/Settings;.startNeighborsTimers:()V // method@d21a │ │ -496f52: 0e00 |0003: return-void │ │ +496f38: |[496f38] org.purple.smokestack.Settings.access$1200:(Lorg/purple/smokestack/Settings;)V │ │ +496f48: 7010 1ad2 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/Settings;.startNeighborsTimers:()V // method@d21a │ │ +496f4e: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=80 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 (null) Lorg/purple/smokestack/Settings; │ │ │ │ #7 : (in Lorg/purple/smokestack/Settings;) │ │ @@ -1714402,17 +1714401,17 @@ │ │ type : '(Lorg/purple/smokestack/Settings;)V' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -496f54: |[496f54] org.purple.smokestack.Settings.access$1300:(Lorg/purple/smokestack/Settings;)V │ │ -496f64: 7010 f2d1 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/Settings;.addListener:()V // method@d1f2 │ │ -496f6a: 0e00 |0003: return-void │ │ +496f50: |[496f50] org.purple.smokestack.Settings.access$1300:(Lorg/purple/smokestack/Settings;)V │ │ +496f60: 7010 f2d1 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/Settings;.addListener:()V // method@d1f2 │ │ +496f66: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=80 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 (null) Lorg/purple/smokestack/Settings; │ │ │ │ #8 : (in Lorg/purple/smokestack/Settings;) │ │ @@ -1714420,17 +1714419,17 @@ │ │ type : '(Lorg/purple/smokestack/Settings;)V' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -496f6c: |[496f6c] org.purple.smokestack.Settings.access$1400:(Lorg/purple/smokestack/Settings;)V │ │ -496f7c: 7010 f3d1 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/Settings;.addNeighbor:()V // method@d1f3 │ │ -496f82: 0e00 |0003: return-void │ │ +496f68: |[496f68] org.purple.smokestack.Settings.access$1400:(Lorg/purple/smokestack/Settings;)V │ │ +496f78: 7010 f3d1 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/Settings;.addNeighbor:()V // method@d1f3 │ │ +496f7e: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=80 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 (null) Lorg/purple/smokestack/Settings; │ │ │ │ #9 : (in Lorg/purple/smokestack/Settings;) │ │ @@ -1714438,17 +1714437,17 @@ │ │ type : '(Lorg/purple/smokestack/Settings;)V' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -496f84: |[496f84] org.purple.smokestack.Settings.access$1500:(Lorg/purple/smokestack/Settings;)V │ │ -496f94: 7010 f4d1 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/Settings;.addParticipant:()V // method@d1f4 │ │ -496f9a: 0e00 |0003: return-void │ │ +496f80: |[496f80] org.purple.smokestack.Settings.access$1500:(Lorg/purple/smokestack/Settings;)V │ │ +496f90: 7010 f4d1 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/Settings;.addParticipant:()V // method@d1f4 │ │ +496f96: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=80 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 (null) Lorg/purple/smokestack/Settings; │ │ │ │ #10 : (in Lorg/purple/smokestack/Settings;) │ │ @@ -1714456,17 +1714455,17 @@ │ │ type : '(Lorg/purple/smokestack/Settings;)V' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -496f9c: |[496f9c] org.purple.smokestack.Settings.access$1600:(Lorg/purple/smokestack/Settings;)V │ │ -496fac: 7010 0fd2 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/Settings;.prepareListenerIpAddress:()V // method@d20f │ │ -496fb2: 0e00 |0003: return-void │ │ +496f98: |[496f98] org.purple.smokestack.Settings.access$1600:(Lorg/purple/smokestack/Settings;)V │ │ +496fa8: 7010 0fd2 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/Settings;.prepareListenerIpAddress:()V // method@d20f │ │ +496fae: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=80 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 (null) Lorg/purple/smokestack/Settings; │ │ │ │ #11 : (in Lorg/purple/smokestack/Settings;) │ │ @@ -1714474,17 +1714473,17 @@ │ │ type : '(Lorg/purple/smokestack/Settings;)V' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -496fb4: |[496fb4] org.purple.smokestack.Settings.access$1700:(Lorg/purple/smokestack/Settings;)V │ │ -496fc4: 7010 0ed2 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/Settings;.prepareCredentials:()V // method@d20e │ │ -496fca: 0e00 |0003: return-void │ │ +496fb0: |[496fb0] org.purple.smokestack.Settings.access$1700:(Lorg/purple/smokestack/Settings;)V │ │ +496fc0: 7010 0ed2 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/Settings;.prepareCredentials:()V // method@d20e │ │ +496fc6: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=80 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 (null) Lorg/purple/smokestack/Settings; │ │ │ │ #12 : (in Lorg/purple/smokestack/Settings;) │ │ @@ -1714492,17 +1714491,17 @@ │ │ type : '(Lorg/purple/smokestack/Settings;)V' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -496fcc: |[496fcc] org.purple.smokestack.Settings.access$1800:(Lorg/purple/smokestack/Settings;)V │ │ -496fdc: 7010 1cd2 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/Settings;.stopListenersTimers:()V // method@d21c │ │ -496fe2: 0e00 |0003: return-void │ │ +496fc8: |[496fc8] org.purple.smokestack.Settings.access$1800:(Lorg/purple/smokestack/Settings;)V │ │ +496fd8: 7010 1cd2 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/Settings;.stopListenersTimers:()V // method@d21c │ │ +496fde: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=80 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 (null) Lorg/purple/smokestack/Settings; │ │ │ │ #13 : (in Lorg/purple/smokestack/Settings;) │ │ @@ -1714510,17 +1714509,17 @@ │ │ type : '(Lorg/purple/smokestack/Settings;)V' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -496fe4: |[496fe4] org.purple.smokestack.Settings.access$1900:(Lorg/purple/smokestack/Settings;)V │ │ -496ff4: 7010 1dd2 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/Settings;.stopNeighborsTimers:()V // method@d21d │ │ -496ffa: 0e00 |0003: return-void │ │ +496fe0: |[496fe0] org.purple.smokestack.Settings.access$1900:(Lorg/purple/smokestack/Settings;)V │ │ +496ff0: 7010 1dd2 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/Settings;.stopNeighborsTimers:()V // method@d21d │ │ +496ff6: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=80 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 (null) Lorg/purple/smokestack/Settings; │ │ │ │ #14 : (in Lorg/purple/smokestack/Settings;) │ │ @@ -1714528,17 +1714527,17 @@ │ │ type : '(Lorg/purple/smokestack/Settings;)V' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -496ffc: |[496ffc] org.purple.smokestack.Settings.access$200:(Lorg/purple/smokestack/Settings;)V │ │ -49700c: 7010 0dd2 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/Settings;.populateParticipants:()V // method@d20d │ │ -497012: 0e00 |0003: return-void │ │ +496ff8: |[496ff8] org.purple.smokestack.Settings.access$200:(Lorg/purple/smokestack/Settings;)V │ │ +497008: 7010 0dd2 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/Settings;.populateParticipants:()V // method@d20d │ │ +49700e: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=80 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 (null) Lorg/purple/smokestack/Settings; │ │ │ │ #15 : (in Lorg/purple/smokestack/Settings;) │ │ @@ -1714546,34 +1714545,34 @@ │ │ type : '()J' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 2 │ │ ins : 0 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -496de8: |[496de8] org.purple.smokestack.Settings.access$2000:()J │ │ -496df8: 6100 3b69 |0000: sget-wide v0, Lorg/purple/smokestack/Settings;.m_start:J // field@693b │ │ -496dfc: 1000 |0002: return-wide v0 │ │ +496de4: |[496de4] org.purple.smokestack.Settings.access$2000:()J │ │ +496df4: 6100 3b69 |0000: sget-wide v0, Lorg/purple/smokestack/Settings;.m_start:J // field@693b │ │ +496df8: 1000 |0002: return-wide v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=80 │ │ locals : │ │ │ │ #16 : (in Lorg/purple/smokestack/Settings;) │ │ name : 'access$2100' │ │ type : '(Lorg/purple/smokestack/Settings;)Landroid/support/v7/widget/RecyclerView$Adapter;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -4969a4: |[4969a4] org.purple.smokestack.Settings.access$2100:(Lorg/purple/smokestack/Settings;)Landroid/support/v7/widget/RecyclerView$Adapter; │ │ -4969b4: 5400 3469 |0000: iget-object v0, v0, Lorg/purple/smokestack/Settings;.m_listenersAdapter:Landroid/support/v7/widget/RecyclerView$Adapter; // field@6934 │ │ -4969b8: 1100 |0002: return-object v0 │ │ +4969a0: |[4969a0] org.purple.smokestack.Settings.access$2100:(Lorg/purple/smokestack/Settings;)Landroid/support/v7/widget/RecyclerView$Adapter; │ │ +4969b0: 5400 3469 |0000: iget-object v0, v0, Lorg/purple/smokestack/Settings;.m_listenersAdapter:Landroid/support/v7/widget/RecyclerView$Adapter; // field@6934 │ │ +4969b4: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=80 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/purple/smokestack/Settings; │ │ │ │ #17 : (in Lorg/purple/smokestack/Settings;) │ │ @@ -1714581,17 +1714580,17 @@ │ │ type : '(Lorg/purple/smokestack/Settings;)Landroid/support/v7/widget/RecyclerView;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -49698c: |[49698c] org.purple.smokestack.Settings.access$2200:(Lorg/purple/smokestack/Settings;)Landroid/support/v7/widget/RecyclerView; │ │ -49699c: 5400 3669 |0000: iget-object v0, v0, Lorg/purple/smokestack/Settings;.m_listenersRecyclerView:Landroid/support/v7/widget/RecyclerView; // field@6936 │ │ -4969a0: 1100 |0002: return-object v0 │ │ +496988: |[496988] org.purple.smokestack.Settings.access$2200:(Lorg/purple/smokestack/Settings;)Landroid/support/v7/widget/RecyclerView; │ │ +496998: 5400 3669 |0000: iget-object v0, v0, Lorg/purple/smokestack/Settings;.m_listenersRecyclerView:Landroid/support/v7/widget/RecyclerView; // field@6936 │ │ +49699c: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=80 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/purple/smokestack/Settings; │ │ │ │ #18 : (in Lorg/purple/smokestack/Settings;) │ │ @@ -1714599,17 +1714598,17 @@ │ │ type : '(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -496e30: |[496e30] org.purple.smokestack.Settings.access$2300:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager; │ │ -496e40: 5400 3569 |0000: iget-object v0, v0, Lorg/purple/smokestack/Settings;.m_listenersLayoutManager:Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager; // field@6935 │ │ -496e44: 1100 |0002: return-object v0 │ │ +496e2c: |[496e2c] org.purple.smokestack.Settings.access$2300:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager; │ │ +496e3c: 5400 3569 |0000: iget-object v0, v0, Lorg/purple/smokestack/Settings;.m_listenersLayoutManager:Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager; // field@6935 │ │ +496e40: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=80 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/purple/smokestack/Settings; │ │ │ │ #19 : (in Lorg/purple/smokestack/Settings;) │ │ @@ -1714617,17 +1714616,17 @@ │ │ type : '(Lorg/purple/smokestack/Settings;)V' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -497014: |[497014] org.purple.smokestack.Settings.access$300:(Lorg/purple/smokestack/Settings;)V │ │ -497024: 7010 0cd2 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/Settings;.populateOzoneAddresses:()V // method@d20c │ │ -49702a: 0e00 |0003: return-void │ │ +497010: |[497010] org.purple.smokestack.Settings.access$300:(Lorg/purple/smokestack/Settings;)V │ │ +497020: 7010 0cd2 0000 |0000: invoke-direct {v0}, Lorg/purple/smokestack/Settings;.populateOzoneAddresses:()V // method@d20c │ │ +497026: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=80 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 (null) Lorg/purple/smokestack/Settings; │ │ │ │ #20 : (in Lorg/purple/smokestack/Settings;) │ │ @@ -1714635,34 +1714634,34 @@ │ │ type : '()Lorg/purple/smokestack/Cryptography;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 0 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -496e00: |[496e00] org.purple.smokestack.Settings.access$400:()Lorg/purple/smokestack/Cryptography; │ │ -496e10: 6200 3c69 |0000: sget-object v0, Lorg/purple/smokestack/Settings;.s_cryptography:Lorg/purple/smokestack/Cryptography; // field@693c │ │ -496e14: 1100 |0002: return-object v0 │ │ +496dfc: |[496dfc] org.purple.smokestack.Settings.access$400:()Lorg/purple/smokestack/Cryptography; │ │ +496e0c: 6200 3c69 |0000: sget-object v0, Lorg/purple/smokestack/Settings;.s_cryptography:Lorg/purple/smokestack/Cryptography; // field@693c │ │ +496e10: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=80 │ │ locals : │ │ │ │ #21 : (in Lorg/purple/smokestack/Settings;) │ │ name : 'access$500' │ │ type : '(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -496e18: |[496e18] org.purple.smokestack.Settings.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; │ │ -496e28: 5400 3269 |0000: iget-object v0, v0, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ -496e2c: 1100 |0002: return-object v0 │ │ +496e14: |[496e14] org.purple.smokestack.Settings.access$500:(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; │ │ +496e24: 5400 3269 |0000: iget-object v0, v0, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ +496e28: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=80 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 (null) Lorg/purple/smokestack/Settings; │ │ │ │ #22 : (in Lorg/purple/smokestack/Settings;) │ │ @@ -1714670,18 +1714669,18 @@ │ │ type : '(Lorg/purple/smokestack/Settings;Ljava/lang/String;)Z' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 5 16-bit code units │ │ -4969bc: |[4969bc] org.purple.smokestack.Settings.access$600:(Lorg/purple/smokestack/Settings;Ljava/lang/String;)Z │ │ -4969cc: 7020 f8d1 1000 |0000: invoke-direct {v0, v1}, Lorg/purple/smokestack/Settings;.generateOzone:(Ljava/lang/String;)Z // method@d1f8 │ │ -4969d2: 0a00 |0003: move-result v0 │ │ -4969d4: 0f00 |0004: return v0 │ │ +4969b8: |[4969b8] org.purple.smokestack.Settings.access$600:(Lorg/purple/smokestack/Settings;Ljava/lang/String;)Z │ │ +4969c8: 7020 f8d1 1000 |0000: invoke-direct {v0, v1}, Lorg/purple/smokestack/Settings;.generateOzone:(Ljava/lang/String;)Z // method@d1f8 │ │ +4969ce: 0a00 |0003: move-result v0 │ │ +4969d0: 0f00 |0004: return v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=80 │ │ locals : │ │ 0x0000 - 0x0005 reg=0 (null) Lorg/purple/smokestack/Settings; │ │ 0x0000 - 0x0005 reg=1 (null) Ljava/lang/String; │ │ │ │ @@ -1714690,17 +1714689,17 @@ │ │ type : '(Lorg/purple/smokestack/Settings;Z)V' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 4 16-bit code units │ │ -49702c: |[49702c] org.purple.smokestack.Settings.access$900:(Lorg/purple/smokestack/Settings;Z)V │ │ -49703c: 7020 f5d1 1000 |0000: invoke-direct {v0, v1}, Lorg/purple/smokestack/Settings;.enableWidgets:(Z)V // method@d1f5 │ │ -497042: 0e00 |0003: return-void │ │ +497028: |[497028] org.purple.smokestack.Settings.access$900:(Lorg/purple/smokestack/Settings;Z)V │ │ +497038: 7020 f5d1 1000 |0000: invoke-direct {v0, v1}, Lorg/purple/smokestack/Settings;.enableWidgets:(Z)V // method@d1f5 │ │ +49703e: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=80 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 (null) Lorg/purple/smokestack/Settings; │ │ 0x0000 - 0x0004 reg=1 (null) Z │ │ │ │ @@ -1714709,124 +1714708,124 @@ │ │ type : '()V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 16 │ │ ins : 1 │ │ outs : 8 │ │ insns size : 229 16-bit code units │ │ -497044: |[497044] org.purple.smokestack.Settings.addListener:()V │ │ -497054: 6e10 fed1 0f00 |0000: invoke-virtual {v15}, Lorg/purple/smokestack/Settings;.isFinishing:()Z // method@d1fe │ │ -49705a: 0a00 |0003: move-result v0 │ │ -49705c: 3800 0300 |0004: if-eqz v0, 0007 // +0003 │ │ -497060: 0e00 |0006: return-void │ │ -497062: 1400 6b00 087f |0007: const v0, #float 1.80777e+38 // #7f08006b │ │ -497068: 6e20 f6d1 0f00 |000a: invoke-virtual {v15, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -49706e: 0c00 |000d: move-result-object v0 │ │ -497070: 1f00 850a |000e: check-cast v0, Landroid/widget/RadioGroup; // type@0a85 │ │ -497074: 1401 2300 087f |0010: const v1, #float 1.80776e+38 // #7f080023 │ │ -49707a: 6e20 f6d1 1f00 |0013: invoke-virtual {v15, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497080: 0c01 |0016: move-result-object v1 │ │ -497082: 1f01 920a |0017: check-cast v1, Landroid/widget/Switch; // type@0a92 │ │ -497086: 1402 9400 087f |0019: const v2, #float 1.80778e+38 // #7f080094 │ │ -49708c: 6e20 f6d1 2f00 |001c: invoke-virtual {v15, v2}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497092: 0c02 |001f: move-result-object v2 │ │ -497094: 1f02 920a |0020: check-cast v2, Landroid/widget/Switch; // type@0a92 │ │ -497098: 1403 6800 087f |0022: const v3, #float 1.80777e+38 // #7f080068 │ │ -49709e: 6e20 f6d1 3f00 |0025: invoke-virtual {v15, v3}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4970a4: 0c03 |0028: move-result-object v3 │ │ -4970a6: 1f03 9c0a |0029: check-cast v3, Landroid/widget/TextView; // type@0a9c │ │ -4970aa: 1404 6c00 087f |002b: const v4, #float 1.80777e+38 // #7f08006c │ │ -4970b0: 6e20 f6d1 4f00 |002e: invoke-virtual {v15, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4970b6: 0c04 |0031: move-result-object v4 │ │ -4970b8: 1f04 9c0a |0032: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ -4970bc: 1405 6d00 087f |0034: const v5, #float 1.80777e+38 // #7f08006d │ │ -4970c2: 6e20 f6d1 5f00 |0037: invoke-virtual {v15, v5}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4970c8: 0c05 |003a: move-result-object v5 │ │ -4970ca: 1f05 9c0a |003b: check-cast v5, Landroid/widget/TextView; // type@0a9c │ │ -4970ce: 1406 6e00 087f |003d: const v6, #float 1.80777e+38 // #7f08006e │ │ -4970d4: 6e20 f6d1 6f00 |0040: invoke-virtual {v15, v6}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4970da: 0c06 |0043: move-result-object v6 │ │ -4970dc: 1f06 9c0a |0044: check-cast v6, Landroid/widget/TextView; // type@0a9c │ │ -4970e0: 6e10 795a 0000 |0046: invoke-virtual {v0}, Landroid/widget/RadioGroup;.getCheckedRadioButtonId:()I // method@5a79 │ │ -4970e6: 0a00 |0049: move-result v0 │ │ -4970e8: 1407 6900 087f |004a: const v7, #float 1.80777e+38 // #7f080069 │ │ -4970ee: 3370 0500 |004d: if-ne v0, v7, 0052 // +0005 │ │ -4970f2: 1a00 a11f |004f: const-string v0, "IPv4" // string@1fa1 │ │ -4970f6: 2803 |0051: goto 0054 // +0003 │ │ -4970f8: 1a00 a21f |0052: const-string v0, "IPv6" // string@1fa2 │ │ -4970fc: 070d |0054: move-object v13, v0 │ │ -4970fe: 6e10 275b 0300 |0055: invoke-virtual {v3}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ -497104: 0c00 |0058: move-result-object v0 │ │ -497106: 7210 1b5c 0000 |0059: invoke-interface {v0}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ -49710c: 0c00 |005c: move-result-object v0 │ │ -49710e: 6e10 f75c 0000 |005d: invoke-virtual {v0}, Ljava/lang/String;.trim:()Ljava/lang/String; // method@5cf7 │ │ -497114: 0c00 |0060: move-result-object v0 │ │ -497116: 6e10 e65c 0000 |0061: invoke-virtual {v0}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ -49711c: 0a00 |0064: move-result v0 │ │ -49711e: 3800 0800 |0065: if-eqz v0, 006d // +0008 │ │ -497122: 1a00 ea4a |0067: const-string v0, "Please provide a listener IP address." // string@4aea │ │ -497126: 7120 42d1 0f00 |0069: invoke-static {v15, v0}, Lorg/purple/smokestack/Miscellaneous;.showErrorDialog:(Landroid/content/Context;Ljava/lang/String;)V // method@d142 │ │ -49712c: 2878 |006c: goto 00e4 // +0078 │ │ -49712e: 54f7 3269 |006d: iget-object v7, v15, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ -497132: 6208 3c69 |006f: sget-object v8, Lorg/purple/smokestack/Settings;.s_cryptography:Lorg/purple/smokestack/Cryptography; // field@693c │ │ -497136: 6e10 275b 0300 |0071: invoke-virtual {v3}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ -49713c: 0c00 |0074: move-result-object v0 │ │ -49713e: 7210 1b5c 0000 |0075: invoke-interface {v0}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ -497144: 0c09 |0078: move-result-object v9 │ │ -497146: 6e10 275b 0500 |0079: invoke-virtual {v5}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ -49714c: 0c00 |007c: move-result-object v0 │ │ -49714e: 7210 1b5c 0000 |007d: invoke-interface {v0}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ -497154: 0c0a |0080: move-result-object v10 │ │ -497156: 6e10 275b 0600 |0081: invoke-virtual {v6}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ -49715c: 0c00 |0084: move-result-object v0 │ │ -49715e: 7210 1b5c 0000 |0085: invoke-interface {v0}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ -497164: 0c0b |0088: move-result-object v11 │ │ -497166: 6e10 275b 0400 |0089: invoke-virtual {v4}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ -49716c: 0c00 |008c: move-result-object v0 │ │ -49716e: 7210 1b5c 0000 |008d: invoke-interface {v0}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ -497174: 0c0c |0090: move-result-object v12 │ │ -497176: 6e10 e65a 0200 |0091: invoke-virtual {v2}, Landroid/widget/Switch;.isChecked:()Z // method@5ae6 │ │ -49717c: 0a0e |0094: move-result v14 │ │ -49717e: 7408 e1d0 0700 |0095: invoke-virtual/range {v7, v8, v9, v10, v11, v12, v13, v14}, Lorg/purple/smokestack/Database;.writeListener:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Z // method@d0e1 │ │ -497184: 0a00 |0098: move-result v0 │ │ -497186: 3900 0800 |0099: if-nez v0, 00a1 // +0008 │ │ -49718a: 1a00 1f0e |009b: const-string v0, "An error occurred while saving the listener's information." // string@0e1f │ │ -49718e: 7120 42d1 0f00 |009d: invoke-static {v15, v0}, Lorg/purple/smokestack/Miscellaneous;.showErrorDialog:(Landroid/content/Context;Ljava/lang/String;)V // method@d142 │ │ -497194: 2844 |00a0: goto 00e4 // +0044 │ │ -497196: 2200 fc0a |00a1: new-instance v0, Ljava/lang/StringBuilder; // type@0afc │ │ -49719a: 7010 125d 0000 |00a3: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ -4971a0: 6e10 275b 0300 |00a6: invoke-virtual {v3}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ -4971a6: 0c02 |00a9: move-result-object v2 │ │ -4971a8: 7210 1b5c 0200 |00aa: invoke-interface {v2}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ -4971ae: 0c02 |00ad: move-result-object v2 │ │ -4971b0: 6e20 1d5d 2000 |00ae: invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4971b6: 1a02 0109 |00b1: const-string v2, ":" // string@0901 │ │ -4971ba: 6e20 1d5d 2000 |00b3: invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4971c0: 6e10 275b 0500 |00b6: invoke-virtual {v5}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ -4971c6: 0c02 |00b9: move-result-object v2 │ │ -4971c8: 7210 1b5c 0200 |00ba: invoke-interface {v2}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ -4971ce: 0c02 |00bd: move-result-object v2 │ │ -4971d0: 6e20 1d5d 2000 |00be: invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4971d6: 1a02 1909 |00c1: const-string v2, ":TCP" // string@0919 │ │ -4971da: 6e20 1d5d 2000 |00c3: invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4971e0: 6e10 285d 0000 |00c6: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ -4971e6: 0c00 |00c9: move-result-object v0 │ │ -4971e8: 7020 f8d1 0f00 |00ca: invoke-direct {v15, v0}, Lorg/purple/smokestack/Settings;.generateOzone:(Ljava/lang/String;)Z // method@d1f8 │ │ -4971ee: 0a00 |00cd: move-result v0 │ │ -4971f0: 3800 0c00 |00ce: if-eqz v0, 00da // +000c │ │ -4971f4: 7100 02d1 0000 |00d0: invoke-static {}, Lorg/purple/smokestack/Kernel;.getInstance:()Lorg/purple/smokestack/Kernel; // method@d102 │ │ -4971fa: 0c00 |00d3: move-result-object v0 │ │ -4971fc: 6e10 07d1 0000 |00d4: invoke-virtual {v0}, Lorg/purple/smokestack/Kernel;.populateOzones:()V // method@d107 │ │ -497202: 7010 0cd2 0f00 |00d7: invoke-direct {v15}, Lorg/purple/smokestack/Settings;.populateOzoneAddresses:()V // method@d20c │ │ -497208: 6e10 e65a 0100 |00da: invoke-virtual {v1}, Landroid/widget/Switch;.isChecked:()Z // method@5ae6 │ │ -49720e: 0a00 |00dd: move-result v0 │ │ -497210: 3900 0600 |00de: if-nez v0, 00e4 // +0006 │ │ -497214: 1200 |00e0: const/4 v0, #int 0 // #0 │ │ -497216: 7020 0ad2 0f00 |00e1: invoke-direct {v15, v0}, Lorg/purple/smokestack/Settings;.populateListeners:(Ljava/util/ArrayList;)V // method@d20a │ │ -49721c: 0e00 |00e4: return-void │ │ +497040: |[497040] org.purple.smokestack.Settings.addListener:()V │ │ +497050: 6e10 fed1 0f00 |0000: invoke-virtual {v15}, Lorg/purple/smokestack/Settings;.isFinishing:()Z // method@d1fe │ │ +497056: 0a00 |0003: move-result v0 │ │ +497058: 3800 0300 |0004: if-eqz v0, 0007 // +0003 │ │ +49705c: 0e00 |0006: return-void │ │ +49705e: 1400 6b00 087f |0007: const v0, #float 1.80777e+38 // #7f08006b │ │ +497064: 6e20 f6d1 0f00 |000a: invoke-virtual {v15, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +49706a: 0c00 |000d: move-result-object v0 │ │ +49706c: 1f00 850a |000e: check-cast v0, Landroid/widget/RadioGroup; // type@0a85 │ │ +497070: 1401 2300 087f |0010: const v1, #float 1.80776e+38 // #7f080023 │ │ +497076: 6e20 f6d1 1f00 |0013: invoke-virtual {v15, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +49707c: 0c01 |0016: move-result-object v1 │ │ +49707e: 1f01 920a |0017: check-cast v1, Landroid/widget/Switch; // type@0a92 │ │ +497082: 1402 9400 087f |0019: const v2, #float 1.80778e+38 // #7f080094 │ │ +497088: 6e20 f6d1 2f00 |001c: invoke-virtual {v15, v2}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +49708e: 0c02 |001f: move-result-object v2 │ │ +497090: 1f02 920a |0020: check-cast v2, Landroid/widget/Switch; // type@0a92 │ │ +497094: 1403 6800 087f |0022: const v3, #float 1.80777e+38 // #7f080068 │ │ +49709a: 6e20 f6d1 3f00 |0025: invoke-virtual {v15, v3}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4970a0: 0c03 |0028: move-result-object v3 │ │ +4970a2: 1f03 9c0a |0029: check-cast v3, Landroid/widget/TextView; // type@0a9c │ │ +4970a6: 1404 6c00 087f |002b: const v4, #float 1.80777e+38 // #7f08006c │ │ +4970ac: 6e20 f6d1 4f00 |002e: invoke-virtual {v15, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4970b2: 0c04 |0031: move-result-object v4 │ │ +4970b4: 1f04 9c0a |0032: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ +4970b8: 1405 6d00 087f |0034: const v5, #float 1.80777e+38 // #7f08006d │ │ +4970be: 6e20 f6d1 5f00 |0037: invoke-virtual {v15, v5}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4970c4: 0c05 |003a: move-result-object v5 │ │ +4970c6: 1f05 9c0a |003b: check-cast v5, Landroid/widget/TextView; // type@0a9c │ │ +4970ca: 1406 6e00 087f |003d: const v6, #float 1.80777e+38 // #7f08006e │ │ +4970d0: 6e20 f6d1 6f00 |0040: invoke-virtual {v15, v6}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4970d6: 0c06 |0043: move-result-object v6 │ │ +4970d8: 1f06 9c0a |0044: check-cast v6, Landroid/widget/TextView; // type@0a9c │ │ +4970dc: 6e10 795a 0000 |0046: invoke-virtual {v0}, Landroid/widget/RadioGroup;.getCheckedRadioButtonId:()I // method@5a79 │ │ +4970e2: 0a00 |0049: move-result v0 │ │ +4970e4: 1407 6900 087f |004a: const v7, #float 1.80777e+38 // #7f080069 │ │ +4970ea: 3370 0500 |004d: if-ne v0, v7, 0052 // +0005 │ │ +4970ee: 1a00 a11f |004f: const-string v0, "IPv4" // string@1fa1 │ │ +4970f2: 2803 |0051: goto 0054 // +0003 │ │ +4970f4: 1a00 a21f |0052: const-string v0, "IPv6" // string@1fa2 │ │ +4970f8: 070d |0054: move-object v13, v0 │ │ +4970fa: 6e10 275b 0300 |0055: invoke-virtual {v3}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ +497100: 0c00 |0058: move-result-object v0 │ │ +497102: 7210 1b5c 0000 |0059: invoke-interface {v0}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ +497108: 0c00 |005c: move-result-object v0 │ │ +49710a: 6e10 f75c 0000 |005d: invoke-virtual {v0}, Ljava/lang/String;.trim:()Ljava/lang/String; // method@5cf7 │ │ +497110: 0c00 |0060: move-result-object v0 │ │ +497112: 6e10 e65c 0000 |0061: invoke-virtual {v0}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ +497118: 0a00 |0064: move-result v0 │ │ +49711a: 3800 0800 |0065: if-eqz v0, 006d // +0008 │ │ +49711e: 1a00 ea4a |0067: const-string v0, "Please provide a listener IP address." // string@4aea │ │ +497122: 7120 42d1 0f00 |0069: invoke-static {v15, v0}, Lorg/purple/smokestack/Miscellaneous;.showErrorDialog:(Landroid/content/Context;Ljava/lang/String;)V // method@d142 │ │ +497128: 2878 |006c: goto 00e4 // +0078 │ │ +49712a: 54f7 3269 |006d: iget-object v7, v15, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ +49712e: 6208 3c69 |006f: sget-object v8, Lorg/purple/smokestack/Settings;.s_cryptography:Lorg/purple/smokestack/Cryptography; // field@693c │ │ +497132: 6e10 275b 0300 |0071: invoke-virtual {v3}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ +497138: 0c00 |0074: move-result-object v0 │ │ +49713a: 7210 1b5c 0000 |0075: invoke-interface {v0}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ +497140: 0c09 |0078: move-result-object v9 │ │ +497142: 6e10 275b 0500 |0079: invoke-virtual {v5}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ +497148: 0c00 |007c: move-result-object v0 │ │ +49714a: 7210 1b5c 0000 |007d: invoke-interface {v0}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ +497150: 0c0a |0080: move-result-object v10 │ │ +497152: 6e10 275b 0600 |0081: invoke-virtual {v6}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ +497158: 0c00 |0084: move-result-object v0 │ │ +49715a: 7210 1b5c 0000 |0085: invoke-interface {v0}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ +497160: 0c0b |0088: move-result-object v11 │ │ +497162: 6e10 275b 0400 |0089: invoke-virtual {v4}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ +497168: 0c00 |008c: move-result-object v0 │ │ +49716a: 7210 1b5c 0000 |008d: invoke-interface {v0}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ +497170: 0c0c |0090: move-result-object v12 │ │ +497172: 6e10 e65a 0200 |0091: invoke-virtual {v2}, Landroid/widget/Switch;.isChecked:()Z // method@5ae6 │ │ +497178: 0a0e |0094: move-result v14 │ │ +49717a: 7408 e1d0 0700 |0095: invoke-virtual/range {v7, v8, v9, v10, v11, v12, v13, v14}, Lorg/purple/smokestack/Database;.writeListener:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Z // method@d0e1 │ │ +497180: 0a00 |0098: move-result v0 │ │ +497182: 3900 0800 |0099: if-nez v0, 00a1 // +0008 │ │ +497186: 1a00 1f0e |009b: const-string v0, "An error occurred while saving the listener's information." // string@0e1f │ │ +49718a: 7120 42d1 0f00 |009d: invoke-static {v15, v0}, Lorg/purple/smokestack/Miscellaneous;.showErrorDialog:(Landroid/content/Context;Ljava/lang/String;)V // method@d142 │ │ +497190: 2844 |00a0: goto 00e4 // +0044 │ │ +497192: 2200 fc0a |00a1: new-instance v0, Ljava/lang/StringBuilder; // type@0afc │ │ +497196: 7010 125d 0000 |00a3: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ +49719c: 6e10 275b 0300 |00a6: invoke-virtual {v3}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ +4971a2: 0c02 |00a9: move-result-object v2 │ │ +4971a4: 7210 1b5c 0200 |00aa: invoke-interface {v2}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ +4971aa: 0c02 |00ad: move-result-object v2 │ │ +4971ac: 6e20 1d5d 2000 |00ae: invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4971b2: 1a02 0109 |00b1: const-string v2, ":" // string@0901 │ │ +4971b6: 6e20 1d5d 2000 |00b3: invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4971bc: 6e10 275b 0500 |00b6: invoke-virtual {v5}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ +4971c2: 0c02 |00b9: move-result-object v2 │ │ +4971c4: 7210 1b5c 0200 |00ba: invoke-interface {v2}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ +4971ca: 0c02 |00bd: move-result-object v2 │ │ +4971cc: 6e20 1d5d 2000 |00be: invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4971d2: 1a02 1909 |00c1: const-string v2, ":TCP" // string@0919 │ │ +4971d6: 6e20 1d5d 2000 |00c3: invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4971dc: 6e10 285d 0000 |00c6: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ +4971e2: 0c00 |00c9: move-result-object v0 │ │ +4971e4: 7020 f8d1 0f00 |00ca: invoke-direct {v15, v0}, Lorg/purple/smokestack/Settings;.generateOzone:(Ljava/lang/String;)Z // method@d1f8 │ │ +4971ea: 0a00 |00cd: move-result v0 │ │ +4971ec: 3800 0c00 |00ce: if-eqz v0, 00da // +000c │ │ +4971f0: 7100 02d1 0000 |00d0: invoke-static {}, Lorg/purple/smokestack/Kernel;.getInstance:()Lorg/purple/smokestack/Kernel; // method@d102 │ │ +4971f6: 0c00 |00d3: move-result-object v0 │ │ +4971f8: 6e10 07d1 0000 |00d4: invoke-virtual {v0}, Lorg/purple/smokestack/Kernel;.populateOzones:()V // method@d107 │ │ +4971fe: 7010 0cd2 0f00 |00d7: invoke-direct {v15}, Lorg/purple/smokestack/Settings;.populateOzoneAddresses:()V // method@d20c │ │ +497204: 6e10 e65a 0100 |00da: invoke-virtual {v1}, Landroid/widget/Switch;.isChecked:()Z // method@5ae6 │ │ +49720a: 0a00 |00dd: move-result v0 │ │ +49720c: 3900 0600 |00de: if-nez v0, 00e4 // +0006 │ │ +497210: 1200 |00e0: const/4 v0, #int 0 // #0 │ │ +497212: 7020 0ad2 0f00 |00e1: invoke-direct {v15, v0}, Lorg/purple/smokestack/Settings;.populateListeners:(Ljava/util/ArrayList;)V // method@d20a │ │ +497218: 0e00 |00e4: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=301 │ │ 0x000a line=305 │ │ 0x0013 line=308 │ │ 0x001c line=309 │ │ 0x0025 line=310 │ │ @@ -1714859,118 +1714858,118 @@ │ │ type : '()V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 21 │ │ ins : 1 │ │ outs : 10 │ │ insns size : 213 16-bit code units │ │ -497220: |[497220] org.purple.smokestack.Settings.addNeighbor:()V │ │ -497230: 0800 1400 |0000: move-object/from16 v0, v20 │ │ -497234: 7401 fed1 1400 |0002: invoke-virtual/range {v20}, Lorg/purple/smokestack/Settings;.isFinishing:()Z // method@d1fe │ │ -49723a: 0a01 |0005: move-result v1 │ │ -49723c: 3801 0300 |0006: if-eqz v1, 0009 // +0003 │ │ -497240: 0e00 |0008: return-void │ │ -497242: 1401 7b00 087f |0009: const v1, #float 1.80778e+38 // #7f08007b │ │ -497248: 6e20 f6d1 1000 |000c: invoke-virtual {v0, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -49724e: 0c01 |000f: move-result-object v1 │ │ -497250: 1f01 850a |0010: check-cast v1, Landroid/widget/RadioGroup; // type@0a85 │ │ -497254: 1402 7e00 087f |0012: const v2, #float 1.80778e+38 // #7f08007e │ │ -49725a: 6e20 f6d1 2000 |0015: invoke-virtual {v0, v2}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497260: 0c02 |0018: move-result-object v2 │ │ -497262: 1f02 900a |0019: check-cast v2, Landroid/widget/Spinner; // type@0a90 │ │ -497266: 1403 9900 087f |001b: const v3, #float 1.80778e+38 // #7f080099 │ │ -49726c: 6e20 f6d1 3000 |001e: invoke-virtual {v0, v3}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497272: 0c03 |0021: move-result-object v3 │ │ -497274: 1f03 900a |0022: check-cast v3, Landroid/widget/Spinner; // type@0a90 │ │ -497278: 1404 2400 087f |0024: const v4, #float 1.80776e+38 // #7f080024 │ │ -49727e: 6e20 f6d1 4000 |0027: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497284: 0c04 |002a: move-result-object v4 │ │ -497286: 1f04 920a |002b: check-cast v4, Landroid/widget/Switch; // type@0a92 │ │ -49728a: 1405 9700 087f |002d: const v5, #float 1.80778e+38 // #7f080097 │ │ -497290: 6e20 f6d1 5000 |0030: invoke-virtual {v0, v5}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497296: 0c05 |0033: move-result-object v5 │ │ -497298: 1f05 9c0a |0034: check-cast v5, Landroid/widget/TextView; // type@0a9c │ │ -49729c: 1406 9800 087f |0036: const v6, #float 1.80778e+38 // #7f080098 │ │ -4972a2: 6e20 f6d1 6000 |0039: invoke-virtual {v0, v6}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4972a8: 0c06 |003c: move-result-object v6 │ │ -4972aa: 1f06 9c0a |003d: check-cast v6, Landroid/widget/TextView; // type@0a9c │ │ -4972ae: 1407 7800 087f |003f: const v7, #float 1.80777e+38 // #7f080078 │ │ -4972b4: 6e20 f6d1 7000 |0042: invoke-virtual {v0, v7}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4972ba: 0c07 |0045: move-result-object v7 │ │ -4972bc: 1f07 9c0a |0046: check-cast v7, Landroid/widget/TextView; // type@0a9c │ │ -4972c0: 1408 7c00 087f |0048: const v8, #float 1.80778e+38 // #7f08007c │ │ -4972c6: 6e20 f6d1 8000 |004b: invoke-virtual {v0, v8}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4972cc: 0c08 |004e: move-result-object v8 │ │ -4972ce: 1f08 9c0a |004f: check-cast v8, Landroid/widget/TextView; // type@0a9c │ │ -4972d2: 1409 7d00 087f |0051: const v9, #float 1.80778e+38 // #7f08007d │ │ -4972d8: 6e20 f6d1 9000 |0054: invoke-virtual {v0, v9}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4972de: 0c09 |0057: move-result-object v9 │ │ -4972e0: 1f09 9c0a |0058: check-cast v9, Landroid/widget/TextView; // type@0a9c │ │ -4972e4: 6e10 795a 0100 |005a: invoke-virtual {v1}, Landroid/widget/RadioGroup;.getCheckedRadioButtonId:()I // method@5a79 │ │ -4972ea: 0a01 |005d: move-result v1 │ │ -4972ec: 140a 7900 087f |005e: const v10, #float 1.80777e+38 // #7f080079 │ │ -4972f2: 33a1 0500 |0061: if-ne v1, v10, 0066 // +0005 │ │ -4972f6: 1a01 a11f |0063: const-string v1, "IPv4" // string@1fa1 │ │ -4972fa: 2803 |0065: goto 0068 // +0003 │ │ -4972fc: 1a01 a21f |0066: const-string v1, "IPv6" // string@1fa2 │ │ -497300: 0813 0100 |0068: move-object/from16 v19, v1 │ │ -497304: 6e10 275b 0700 |006a: invoke-virtual {v7}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ -49730a: 0c01 |006d: move-result-object v1 │ │ -49730c: 7210 1b5c 0100 |006e: invoke-interface {v1}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ -497312: 0c01 |0071: move-result-object v1 │ │ -497314: 6e10 f75c 0100 |0072: invoke-virtual {v1}, Ljava/lang/String;.trim:()Ljava/lang/String; // method@5cf7 │ │ -49731a: 0c01 |0075: move-result-object v1 │ │ -49731c: 6e10 e65c 0100 |0076: invoke-virtual {v1}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ -497322: 0a01 |0079: move-result v1 │ │ -497324: 3801 0800 |007a: if-eqz v1, 0082 // +0008 │ │ -497328: 1a01 eb4a |007c: const-string v1, "Please provide a neighbor IP address." // string@4aeb │ │ -49732c: 7120 42d1 1000 |007e: invoke-static {v0, v1}, Lorg/purple/smokestack/Miscellaneous;.showErrorDialog:(Landroid/content/Context;Ljava/lang/String;)V // method@d142 │ │ -497332: 2853 |0081: goto 00d4 // +0053 │ │ -497334: 540a 3269 |0082: iget-object v10, v0, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ -497338: 620b 3c69 |0084: sget-object v11, Lorg/purple/smokestack/Settings;.s_cryptography:Lorg/purple/smokestack/Cryptography; // field@693c │ │ -49733c: 6e10 275b 0500 |0086: invoke-virtual {v5}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ -497342: 0c01 |0089: move-result-object v1 │ │ -497344: 7210 1b5c 0100 |008a: invoke-interface {v1}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ -49734a: 0c0c |008d: move-result-object v12 │ │ -49734c: 6e10 275b 0600 |008e: invoke-virtual {v6}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ -497352: 0c01 |0091: move-result-object v1 │ │ -497354: 7210 1b5c 0100 |0092: invoke-interface {v1}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ -49735a: 0c0d |0095: move-result-object v13 │ │ -49735c: 6e10 c85a 0300 |0096: invoke-virtual {v3}, Landroid/widget/Spinner;.getSelectedItem:()Ljava/lang/Object; // method@5ac8 │ │ -497362: 0c01 |0099: move-result-object v1 │ │ -497364: 6e10 b55c 0100 |009a: invoke-virtual {v1}, Ljava/lang/Object;.toString:()Ljava/lang/String; // method@5cb5 │ │ -49736a: 0c0e |009d: move-result-object v14 │ │ -49736c: 6e10 275b 0700 |009e: invoke-virtual {v7}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ -497372: 0c01 |00a1: move-result-object v1 │ │ -497374: 7210 1b5c 0100 |00a2: invoke-interface {v1}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ -49737a: 0c0f |00a5: move-result-object v15 │ │ -49737c: 6e10 275b 0800 |00a6: invoke-virtual {v8}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ -497382: 0c01 |00a9: move-result-object v1 │ │ -497384: 7210 1b5c 0100 |00aa: invoke-interface {v1}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ -49738a: 0c10 |00ad: move-result-object v16 │ │ -49738c: 6e10 275b 0900 |00ae: invoke-virtual {v9}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ -497392: 0c01 |00b1: move-result-object v1 │ │ -497394: 7210 1b5c 0100 |00b2: invoke-interface {v1}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ -49739a: 0c11 |00b5: move-result-object v17 │ │ -49739c: 6e10 c85a 0200 |00b6: invoke-virtual {v2}, Landroid/widget/Spinner;.getSelectedItem:()Ljava/lang/Object; // method@5ac8 │ │ -4973a2: 0c01 |00b9: move-result-object v1 │ │ -4973a4: 6e10 b55c 0100 |00ba: invoke-virtual {v1}, Ljava/lang/Object;.toString:()Ljava/lang/String; // method@5cb5 │ │ -4973aa: 0c12 |00bd: move-result-object v18 │ │ -4973ac: 740a e5d0 0a00 |00be: invoke-virtual/range {v10, v11, v12, v13, v14, v15, v16, v17, v18, v19}, Lorg/purple/smokestack/Database;.writeNeighbor:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z // method@d0e5 │ │ -4973b2: 0a01 |00c1: move-result v1 │ │ -4973b4: 3901 0800 |00c2: if-nez v1, 00ca // +0008 │ │ -4973b8: 1a01 200e |00c4: const-string v1, "An error occurred while saving the neighbor information." // string@0e20 │ │ -4973bc: 7120 42d1 1000 |00c6: invoke-static {v0, v1}, Lorg/purple/smokestack/Miscellaneous;.showErrorDialog:(Landroid/content/Context;Ljava/lang/String;)V // method@d142 │ │ -4973c2: 280b |00c9: goto 00d4 // +000b │ │ -4973c4: 6e10 e65a 0400 |00ca: invoke-virtual {v4}, Landroid/widget/Switch;.isChecked:()Z // method@5ae6 │ │ -4973ca: 0a01 |00cd: move-result v1 │ │ -4973cc: 3901 0600 |00ce: if-nez v1, 00d4 // +0006 │ │ -4973d0: 1201 |00d0: const/4 v1, #int 0 // #0 │ │ -4973d2: 7020 0bd2 1000 |00d1: invoke-direct {v0, v1}, Lorg/purple/smokestack/Settings;.populateNeighbors:(Ljava/util/ArrayList;)V // method@d20b │ │ -4973d8: 0e00 |00d4: return-void │ │ +49721c: |[49721c] org.purple.smokestack.Settings.addNeighbor:()V │ │ +49722c: 0800 1400 |0000: move-object/from16 v0, v20 │ │ +497230: 7401 fed1 1400 |0002: invoke-virtual/range {v20}, Lorg/purple/smokestack/Settings;.isFinishing:()Z // method@d1fe │ │ +497236: 0a01 |0005: move-result v1 │ │ +497238: 3801 0300 |0006: if-eqz v1, 0009 // +0003 │ │ +49723c: 0e00 |0008: return-void │ │ +49723e: 1401 7b00 087f |0009: const v1, #float 1.80778e+38 // #7f08007b │ │ +497244: 6e20 f6d1 1000 |000c: invoke-virtual {v0, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +49724a: 0c01 |000f: move-result-object v1 │ │ +49724c: 1f01 850a |0010: check-cast v1, Landroid/widget/RadioGroup; // type@0a85 │ │ +497250: 1402 7e00 087f |0012: const v2, #float 1.80778e+38 // #7f08007e │ │ +497256: 6e20 f6d1 2000 |0015: invoke-virtual {v0, v2}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +49725c: 0c02 |0018: move-result-object v2 │ │ +49725e: 1f02 900a |0019: check-cast v2, Landroid/widget/Spinner; // type@0a90 │ │ +497262: 1403 9900 087f |001b: const v3, #float 1.80778e+38 // #7f080099 │ │ +497268: 6e20 f6d1 3000 |001e: invoke-virtual {v0, v3}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +49726e: 0c03 |0021: move-result-object v3 │ │ +497270: 1f03 900a |0022: check-cast v3, Landroid/widget/Spinner; // type@0a90 │ │ +497274: 1404 2400 087f |0024: const v4, #float 1.80776e+38 // #7f080024 │ │ +49727a: 6e20 f6d1 4000 |0027: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497280: 0c04 |002a: move-result-object v4 │ │ +497282: 1f04 920a |002b: check-cast v4, Landroid/widget/Switch; // type@0a92 │ │ +497286: 1405 9700 087f |002d: const v5, #float 1.80778e+38 // #7f080097 │ │ +49728c: 6e20 f6d1 5000 |0030: invoke-virtual {v0, v5}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497292: 0c05 |0033: move-result-object v5 │ │ +497294: 1f05 9c0a |0034: check-cast v5, Landroid/widget/TextView; // type@0a9c │ │ +497298: 1406 9800 087f |0036: const v6, #float 1.80778e+38 // #7f080098 │ │ +49729e: 6e20 f6d1 6000 |0039: invoke-virtual {v0, v6}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4972a4: 0c06 |003c: move-result-object v6 │ │ +4972a6: 1f06 9c0a |003d: check-cast v6, Landroid/widget/TextView; // type@0a9c │ │ +4972aa: 1407 7800 087f |003f: const v7, #float 1.80777e+38 // #7f080078 │ │ +4972b0: 6e20 f6d1 7000 |0042: invoke-virtual {v0, v7}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4972b6: 0c07 |0045: move-result-object v7 │ │ +4972b8: 1f07 9c0a |0046: check-cast v7, Landroid/widget/TextView; // type@0a9c │ │ +4972bc: 1408 7c00 087f |0048: const v8, #float 1.80778e+38 // #7f08007c │ │ +4972c2: 6e20 f6d1 8000 |004b: invoke-virtual {v0, v8}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4972c8: 0c08 |004e: move-result-object v8 │ │ +4972ca: 1f08 9c0a |004f: check-cast v8, Landroid/widget/TextView; // type@0a9c │ │ +4972ce: 1409 7d00 087f |0051: const v9, #float 1.80778e+38 // #7f08007d │ │ +4972d4: 6e20 f6d1 9000 |0054: invoke-virtual {v0, v9}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4972da: 0c09 |0057: move-result-object v9 │ │ +4972dc: 1f09 9c0a |0058: check-cast v9, Landroid/widget/TextView; // type@0a9c │ │ +4972e0: 6e10 795a 0100 |005a: invoke-virtual {v1}, Landroid/widget/RadioGroup;.getCheckedRadioButtonId:()I // method@5a79 │ │ +4972e6: 0a01 |005d: move-result v1 │ │ +4972e8: 140a 7900 087f |005e: const v10, #float 1.80777e+38 // #7f080079 │ │ +4972ee: 33a1 0500 |0061: if-ne v1, v10, 0066 // +0005 │ │ +4972f2: 1a01 a11f |0063: const-string v1, "IPv4" // string@1fa1 │ │ +4972f6: 2803 |0065: goto 0068 // +0003 │ │ +4972f8: 1a01 a21f |0066: const-string v1, "IPv6" // string@1fa2 │ │ +4972fc: 0813 0100 |0068: move-object/from16 v19, v1 │ │ +497300: 6e10 275b 0700 |006a: invoke-virtual {v7}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ +497306: 0c01 |006d: move-result-object v1 │ │ +497308: 7210 1b5c 0100 |006e: invoke-interface {v1}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ +49730e: 0c01 |0071: move-result-object v1 │ │ +497310: 6e10 f75c 0100 |0072: invoke-virtual {v1}, Ljava/lang/String;.trim:()Ljava/lang/String; // method@5cf7 │ │ +497316: 0c01 |0075: move-result-object v1 │ │ +497318: 6e10 e65c 0100 |0076: invoke-virtual {v1}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ +49731e: 0a01 |0079: move-result v1 │ │ +497320: 3801 0800 |007a: if-eqz v1, 0082 // +0008 │ │ +497324: 1a01 eb4a |007c: const-string v1, "Please provide a neighbor IP address." // string@4aeb │ │ +497328: 7120 42d1 1000 |007e: invoke-static {v0, v1}, Lorg/purple/smokestack/Miscellaneous;.showErrorDialog:(Landroid/content/Context;Ljava/lang/String;)V // method@d142 │ │ +49732e: 2853 |0081: goto 00d4 // +0053 │ │ +497330: 540a 3269 |0082: iget-object v10, v0, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ +497334: 620b 3c69 |0084: sget-object v11, Lorg/purple/smokestack/Settings;.s_cryptography:Lorg/purple/smokestack/Cryptography; // field@693c │ │ +497338: 6e10 275b 0500 |0086: invoke-virtual {v5}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ +49733e: 0c01 |0089: move-result-object v1 │ │ +497340: 7210 1b5c 0100 |008a: invoke-interface {v1}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ +497346: 0c0c |008d: move-result-object v12 │ │ +497348: 6e10 275b 0600 |008e: invoke-virtual {v6}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ +49734e: 0c01 |0091: move-result-object v1 │ │ +497350: 7210 1b5c 0100 |0092: invoke-interface {v1}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ +497356: 0c0d |0095: move-result-object v13 │ │ +497358: 6e10 c85a 0300 |0096: invoke-virtual {v3}, Landroid/widget/Spinner;.getSelectedItem:()Ljava/lang/Object; // method@5ac8 │ │ +49735e: 0c01 |0099: move-result-object v1 │ │ +497360: 6e10 b55c 0100 |009a: invoke-virtual {v1}, Ljava/lang/Object;.toString:()Ljava/lang/String; // method@5cb5 │ │ +497366: 0c0e |009d: move-result-object v14 │ │ +497368: 6e10 275b 0700 |009e: invoke-virtual {v7}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ +49736e: 0c01 |00a1: move-result-object v1 │ │ +497370: 7210 1b5c 0100 |00a2: invoke-interface {v1}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ +497376: 0c0f |00a5: move-result-object v15 │ │ +497378: 6e10 275b 0800 |00a6: invoke-virtual {v8}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ +49737e: 0c01 |00a9: move-result-object v1 │ │ +497380: 7210 1b5c 0100 |00aa: invoke-interface {v1}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ +497386: 0c10 |00ad: move-result-object v16 │ │ +497388: 6e10 275b 0900 |00ae: invoke-virtual {v9}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ +49738e: 0c01 |00b1: move-result-object v1 │ │ +497390: 7210 1b5c 0100 |00b2: invoke-interface {v1}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ +497396: 0c11 |00b5: move-result-object v17 │ │ +497398: 6e10 c85a 0200 |00b6: invoke-virtual {v2}, Landroid/widget/Spinner;.getSelectedItem:()Ljava/lang/Object; // method@5ac8 │ │ +49739e: 0c01 |00b9: move-result-object v1 │ │ +4973a0: 6e10 b55c 0100 |00ba: invoke-virtual {v1}, Ljava/lang/Object;.toString:()Ljava/lang/String; // method@5cb5 │ │ +4973a6: 0c12 |00bd: move-result-object v18 │ │ +4973a8: 740a e5d0 0a00 |00be: invoke-virtual/range {v10, v11, v12, v13, v14, v15, v16, v17, v18, v19}, Lorg/purple/smokestack/Database;.writeNeighbor:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z // method@d0e5 │ │ +4973ae: 0a01 |00c1: move-result v1 │ │ +4973b0: 3901 0800 |00c2: if-nez v1, 00ca // +0008 │ │ +4973b4: 1a01 200e |00c4: const-string v1, "An error occurred while saving the neighbor information." // string@0e20 │ │ +4973b8: 7120 42d1 1000 |00c6: invoke-static {v0, v1}, Lorg/purple/smokestack/Miscellaneous;.showErrorDialog:(Landroid/content/Context;Ljava/lang/String;)V // method@d142 │ │ +4973be: 280b |00c9: goto 00d4 // +000b │ │ +4973c0: 6e10 e65a 0400 |00ca: invoke-virtual {v4}, Landroid/widget/Switch;.isChecked:()Z // method@5ae6 │ │ +4973c6: 0a01 |00cd: move-result v1 │ │ +4973c8: 3901 0600 |00ce: if-nez v1, 00d4 // +0006 │ │ +4973cc: 1201 |00d0: const/4 v1, #int 0 // #0 │ │ +4973ce: 7020 0bd2 1000 |00d1: invoke-direct {v0, v1}, Lorg/purple/smokestack/Settings;.populateNeighbors:(Ljava/util/ArrayList;)V // method@d20b │ │ +4973d4: 0e00 |00d4: return-void │ │ catches : (none) │ │ positions : │ │ 0x0002 line=353 │ │ 0x000c line=357 │ │ 0x0015 line=358 │ │ 0x001e line=359 │ │ 0x0027 line=362 │ │ @@ -1715002,81 +1715001,81 @@ │ │ type : '()V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 10 │ │ ins : 1 │ │ outs : 6 │ │ insns size : 136 16-bit code units │ │ -4973dc: |[4973dc] org.purple.smokestack.Settings.addParticipant:()V │ │ -4973ec: 6e10 fed1 0900 |0000: invoke-virtual {v9}, Lorg/purple/smokestack/Settings;.isFinishing:()Z // method@d1fe │ │ -4973f2: 0a00 |0003: move-result v0 │ │ -4973f4: 3800 0300 |0004: if-eqz v0, 0007 // +0003 │ │ -4973f8: 0e00 |0006: return-void │ │ -4973fa: 1400 8d00 087f |0007: const v0, #float 1.80778e+38 // #7f08008d │ │ -497400: 6e20 f6d1 0900 |000a: invoke-virtual {v9, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497406: 0c00 |000d: move-result-object v0 │ │ -497408: 1f00 9c0a |000e: check-cast v0, Landroid/widget/TextView; // type@0a9c │ │ -49740c: 6e10 275b 0000 |0010: invoke-virtual {v0}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ -497412: 0c00 |0013: move-result-object v0 │ │ -497414: 7210 1b5c 0000 |0014: invoke-interface {v0}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ -49741a: 0c00 |0017: move-result-object v0 │ │ -49741c: 1a01 3e00 |0018: const-string v1, " " // string@003e │ │ -497420: 1a02 0000 |001a: const-string v2, "" // string@0000 │ │ -497424: 6e30 ec5c 1002 |001c: invoke-virtual {v0, v1, v2}, Ljava/lang/String;.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; // method@5cec │ │ -49742a: 0c00 |001f: move-result-object v0 │ │ -49742c: 1a01 b804 |0020: const-string v1, "-" // string@04b8 │ │ -497430: 6e30 ec5c 1002 |0022: invoke-virtual {v0, v1, v2}, Ljava/lang/String;.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; // method@5cec │ │ -497436: 0c00 |0025: move-result-object v0 │ │ -497438: 1a01 0109 |0026: const-string v1, ":" // string@0901 │ │ -49743c: 6e30 ec5c 1002 |0028: invoke-virtual {v0, v1, v2}, Ljava/lang/String;.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; // method@5cec │ │ -497442: 0c00 |002b: move-result-object v0 │ │ -497444: 6e10 f75c 0000 |002c: invoke-virtual {v0}, Ljava/lang/String;.trim:()Ljava/lang/String; // method@5cf7 │ │ -49744a: 0c00 |002f: move-result-object v0 │ │ -49744c: 1301 2d00 |0030: const/16 v1, #int 45 // #2d │ │ -497450: 1242 |0032: const/4 v2, #int 4 // #4 │ │ -497452: 7130 3bd1 1002 |0033: invoke-static {v0, v1, v2}, Lorg/purple/smokestack/Miscellaneous;.delimitString:(Ljava/lang/String;CI)Ljava/lang/String; // method@d13b │ │ -497458: 0c06 |0036: move-result-object v6 │ │ -49745a: 6e10 e95c 0600 |0037: invoke-virtual {v6}, Ljava/lang/String;.length:()I // method@5ce9 │ │ -497460: 0a00 |003a: move-result v0 │ │ -497462: 1301 2700 |003b: const/16 v1, #int 39 // #27 │ │ -497466: 3210 0800 |003d: if-eq v0, v1, 0045 // +0008 │ │ -49746a: 1a00 8e09 |003f: const-string v0, "A Smoke ID must be of the form HHHH-HHHH-HHHH-HHHH-HHHH-HHHH-HHHH-HHHH." // string@098e │ │ -49746e: 7120 42d1 0900 |0041: invoke-static {v9, v0}, Lorg/purple/smokestack/Miscellaneous;.showErrorDialog:(Landroid/content/Context;Ljava/lang/String;)V // method@d142 │ │ -497474: 0e00 |0044: return-void │ │ -497476: 2208 2e00 |0045: new-instance v8, Landroid/app/ProgressDialog; // type@002e │ │ -49747a: 7020 1701 9800 |0047: invoke-direct {v8, v9}, Landroid/app/ProgressDialog;.:(Landroid/content/Context;)V // method@0117 │ │ -497480: 1200 |004a: const/4 v0, #int 0 // #0 │ │ -497482: 6e20 1901 0800 |004b: invoke-virtual {v8, v0}, Landroid/app/ProgressDialog;.setCancelable:(Z)V // method@0119 │ │ -497488: 1210 |004e: const/4 v0, #int 1 // #1 │ │ -49748a: 6e20 1a01 0800 |004f: invoke-virtual {v8, v0}, Landroid/app/ProgressDialog;.setIndeterminate:(Z)V // method@011a │ │ -497490: 1a00 841d |0052: const-string v0, "Generating key material. Please be patient and do not rotate the device while the process executes." // string@1d84 │ │ -497494: 6e20 1b01 0800 |0054: invoke-virtual {v8, v0}, Landroid/app/ProgressDialog;.setMessage:(Ljava/lang/CharSequence;)V // method@011b │ │ -49749a: 6e10 1c01 0800 |0057: invoke-virtual {v8}, Landroid/app/ProgressDialog;.show:()V // method@011c │ │ -4974a0: 2200 ff0a |005a: new-instance v0, Ljava/lang/Thread; // type@0aff │ │ -4974a4: 2201 cf1e |005c: new-instance v1, Lorg/purple/smokestack/Settings$1SingleShot; // type@1ecf │ │ -4974a8: 1402 8c00 087f |005e: const v2, #float 1.80778e+38 // #7f08008c │ │ -4974ae: 6e20 f6d1 2900 |0061: invoke-virtual {v9, v2}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4974b4: 0c02 |0064: move-result-object v2 │ │ -4974b6: 1f02 9c0a |0065: check-cast v2, Landroid/widget/TextView; // type@0a9c │ │ -4974ba: 6e10 275b 0200 |0067: invoke-virtual {v2}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ -4974c0: 0c02 |006a: move-result-object v2 │ │ -4974c2: 7210 1b5c 0200 |006b: invoke-interface {v2}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ -4974c8: 0c05 |006e: move-result-object v5 │ │ -4974ca: 1402 0100 087f |006f: const v2, #float 1.80775e+38 // #7f080001 │ │ -4974d0: 6e20 f6d1 2900 |0072: invoke-virtual {v9, v2}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4974d6: 0c02 |0075: move-result-object v2 │ │ -4974d8: 1f02 920a |0076: check-cast v2, Landroid/widget/Switch; // type@0a92 │ │ -4974dc: 6e10 e65a 0200 |0078: invoke-virtual {v2}, Landroid/widget/Switch;.isChecked:()Z // method@5ae6 │ │ -4974e2: 0a07 |007b: move-result v7 │ │ -4974e4: 0713 |007c: move-object v3, v1 │ │ -4974e6: 0794 |007d: move-object v4, v9 │ │ -4974e8: 7606 91d1 0300 |007e: invoke-direct/range {v3, v4, v5, v6, v7, v8}, Lorg/purple/smokestack/Settings$1SingleShot;.:(Lorg/purple/smokestack/Settings;Ljava/lang/String;Ljava/lang/String;ZLandroid/app/ProgressDialog;)V // method@d191 │ │ -4974ee: 7020 345d 1000 |0081: invoke-direct {v0, v1}, Ljava/lang/Thread;.:(Ljava/lang/Runnable;)V // method@5d34 │ │ -4974f4: 6e10 3e5d 0000 |0084: invoke-virtual {v0}, Ljava/lang/Thread;.start:()V // method@5d3e │ │ -4974fa: 0e00 |0087: return-void │ │ +4973d8: |[4973d8] org.purple.smokestack.Settings.addParticipant:()V │ │ +4973e8: 6e10 fed1 0900 |0000: invoke-virtual {v9}, Lorg/purple/smokestack/Settings;.isFinishing:()Z // method@d1fe │ │ +4973ee: 0a00 |0003: move-result v0 │ │ +4973f0: 3800 0300 |0004: if-eqz v0, 0007 // +0003 │ │ +4973f4: 0e00 |0006: return-void │ │ +4973f6: 1400 8d00 087f |0007: const v0, #float 1.80778e+38 // #7f08008d │ │ +4973fc: 6e20 f6d1 0900 |000a: invoke-virtual {v9, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497402: 0c00 |000d: move-result-object v0 │ │ +497404: 1f00 9c0a |000e: check-cast v0, Landroid/widget/TextView; // type@0a9c │ │ +497408: 6e10 275b 0000 |0010: invoke-virtual {v0}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ +49740e: 0c00 |0013: move-result-object v0 │ │ +497410: 7210 1b5c 0000 |0014: invoke-interface {v0}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ +497416: 0c00 |0017: move-result-object v0 │ │ +497418: 1a01 3e00 |0018: const-string v1, " " // string@003e │ │ +49741c: 1a02 0000 |001a: const-string v2, "" // string@0000 │ │ +497420: 6e30 ec5c 1002 |001c: invoke-virtual {v0, v1, v2}, Ljava/lang/String;.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; // method@5cec │ │ +497426: 0c00 |001f: move-result-object v0 │ │ +497428: 1a01 b804 |0020: const-string v1, "-" // string@04b8 │ │ +49742c: 6e30 ec5c 1002 |0022: invoke-virtual {v0, v1, v2}, Ljava/lang/String;.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; // method@5cec │ │ +497432: 0c00 |0025: move-result-object v0 │ │ +497434: 1a01 0109 |0026: const-string v1, ":" // string@0901 │ │ +497438: 6e30 ec5c 1002 |0028: invoke-virtual {v0, v1, v2}, Ljava/lang/String;.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; // method@5cec │ │ +49743e: 0c00 |002b: move-result-object v0 │ │ +497440: 6e10 f75c 0000 |002c: invoke-virtual {v0}, Ljava/lang/String;.trim:()Ljava/lang/String; // method@5cf7 │ │ +497446: 0c00 |002f: move-result-object v0 │ │ +497448: 1301 2d00 |0030: const/16 v1, #int 45 // #2d │ │ +49744c: 1242 |0032: const/4 v2, #int 4 // #4 │ │ +49744e: 7130 3bd1 1002 |0033: invoke-static {v0, v1, v2}, Lorg/purple/smokestack/Miscellaneous;.delimitString:(Ljava/lang/String;CI)Ljava/lang/String; // method@d13b │ │ +497454: 0c06 |0036: move-result-object v6 │ │ +497456: 6e10 e95c 0600 |0037: invoke-virtual {v6}, Ljava/lang/String;.length:()I // method@5ce9 │ │ +49745c: 0a00 |003a: move-result v0 │ │ +49745e: 1301 2700 |003b: const/16 v1, #int 39 // #27 │ │ +497462: 3210 0800 |003d: if-eq v0, v1, 0045 // +0008 │ │ +497466: 1a00 8e09 |003f: const-string v0, "A Smoke ID must be of the form HHHH-HHHH-HHHH-HHHH-HHHH-HHHH-HHHH-HHHH." // string@098e │ │ +49746a: 7120 42d1 0900 |0041: invoke-static {v9, v0}, Lorg/purple/smokestack/Miscellaneous;.showErrorDialog:(Landroid/content/Context;Ljava/lang/String;)V // method@d142 │ │ +497470: 0e00 |0044: return-void │ │ +497472: 2208 2e00 |0045: new-instance v8, Landroid/app/ProgressDialog; // type@002e │ │ +497476: 7020 1701 9800 |0047: invoke-direct {v8, v9}, Landroid/app/ProgressDialog;.:(Landroid/content/Context;)V // method@0117 │ │ +49747c: 1200 |004a: const/4 v0, #int 0 // #0 │ │ +49747e: 6e20 1901 0800 |004b: invoke-virtual {v8, v0}, Landroid/app/ProgressDialog;.setCancelable:(Z)V // method@0119 │ │ +497484: 1210 |004e: const/4 v0, #int 1 // #1 │ │ +497486: 6e20 1a01 0800 |004f: invoke-virtual {v8, v0}, Landroid/app/ProgressDialog;.setIndeterminate:(Z)V // method@011a │ │ +49748c: 1a00 841d |0052: const-string v0, "Generating key material. Please be patient and do not rotate the device while the process executes." // string@1d84 │ │ +497490: 6e20 1b01 0800 |0054: invoke-virtual {v8, v0}, Landroid/app/ProgressDialog;.setMessage:(Ljava/lang/CharSequence;)V // method@011b │ │ +497496: 6e10 1c01 0800 |0057: invoke-virtual {v8}, Landroid/app/ProgressDialog;.show:()V // method@011c │ │ +49749c: 2200 ff0a |005a: new-instance v0, Ljava/lang/Thread; // type@0aff │ │ +4974a0: 2201 cf1e |005c: new-instance v1, Lorg/purple/smokestack/Settings$1SingleShot; // type@1ecf │ │ +4974a4: 1402 8c00 087f |005e: const v2, #float 1.80778e+38 // #7f08008c │ │ +4974aa: 6e20 f6d1 2900 |0061: invoke-virtual {v9, v2}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4974b0: 0c02 |0064: move-result-object v2 │ │ +4974b2: 1f02 9c0a |0065: check-cast v2, Landroid/widget/TextView; // type@0a9c │ │ +4974b6: 6e10 275b 0200 |0067: invoke-virtual {v2}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ +4974bc: 0c02 |006a: move-result-object v2 │ │ +4974be: 7210 1b5c 0200 |006b: invoke-interface {v2}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ +4974c4: 0c05 |006e: move-result-object v5 │ │ +4974c6: 1402 0100 087f |006f: const v2, #float 1.80775e+38 // #7f080001 │ │ +4974cc: 6e20 f6d1 2900 |0072: invoke-virtual {v9, v2}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4974d2: 0c02 |0075: move-result-object v2 │ │ +4974d4: 1f02 920a |0076: check-cast v2, Landroid/widget/Switch; // type@0a92 │ │ +4974d8: 6e10 e65a 0200 |0078: invoke-virtual {v2}, Landroid/widget/Switch;.isChecked:()Z // method@5ae6 │ │ +4974de: 0a07 |007b: move-result v7 │ │ +4974e0: 0713 |007c: move-object v3, v1 │ │ +4974e2: 0794 |007d: move-object v4, v9 │ │ +4974e4: 7606 91d1 0300 |007e: invoke-direct/range {v3, v4, v5, v6, v7, v8}, Lorg/purple/smokestack/Settings$1SingleShot;.:(Lorg/purple/smokestack/Settings;Ljava/lang/String;Ljava/lang/String;ZLandroid/app/ProgressDialog;)V // method@d191 │ │ +4974ea: 7020 345d 1000 |0081: invoke-direct {v0, v1}, Ljava/lang/Thread;.:(Ljava/lang/Runnable;)V // method@5d34 │ │ +4974f0: 6e10 3e5d 0000 |0084: invoke-virtual {v0}, Ljava/lang/Thread;.start:()V // method@5d3e │ │ +4974f6: 0e00 |0087: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=397 │ │ 0x000a line=402 │ │ 0x0010 line=405 │ │ 0x001c line=406 │ │ 0x0033 line=405 │ │ @@ -1715101,184 +1715100,184 @@ │ │ type : '(Z)V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 4 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 404 16-bit code units │ │ -4974fc: |[4974fc] org.purple.smokestack.Settings.enableWidgets:(Z)V │ │ -49750c: 1400 1a00 087f |0000: const v0, #float 1.80776e+38 // #7f08001a │ │ -497512: 6e20 f6d1 0200 |0003: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497518: 0c00 |0006: move-result-object v0 │ │ -49751a: 1f00 640a |0007: check-cast v0, Landroid/widget/Button; // type@0a64 │ │ -49751e: 6e20 fc58 3000 |0009: invoke-virtual {v0, v3}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ -497524: 1400 1b00 087f |000c: const v0, #float 1.80776e+38 // #7f08001b │ │ -49752a: 6e20 f6d1 0200 |000f: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497530: 0c00 |0012: move-result-object v0 │ │ -497532: 1f00 640a |0013: check-cast v0, Landroid/widget/Button; // type@0a64 │ │ -497536: 6e20 fc58 3000 |0015: invoke-virtual {v0, v3}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ -49753c: 1400 1c00 087f |0018: const v0, #float 1.80776e+38 // #7f08001c │ │ -497542: 6e20 f6d1 0200 |001b: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497548: 0c00 |001e: move-result-object v0 │ │ -49754a: 1f00 640a |001f: check-cast v0, Landroid/widget/Button; // type@0a64 │ │ -49754e: 6e20 fc58 3000 |0021: invoke-virtual {v0, v3}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ -497554: 1400 9b00 087f |0024: const v0, #float 1.80778e+38 // #7f08009b │ │ -49755a: 6e20 f6d1 0200 |0027: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497560: 0c00 |002a: move-result-object v0 │ │ -497562: 1f00 640a |002b: check-cast v0, Landroid/widget/Button; // type@0a64 │ │ -497566: 6e20 fc58 3000 |002d: invoke-virtual {v0, v3}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ -49756c: 1400 9c00 087f |0030: const v0, #float 1.80778e+38 // #7f08009c │ │ -497572: 6e20 f6d1 0200 |0033: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497578: 0c00 |0036: move-result-object v0 │ │ -49757a: 1f00 640a |0037: check-cast v0, Landroid/widget/Button; // type@0a64 │ │ -49757e: 6e20 fc58 3000 |0039: invoke-virtual {v0, v3}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ -497584: 1400 9d00 087f |003c: const v0, #float 1.80778e+38 // #7f08009d │ │ -49758a: 6e20 f6d1 0200 |003f: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497590: 0c00 |0042: move-result-object v0 │ │ -497592: 1f00 640a |0043: check-cast v0, Landroid/widget/Button; // type@0a64 │ │ -497596: 6e20 fc58 3000 |0045: invoke-virtual {v0, v3}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ -49759c: 1400 9e00 087f |0048: const v0, #float 1.80778e+38 // #7f08009e │ │ -4975a2: 6e20 f6d1 0200 |004b: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4975a8: 0c00 |004e: move-result-object v0 │ │ -4975aa: 1f00 640a |004f: check-cast v0, Landroid/widget/Button; // type@0a64 │ │ -4975ae: 6e20 fc58 3000 |0051: invoke-virtual {v0, v3}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ -4975b4: 1400 a000 087f |0054: const v0, #float 1.80778e+38 // #7f0800a0 │ │ -4975ba: 6e20 f6d1 0200 |0057: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4975c0: 0c00 |005a: move-result-object v0 │ │ -4975c2: 1f00 640a |005b: check-cast v0, Landroid/widget/Button; // type@0a64 │ │ -4975c6: 6e20 fc58 3000 |005d: invoke-virtual {v0, v3}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ -4975cc: 1400 a100 087f |0060: const v0, #float 1.80778e+38 // #7f0800a1 │ │ -4975d2: 6e20 f6d1 0200 |0063: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4975d8: 0c00 |0066: move-result-object v0 │ │ -4975da: 1f00 640a |0067: check-cast v0, Landroid/widget/Button; // type@0a64 │ │ -4975de: 6e20 fc58 3000 |0069: invoke-virtual {v0, v3}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ -4975e4: 1400 a200 087f |006c: const v0, #float 1.80778e+38 // #7f0800a2 │ │ -4975ea: 6e20 f6d1 0200 |006f: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4975f0: 0c00 |0072: move-result-object v0 │ │ -4975f2: 1f00 640a |0073: check-cast v0, Landroid/widget/Button; // type@0a64 │ │ -4975f6: 6e20 fc58 3000 |0075: invoke-virtual {v0, v3}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ -4975fc: 1400 a600 087f |0078: const v0, #float 1.80778e+38 // #7f0800a6 │ │ -497602: 6e20 f6d1 0200 |007b: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497608: 0c00 |007e: move-result-object v0 │ │ -49760a: 1f00 640a |007f: check-cast v0, Landroid/widget/Button; // type@0a64 │ │ -49760e: 6e20 fc58 3000 |0081: invoke-virtual {v0, v3}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ -497614: 1400 0100 087f |0084: const v0, #float 1.80775e+38 // #7f080001 │ │ -49761a: 6e20 f6d1 0200 |0087: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497620: 0c00 |008a: move-result-object v0 │ │ -497622: 1f00 920a |008b: check-cast v0, Landroid/widget/Switch; // type@0a92 │ │ -497626: df01 0301 |008d: xor-int/lit8 v1, v3, #int 1 // #01 │ │ -49762a: 6e20 e75a 1000 |008f: invoke-virtual {v0, v1}, Landroid/widget/Switch;.setChecked:(Z)V // method@5ae7 │ │ -497630: 6e20 e85a 3000 |0092: invoke-virtual {v0, v3}, Landroid/widget/Switch;.setEnabled:(Z)V // method@5ae8 │ │ -497636: 1400 8500 087f |0095: const v0, #float 1.80778e+38 // #7f080085 │ │ -49763c: 6e20 f6d1 0200 |0098: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497642: 0c00 |009b: move-result-object v0 │ │ -497644: 1f00 920a |009c: check-cast v0, Landroid/widget/Switch; // type@0a92 │ │ -497648: df01 0301 |009e: xor-int/lit8 v1, v3, #int 1 // #01 │ │ -49764c: 6e20 e75a 1000 |00a0: invoke-virtual {v0, v1}, Landroid/widget/Switch;.setChecked:(Z)V // method@5ae7 │ │ -497652: 6e20 e85a 3000 |00a3: invoke-virtual {v0, v3}, Landroid/widget/Switch;.setEnabled:(Z)V // method@5ae8 │ │ -497658: 1401 b800 087f |00a6: const v1, #float 1.80779e+38 // #7f0800b8 │ │ -49765e: 6e20 f6d1 1200 |00a9: invoke-virtual {v2, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497664: 0c01 |00ac: move-result-object v1 │ │ -497666: 1f01 640a |00ad: check-cast v1, Landroid/widget/Button; // type@0a64 │ │ -49766a: 6e10 e65a 0000 |00af: invoke-virtual {v0}, Landroid/widget/Switch;.isChecked:()Z // method@5ae6 │ │ -497670: 0a00 |00b2: move-result v0 │ │ -497672: 6e20 fc58 0100 |00b3: invoke-virtual {v1, v0}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ -497678: 1400 9400 087f |00b6: const v0, #float 1.80778e+38 // #7f080094 │ │ -49767e: 6e20 f6d1 0200 |00b9: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497684: 0c00 |00bc: move-result-object v0 │ │ -497686: 1f00 920a |00bd: check-cast v0, Landroid/widget/Switch; // type@0a92 │ │ -49768a: df01 0301 |00bf: xor-int/lit8 v1, v3, #int 1 // #01 │ │ -49768e: 6e20 e75a 1000 |00c1: invoke-virtual {v0, v1}, Landroid/widget/Switch;.setChecked:(Z)V // method@5ae7 │ │ -497694: 6e20 e85a 3000 |00c4: invoke-virtual {v0, v3}, Landroid/widget/Switch;.setEnabled:(Z)V // method@5ae8 │ │ -49769a: 1400 6900 087f |00c7: const v0, #float 1.80777e+38 // #7f080069 │ │ -4976a0: 6e20 f6d1 0200 |00ca: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4976a6: 0c00 |00cd: move-result-object v0 │ │ -4976a8: 1f00 830a |00ce: check-cast v0, Landroid/widget/RadioButton; // type@0a83 │ │ -4976ac: 6e20 775a 3000 |00d0: invoke-virtual {v0, v3}, Landroid/widget/RadioButton;.setEnabled:(Z)V // method@5a77 │ │ -4976b2: 1400 6a00 087f |00d3: const v0, #float 1.80777e+38 // #7f08006a │ │ -4976b8: 6e20 f6d1 0200 |00d6: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4976be: 0c00 |00d9: move-result-object v0 │ │ -4976c0: 1f00 830a |00da: check-cast v0, Landroid/widget/RadioButton; // type@0a83 │ │ -4976c4: 6e20 775a 3000 |00dc: invoke-virtual {v0, v3}, Landroid/widget/RadioButton;.setEnabled:(Z)V // method@5a77 │ │ -4976ca: 1400 7900 087f |00df: const v0, #float 1.80777e+38 // #7f080079 │ │ -4976d0: 6e20 f6d1 0200 |00e2: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4976d6: 0c00 |00e5: move-result-object v0 │ │ -4976d8: 1f00 830a |00e6: check-cast v0, Landroid/widget/RadioButton; // type@0a83 │ │ -4976dc: 6e20 775a 3000 |00e8: invoke-virtual {v0, v3}, Landroid/widget/RadioButton;.setEnabled:(Z)V // method@5a77 │ │ -4976e2: 1400 7a00 087f |00eb: const v0, #float 1.80777e+38 // #7f08007a │ │ -4976e8: 6e20 f6d1 0200 |00ee: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4976ee: 0c00 |00f1: move-result-object v0 │ │ -4976f0: 1f00 830a |00f2: check-cast v0, Landroid/widget/RadioButton; // type@0a83 │ │ -4976f4: 6e20 775a 3000 |00f4: invoke-virtual {v0, v3}, Landroid/widget/RadioButton;.setEnabled:(Z)V // method@5a77 │ │ -4976fa: 1400 7e00 087f |00f7: const v0, #float 1.80778e+38 // #7f08007e │ │ -497700: 6e20 f6d1 0200 |00fa: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497706: 0c00 |00fd: move-result-object v0 │ │ -497708: 1f00 900a |00fe: check-cast v0, Landroid/widget/Spinner; // type@0a90 │ │ -49770c: 6e20 d45a 3000 |0100: invoke-virtual {v0, v3}, Landroid/widget/Spinner;.setEnabled:(Z)V // method@5ad4 │ │ -497712: 1400 9900 087f |0103: const v0, #float 1.80778e+38 // #7f080099 │ │ -497718: 6e20 f6d1 0200 |0106: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -49771e: 0c00 |0109: move-result-object v0 │ │ -497720: 1f00 900a |010a: check-cast v0, Landroid/widget/Spinner; // type@0a90 │ │ -497724: 6e20 d45a 3000 |010c: invoke-virtual {v0, v3}, Landroid/widget/Spinner;.setEnabled:(Z)V // method@5ad4 │ │ -49772a: 1400 6800 087f |010f: const v0, #float 1.80777e+38 // #7f080068 │ │ -497730: 6e20 f6d1 0200 |0112: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497736: 0c00 |0115: move-result-object v0 │ │ -497738: 1f00 9c0a |0116: check-cast v0, Landroid/widget/TextView; // type@0a9c │ │ -49773c: 6e20 3d5b 3000 |0118: invoke-virtual {v0, v3}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ -497742: 1400 6d00 087f |011b: const v0, #float 1.80777e+38 // #7f08006d │ │ -497748: 6e20 f6d1 0200 |011e: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -49774e: 0c00 |0121: move-result-object v0 │ │ -497750: 1f00 9c0a |0122: check-cast v0, Landroid/widget/TextView; // type@0a9c │ │ -497754: 6e20 3d5b 3000 |0124: invoke-virtual {v0, v3}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ -49775a: 1400 6e00 087f |0127: const v0, #float 1.80777e+38 // #7f08006e │ │ -497760: 6e20 f6d1 0200 |012a: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497766: 0c00 |012d: move-result-object v0 │ │ -497768: 1f00 9c0a |012e: check-cast v0, Landroid/widget/TextView; // type@0a9c │ │ -49776c: 6e20 3d5b 3000 |0130: invoke-virtual {v0, v3}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ -497772: 1400 7800 087f |0133: const v0, #float 1.80777e+38 // #7f080078 │ │ -497778: 6e20 f6d1 0200 |0136: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -49777e: 0c00 |0139: move-result-object v0 │ │ -497780: 1f00 9c0a |013a: check-cast v0, Landroid/widget/TextView; // type@0a9c │ │ -497784: 6e20 3d5b 3000 |013c: invoke-virtual {v0, v3}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ -49778a: 1400 7c00 087f |013f: const v0, #float 1.80778e+38 // #7f08007c │ │ -497790: 6e20 f6d1 0200 |0142: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497796: 0c00 |0145: move-result-object v0 │ │ -497798: 1f00 9c0a |0146: check-cast v0, Landroid/widget/TextView; // type@0a9c │ │ -49779c: 6e20 3d5b 3000 |0148: invoke-virtual {v0, v3}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ -4977a2: 1400 7d00 087f |014b: const v0, #float 1.80778e+38 // #7f08007d │ │ -4977a8: 6e20 f6d1 0200 |014e: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4977ae: 0c00 |0151: move-result-object v0 │ │ -4977b0: 1f00 9c0a |0152: check-cast v0, Landroid/widget/TextView; // type@0a9c │ │ -4977b4: 6e20 3d5b 3000 |0154: invoke-virtual {v0, v3}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ -4977ba: 1400 8600 087f |0157: const v0, #float 1.80778e+38 // #7f080086 │ │ -4977c0: 6e20 f6d1 0200 |015a: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4977c6: 0c00 |015d: move-result-object v0 │ │ -4977c8: 1f00 9c0a |015e: check-cast v0, Landroid/widget/TextView; // type@0a9c │ │ -4977cc: 6e20 3d5b 3000 |0160: invoke-virtual {v0, v3}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ -4977d2: 1400 8c00 087f |0163: const v0, #float 1.80778e+38 // #7f08008c │ │ -4977d8: 6e20 f6d1 0200 |0166: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4977de: 0c00 |0169: move-result-object v0 │ │ -4977e0: 1f00 9c0a |016a: check-cast v0, Landroid/widget/TextView; // type@0a9c │ │ -4977e4: 6e20 3d5b 3000 |016c: invoke-virtual {v0, v3}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ -4977ea: 1400 8d00 087f |016f: const v0, #float 1.80778e+38 // #7f08008d │ │ -4977f0: 6e20 f6d1 0200 |0172: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4977f6: 0c00 |0175: move-result-object v0 │ │ -4977f8: 1f00 9c0a |0176: check-cast v0, Landroid/widget/TextView; // type@0a9c │ │ -4977fc: 6e20 3d5b 3000 |0178: invoke-virtual {v0, v3}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ -497802: 1400 9700 087f |017b: const v0, #float 1.80778e+38 // #7f080097 │ │ -497808: 6e20 f6d1 0200 |017e: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -49780e: 0c00 |0181: move-result-object v0 │ │ -497810: 1f00 9c0a |0182: check-cast v0, Landroid/widget/TextView; // type@0a9c │ │ -497814: 6e20 3d5b 3000 |0184: invoke-virtual {v0, v3}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ -49781a: 1400 9800 087f |0187: const v0, #float 1.80778e+38 // #7f080098 │ │ -497820: 6e20 f6d1 0200 |018a: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497826: 0c00 |018d: move-result-object v0 │ │ -497828: 1f00 9c0a |018e: check-cast v0, Landroid/widget/TextView; // type@0a9c │ │ -49782c: 6e20 3d5b 3000 |0190: invoke-virtual {v0, v3}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ -497832: 0e00 |0193: return-void │ │ +4974f8: |[4974f8] org.purple.smokestack.Settings.enableWidgets:(Z)V │ │ +497508: 1400 1a00 087f |0000: const v0, #float 1.80776e+38 // #7f08001a │ │ +49750e: 6e20 f6d1 0200 |0003: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497514: 0c00 |0006: move-result-object v0 │ │ +497516: 1f00 640a |0007: check-cast v0, Landroid/widget/Button; // type@0a64 │ │ +49751a: 6e20 fc58 3000 |0009: invoke-virtual {v0, v3}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ +497520: 1400 1b00 087f |000c: const v0, #float 1.80776e+38 // #7f08001b │ │ +497526: 6e20 f6d1 0200 |000f: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +49752c: 0c00 |0012: move-result-object v0 │ │ +49752e: 1f00 640a |0013: check-cast v0, Landroid/widget/Button; // type@0a64 │ │ +497532: 6e20 fc58 3000 |0015: invoke-virtual {v0, v3}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ +497538: 1400 1c00 087f |0018: const v0, #float 1.80776e+38 // #7f08001c │ │ +49753e: 6e20 f6d1 0200 |001b: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497544: 0c00 |001e: move-result-object v0 │ │ +497546: 1f00 640a |001f: check-cast v0, Landroid/widget/Button; // type@0a64 │ │ +49754a: 6e20 fc58 3000 |0021: invoke-virtual {v0, v3}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ +497550: 1400 9b00 087f |0024: const v0, #float 1.80778e+38 // #7f08009b │ │ +497556: 6e20 f6d1 0200 |0027: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +49755c: 0c00 |002a: move-result-object v0 │ │ +49755e: 1f00 640a |002b: check-cast v0, Landroid/widget/Button; // type@0a64 │ │ +497562: 6e20 fc58 3000 |002d: invoke-virtual {v0, v3}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ +497568: 1400 9c00 087f |0030: const v0, #float 1.80778e+38 // #7f08009c │ │ +49756e: 6e20 f6d1 0200 |0033: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497574: 0c00 |0036: move-result-object v0 │ │ +497576: 1f00 640a |0037: check-cast v0, Landroid/widget/Button; // type@0a64 │ │ +49757a: 6e20 fc58 3000 |0039: invoke-virtual {v0, v3}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ +497580: 1400 9d00 087f |003c: const v0, #float 1.80778e+38 // #7f08009d │ │ +497586: 6e20 f6d1 0200 |003f: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +49758c: 0c00 |0042: move-result-object v0 │ │ +49758e: 1f00 640a |0043: check-cast v0, Landroid/widget/Button; // type@0a64 │ │ +497592: 6e20 fc58 3000 |0045: invoke-virtual {v0, v3}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ +497598: 1400 9e00 087f |0048: const v0, #float 1.80778e+38 // #7f08009e │ │ +49759e: 6e20 f6d1 0200 |004b: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4975a4: 0c00 |004e: move-result-object v0 │ │ +4975a6: 1f00 640a |004f: check-cast v0, Landroid/widget/Button; // type@0a64 │ │ +4975aa: 6e20 fc58 3000 |0051: invoke-virtual {v0, v3}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ +4975b0: 1400 a000 087f |0054: const v0, #float 1.80778e+38 // #7f0800a0 │ │ +4975b6: 6e20 f6d1 0200 |0057: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4975bc: 0c00 |005a: move-result-object v0 │ │ +4975be: 1f00 640a |005b: check-cast v0, Landroid/widget/Button; // type@0a64 │ │ +4975c2: 6e20 fc58 3000 |005d: invoke-virtual {v0, v3}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ +4975c8: 1400 a100 087f |0060: const v0, #float 1.80778e+38 // #7f0800a1 │ │ +4975ce: 6e20 f6d1 0200 |0063: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4975d4: 0c00 |0066: move-result-object v0 │ │ +4975d6: 1f00 640a |0067: check-cast v0, Landroid/widget/Button; // type@0a64 │ │ +4975da: 6e20 fc58 3000 |0069: invoke-virtual {v0, v3}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ +4975e0: 1400 a200 087f |006c: const v0, #float 1.80778e+38 // #7f0800a2 │ │ +4975e6: 6e20 f6d1 0200 |006f: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4975ec: 0c00 |0072: move-result-object v0 │ │ +4975ee: 1f00 640a |0073: check-cast v0, Landroid/widget/Button; // type@0a64 │ │ +4975f2: 6e20 fc58 3000 |0075: invoke-virtual {v0, v3}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ +4975f8: 1400 a600 087f |0078: const v0, #float 1.80778e+38 // #7f0800a6 │ │ +4975fe: 6e20 f6d1 0200 |007b: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497604: 0c00 |007e: move-result-object v0 │ │ +497606: 1f00 640a |007f: check-cast v0, Landroid/widget/Button; // type@0a64 │ │ +49760a: 6e20 fc58 3000 |0081: invoke-virtual {v0, v3}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ +497610: 1400 0100 087f |0084: const v0, #float 1.80775e+38 // #7f080001 │ │ +497616: 6e20 f6d1 0200 |0087: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +49761c: 0c00 |008a: move-result-object v0 │ │ +49761e: 1f00 920a |008b: check-cast v0, Landroid/widget/Switch; // type@0a92 │ │ +497622: df01 0301 |008d: xor-int/lit8 v1, v3, #int 1 // #01 │ │ +497626: 6e20 e75a 1000 |008f: invoke-virtual {v0, v1}, Landroid/widget/Switch;.setChecked:(Z)V // method@5ae7 │ │ +49762c: 6e20 e85a 3000 |0092: invoke-virtual {v0, v3}, Landroid/widget/Switch;.setEnabled:(Z)V // method@5ae8 │ │ +497632: 1400 8500 087f |0095: const v0, #float 1.80778e+38 // #7f080085 │ │ +497638: 6e20 f6d1 0200 |0098: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +49763e: 0c00 |009b: move-result-object v0 │ │ +497640: 1f00 920a |009c: check-cast v0, Landroid/widget/Switch; // type@0a92 │ │ +497644: df01 0301 |009e: xor-int/lit8 v1, v3, #int 1 // #01 │ │ +497648: 6e20 e75a 1000 |00a0: invoke-virtual {v0, v1}, Landroid/widget/Switch;.setChecked:(Z)V // method@5ae7 │ │ +49764e: 6e20 e85a 3000 |00a3: invoke-virtual {v0, v3}, Landroid/widget/Switch;.setEnabled:(Z)V // method@5ae8 │ │ +497654: 1401 b800 087f |00a6: const v1, #float 1.80779e+38 // #7f0800b8 │ │ +49765a: 6e20 f6d1 1200 |00a9: invoke-virtual {v2, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497660: 0c01 |00ac: move-result-object v1 │ │ +497662: 1f01 640a |00ad: check-cast v1, Landroid/widget/Button; // type@0a64 │ │ +497666: 6e10 e65a 0000 |00af: invoke-virtual {v0}, Landroid/widget/Switch;.isChecked:()Z // method@5ae6 │ │ +49766c: 0a00 |00b2: move-result v0 │ │ +49766e: 6e20 fc58 0100 |00b3: invoke-virtual {v1, v0}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ +497674: 1400 9400 087f |00b6: const v0, #float 1.80778e+38 // #7f080094 │ │ +49767a: 6e20 f6d1 0200 |00b9: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497680: 0c00 |00bc: move-result-object v0 │ │ +497682: 1f00 920a |00bd: check-cast v0, Landroid/widget/Switch; // type@0a92 │ │ +497686: df01 0301 |00bf: xor-int/lit8 v1, v3, #int 1 // #01 │ │ +49768a: 6e20 e75a 1000 |00c1: invoke-virtual {v0, v1}, Landroid/widget/Switch;.setChecked:(Z)V // method@5ae7 │ │ +497690: 6e20 e85a 3000 |00c4: invoke-virtual {v0, v3}, Landroid/widget/Switch;.setEnabled:(Z)V // method@5ae8 │ │ +497696: 1400 6900 087f |00c7: const v0, #float 1.80777e+38 // #7f080069 │ │ +49769c: 6e20 f6d1 0200 |00ca: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4976a2: 0c00 |00cd: move-result-object v0 │ │ +4976a4: 1f00 830a |00ce: check-cast v0, Landroid/widget/RadioButton; // type@0a83 │ │ +4976a8: 6e20 775a 3000 |00d0: invoke-virtual {v0, v3}, Landroid/widget/RadioButton;.setEnabled:(Z)V // method@5a77 │ │ +4976ae: 1400 6a00 087f |00d3: const v0, #float 1.80777e+38 // #7f08006a │ │ +4976b4: 6e20 f6d1 0200 |00d6: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4976ba: 0c00 |00d9: move-result-object v0 │ │ +4976bc: 1f00 830a |00da: check-cast v0, Landroid/widget/RadioButton; // type@0a83 │ │ +4976c0: 6e20 775a 3000 |00dc: invoke-virtual {v0, v3}, Landroid/widget/RadioButton;.setEnabled:(Z)V // method@5a77 │ │ +4976c6: 1400 7900 087f |00df: const v0, #float 1.80777e+38 // #7f080079 │ │ +4976cc: 6e20 f6d1 0200 |00e2: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4976d2: 0c00 |00e5: move-result-object v0 │ │ +4976d4: 1f00 830a |00e6: check-cast v0, Landroid/widget/RadioButton; // type@0a83 │ │ +4976d8: 6e20 775a 3000 |00e8: invoke-virtual {v0, v3}, Landroid/widget/RadioButton;.setEnabled:(Z)V // method@5a77 │ │ +4976de: 1400 7a00 087f |00eb: const v0, #float 1.80777e+38 // #7f08007a │ │ +4976e4: 6e20 f6d1 0200 |00ee: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4976ea: 0c00 |00f1: move-result-object v0 │ │ +4976ec: 1f00 830a |00f2: check-cast v0, Landroid/widget/RadioButton; // type@0a83 │ │ +4976f0: 6e20 775a 3000 |00f4: invoke-virtual {v0, v3}, Landroid/widget/RadioButton;.setEnabled:(Z)V // method@5a77 │ │ +4976f6: 1400 7e00 087f |00f7: const v0, #float 1.80778e+38 // #7f08007e │ │ +4976fc: 6e20 f6d1 0200 |00fa: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497702: 0c00 |00fd: move-result-object v0 │ │ +497704: 1f00 900a |00fe: check-cast v0, Landroid/widget/Spinner; // type@0a90 │ │ +497708: 6e20 d45a 3000 |0100: invoke-virtual {v0, v3}, Landroid/widget/Spinner;.setEnabled:(Z)V // method@5ad4 │ │ +49770e: 1400 9900 087f |0103: const v0, #float 1.80778e+38 // #7f080099 │ │ +497714: 6e20 f6d1 0200 |0106: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +49771a: 0c00 |0109: move-result-object v0 │ │ +49771c: 1f00 900a |010a: check-cast v0, Landroid/widget/Spinner; // type@0a90 │ │ +497720: 6e20 d45a 3000 |010c: invoke-virtual {v0, v3}, Landroid/widget/Spinner;.setEnabled:(Z)V // method@5ad4 │ │ +497726: 1400 6800 087f |010f: const v0, #float 1.80777e+38 // #7f080068 │ │ +49772c: 6e20 f6d1 0200 |0112: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497732: 0c00 |0115: move-result-object v0 │ │ +497734: 1f00 9c0a |0116: check-cast v0, Landroid/widget/TextView; // type@0a9c │ │ +497738: 6e20 3d5b 3000 |0118: invoke-virtual {v0, v3}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ +49773e: 1400 6d00 087f |011b: const v0, #float 1.80777e+38 // #7f08006d │ │ +497744: 6e20 f6d1 0200 |011e: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +49774a: 0c00 |0121: move-result-object v0 │ │ +49774c: 1f00 9c0a |0122: check-cast v0, Landroid/widget/TextView; // type@0a9c │ │ +497750: 6e20 3d5b 3000 |0124: invoke-virtual {v0, v3}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ +497756: 1400 6e00 087f |0127: const v0, #float 1.80777e+38 // #7f08006e │ │ +49775c: 6e20 f6d1 0200 |012a: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497762: 0c00 |012d: move-result-object v0 │ │ +497764: 1f00 9c0a |012e: check-cast v0, Landroid/widget/TextView; // type@0a9c │ │ +497768: 6e20 3d5b 3000 |0130: invoke-virtual {v0, v3}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ +49776e: 1400 7800 087f |0133: const v0, #float 1.80777e+38 // #7f080078 │ │ +497774: 6e20 f6d1 0200 |0136: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +49777a: 0c00 |0139: move-result-object v0 │ │ +49777c: 1f00 9c0a |013a: check-cast v0, Landroid/widget/TextView; // type@0a9c │ │ +497780: 6e20 3d5b 3000 |013c: invoke-virtual {v0, v3}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ +497786: 1400 7c00 087f |013f: const v0, #float 1.80778e+38 // #7f08007c │ │ +49778c: 6e20 f6d1 0200 |0142: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497792: 0c00 |0145: move-result-object v0 │ │ +497794: 1f00 9c0a |0146: check-cast v0, Landroid/widget/TextView; // type@0a9c │ │ +497798: 6e20 3d5b 3000 |0148: invoke-virtual {v0, v3}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ +49779e: 1400 7d00 087f |014b: const v0, #float 1.80778e+38 // #7f08007d │ │ +4977a4: 6e20 f6d1 0200 |014e: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4977aa: 0c00 |0151: move-result-object v0 │ │ +4977ac: 1f00 9c0a |0152: check-cast v0, Landroid/widget/TextView; // type@0a9c │ │ +4977b0: 6e20 3d5b 3000 |0154: invoke-virtual {v0, v3}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ +4977b6: 1400 8600 087f |0157: const v0, #float 1.80778e+38 // #7f080086 │ │ +4977bc: 6e20 f6d1 0200 |015a: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4977c2: 0c00 |015d: move-result-object v0 │ │ +4977c4: 1f00 9c0a |015e: check-cast v0, Landroid/widget/TextView; // type@0a9c │ │ +4977c8: 6e20 3d5b 3000 |0160: invoke-virtual {v0, v3}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ +4977ce: 1400 8c00 087f |0163: const v0, #float 1.80778e+38 // #7f08008c │ │ +4977d4: 6e20 f6d1 0200 |0166: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4977da: 0c00 |0169: move-result-object v0 │ │ +4977dc: 1f00 9c0a |016a: check-cast v0, Landroid/widget/TextView; // type@0a9c │ │ +4977e0: 6e20 3d5b 3000 |016c: invoke-virtual {v0, v3}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ +4977e6: 1400 8d00 087f |016f: const v0, #float 1.80778e+38 // #7f08008d │ │ +4977ec: 6e20 f6d1 0200 |0172: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4977f2: 0c00 |0175: move-result-object v0 │ │ +4977f4: 1f00 9c0a |0176: check-cast v0, Landroid/widget/TextView; // type@0a9c │ │ +4977f8: 6e20 3d5b 3000 |0178: invoke-virtual {v0, v3}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ +4977fe: 1400 9700 087f |017b: const v0, #float 1.80778e+38 // #7f080097 │ │ +497804: 6e20 f6d1 0200 |017e: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +49780a: 0c00 |0181: move-result-object v0 │ │ +49780c: 1f00 9c0a |0182: check-cast v0, Landroid/widget/TextView; // type@0a9c │ │ +497810: 6e20 3d5b 3000 |0184: invoke-virtual {v0, v3}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ +497816: 1400 9800 087f |0187: const v0, #float 1.80778e+38 // #7f080098 │ │ +49781c: 6e20 f6d1 0200 |018a: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497822: 0c00 |018d: move-result-object v0 │ │ +497824: 1f00 9c0a |018e: check-cast v0, Landroid/widget/TextView; // type@0a9c │ │ +497828: 6e20 3d5b 3000 |0190: invoke-virtual {v0, v3}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ +49782e: 0e00 |0193: return-void │ │ catches : (none) │ │ positions : │ │ 0x0003 line=500 │ │ 0x0009 line=501 │ │ 0x000f line=502 │ │ 0x0015 line=503 │ │ 0x001b line=504 │ │ @@ -1715353,27 +1715352,27 @@ │ │ type : '(Ljava/lang/String;)Z' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 5 │ │ ins : 2 │ │ outs : 4 │ │ insns size : 21 16-bit code units │ │ -4969d8: |[4969d8] org.purple.smokestack.Settings.generateOzone:(Ljava/lang/String;)Z │ │ -4969e8: 7110 7fd0 0400 |0000: invoke-static {v4}, Lorg/purple/smokestack/Cryptography;.generateOzone:(Ljava/lang/String;)[B // method@d07f │ │ -4969ee: 0c00 |0003: move-result-object v0 │ │ -4969f0: 3800 0f00 |0004: if-eqz v0, 0013 // +000f │ │ -4969f4: 5431 3269 |0006: iget-object v1, v3, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ -4969f8: 6202 3c69 |0008: sget-object v2, Lorg/purple/smokestack/Settings;.s_cryptography:Lorg/purple/smokestack/Cryptography; // field@693c │ │ -4969fc: 6e10 f75c 0400 |000a: invoke-virtual {v4}, Ljava/lang/String;.trim:()Ljava/lang/String; // method@5cf7 │ │ -496a02: 0c04 |000d: move-result-object v4 │ │ -496a04: 6e40 e6d0 2104 |000e: invoke-virtual {v1, v2, v4, v0}, Lorg/purple/smokestack/Database;.writeOzone:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;[B)Z // method@d0e6 │ │ -496a0a: 0a04 |0011: move-result v4 │ │ -496a0c: 0f04 |0012: return v4 │ │ -496a0e: 1204 |0013: const/4 v4, #int 0 // #0 │ │ -496a10: 0f04 |0014: return v4 │ │ +4969d4: |[4969d4] org.purple.smokestack.Settings.generateOzone:(Ljava/lang/String;)Z │ │ +4969e4: 7110 7fd0 0400 |0000: invoke-static {v4}, Lorg/purple/smokestack/Cryptography;.generateOzone:(Ljava/lang/String;)[B // method@d07f │ │ +4969ea: 0c00 |0003: move-result-object v0 │ │ +4969ec: 3800 0f00 |0004: if-eqz v0, 0013 // +000f │ │ +4969f0: 5431 3269 |0006: iget-object v1, v3, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ +4969f4: 6202 3c69 |0008: sget-object v2, Lorg/purple/smokestack/Settings;.s_cryptography:Lorg/purple/smokestack/Cryptography; // field@693c │ │ +4969f8: 6e10 f75c 0400 |000a: invoke-virtual {v4}, Ljava/lang/String;.trim:()Ljava/lang/String; // method@5cf7 │ │ +4969fe: 0c04 |000d: move-result-object v4 │ │ +496a00: 6e40 e6d0 2104 |000e: invoke-virtual {v1, v2, v4, v0}, Lorg/purple/smokestack/Database;.writeOzone:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;[B)Z // method@d0e6 │ │ +496a06: 0a04 |0011: move-result v4 │ │ +496a08: 0f04 |0012: return v4 │ │ +496a0a: 1204 |0013: const/4 v4, #int 0 // #0 │ │ +496a0c: 0f04 |0014: return v4 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=290 │ │ 0x0006 line=293 │ │ 0x000a line=294 │ │ locals : │ │ 0x0000 - 0x0015 reg=3 this Lorg/purple/smokestack/Settings; │ │ @@ -1715384,397 +1715383,397 @@ │ │ type : '(Ljava/util/ArrayList;)V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 23 │ │ ins : 2 │ │ outs : 4 │ │ insns size : 795 16-bit code units │ │ -498470: |[498470] org.purple.smokestack.Settings.populateListeners:(Ljava/util/ArrayList;)V │ │ -498480: 0800 1500 |0000: move-object/from16 v0, v21 │ │ -498484: 1401 5b00 087f |0002: const v1, #float 1.80777e+38 // #7f08005b │ │ -49848a: 6e20 f6d1 1000 |0005: invoke-virtual {v0, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -498490: 0c01 |0008: move-result-object v1 │ │ -498492: 1f01 9c0a |0009: check-cast v1, Landroid/widget/TextView; // type@0a9c │ │ -498496: 2202 fc0a |000b: new-instance v2, Ljava/lang/StringBuilder; // type@0afc │ │ -49849a: 7010 125d 0200 |000d: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ -4984a0: 1a03 3b20 |0010: const-string v3, "Internal Listeners Container Size: " // string@203b │ │ -4984a4: 6e20 1d5d 3200 |0012: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4984aa: 7100 02d1 0000 |0015: invoke-static {}, Lorg/purple/smokestack/Kernel;.getInstance:()Lorg/purple/smokestack/Kernel; // method@d102 │ │ -4984b0: 0c03 |0018: move-result-object v3 │ │ -4984b2: 6e10 04d1 0300 |0019: invoke-virtual {v3}, Lorg/purple/smokestack/Kernel;.listenersCount:()I // method@d104 │ │ -4984b8: 0a03 |001c: move-result v3 │ │ -4984ba: 6e20 185d 3200 |001d: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@5d18 │ │ -4984c0: 6e10 285d 0200 |0020: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ -4984c6: 0c02 |0023: move-result-object v2 │ │ -4984c8: 6e20 525b 2100 |0024: invoke-virtual {v1, v2}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ -4984ce: 3916 0c00 |0027: if-nez v22, 0033 // +000c │ │ -4984d2: 5401 3269 |0029: iget-object v1, v0, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ -4984d6: 6202 3c69 |002b: sget-object v2, Lorg/purple/smokestack/Settings;.s_cryptography:Lorg/purple/smokestack/Cryptography; // field@693c │ │ -4984da: 12f3 |002d: const/4 v3, #int -1 // #ff │ │ -4984dc: 6e30 c4d0 2103 |002e: invoke-virtual {v1, v2, v3}, Lorg/purple/smokestack/Database;.readListeners:(Lorg/purple/smokestack/Cryptography;I)Ljava/util/ArrayList; // method@d0c4 │ │ -4984e2: 0c01 |0031: move-result-object v1 │ │ -4984e4: 2803 |0032: goto 0035 // +0003 │ │ -4984e6: 0801 1600 |0033: move-object/from16 v1, v22 │ │ -4984ea: 1402 6600 087f |0035: const v2, #float 1.80777e+38 // #7f080066 │ │ -4984f0: 6e20 f6d1 2000 |0038: invoke-virtual {v0, v2}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4984f6: 0c02 |003b: move-result-object v2 │ │ -4984f8: 1f02 980a |003c: check-cast v2, Landroid/widget/TableLayout; // type@0a98 │ │ -4984fc: 3801 d902 |003e: if-eqz v1, 0317 // +02d9 │ │ -498500: 6e10 e15f 0100 |0040: invoke-virtual {v1}, Ljava/util/ArrayList;.size:()I // method@5fe1 │ │ -498506: 0a03 |0043: move-result v3 │ │ -498508: 3903 0400 |0044: if-nez v3, 0048 // +0004 │ │ -49850c: 2900 d102 |0046: goto/16 0317 // +02d1 │ │ -498510: 2203 fc0a |0048: new-instance v3, Ljava/lang/StringBuilder; // type@0afc │ │ -498514: 7010 125d 0300 |004a: invoke-direct {v3}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ -49851a: 6e10 025b 0200 |004d: invoke-virtual {v2}, Landroid/widget/TableLayout;.getChildCount:()I // method@5b02 │ │ -498520: 0a04 |0050: move-result v4 │ │ -498522: 1215 |0051: const/4 v5, #int 1 // #1 │ │ -498524: b154 |0052: sub-int/2addr v4, v5 │ │ -498526: 1a06 b804 |0053: const-string v6, "-" // string@04b8 │ │ -49852a: 1a07 a21f |0055: const-string v7, "IPv6" // string@1fa2 │ │ -49852e: 1a08 0109 |0057: const-string v8, ":" // string@0901 │ │ -498532: 1209 |0059: const/4 v9, #int 0 // #0 │ │ -498534: 3a04 6e00 |005a: if-ltz v4, 00c8 // +006e │ │ -498538: 6e20 015b 4200 |005c: invoke-virtual {v2, v4}, Landroid/widget/TableLayout;.getChildAt:(I)Landroid/view/View; // method@5b01 │ │ -49853e: 0c0a |005f: move-result-object v10 │ │ -498540: 1f0a 9a0a |0060: check-cast v10, Landroid/widget/TableRow; // type@0a9a │ │ -498544: 390a 0300 |0062: if-nez v10, 0065 // +0003 │ │ -498548: 2861 |0064: goto 00c5 // +0061 │ │ -49854a: 6e20 095b 9a00 |0065: invoke-virtual {v10, v9}, Landroid/widget/TableRow;.getChildAt:(I)Landroid/view/View; // method@5b09 │ │ -498550: 0c0b |0068: move-result-object v11 │ │ -498552: 1f0b 920a |0069: check-cast v11, Landroid/widget/Switch; // type@0a92 │ │ -498556: 390b 0600 |006b: if-nez v11, 0071 // +0006 │ │ -49855a: 6e20 045b a200 |006d: invoke-virtual {v2, v10}, Landroid/widget/TableLayout;.removeView:(Landroid/view/View;)V // method@5b04 │ │ -498560: 2855 |0070: goto 00c5 // +0055 │ │ -498562: 6e10 db5f 0100 |0071: invoke-virtual {v1}, Ljava/util/ArrayList;.iterator:()Ljava/util/Iterator; // method@5fdb │ │ -498568: 0c0c |0074: move-result-object v12 │ │ -49856a: 7210 4f60 0c00 |0075: invoke-interface {v12}, Ljava/util/Iterator;.hasNext:()Z // method@604f │ │ -498570: 0a0d |0078: move-result v13 │ │ -498572: 380d 4700 |0079: if-eqz v13, 00c0 // +0047 │ │ -498576: 7210 5060 0c00 |007b: invoke-interface {v12}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@6050 │ │ -49857c: 0c0d |007e: move-result-object v13 │ │ -49857e: 1f0d a21e |007f: check-cast v13, Lorg/purple/smokestack/ListenerElement; // type@1ea2 │ │ -498582: 6e10 245d 0300 |0081: invoke-virtual {v3}, Ljava/lang/StringBuilder;.length:()I // method@5d24 │ │ -498588: 0a0e |0084: move-result v14 │ │ -49858a: 6e30 215d 930e |0085: invoke-virtual {v3, v9, v14}, Ljava/lang/StringBuilder;.delete:(II)Ljava/lang/StringBuilder; // method@5d21 │ │ -498590: 54de 0d60 |0088: iget-object v14, v13, Lorg/purple/smokestack/ListenerElement;.m_localIpAddress:Ljava/lang/String; // field@600d │ │ -498594: 6e20 1d5d e300 |008a: invoke-virtual {v3, v14}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49859a: 54de 0b60 |008d: iget-object v14, v13, Lorg/purple/smokestack/ListenerElement;.m_ipVersion:Ljava/lang/String; // field@600b │ │ -49859e: 6e20 da5c 7e00 |008f: invoke-virtual {v14, v7}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ -4985a4: 0a0e |0092: move-result v14 │ │ -4985a6: 380e 1200 |0093: if-eqz v14, 00a5 // +0012 │ │ -4985aa: 54de 0f60 |0095: iget-object v14, v13, Lorg/purple/smokestack/ListenerElement;.m_localScopeId:Ljava/lang/String; // field@600f │ │ -4985ae: 6e10 e65c 0e00 |0097: invoke-virtual {v14}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ -4985b4: 0a0e |009a: move-result v14 │ │ -4985b6: 390e 0a00 |009b: if-nez v14, 00a5 // +000a │ │ -4985ba: 6e20 1d5d 6300 |009d: invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4985c0: 54de 0f60 |00a0: iget-object v14, v13, Lorg/purple/smokestack/ListenerElement;.m_localScopeId:Ljava/lang/String; // field@600f │ │ -4985c4: 6e20 1d5d e300 |00a2: invoke-virtual {v3, v14}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4985ca: 6e20 1d5d 8300 |00a5: invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4985d0: 54dd 0e60 |00a8: iget-object v13, v13, Lorg/purple/smokestack/ListenerElement;.m_localPort:Ljava/lang/String; // field@600e │ │ -4985d4: 6e20 1d5d d300 |00aa: invoke-virtual {v3, v13}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4985da: 6e10 e55a 0b00 |00ad: invoke-virtual {v11}, Landroid/widget/Switch;.getText:()Ljava/lang/CharSequence; // method@5ae5 │ │ -4985e0: 0c0d |00b0: move-result-object v13 │ │ -4985e2: 7210 1b5c 0d00 |00b1: invoke-interface {v13}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ -4985e8: 0c0d |00b4: move-result-object v13 │ │ -4985ea: 6e10 285d 0300 |00b5: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ -4985f0: 0c0e |00b8: move-result-object v14 │ │ -4985f2: 6e20 d85c ed00 |00b9: invoke-virtual {v13, v14}, Ljava/lang/String;.contains:(Ljava/lang/CharSequence;)Z // method@5cd8 │ │ -4985f8: 0a0d |00bc: move-result v13 │ │ -4985fa: 380d b8ff |00bd: if-eqz v13, 0075 // -0048 │ │ -4985fe: 1219 |00bf: const/4 v9, #int 1 // #1 │ │ -498600: 3909 0500 |00c0: if-nez v9, 00c5 // +0005 │ │ -498604: 6e20 045b a200 |00c2: invoke-virtual {v2, v10}, Landroid/widget/TableLayout;.removeView:(Landroid/view/View;)V // method@5b04 │ │ -49860a: d804 04ff |00c5: add-int/lit8 v4, v4, #int -1 // #ff │ │ -49860e: 288c |00c7: goto 0053 // -0074 │ │ -498610: 6e10 db5f 0100 |00c8: invoke-virtual {v1}, Ljava/util/ArrayList;.iterator:()Ljava/util/Iterator; // method@5fdb │ │ -498616: 0c04 |00cb: move-result-object v4 │ │ -498618: 120a |00cc: const/4 v10, #int 0 // #0 │ │ -49861a: 7210 4f60 0400 |00cd: invoke-interface {v4}, Ljava/util/Iterator;.hasNext:()Z // method@604f │ │ -498620: 0a0b |00d0: move-result v11 │ │ -498622: 380b 4202 |00d1: if-eqz v11, 0313 // +0242 │ │ -498626: 7210 5060 0400 |00d3: invoke-interface {v4}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@6050 │ │ -49862c: 0c0b |00d6: move-result-object v11 │ │ -49862e: 1f0b a21e |00d7: check-cast v11, Lorg/purple/smokestack/ListenerElement; // type@1ea2 │ │ -498632: 390b 0300 |00d9: if-nez v11, 00dc // +0003 │ │ -498636: 28f2 |00db: goto 00cd // -000e │ │ -498638: 6e10 025b 0200 |00dc: invoke-virtual {v2}, Landroid/widget/TableLayout;.getChildCount:()I // method@5b02 │ │ -49863e: 0a0c |00df: move-result v12 │ │ -498640: 120d |00e0: const/4 v13, #int 0 // #0 │ │ -498642: 35cd 5700 |00e1: if-ge v13, v12, 0138 // +0057 │ │ -498646: 6e20 015b d200 |00e3: invoke-virtual {v2, v13}, Landroid/widget/TableLayout;.getChildAt:(I)Landroid/view/View; // method@5b01 │ │ -49864c: 0c0f |00e6: move-result-object v15 │ │ -49864e: 1f0f 9a0a |00e7: check-cast v15, Landroid/widget/TableRow; // type@0a9a │ │ -498652: 390f 0300 |00e9: if-nez v15, 00ec // +0003 │ │ -498656: 2849 |00eb: goto 0134 // +0049 │ │ -498658: 6e20 095b 9f00 |00ec: invoke-virtual {v15, v9}, Landroid/widget/TableRow;.getChildAt:(I)Landroid/view/View; // method@5b09 │ │ -49865e: 0c0f |00ef: move-result-object v15 │ │ -498660: 1f0f 920a |00f0: check-cast v15, Landroid/widget/Switch; // type@0a92 │ │ -498664: 390f 0300 |00f2: if-nez v15, 00f5 // +0003 │ │ -498668: 2840 |00f4: goto 0134 // +0040 │ │ -49866a: 6e10 245d 0300 |00f5: invoke-virtual {v3}, Ljava/lang/StringBuilder;.length:()I // method@5d24 │ │ -498670: 0a0e |00f8: move-result v14 │ │ -498672: 6e30 215d 930e |00f9: invoke-virtual {v3, v9, v14}, Ljava/lang/StringBuilder;.delete:(II)Ljava/lang/StringBuilder; // method@5d21 │ │ -498678: 54be 0d60 |00fc: iget-object v14, v11, Lorg/purple/smokestack/ListenerElement;.m_localIpAddress:Ljava/lang/String; // field@600d │ │ -49867c: 6e20 1d5d e300 |00fe: invoke-virtual {v3, v14}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498682: 54be 0b60 |0101: iget-object v14, v11, Lorg/purple/smokestack/ListenerElement;.m_ipVersion:Ljava/lang/String; // field@600b │ │ -498686: 6e20 da5c 7e00 |0103: invoke-virtual {v14, v7}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ -49868c: 0a0e |0106: move-result v14 │ │ -49868e: 380e 1200 |0107: if-eqz v14, 0119 // +0012 │ │ -498692: 54be 0f60 |0109: iget-object v14, v11, Lorg/purple/smokestack/ListenerElement;.m_localScopeId:Ljava/lang/String; // field@600f │ │ -498696: 6e10 e65c 0e00 |010b: invoke-virtual {v14}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ -49869c: 0a0e |010e: move-result v14 │ │ -49869e: 390e 0a00 |010f: if-nez v14, 0119 // +000a │ │ -4986a2: 6e20 1d5d 6300 |0111: invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4986a8: 54be 0f60 |0114: iget-object v14, v11, Lorg/purple/smokestack/ListenerElement;.m_localScopeId:Ljava/lang/String; // field@600f │ │ -4986ac: 6e20 1d5d e300 |0116: invoke-virtual {v3, v14}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4986b2: 6e20 1d5d 8300 |0119: invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4986b8: 54be 0e60 |011c: iget-object v14, v11, Lorg/purple/smokestack/ListenerElement;.m_localPort:Ljava/lang/String; // field@600e │ │ -4986bc: 6e20 1d5d e300 |011e: invoke-virtual {v3, v14}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4986c2: 6e10 e55a 0f00 |0121: invoke-virtual {v15}, Landroid/widget/Switch;.getText:()Ljava/lang/CharSequence; // method@5ae5 │ │ -4986c8: 0c0e |0124: move-result-object v14 │ │ -4986ca: 7210 1b5c 0e00 |0125: invoke-interface {v14}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ -4986d0: 0c0e |0128: move-result-object v14 │ │ -4986d2: 6e10 285d 0300 |0129: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ -4986d8: 0c09 |012c: move-result-object v9 │ │ -4986da: 6e20 d85c 9e00 |012d: invoke-virtual {v14, v9}, Ljava/lang/String;.contains:(Ljava/lang/CharSequence;)Z // method@5cd8 │ │ -4986e0: 0a09 |0130: move-result v9 │ │ -4986e2: 3809 0300 |0131: if-eqz v9, 0134 // +0003 │ │ -4986e6: 2806 |0133: goto 0139 // +0006 │ │ -4986e8: d80d 0d01 |0134: add-int/lit8 v13, v13, #int 1 // #01 │ │ -4986ec: 1209 |0136: const/4 v9, #int 0 // #0 │ │ -4986ee: 28aa |0137: goto 00e1 // -0056 │ │ -4986f0: 120f |0138: const/4 v15, #int 0 // #0 │ │ -4986f2: 12e9 |0139: const/4 v9, #int -2 // #fe │ │ -4986f4: 390f 2b00 |013a: if-nez v15, 0165 // +002b │ │ -4986f8: 220c 990a |013c: new-instance v12, Landroid/widget/TableRow$LayoutParams; // type@0a99 │ │ -4986fc: 7020 055b 9c00 |013e: invoke-direct {v12, v9}, Landroid/widget/TableRow$LayoutParams;.:(I)V // method@5b05 │ │ -498702: 52bd 1160 |0141: iget v13, v11, Lorg/purple/smokestack/ListenerElement;.m_oid:I // field@6011 │ │ -498706: 7110 fa5c 0d00 |0143: invoke-static {v13}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@5cfa │ │ -49870c: 0c0d |0146: move-result-object v13 │ │ -49870e: 220e 9a0a |0147: new-instance v14, Landroid/widget/TableRow; // type@0a9a │ │ -498712: 7020 075b 0e00 |0149: invoke-direct {v14, v0}, Landroid/widget/TableRow;.:(Landroid/content/Context;)V // method@5b07 │ │ -498718: 52bf 1160 |014c: iget v15, v11, Lorg/purple/smokestack/ListenerElement;.m_oid:I // field@6011 │ │ -49871c: 6e20 0a5b fe00 |014e: invoke-virtual {v14, v15}, Landroid/widget/TableRow;.setId:(I)V // method@5b0a │ │ -498722: 6e20 0b5b ce00 |0151: invoke-virtual {v14, v12}, Landroid/widget/TableRow;.setLayoutParams:(Landroid/view/ViewGroup$LayoutParams;)V // method@5b0b │ │ -498728: 220f 920a |0154: new-instance v15, Landroid/widget/Switch; // type@0a92 │ │ -49872c: 7020 e45a 0f00 |0156: invoke-direct {v15, v0}, Landroid/widget/Switch;.:(Landroid/content/Context;)V // method@5ae4 │ │ -498732: 6e20 eb5a 5f00 |0159: invoke-virtual {v15, v5}, Landroid/widget/Switch;.setLayoutDirection:(I)V // method@5aeb │ │ -498738: 220c e51e |015c: new-instance v12, Lorg/purple/smokestack/Settings$4; // type@1ee5 │ │ -49873c: 7030 c1d1 0c0d |015e: invoke-direct {v12, v0, v13}, Lorg/purple/smokestack/Settings$4;.:(Lorg/purple/smokestack/Settings;Ljava/lang/String;)V // method@d1c1 │ │ -498742: 6e20 ed5a cf00 |0161: invoke-virtual {v15, v12}, Landroid/widget/Switch;.setOnCheckedChangeListener:(Landroid/widget/CompoundButton$OnCheckedChangeListener;)V // method@5aed │ │ -498748: 2802 |0164: goto 0166 // +0002 │ │ -49874a: 120e |0165: const/4 v14, #int 0 // #0 │ │ -49874c: 6e20 11d2 f000 |0166: invoke-virtual {v0, v15}, Lorg/purple/smokestack/Settings;.registerForContextMenu:(Landroid/view/View;)V // method@d211 │ │ -498752: 54bc 1560 |0169: iget-object v12, v11, Lorg/purple/smokestack/ListenerElement;.m_status:Ljava/lang/String; // field@6015 │ │ -498756: 1a0d 6f8a |016b: const-string v13, "listening" // string@8a6f │ │ -49875a: 6e20 da5c dc00 |016d: invoke-virtual {v12, v13}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ -498760: 0a0c |0170: move-result v12 │ │ -498762: 380c 1000 |0171: if-eqz v12, 0181 // +0010 │ │ -498766: 130c 1b00 |0173: const/16 v12, #int 27 // #1b │ │ -49876a: 130d 5e00 |0175: const/16 v13, #int 94 // #5e │ │ -49876e: 1309 2000 |0177: const/16 v9, #int 32 // #20 │ │ -498772: 7130 c102 dc09 |0179: invoke-static {v12, v13, v9}, Landroid/graphics/Color;.rgb:(III)I // method@02c1 │ │ -498778: 0a09 |017c: move-result v9 │ │ -49877a: 6e20 f05a 9f00 |017d: invoke-virtual {v15, v9}, Landroid/widget/Switch;.setTextColor:(I)V // method@5af0 │ │ -498780: 280c |0180: goto 018c // +000c │ │ -498782: 1309 b700 |0181: const/16 v9, #int 183 // #b7 │ │ -498786: 130c 1c00 |0183: const/16 v12, #int 28 // #1c │ │ -49878a: 7130 c102 c90c |0185: invoke-static {v9, v12, v12}, Landroid/graphics/Color;.rgb:(III)I // method@02c1 │ │ -498790: 0a09 |0188: move-result v9 │ │ -498792: 6e20 f05a 9f00 |0189: invoke-virtual {v15, v9}, Landroid/widget/Switch;.setTextColor:(I)V // method@5af0 │ │ -498798: 6e10 245d 0300 |018c: invoke-virtual {v3}, Ljava/lang/StringBuilder;.length:()I // method@5d24 │ │ -49879e: 0a09 |018f: move-result v9 │ │ -4987a0: 120c |0190: const/4 v12, #int 0 // #0 │ │ -4987a2: 6e30 215d c309 |0191: invoke-virtual {v3, v12, v9}, Ljava/lang/StringBuilder;.delete:(II)Ljava/lang/StringBuilder; // method@5d21 │ │ -4987a8: 1a09 1516 |0194: const-string v9, "Control: " // string@1615 │ │ -4987ac: 6e20 1d5d 9300 |0196: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4987b2: 54b9 1660 |0199: iget-object v9, v11, Lorg/purple/smokestack/ListenerElement;.m_statusControl:Ljava/lang/String; // field@6016 │ │ -4987b6: 6e30 f15c c905 |019b: invoke-virtual {v9, v12, v5}, Ljava/lang/String;.substring:(II)Ljava/lang/String; // method@5cf1 │ │ -4987bc: 0c09 |019e: move-result-object v9 │ │ -4987be: 6e10 f55c 0900 |019f: invoke-virtual {v9}, Ljava/lang/String;.toUpperCase:()Ljava/lang/String; // method@5cf5 │ │ -4987c4: 0c09 |01a2: move-result-object v9 │ │ -4987c6: 6e20 1d5d 9300 |01a3: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4987cc: 54b9 1660 |01a6: iget-object v9, v11, Lorg/purple/smokestack/ListenerElement;.m_statusControl:Ljava/lang/String; // field@6016 │ │ -4987d0: 6e20 f05c 5900 |01a8: invoke-virtual {v9, v5}, Ljava/lang/String;.substring:(I)Ljava/lang/String; // method@5cf0 │ │ -4987d6: 0c09 |01ab: move-result-object v9 │ │ -4987d8: 6e20 1d5d 9300 |01ac: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4987de: 2806 |01af: goto 01b5 // +0006 │ │ -4987e0: 1a09 f118 |01b0: const-string v9, "Disconnect" // string@18f1 │ │ -4987e4: 6e20 1d5d 9300 |01b2: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4987ea: 1a09 0200 |01b5: const-string v9, " │ │ +49846c: |[49846c] org.purple.smokestack.Settings.populateListeners:(Ljava/util/ArrayList;)V │ │ +49847c: 0800 1500 |0000: move-object/from16 v0, v21 │ │ +498480: 1401 5b00 087f |0002: const v1, #float 1.80777e+38 // #7f08005b │ │ +498486: 6e20 f6d1 1000 |0005: invoke-virtual {v0, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +49848c: 0c01 |0008: move-result-object v1 │ │ +49848e: 1f01 9c0a |0009: check-cast v1, Landroid/widget/TextView; // type@0a9c │ │ +498492: 2202 fc0a |000b: new-instance v2, Ljava/lang/StringBuilder; // type@0afc │ │ +498496: 7010 125d 0200 |000d: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ +49849c: 1a03 3b20 |0010: const-string v3, "Internal Listeners Container Size: " // string@203b │ │ +4984a0: 6e20 1d5d 3200 |0012: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4984a6: 7100 02d1 0000 |0015: invoke-static {}, Lorg/purple/smokestack/Kernel;.getInstance:()Lorg/purple/smokestack/Kernel; // method@d102 │ │ +4984ac: 0c03 |0018: move-result-object v3 │ │ +4984ae: 6e10 04d1 0300 |0019: invoke-virtual {v3}, Lorg/purple/smokestack/Kernel;.listenersCount:()I // method@d104 │ │ +4984b4: 0a03 |001c: move-result v3 │ │ +4984b6: 6e20 185d 3200 |001d: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@5d18 │ │ +4984bc: 6e10 285d 0200 |0020: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ +4984c2: 0c02 |0023: move-result-object v2 │ │ +4984c4: 6e20 525b 2100 |0024: invoke-virtual {v1, v2}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ +4984ca: 3916 0c00 |0027: if-nez v22, 0033 // +000c │ │ +4984ce: 5401 3269 |0029: iget-object v1, v0, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ +4984d2: 6202 3c69 |002b: sget-object v2, Lorg/purple/smokestack/Settings;.s_cryptography:Lorg/purple/smokestack/Cryptography; // field@693c │ │ +4984d6: 12f3 |002d: const/4 v3, #int -1 // #ff │ │ +4984d8: 6e30 c4d0 2103 |002e: invoke-virtual {v1, v2, v3}, Lorg/purple/smokestack/Database;.readListeners:(Lorg/purple/smokestack/Cryptography;I)Ljava/util/ArrayList; // method@d0c4 │ │ +4984de: 0c01 |0031: move-result-object v1 │ │ +4984e0: 2803 |0032: goto 0035 // +0003 │ │ +4984e2: 0801 1600 |0033: move-object/from16 v1, v22 │ │ +4984e6: 1402 6600 087f |0035: const v2, #float 1.80777e+38 // #7f080066 │ │ +4984ec: 6e20 f6d1 2000 |0038: invoke-virtual {v0, v2}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4984f2: 0c02 |003b: move-result-object v2 │ │ +4984f4: 1f02 980a |003c: check-cast v2, Landroid/widget/TableLayout; // type@0a98 │ │ +4984f8: 3801 d902 |003e: if-eqz v1, 0317 // +02d9 │ │ +4984fc: 6e10 e15f 0100 |0040: invoke-virtual {v1}, Ljava/util/ArrayList;.size:()I // method@5fe1 │ │ +498502: 0a03 |0043: move-result v3 │ │ +498504: 3903 0400 |0044: if-nez v3, 0048 // +0004 │ │ +498508: 2900 d102 |0046: goto/16 0317 // +02d1 │ │ +49850c: 2203 fc0a |0048: new-instance v3, Ljava/lang/StringBuilder; // type@0afc │ │ +498510: 7010 125d 0300 |004a: invoke-direct {v3}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ +498516: 6e10 025b 0200 |004d: invoke-virtual {v2}, Landroid/widget/TableLayout;.getChildCount:()I // method@5b02 │ │ +49851c: 0a04 |0050: move-result v4 │ │ +49851e: 1215 |0051: const/4 v5, #int 1 // #1 │ │ +498520: b154 |0052: sub-int/2addr v4, v5 │ │ +498522: 1a06 b804 |0053: const-string v6, "-" // string@04b8 │ │ +498526: 1a07 a21f |0055: const-string v7, "IPv6" // string@1fa2 │ │ +49852a: 1a08 0109 |0057: const-string v8, ":" // string@0901 │ │ +49852e: 1209 |0059: const/4 v9, #int 0 // #0 │ │ +498530: 3a04 6e00 |005a: if-ltz v4, 00c8 // +006e │ │ +498534: 6e20 015b 4200 |005c: invoke-virtual {v2, v4}, Landroid/widget/TableLayout;.getChildAt:(I)Landroid/view/View; // method@5b01 │ │ +49853a: 0c0a |005f: move-result-object v10 │ │ +49853c: 1f0a 9a0a |0060: check-cast v10, Landroid/widget/TableRow; // type@0a9a │ │ +498540: 390a 0300 |0062: if-nez v10, 0065 // +0003 │ │ +498544: 2861 |0064: goto 00c5 // +0061 │ │ +498546: 6e20 095b 9a00 |0065: invoke-virtual {v10, v9}, Landroid/widget/TableRow;.getChildAt:(I)Landroid/view/View; // method@5b09 │ │ +49854c: 0c0b |0068: move-result-object v11 │ │ +49854e: 1f0b 920a |0069: check-cast v11, Landroid/widget/Switch; // type@0a92 │ │ +498552: 390b 0600 |006b: if-nez v11, 0071 // +0006 │ │ +498556: 6e20 045b a200 |006d: invoke-virtual {v2, v10}, Landroid/widget/TableLayout;.removeView:(Landroid/view/View;)V // method@5b04 │ │ +49855c: 2855 |0070: goto 00c5 // +0055 │ │ +49855e: 6e10 db5f 0100 |0071: invoke-virtual {v1}, Ljava/util/ArrayList;.iterator:()Ljava/util/Iterator; // method@5fdb │ │ +498564: 0c0c |0074: move-result-object v12 │ │ +498566: 7210 4f60 0c00 |0075: invoke-interface {v12}, Ljava/util/Iterator;.hasNext:()Z // method@604f │ │ +49856c: 0a0d |0078: move-result v13 │ │ +49856e: 380d 4700 |0079: if-eqz v13, 00c0 // +0047 │ │ +498572: 7210 5060 0c00 |007b: invoke-interface {v12}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@6050 │ │ +498578: 0c0d |007e: move-result-object v13 │ │ +49857a: 1f0d a21e |007f: check-cast v13, Lorg/purple/smokestack/ListenerElement; // type@1ea2 │ │ +49857e: 6e10 245d 0300 |0081: invoke-virtual {v3}, Ljava/lang/StringBuilder;.length:()I // method@5d24 │ │ +498584: 0a0e |0084: move-result v14 │ │ +498586: 6e30 215d 930e |0085: invoke-virtual {v3, v9, v14}, Ljava/lang/StringBuilder;.delete:(II)Ljava/lang/StringBuilder; // method@5d21 │ │ +49858c: 54de 0d60 |0088: iget-object v14, v13, Lorg/purple/smokestack/ListenerElement;.m_localIpAddress:Ljava/lang/String; // field@600d │ │ +498590: 6e20 1d5d e300 |008a: invoke-virtual {v3, v14}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498596: 54de 0b60 |008d: iget-object v14, v13, Lorg/purple/smokestack/ListenerElement;.m_ipVersion:Ljava/lang/String; // field@600b │ │ +49859a: 6e20 da5c 7e00 |008f: invoke-virtual {v14, v7}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ +4985a0: 0a0e |0092: move-result v14 │ │ +4985a2: 380e 1200 |0093: if-eqz v14, 00a5 // +0012 │ │ +4985a6: 54de 0f60 |0095: iget-object v14, v13, Lorg/purple/smokestack/ListenerElement;.m_localScopeId:Ljava/lang/String; // field@600f │ │ +4985aa: 6e10 e65c 0e00 |0097: invoke-virtual {v14}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ +4985b0: 0a0e |009a: move-result v14 │ │ +4985b2: 390e 0a00 |009b: if-nez v14, 00a5 // +000a │ │ +4985b6: 6e20 1d5d 6300 |009d: invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4985bc: 54de 0f60 |00a0: iget-object v14, v13, Lorg/purple/smokestack/ListenerElement;.m_localScopeId:Ljava/lang/String; // field@600f │ │ +4985c0: 6e20 1d5d e300 |00a2: invoke-virtual {v3, v14}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4985c6: 6e20 1d5d 8300 |00a5: invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4985cc: 54dd 0e60 |00a8: iget-object v13, v13, Lorg/purple/smokestack/ListenerElement;.m_localPort:Ljava/lang/String; // field@600e │ │ +4985d0: 6e20 1d5d d300 |00aa: invoke-virtual {v3, v13}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4985d6: 6e10 e55a 0b00 |00ad: invoke-virtual {v11}, Landroid/widget/Switch;.getText:()Ljava/lang/CharSequence; // method@5ae5 │ │ +4985dc: 0c0d |00b0: move-result-object v13 │ │ +4985de: 7210 1b5c 0d00 |00b1: invoke-interface {v13}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ +4985e4: 0c0d |00b4: move-result-object v13 │ │ +4985e6: 6e10 285d 0300 |00b5: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ +4985ec: 0c0e |00b8: move-result-object v14 │ │ +4985ee: 6e20 d85c ed00 |00b9: invoke-virtual {v13, v14}, Ljava/lang/String;.contains:(Ljava/lang/CharSequence;)Z // method@5cd8 │ │ +4985f4: 0a0d |00bc: move-result v13 │ │ +4985f6: 380d b8ff |00bd: if-eqz v13, 0075 // -0048 │ │ +4985fa: 1219 |00bf: const/4 v9, #int 1 // #1 │ │ +4985fc: 3909 0500 |00c0: if-nez v9, 00c5 // +0005 │ │ +498600: 6e20 045b a200 |00c2: invoke-virtual {v2, v10}, Landroid/widget/TableLayout;.removeView:(Landroid/view/View;)V // method@5b04 │ │ +498606: d804 04ff |00c5: add-int/lit8 v4, v4, #int -1 // #ff │ │ +49860a: 288c |00c7: goto 0053 // -0074 │ │ +49860c: 6e10 db5f 0100 |00c8: invoke-virtual {v1}, Ljava/util/ArrayList;.iterator:()Ljava/util/Iterator; // method@5fdb │ │ +498612: 0c04 |00cb: move-result-object v4 │ │ +498614: 120a |00cc: const/4 v10, #int 0 // #0 │ │ +498616: 7210 4f60 0400 |00cd: invoke-interface {v4}, Ljava/util/Iterator;.hasNext:()Z // method@604f │ │ +49861c: 0a0b |00d0: move-result v11 │ │ +49861e: 380b 4202 |00d1: if-eqz v11, 0313 // +0242 │ │ +498622: 7210 5060 0400 |00d3: invoke-interface {v4}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@6050 │ │ +498628: 0c0b |00d6: move-result-object v11 │ │ +49862a: 1f0b a21e |00d7: check-cast v11, Lorg/purple/smokestack/ListenerElement; // type@1ea2 │ │ +49862e: 390b 0300 |00d9: if-nez v11, 00dc // +0003 │ │ +498632: 28f2 |00db: goto 00cd // -000e │ │ +498634: 6e10 025b 0200 |00dc: invoke-virtual {v2}, Landroid/widget/TableLayout;.getChildCount:()I // method@5b02 │ │ +49863a: 0a0c |00df: move-result v12 │ │ +49863c: 120d |00e0: const/4 v13, #int 0 // #0 │ │ +49863e: 35cd 5700 |00e1: if-ge v13, v12, 0138 // +0057 │ │ +498642: 6e20 015b d200 |00e3: invoke-virtual {v2, v13}, Landroid/widget/TableLayout;.getChildAt:(I)Landroid/view/View; // method@5b01 │ │ +498648: 0c0f |00e6: move-result-object v15 │ │ +49864a: 1f0f 9a0a |00e7: check-cast v15, Landroid/widget/TableRow; // type@0a9a │ │ +49864e: 390f 0300 |00e9: if-nez v15, 00ec // +0003 │ │ +498652: 2849 |00eb: goto 0134 // +0049 │ │ +498654: 6e20 095b 9f00 |00ec: invoke-virtual {v15, v9}, Landroid/widget/TableRow;.getChildAt:(I)Landroid/view/View; // method@5b09 │ │ +49865a: 0c0f |00ef: move-result-object v15 │ │ +49865c: 1f0f 920a |00f0: check-cast v15, Landroid/widget/Switch; // type@0a92 │ │ +498660: 390f 0300 |00f2: if-nez v15, 00f5 // +0003 │ │ +498664: 2840 |00f4: goto 0134 // +0040 │ │ +498666: 6e10 245d 0300 |00f5: invoke-virtual {v3}, Ljava/lang/StringBuilder;.length:()I // method@5d24 │ │ +49866c: 0a0e |00f8: move-result v14 │ │ +49866e: 6e30 215d 930e |00f9: invoke-virtual {v3, v9, v14}, Ljava/lang/StringBuilder;.delete:(II)Ljava/lang/StringBuilder; // method@5d21 │ │ +498674: 54be 0d60 |00fc: iget-object v14, v11, Lorg/purple/smokestack/ListenerElement;.m_localIpAddress:Ljava/lang/String; // field@600d │ │ +498678: 6e20 1d5d e300 |00fe: invoke-virtual {v3, v14}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49867e: 54be 0b60 |0101: iget-object v14, v11, Lorg/purple/smokestack/ListenerElement;.m_ipVersion:Ljava/lang/String; // field@600b │ │ +498682: 6e20 da5c 7e00 |0103: invoke-virtual {v14, v7}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ +498688: 0a0e |0106: move-result v14 │ │ +49868a: 380e 1200 |0107: if-eqz v14, 0119 // +0012 │ │ +49868e: 54be 0f60 |0109: iget-object v14, v11, Lorg/purple/smokestack/ListenerElement;.m_localScopeId:Ljava/lang/String; // field@600f │ │ +498692: 6e10 e65c 0e00 |010b: invoke-virtual {v14}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ +498698: 0a0e |010e: move-result v14 │ │ +49869a: 390e 0a00 |010f: if-nez v14, 0119 // +000a │ │ +49869e: 6e20 1d5d 6300 |0111: invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4986a4: 54be 0f60 |0114: iget-object v14, v11, Lorg/purple/smokestack/ListenerElement;.m_localScopeId:Ljava/lang/String; // field@600f │ │ +4986a8: 6e20 1d5d e300 |0116: invoke-virtual {v3, v14}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4986ae: 6e20 1d5d 8300 |0119: invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4986b4: 54be 0e60 |011c: iget-object v14, v11, Lorg/purple/smokestack/ListenerElement;.m_localPort:Ljava/lang/String; // field@600e │ │ +4986b8: 6e20 1d5d e300 |011e: invoke-virtual {v3, v14}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4986be: 6e10 e55a 0f00 |0121: invoke-virtual {v15}, Landroid/widget/Switch;.getText:()Ljava/lang/CharSequence; // method@5ae5 │ │ +4986c4: 0c0e |0124: move-result-object v14 │ │ +4986c6: 7210 1b5c 0e00 |0125: invoke-interface {v14}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ +4986cc: 0c0e |0128: move-result-object v14 │ │ +4986ce: 6e10 285d 0300 |0129: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ +4986d4: 0c09 |012c: move-result-object v9 │ │ +4986d6: 6e20 d85c 9e00 |012d: invoke-virtual {v14, v9}, Ljava/lang/String;.contains:(Ljava/lang/CharSequence;)Z // method@5cd8 │ │ +4986dc: 0a09 |0130: move-result v9 │ │ +4986de: 3809 0300 |0131: if-eqz v9, 0134 // +0003 │ │ +4986e2: 2806 |0133: goto 0139 // +0006 │ │ +4986e4: d80d 0d01 |0134: add-int/lit8 v13, v13, #int 1 // #01 │ │ +4986e8: 1209 |0136: const/4 v9, #int 0 // #0 │ │ +4986ea: 28aa |0137: goto 00e1 // -0056 │ │ +4986ec: 120f |0138: const/4 v15, #int 0 // #0 │ │ +4986ee: 12e9 |0139: const/4 v9, #int -2 // #fe │ │ +4986f0: 390f 2b00 |013a: if-nez v15, 0165 // +002b │ │ +4986f4: 220c 990a |013c: new-instance v12, Landroid/widget/TableRow$LayoutParams; // type@0a99 │ │ +4986f8: 7020 055b 9c00 |013e: invoke-direct {v12, v9}, Landroid/widget/TableRow$LayoutParams;.:(I)V // method@5b05 │ │ +4986fe: 52bd 1160 |0141: iget v13, v11, Lorg/purple/smokestack/ListenerElement;.m_oid:I // field@6011 │ │ +498702: 7110 fa5c 0d00 |0143: invoke-static {v13}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@5cfa │ │ +498708: 0c0d |0146: move-result-object v13 │ │ +49870a: 220e 9a0a |0147: new-instance v14, Landroid/widget/TableRow; // type@0a9a │ │ +49870e: 7020 075b 0e00 |0149: invoke-direct {v14, v0}, Landroid/widget/TableRow;.:(Landroid/content/Context;)V // method@5b07 │ │ +498714: 52bf 1160 |014c: iget v15, v11, Lorg/purple/smokestack/ListenerElement;.m_oid:I // field@6011 │ │ +498718: 6e20 0a5b fe00 |014e: invoke-virtual {v14, v15}, Landroid/widget/TableRow;.setId:(I)V // method@5b0a │ │ +49871e: 6e20 0b5b ce00 |0151: invoke-virtual {v14, v12}, Landroid/widget/TableRow;.setLayoutParams:(Landroid/view/ViewGroup$LayoutParams;)V // method@5b0b │ │ +498724: 220f 920a |0154: new-instance v15, Landroid/widget/Switch; // type@0a92 │ │ +498728: 7020 e45a 0f00 |0156: invoke-direct {v15, v0}, Landroid/widget/Switch;.:(Landroid/content/Context;)V // method@5ae4 │ │ +49872e: 6e20 eb5a 5f00 |0159: invoke-virtual {v15, v5}, Landroid/widget/Switch;.setLayoutDirection:(I)V // method@5aeb │ │ +498734: 220c e51e |015c: new-instance v12, Lorg/purple/smokestack/Settings$4; // type@1ee5 │ │ +498738: 7030 c1d1 0c0d |015e: invoke-direct {v12, v0, v13}, Lorg/purple/smokestack/Settings$4;.:(Lorg/purple/smokestack/Settings;Ljava/lang/String;)V // method@d1c1 │ │ +49873e: 6e20 ed5a cf00 |0161: invoke-virtual {v15, v12}, Landroid/widget/Switch;.setOnCheckedChangeListener:(Landroid/widget/CompoundButton$OnCheckedChangeListener;)V // method@5aed │ │ +498744: 2802 |0164: goto 0166 // +0002 │ │ +498746: 120e |0165: const/4 v14, #int 0 // #0 │ │ +498748: 6e20 11d2 f000 |0166: invoke-virtual {v0, v15}, Lorg/purple/smokestack/Settings;.registerForContextMenu:(Landroid/view/View;)V // method@d211 │ │ +49874e: 54bc 1560 |0169: iget-object v12, v11, Lorg/purple/smokestack/ListenerElement;.m_status:Ljava/lang/String; // field@6015 │ │ +498752: 1a0d 6f8a |016b: const-string v13, "listening" // string@8a6f │ │ +498756: 6e20 da5c dc00 |016d: invoke-virtual {v12, v13}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ +49875c: 0a0c |0170: move-result v12 │ │ +49875e: 380c 1000 |0171: if-eqz v12, 0181 // +0010 │ │ +498762: 130c 1b00 |0173: const/16 v12, #int 27 // #1b │ │ +498766: 130d 5e00 |0175: const/16 v13, #int 94 // #5e │ │ +49876a: 1309 2000 |0177: const/16 v9, #int 32 // #20 │ │ +49876e: 7130 c102 dc09 |0179: invoke-static {v12, v13, v9}, Landroid/graphics/Color;.rgb:(III)I // method@02c1 │ │ +498774: 0a09 |017c: move-result v9 │ │ +498776: 6e20 f05a 9f00 |017d: invoke-virtual {v15, v9}, Landroid/widget/Switch;.setTextColor:(I)V // method@5af0 │ │ +49877c: 280c |0180: goto 018c // +000c │ │ +49877e: 1309 b700 |0181: const/16 v9, #int 183 // #b7 │ │ +498782: 130c 1c00 |0183: const/16 v12, #int 28 // #1c │ │ +498786: 7130 c102 c90c |0185: invoke-static {v9, v12, v12}, Landroid/graphics/Color;.rgb:(III)I // method@02c1 │ │ +49878c: 0a09 |0188: move-result v9 │ │ +49878e: 6e20 f05a 9f00 |0189: invoke-virtual {v15, v9}, Landroid/widget/Switch;.setTextColor:(I)V // method@5af0 │ │ +498794: 6e10 245d 0300 |018c: invoke-virtual {v3}, Ljava/lang/StringBuilder;.length:()I // method@5d24 │ │ +49879a: 0a09 |018f: move-result v9 │ │ +49879c: 120c |0190: const/4 v12, #int 0 // #0 │ │ +49879e: 6e30 215d c309 |0191: invoke-virtual {v3, v12, v9}, Ljava/lang/StringBuilder;.delete:(II)Ljava/lang/StringBuilder; // method@5d21 │ │ +4987a4: 1a09 1516 |0194: const-string v9, "Control: " // string@1615 │ │ +4987a8: 6e20 1d5d 9300 |0196: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4987ae: 54b9 1660 |0199: iget-object v9, v11, Lorg/purple/smokestack/ListenerElement;.m_statusControl:Ljava/lang/String; // field@6016 │ │ +4987b2: 6e30 f15c c905 |019b: invoke-virtual {v9, v12, v5}, Ljava/lang/String;.substring:(II)Ljava/lang/String; // method@5cf1 │ │ +4987b8: 0c09 |019e: move-result-object v9 │ │ +4987ba: 6e10 f55c 0900 |019f: invoke-virtual {v9}, Ljava/lang/String;.toUpperCase:()Ljava/lang/String; // method@5cf5 │ │ +4987c0: 0c09 |01a2: move-result-object v9 │ │ +4987c2: 6e20 1d5d 9300 |01a3: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4987c8: 54b9 1660 |01a6: iget-object v9, v11, Lorg/purple/smokestack/ListenerElement;.m_statusControl:Ljava/lang/String; // field@6016 │ │ +4987cc: 6e20 f05c 5900 |01a8: invoke-virtual {v9, v5}, Ljava/lang/String;.substring:(I)Ljava/lang/String; // method@5cf0 │ │ +4987d2: 0c09 |01ab: move-result-object v9 │ │ +4987d4: 6e20 1d5d 9300 |01ac: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4987da: 2806 |01af: goto 01b5 // +0006 │ │ +4987dc: 1a09 f118 |01b0: const-string v9, "Disconnect" // string@18f1 │ │ +4987e0: 6e20 1d5d 9300 |01b2: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4987e6: 1a09 0200 |01b5: const-string v9, " │ │ " // string@0002 │ │ -4987ee: 6e20 1d5d 9300 |01b7: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4987f4: 1a0c b552 |01ba: const-string v12, "Status: " // string@52b5 │ │ -4987f8: 6e20 1d5d c300 |01bc: invoke-virtual {v3, v12}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4987fe: 54bc 1560 |01bf: iget-object v12, v11, Lorg/purple/smokestack/ListenerElement;.m_status:Ljava/lang/String; // field@6015 │ │ -498802: 120d |01c1: const/4 v13, #int 0 // #0 │ │ -498804: 6e30 f15c dc05 |01c2: invoke-virtual {v12, v13, v5}, Ljava/lang/String;.substring:(II)Ljava/lang/String; // method@5cf1 │ │ -49880a: 0c0c |01c5: move-result-object v12 │ │ -49880c: 6e10 f55c 0c00 |01c6: invoke-virtual {v12}, Ljava/lang/String;.toUpperCase:()Ljava/lang/String; // method@5cf5 │ │ -498812: 0c0c |01c9: move-result-object v12 │ │ -498814: 6e20 1d5d c300 |01ca: invoke-virtual {v3, v12}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49881a: 54bc 1560 |01cd: iget-object v12, v11, Lorg/purple/smokestack/ListenerElement;.m_status:Ljava/lang/String; // field@6015 │ │ -49881e: 6e20 f05c 5c00 |01cf: invoke-virtual {v12, v5}, Ljava/lang/String;.substring:(I)Ljava/lang/String; // method@5cf0 │ │ -498824: 0c0c |01d2: move-result-object v12 │ │ -498826: 6e20 1d5d c300 |01d3: invoke-virtual {v3, v12}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49882c: 2806 |01d6: goto 01dc // +0006 │ │ -49882e: 1a0c f218 |01d7: const-string v12, "Disconnected" // string@18f2 │ │ -498832: 6e20 1d5d c300 |01d9: invoke-virtual {v3, v12}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498838: 6e20 1d5d 9300 |01dc: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49883e: 54bc 0a60 |01df: iget-object v12, v11, Lorg/purple/smokestack/ListenerElement;.m_error:Ljava/lang/String; // field@600a │ │ -498842: 6e10 e65c 0c00 |01e1: invoke-virtual {v12}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ -498848: 0a0c |01e4: move-result v12 │ │ -49884a: 390c 0f00 |01e5: if-nez v12, 01f4 // +000f │ │ -49884e: 1a0c 141b |01e7: const-string v12, "Error: " // string@1b14 │ │ -498852: 6e20 1d5d c300 |01e9: invoke-virtual {v3, v12}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498858: 54bc 0a60 |01ec: iget-object v12, v11, Lorg/purple/smokestack/ListenerElement;.m_error:Ljava/lang/String; // field@600a │ │ -49885c: 6e20 1d5d c300 |01ee: invoke-virtual {v3, v12}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498862: 6e20 1d5d 9300 |01f1: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498868: 1a09 220c |01f4: const-string v9, "Address: " // string@0c22 │ │ -49886c: 6e20 1d5d 9300 |01f6: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498872: 54b9 0d60 |01f9: iget-object v9, v11, Lorg/purple/smokestack/ListenerElement;.m_localIpAddress:Ljava/lang/String; // field@600d │ │ -498876: 6e20 1d5d 9300 |01fb: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49887c: 54b9 0b60 |01fe: iget-object v9, v11, Lorg/purple/smokestack/ListenerElement;.m_ipVersion:Ljava/lang/String; // field@600b │ │ -498880: 6e20 da5c 7900 |0200: invoke-virtual {v9, v7}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ -498886: 0a09 |0203: move-result v9 │ │ -498888: 3809 1200 |0204: if-eqz v9, 0216 // +0012 │ │ -49888c: 54b9 0f60 |0206: iget-object v9, v11, Lorg/purple/smokestack/ListenerElement;.m_localScopeId:Ljava/lang/String; // field@600f │ │ -498890: 6e10 e65c 0900 |0208: invoke-virtual {v9}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ -498896: 0a09 |020b: move-result v9 │ │ -498898: 3909 0a00 |020c: if-nez v9, 0216 // +000a │ │ -49889c: 6e20 1d5d 6300 |020e: invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4988a2: 54b9 0f60 |0211: iget-object v9, v11, Lorg/purple/smokestack/ListenerElement;.m_localScopeId:Ljava/lang/String; // field@600f │ │ -4988a6: 6e20 1d5d 9300 |0213: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4988ac: 6e20 1d5d 8300 |0216: invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4988b2: 54b9 0e60 |0219: iget-object v9, v11, Lorg/purple/smokestack/ListenerElement;.m_localPort:Ljava/lang/String; // field@600e │ │ -4988b6: 6e20 1d5d 9300 |021b: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4988bc: 54b9 0960 |021e: iget-object v9, v11, Lorg/purple/smokestack/ListenerElement;.m_certificate:[B // field@6009 │ │ -4988c0: 3809 1800 |0220: if-eqz v9, 0238 // +0018 │ │ -4988c4: 1a09 0b00 |0222: const-string v9, " │ │ +4987ea: 6e20 1d5d 9300 |01b7: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4987f0: 1a0c b552 |01ba: const-string v12, "Status: " // string@52b5 │ │ +4987f4: 6e20 1d5d c300 |01bc: invoke-virtual {v3, v12}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4987fa: 54bc 1560 |01bf: iget-object v12, v11, Lorg/purple/smokestack/ListenerElement;.m_status:Ljava/lang/String; // field@6015 │ │ +4987fe: 120d |01c1: const/4 v13, #int 0 // #0 │ │ +498800: 6e30 f15c dc05 |01c2: invoke-virtual {v12, v13, v5}, Ljava/lang/String;.substring:(II)Ljava/lang/String; // method@5cf1 │ │ +498806: 0c0c |01c5: move-result-object v12 │ │ +498808: 6e10 f55c 0c00 |01c6: invoke-virtual {v12}, Ljava/lang/String;.toUpperCase:()Ljava/lang/String; // method@5cf5 │ │ +49880e: 0c0c |01c9: move-result-object v12 │ │ +498810: 6e20 1d5d c300 |01ca: invoke-virtual {v3, v12}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498816: 54bc 1560 |01cd: iget-object v12, v11, Lorg/purple/smokestack/ListenerElement;.m_status:Ljava/lang/String; // field@6015 │ │ +49881a: 6e20 f05c 5c00 |01cf: invoke-virtual {v12, v5}, Ljava/lang/String;.substring:(I)Ljava/lang/String; // method@5cf0 │ │ +498820: 0c0c |01d2: move-result-object v12 │ │ +498822: 6e20 1d5d c300 |01d3: invoke-virtual {v3, v12}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498828: 2806 |01d6: goto 01dc // +0006 │ │ +49882a: 1a0c f218 |01d7: const-string v12, "Disconnected" // string@18f2 │ │ +49882e: 6e20 1d5d c300 |01d9: invoke-virtual {v3, v12}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498834: 6e20 1d5d 9300 |01dc: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49883a: 54bc 0a60 |01df: iget-object v12, v11, Lorg/purple/smokestack/ListenerElement;.m_error:Ljava/lang/String; // field@600a │ │ +49883e: 6e10 e65c 0c00 |01e1: invoke-virtual {v12}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ +498844: 0a0c |01e4: move-result v12 │ │ +498846: 390c 0f00 |01e5: if-nez v12, 01f4 // +000f │ │ +49884a: 1a0c 141b |01e7: const-string v12, "Error: " // string@1b14 │ │ +49884e: 6e20 1d5d c300 |01e9: invoke-virtual {v3, v12}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498854: 54bc 0a60 |01ec: iget-object v12, v11, Lorg/purple/smokestack/ListenerElement;.m_error:Ljava/lang/String; // field@600a │ │ +498858: 6e20 1d5d c300 |01ee: invoke-virtual {v3, v12}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49885e: 6e20 1d5d 9300 |01f1: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498864: 1a09 220c |01f4: const-string v9, "Address: " // string@0c22 │ │ +498868: 6e20 1d5d 9300 |01f6: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49886e: 54b9 0d60 |01f9: iget-object v9, v11, Lorg/purple/smokestack/ListenerElement;.m_localIpAddress:Ljava/lang/String; // field@600d │ │ +498872: 6e20 1d5d 9300 |01fb: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498878: 54b9 0b60 |01fe: iget-object v9, v11, Lorg/purple/smokestack/ListenerElement;.m_ipVersion:Ljava/lang/String; // field@600b │ │ +49887c: 6e20 da5c 7900 |0200: invoke-virtual {v9, v7}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ +498882: 0a09 |0203: move-result v9 │ │ +498884: 3809 1200 |0204: if-eqz v9, 0216 // +0012 │ │ +498888: 54b9 0f60 |0206: iget-object v9, v11, Lorg/purple/smokestack/ListenerElement;.m_localScopeId:Ljava/lang/String; // field@600f │ │ +49888c: 6e10 e65c 0900 |0208: invoke-virtual {v9}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ +498892: 0a09 |020b: move-result v9 │ │ +498894: 3909 0a00 |020c: if-nez v9, 0216 // +000a │ │ +498898: 6e20 1d5d 6300 |020e: invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49889e: 54b9 0f60 |0211: iget-object v9, v11, Lorg/purple/smokestack/ListenerElement;.m_localScopeId:Ljava/lang/String; // field@600f │ │ +4988a2: 6e20 1d5d 9300 |0213: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4988a8: 6e20 1d5d 8300 |0216: invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4988ae: 54b9 0e60 |0219: iget-object v9, v11, Lorg/purple/smokestack/ListenerElement;.m_localPort:Ljava/lang/String; // field@600e │ │ +4988b2: 6e20 1d5d 9300 |021b: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4988b8: 54b9 0960 |021e: iget-object v9, v11, Lorg/purple/smokestack/ListenerElement;.m_certificate:[B // field@6009 │ │ +4988bc: 3809 1800 |0220: if-eqz v9, 0238 // +0018 │ │ +4988c0: 1a09 0b00 |0222: const-string v9, " │ │ Certificate Fingerprint: " // string@000b │ │ -4988c8: 6e20 1d5d 9300 |0224: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4988ce: 54b9 0960 |0227: iget-object v9, v11, Lorg/purple/smokestack/ListenerElement;.m_certificate:[B // field@6009 │ │ -4988d2: 7110 41d1 0900 |0229: invoke-static {v9}, Lorg/purple/smokestack/Miscellaneous;.pemFormat:([B)Ljava/lang/String; // method@d141 │ │ -4988d8: 0c09 |022c: move-result-object v9 │ │ -4988da: 6e10 de5c 0900 |022d: invoke-virtual {v9}, Ljava/lang/String;.getBytes:()[B // method@5cde │ │ -4988e0: 0c09 |0230: move-result-object v9 │ │ -4988e2: 7110 7cd0 0900 |0231: invoke-static {v9}, Lorg/purple/smokestack/Cryptography;.fingerPrint:([B)Ljava/lang/String; // method@d07c │ │ -4988e8: 0c09 |0234: move-result-object v9 │ │ -4988ea: 6e20 1d5d 9300 |0235: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4988f0: 1a09 0f00 |0238: const-string v9, " │ │ +4988c4: 6e20 1d5d 9300 |0224: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4988ca: 54b9 0960 |0227: iget-object v9, v11, Lorg/purple/smokestack/ListenerElement;.m_certificate:[B // field@6009 │ │ +4988ce: 7110 41d1 0900 |0229: invoke-static {v9}, Lorg/purple/smokestack/Miscellaneous;.pemFormat:([B)Ljava/lang/String; // method@d141 │ │ +4988d4: 0c09 |022c: move-result-object v9 │ │ +4988d6: 6e10 de5c 0900 |022d: invoke-virtual {v9}, Ljava/lang/String;.getBytes:()[B // method@5cde │ │ +4988dc: 0c09 |0230: move-result-object v9 │ │ +4988de: 7110 7cd0 0900 |0231: invoke-static {v9}, Lorg/purple/smokestack/Cryptography;.fingerPrint:([B)Ljava/lang/String; // method@d07c │ │ +4988e4: 0c09 |0234: move-result-object v9 │ │ +4988e6: 6e20 1d5d 9300 |0235: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4988ec: 1a09 0f00 |0238: const-string v9, " │ │ Maximum Clients: " // string@000f │ │ -4988f4: 6e20 1d5d 9300 |023a: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4988fa: 54b9 1060 |023d: iget-object v9, v11, Lorg/purple/smokestack/ListenerElement;.m_maximumClients:Ljava/lang/String; // field@6010 │ │ -4988fe: 6e20 1d5d 9300 |023f: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498904: 1a09 1000 |0242: const-string v9, " │ │ +4988f0: 6e20 1d5d 9300 |023a: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4988f6: 54b9 1060 |023d: iget-object v9, v11, Lorg/purple/smokestack/ListenerElement;.m_maximumClients:Ljava/lang/String; // field@6010 │ │ +4988fa: 6e20 1d5d 9300 |023f: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498900: 1a09 1000 |0242: const-string v9, " │ │ Peers Count: " // string@0010 │ │ -498908: 6e20 1d5d 9300 |0244: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49890e: 53bc 1260 |0247: iget-wide v12, v11, Lorg/purple/smokestack/ListenerElement;.m_peersCount:J // field@6012 │ │ -498912: 6e30 195d c30d |0249: invoke-virtual {v3, v12, v13}, Ljava/lang/StringBuilder;.append:(J)Ljava/lang/StringBuilder; // method@5d19 │ │ -498918: 1a09 1100 |024c: const-string v9, " │ │ +498904: 6e20 1d5d 9300 |0244: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49890a: 53bc 1260 |0247: iget-wide v12, v11, Lorg/purple/smokestack/ListenerElement;.m_peersCount:J // field@6012 │ │ +49890e: 6e30 195d c30d |0249: invoke-virtual {v3, v12, v13}, Ljava/lang/StringBuilder;.append:(J)Ljava/lang/StringBuilder; // method@5d19 │ │ +498914: 1a09 1100 |024c: const-string v9, " │ │ Private: " // string@0011 │ │ -49891c: 6e20 1d5d 9300 |024e: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498922: 55b9 0c60 |0251: iget-boolean v9, v11, Lorg/purple/smokestack/ListenerElement;.m_isPrivate:Z // field@600c │ │ -498926: 3809 0500 |0253: if-eqz v9, 0258 // +0005 │ │ -49892a: 1a09 145b |0255: const-string v9, "Yes" // string@5b14 │ │ -49892e: 2803 |0257: goto 025a // +0003 │ │ -498930: 1a09 2c47 |0258: const-string v9, "No" // string@472c │ │ -498934: 6e20 1d5d 9300 |025a: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49893a: 1a09 1600 |025d: const-string v9, " │ │ +498918: 6e20 1d5d 9300 |024e: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49891e: 55b9 0c60 |0251: iget-boolean v9, v11, Lorg/purple/smokestack/ListenerElement;.m_isPrivate:Z // field@600c │ │ +498922: 3809 0500 |0253: if-eqz v9, 0258 // +0005 │ │ +498926: 1a09 145b |0255: const-string v9, "Yes" // string@5b14 │ │ +49892a: 2803 |0257: goto 025a // +0003 │ │ +49892c: 1a09 2c47 |0258: const-string v9, "No" // string@472c │ │ +498930: 6e20 1d5d 9300 |025a: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498936: 1a09 1600 |025d: const-string v9, " │ │ Uptime: " // string@0016 │ │ -49893e: 6e20 1d5d 9300 |025f: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498944: 54b9 1760 |0262: iget-object v9, v11, Lorg/purple/smokestack/ListenerElement;.m_uptime:Ljava/lang/String; // field@6017 │ │ -498948: 7110 825c 0900 |0264: invoke-static {v9}, Ljava/lang/Long;.parseLong:(Ljava/lang/String;)J // method@5c82 │ │ -49894e: 0b0c |0267: move-result-wide v12 │ │ -498950: 7100 8960 0000 |0268: invoke-static {}, Ljava/util/Locale;.getDefault:()Ljava/util/Locale; // method@6089 │ │ -498956: 0c09 |026b: move-result-object v9 │ │ -498958: 1a05 3403 |026c: const-string v5, "%d:%02d" // string@0334 │ │ -49895c: 1220 |026e: const/4 v0, #int 2 // #2 │ │ -49895e: 2300 691f |026f: new-array v0, v0, [Ljava/lang/Object; // type@1f69 │ │ -498962: 0811 0400 |0271: move-object/from16 v17, v4 │ │ -498966: 6204 142d |0273: sget-object v4, Ljava/util/concurrent/TimeUnit;.NANOSECONDS:Ljava/util/concurrent/TimeUnit; // field@2d14 │ │ -49896a: 6e30 1261 c40d |0275: invoke-virtual {v4, v12, v13}, Ljava/util/concurrent/TimeUnit;.toMinutes:(J)J // method@6112 │ │ -498970: 0b12 |0278: move-result-wide v18 │ │ -498972: 7702 8a5c 1200 |0279: invoke-static/range {v18, v19}, Ljava/lang/Long;.valueOf:(J)Ljava/lang/Long; // method@5c8a │ │ -498978: 0c04 |027c: move-result-object v4 │ │ -49897a: 1310 0000 |027d: const/16 v16, #int 0 // #0 │ │ -49897e: 4d04 0010 |027f: aput-object v4, v0, v16 │ │ -498982: 6204 142d |0281: sget-object v4, Ljava/util/concurrent/TimeUnit;.NANOSECONDS:Ljava/util/concurrent/TimeUnit; // field@2d14 │ │ -498986: 6e30 1461 c40d |0283: invoke-virtual {v4, v12, v13}, Ljava/util/concurrent/TimeUnit;.toSeconds:(J)J // method@6114 │ │ -49898c: 0b12 |0286: move-result-wide v18 │ │ -49898e: 6204 132d |0287: sget-object v4, Ljava/util/concurrent/TimeUnit;.MINUTES:Ljava/util/concurrent/TimeUnit; // field@2d13 │ │ -498992: 0814 0600 |0289: move-object/from16 v20, v6 │ │ -498996: 6206 142d |028b: sget-object v6, Ljava/util/concurrent/TimeUnit;.NANOSECONDS:Ljava/util/concurrent/TimeUnit; // field@2d14 │ │ -49899a: 6e30 1261 c60d |028d: invoke-virtual {v6, v12, v13}, Ljava/util/concurrent/TimeUnit;.toMinutes:(J)J // method@6112 │ │ -4989a0: 0b0c |0290: move-result-wide v12 │ │ -4989a2: 6e30 1461 c40d |0291: invoke-virtual {v4, v12, v13}, Ljava/util/concurrent/TimeUnit;.toSeconds:(J)J // method@6114 │ │ -4989a8: 0b0c |0294: move-result-wide v12 │ │ -4989aa: 9c12 120c |0295: sub-long v18, v18, v12 │ │ -4989ae: 7702 8a5c 1200 |0297: invoke-static/range {v18, v19}, Ljava/lang/Long;.valueOf:(J)Ljava/lang/Long; // method@5c8a │ │ -4989b4: 0c04 |029a: move-result-object v4 │ │ -4989b6: 1216 |029b: const/4 v6, #int 1 // #1 │ │ -4989b8: 4d04 0006 |029c: aput-object v4, v0, v6 │ │ -4989bc: 7130 dd5c 5900 |029e: invoke-static {v9, v5, v0}, Ljava/lang/String;.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; // method@5cdd │ │ -4989c2: 0c00 |02a1: move-result-object v0 │ │ -4989c4: 6e20 1d5d 0300 |02a2: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4989ca: 280b |02a5: goto 02b0 // +000b │ │ -4989cc: 0811 0400 |02a6: move-object/from16 v17, v4 │ │ -4989d0: 0814 0600 |02a8: move-object/from16 v20, v6 │ │ -4989d4: 1216 |02aa: const/4 v6, #int 1 // #1 │ │ -4989d6: 1a00 d705 |02ab: const-string v0, "0:00" // string@05d7 │ │ -4989da: 6e20 1d5d 0300 |02ad: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4989e0: 1a00 d700 |02b0: const-string v0, " Min. │ │ +49893a: 6e20 1d5d 9300 |025f: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498940: 54b9 1760 |0262: iget-object v9, v11, Lorg/purple/smokestack/ListenerElement;.m_uptime:Ljava/lang/String; // field@6017 │ │ +498944: 7110 825c 0900 |0264: invoke-static {v9}, Ljava/lang/Long;.parseLong:(Ljava/lang/String;)J // method@5c82 │ │ +49894a: 0b0c |0267: move-result-wide v12 │ │ +49894c: 7100 8960 0000 |0268: invoke-static {}, Ljava/util/Locale;.getDefault:()Ljava/util/Locale; // method@6089 │ │ +498952: 0c09 |026b: move-result-object v9 │ │ +498954: 1a05 3403 |026c: const-string v5, "%d:%02d" // string@0334 │ │ +498958: 1220 |026e: const/4 v0, #int 2 // #2 │ │ +49895a: 2300 691f |026f: new-array v0, v0, [Ljava/lang/Object; // type@1f69 │ │ +49895e: 0811 0400 |0271: move-object/from16 v17, v4 │ │ +498962: 6204 142d |0273: sget-object v4, Ljava/util/concurrent/TimeUnit;.NANOSECONDS:Ljava/util/concurrent/TimeUnit; // field@2d14 │ │ +498966: 6e30 1261 c40d |0275: invoke-virtual {v4, v12, v13}, Ljava/util/concurrent/TimeUnit;.toMinutes:(J)J // method@6112 │ │ +49896c: 0b12 |0278: move-result-wide v18 │ │ +49896e: 7702 8a5c 1200 |0279: invoke-static/range {v18, v19}, Ljava/lang/Long;.valueOf:(J)Ljava/lang/Long; // method@5c8a │ │ +498974: 0c04 |027c: move-result-object v4 │ │ +498976: 1310 0000 |027d: const/16 v16, #int 0 // #0 │ │ +49897a: 4d04 0010 |027f: aput-object v4, v0, v16 │ │ +49897e: 6204 142d |0281: sget-object v4, Ljava/util/concurrent/TimeUnit;.NANOSECONDS:Ljava/util/concurrent/TimeUnit; // field@2d14 │ │ +498982: 6e30 1461 c40d |0283: invoke-virtual {v4, v12, v13}, Ljava/util/concurrent/TimeUnit;.toSeconds:(J)J // method@6114 │ │ +498988: 0b12 |0286: move-result-wide v18 │ │ +49898a: 6204 132d |0287: sget-object v4, Ljava/util/concurrent/TimeUnit;.MINUTES:Ljava/util/concurrent/TimeUnit; // field@2d13 │ │ +49898e: 0814 0600 |0289: move-object/from16 v20, v6 │ │ +498992: 6206 142d |028b: sget-object v6, Ljava/util/concurrent/TimeUnit;.NANOSECONDS:Ljava/util/concurrent/TimeUnit; // field@2d14 │ │ +498996: 6e30 1261 c60d |028d: invoke-virtual {v6, v12, v13}, Ljava/util/concurrent/TimeUnit;.toMinutes:(J)J // method@6112 │ │ +49899c: 0b0c |0290: move-result-wide v12 │ │ +49899e: 6e30 1461 c40d |0291: invoke-virtual {v4, v12, v13}, Ljava/util/concurrent/TimeUnit;.toSeconds:(J)J // method@6114 │ │ +4989a4: 0b0c |0294: move-result-wide v12 │ │ +4989a6: 9c12 120c |0295: sub-long v18, v18, v12 │ │ +4989aa: 7702 8a5c 1200 |0297: invoke-static/range {v18, v19}, Ljava/lang/Long;.valueOf:(J)Ljava/lang/Long; // method@5c8a │ │ +4989b0: 0c04 |029a: move-result-object v4 │ │ +4989b2: 1216 |029b: const/4 v6, #int 1 // #1 │ │ +4989b4: 4d04 0006 |029c: aput-object v4, v0, v6 │ │ +4989b8: 7130 dd5c 5900 |029e: invoke-static {v9, v5, v0}, Ljava/lang/String;.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; // method@5cdd │ │ +4989be: 0c00 |02a1: move-result-object v0 │ │ +4989c0: 6e20 1d5d 0300 |02a2: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4989c6: 280b |02a5: goto 02b0 // +000b │ │ +4989c8: 0811 0400 |02a6: move-object/from16 v17, v4 │ │ +4989cc: 0814 0600 |02a8: move-object/from16 v20, v6 │ │ +4989d0: 1216 |02aa: const/4 v6, #int 1 // #1 │ │ +4989d2: 1a00 d705 |02ab: const-string v0, "0:00" // string@05d7 │ │ +4989d6: 6e20 1d5d 0300 |02ad: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4989dc: 1a00 d700 |02b0: const-string v0, " Min. │ │ " // string@00d7 │ │ -4989e4: 6e20 1d5d 0300 |02b2: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4989ea: 54b0 1660 |02b5: iget-object v0, v11, Lorg/purple/smokestack/ListenerElement;.m_statusControl:Ljava/lang/String; // field@6016 │ │ -4989ee: 6e10 f35c 0000 |02b7: invoke-virtual {v0}, Ljava/lang/String;.toLowerCase:()Ljava/lang/String; // method@5cf3 │ │ -4989f4: 0c00 |02ba: move-result-object v0 │ │ -4989f6: 1a04 628a |02bb: const-string v4, "listen" // string@8a62 │ │ -4989fa: 6e20 da5c 4000 |02bd: invoke-virtual {v0, v4}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ -498a00: 0a00 |02c0: move-result v0 │ │ -498a02: 6e20 e75a 0f00 |02c1: invoke-virtual {v15, v0}, Landroid/widget/Switch;.setChecked:(Z)V // method@5ae7 │ │ -498a08: 1300 1000 |02c4: const/16 v0, #int 16 // #10 │ │ -498a0c: 6e20 e95a 0f00 |02c6: invoke-virtual {v15, v0}, Landroid/widget/Switch;.setGravity:(I)V // method@5ae9 │ │ -498a12: 52b0 1160 |02c9: iget v0, v11, Lorg/purple/smokestack/ListenerElement;.m_oid:I // field@6011 │ │ -498a16: 6e20 ea5a 0f00 |02cb: invoke-virtual {v15, v0}, Landroid/widget/Switch;.setId:(I)V // method@5aea │ │ -498a1c: 2200 990a |02ce: new-instance v0, Landroid/widget/TableRow$LayoutParams; // type@0a99 │ │ -498a20: 1504 803f |02d0: const/high16 v4, #int 1065353216 // #3f80 │ │ -498a24: 12e5 |02d2: const/4 v5, #int -2 // #fe │ │ -498a26: 1209 |02d3: const/4 v9, #int 0 // #0 │ │ -498a28: 7040 065b 9045 |02d4: invoke-direct {v0, v9, v5, v4}, Landroid/widget/TableRow$LayoutParams;.:(IIF)V // method@5b06 │ │ -498a2e: 6e20 ec5a 0f00 |02d7: invoke-virtual {v15, v0}, Landroid/widget/Switch;.setLayoutParams:(Landroid/view/ViewGroup$LayoutParams;)V // method@5aec │ │ -498a34: 2200 fc0a |02da: new-instance v0, Ljava/lang/StringBuilder; // type@0afc │ │ -498a38: 7010 125d 0000 |02dc: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ -498a3e: 54b4 0d60 |02df: iget-object v4, v11, Lorg/purple/smokestack/ListenerElement;.m_localIpAddress:Ljava/lang/String; // field@600d │ │ -498a42: 6e20 1d5d 4000 |02e1: invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498a48: 6e20 1d5d 8000 |02e4: invoke-virtual {v0, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498a4e: 54b4 0e60 |02e7: iget-object v4, v11, Lorg/purple/smokestack/ListenerElement;.m_localPort:Ljava/lang/String; // field@600e │ │ -498a52: 6e20 1d5d 4000 |02e9: invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498a58: 6e10 285d 0000 |02ec: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ -498a5e: 0c00 |02ef: move-result-object v0 │ │ -498a60: 6e20 ee5a 0f00 |02f0: invoke-virtual {v15, v0}, Landroid/widget/Switch;.setTag:(Ljava/lang/Object;)V // method@5aee │ │ -498a66: 6e20 ef5a 3f00 |02f3: invoke-virtual {v15, v3}, Landroid/widget/Switch;.setText:(Ljava/lang/CharSequence;)V // method@5aef │ │ -498a6c: 1500 5041 |02f6: const/high16 v0, #int 1095761920 // #4150 │ │ -498a70: 6e20 f15a 0f00 |02f8: invoke-virtual {v15, v0}, Landroid/widget/Switch;.setTextSize:(F)V // method@5af1 │ │ -498a76: 1300 f401 |02fb: const/16 v0, #int 500 // #1f4 │ │ -498a7a: 6e20 f25a 0f00 |02fd: invoke-virtual {v15, v0}, Landroid/widget/Switch;.setWidth:(I)V // method@5af2 │ │ -498a80: 380e 0800 |0300: if-eqz v14, 0308 // +0008 │ │ -498a84: 6e20 085b fe00 |0302: invoke-virtual {v14, v15}, Landroid/widget/TableRow;.addView:(Landroid/view/View;)V // method@5b08 │ │ -498a8a: 6e30 005b e20a |0305: invoke-virtual {v2, v14, v10}, Landroid/widget/TableLayout;.addView:(Landroid/view/View;I)V // method@5b00 │ │ -498a90: d80a 0a01 |0308: add-int/lit8 v10, v10, #int 1 // #01 │ │ -498a94: 0800 1500 |030a: move-object/from16 v0, v21 │ │ -498a98: 0804 1100 |030c: move-object/from16 v4, v17 │ │ -498a9c: 0806 1400 |030e: move-object/from16 v6, v20 │ │ -498aa0: 1215 |0310: const/4 v5, #int 1 // #1 │ │ -498aa2: 2900 bcfd |0311: goto/16 00cd // -0244 │ │ -498aa6: 6e10 d45f 0100 |0313: invoke-virtual {v1}, Ljava/util/ArrayList;.clear:()V // method@5fd4 │ │ -498aac: 0e00 |0316: return-void │ │ -498aae: 6e10 035b 0200 |0317: invoke-virtual {v2}, Landroid/widget/TableLayout;.removeAllViews:()V // method@5b03 │ │ -498ab4: 0e00 |031a: return-void │ │ +4989e0: 6e20 1d5d 0300 |02b2: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4989e6: 54b0 1660 |02b5: iget-object v0, v11, Lorg/purple/smokestack/ListenerElement;.m_statusControl:Ljava/lang/String; // field@6016 │ │ +4989ea: 6e10 f35c 0000 |02b7: invoke-virtual {v0}, Ljava/lang/String;.toLowerCase:()Ljava/lang/String; // method@5cf3 │ │ +4989f0: 0c00 |02ba: move-result-object v0 │ │ +4989f2: 1a04 628a |02bb: const-string v4, "listen" // string@8a62 │ │ +4989f6: 6e20 da5c 4000 |02bd: invoke-virtual {v0, v4}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ +4989fc: 0a00 |02c0: move-result v0 │ │ +4989fe: 6e20 e75a 0f00 |02c1: invoke-virtual {v15, v0}, Landroid/widget/Switch;.setChecked:(Z)V // method@5ae7 │ │ +498a04: 1300 1000 |02c4: const/16 v0, #int 16 // #10 │ │ +498a08: 6e20 e95a 0f00 |02c6: invoke-virtual {v15, v0}, Landroid/widget/Switch;.setGravity:(I)V // method@5ae9 │ │ +498a0e: 52b0 1160 |02c9: iget v0, v11, Lorg/purple/smokestack/ListenerElement;.m_oid:I // field@6011 │ │ +498a12: 6e20 ea5a 0f00 |02cb: invoke-virtual {v15, v0}, Landroid/widget/Switch;.setId:(I)V // method@5aea │ │ +498a18: 2200 990a |02ce: new-instance v0, Landroid/widget/TableRow$LayoutParams; // type@0a99 │ │ +498a1c: 1504 803f |02d0: const/high16 v4, #int 1065353216 // #3f80 │ │ +498a20: 12e5 |02d2: const/4 v5, #int -2 // #fe │ │ +498a22: 1209 |02d3: const/4 v9, #int 0 // #0 │ │ +498a24: 7040 065b 9045 |02d4: invoke-direct {v0, v9, v5, v4}, Landroid/widget/TableRow$LayoutParams;.:(IIF)V // method@5b06 │ │ +498a2a: 6e20 ec5a 0f00 |02d7: invoke-virtual {v15, v0}, Landroid/widget/Switch;.setLayoutParams:(Landroid/view/ViewGroup$LayoutParams;)V // method@5aec │ │ +498a30: 2200 fc0a |02da: new-instance v0, Ljava/lang/StringBuilder; // type@0afc │ │ +498a34: 7010 125d 0000 |02dc: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ +498a3a: 54b4 0d60 |02df: iget-object v4, v11, Lorg/purple/smokestack/ListenerElement;.m_localIpAddress:Ljava/lang/String; // field@600d │ │ +498a3e: 6e20 1d5d 4000 |02e1: invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498a44: 6e20 1d5d 8000 |02e4: invoke-virtual {v0, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498a4a: 54b4 0e60 |02e7: iget-object v4, v11, Lorg/purple/smokestack/ListenerElement;.m_localPort:Ljava/lang/String; // field@600e │ │ +498a4e: 6e20 1d5d 4000 |02e9: invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498a54: 6e10 285d 0000 |02ec: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ +498a5a: 0c00 |02ef: move-result-object v0 │ │ +498a5c: 6e20 ee5a 0f00 |02f0: invoke-virtual {v15, v0}, Landroid/widget/Switch;.setTag:(Ljava/lang/Object;)V // method@5aee │ │ +498a62: 6e20 ef5a 3f00 |02f3: invoke-virtual {v15, v3}, Landroid/widget/Switch;.setText:(Ljava/lang/CharSequence;)V // method@5aef │ │ +498a68: 1500 5041 |02f6: const/high16 v0, #int 1095761920 // #4150 │ │ +498a6c: 6e20 f15a 0f00 |02f8: invoke-virtual {v15, v0}, Landroid/widget/Switch;.setTextSize:(F)V // method@5af1 │ │ +498a72: 1300 f401 |02fb: const/16 v0, #int 500 // #1f4 │ │ +498a76: 6e20 f25a 0f00 |02fd: invoke-virtual {v15, v0}, Landroid/widget/Switch;.setWidth:(I)V // method@5af2 │ │ +498a7c: 380e 0800 |0300: if-eqz v14, 0308 // +0008 │ │ +498a80: 6e20 085b fe00 |0302: invoke-virtual {v14, v15}, Landroid/widget/TableRow;.addView:(Landroid/view/View;)V // method@5b08 │ │ +498a86: 6e30 005b e20a |0305: invoke-virtual {v2, v14, v10}, Landroid/widget/TableLayout;.addView:(Landroid/view/View;I)V // method@5b00 │ │ +498a8c: d80a 0a01 |0308: add-int/lit8 v10, v10, #int 1 // #01 │ │ +498a90: 0800 1500 |030a: move-object/from16 v0, v21 │ │ +498a94: 0804 1100 |030c: move-object/from16 v4, v17 │ │ +498a98: 0806 1400 |030e: move-object/from16 v6, v20 │ │ +498a9c: 1215 |0310: const/4 v5, #int 1 // #1 │ │ +498a9e: 2900 bcfd |0311: goto/16 00cd // -0244 │ │ +498aa2: 6e10 d45f 0100 |0313: invoke-virtual {v1}, Ljava/util/ArrayList;.clear:()V // method@5fd4 │ │ +498aa8: 0e00 |0316: return-void │ │ +498aaa: 6e10 035b 0200 |0317: invoke-virtual {v2}, Landroid/widget/TableLayout;.removeAllViews:()V // method@5b03 │ │ +498ab0: 0e00 |031a: return-void │ │ catches : 6 │ │ 0x0199 - 0x01af │ │ Ljava/lang/Exception; -> 0x01b0 │ │ 0x01bf - 0x01d6 │ │ Ljava/lang/Exception; -> 0x01d7 │ │ 0x0262 - 0x0271 │ │ Ljava/lang/Exception; -> 0x02a6 │ │ @@ -1715913,494 +1715912,494 @@ │ │ type : '(Ljava/util/ArrayList;)V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 24 │ │ ins : 2 │ │ outs : 5 │ │ insns size : 1022 16-bit code units │ │ -498b08: |[498b08] org.purple.smokestack.Settings.populateNeighbors:(Ljava/util/ArrayList;)V │ │ -498b18: 0800 1600 |0000: move-object/from16 v0, v22 │ │ -498b1c: 1401 5c00 087f |0002: const v1, #float 1.80777e+38 // #7f08005c │ │ -498b22: 6e20 f6d1 1000 |0005: invoke-virtual {v0, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -498b28: 0c01 |0008: move-result-object v1 │ │ -498b2a: 1f01 9c0a |0009: check-cast v1, Landroid/widget/TextView; // type@0a9c │ │ -498b2e: 2202 fc0a |000b: new-instance v2, Ljava/lang/StringBuilder; // type@0afc │ │ -498b32: 7010 125d 0200 |000d: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ -498b38: 1a03 3c20 |0010: const-string v3, "Internal Neighbors Container Size: " // string@203c │ │ -498b3c: 6e20 1d5d 3200 |0012: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498b42: 7100 02d1 0000 |0015: invoke-static {}, Lorg/purple/smokestack/Kernel;.getInstance:()Lorg/purple/smokestack/Kernel; // method@d102 │ │ -498b48: 0c03 |0018: move-result-object v3 │ │ -498b4a: 6e10 05d1 0300 |0019: invoke-virtual {v3}, Lorg/purple/smokestack/Kernel;.neighborsCount:()I // method@d105 │ │ -498b50: 0a03 |001c: move-result v3 │ │ -498b52: 6e20 185d 3200 |001d: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@5d18 │ │ -498b58: 6e10 285d 0200 |0020: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ -498b5e: 0c02 |0023: move-result-object v2 │ │ -498b60: 6e20 525b 2100 |0024: invoke-virtual {v1, v2}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ -498b66: 3917 0b00 |0027: if-nez v23, 0032 // +000b │ │ -498b6a: 5401 3269 |0029: iget-object v1, v0, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ -498b6e: 6202 3c69 |002b: sget-object v2, Lorg/purple/smokestack/Settings;.s_cryptography:Lorg/purple/smokestack/Cryptography; // field@693c │ │ -498b72: 6e20 c8d0 2100 |002d: invoke-virtual {v1, v2}, Lorg/purple/smokestack/Database;.readNeighbors:(Lorg/purple/smokestack/Cryptography;)Ljava/util/ArrayList; // method@d0c8 │ │ -498b78: 0c01 |0030: move-result-object v1 │ │ -498b7a: 2803 |0031: goto 0034 // +0003 │ │ -498b7c: 0801 1700 |0032: move-object/from16 v1, v23 │ │ -498b80: 1402 7700 087f |0034: const v2, #float 1.80777e+38 // #7f080077 │ │ -498b86: 6e20 f6d1 2000 |0037: invoke-virtual {v0, v2}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -498b8c: 0c02 |003a: move-result-object v2 │ │ -498b8e: 1f02 980a |003b: check-cast v2, Landroid/widget/TableLayout; // type@0a98 │ │ -498b92: 3801 bd03 |003d: if-eqz v1, 03fa // +03bd │ │ -498b96: 6e10 e15f 0100 |003f: invoke-virtual {v1}, Ljava/util/ArrayList;.size:()I // method@5fe1 │ │ -498b9c: 0a03 |0042: move-result v3 │ │ -498b9e: 3903 0400 |0043: if-nez v3, 0047 // +0004 │ │ -498ba2: 2900 b503 |0045: goto/16 03fa // +03b5 │ │ -498ba6: 2203 fc0a |0047: new-instance v3, Ljava/lang/StringBuilder; // type@0afc │ │ -498baa: 7010 125d 0300 |0049: invoke-direct {v3}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ -498bb0: 6e10 025b 0200 |004c: invoke-virtual {v2}, Landroid/widget/TableLayout;.getChildCount:()I // method@5b02 │ │ -498bb6: 0a04 |004f: move-result v4 │ │ -498bb8: 1215 |0050: const/4 v5, #int 1 // #1 │ │ -498bba: b154 |0051: sub-int/2addr v4, v5 │ │ -498bbc: 1a06 b804 |0052: const-string v6, "-" // string@04b8 │ │ -498bc0: 1a07 a21f |0054: const-string v7, "IPv6" // string@1fa2 │ │ -498bc4: 1a08 0109 |0056: const-string v8, ":" // string@0901 │ │ -498bc8: 1209 |0058: const/4 v9, #int 0 // #0 │ │ -498bca: 3a04 7600 |0059: if-ltz v4, 00cf // +0076 │ │ -498bce: 6e20 015b 4200 |005b: invoke-virtual {v2, v4}, Landroid/widget/TableLayout;.getChildAt:(I)Landroid/view/View; // method@5b01 │ │ -498bd4: 0c0a |005e: move-result-object v10 │ │ -498bd6: 1f0a 9a0a |005f: check-cast v10, Landroid/widget/TableRow; // type@0a9a │ │ -498bda: 390a 0300 |0061: if-nez v10, 0064 // +0003 │ │ -498bde: 2869 |0063: goto 00cc // +0069 │ │ -498be0: 6e20 095b 5a00 |0064: invoke-virtual {v10, v5}, Landroid/widget/TableRow;.getChildAt:(I)Landroid/view/View; // method@5b09 │ │ -498be6: 0c0b |0067: move-result-object v11 │ │ -498be8: 1f0b 9c0a |0068: check-cast v11, Landroid/widget/TextView; // type@0a9c │ │ -498bec: 390b 0600 |006a: if-nez v11, 0070 // +0006 │ │ -498bf0: 6e20 045b a200 |006c: invoke-virtual {v2, v10}, Landroid/widget/TableLayout;.removeView:(Landroid/view/View;)V // method@5b04 │ │ -498bf6: 285d |006f: goto 00cc // +005d │ │ -498bf8: 6e10 db5f 0100 |0070: invoke-virtual {v1}, Ljava/util/ArrayList;.iterator:()Ljava/util/Iterator; // method@5fdb │ │ -498bfe: 0c0c |0073: move-result-object v12 │ │ -498c00: 7210 4f60 0c00 |0074: invoke-interface {v12}, Ljava/util/Iterator;.hasNext:()Z // method@604f │ │ -498c06: 0a0d |0077: move-result v13 │ │ -498c08: 380d 4f00 |0078: if-eqz v13, 00c7 // +004f │ │ -498c0c: 7210 5060 0c00 |007a: invoke-interface {v12}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@6050 │ │ -498c12: 0c0d |007d: move-result-object v13 │ │ -498c14: 1f0d b21e |007e: check-cast v13, Lorg/purple/smokestack/NeighborElement; // type@1eb2 │ │ -498c18: 6e10 245d 0300 |0080: invoke-virtual {v3}, Ljava/lang/StringBuilder;.length:()I // method@5d24 │ │ -498c1e: 0a0e |0083: move-result v14 │ │ -498c20: 6e30 215d 930e |0084: invoke-virtual {v3, v9, v14}, Ljava/lang/StringBuilder;.delete:(II)Ljava/lang/StringBuilder; // method@5d21 │ │ -498c26: 54de 6b60 |0087: iget-object v14, v13, Lorg/purple/smokestack/NeighborElement;.m_remoteIpAddress:Ljava/lang/String; // field@606b │ │ -498c2a: 6e20 1d5d e300 |0089: invoke-virtual {v3, v14}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498c30: 54de 6060 |008c: iget-object v14, v13, Lorg/purple/smokestack/NeighborElement;.m_ipVersion:Ljava/lang/String; // field@6060 │ │ -498c34: 6e20 da5c 7e00 |008e: invoke-virtual {v14, v7}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ -498c3a: 0a0e |0091: move-result v14 │ │ -498c3c: 380e 1200 |0092: if-eqz v14, 00a4 // +0012 │ │ -498c40: 54de 6d60 |0094: iget-object v14, v13, Lorg/purple/smokestack/NeighborElement;.m_remoteScopeId:Ljava/lang/String; // field@606d │ │ -498c44: 6e10 e65c 0e00 |0096: invoke-virtual {v14}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ -498c4a: 0a0e |0099: move-result v14 │ │ -498c4c: 390e 0a00 |009a: if-nez v14, 00a4 // +000a │ │ -498c50: 6e20 1d5d 6300 |009c: invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498c56: 54de 6d60 |009f: iget-object v14, v13, Lorg/purple/smokestack/NeighborElement;.m_remoteScopeId:Ljava/lang/String; // field@606d │ │ -498c5a: 6e20 1d5d e300 |00a1: invoke-virtual {v3, v14}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498c60: 6e20 1d5d 8300 |00a4: invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498c66: 54de 6c60 |00a7: iget-object v14, v13, Lorg/purple/smokestack/NeighborElement;.m_remotePort:Ljava/lang/String; // field@606c │ │ -498c6a: 6e20 1d5d e300 |00a9: invoke-virtual {v3, v14}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498c70: 6e20 1d5d 8300 |00ac: invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498c76: 54dd 7160 |00af: iget-object v13, v13, Lorg/purple/smokestack/NeighborElement;.m_transport:Ljava/lang/String; // field@6071 │ │ -498c7a: 6e20 1d5d d300 |00b1: invoke-virtual {v3, v13}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498c80: 6e10 275b 0b00 |00b4: invoke-virtual {v11}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ -498c86: 0c0d |00b7: move-result-object v13 │ │ -498c88: 7210 1b5c 0d00 |00b8: invoke-interface {v13}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ -498c8e: 0c0d |00bb: move-result-object v13 │ │ -498c90: 6e10 285d 0300 |00bc: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ -498c96: 0c0e |00bf: move-result-object v14 │ │ -498c98: 6e20 d85c ed00 |00c0: invoke-virtual {v13, v14}, Ljava/lang/String;.contains:(Ljava/lang/CharSequence;)Z // method@5cd8 │ │ -498c9e: 0a0d |00c3: move-result v13 │ │ -498ca0: 380d b0ff |00c4: if-eqz v13, 0074 // -0050 │ │ -498ca4: 1219 |00c6: const/4 v9, #int 1 // #1 │ │ -498ca6: 3909 0500 |00c7: if-nez v9, 00cc // +0005 │ │ -498caa: 6e20 045b a200 |00c9: invoke-virtual {v2, v10}, Landroid/widget/TableLayout;.removeView:(Landroid/view/View;)V // method@5b04 │ │ -498cb0: d804 04ff |00cc: add-int/lit8 v4, v4, #int -1 // #ff │ │ -498cb4: 2884 |00ce: goto 0052 // -007c │ │ -498cb6: 1404 7600 087f |00cf: const v4, #float 1.80777e+38 // #7f080076 │ │ -498cbc: 6e20 f6d1 4000 |00d2: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -498cc2: 0c04 |00d5: move-result-object v4 │ │ -498cc4: 1f04 920a |00d6: check-cast v4, Landroid/widget/Switch; // type@0a92 │ │ -498cc8: 6e10 db5f 0100 |00d8: invoke-virtual {v1}, Ljava/util/ArrayList;.iterator:()Ljava/util/Iterator; // method@5fdb │ │ -498cce: 0c0a |00db: move-result-object v10 │ │ -498cd0: 120b |00dc: const/4 v11, #int 0 // #0 │ │ -498cd2: 7210 4f60 0a00 |00dd: invoke-interface {v10}, Ljava/util/Iterator;.hasNext:()Z // method@604f │ │ -498cd8: 0a0c |00e0: move-result v12 │ │ -498cda: 380c 1503 |00e1: if-eqz v12, 03f6 // +0315 │ │ -498cde: 7210 5060 0a00 |00e3: invoke-interface {v10}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@6050 │ │ -498ce4: 0c0c |00e6: move-result-object v12 │ │ -498ce6: 1f0c b21e |00e7: check-cast v12, Lorg/purple/smokestack/NeighborElement; // type@1eb2 │ │ -498cea: 390c 0300 |00e9: if-nez v12, 00ec // +0003 │ │ -498cee: 28f2 |00eb: goto 00dd // -000e │ │ -498cf0: 6e10 025b 0200 |00ec: invoke-virtual {v2}, Landroid/widget/TableLayout;.getChildCount:()I // method@5b02 │ │ -498cf6: 0a0d |00ef: move-result v13 │ │ -498cf8: 120e |00f0: const/4 v14, #int 0 // #0 │ │ -498cfa: 35de 6200 |00f1: if-ge v14, v13, 0153 // +0062 │ │ -498cfe: 6e20 015b e200 |00f3: invoke-virtual {v2, v14}, Landroid/widget/TableLayout;.getChildAt:(I)Landroid/view/View; // method@5b01 │ │ -498d04: 0c10 |00f6: move-result-object v16 │ │ -498d06: 080f 1000 |00f7: move-object/from16 v15, v16 │ │ -498d0a: 1f0f 9a0a |00f9: check-cast v15, Landroid/widget/TableRow; // type@0a9a │ │ -498d0e: 390f 0300 |00fb: if-nez v15, 00fe // +0003 │ │ -498d12: 2851 |00fd: goto 014e // +0051 │ │ -498d14: 6e20 095b 5f00 |00fe: invoke-virtual {v15, v5}, Landroid/widget/TableRow;.getChildAt:(I)Landroid/view/View; // method@5b09 │ │ -498d1a: 0c0f |0101: move-result-object v15 │ │ -498d1c: 1f0f 9c0a |0102: check-cast v15, Landroid/widget/TextView; // type@0a9c │ │ -498d20: 390f 0300 |0104: if-nez v15, 0107 // +0003 │ │ -498d24: 2848 |0106: goto 014e // +0048 │ │ -498d26: 6e10 245d 0300 |0107: invoke-virtual {v3}, Ljava/lang/StringBuilder;.length:()I // method@5d24 │ │ -498d2c: 0a05 |010a: move-result v5 │ │ -498d2e: 6e30 215d 9305 |010b: invoke-virtual {v3, v9, v5}, Ljava/lang/StringBuilder;.delete:(II)Ljava/lang/StringBuilder; // method@5d21 │ │ -498d34: 54c5 6b60 |010e: iget-object v5, v12, Lorg/purple/smokestack/NeighborElement;.m_remoteIpAddress:Ljava/lang/String; // field@606b │ │ -498d38: 6e20 1d5d 5300 |0110: invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498d3e: 54c5 6060 |0113: iget-object v5, v12, Lorg/purple/smokestack/NeighborElement;.m_ipVersion:Ljava/lang/String; // field@6060 │ │ -498d42: 6e20 da5c 7500 |0115: invoke-virtual {v5, v7}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ -498d48: 0a05 |0118: move-result v5 │ │ -498d4a: 3805 1200 |0119: if-eqz v5, 012b // +0012 │ │ -498d4e: 54c5 6d60 |011b: iget-object v5, v12, Lorg/purple/smokestack/NeighborElement;.m_remoteScopeId:Ljava/lang/String; // field@606d │ │ -498d52: 6e10 e65c 0500 |011d: invoke-virtual {v5}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ -498d58: 0a05 |0120: move-result v5 │ │ -498d5a: 3905 0a00 |0121: if-nez v5, 012b // +000a │ │ -498d5e: 6e20 1d5d 6300 |0123: invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498d64: 54c5 6d60 |0126: iget-object v5, v12, Lorg/purple/smokestack/NeighborElement;.m_remoteScopeId:Ljava/lang/String; // field@606d │ │ -498d68: 6e20 1d5d 5300 |0128: invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498d6e: 6e20 1d5d 8300 |012b: invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498d74: 54c5 6c60 |012e: iget-object v5, v12, Lorg/purple/smokestack/NeighborElement;.m_remotePort:Ljava/lang/String; // field@606c │ │ -498d78: 6e20 1d5d 5300 |0130: invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498d7e: 6e20 1d5d 8300 |0133: invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498d84: 54c5 7160 |0136: iget-object v5, v12, Lorg/purple/smokestack/NeighborElement;.m_transport:Ljava/lang/String; // field@6071 │ │ -498d88: 6e20 1d5d 5300 |0138: invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498d8e: 6e10 275b 0f00 |013b: invoke-virtual {v15}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ -498d94: 0c05 |013e: move-result-object v5 │ │ -498d96: 7210 1b5c 0500 |013f: invoke-interface {v5}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ -498d9c: 0c05 |0142: move-result-object v5 │ │ -498d9e: 6e10 285d 0300 |0143: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ -498da4: 0c09 |0146: move-result-object v9 │ │ -498da6: 6e20 d85c 9500 |0147: invoke-virtual {v5, v9}, Ljava/lang/String;.contains:(Ljava/lang/CharSequence;)Z // method@5cd8 │ │ -498dac: 0a05 |014a: move-result v5 │ │ -498dae: 3805 0300 |014b: if-eqz v5, 014e // +0003 │ │ -498db2: 2807 |014d: goto 0154 // +0007 │ │ -498db4: d80e 0e01 |014e: add-int/lit8 v14, v14, #int 1 // #01 │ │ -498db8: 1215 |0150: const/4 v5, #int 1 // #1 │ │ -498dba: 1209 |0151: const/4 v9, #int 0 // #0 │ │ -498dbc: 289f |0152: goto 00f1 // -0061 │ │ -498dbe: 120f |0153: const/4 v15, #int 0 // #0 │ │ -498dc0: 12e5 |0154: const/4 v5, #int -2 // #fe │ │ -498dc2: 1a09 f118 |0155: const-string v9, "Disconnect" // string@18f1 │ │ -498dc6: 390f 5800 |0157: if-nez v15, 01af // +0058 │ │ -498dca: 220d 990a |0159: new-instance v13, Landroid/widget/TableRow$LayoutParams; // type@0a99 │ │ -498dce: 7020 055b 5d00 |015b: invoke-direct {v13, v5}, Landroid/widget/TableRow$LayoutParams;.:(I)V // method@5b05 │ │ -498dd4: 220f 9a0a |015e: new-instance v15, Landroid/widget/TableRow; // type@0a9a │ │ -498dd8: 7020 075b 0f00 |0160: invoke-direct {v15, v0}, Landroid/widget/TableRow;.:(Landroid/content/Context;)V // method@5b07 │ │ -498dde: 52ce 6360 |0163: iget v14, v12, Lorg/purple/smokestack/NeighborElement;.m_oid:I // field@6063 │ │ -498de2: 6e20 0a5b ef00 |0165: invoke-virtual {v15, v14}, Landroid/widget/TableRow;.setId:(I)V // method@5b0a │ │ -498de8: 6e20 0b5b df00 |0168: invoke-virtual {v15, v13}, Landroid/widget/TableRow;.setLayoutParams:(Landroid/view/ViewGroup$LayoutParams;)V // method@5b0b │ │ -498dee: 220d 900a |016b: new-instance v13, Landroid/widget/Spinner; // type@0a90 │ │ -498df2: 7020 bc5a 0d00 |016d: invoke-direct {v13, v0}, Landroid/widget/Spinner;.:(Landroid/content/Context;)V // method@5abc │ │ -498df8: 54ce 7160 |0170: iget-object v14, v12, Lorg/purple/smokestack/NeighborElement;.m_transport:Ljava/lang/String; // field@6071 │ │ -498dfc: 1a05 5c53 |0172: const-string v5, "TCP" // string@535c │ │ -498e00: 6e20 da5c 5e00 |0174: invoke-virtual {v14, v5}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ -498e06: 0a05 |0177: move-result v5 │ │ -498e08: 1a0e 9e18 |0178: const-string v14, "Delete" // string@189e │ │ -498e0c: 0812 0a00 |017a: move-object/from16 v18, v10 │ │ -498e10: 1a0a 3315 |017c: const-string v10, "Connect" // string@1533 │ │ -498e14: 0817 0f00 |017e: move-object/from16 v23, v15 │ │ -498e18: 1a0f 950b |0180: const-string v15, "Action" // string@0b95 │ │ -498e1c: 3805 0900 |0182: if-eqz v5, 018b // +0009 │ │ -498e20: 1a05 1b4d |0184: const-string v5, "Reset SSL/TLS Credentials" // string@4d1b │ │ -498e24: 2455 6b1f af9e |0186: filled-new-array {v15, v10, v14, v9, v5}, [Ljava/lang/String; // type@1f6b │ │ -498e2a: 0c05 |0189: move-result-object v5 │ │ -498e2c: 2805 |018a: goto 018f // +0005 │ │ -498e2e: 2440 6b1f af9e |018b: filled-new-array {v15, v10, v14, v9}, [Ljava/lang/String; // type@1f6b │ │ -498e34: 0c05 |018e: move-result-object v5 │ │ -498e36: 220a 610a |018f: new-instance v10, Landroid/widget/ArrayAdapter; // type@0a61 │ │ -498e3a: 140e 0800 0901 |0191: const v14, #float 2.51629e-38 // #01090008 │ │ -498e40: 7040 e758 0a5e |0194: invoke-direct {v10, v0, v14, v5}, Landroid/widget/ArrayAdapter;.:(Landroid/content/Context;I[Ljava/lang/Object;)V // method@58e7 │ │ -498e46: 6e20 ce5a ad00 |0197: invoke-virtual {v13, v10}, Landroid/widget/Spinner;.setAdapter:(Landroid/widget/SpinnerAdapter;)V // method@5ace │ │ -498e4c: 52c5 6360 |019a: iget v5, v12, Lorg/purple/smokestack/NeighborElement;.m_oid:I // field@6063 │ │ -498e50: 6e20 d55a 5d00 |019c: invoke-virtual {v13, v5}, Landroid/widget/Spinner;.setId:(I)V // method@5ad5 │ │ -498e56: 2205 e61e |019f: new-instance v5, Lorg/purple/smokestack/Settings$5; // type@1ee6 │ │ -498e5a: 7030 c3d1 0502 |01a1: invoke-direct {v5, v0, v2}, Lorg/purple/smokestack/Settings$5;.:(Lorg/purple/smokestack/Settings;Landroid/widget/TableLayout;)V // method@d1c3 │ │ -498e60: 6e20 d75a 5d00 |01a4: invoke-virtual {v13, v5}, Landroid/widget/Spinner;.setOnItemSelectedListener:(Landroid/widget/AdapterView$OnItemSelectedListener;)V // method@5ad7 │ │ -498e66: 220f 9c0a |01a7: new-instance v15, Landroid/widget/TextView; // type@0a9c │ │ -498e6a: 7020 0c5b 0f00 |01a9: invoke-direct {v15, v0}, Landroid/widget/TextView;.:(Landroid/content/Context;)V // method@5b0c │ │ -498e70: 0805 1700 |01ac: move-object/from16 v5, v23 │ │ -498e74: 2805 |01ae: goto 01b3 // +0005 │ │ -498e76: 0812 0a00 |01af: move-object/from16 v18, v10 │ │ -498e7a: 1205 |01b1: const/4 v5, #int 0 // #0 │ │ -498e7c: 120d |01b2: const/4 v13, #int 0 // #0 │ │ -498e7e: 54ca 6f60 |01b3: iget-object v10, v12, Lorg/purple/smokestack/NeighborElement;.m_status:Ljava/lang/String; // field@606f │ │ -498e82: 6e10 e15c 0a00 |01b5: invoke-virtual {v10}, Ljava/lang/String;.hashCode:()I // method@5ce1 │ │ -498e88: 1a0e ce68 |01b8: const-string v14, "connecting" // string@68ce │ │ -498e8c: 6e20 da5c ea00 |01ba: invoke-virtual {v10, v14}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ -498e92: 0a0e |01bd: move-result v14 │ │ -498e94: 390e 2500 |01be: if-nez v14, 01e3 // +0025 │ │ -498e98: 1a0e cc68 |01c0: const-string v14, "connected" // string@68cc │ │ -498e9c: 6e20 da5c ea00 |01c2: invoke-virtual {v10, v14}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ -498ea2: 0a0a |01c5: move-result v10 │ │ -498ea4: 390a 0e00 |01c6: if-nez v10, 01d4 // +000e │ │ -498ea8: 130a b700 |01c8: const/16 v10, #int 183 // #b7 │ │ -498eac: 130e 1c00 |01ca: const/16 v14, #int 28 // #1c │ │ -498eb0: 7130 c102 ea0e |01cc: invoke-static {v10, v14, v14}, Landroid/graphics/Color;.rgb:(III)I // method@02c1 │ │ -498eb6: 0a0a |01cf: move-result v10 │ │ -498eb8: 6e20 555b af00 |01d0: invoke-virtual {v15, v10}, Landroid/widget/TextView;.setTextColor:(I)V // method@5b55 │ │ -498ebe: 280e |01d3: goto 01e1 // +000e │ │ -498ec0: 130a 1b00 |01d4: const/16 v10, #int 27 // #1b │ │ -498ec4: 130e 5e00 |01d6: const/16 v14, #int 94 // #5e │ │ -498ec8: 1300 2000 |01d8: const/16 v0, #int 32 // #20 │ │ -498ecc: 7130 c102 ea00 |01da: invoke-static {v10, v14, v0}, Landroid/graphics/Color;.rgb:(III)I // method@02c1 │ │ -498ed2: 0a00 |01dd: move-result v0 │ │ -498ed4: 6e20 555b 0f00 |01de: invoke-virtual {v15, v0}, Landroid/widget/TextView;.setTextColor:(I)V // method@5b55 │ │ -498eda: 120e |01e1: const/4 v14, #int 0 // #0 │ │ -498edc: 280d |01e2: goto 01ef // +000d │ │ -498ede: 1300 ff00 |01e3: const/16 v0, #int 255 // #ff │ │ -498ee2: 130a 6f00 |01e5: const/16 v10, #int 111 // #6f │ │ -498ee6: 120e |01e7: const/4 v14, #int 0 // #0 │ │ -498ee8: 7130 c102 a00e |01e8: invoke-static {v0, v10, v14}, Landroid/graphics/Color;.rgb:(III)I // method@02c1 │ │ -498eee: 0a00 |01eb: move-result v0 │ │ -498ef0: 6e20 555b 0f00 |01ec: invoke-virtual {v15, v0}, Landroid/widget/TextView;.setTextColor:(I)V // method@5b55 │ │ -498ef6: 6e10 245d 0300 |01ef: invoke-virtual {v3}, Ljava/lang/StringBuilder;.length:()I // method@5d24 │ │ -498efc: 0a00 |01f2: move-result v0 │ │ -498efe: 6e30 215d e300 |01f3: invoke-virtual {v3, v14, v0}, Ljava/lang/StringBuilder;.delete:(II)Ljava/lang/StringBuilder; // method@5d21 │ │ -498f04: 1a00 1516 |01f6: const-string v0, "Control: " // string@1615 │ │ -498f08: 6e20 1d5d 0300 |01f8: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498f0e: 54c0 7060 |01fb: iget-object v0, v12, Lorg/purple/smokestack/NeighborElement;.m_statusControl:Ljava/lang/String; // field@6070 │ │ -498f12: 121a |01fd: const/4 v10, #int 1 // #1 │ │ -498f14: 6e30 f15c e00a |01fe: invoke-virtual {v0, v14, v10}, Ljava/lang/String;.substring:(II)Ljava/lang/String; // method@5cf1 │ │ -498f1a: 0c00 |0201: move-result-object v0 │ │ -498f1c: 6e10 f55c 0000 |0202: invoke-virtual {v0}, Ljava/lang/String;.toUpperCase:()Ljava/lang/String; // method@5cf5 │ │ -498f22: 0c00 |0205: move-result-object v0 │ │ -498f24: 6e20 1d5d 0300 |0206: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498f2a: 54c0 7060 |0209: iget-object v0, v12, Lorg/purple/smokestack/NeighborElement;.m_statusControl:Ljava/lang/String; // field@6070 │ │ -498f2e: 6e20 f05c a000 |020b: invoke-virtual {v0, v10}, Ljava/lang/String;.substring:(I)Ljava/lang/String; // method@5cf0 │ │ -498f34: 0c00 |020e: move-result-object v0 │ │ -498f36: 6e20 1d5d 0300 |020f: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498f3c: 2804 |0212: goto 0216 // +0004 │ │ -498f3e: 6e20 1d5d 9300 |0213: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498f44: 1a00 0200 |0216: const-string v0, " │ │ +498b04: |[498b04] org.purple.smokestack.Settings.populateNeighbors:(Ljava/util/ArrayList;)V │ │ +498b14: 0800 1600 |0000: move-object/from16 v0, v22 │ │ +498b18: 1401 5c00 087f |0002: const v1, #float 1.80777e+38 // #7f08005c │ │ +498b1e: 6e20 f6d1 1000 |0005: invoke-virtual {v0, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +498b24: 0c01 |0008: move-result-object v1 │ │ +498b26: 1f01 9c0a |0009: check-cast v1, Landroid/widget/TextView; // type@0a9c │ │ +498b2a: 2202 fc0a |000b: new-instance v2, Ljava/lang/StringBuilder; // type@0afc │ │ +498b2e: 7010 125d 0200 |000d: invoke-direct {v2}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ +498b34: 1a03 3c20 |0010: const-string v3, "Internal Neighbors Container Size: " // string@203c │ │ +498b38: 6e20 1d5d 3200 |0012: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498b3e: 7100 02d1 0000 |0015: invoke-static {}, Lorg/purple/smokestack/Kernel;.getInstance:()Lorg/purple/smokestack/Kernel; // method@d102 │ │ +498b44: 0c03 |0018: move-result-object v3 │ │ +498b46: 6e10 05d1 0300 |0019: invoke-virtual {v3}, Lorg/purple/smokestack/Kernel;.neighborsCount:()I // method@d105 │ │ +498b4c: 0a03 |001c: move-result v3 │ │ +498b4e: 6e20 185d 3200 |001d: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@5d18 │ │ +498b54: 6e10 285d 0200 |0020: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ +498b5a: 0c02 |0023: move-result-object v2 │ │ +498b5c: 6e20 525b 2100 |0024: invoke-virtual {v1, v2}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ +498b62: 3917 0b00 |0027: if-nez v23, 0032 // +000b │ │ +498b66: 5401 3269 |0029: iget-object v1, v0, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ +498b6a: 6202 3c69 |002b: sget-object v2, Lorg/purple/smokestack/Settings;.s_cryptography:Lorg/purple/smokestack/Cryptography; // field@693c │ │ +498b6e: 6e20 c8d0 2100 |002d: invoke-virtual {v1, v2}, Lorg/purple/smokestack/Database;.readNeighbors:(Lorg/purple/smokestack/Cryptography;)Ljava/util/ArrayList; // method@d0c8 │ │ +498b74: 0c01 |0030: move-result-object v1 │ │ +498b76: 2803 |0031: goto 0034 // +0003 │ │ +498b78: 0801 1700 |0032: move-object/from16 v1, v23 │ │ +498b7c: 1402 7700 087f |0034: const v2, #float 1.80777e+38 // #7f080077 │ │ +498b82: 6e20 f6d1 2000 |0037: invoke-virtual {v0, v2}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +498b88: 0c02 |003a: move-result-object v2 │ │ +498b8a: 1f02 980a |003b: check-cast v2, Landroid/widget/TableLayout; // type@0a98 │ │ +498b8e: 3801 bd03 |003d: if-eqz v1, 03fa // +03bd │ │ +498b92: 6e10 e15f 0100 |003f: invoke-virtual {v1}, Ljava/util/ArrayList;.size:()I // method@5fe1 │ │ +498b98: 0a03 |0042: move-result v3 │ │ +498b9a: 3903 0400 |0043: if-nez v3, 0047 // +0004 │ │ +498b9e: 2900 b503 |0045: goto/16 03fa // +03b5 │ │ +498ba2: 2203 fc0a |0047: new-instance v3, Ljava/lang/StringBuilder; // type@0afc │ │ +498ba6: 7010 125d 0300 |0049: invoke-direct {v3}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ +498bac: 6e10 025b 0200 |004c: invoke-virtual {v2}, Landroid/widget/TableLayout;.getChildCount:()I // method@5b02 │ │ +498bb2: 0a04 |004f: move-result v4 │ │ +498bb4: 1215 |0050: const/4 v5, #int 1 // #1 │ │ +498bb6: b154 |0051: sub-int/2addr v4, v5 │ │ +498bb8: 1a06 b804 |0052: const-string v6, "-" // string@04b8 │ │ +498bbc: 1a07 a21f |0054: const-string v7, "IPv6" // string@1fa2 │ │ +498bc0: 1a08 0109 |0056: const-string v8, ":" // string@0901 │ │ +498bc4: 1209 |0058: const/4 v9, #int 0 // #0 │ │ +498bc6: 3a04 7600 |0059: if-ltz v4, 00cf // +0076 │ │ +498bca: 6e20 015b 4200 |005b: invoke-virtual {v2, v4}, Landroid/widget/TableLayout;.getChildAt:(I)Landroid/view/View; // method@5b01 │ │ +498bd0: 0c0a |005e: move-result-object v10 │ │ +498bd2: 1f0a 9a0a |005f: check-cast v10, Landroid/widget/TableRow; // type@0a9a │ │ +498bd6: 390a 0300 |0061: if-nez v10, 0064 // +0003 │ │ +498bda: 2869 |0063: goto 00cc // +0069 │ │ +498bdc: 6e20 095b 5a00 |0064: invoke-virtual {v10, v5}, Landroid/widget/TableRow;.getChildAt:(I)Landroid/view/View; // method@5b09 │ │ +498be2: 0c0b |0067: move-result-object v11 │ │ +498be4: 1f0b 9c0a |0068: check-cast v11, Landroid/widget/TextView; // type@0a9c │ │ +498be8: 390b 0600 |006a: if-nez v11, 0070 // +0006 │ │ +498bec: 6e20 045b a200 |006c: invoke-virtual {v2, v10}, Landroid/widget/TableLayout;.removeView:(Landroid/view/View;)V // method@5b04 │ │ +498bf2: 285d |006f: goto 00cc // +005d │ │ +498bf4: 6e10 db5f 0100 |0070: invoke-virtual {v1}, Ljava/util/ArrayList;.iterator:()Ljava/util/Iterator; // method@5fdb │ │ +498bfa: 0c0c |0073: move-result-object v12 │ │ +498bfc: 7210 4f60 0c00 |0074: invoke-interface {v12}, Ljava/util/Iterator;.hasNext:()Z // method@604f │ │ +498c02: 0a0d |0077: move-result v13 │ │ +498c04: 380d 4f00 |0078: if-eqz v13, 00c7 // +004f │ │ +498c08: 7210 5060 0c00 |007a: invoke-interface {v12}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@6050 │ │ +498c0e: 0c0d |007d: move-result-object v13 │ │ +498c10: 1f0d b21e |007e: check-cast v13, Lorg/purple/smokestack/NeighborElement; // type@1eb2 │ │ +498c14: 6e10 245d 0300 |0080: invoke-virtual {v3}, Ljava/lang/StringBuilder;.length:()I // method@5d24 │ │ +498c1a: 0a0e |0083: move-result v14 │ │ +498c1c: 6e30 215d 930e |0084: invoke-virtual {v3, v9, v14}, Ljava/lang/StringBuilder;.delete:(II)Ljava/lang/StringBuilder; // method@5d21 │ │ +498c22: 54de 6b60 |0087: iget-object v14, v13, Lorg/purple/smokestack/NeighborElement;.m_remoteIpAddress:Ljava/lang/String; // field@606b │ │ +498c26: 6e20 1d5d e300 |0089: invoke-virtual {v3, v14}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498c2c: 54de 6060 |008c: iget-object v14, v13, Lorg/purple/smokestack/NeighborElement;.m_ipVersion:Ljava/lang/String; // field@6060 │ │ +498c30: 6e20 da5c 7e00 |008e: invoke-virtual {v14, v7}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ +498c36: 0a0e |0091: move-result v14 │ │ +498c38: 380e 1200 |0092: if-eqz v14, 00a4 // +0012 │ │ +498c3c: 54de 6d60 |0094: iget-object v14, v13, Lorg/purple/smokestack/NeighborElement;.m_remoteScopeId:Ljava/lang/String; // field@606d │ │ +498c40: 6e10 e65c 0e00 |0096: invoke-virtual {v14}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ +498c46: 0a0e |0099: move-result v14 │ │ +498c48: 390e 0a00 |009a: if-nez v14, 00a4 // +000a │ │ +498c4c: 6e20 1d5d 6300 |009c: invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498c52: 54de 6d60 |009f: iget-object v14, v13, Lorg/purple/smokestack/NeighborElement;.m_remoteScopeId:Ljava/lang/String; // field@606d │ │ +498c56: 6e20 1d5d e300 |00a1: invoke-virtual {v3, v14}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498c5c: 6e20 1d5d 8300 |00a4: invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498c62: 54de 6c60 |00a7: iget-object v14, v13, Lorg/purple/smokestack/NeighborElement;.m_remotePort:Ljava/lang/String; // field@606c │ │ +498c66: 6e20 1d5d e300 |00a9: invoke-virtual {v3, v14}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498c6c: 6e20 1d5d 8300 |00ac: invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498c72: 54dd 7160 |00af: iget-object v13, v13, Lorg/purple/smokestack/NeighborElement;.m_transport:Ljava/lang/String; // field@6071 │ │ +498c76: 6e20 1d5d d300 |00b1: invoke-virtual {v3, v13}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498c7c: 6e10 275b 0b00 |00b4: invoke-virtual {v11}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ +498c82: 0c0d |00b7: move-result-object v13 │ │ +498c84: 7210 1b5c 0d00 |00b8: invoke-interface {v13}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ +498c8a: 0c0d |00bb: move-result-object v13 │ │ +498c8c: 6e10 285d 0300 |00bc: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ +498c92: 0c0e |00bf: move-result-object v14 │ │ +498c94: 6e20 d85c ed00 |00c0: invoke-virtual {v13, v14}, Ljava/lang/String;.contains:(Ljava/lang/CharSequence;)Z // method@5cd8 │ │ +498c9a: 0a0d |00c3: move-result v13 │ │ +498c9c: 380d b0ff |00c4: if-eqz v13, 0074 // -0050 │ │ +498ca0: 1219 |00c6: const/4 v9, #int 1 // #1 │ │ +498ca2: 3909 0500 |00c7: if-nez v9, 00cc // +0005 │ │ +498ca6: 6e20 045b a200 |00c9: invoke-virtual {v2, v10}, Landroid/widget/TableLayout;.removeView:(Landroid/view/View;)V // method@5b04 │ │ +498cac: d804 04ff |00cc: add-int/lit8 v4, v4, #int -1 // #ff │ │ +498cb0: 2884 |00ce: goto 0052 // -007c │ │ +498cb2: 1404 7600 087f |00cf: const v4, #float 1.80777e+38 // #7f080076 │ │ +498cb8: 6e20 f6d1 4000 |00d2: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +498cbe: 0c04 |00d5: move-result-object v4 │ │ +498cc0: 1f04 920a |00d6: check-cast v4, Landroid/widget/Switch; // type@0a92 │ │ +498cc4: 6e10 db5f 0100 |00d8: invoke-virtual {v1}, Ljava/util/ArrayList;.iterator:()Ljava/util/Iterator; // method@5fdb │ │ +498cca: 0c0a |00db: move-result-object v10 │ │ +498ccc: 120b |00dc: const/4 v11, #int 0 // #0 │ │ +498cce: 7210 4f60 0a00 |00dd: invoke-interface {v10}, Ljava/util/Iterator;.hasNext:()Z // method@604f │ │ +498cd4: 0a0c |00e0: move-result v12 │ │ +498cd6: 380c 1503 |00e1: if-eqz v12, 03f6 // +0315 │ │ +498cda: 7210 5060 0a00 |00e3: invoke-interface {v10}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@6050 │ │ +498ce0: 0c0c |00e6: move-result-object v12 │ │ +498ce2: 1f0c b21e |00e7: check-cast v12, Lorg/purple/smokestack/NeighborElement; // type@1eb2 │ │ +498ce6: 390c 0300 |00e9: if-nez v12, 00ec // +0003 │ │ +498cea: 28f2 |00eb: goto 00dd // -000e │ │ +498cec: 6e10 025b 0200 |00ec: invoke-virtual {v2}, Landroid/widget/TableLayout;.getChildCount:()I // method@5b02 │ │ +498cf2: 0a0d |00ef: move-result v13 │ │ +498cf4: 120e |00f0: const/4 v14, #int 0 // #0 │ │ +498cf6: 35de 6200 |00f1: if-ge v14, v13, 0153 // +0062 │ │ +498cfa: 6e20 015b e200 |00f3: invoke-virtual {v2, v14}, Landroid/widget/TableLayout;.getChildAt:(I)Landroid/view/View; // method@5b01 │ │ +498d00: 0c10 |00f6: move-result-object v16 │ │ +498d02: 080f 1000 |00f7: move-object/from16 v15, v16 │ │ +498d06: 1f0f 9a0a |00f9: check-cast v15, Landroid/widget/TableRow; // type@0a9a │ │ +498d0a: 390f 0300 |00fb: if-nez v15, 00fe // +0003 │ │ +498d0e: 2851 |00fd: goto 014e // +0051 │ │ +498d10: 6e20 095b 5f00 |00fe: invoke-virtual {v15, v5}, Landroid/widget/TableRow;.getChildAt:(I)Landroid/view/View; // method@5b09 │ │ +498d16: 0c0f |0101: move-result-object v15 │ │ +498d18: 1f0f 9c0a |0102: check-cast v15, Landroid/widget/TextView; // type@0a9c │ │ +498d1c: 390f 0300 |0104: if-nez v15, 0107 // +0003 │ │ +498d20: 2848 |0106: goto 014e // +0048 │ │ +498d22: 6e10 245d 0300 |0107: invoke-virtual {v3}, Ljava/lang/StringBuilder;.length:()I // method@5d24 │ │ +498d28: 0a05 |010a: move-result v5 │ │ +498d2a: 6e30 215d 9305 |010b: invoke-virtual {v3, v9, v5}, Ljava/lang/StringBuilder;.delete:(II)Ljava/lang/StringBuilder; // method@5d21 │ │ +498d30: 54c5 6b60 |010e: iget-object v5, v12, Lorg/purple/smokestack/NeighborElement;.m_remoteIpAddress:Ljava/lang/String; // field@606b │ │ +498d34: 6e20 1d5d 5300 |0110: invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498d3a: 54c5 6060 |0113: iget-object v5, v12, Lorg/purple/smokestack/NeighborElement;.m_ipVersion:Ljava/lang/String; // field@6060 │ │ +498d3e: 6e20 da5c 7500 |0115: invoke-virtual {v5, v7}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ +498d44: 0a05 |0118: move-result v5 │ │ +498d46: 3805 1200 |0119: if-eqz v5, 012b // +0012 │ │ +498d4a: 54c5 6d60 |011b: iget-object v5, v12, Lorg/purple/smokestack/NeighborElement;.m_remoteScopeId:Ljava/lang/String; // field@606d │ │ +498d4e: 6e10 e65c 0500 |011d: invoke-virtual {v5}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ +498d54: 0a05 |0120: move-result v5 │ │ +498d56: 3905 0a00 |0121: if-nez v5, 012b // +000a │ │ +498d5a: 6e20 1d5d 6300 |0123: invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498d60: 54c5 6d60 |0126: iget-object v5, v12, Lorg/purple/smokestack/NeighborElement;.m_remoteScopeId:Ljava/lang/String; // field@606d │ │ +498d64: 6e20 1d5d 5300 |0128: invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498d6a: 6e20 1d5d 8300 |012b: invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498d70: 54c5 6c60 |012e: iget-object v5, v12, Lorg/purple/smokestack/NeighborElement;.m_remotePort:Ljava/lang/String; // field@606c │ │ +498d74: 6e20 1d5d 5300 |0130: invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498d7a: 6e20 1d5d 8300 |0133: invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498d80: 54c5 7160 |0136: iget-object v5, v12, Lorg/purple/smokestack/NeighborElement;.m_transport:Ljava/lang/String; // field@6071 │ │ +498d84: 6e20 1d5d 5300 |0138: invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498d8a: 6e10 275b 0f00 |013b: invoke-virtual {v15}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ +498d90: 0c05 |013e: move-result-object v5 │ │ +498d92: 7210 1b5c 0500 |013f: invoke-interface {v5}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ +498d98: 0c05 |0142: move-result-object v5 │ │ +498d9a: 6e10 285d 0300 |0143: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ +498da0: 0c09 |0146: move-result-object v9 │ │ +498da2: 6e20 d85c 9500 |0147: invoke-virtual {v5, v9}, Ljava/lang/String;.contains:(Ljava/lang/CharSequence;)Z // method@5cd8 │ │ +498da8: 0a05 |014a: move-result v5 │ │ +498daa: 3805 0300 |014b: if-eqz v5, 014e // +0003 │ │ +498dae: 2807 |014d: goto 0154 // +0007 │ │ +498db0: d80e 0e01 |014e: add-int/lit8 v14, v14, #int 1 // #01 │ │ +498db4: 1215 |0150: const/4 v5, #int 1 // #1 │ │ +498db6: 1209 |0151: const/4 v9, #int 0 // #0 │ │ +498db8: 289f |0152: goto 00f1 // -0061 │ │ +498dba: 120f |0153: const/4 v15, #int 0 // #0 │ │ +498dbc: 12e5 |0154: const/4 v5, #int -2 // #fe │ │ +498dbe: 1a09 f118 |0155: const-string v9, "Disconnect" // string@18f1 │ │ +498dc2: 390f 5800 |0157: if-nez v15, 01af // +0058 │ │ +498dc6: 220d 990a |0159: new-instance v13, Landroid/widget/TableRow$LayoutParams; // type@0a99 │ │ +498dca: 7020 055b 5d00 |015b: invoke-direct {v13, v5}, Landroid/widget/TableRow$LayoutParams;.:(I)V // method@5b05 │ │ +498dd0: 220f 9a0a |015e: new-instance v15, Landroid/widget/TableRow; // type@0a9a │ │ +498dd4: 7020 075b 0f00 |0160: invoke-direct {v15, v0}, Landroid/widget/TableRow;.:(Landroid/content/Context;)V // method@5b07 │ │ +498dda: 52ce 6360 |0163: iget v14, v12, Lorg/purple/smokestack/NeighborElement;.m_oid:I // field@6063 │ │ +498dde: 6e20 0a5b ef00 |0165: invoke-virtual {v15, v14}, Landroid/widget/TableRow;.setId:(I)V // method@5b0a │ │ +498de4: 6e20 0b5b df00 |0168: invoke-virtual {v15, v13}, Landroid/widget/TableRow;.setLayoutParams:(Landroid/view/ViewGroup$LayoutParams;)V // method@5b0b │ │ +498dea: 220d 900a |016b: new-instance v13, Landroid/widget/Spinner; // type@0a90 │ │ +498dee: 7020 bc5a 0d00 |016d: invoke-direct {v13, v0}, Landroid/widget/Spinner;.:(Landroid/content/Context;)V // method@5abc │ │ +498df4: 54ce 7160 |0170: iget-object v14, v12, Lorg/purple/smokestack/NeighborElement;.m_transport:Ljava/lang/String; // field@6071 │ │ +498df8: 1a05 5c53 |0172: const-string v5, "TCP" // string@535c │ │ +498dfc: 6e20 da5c 5e00 |0174: invoke-virtual {v14, v5}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ +498e02: 0a05 |0177: move-result v5 │ │ +498e04: 1a0e 9e18 |0178: const-string v14, "Delete" // string@189e │ │ +498e08: 0812 0a00 |017a: move-object/from16 v18, v10 │ │ +498e0c: 1a0a 3315 |017c: const-string v10, "Connect" // string@1533 │ │ +498e10: 0817 0f00 |017e: move-object/from16 v23, v15 │ │ +498e14: 1a0f 950b |0180: const-string v15, "Action" // string@0b95 │ │ +498e18: 3805 0900 |0182: if-eqz v5, 018b // +0009 │ │ +498e1c: 1a05 1b4d |0184: const-string v5, "Reset SSL/TLS Credentials" // string@4d1b │ │ +498e20: 2455 6b1f af9e |0186: filled-new-array {v15, v10, v14, v9, v5}, [Ljava/lang/String; // type@1f6b │ │ +498e26: 0c05 |0189: move-result-object v5 │ │ +498e28: 2805 |018a: goto 018f // +0005 │ │ +498e2a: 2440 6b1f af9e |018b: filled-new-array {v15, v10, v14, v9}, [Ljava/lang/String; // type@1f6b │ │ +498e30: 0c05 |018e: move-result-object v5 │ │ +498e32: 220a 610a |018f: new-instance v10, Landroid/widget/ArrayAdapter; // type@0a61 │ │ +498e36: 140e 0800 0901 |0191: const v14, #float 2.51629e-38 // #01090008 │ │ +498e3c: 7040 e758 0a5e |0194: invoke-direct {v10, v0, v14, v5}, Landroid/widget/ArrayAdapter;.:(Landroid/content/Context;I[Ljava/lang/Object;)V // method@58e7 │ │ +498e42: 6e20 ce5a ad00 |0197: invoke-virtual {v13, v10}, Landroid/widget/Spinner;.setAdapter:(Landroid/widget/SpinnerAdapter;)V // method@5ace │ │ +498e48: 52c5 6360 |019a: iget v5, v12, Lorg/purple/smokestack/NeighborElement;.m_oid:I // field@6063 │ │ +498e4c: 6e20 d55a 5d00 |019c: invoke-virtual {v13, v5}, Landroid/widget/Spinner;.setId:(I)V // method@5ad5 │ │ +498e52: 2205 e61e |019f: new-instance v5, Lorg/purple/smokestack/Settings$5; // type@1ee6 │ │ +498e56: 7030 c3d1 0502 |01a1: invoke-direct {v5, v0, v2}, Lorg/purple/smokestack/Settings$5;.:(Lorg/purple/smokestack/Settings;Landroid/widget/TableLayout;)V // method@d1c3 │ │ +498e5c: 6e20 d75a 5d00 |01a4: invoke-virtual {v13, v5}, Landroid/widget/Spinner;.setOnItemSelectedListener:(Landroid/widget/AdapterView$OnItemSelectedListener;)V // method@5ad7 │ │ +498e62: 220f 9c0a |01a7: new-instance v15, Landroid/widget/TextView; // type@0a9c │ │ +498e66: 7020 0c5b 0f00 |01a9: invoke-direct {v15, v0}, Landroid/widget/TextView;.:(Landroid/content/Context;)V // method@5b0c │ │ +498e6c: 0805 1700 |01ac: move-object/from16 v5, v23 │ │ +498e70: 2805 |01ae: goto 01b3 // +0005 │ │ +498e72: 0812 0a00 |01af: move-object/from16 v18, v10 │ │ +498e76: 1205 |01b1: const/4 v5, #int 0 // #0 │ │ +498e78: 120d |01b2: const/4 v13, #int 0 // #0 │ │ +498e7a: 54ca 6f60 |01b3: iget-object v10, v12, Lorg/purple/smokestack/NeighborElement;.m_status:Ljava/lang/String; // field@606f │ │ +498e7e: 6e10 e15c 0a00 |01b5: invoke-virtual {v10}, Ljava/lang/String;.hashCode:()I // method@5ce1 │ │ +498e84: 1a0e ce68 |01b8: const-string v14, "connecting" // string@68ce │ │ +498e88: 6e20 da5c ea00 |01ba: invoke-virtual {v10, v14}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ +498e8e: 0a0e |01bd: move-result v14 │ │ +498e90: 390e 2500 |01be: if-nez v14, 01e3 // +0025 │ │ +498e94: 1a0e cc68 |01c0: const-string v14, "connected" // string@68cc │ │ +498e98: 6e20 da5c ea00 |01c2: invoke-virtual {v10, v14}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ +498e9e: 0a0a |01c5: move-result v10 │ │ +498ea0: 390a 0e00 |01c6: if-nez v10, 01d4 // +000e │ │ +498ea4: 130a b700 |01c8: const/16 v10, #int 183 // #b7 │ │ +498ea8: 130e 1c00 |01ca: const/16 v14, #int 28 // #1c │ │ +498eac: 7130 c102 ea0e |01cc: invoke-static {v10, v14, v14}, Landroid/graphics/Color;.rgb:(III)I // method@02c1 │ │ +498eb2: 0a0a |01cf: move-result v10 │ │ +498eb4: 6e20 555b af00 |01d0: invoke-virtual {v15, v10}, Landroid/widget/TextView;.setTextColor:(I)V // method@5b55 │ │ +498eba: 280e |01d3: goto 01e1 // +000e │ │ +498ebc: 130a 1b00 |01d4: const/16 v10, #int 27 // #1b │ │ +498ec0: 130e 5e00 |01d6: const/16 v14, #int 94 // #5e │ │ +498ec4: 1300 2000 |01d8: const/16 v0, #int 32 // #20 │ │ +498ec8: 7130 c102 ea00 |01da: invoke-static {v10, v14, v0}, Landroid/graphics/Color;.rgb:(III)I // method@02c1 │ │ +498ece: 0a00 |01dd: move-result v0 │ │ +498ed0: 6e20 555b 0f00 |01de: invoke-virtual {v15, v0}, Landroid/widget/TextView;.setTextColor:(I)V // method@5b55 │ │ +498ed6: 120e |01e1: const/4 v14, #int 0 // #0 │ │ +498ed8: 280d |01e2: goto 01ef // +000d │ │ +498eda: 1300 ff00 |01e3: const/16 v0, #int 255 // #ff │ │ +498ede: 130a 6f00 |01e5: const/16 v10, #int 111 // #6f │ │ +498ee2: 120e |01e7: const/4 v14, #int 0 // #0 │ │ +498ee4: 7130 c102 a00e |01e8: invoke-static {v0, v10, v14}, Landroid/graphics/Color;.rgb:(III)I // method@02c1 │ │ +498eea: 0a00 |01eb: move-result v0 │ │ +498eec: 6e20 555b 0f00 |01ec: invoke-virtual {v15, v0}, Landroid/widget/TextView;.setTextColor:(I)V // method@5b55 │ │ +498ef2: 6e10 245d 0300 |01ef: invoke-virtual {v3}, Ljava/lang/StringBuilder;.length:()I // method@5d24 │ │ +498ef8: 0a00 |01f2: move-result v0 │ │ +498efa: 6e30 215d e300 |01f3: invoke-virtual {v3, v14, v0}, Ljava/lang/StringBuilder;.delete:(II)Ljava/lang/StringBuilder; // method@5d21 │ │ +498f00: 1a00 1516 |01f6: const-string v0, "Control: " // string@1615 │ │ +498f04: 6e20 1d5d 0300 |01f8: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498f0a: 54c0 7060 |01fb: iget-object v0, v12, Lorg/purple/smokestack/NeighborElement;.m_statusControl:Ljava/lang/String; // field@6070 │ │ +498f0e: 121a |01fd: const/4 v10, #int 1 // #1 │ │ +498f10: 6e30 f15c e00a |01fe: invoke-virtual {v0, v14, v10}, Ljava/lang/String;.substring:(II)Ljava/lang/String; // method@5cf1 │ │ +498f16: 0c00 |0201: move-result-object v0 │ │ +498f18: 6e10 f55c 0000 |0202: invoke-virtual {v0}, Ljava/lang/String;.toUpperCase:()Ljava/lang/String; // method@5cf5 │ │ +498f1e: 0c00 |0205: move-result-object v0 │ │ +498f20: 6e20 1d5d 0300 |0206: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498f26: 54c0 7060 |0209: iget-object v0, v12, Lorg/purple/smokestack/NeighborElement;.m_statusControl:Ljava/lang/String; // field@6070 │ │ +498f2a: 6e20 f05c a000 |020b: invoke-virtual {v0, v10}, Ljava/lang/String;.substring:(I)Ljava/lang/String; // method@5cf0 │ │ +498f30: 0c00 |020e: move-result-object v0 │ │ +498f32: 6e20 1d5d 0300 |020f: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498f38: 2804 |0212: goto 0216 // +0004 │ │ +498f3a: 6e20 1d5d 9300 |0213: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498f40: 1a00 0200 |0216: const-string v0, " │ │ " // string@0002 │ │ -498f48: 6e20 1d5d 0300 |0218: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498f4e: 1a09 b552 |021b: const-string v9, "Status: " // string@52b5 │ │ -498f52: 6e20 1d5d 9300 |021d: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498f58: 54c9 6f60 |0220: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_status:Ljava/lang/String; // field@606f │ │ -498f5c: 120a |0222: const/4 v10, #int 0 // #0 │ │ -498f5e: 121e |0223: const/4 v14, #int 1 // #1 │ │ -498f60: 6e30 f15c a90e |0224: invoke-virtual {v9, v10, v14}, Ljava/lang/String;.substring:(II)Ljava/lang/String; // method@5cf1 │ │ -498f66: 0c09 |0227: move-result-object v9 │ │ -498f68: 6e10 f55c 0900 |0228: invoke-virtual {v9}, Ljava/lang/String;.toUpperCase:()Ljava/lang/String; // method@5cf5 │ │ -498f6e: 0c09 |022b: move-result-object v9 │ │ -498f70: 6e20 1d5d 9300 |022c: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498f76: 54c9 6f60 |022f: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_status:Ljava/lang/String; // field@606f │ │ -498f7a: 6e20 f05c e900 |0231: invoke-virtual {v9, v14}, Ljava/lang/String;.substring:(I)Ljava/lang/String; // method@5cf0 │ │ -498f80: 0c09 |0234: move-result-object v9 │ │ -498f82: 6e20 1d5d 9300 |0235: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498f88: 2806 |0238: goto 023e // +0006 │ │ -498f8a: 1a09 f218 |0239: const-string v9, "Disconnected" // string@18f2 │ │ -498f8e: 6e20 1d5d 9300 |023b: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498f94: 6e20 1d5d 0300 |023e: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498f9a: 54c9 5f60 |0241: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_error:Ljava/lang/String; // field@605f │ │ -498f9e: 6e10 e65c 0900 |0243: invoke-virtual {v9}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ -498fa4: 0a09 |0246: move-result v9 │ │ -498fa6: 3909 0f00 |0247: if-nez v9, 0256 // +000f │ │ -498faa: 1a09 141b |0249: const-string v9, "Error: " // string@1b14 │ │ -498fae: 6e20 1d5d 9300 |024b: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498fb4: 54c9 5f60 |024e: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_error:Ljava/lang/String; // field@605f │ │ -498fb8: 6e20 1d5d 9300 |0250: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498fbe: 6e20 1d5d 0300 |0253: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498fc4: 54c9 6b60 |0256: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_remoteIpAddress:Ljava/lang/String; // field@606b │ │ -498fc8: 6e20 1d5d 9300 |0258: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498fce: 54c9 6060 |025b: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_ipVersion:Ljava/lang/String; // field@6060 │ │ -498fd2: 6e20 da5c 7900 |025d: invoke-virtual {v9, v7}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ -498fd8: 0a09 |0260: move-result v9 │ │ -498fda: 3809 1200 |0261: if-eqz v9, 0273 // +0012 │ │ -498fde: 54c9 6d60 |0263: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_remoteScopeId:Ljava/lang/String; // field@606d │ │ -498fe2: 6e10 e65c 0900 |0265: invoke-virtual {v9}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ -498fe8: 0a09 |0268: move-result v9 │ │ -498fea: 3909 0a00 |0269: if-nez v9, 0273 // +000a │ │ -498fee: 6e20 1d5d 6300 |026b: invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498ff4: 54c9 6d60 |026e: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_remoteScopeId:Ljava/lang/String; // field@606d │ │ -498ff8: 6e20 1d5d 9300 |0270: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498ffe: 6e20 1d5d 8300 |0273: invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -499004: 54c9 6c60 |0276: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_remotePort:Ljava/lang/String; // field@606c │ │ -499008: 6e20 1d5d 9300 |0278: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49900e: 6e20 1d5d 8300 |027b: invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -499014: 54c9 7160 |027e: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_transport:Ljava/lang/String; // field@6071 │ │ -499018: 6e20 1d5d 9300 |0280: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49901e: 54c9 6160 |0283: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_localIpAddress:Ljava/lang/String; // field@6061 │ │ -499022: 6e10 e65c 0900 |0285: invoke-virtual {v9}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ -499028: 0a09 |0288: move-result v9 │ │ -49902a: 3909 1a00 |0289: if-nez v9, 02a3 // +001a │ │ -49902e: 54c9 6260 |028b: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_localPort:Ljava/lang/String; // field@6062 │ │ -499032: 6e10 e65c 0900 |028d: invoke-virtual {v9}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ -499038: 0a09 |0290: move-result v9 │ │ -49903a: 3909 1200 |0291: if-nez v9, 02a3 // +0012 │ │ -49903e: 6e20 1d5d 0300 |0293: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -499044: 54c9 6160 |0296: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_localIpAddress:Ljava/lang/String; // field@6061 │ │ -499048: 6e20 1d5d 9300 |0298: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49904e: 6e20 1d5d 8300 |029b: invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -499054: 54c9 6260 |029e: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_localPort:Ljava/lang/String; // field@6062 │ │ -499058: 6e20 1d5d 9300 |02a0: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49905e: 1a09 1200 |02a3: const-string v9, " │ │ +498f44: 6e20 1d5d 0300 |0218: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498f4a: 1a09 b552 |021b: const-string v9, "Status: " // string@52b5 │ │ +498f4e: 6e20 1d5d 9300 |021d: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498f54: 54c9 6f60 |0220: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_status:Ljava/lang/String; // field@606f │ │ +498f58: 120a |0222: const/4 v10, #int 0 // #0 │ │ +498f5a: 121e |0223: const/4 v14, #int 1 // #1 │ │ +498f5c: 6e30 f15c a90e |0224: invoke-virtual {v9, v10, v14}, Ljava/lang/String;.substring:(II)Ljava/lang/String; // method@5cf1 │ │ +498f62: 0c09 |0227: move-result-object v9 │ │ +498f64: 6e10 f55c 0900 |0228: invoke-virtual {v9}, Ljava/lang/String;.toUpperCase:()Ljava/lang/String; // method@5cf5 │ │ +498f6a: 0c09 |022b: move-result-object v9 │ │ +498f6c: 6e20 1d5d 9300 |022c: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498f72: 54c9 6f60 |022f: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_status:Ljava/lang/String; // field@606f │ │ +498f76: 6e20 f05c e900 |0231: invoke-virtual {v9, v14}, Ljava/lang/String;.substring:(I)Ljava/lang/String; // method@5cf0 │ │ +498f7c: 0c09 |0234: move-result-object v9 │ │ +498f7e: 6e20 1d5d 9300 |0235: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498f84: 2806 |0238: goto 023e // +0006 │ │ +498f86: 1a09 f218 |0239: const-string v9, "Disconnected" // string@18f2 │ │ +498f8a: 6e20 1d5d 9300 |023b: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498f90: 6e20 1d5d 0300 |023e: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498f96: 54c9 5f60 |0241: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_error:Ljava/lang/String; // field@605f │ │ +498f9a: 6e10 e65c 0900 |0243: invoke-virtual {v9}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ +498fa0: 0a09 |0246: move-result v9 │ │ +498fa2: 3909 0f00 |0247: if-nez v9, 0256 // +000f │ │ +498fa6: 1a09 141b |0249: const-string v9, "Error: " // string@1b14 │ │ +498faa: 6e20 1d5d 9300 |024b: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498fb0: 54c9 5f60 |024e: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_error:Ljava/lang/String; // field@605f │ │ +498fb4: 6e20 1d5d 9300 |0250: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498fba: 6e20 1d5d 0300 |0253: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498fc0: 54c9 6b60 |0256: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_remoteIpAddress:Ljava/lang/String; // field@606b │ │ +498fc4: 6e20 1d5d 9300 |0258: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498fca: 54c9 6060 |025b: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_ipVersion:Ljava/lang/String; // field@6060 │ │ +498fce: 6e20 da5c 7900 |025d: invoke-virtual {v9, v7}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ +498fd4: 0a09 |0260: move-result v9 │ │ +498fd6: 3809 1200 |0261: if-eqz v9, 0273 // +0012 │ │ +498fda: 54c9 6d60 |0263: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_remoteScopeId:Ljava/lang/String; // field@606d │ │ +498fde: 6e10 e65c 0900 |0265: invoke-virtual {v9}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ +498fe4: 0a09 |0268: move-result v9 │ │ +498fe6: 3909 0a00 |0269: if-nez v9, 0273 // +000a │ │ +498fea: 6e20 1d5d 6300 |026b: invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498ff0: 54c9 6d60 |026e: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_remoteScopeId:Ljava/lang/String; // field@606d │ │ +498ff4: 6e20 1d5d 9300 |0270: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498ffa: 6e20 1d5d 8300 |0273: invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +499000: 54c9 6c60 |0276: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_remotePort:Ljava/lang/String; // field@606c │ │ +499004: 6e20 1d5d 9300 |0278: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49900a: 6e20 1d5d 8300 |027b: invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +499010: 54c9 7160 |027e: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_transport:Ljava/lang/String; // field@6071 │ │ +499014: 6e20 1d5d 9300 |0280: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49901a: 54c9 6160 |0283: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_localIpAddress:Ljava/lang/String; // field@6061 │ │ +49901e: 6e10 e65c 0900 |0285: invoke-virtual {v9}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ +499024: 0a09 |0288: move-result v9 │ │ +499026: 3909 1a00 |0289: if-nez v9, 02a3 // +001a │ │ +49902a: 54c9 6260 |028b: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_localPort:Ljava/lang/String; // field@6062 │ │ +49902e: 6e10 e65c 0900 |028d: invoke-virtual {v9}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ +499034: 0a09 |0290: move-result v9 │ │ +499036: 3909 1200 |0291: if-nez v9, 02a3 // +0012 │ │ +49903a: 6e20 1d5d 0300 |0293: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +499040: 54c9 6160 |0296: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_localIpAddress:Ljava/lang/String; // field@6061 │ │ +499044: 6e20 1d5d 9300 |0298: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49904a: 6e20 1d5d 8300 |029b: invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +499050: 54c9 6260 |029e: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_localPort:Ljava/lang/String; // field@6062 │ │ +499054: 6e20 1d5d 9300 |02a0: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49905a: 1a09 1200 |02a3: const-string v9, " │ │ Proxy: " // string@0012 │ │ -499062: 6e20 1d5d 9300 |02a5: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -499068: 54c9 6660 |02a8: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_proxyIpAddress:Ljava/lang/String; // field@6066 │ │ -49906c: 6e10 e65c 0900 |02aa: invoke-virtual {v9}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ -499072: 0a09 |02ad: move-result v9 │ │ -499074: 3909 1f00 |02ae: if-nez v9, 02cd // +001f │ │ -499078: 54c9 6760 |02b0: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_proxyPort:Ljava/lang/String; // field@6067 │ │ -49907c: 6e10 e65c 0900 |02b2: invoke-virtual {v9}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ -499082: 0a09 |02b5: move-result v9 │ │ -499084: 3909 1700 |02b6: if-nez v9, 02cd // +0017 │ │ -499088: 54c9 6660 |02b8: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_proxyIpAddress:Ljava/lang/String; // field@6066 │ │ -49908c: 6e20 1d5d 9300 |02ba: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -499092: 6e20 1d5d 8300 |02bd: invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -499098: 54c9 6760 |02c0: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_proxyPort:Ljava/lang/String; // field@6067 │ │ -49909c: 6e20 1d5d 9300 |02c2: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4990a2: 6e20 1d5d 8300 |02c5: invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4990a8: 54c9 6860 |02c8: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_proxyType:Ljava/lang/String; // field@6068 │ │ -4990ac: 6e20 1d5d 9300 |02ca: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4990b2: 6e10 e65a 0400 |02cd: invoke-virtual {v4}, Landroid/widget/Switch;.isChecked:()Z // method@5ae6 │ │ -4990b8: 0a09 |02d0: move-result v9 │ │ -4990ba: 3809 3900 |02d1: if-eqz v9, 030a // +0039 │ │ -4990be: 54c9 6a60 |02d3: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_remoteCertificate:[B // field@606a │ │ -4990c2: 3809 2000 |02d5: if-eqz v9, 02f5 // +0020 │ │ -4990c6: 54c9 6a60 |02d7: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_remoteCertificate:[B // field@606a │ │ -4990ca: 2199 |02d9: array-length v9, v9 │ │ -4990cc: 3d09 1b00 |02da: if-lez v9, 02f5 // +001b │ │ -4990d0: 6e20 1d5d 0300 |02dc: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4990d6: 1a09 fd4c |02df: const-string v9, "Remote Certificate's Fingerprint: " // string@4cfd │ │ -4990da: 6e20 1d5d 9300 |02e1: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4990e0: 54c9 6a60 |02e4: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_remoteCertificate:[B // field@606a │ │ -4990e4: 7110 41d1 0900 |02e6: invoke-static {v9}, Lorg/purple/smokestack/Miscellaneous;.pemFormat:([B)Ljava/lang/String; // method@d141 │ │ -4990ea: 0c09 |02e9: move-result-object v9 │ │ -4990ec: 6e10 de5c 0900 |02ea: invoke-virtual {v9}, Ljava/lang/String;.getBytes:()[B // method@5cde │ │ -4990f2: 0c09 |02ed: move-result-object v9 │ │ -4990f4: 7110 7cd0 0900 |02ee: invoke-static {v9}, Lorg/purple/smokestack/Cryptography;.fingerPrint:([B)Ljava/lang/String; // method@d07c │ │ -4990fa: 0c09 |02f1: move-result-object v9 │ │ -4990fc: 6e20 1d5d 9300 |02f2: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -499102: 54c9 6e60 |02f5: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_sessionCipher:Ljava/lang/String; // field@606e │ │ -499106: 6e10 e65c 0900 |02f7: invoke-virtual {v9}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ -49910c: 0a09 |02fa: move-result v9 │ │ -49910e: 3909 0f00 |02fb: if-nez v9, 030a // +000f │ │ -499112: 6e20 1d5d 0300 |02fd: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -499118: 1a09 9951 |0300: const-string v9, "Session Cipher: " // string@5199 │ │ -49911c: 6e20 1d5d 9300 |0302: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -499122: 54c9 6e60 |0305: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_sessionCipher:Ljava/lang/String; // field@606e │ │ -499126: 6e20 1d5d 9300 |0307: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49912c: 6e20 1d5d 0300 |030a: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -499132: 1a09 aa1a |030d: const-string v9, "Echo Queue Size: " // string@1aaa │ │ -499136: 6e20 1d5d 9300 |030f: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49913c: 53c9 6460 |0312: iget-wide v9, v12, Lorg/purple/smokestack/NeighborElement;.m_outboundEchoQueued:J // field@6064 │ │ -499140: 6e30 195d 930a |0314: invoke-virtual {v3, v9, v10}, Ljava/lang/StringBuilder;.append:(J)Ljava/lang/StringBuilder; // method@5d19 │ │ -499146: 6e20 1d5d 0300 |0317: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49914c: 1a09 954b |031a: const-string v9, "Queue Size: " // string@4b95 │ │ -499150: 6e20 1d5d 9300 |031c: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -499156: 54c9 6960 |031f: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_queueSize:Ljava/lang/String; // field@6069 │ │ -49915a: 6e20 1d5d 9300 |0321: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -499160: 6e20 1d5d 0300 |0324: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -499166: 1a09 6611 |0327: const-string v9, "Buffered: " // string@1166 │ │ -49916a: 6e20 1d5d 9300 |0329: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -499170: 54c9 5c60 |032c: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_bytesBuffered:Ljava/lang/String; // field@605c │ │ -499174: 7110 3cd1 0900 |032e: invoke-static {v9}, Lorg/purple/smokestack/Miscellaneous;.formattedDigitalInformation:(Ljava/lang/String;)Ljava/lang/String; // method@d13c │ │ -49917a: 0c09 |0331: move-result-object v9 │ │ -49917c: 6e20 1d5d 9300 |0332: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -499182: 6e20 1d5d 0300 |0335: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -499188: 1a09 fc1f |0338: const-string v9, "In: " // string@1ffc │ │ -49918c: 6e20 1d5d 9300 |033a: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -499192: 54c9 5d60 |033d: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_bytesRead:Ljava/lang/String; // field@605d │ │ -499196: 7110 3cd1 0900 |033f: invoke-static {v9}, Lorg/purple/smokestack/Miscellaneous;.formattedDigitalInformation:(Ljava/lang/String;)Ljava/lang/String; // method@d13c │ │ -49919c: 0c09 |0342: move-result-object v9 │ │ -49919e: 6e20 1d5d 9300 |0343: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4991a4: 6e20 1d5d 0300 |0346: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4991aa: 1a09 b848 |0349: const-string v9, "Out: " // string@48b8 │ │ -4991ae: 6e20 1d5d 9300 |034b: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4991b4: 54c9 5e60 |034e: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_bytesWritten:Ljava/lang/String; // field@605e │ │ -4991b8: 7110 3cd1 0900 |0350: invoke-static {v9}, Lorg/purple/smokestack/Miscellaneous;.formattedDigitalInformation:(Ljava/lang/String;)Ljava/lang/String; // method@d13c │ │ -4991be: 0c09 |0353: move-result-object v9 │ │ -4991c0: 6e20 1d5d 9300 |0354: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4991c6: 6e20 1d5d 0300 |0357: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4991cc: 1a09 b948 |035a: const-string v9, "Outbound Queued: " // string@48b9 │ │ -4991d0: 6e20 1d5d 9300 |035c: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4991d6: 53c9 6560 |035f: iget-wide v9, v12, Lorg/purple/smokestack/NeighborElement;.m_outboundQueued:J // field@6065 │ │ -4991da: 6e30 195d 930a |0361: invoke-virtual {v3, v9, v10}, Ljava/lang/StringBuilder;.append:(J)Ljava/lang/StringBuilder; // method@5d19 │ │ -4991e0: 6e20 1d5d 0300 |0364: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4991e6: 1a00 5e57 |0367: const-string v0, "Uptime: " // string@575e │ │ -4991ea: 6e20 1d5d 0300 |0369: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -4991f0: 54c0 7260 |036c: iget-object v0, v12, Lorg/purple/smokestack/NeighborElement;.m_uptime:Ljava/lang/String; // field@6072 │ │ -4991f4: 7110 825c 0000 |036e: invoke-static {v0}, Ljava/lang/Long;.parseLong:(Ljava/lang/String;)J // method@5c82 │ │ -4991fa: 0b09 |0371: move-result-wide v9 │ │ -4991fc: 7100 8960 0000 |0372: invoke-static {}, Ljava/util/Locale;.getDefault:()Ljava/util/Locale; // method@6089 │ │ -499202: 0c00 |0375: move-result-object v0 │ │ -499204: 1a0c 3403 |0376: const-string v12, "%d:%02d" // string@0334 │ │ -499208: 122e |0378: const/4 v14, #int 2 // #2 │ │ -49920a: 23ee 691f |0379: new-array v14, v14, [Ljava/lang/Object; // type@1f69 │ │ -49920e: 0817 0400 |037b: move-object/from16 v23, v4 │ │ -499212: 6204 142d |037d: sget-object v4, Ljava/util/concurrent/TimeUnit;.NANOSECONDS:Ljava/util/concurrent/TimeUnit; // field@2d14 │ │ -499216: 6e30 1261 940a |037f: invoke-virtual {v4, v9, v10}, Ljava/util/concurrent/TimeUnit;.toMinutes:(J)J // method@6112 │ │ -49921c: 0b13 |0382: move-result-wide v19 │ │ -49921e: 7702 8a5c 1300 |0383: invoke-static/range {v19, v20}, Ljava/lang/Long;.valueOf:(J)Ljava/lang/Long; // method@5c8a │ │ -499224: 0c04 |0386: move-result-object v4 │ │ -499226: 1311 0000 |0387: const/16 v17, #int 0 // #0 │ │ -49922a: 4d04 0e11 |0389: aput-object v4, v14, v17 │ │ -49922e: 6204 142d |038b: sget-object v4, Ljava/util/concurrent/TimeUnit;.NANOSECONDS:Ljava/util/concurrent/TimeUnit; // field@2d14 │ │ -499232: 6e30 1461 940a |038d: invoke-virtual {v4, v9, v10}, Ljava/util/concurrent/TimeUnit;.toSeconds:(J)J // method@6114 │ │ -499238: 0b13 |0390: move-result-wide v19 │ │ -49923a: 6204 132d |0391: sget-object v4, Ljava/util/concurrent/TimeUnit;.MINUTES:Ljava/util/concurrent/TimeUnit; // field@2d13 │ │ -49923e: 0815 0600 |0393: move-object/from16 v21, v6 │ │ -499242: 6206 142d |0395: sget-object v6, Ljava/util/concurrent/TimeUnit;.NANOSECONDS:Ljava/util/concurrent/TimeUnit; // field@2d14 │ │ -499246: 6e30 1261 960a |0397: invoke-virtual {v6, v9, v10}, Ljava/util/concurrent/TimeUnit;.toMinutes:(J)J // method@6112 │ │ -49924c: 0b09 |039a: move-result-wide v9 │ │ -49924e: 6e30 1461 940a |039b: invoke-virtual {v4, v9, v10}, Ljava/util/concurrent/TimeUnit;.toSeconds:(J)J // method@6114 │ │ -499254: 0b09 |039e: move-result-wide v9 │ │ -499256: 9c13 1309 |039f: sub-long v19, v19, v9 │ │ -49925a: 7702 8a5c 1300 |03a1: invoke-static/range {v19, v20}, Ljava/lang/Long;.valueOf:(J)Ljava/lang/Long; // method@5c8a │ │ -499260: 0c04 |03a4: move-result-object v4 │ │ -499262: 1216 |03a5: const/4 v6, #int 1 // #1 │ │ -499264: 4d04 0e06 |03a6: aput-object v4, v14, v6 │ │ -499268: 7130 dd5c c00e |03a8: invoke-static {v0, v12, v14}, Ljava/lang/String;.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; // method@5cdd │ │ -49926e: 0c00 |03ab: move-result-object v0 │ │ -499270: 6e20 1d5d 0300 |03ac: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -499276: 280b |03af: goto 03ba // +000b │ │ -499278: 0817 0400 |03b0: move-object/from16 v23, v4 │ │ -49927c: 0815 0600 |03b2: move-object/from16 v21, v6 │ │ -499280: 1216 |03b4: const/4 v6, #int 1 // #1 │ │ -499282: 1a00 d705 |03b5: const-string v0, "0:00" // string@05d7 │ │ -499286: 6e20 1d5d 0300 |03b7: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49928c: 1a00 d700 |03ba: const-string v0, " Min. │ │ +49905e: 6e20 1d5d 9300 |02a5: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +499064: 54c9 6660 |02a8: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_proxyIpAddress:Ljava/lang/String; // field@6066 │ │ +499068: 6e10 e65c 0900 |02aa: invoke-virtual {v9}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ +49906e: 0a09 |02ad: move-result v9 │ │ +499070: 3909 1f00 |02ae: if-nez v9, 02cd // +001f │ │ +499074: 54c9 6760 |02b0: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_proxyPort:Ljava/lang/String; // field@6067 │ │ +499078: 6e10 e65c 0900 |02b2: invoke-virtual {v9}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ +49907e: 0a09 |02b5: move-result v9 │ │ +499080: 3909 1700 |02b6: if-nez v9, 02cd // +0017 │ │ +499084: 54c9 6660 |02b8: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_proxyIpAddress:Ljava/lang/String; // field@6066 │ │ +499088: 6e20 1d5d 9300 |02ba: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49908e: 6e20 1d5d 8300 |02bd: invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +499094: 54c9 6760 |02c0: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_proxyPort:Ljava/lang/String; // field@6067 │ │ +499098: 6e20 1d5d 9300 |02c2: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49909e: 6e20 1d5d 8300 |02c5: invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4990a4: 54c9 6860 |02c8: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_proxyType:Ljava/lang/String; // field@6068 │ │ +4990a8: 6e20 1d5d 9300 |02ca: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4990ae: 6e10 e65a 0400 |02cd: invoke-virtual {v4}, Landroid/widget/Switch;.isChecked:()Z // method@5ae6 │ │ +4990b4: 0a09 |02d0: move-result v9 │ │ +4990b6: 3809 3900 |02d1: if-eqz v9, 030a // +0039 │ │ +4990ba: 54c9 6a60 |02d3: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_remoteCertificate:[B // field@606a │ │ +4990be: 3809 2000 |02d5: if-eqz v9, 02f5 // +0020 │ │ +4990c2: 54c9 6a60 |02d7: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_remoteCertificate:[B // field@606a │ │ +4990c6: 2199 |02d9: array-length v9, v9 │ │ +4990c8: 3d09 1b00 |02da: if-lez v9, 02f5 // +001b │ │ +4990cc: 6e20 1d5d 0300 |02dc: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4990d2: 1a09 fd4c |02df: const-string v9, "Remote Certificate's Fingerprint: " // string@4cfd │ │ +4990d6: 6e20 1d5d 9300 |02e1: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4990dc: 54c9 6a60 |02e4: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_remoteCertificate:[B // field@606a │ │ +4990e0: 7110 41d1 0900 |02e6: invoke-static {v9}, Lorg/purple/smokestack/Miscellaneous;.pemFormat:([B)Ljava/lang/String; // method@d141 │ │ +4990e6: 0c09 |02e9: move-result-object v9 │ │ +4990e8: 6e10 de5c 0900 |02ea: invoke-virtual {v9}, Ljava/lang/String;.getBytes:()[B // method@5cde │ │ +4990ee: 0c09 |02ed: move-result-object v9 │ │ +4990f0: 7110 7cd0 0900 |02ee: invoke-static {v9}, Lorg/purple/smokestack/Cryptography;.fingerPrint:([B)Ljava/lang/String; // method@d07c │ │ +4990f6: 0c09 |02f1: move-result-object v9 │ │ +4990f8: 6e20 1d5d 9300 |02f2: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4990fe: 54c9 6e60 |02f5: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_sessionCipher:Ljava/lang/String; // field@606e │ │ +499102: 6e10 e65c 0900 |02f7: invoke-virtual {v9}, Ljava/lang/String;.isEmpty:()Z // method@5ce6 │ │ +499108: 0a09 |02fa: move-result v9 │ │ +49910a: 3909 0f00 |02fb: if-nez v9, 030a // +000f │ │ +49910e: 6e20 1d5d 0300 |02fd: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +499114: 1a09 9951 |0300: const-string v9, "Session Cipher: " // string@5199 │ │ +499118: 6e20 1d5d 9300 |0302: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49911e: 54c9 6e60 |0305: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_sessionCipher:Ljava/lang/String; // field@606e │ │ +499122: 6e20 1d5d 9300 |0307: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +499128: 6e20 1d5d 0300 |030a: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49912e: 1a09 aa1a |030d: const-string v9, "Echo Queue Size: " // string@1aaa │ │ +499132: 6e20 1d5d 9300 |030f: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +499138: 53c9 6460 |0312: iget-wide v9, v12, Lorg/purple/smokestack/NeighborElement;.m_outboundEchoQueued:J // field@6064 │ │ +49913c: 6e30 195d 930a |0314: invoke-virtual {v3, v9, v10}, Ljava/lang/StringBuilder;.append:(J)Ljava/lang/StringBuilder; // method@5d19 │ │ +499142: 6e20 1d5d 0300 |0317: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +499148: 1a09 954b |031a: const-string v9, "Queue Size: " // string@4b95 │ │ +49914c: 6e20 1d5d 9300 |031c: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +499152: 54c9 6960 |031f: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_queueSize:Ljava/lang/String; // field@6069 │ │ +499156: 6e20 1d5d 9300 |0321: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49915c: 6e20 1d5d 0300 |0324: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +499162: 1a09 6611 |0327: const-string v9, "Buffered: " // string@1166 │ │ +499166: 6e20 1d5d 9300 |0329: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49916c: 54c9 5c60 |032c: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_bytesBuffered:Ljava/lang/String; // field@605c │ │ +499170: 7110 3cd1 0900 |032e: invoke-static {v9}, Lorg/purple/smokestack/Miscellaneous;.formattedDigitalInformation:(Ljava/lang/String;)Ljava/lang/String; // method@d13c │ │ +499176: 0c09 |0331: move-result-object v9 │ │ +499178: 6e20 1d5d 9300 |0332: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49917e: 6e20 1d5d 0300 |0335: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +499184: 1a09 fc1f |0338: const-string v9, "In: " // string@1ffc │ │ +499188: 6e20 1d5d 9300 |033a: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49918e: 54c9 5d60 |033d: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_bytesRead:Ljava/lang/String; // field@605d │ │ +499192: 7110 3cd1 0900 |033f: invoke-static {v9}, Lorg/purple/smokestack/Miscellaneous;.formattedDigitalInformation:(Ljava/lang/String;)Ljava/lang/String; // method@d13c │ │ +499198: 0c09 |0342: move-result-object v9 │ │ +49919a: 6e20 1d5d 9300 |0343: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4991a0: 6e20 1d5d 0300 |0346: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4991a6: 1a09 b848 |0349: const-string v9, "Out: " // string@48b8 │ │ +4991aa: 6e20 1d5d 9300 |034b: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4991b0: 54c9 5e60 |034e: iget-object v9, v12, Lorg/purple/smokestack/NeighborElement;.m_bytesWritten:Ljava/lang/String; // field@605e │ │ +4991b4: 7110 3cd1 0900 |0350: invoke-static {v9}, Lorg/purple/smokestack/Miscellaneous;.formattedDigitalInformation:(Ljava/lang/String;)Ljava/lang/String; // method@d13c │ │ +4991ba: 0c09 |0353: move-result-object v9 │ │ +4991bc: 6e20 1d5d 9300 |0354: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4991c2: 6e20 1d5d 0300 |0357: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4991c8: 1a09 b948 |035a: const-string v9, "Outbound Queued: " // string@48b9 │ │ +4991cc: 6e20 1d5d 9300 |035c: invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4991d2: 53c9 6560 |035f: iget-wide v9, v12, Lorg/purple/smokestack/NeighborElement;.m_outboundQueued:J // field@6065 │ │ +4991d6: 6e30 195d 930a |0361: invoke-virtual {v3, v9, v10}, Ljava/lang/StringBuilder;.append:(J)Ljava/lang/StringBuilder; // method@5d19 │ │ +4991dc: 6e20 1d5d 0300 |0364: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4991e2: 1a00 5e57 |0367: const-string v0, "Uptime: " // string@575e │ │ +4991e6: 6e20 1d5d 0300 |0369: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +4991ec: 54c0 7260 |036c: iget-object v0, v12, Lorg/purple/smokestack/NeighborElement;.m_uptime:Ljava/lang/String; // field@6072 │ │ +4991f0: 7110 825c 0000 |036e: invoke-static {v0}, Ljava/lang/Long;.parseLong:(Ljava/lang/String;)J // method@5c82 │ │ +4991f6: 0b09 |0371: move-result-wide v9 │ │ +4991f8: 7100 8960 0000 |0372: invoke-static {}, Ljava/util/Locale;.getDefault:()Ljava/util/Locale; // method@6089 │ │ +4991fe: 0c00 |0375: move-result-object v0 │ │ +499200: 1a0c 3403 |0376: const-string v12, "%d:%02d" // string@0334 │ │ +499204: 122e |0378: const/4 v14, #int 2 // #2 │ │ +499206: 23ee 691f |0379: new-array v14, v14, [Ljava/lang/Object; // type@1f69 │ │ +49920a: 0817 0400 |037b: move-object/from16 v23, v4 │ │ +49920e: 6204 142d |037d: sget-object v4, Ljava/util/concurrent/TimeUnit;.NANOSECONDS:Ljava/util/concurrent/TimeUnit; // field@2d14 │ │ +499212: 6e30 1261 940a |037f: invoke-virtual {v4, v9, v10}, Ljava/util/concurrent/TimeUnit;.toMinutes:(J)J // method@6112 │ │ +499218: 0b13 |0382: move-result-wide v19 │ │ +49921a: 7702 8a5c 1300 |0383: invoke-static/range {v19, v20}, Ljava/lang/Long;.valueOf:(J)Ljava/lang/Long; // method@5c8a │ │ +499220: 0c04 |0386: move-result-object v4 │ │ +499222: 1311 0000 |0387: const/16 v17, #int 0 // #0 │ │ +499226: 4d04 0e11 |0389: aput-object v4, v14, v17 │ │ +49922a: 6204 142d |038b: sget-object v4, Ljava/util/concurrent/TimeUnit;.NANOSECONDS:Ljava/util/concurrent/TimeUnit; // field@2d14 │ │ +49922e: 6e30 1461 940a |038d: invoke-virtual {v4, v9, v10}, Ljava/util/concurrent/TimeUnit;.toSeconds:(J)J // method@6114 │ │ +499234: 0b13 |0390: move-result-wide v19 │ │ +499236: 6204 132d |0391: sget-object v4, Ljava/util/concurrent/TimeUnit;.MINUTES:Ljava/util/concurrent/TimeUnit; // field@2d13 │ │ +49923a: 0815 0600 |0393: move-object/from16 v21, v6 │ │ +49923e: 6206 142d |0395: sget-object v6, Ljava/util/concurrent/TimeUnit;.NANOSECONDS:Ljava/util/concurrent/TimeUnit; // field@2d14 │ │ +499242: 6e30 1261 960a |0397: invoke-virtual {v6, v9, v10}, Ljava/util/concurrent/TimeUnit;.toMinutes:(J)J // method@6112 │ │ +499248: 0b09 |039a: move-result-wide v9 │ │ +49924a: 6e30 1461 940a |039b: invoke-virtual {v4, v9, v10}, Ljava/util/concurrent/TimeUnit;.toSeconds:(J)J // method@6114 │ │ +499250: 0b09 |039e: move-result-wide v9 │ │ +499252: 9c13 1309 |039f: sub-long v19, v19, v9 │ │ +499256: 7702 8a5c 1300 |03a1: invoke-static/range {v19, v20}, Ljava/lang/Long;.valueOf:(J)Ljava/lang/Long; // method@5c8a │ │ +49925c: 0c04 |03a4: move-result-object v4 │ │ +49925e: 1216 |03a5: const/4 v6, #int 1 // #1 │ │ +499260: 4d04 0e06 |03a6: aput-object v4, v14, v6 │ │ +499264: 7130 dd5c c00e |03a8: invoke-static {v0, v12, v14}, Ljava/lang/String;.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; // method@5cdd │ │ +49926a: 0c00 |03ab: move-result-object v0 │ │ +49926c: 6e20 1d5d 0300 |03ac: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +499272: 280b |03af: goto 03ba // +000b │ │ +499274: 0817 0400 |03b0: move-object/from16 v23, v4 │ │ +499278: 0815 0600 |03b2: move-object/from16 v21, v6 │ │ +49927c: 1216 |03b4: const/4 v6, #int 1 // #1 │ │ +49927e: 1a00 d705 |03b5: const-string v0, "0:00" // string@05d7 │ │ +499282: 6e20 1d5d 0300 |03b7: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +499288: 1a00 d700 |03ba: const-string v0, " Min. │ │ " // string@00d7 │ │ -499290: 6e20 1d5d 0300 |03bc: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -499296: 1300 1000 |03bf: const/16 v0, #int 16 // #10 │ │ -49929a: 6e20 405b 0f00 |03c1: invoke-virtual {v15, v0}, Landroid/widget/TextView;.setGravity:(I)V // method@5b40 │ │ -4992a0: 2200 990a |03c4: new-instance v0, Landroid/widget/TableRow$LayoutParams; // type@0a99 │ │ -4992a4: 1504 803f |03c6: const/high16 v4, #int 1065353216 // #3f80 │ │ -4992a8: 12e9 |03c8: const/4 v9, #int -2 // #fe │ │ -4992aa: 120a |03c9: const/4 v10, #int 0 // #0 │ │ -4992ac: 7040 065b a049 |03ca: invoke-direct {v0, v10, v9, v4}, Landroid/widget/TableRow$LayoutParams;.:(IIF)V // method@5b06 │ │ -4992b2: 6e20 445b 0f00 |03cd: invoke-virtual {v15, v0}, Landroid/widget/TextView;.setLayoutParams:(Landroid/view/ViewGroup$LayoutParams;)V // method@5b44 │ │ -4992b8: 6e20 525b 3f00 |03d0: invoke-virtual {v15, v3}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ -4992be: 1500 5041 |03d3: const/high16 v0, #int 1095761920 // #4150 │ │ -4992c2: 6e20 575b 0f00 |03d5: invoke-virtual {v15, v0}, Landroid/widget/TextView;.setTextSize:(F)V // method@5b57 │ │ -4992c8: 1300 f401 |03d8: const/16 v0, #int 500 // #1f4 │ │ -4992cc: 6e20 5c5b 0f00 |03da: invoke-virtual {v15, v0}, Landroid/widget/TextView;.setWidth:(I)V // method@5b5c │ │ -4992d2: 3805 0b00 |03dd: if-eqz v5, 03e8 // +000b │ │ -4992d6: 6e20 085b d500 |03df: invoke-virtual {v5, v13}, Landroid/widget/TableRow;.addView:(Landroid/view/View;)V // method@5b08 │ │ -4992dc: 6e20 085b f500 |03e2: invoke-virtual {v5, v15}, Landroid/widget/TableRow;.addView:(Landroid/view/View;)V // method@5b08 │ │ -4992e2: 6e30 005b 520b |03e5: invoke-virtual {v2, v5, v11}, Landroid/widget/TableLayout;.addView:(Landroid/view/View;I)V // method@5b00 │ │ -4992e8: d80b 0b01 |03e8: add-int/lit8 v11, v11, #int 1 // #01 │ │ -4992ec: 0800 1600 |03ea: move-object/from16 v0, v22 │ │ -4992f0: 0804 1700 |03ec: move-object/from16 v4, v23 │ │ -4992f4: 080a 1200 |03ee: move-object/from16 v10, v18 │ │ -4992f8: 0806 1500 |03f0: move-object/from16 v6, v21 │ │ -4992fc: 1215 |03f2: const/4 v5, #int 1 // #1 │ │ -4992fe: 1209 |03f3: const/4 v9, #int 0 // #0 │ │ -499300: 2900 e9fc |03f4: goto/16 00dd // -0317 │ │ -499304: 6e10 d45f 0100 |03f6: invoke-virtual {v1}, Ljava/util/ArrayList;.clear:()V // method@5fd4 │ │ -49930a: 0e00 |03f9: return-void │ │ -49930c: 6e10 035b 0200 |03fa: invoke-virtual {v2}, Landroid/widget/TableLayout;.removeAllViews:()V // method@5b03 │ │ -499312: 0e00 |03fd: return-void │ │ +49928c: 6e20 1d5d 0300 |03bc: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +499292: 1300 1000 |03bf: const/16 v0, #int 16 // #10 │ │ +499296: 6e20 405b 0f00 |03c1: invoke-virtual {v15, v0}, Landroid/widget/TextView;.setGravity:(I)V // method@5b40 │ │ +49929c: 2200 990a |03c4: new-instance v0, Landroid/widget/TableRow$LayoutParams; // type@0a99 │ │ +4992a0: 1504 803f |03c6: const/high16 v4, #int 1065353216 // #3f80 │ │ +4992a4: 12e9 |03c8: const/4 v9, #int -2 // #fe │ │ +4992a6: 120a |03c9: const/4 v10, #int 0 // #0 │ │ +4992a8: 7040 065b a049 |03ca: invoke-direct {v0, v10, v9, v4}, Landroid/widget/TableRow$LayoutParams;.:(IIF)V // method@5b06 │ │ +4992ae: 6e20 445b 0f00 |03cd: invoke-virtual {v15, v0}, Landroid/widget/TextView;.setLayoutParams:(Landroid/view/ViewGroup$LayoutParams;)V // method@5b44 │ │ +4992b4: 6e20 525b 3f00 |03d0: invoke-virtual {v15, v3}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ +4992ba: 1500 5041 |03d3: const/high16 v0, #int 1095761920 // #4150 │ │ +4992be: 6e20 575b 0f00 |03d5: invoke-virtual {v15, v0}, Landroid/widget/TextView;.setTextSize:(F)V // method@5b57 │ │ +4992c4: 1300 f401 |03d8: const/16 v0, #int 500 // #1f4 │ │ +4992c8: 6e20 5c5b 0f00 |03da: invoke-virtual {v15, v0}, Landroid/widget/TextView;.setWidth:(I)V // method@5b5c │ │ +4992ce: 3805 0b00 |03dd: if-eqz v5, 03e8 // +000b │ │ +4992d2: 6e20 085b d500 |03df: invoke-virtual {v5, v13}, Landroid/widget/TableRow;.addView:(Landroid/view/View;)V // method@5b08 │ │ +4992d8: 6e20 085b f500 |03e2: invoke-virtual {v5, v15}, Landroid/widget/TableRow;.addView:(Landroid/view/View;)V // method@5b08 │ │ +4992de: 6e30 005b 520b |03e5: invoke-virtual {v2, v5, v11}, Landroid/widget/TableLayout;.addView:(Landroid/view/View;I)V // method@5b00 │ │ +4992e4: d80b 0b01 |03e8: add-int/lit8 v11, v11, #int 1 // #01 │ │ +4992e8: 0800 1600 |03ea: move-object/from16 v0, v22 │ │ +4992ec: 0804 1700 |03ec: move-object/from16 v4, v23 │ │ +4992f0: 080a 1200 |03ee: move-object/from16 v10, v18 │ │ +4992f4: 0806 1500 |03f0: move-object/from16 v6, v21 │ │ +4992f8: 1215 |03f2: const/4 v5, #int 1 // #1 │ │ +4992fa: 1209 |03f3: const/4 v9, #int 0 // #0 │ │ +4992fc: 2900 e9fc |03f4: goto/16 00dd // -0317 │ │ +499300: 6e10 d45f 0100 |03f6: invoke-virtual {v1}, Ljava/util/ArrayList;.clear:()V // method@5fd4 │ │ +499306: 0e00 |03f9: return-void │ │ +499308: 6e10 035b 0200 |03fa: invoke-virtual {v2}, Landroid/widget/TableLayout;.removeAllViews:()V // method@5b03 │ │ +49930e: 0e00 |03fd: return-void │ │ catches : 6 │ │ 0x01fb - 0x0212 │ │ Ljava/lang/Exception; -> 0x0213 │ │ 0x0220 - 0x0238 │ │ Ljava/lang/Exception; -> 0x0239 │ │ 0x036c - 0x037b │ │ Ljava/lang/Exception; -> 0x03b0 │ │ @@ -1716583,70 +1716582,70 @@ │ │ type : '()V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 12 │ │ ins : 1 │ │ outs : 4 │ │ insns size : 120 16-bit code units │ │ -499364: |[499364] org.purple.smokestack.Settings.populateOzoneAddresses:()V │ │ -499374: 54b0 3269 |0000: iget-object v0, v11, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ -499378: 6201 3c69 |0002: sget-object v1, Lorg/purple/smokestack/Settings;.s_cryptography:Lorg/purple/smokestack/Cryptography; // field@693c │ │ -49937c: 6e20 cad0 1000 |0004: invoke-virtual {v0, v1}, Lorg/purple/smokestack/Database;.readOzones:(Lorg/purple/smokestack/Cryptography;)Ljava/util/ArrayList; // method@d0ca │ │ -499382: 0c00 |0007: move-result-object v0 │ │ -499384: 1401 8700 087f |0008: const v1, #float 1.80778e+38 // #7f080087 │ │ -49938a: 6e20 f6d1 1b00 |000b: invoke-virtual {v11, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -499390: 0c01 |000e: move-result-object v1 │ │ -499392: 1f01 980a |000f: check-cast v1, Landroid/widget/TableLayout; // type@0a98 │ │ -499396: 6e10 035b 0100 |0011: invoke-virtual {v1}, Landroid/widget/TableLayout;.removeAllViews:()V // method@5b03 │ │ -49939c: 3800 6300 |0014: if-eqz v0, 0077 // +0063 │ │ -4993a0: 6e10 e15f 0000 |0016: invoke-virtual {v0}, Ljava/util/ArrayList;.size:()I // method@5fe1 │ │ -4993a6: 0a02 |0019: move-result v2 │ │ -4993a8: 3902 0300 |001a: if-nez v2, 001d // +0003 │ │ -4993ac: 285b |001c: goto 0077 // +005b │ │ -4993ae: 6e10 db5f 0000 |001d: invoke-virtual {v0}, Ljava/util/ArrayList;.iterator:()Ljava/util/Iterator; // method@5fdb │ │ -4993b4: 0c02 |0020: move-result-object v2 │ │ -4993b6: 1203 |0021: const/4 v3, #int 0 // #0 │ │ -4993b8: 1204 |0022: const/4 v4, #int 0 // #0 │ │ -4993ba: 7210 4f60 0200 |0023: invoke-interface {v2}, Ljava/util/Iterator;.hasNext:()Z // method@604f │ │ -4993c0: 0a05 |0026: move-result v5 │ │ -4993c2: 3805 4d00 |0027: if-eqz v5, 0074 // +004d │ │ -4993c6: 7210 5060 0200 |0029: invoke-interface {v2}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@6050 │ │ -4993cc: 0c05 |002c: move-result-object v5 │ │ -4993ce: 1f05 b31e |002d: check-cast v5, Lorg/purple/smokestack/OzoneElement; // type@1eb3 │ │ -4993d2: 3905 0300 |002f: if-nez v5, 0032 // +0003 │ │ -4993d6: 28f2 |0031: goto 0023 // -000e │ │ -4993d8: 2206 990a |0032: new-instance v6, Landroid/widget/TableRow$LayoutParams; // type@0a99 │ │ -4993dc: 12e7 |0034: const/4 v7, #int -2 // #fe │ │ -4993de: 7020 055b 7600 |0035: invoke-direct {v6, v7}, Landroid/widget/TableRow$LayoutParams;.:(I)V // method@5b05 │ │ -4993e4: 2208 9a0a |0038: new-instance v8, Landroid/widget/TableRow; // type@0a9a │ │ -4993e8: 7020 075b b800 |003a: invoke-direct {v8, v11}, Landroid/widget/TableRow;.:(Landroid/content/Context;)V // method@5b07 │ │ -4993ee: 6e20 0b5b 6800 |003d: invoke-virtual {v8, v6}, Landroid/widget/TableRow;.setLayoutParams:(Landroid/view/ViewGroup$LayoutParams;)V // method@5b0b │ │ -4993f4: 2206 9c0a |0040: new-instance v6, Landroid/widget/TextView; // type@0a9c │ │ -4993f8: 7020 0c5b b600 |0042: invoke-direct {v6, v11}, Landroid/widget/TextView;.:(Landroid/content/Context;)V // method@5b0c │ │ -4993fe: 1309 1000 |0045: const/16 v9, #int 16 // #10 │ │ -499402: 6e20 405b 9600 |0047: invoke-virtual {v6, v9}, Landroid/widget/TextView;.setGravity:(I)V // method@5b40 │ │ -499408: 5259 7560 |004a: iget v9, v5, Lorg/purple/smokestack/OzoneElement;.m_oid:I // field@6075 │ │ -49940c: 6e20 425b 9600 |004c: invoke-virtual {v6, v9}, Landroid/widget/TextView;.setId:(I)V // method@5b42 │ │ -499412: 2209 990a |004f: new-instance v9, Landroid/widget/TableRow$LayoutParams; // type@0a99 │ │ -499416: 150a 803f |0051: const/high16 v10, #int 1065353216 // #3f80 │ │ -49941a: 7040 065b 39a7 |0053: invoke-direct {v9, v3, v7, v10}, Landroid/widget/TableRow$LayoutParams;.:(IIF)V // method@5b06 │ │ -499420: 6e20 445b 9600 |0056: invoke-virtual {v6, v9}, Landroid/widget/TextView;.setLayoutParams:(Landroid/view/ViewGroup$LayoutParams;)V // method@5b44 │ │ -499426: 5457 7360 |0059: iget-object v7, v5, Lorg/purple/smokestack/OzoneElement;.m_address:Ljava/lang/String; // field@6073 │ │ -49942a: 6e20 515b 7600 |005b: invoke-virtual {v6, v7}, Landroid/widget/TextView;.setTag:(Ljava/lang/Object;)V // method@5b51 │ │ -499430: 5455 7360 |005e: iget-object v5, v5, Lorg/purple/smokestack/OzoneElement;.m_address:Ljava/lang/String; // field@6073 │ │ -499434: 6e20 525b 5600 |0060: invoke-virtual {v6, v5}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ -49943a: 1505 5041 |0063: const/high16 v5, #int 1095761920 // #4150 │ │ -49943e: 6e20 575b 5600 |0065: invoke-virtual {v6, v5}, Landroid/widget/TextView;.setTextSize:(F)V // method@5b57 │ │ -499444: 6e20 11d2 6b00 |0068: invoke-virtual {v11, v6}, Lorg/purple/smokestack/Settings;.registerForContextMenu:(Landroid/view/View;)V // method@d211 │ │ -49944a: 6e20 085b 6800 |006b: invoke-virtual {v8, v6}, Landroid/widget/TableRow;.addView:(Landroid/view/View;)V // method@5b08 │ │ -499450: 6e30 005b 8104 |006e: invoke-virtual {v1, v8, v4}, Landroid/widget/TableLayout;.addView:(Landroid/view/View;I)V // method@5b00 │ │ -499456: d804 0401 |0071: add-int/lit8 v4, v4, #int 1 // #01 │ │ -49945a: 28b0 |0073: goto 0023 // -0050 │ │ -49945c: 6e10 d45f 0000 |0074: invoke-virtual {v0}, Ljava/util/ArrayList;.clear:()V // method@5fd4 │ │ -499462: 0e00 |0077: return-void │ │ +499360: |[499360] org.purple.smokestack.Settings.populateOzoneAddresses:()V │ │ +499370: 54b0 3269 |0000: iget-object v0, v11, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ +499374: 6201 3c69 |0002: sget-object v1, Lorg/purple/smokestack/Settings;.s_cryptography:Lorg/purple/smokestack/Cryptography; // field@693c │ │ +499378: 6e20 cad0 1000 |0004: invoke-virtual {v0, v1}, Lorg/purple/smokestack/Database;.readOzones:(Lorg/purple/smokestack/Cryptography;)Ljava/util/ArrayList; // method@d0ca │ │ +49937e: 0c00 |0007: move-result-object v0 │ │ +499380: 1401 8700 087f |0008: const v1, #float 1.80778e+38 // #7f080087 │ │ +499386: 6e20 f6d1 1b00 |000b: invoke-virtual {v11, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +49938c: 0c01 |000e: move-result-object v1 │ │ +49938e: 1f01 980a |000f: check-cast v1, Landroid/widget/TableLayout; // type@0a98 │ │ +499392: 6e10 035b 0100 |0011: invoke-virtual {v1}, Landroid/widget/TableLayout;.removeAllViews:()V // method@5b03 │ │ +499398: 3800 6300 |0014: if-eqz v0, 0077 // +0063 │ │ +49939c: 6e10 e15f 0000 |0016: invoke-virtual {v0}, Ljava/util/ArrayList;.size:()I // method@5fe1 │ │ +4993a2: 0a02 |0019: move-result v2 │ │ +4993a4: 3902 0300 |001a: if-nez v2, 001d // +0003 │ │ +4993a8: 285b |001c: goto 0077 // +005b │ │ +4993aa: 6e10 db5f 0000 |001d: invoke-virtual {v0}, Ljava/util/ArrayList;.iterator:()Ljava/util/Iterator; // method@5fdb │ │ +4993b0: 0c02 |0020: move-result-object v2 │ │ +4993b2: 1203 |0021: const/4 v3, #int 0 // #0 │ │ +4993b4: 1204 |0022: const/4 v4, #int 0 // #0 │ │ +4993b6: 7210 4f60 0200 |0023: invoke-interface {v2}, Ljava/util/Iterator;.hasNext:()Z // method@604f │ │ +4993bc: 0a05 |0026: move-result v5 │ │ +4993be: 3805 4d00 |0027: if-eqz v5, 0074 // +004d │ │ +4993c2: 7210 5060 0200 |0029: invoke-interface {v2}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@6050 │ │ +4993c8: 0c05 |002c: move-result-object v5 │ │ +4993ca: 1f05 b31e |002d: check-cast v5, Lorg/purple/smokestack/OzoneElement; // type@1eb3 │ │ +4993ce: 3905 0300 |002f: if-nez v5, 0032 // +0003 │ │ +4993d2: 28f2 |0031: goto 0023 // -000e │ │ +4993d4: 2206 990a |0032: new-instance v6, Landroid/widget/TableRow$LayoutParams; // type@0a99 │ │ +4993d8: 12e7 |0034: const/4 v7, #int -2 // #fe │ │ +4993da: 7020 055b 7600 |0035: invoke-direct {v6, v7}, Landroid/widget/TableRow$LayoutParams;.:(I)V // method@5b05 │ │ +4993e0: 2208 9a0a |0038: new-instance v8, Landroid/widget/TableRow; // type@0a9a │ │ +4993e4: 7020 075b b800 |003a: invoke-direct {v8, v11}, Landroid/widget/TableRow;.:(Landroid/content/Context;)V // method@5b07 │ │ +4993ea: 6e20 0b5b 6800 |003d: invoke-virtual {v8, v6}, Landroid/widget/TableRow;.setLayoutParams:(Landroid/view/ViewGroup$LayoutParams;)V // method@5b0b │ │ +4993f0: 2206 9c0a |0040: new-instance v6, Landroid/widget/TextView; // type@0a9c │ │ +4993f4: 7020 0c5b b600 |0042: invoke-direct {v6, v11}, Landroid/widget/TextView;.:(Landroid/content/Context;)V // method@5b0c │ │ +4993fa: 1309 1000 |0045: const/16 v9, #int 16 // #10 │ │ +4993fe: 6e20 405b 9600 |0047: invoke-virtual {v6, v9}, Landroid/widget/TextView;.setGravity:(I)V // method@5b40 │ │ +499404: 5259 7560 |004a: iget v9, v5, Lorg/purple/smokestack/OzoneElement;.m_oid:I // field@6075 │ │ +499408: 6e20 425b 9600 |004c: invoke-virtual {v6, v9}, Landroid/widget/TextView;.setId:(I)V // method@5b42 │ │ +49940e: 2209 990a |004f: new-instance v9, Landroid/widget/TableRow$LayoutParams; // type@0a99 │ │ +499412: 150a 803f |0051: const/high16 v10, #int 1065353216 // #3f80 │ │ +499416: 7040 065b 39a7 |0053: invoke-direct {v9, v3, v7, v10}, Landroid/widget/TableRow$LayoutParams;.:(IIF)V // method@5b06 │ │ +49941c: 6e20 445b 9600 |0056: invoke-virtual {v6, v9}, Landroid/widget/TextView;.setLayoutParams:(Landroid/view/ViewGroup$LayoutParams;)V // method@5b44 │ │ +499422: 5457 7360 |0059: iget-object v7, v5, Lorg/purple/smokestack/OzoneElement;.m_address:Ljava/lang/String; // field@6073 │ │ +499426: 6e20 515b 7600 |005b: invoke-virtual {v6, v7}, Landroid/widget/TextView;.setTag:(Ljava/lang/Object;)V // method@5b51 │ │ +49942c: 5455 7360 |005e: iget-object v5, v5, Lorg/purple/smokestack/OzoneElement;.m_address:Ljava/lang/String; // field@6073 │ │ +499430: 6e20 525b 5600 |0060: invoke-virtual {v6, v5}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ +499436: 1505 5041 |0063: const/high16 v5, #int 1095761920 // #4150 │ │ +49943a: 6e20 575b 5600 |0065: invoke-virtual {v6, v5}, Landroid/widget/TextView;.setTextSize:(F)V // method@5b57 │ │ +499440: 6e20 11d2 6b00 |0068: invoke-virtual {v11, v6}, Lorg/purple/smokestack/Settings;.registerForContextMenu:(Landroid/view/View;)V // method@d211 │ │ +499446: 6e20 085b 6800 |006b: invoke-virtual {v8, v6}, Landroid/widget/TableRow;.addView:(Landroid/view/View;)V // method@5b08 │ │ +49944c: 6e30 005b 8104 |006e: invoke-virtual {v1, v8, v4}, Landroid/widget/TableLayout;.addView:(Landroid/view/View;I)V // method@5b00 │ │ +499452: d804 0401 |0071: add-int/lit8 v4, v4, #int 1 // #01 │ │ +499456: 28b0 |0073: goto 0023 // -0050 │ │ +499458: 6e10 d45f 0000 |0074: invoke-virtual {v0}, Ljava/util/ArrayList;.clear:()V // method@5fd4 │ │ +49945e: 0e00 |0077: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=1247 │ │ 0x0004 line=1248 │ │ 0x000b line=1250 │ │ 0x0011 line=1252 │ │ 0x0016 line=1254 │ │ @@ -1716674,141 +1716673,141 @@ │ │ type : '()V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 17 │ │ ins : 1 │ │ outs : 5 │ │ insns size : 275 16-bit code units │ │ -499464: |[499464] org.purple.smokestack.Settings.populateParticipants:()V │ │ -499474: 0800 1000 |0000: move-object/from16 v0, v16 │ │ -499478: 5401 3269 |0002: iget-object v1, v0, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ -49947c: 6202 3c69 |0004: sget-object v2, Lorg/purple/smokestack/Settings;.s_cryptography:Lorg/purple/smokestack/Cryptography; // field@693c │ │ -499480: 6e20 cdd0 2100 |0006: invoke-virtual {v1, v2}, Lorg/purple/smokestack/Database;.readSipHashIds:(Lorg/purple/smokestack/Cryptography;)Ljava/util/ArrayList; // method@d0cd │ │ -499486: 0c01 |0009: move-result-object v1 │ │ -499488: 1402 8e00 087f |000a: const v2, #float 1.80778e+38 // #7f08008e │ │ -49948e: 6e20 f6d1 2000 |000d: invoke-virtual {v0, v2}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -499494: 0c02 |0010: move-result-object v2 │ │ -499496: 1f02 980a |0011: check-cast v2, Landroid/widget/TableLayout; // type@0a98 │ │ -49949a: 6e10 035b 0200 |0013: invoke-virtual {v2}, Landroid/widget/TableLayout;.removeAllViews:()V // method@5b03 │ │ -4994a0: 3801 fc00 |0016: if-eqz v1, 0112 // +00fc │ │ -4994a4: 6e10 e15f 0100 |0018: invoke-virtual {v1}, Ljava/util/ArrayList;.size:()I // method@5fe1 │ │ -4994aa: 0a03 |001b: move-result v3 │ │ -4994ac: 3903 0400 |001c: if-nez v3, 0020 // +0004 │ │ -4994b0: 2900 f400 |001e: goto/16 0112 // +00f4 │ │ -4994b4: 6e10 db5f 0100 |0020: invoke-virtual {v1}, Ljava/util/ArrayList;.iterator:()Ljava/util/Iterator; // method@5fdb │ │ -4994ba: 0c03 |0023: move-result-object v3 │ │ -4994bc: 1204 |0024: const/4 v4, #int 0 // #0 │ │ -4994be: 1205 |0025: const/4 v5, #int 0 // #0 │ │ -4994c0: 7210 4f60 0300 |0026: invoke-interface {v3}, Ljava/util/Iterator;.hasNext:()Z // method@604f │ │ -4994c6: 0a06 |0029: move-result v6 │ │ -4994c8: 3806 e500 |002a: if-eqz v6, 010f // +00e5 │ │ -4994cc: 7210 5060 0300 |002c: invoke-interface {v3}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@6050 │ │ -4994d2: 0c06 |002f: move-result-object v6 │ │ -4994d4: 1f06 f21e |0030: check-cast v6, Lorg/purple/smokestack/SipHashIdElement; // type@1ef2 │ │ -4994d8: 3906 0300 |0032: if-nez v6, 0035 // +0003 │ │ -4994dc: 28f2 |0034: goto 0026 // -000e │ │ -4994de: 2207 9a0a |0035: new-instance v7, Landroid/widget/TableRow; // type@0a9a │ │ -4994e2: 7020 075b 0700 |0037: invoke-direct {v7, v0}, Landroid/widget/TableRow;.:(Landroid/content/Context;)V // method@5b07 │ │ -4994e8: 2208 990a |003a: new-instance v8, Landroid/widget/TableRow$LayoutParams; // type@0a99 │ │ -4994ec: 12e9 |003c: const/4 v9, #int -2 // #fe │ │ -4994ee: 7020 055b 9800 |003d: invoke-direct {v8, v9}, Landroid/widget/TableRow$LayoutParams;.:(I)V // method@5b05 │ │ -4994f4: 6e20 0b5b 8700 |0040: invoke-virtual {v7, v8}, Landroid/widget/TableRow;.setLayoutParams:(Landroid/view/ViewGroup$LayoutParams;)V // method@5b0b │ │ -4994fa: 1208 |0043: const/4 v8, #int 0 // #0 │ │ -4994fc: 124a |0044: const/4 v10, #int 4 // #4 │ │ -4994fe: 35a8 c300 |0045: if-ge v8, v10, 0108 // +00c3 │ │ -499502: 220a 9c0a |0047: new-instance v10, Landroid/widget/TextView; // type@0a9c │ │ -499506: 7020 0c5b 0a00 |0049: invoke-direct {v10, v0}, Landroid/widget/TextView;.:(Landroid/content/Context;)V // method@5b0c │ │ -49950c: 526b 5469 |004c: iget v11, v6, Lorg/purple/smokestack/SipHashIdElement;.m_oid:I // field@6954 │ │ -499510: 6e20 425b ba00 |004e: invoke-virtual {v10, v11}, Landroid/widget/TextView;.setId:(I)V // method@5b42 │ │ -499516: 12fb |0051: const/4 v11, #int -1 // #ff │ │ -499518: 130c 1000 |0052: const/16 v12, #int 16 // #10 │ │ -49951c: 150d 803f |0054: const/high16 v13, #int 1065353216 // #3f80 │ │ -499520: 121e |0056: const/4 v14, #int 1 // #1 │ │ -499522: 3808 7f00 |0057: if-eqz v8, 00d6 // +007f │ │ -499526: 32e8 4800 |0059: if-eq v8, v14, 00a1 // +0048 │ │ -49952a: 122f |005b: const/4 v15, #int 2 // #2 │ │ -49952c: 32f8 1400 |005c: if-eq v8, v15, 0070 // +0014 │ │ -499530: 6e20 405b ca00 |005e: invoke-virtual {v10, v12}, Landroid/widget/TextView;.setGravity:(I)V // method@5b40 │ │ -499536: 220c 990a |0061: new-instance v12, Landroid/widget/TableRow$LayoutParams; // type@0a99 │ │ -49953a: 7040 065b 4cdb |0063: invoke-direct {v12, v4, v11, v13}, Landroid/widget/TableRow$LayoutParams;.:(IIF)V // method@5b06 │ │ -499540: 6e20 445b ca00 |0066: invoke-virtual {v10, v12}, Landroid/widget/TextView;.setLayoutParams:(Landroid/view/ViewGroup$LayoutParams;)V // method@5b44 │ │ -499546: 546b 5869 |0069: iget-object v11, v6, Lorg/purple/smokestack/SipHashIdElement;.m_timestamp:Ljava/lang/String; // field@6958 │ │ -49954a: 6e20 525b ba00 |006b: invoke-virtual {v10, v11}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ -499550: 2900 7800 |006e: goto/16 00e6 // +0078 │ │ -499554: 536e 5569 |0070: iget-wide v14, v6, Lorg/purple/smokestack/SipHashIdElement;.m_outMessages:J // field@6955 │ │ -499558: 7120 fb5c fe00 |0072: invoke-static {v14, v15}, Ljava/lang/String;.valueOf:(J)Ljava/lang/String; // method@5cfb │ │ -49955e: 0c0c |0075: move-result-object v12 │ │ -499560: 6e20 0f5b ca00 |0076: invoke-virtual {v10, v12}, Landroid/widget/TextView;.append:(Ljava/lang/CharSequence;)V // method@5b0f │ │ -499566: 1a0c b200 |0079: const-string v12, " / " // string@00b2 │ │ -49956a: 6e20 0f5b ca00 |007b: invoke-virtual {v10, v12}, Landroid/widget/TextView;.append:(Ljava/lang/CharSequence;)V // method@5b0f │ │ -499570: 536e 5169 |007e: iget-wide v14, v6, Lorg/purple/smokestack/SipHashIdElement;.m_inMessages:J // field@6951 │ │ -499574: 7120 fb5c fe00 |0080: invoke-static {v14, v15}, Ljava/lang/String;.valueOf:(J)Ljava/lang/String; // method@5cfb │ │ -49957a: 0c0e |0083: move-result-object v14 │ │ -49957c: 6e20 0f5b ea00 |0084: invoke-virtual {v10, v14}, Landroid/widget/TextView;.append:(Ljava/lang/CharSequence;)V // method@5b0f │ │ -499582: 6e20 0f5b ca00 |0087: invoke-virtual {v10, v12}, Landroid/widget/TextView;.append:(Ljava/lang/CharSequence;)V // method@5b0f │ │ -499588: 536e 5969 |008a: iget-wide v14, v6, Lorg/purple/smokestack/SipHashIdElement;.m_totalMessages:J // field@6959 │ │ -49958c: 7120 fb5c fe00 |008c: invoke-static {v14, v15}, Ljava/lang/String;.valueOf:(J)Ljava/lang/String; // method@5cfb │ │ -499592: 0c0c |008f: move-result-object v12 │ │ -499594: 6e20 0f5b ca00 |0090: invoke-virtual {v10, v12}, Landroid/widget/TextView;.append:(Ljava/lang/CharSequence;)V // method@5b0f │ │ -49959a: 130c 1100 |0093: const/16 v12, #int 17 // #11 │ │ -49959e: 6e20 405b ca00 |0095: invoke-virtual {v10, v12}, Landroid/widget/TextView;.setGravity:(I)V // method@5b40 │ │ -4995a4: 220c 990a |0098: new-instance v12, Landroid/widget/TableRow$LayoutParams; // type@0a99 │ │ -4995a8: 7040 065b 4cdb |009a: invoke-direct {v12, v4, v11, v13}, Landroid/widget/TableRow$LayoutParams;.:(IIF)V // method@5b06 │ │ -4995ae: 6e20 445b ca00 |009d: invoke-virtual {v10, v12}, Landroid/widget/TextView;.setLayoutParams:(Landroid/view/ViewGroup$LayoutParams;)V // method@5b44 │ │ -4995b4: 2846 |00a0: goto 00e6 // +0046 │ │ -4995b6: 556b 5069 |00a1: iget-boolean v11, v6, Lorg/purple/smokestack/SipHashIdElement;.m_epksCompleted:Z // field@6950 │ │ -4995ba: 380b 0d00 |00a3: if-eqz v11, 00b0 // +000d │ │ -4995be: 556b 5269 |00a5: iget-boolean v11, v6, Lorg/purple/smokestack/SipHashIdElement;.m_keysSigned:Z // field@6952 │ │ -4995c2: 380b 0900 |00a7: if-eqz v11, 00b0 // +0009 │ │ -4995c6: 140b 6300 077f |00a9: const v11, #float 1.79448e+38 // #7f070063 │ │ -4995cc: 6e54 395b ba44 |00ac: invoke-virtual {v10, v11, v4, v4, v4}, Landroid/widget/TextView;.setCompoundDrawablesWithIntrinsicBounds:(IIII)V // method@5b39 │ │ -4995d2: 2812 |00af: goto 00c1 // +0012 │ │ -4995d4: 556b 5069 |00b0: iget-boolean v11, v6, Lorg/purple/smokestack/SipHashIdElement;.m_epksCompleted:Z // field@6950 │ │ -4995d8: 380b 0900 |00b2: if-eqz v11, 00bb // +0009 │ │ -4995dc: 140b 6200 077f |00b4: const v11, #float 1.79448e+38 // #7f070062 │ │ -4995e2: 6e54 395b ba44 |00b7: invoke-virtual {v10, v11, v4, v4, v4}, Landroid/widget/TextView;.setCompoundDrawablesWithIntrinsicBounds:(IIII)V // method@5b39 │ │ -4995e8: 2807 |00ba: goto 00c1 // +0007 │ │ -4995ea: 140b 7300 077f |00bb: const v11, #float 1.79448e+38 // #7f070073 │ │ -4995f0: 6e54 395b ba44 |00be: invoke-virtual {v10, v11, v4, v4, v4}, Landroid/widget/TextView;.setCompoundDrawablesWithIntrinsicBounds:(IIII)V // method@5b39 │ │ -4995f6: 125b |00c1: const/4 v11, #int 5 // #5 │ │ -4995f8: 6e20 345b ba00 |00c2: invoke-virtual {v10, v11}, Landroid/widget/TextView;.setCompoundDrawablePadding:(I)V // method@5b34 │ │ -4995fe: 6e20 405b ca00 |00c5: invoke-virtual {v10, v12}, Landroid/widget/TextView;.setGravity:(I)V // method@5b40 │ │ -499604: 220b 990a |00c8: new-instance v11, Landroid/widget/TableRow$LayoutParams; // type@0a99 │ │ -499608: 7040 065b 4bd9 |00ca: invoke-direct {v11, v4, v9, v13}, Landroid/widget/TableRow$LayoutParams;.:(IIF)V // method@5b06 │ │ -49960e: 6e20 445b ba00 |00cd: invoke-virtual {v10, v11}, Landroid/widget/TextView;.setLayoutParams:(Landroid/view/ViewGroup$LayoutParams;)V // method@5b44 │ │ -499614: 546b 5669 |00d0: iget-object v11, v6, Lorg/purple/smokestack/SipHashIdElement;.m_sipHashId:Ljava/lang/String; // field@6956 │ │ -499618: 6e20 525b ba00 |00d2: invoke-virtual {v10, v11}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ -49961e: 2811 |00d5: goto 00e6 // +0011 │ │ -499620: 6e20 405b ca00 |00d6: invoke-virtual {v10, v12}, Landroid/widget/TextView;.setGravity:(I)V // method@5b40 │ │ -499626: 220c 990a |00d9: new-instance v12, Landroid/widget/TableRow$LayoutParams; // type@0a99 │ │ -49962a: 7040 065b 4cdb |00db: invoke-direct {v12, v4, v11, v13}, Landroid/widget/TableRow$LayoutParams;.:(IIF)V // method@5b06 │ │ -499630: 6e20 445b ca00 |00de: invoke-virtual {v10, v12}, Landroid/widget/TextView;.setLayoutParams:(Landroid/view/ViewGroup$LayoutParams;)V // method@5b44 │ │ -499636: 546b 5369 |00e1: iget-object v11, v6, Lorg/purple/smokestack/SipHashIdElement;.m_name:Ljava/lang/String; // field@6953 │ │ -49963a: 6e20 525b ba00 |00e3: invoke-virtual {v10, v11}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ -499640: 3808 0c00 |00e6: if-eqz v8, 00f2 // +000c │ │ -499644: 121b |00e8: const/4 v11, #int 1 // #1 │ │ -499646: 33b8 0300 |00e9: if-ne v8, v11, 00ec // +0003 │ │ -49964a: 2807 |00eb: goto 00f2 // +0007 │ │ -49964c: 546b 5369 |00ec: iget-object v11, v6, Lorg/purple/smokestack/SipHashIdElement;.m_name:Ljava/lang/String; // field@6953 │ │ -499650: 6e20 515b ba00 |00ee: invoke-virtual {v10, v11}, Landroid/widget/TextView;.setTag:(Ljava/lang/Object;)V // method@5b51 │ │ -499656: 2808 |00f1: goto 00f9 // +0008 │ │ -499658: 6e10 275b 0a00 |00f2: invoke-virtual {v10}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ -49965e: 0c0b |00f5: move-result-object v11 │ │ -499660: 6e20 515b ba00 |00f6: invoke-virtual {v10, v11}, Landroid/widget/TextView;.setTag:(Ljava/lang/Object;)V // method@5b51 │ │ -499666: 150b 5041 |00f9: const/high16 v11, #int 1095761920 // #4150 │ │ -49966a: 6e20 575b ba00 |00fb: invoke-virtual {v10, v11}, Landroid/widget/TextView;.setTextSize:(F)V // method@5b57 │ │ -499670: 6e20 11d2 a000 |00fe: invoke-virtual {v0, v10}, Lorg/purple/smokestack/Settings;.registerForContextMenu:(Landroid/view/View;)V // method@d211 │ │ -499676: 6e20 085b a700 |0101: invoke-virtual {v7, v10}, Landroid/widget/TableRow;.addView:(Landroid/view/View;)V // method@5b08 │ │ -49967c: d808 0801 |0104: add-int/lit8 v8, v8, #int 1 // #01 │ │ -499680: 2900 3eff |0106: goto/16 0044 // -00c2 │ │ -499684: 6e30 005b 7205 |0108: invoke-virtual {v2, v7, v5}, Landroid/widget/TableLayout;.addView:(Landroid/view/View;I)V // method@5b00 │ │ -49968a: d805 0501 |010b: add-int/lit8 v5, v5, #int 1 // #01 │ │ -49968e: 2900 19ff |010d: goto/16 0026 // -00e7 │ │ -499692: 6e10 d45f 0100 |010f: invoke-virtual {v1}, Ljava/util/ArrayList;.clear:()V // method@5fd4 │ │ -499698: 0e00 |0112: return-void │ │ +499460: |[499460] org.purple.smokestack.Settings.populateParticipants:()V │ │ +499470: 0800 1000 |0000: move-object/from16 v0, v16 │ │ +499474: 5401 3269 |0002: iget-object v1, v0, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ +499478: 6202 3c69 |0004: sget-object v2, Lorg/purple/smokestack/Settings;.s_cryptography:Lorg/purple/smokestack/Cryptography; // field@693c │ │ +49947c: 6e20 cdd0 2100 |0006: invoke-virtual {v1, v2}, Lorg/purple/smokestack/Database;.readSipHashIds:(Lorg/purple/smokestack/Cryptography;)Ljava/util/ArrayList; // method@d0cd │ │ +499482: 0c01 |0009: move-result-object v1 │ │ +499484: 1402 8e00 087f |000a: const v2, #float 1.80778e+38 // #7f08008e │ │ +49948a: 6e20 f6d1 2000 |000d: invoke-virtual {v0, v2}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +499490: 0c02 |0010: move-result-object v2 │ │ +499492: 1f02 980a |0011: check-cast v2, Landroid/widget/TableLayout; // type@0a98 │ │ +499496: 6e10 035b 0200 |0013: invoke-virtual {v2}, Landroid/widget/TableLayout;.removeAllViews:()V // method@5b03 │ │ +49949c: 3801 fc00 |0016: if-eqz v1, 0112 // +00fc │ │ +4994a0: 6e10 e15f 0100 |0018: invoke-virtual {v1}, Ljava/util/ArrayList;.size:()I // method@5fe1 │ │ +4994a6: 0a03 |001b: move-result v3 │ │ +4994a8: 3903 0400 |001c: if-nez v3, 0020 // +0004 │ │ +4994ac: 2900 f400 |001e: goto/16 0112 // +00f4 │ │ +4994b0: 6e10 db5f 0100 |0020: invoke-virtual {v1}, Ljava/util/ArrayList;.iterator:()Ljava/util/Iterator; // method@5fdb │ │ +4994b6: 0c03 |0023: move-result-object v3 │ │ +4994b8: 1204 |0024: const/4 v4, #int 0 // #0 │ │ +4994ba: 1205 |0025: const/4 v5, #int 0 // #0 │ │ +4994bc: 7210 4f60 0300 |0026: invoke-interface {v3}, Ljava/util/Iterator;.hasNext:()Z // method@604f │ │ +4994c2: 0a06 |0029: move-result v6 │ │ +4994c4: 3806 e500 |002a: if-eqz v6, 010f // +00e5 │ │ +4994c8: 7210 5060 0300 |002c: invoke-interface {v3}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@6050 │ │ +4994ce: 0c06 |002f: move-result-object v6 │ │ +4994d0: 1f06 f21e |0030: check-cast v6, Lorg/purple/smokestack/SipHashIdElement; // type@1ef2 │ │ +4994d4: 3906 0300 |0032: if-nez v6, 0035 // +0003 │ │ +4994d8: 28f2 |0034: goto 0026 // -000e │ │ +4994da: 2207 9a0a |0035: new-instance v7, Landroid/widget/TableRow; // type@0a9a │ │ +4994de: 7020 075b 0700 |0037: invoke-direct {v7, v0}, Landroid/widget/TableRow;.:(Landroid/content/Context;)V // method@5b07 │ │ +4994e4: 2208 990a |003a: new-instance v8, Landroid/widget/TableRow$LayoutParams; // type@0a99 │ │ +4994e8: 12e9 |003c: const/4 v9, #int -2 // #fe │ │ +4994ea: 7020 055b 9800 |003d: invoke-direct {v8, v9}, Landroid/widget/TableRow$LayoutParams;.:(I)V // method@5b05 │ │ +4994f0: 6e20 0b5b 8700 |0040: invoke-virtual {v7, v8}, Landroid/widget/TableRow;.setLayoutParams:(Landroid/view/ViewGroup$LayoutParams;)V // method@5b0b │ │ +4994f6: 1208 |0043: const/4 v8, #int 0 // #0 │ │ +4994f8: 124a |0044: const/4 v10, #int 4 // #4 │ │ +4994fa: 35a8 c300 |0045: if-ge v8, v10, 0108 // +00c3 │ │ +4994fe: 220a 9c0a |0047: new-instance v10, Landroid/widget/TextView; // type@0a9c │ │ +499502: 7020 0c5b 0a00 |0049: invoke-direct {v10, v0}, Landroid/widget/TextView;.:(Landroid/content/Context;)V // method@5b0c │ │ +499508: 526b 5469 |004c: iget v11, v6, Lorg/purple/smokestack/SipHashIdElement;.m_oid:I // field@6954 │ │ +49950c: 6e20 425b ba00 |004e: invoke-virtual {v10, v11}, Landroid/widget/TextView;.setId:(I)V // method@5b42 │ │ +499512: 12fb |0051: const/4 v11, #int -1 // #ff │ │ +499514: 130c 1000 |0052: const/16 v12, #int 16 // #10 │ │ +499518: 150d 803f |0054: const/high16 v13, #int 1065353216 // #3f80 │ │ +49951c: 121e |0056: const/4 v14, #int 1 // #1 │ │ +49951e: 3808 7f00 |0057: if-eqz v8, 00d6 // +007f │ │ +499522: 32e8 4800 |0059: if-eq v8, v14, 00a1 // +0048 │ │ +499526: 122f |005b: const/4 v15, #int 2 // #2 │ │ +499528: 32f8 1400 |005c: if-eq v8, v15, 0070 // +0014 │ │ +49952c: 6e20 405b ca00 |005e: invoke-virtual {v10, v12}, Landroid/widget/TextView;.setGravity:(I)V // method@5b40 │ │ +499532: 220c 990a |0061: new-instance v12, Landroid/widget/TableRow$LayoutParams; // type@0a99 │ │ +499536: 7040 065b 4cdb |0063: invoke-direct {v12, v4, v11, v13}, Landroid/widget/TableRow$LayoutParams;.:(IIF)V // method@5b06 │ │ +49953c: 6e20 445b ca00 |0066: invoke-virtual {v10, v12}, Landroid/widget/TextView;.setLayoutParams:(Landroid/view/ViewGroup$LayoutParams;)V // method@5b44 │ │ +499542: 546b 5869 |0069: iget-object v11, v6, Lorg/purple/smokestack/SipHashIdElement;.m_timestamp:Ljava/lang/String; // field@6958 │ │ +499546: 6e20 525b ba00 |006b: invoke-virtual {v10, v11}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ +49954c: 2900 7800 |006e: goto/16 00e6 // +0078 │ │ +499550: 536e 5569 |0070: iget-wide v14, v6, Lorg/purple/smokestack/SipHashIdElement;.m_outMessages:J // field@6955 │ │ +499554: 7120 fb5c fe00 |0072: invoke-static {v14, v15}, Ljava/lang/String;.valueOf:(J)Ljava/lang/String; // method@5cfb │ │ +49955a: 0c0c |0075: move-result-object v12 │ │ +49955c: 6e20 0f5b ca00 |0076: invoke-virtual {v10, v12}, Landroid/widget/TextView;.append:(Ljava/lang/CharSequence;)V // method@5b0f │ │ +499562: 1a0c b200 |0079: const-string v12, " / " // string@00b2 │ │ +499566: 6e20 0f5b ca00 |007b: invoke-virtual {v10, v12}, Landroid/widget/TextView;.append:(Ljava/lang/CharSequence;)V // method@5b0f │ │ +49956c: 536e 5169 |007e: iget-wide v14, v6, Lorg/purple/smokestack/SipHashIdElement;.m_inMessages:J // field@6951 │ │ +499570: 7120 fb5c fe00 |0080: invoke-static {v14, v15}, Ljava/lang/String;.valueOf:(J)Ljava/lang/String; // method@5cfb │ │ +499576: 0c0e |0083: move-result-object v14 │ │ +499578: 6e20 0f5b ea00 |0084: invoke-virtual {v10, v14}, Landroid/widget/TextView;.append:(Ljava/lang/CharSequence;)V // method@5b0f │ │ +49957e: 6e20 0f5b ca00 |0087: invoke-virtual {v10, v12}, Landroid/widget/TextView;.append:(Ljava/lang/CharSequence;)V // method@5b0f │ │ +499584: 536e 5969 |008a: iget-wide v14, v6, Lorg/purple/smokestack/SipHashIdElement;.m_totalMessages:J // field@6959 │ │ +499588: 7120 fb5c fe00 |008c: invoke-static {v14, v15}, Ljava/lang/String;.valueOf:(J)Ljava/lang/String; // method@5cfb │ │ +49958e: 0c0c |008f: move-result-object v12 │ │ +499590: 6e20 0f5b ca00 |0090: invoke-virtual {v10, v12}, Landroid/widget/TextView;.append:(Ljava/lang/CharSequence;)V // method@5b0f │ │ +499596: 130c 1100 |0093: const/16 v12, #int 17 // #11 │ │ +49959a: 6e20 405b ca00 |0095: invoke-virtual {v10, v12}, Landroid/widget/TextView;.setGravity:(I)V // method@5b40 │ │ +4995a0: 220c 990a |0098: new-instance v12, Landroid/widget/TableRow$LayoutParams; // type@0a99 │ │ +4995a4: 7040 065b 4cdb |009a: invoke-direct {v12, v4, v11, v13}, Landroid/widget/TableRow$LayoutParams;.:(IIF)V // method@5b06 │ │ +4995aa: 6e20 445b ca00 |009d: invoke-virtual {v10, v12}, Landroid/widget/TextView;.setLayoutParams:(Landroid/view/ViewGroup$LayoutParams;)V // method@5b44 │ │ +4995b0: 2846 |00a0: goto 00e6 // +0046 │ │ +4995b2: 556b 5069 |00a1: iget-boolean v11, v6, Lorg/purple/smokestack/SipHashIdElement;.m_epksCompleted:Z // field@6950 │ │ +4995b6: 380b 0d00 |00a3: if-eqz v11, 00b0 // +000d │ │ +4995ba: 556b 5269 |00a5: iget-boolean v11, v6, Lorg/purple/smokestack/SipHashIdElement;.m_keysSigned:Z // field@6952 │ │ +4995be: 380b 0900 |00a7: if-eqz v11, 00b0 // +0009 │ │ +4995c2: 140b 6300 077f |00a9: const v11, #float 1.79448e+38 // #7f070063 │ │ +4995c8: 6e54 395b ba44 |00ac: invoke-virtual {v10, v11, v4, v4, v4}, Landroid/widget/TextView;.setCompoundDrawablesWithIntrinsicBounds:(IIII)V // method@5b39 │ │ +4995ce: 2812 |00af: goto 00c1 // +0012 │ │ +4995d0: 556b 5069 |00b0: iget-boolean v11, v6, Lorg/purple/smokestack/SipHashIdElement;.m_epksCompleted:Z // field@6950 │ │ +4995d4: 380b 0900 |00b2: if-eqz v11, 00bb // +0009 │ │ +4995d8: 140b 6200 077f |00b4: const v11, #float 1.79448e+38 // #7f070062 │ │ +4995de: 6e54 395b ba44 |00b7: invoke-virtual {v10, v11, v4, v4, v4}, Landroid/widget/TextView;.setCompoundDrawablesWithIntrinsicBounds:(IIII)V // method@5b39 │ │ +4995e4: 2807 |00ba: goto 00c1 // +0007 │ │ +4995e6: 140b 7300 077f |00bb: const v11, #float 1.79448e+38 // #7f070073 │ │ +4995ec: 6e54 395b ba44 |00be: invoke-virtual {v10, v11, v4, v4, v4}, Landroid/widget/TextView;.setCompoundDrawablesWithIntrinsicBounds:(IIII)V // method@5b39 │ │ +4995f2: 125b |00c1: const/4 v11, #int 5 // #5 │ │ +4995f4: 6e20 345b ba00 |00c2: invoke-virtual {v10, v11}, Landroid/widget/TextView;.setCompoundDrawablePadding:(I)V // method@5b34 │ │ +4995fa: 6e20 405b ca00 |00c5: invoke-virtual {v10, v12}, Landroid/widget/TextView;.setGravity:(I)V // method@5b40 │ │ +499600: 220b 990a |00c8: new-instance v11, Landroid/widget/TableRow$LayoutParams; // type@0a99 │ │ +499604: 7040 065b 4bd9 |00ca: invoke-direct {v11, v4, v9, v13}, Landroid/widget/TableRow$LayoutParams;.:(IIF)V // method@5b06 │ │ +49960a: 6e20 445b ba00 |00cd: invoke-virtual {v10, v11}, Landroid/widget/TextView;.setLayoutParams:(Landroid/view/ViewGroup$LayoutParams;)V // method@5b44 │ │ +499610: 546b 5669 |00d0: iget-object v11, v6, Lorg/purple/smokestack/SipHashIdElement;.m_sipHashId:Ljava/lang/String; // field@6956 │ │ +499614: 6e20 525b ba00 |00d2: invoke-virtual {v10, v11}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ +49961a: 2811 |00d5: goto 00e6 // +0011 │ │ +49961c: 6e20 405b ca00 |00d6: invoke-virtual {v10, v12}, Landroid/widget/TextView;.setGravity:(I)V // method@5b40 │ │ +499622: 220c 990a |00d9: new-instance v12, Landroid/widget/TableRow$LayoutParams; // type@0a99 │ │ +499626: 7040 065b 4cdb |00db: invoke-direct {v12, v4, v11, v13}, Landroid/widget/TableRow$LayoutParams;.:(IIF)V // method@5b06 │ │ +49962c: 6e20 445b ca00 |00de: invoke-virtual {v10, v12}, Landroid/widget/TextView;.setLayoutParams:(Landroid/view/ViewGroup$LayoutParams;)V // method@5b44 │ │ +499632: 546b 5369 |00e1: iget-object v11, v6, Lorg/purple/smokestack/SipHashIdElement;.m_name:Ljava/lang/String; // field@6953 │ │ +499636: 6e20 525b ba00 |00e3: invoke-virtual {v10, v11}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ +49963c: 3808 0c00 |00e6: if-eqz v8, 00f2 // +000c │ │ +499640: 121b |00e8: const/4 v11, #int 1 // #1 │ │ +499642: 33b8 0300 |00e9: if-ne v8, v11, 00ec // +0003 │ │ +499646: 2807 |00eb: goto 00f2 // +0007 │ │ +499648: 546b 5369 |00ec: iget-object v11, v6, Lorg/purple/smokestack/SipHashIdElement;.m_name:Ljava/lang/String; // field@6953 │ │ +49964c: 6e20 515b ba00 |00ee: invoke-virtual {v10, v11}, Landroid/widget/TextView;.setTag:(Ljava/lang/Object;)V // method@5b51 │ │ +499652: 2808 |00f1: goto 00f9 // +0008 │ │ +499654: 6e10 275b 0a00 |00f2: invoke-virtual {v10}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ +49965a: 0c0b |00f5: move-result-object v11 │ │ +49965c: 6e20 515b ba00 |00f6: invoke-virtual {v10, v11}, Landroid/widget/TextView;.setTag:(Ljava/lang/Object;)V // method@5b51 │ │ +499662: 150b 5041 |00f9: const/high16 v11, #int 1095761920 // #4150 │ │ +499666: 6e20 575b ba00 |00fb: invoke-virtual {v10, v11}, Landroid/widget/TextView;.setTextSize:(F)V // method@5b57 │ │ +49966c: 6e20 11d2 a000 |00fe: invoke-virtual {v0, v10}, Lorg/purple/smokestack/Settings;.registerForContextMenu:(Landroid/view/View;)V // method@d211 │ │ +499672: 6e20 085b a700 |0101: invoke-virtual {v7, v10}, Landroid/widget/TableRow;.addView:(Landroid/view/View;)V // method@5b08 │ │ +499678: d808 0801 |0104: add-int/lit8 v8, v8, #int 1 // #01 │ │ +49967c: 2900 3eff |0106: goto/16 0044 // -00c2 │ │ +499680: 6e30 005b 7205 |0108: invoke-virtual {v2, v7, v5}, Landroid/widget/TableLayout;.addView:(Landroid/view/View;I)V // method@5b00 │ │ +499686: d805 0501 |010b: add-int/lit8 v5, v5, #int 1 // #01 │ │ +49968a: 2900 19ff |010d: goto/16 0026 // -00e7 │ │ +49968e: 6e10 d45f 0100 |010f: invoke-virtual {v1}, Ljava/util/ArrayList;.clear:()V // method@5fd4 │ │ +499694: 0e00 |0112: return-void │ │ catches : (none) │ │ positions : │ │ 0x0002 line=1292 │ │ 0x0006 line=1293 │ │ 0x000d line=1295 │ │ 0x0013 line=1297 │ │ 0x0018 line=1299 │ │ @@ -1716862,64 +1716861,64 @@ │ │ type : '()V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 10 │ │ ins : 1 │ │ outs : 7 │ │ insns size : 99 16-bit code units │ │ -49969c: |[49969c] org.purple.smokestack.Settings.prepareCredentials:()V │ │ -4996ac: 6e10 fed1 0900 |0000: invoke-virtual {v9}, Lorg/purple/smokestack/Settings;.isFinishing:()Z // method@d1fe │ │ -4996b2: 0a00 |0003: move-result v0 │ │ -4996b4: 3800 0300 |0004: if-eqz v0, 0007 // +0003 │ │ -4996b8: 0e00 |0006: return-void │ │ -4996ba: 2205 2e00 |0007: new-instance v5, Landroid/app/ProgressDialog; // type@002e │ │ -4996be: 7020 1701 9500 |0009: invoke-direct {v5, v9}, Landroid/app/ProgressDialog;.:(Landroid/content/Context;)V // method@0117 │ │ -4996c4: 1400 5f00 087f |000c: const v0, #float 1.80777e+38 // #7f08005f │ │ -4996ca: 6e20 f6d1 0900 |000f: invoke-virtual {v9, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4996d0: 0c00 |0012: move-result-object v0 │ │ -4996d2: 1f00 900a |0013: check-cast v0, Landroid/widget/Spinner; // type@0a90 │ │ -4996d6: 1401 9000 087f |0015: const v1, #float 1.80778e+38 // #7f080090 │ │ -4996dc: 6e20 f6d1 1900 |0018: invoke-virtual {v9, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4996e2: 0c01 |001b: move-result-object v1 │ │ -4996e4: 0716 |001c: move-object v6, v1 │ │ -4996e6: 1f06 9c0a |001d: check-cast v6, Landroid/widget/TextView; // type@0a9c │ │ -4996ea: 1401 9100 087f |001f: const v1, #float 1.80778e+38 // #7f080091 │ │ -4996f0: 6e20 f6d1 1900 |0022: invoke-virtual {v9, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4996f6: 0c01 |0025: move-result-object v1 │ │ -4996f8: 0717 |0026: move-object v7, v1 │ │ -4996fa: 1f07 9c0a |0027: check-cast v7, Landroid/widget/TextView; // type@0a9c │ │ -4996fe: 6e10 c85a 0000 |0029: invoke-virtual {v0}, Landroid/widget/Spinner;.getSelectedItem:()Ljava/lang/Object; // method@5ac8 │ │ -499704: 0c00 |002c: move-result-object v0 │ │ -499706: 6e10 b55c 0000 |002d: invoke-virtual {v0}, Ljava/lang/Object;.toString:()Ljava/lang/String; // method@5cb5 │ │ -49970c: 0c00 |0030: move-result-object v0 │ │ -49970e: 7110 6f5c 0000 |0031: invoke-static {v0}, Ljava/lang/Integer;.parseInt:(Ljava/lang/String;)I // method@5c6f │ │ -499714: 0a00 |0034: move-result v0 │ │ -499716: 0104 |0035: move v4, v0 │ │ -499718: 2805 |0036: goto 003b // +0005 │ │ -49971a: 1300 e803 |0037: const/16 v0, #int 1000 // #3e8 │ │ -49971e: 1304 e803 |0039: const/16 v4, #int 1000 // #3e8 │ │ -499722: 1200 |003b: const/4 v0, #int 0 // #0 │ │ -499724: 6e20 1901 0500 |003c: invoke-virtual {v5, v0}, Landroid/app/ProgressDialog;.setCancelable:(Z)V // method@0119 │ │ -49972a: 1210 |003f: const/4 v0, #int 1 // #1 │ │ -49972c: 6e20 1a01 0500 |0040: invoke-virtual {v5, v0}, Landroid/app/ProgressDialog;.setIndeterminate:(Z)V // method@011a │ │ -499732: 1a00 831d |0043: const-string v0, "Generating confidential material. Please be patient and do not rotate the device while the process executes." // string@1d83 │ │ -499736: 6e20 1b01 0500 |0045: invoke-virtual {v5, v0}, Landroid/app/ProgressDialog;.setMessage:(Ljava/lang/CharSequence;)V // method@011b │ │ -49973c: 6e10 1c01 0500 |0048: invoke-virtual {v5}, Landroid/app/ProgressDialog;.show:()V // method@011c │ │ -499742: 2200 ff0a |004b: new-instance v0, Ljava/lang/Thread; // type@0aff │ │ -499746: 2208 dd1e |004d: new-instance v8, Lorg/purple/smokestack/Settings$2SingleShot; // type@1edd │ │ -49974a: 6e10 275b 0600 |004f: invoke-virtual {v6}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ -499750: 0c01 |0052: move-result-object v1 │ │ -499752: 7210 1b5c 0100 |0053: invoke-interface {v1}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ -499758: 0c03 |0056: move-result-object v3 │ │ -49975a: 0781 |0057: move-object v1, v8 │ │ -49975c: 0792 |0058: move-object v2, v9 │ │ -49975e: 7607 afd1 0100 |0059: invoke-direct/range {v1, v2, v3, v4, v5, v6, v7}, Lorg/purple/smokestack/Settings$2SingleShot;.:(Lorg/purple/smokestack/Settings;Ljava/lang/String;ILandroid/app/ProgressDialog;Landroid/widget/TextView;Landroid/widget/TextView;)V // method@d1af │ │ -499764: 7020 345d 8000 |005c: invoke-direct {v0, v8}, Ljava/lang/Thread;.:(Ljava/lang/Runnable;)V // method@5d34 │ │ -49976a: 6e10 3e5d 0000 |005f: invoke-virtual {v0}, Ljava/lang/Thread;.start:()V // method@5d3e │ │ -499770: 0e00 |0062: return-void │ │ +499698: |[499698] org.purple.smokestack.Settings.prepareCredentials:()V │ │ +4996a8: 6e10 fed1 0900 |0000: invoke-virtual {v9}, Lorg/purple/smokestack/Settings;.isFinishing:()Z // method@d1fe │ │ +4996ae: 0a00 |0003: move-result v0 │ │ +4996b0: 3800 0300 |0004: if-eqz v0, 0007 // +0003 │ │ +4996b4: 0e00 |0006: return-void │ │ +4996b6: 2205 2e00 |0007: new-instance v5, Landroid/app/ProgressDialog; // type@002e │ │ +4996ba: 7020 1701 9500 |0009: invoke-direct {v5, v9}, Landroid/app/ProgressDialog;.:(Landroid/content/Context;)V // method@0117 │ │ +4996c0: 1400 5f00 087f |000c: const v0, #float 1.80777e+38 // #7f08005f │ │ +4996c6: 6e20 f6d1 0900 |000f: invoke-virtual {v9, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4996cc: 0c00 |0012: move-result-object v0 │ │ +4996ce: 1f00 900a |0013: check-cast v0, Landroid/widget/Spinner; // type@0a90 │ │ +4996d2: 1401 9000 087f |0015: const v1, #float 1.80778e+38 // #7f080090 │ │ +4996d8: 6e20 f6d1 1900 |0018: invoke-virtual {v9, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4996de: 0c01 |001b: move-result-object v1 │ │ +4996e0: 0716 |001c: move-object v6, v1 │ │ +4996e2: 1f06 9c0a |001d: check-cast v6, Landroid/widget/TextView; // type@0a9c │ │ +4996e6: 1401 9100 087f |001f: const v1, #float 1.80778e+38 // #7f080091 │ │ +4996ec: 6e20 f6d1 1900 |0022: invoke-virtual {v9, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4996f2: 0c01 |0025: move-result-object v1 │ │ +4996f4: 0717 |0026: move-object v7, v1 │ │ +4996f6: 1f07 9c0a |0027: check-cast v7, Landroid/widget/TextView; // type@0a9c │ │ +4996fa: 6e10 c85a 0000 |0029: invoke-virtual {v0}, Landroid/widget/Spinner;.getSelectedItem:()Ljava/lang/Object; // method@5ac8 │ │ +499700: 0c00 |002c: move-result-object v0 │ │ +499702: 6e10 b55c 0000 |002d: invoke-virtual {v0}, Ljava/lang/Object;.toString:()Ljava/lang/String; // method@5cb5 │ │ +499708: 0c00 |0030: move-result-object v0 │ │ +49970a: 7110 6f5c 0000 |0031: invoke-static {v0}, Ljava/lang/Integer;.parseInt:(Ljava/lang/String;)I // method@5c6f │ │ +499710: 0a00 |0034: move-result v0 │ │ +499712: 0104 |0035: move v4, v0 │ │ +499714: 2805 |0036: goto 003b // +0005 │ │ +499716: 1300 e803 |0037: const/16 v0, #int 1000 // #3e8 │ │ +49971a: 1304 e803 |0039: const/16 v4, #int 1000 // #3e8 │ │ +49971e: 1200 |003b: const/4 v0, #int 0 // #0 │ │ +499720: 6e20 1901 0500 |003c: invoke-virtual {v5, v0}, Landroid/app/ProgressDialog;.setCancelable:(Z)V // method@0119 │ │ +499726: 1210 |003f: const/4 v0, #int 1 // #1 │ │ +499728: 6e20 1a01 0500 |0040: invoke-virtual {v5, v0}, Landroid/app/ProgressDialog;.setIndeterminate:(Z)V // method@011a │ │ +49972e: 1a00 831d |0043: const-string v0, "Generating confidential material. Please be patient and do not rotate the device while the process executes." // string@1d83 │ │ +499732: 6e20 1b01 0500 |0045: invoke-virtual {v5, v0}, Landroid/app/ProgressDialog;.setMessage:(Ljava/lang/CharSequence;)V // method@011b │ │ +499738: 6e10 1c01 0500 |0048: invoke-virtual {v5}, Landroid/app/ProgressDialog;.show:()V // method@011c │ │ +49973e: 2200 ff0a |004b: new-instance v0, Ljava/lang/Thread; // type@0aff │ │ +499742: 2208 dd1e |004d: new-instance v8, Lorg/purple/smokestack/Settings$2SingleShot; // type@1edd │ │ +499746: 6e10 275b 0600 |004f: invoke-virtual {v6}, Landroid/widget/TextView;.getText:()Ljava/lang/CharSequence; // method@5b27 │ │ +49974c: 0c01 |0052: move-result-object v1 │ │ +49974e: 7210 1b5c 0100 |0053: invoke-interface {v1}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ +499754: 0c03 |0056: move-result-object v3 │ │ +499756: 0781 |0057: move-object v1, v8 │ │ +499758: 0792 |0058: move-object v2, v9 │ │ +49975a: 7607 afd1 0100 |0059: invoke-direct/range {v1, v2, v3, v4, v5, v6, v7}, Lorg/purple/smokestack/Settings$2SingleShot;.:(Lorg/purple/smokestack/Settings;Ljava/lang/String;ILandroid/app/ProgressDialog;Landroid/widget/TextView;Landroid/widget/TextView;)V // method@d1af │ │ +499760: 7020 345d 8000 |005c: invoke-direct {v0, v8}, Ljava/lang/Thread;.:(Ljava/lang/Runnable;)V // method@5d34 │ │ +499766: 6e10 3e5d 0000 |005f: invoke-virtual {v0}, Ljava/lang/Thread;.start:()V // method@5d3e │ │ +49976c: 0e00 |0062: return-void │ │ catches : 1 │ │ 0x0029 - 0x0035 │ │ Ljava/lang/Exception; -> 0x0037 │ │ positions : │ │ 0x0000 line=1395 │ │ 0x0007 line=1398 │ │ 0x000f line=1399 │ │ @@ -1716941,66 +1716940,66 @@ │ │ type : '()V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 10 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 101 16-bit code units │ │ -499784: |[499784] org.purple.smokestack.Settings.prepareListenerIpAddress:()V │ │ -499794: 1400 6b00 087f |0000: const v0, #float 1.80777e+38 // #7f08006b │ │ -49979a: 6e20 f6d1 0900 |0003: invoke-virtual {v9, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4997a0: 0c00 |0006: move-result-object v0 │ │ -4997a2: 1f00 850a |0007: check-cast v0, Landroid/widget/RadioGroup; // type@0a85 │ │ -4997a6: 1401 6800 087f |0009: const v1, #float 1.80777e+38 // #7f080068 │ │ -4997ac: 6e20 f6d1 1900 |000c: invoke-virtual {v9, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4997b2: 0c01 |000f: move-result-object v1 │ │ -4997b4: 1f01 9c0a |0010: check-cast v1, Landroid/widget/TextView; // type@0a9c │ │ -4997b8: 1202 |0012: const/4 v2, #int 0 // #0 │ │ -4997ba: 7100 c15d 0000 |0013: invoke-static {}, Ljava/net/NetworkInterface;.getNetworkInterfaces:()Ljava/util/Enumeration; // method@5dc1 │ │ -4997c0: 0c03 |0016: move-result-object v3 │ │ -4997c2: 7210 2c60 0300 |0017: invoke-interface {v3}, Ljava/util/Enumeration;.hasMoreElements:()Z // method@602c │ │ -4997c8: 0a04 |001a: move-result v4 │ │ -4997ca: 3804 4900 |001b: if-eqz v4, 0064 // +0049 │ │ -4997ce: 3802 0300 |001d: if-eqz v2, 0020 // +0003 │ │ -4997d2: 2845 |001f: goto 0064 // +0045 │ │ -4997d4: 7210 2d60 0300 |0020: invoke-interface {v3}, Ljava/util/Enumeration;.nextElement:()Ljava/lang/Object; // method@602d │ │ -4997da: 0c04 |0023: move-result-object v4 │ │ -4997dc: 1f04 1d0b |0024: check-cast v4, Ljava/net/NetworkInterface; // type@0b1d │ │ -4997e0: 6e10 c05d 0400 |0026: invoke-virtual {v4}, Ljava/net/NetworkInterface;.getInetAddresses:()Ljava/util/Enumeration; // method@5dc0 │ │ -4997e6: 0c04 |0029: move-result-object v4 │ │ -4997e8: 7210 2c60 0400 |002a: invoke-interface {v4}, Ljava/util/Enumeration;.hasMoreElements:()Z // method@602c │ │ -4997ee: 0a05 |002d: move-result v5 │ │ -4997f0: 1216 |002e: const/4 v6, #int 1 // #1 │ │ -4997f2: 3805 e8ff |002f: if-eqz v5, 0017 // -0018 │ │ -4997f6: 7210 2d60 0400 |0031: invoke-interface {v4}, Ljava/util/Enumeration;.nextElement:()Ljava/lang/Object; // method@602d │ │ -4997fc: 0c05 |0034: move-result-object v5 │ │ -4997fe: 1f05 190b |0035: check-cast v5, Ljava/net/InetAddress; // type@0b19 │ │ -499802: 6e10 b05d 0500 |0037: invoke-virtual {v5}, Ljava/net/InetAddress;.isLoopbackAddress:()Z // method@5db0 │ │ -499808: 0a07 |003a: move-result v7 │ │ -49980a: 3907 efff |003b: if-nez v7, 002a // -0011 │ │ -49980e: 6e10 795a 0000 |003d: invoke-virtual {v0}, Landroid/widget/RadioGroup;.getCheckedRadioButtonId:()I // method@5a79 │ │ -499814: 0a07 |0040: move-result v7 │ │ -499816: 1408 6900 087f |0041: const v8, #float 1.80777e+38 // #7f080069 │ │ -49981c: 3387 0e00 |0044: if-ne v7, v8, 0052 // +000e │ │ -499820: 2057 170b |0046: instance-of v7, v5, Ljava/net/Inet4Address; // type@0b17 │ │ -499824: 3807 e2ff |0048: if-eqz v7, 002a // -001e │ │ -499828: 6e10 af5d 0500 |004a: invoke-virtual {v5}, Ljava/net/InetAddress;.getHostAddress:()Ljava/lang/String; // method@5daf │ │ -49982e: 0c02 |004d: move-result-object v2 │ │ -499830: 6e20 525b 2100 |004e: invoke-virtual {v1, v2}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ -499836: 280c |0051: goto 005d // +000c │ │ -499838: 2057 180b |0052: instance-of v7, v5, Ljava/net/Inet6Address; // type@0b18 │ │ -49983c: 3807 d6ff |0054: if-eqz v7, 002a // -002a │ │ -499840: 6e10 af5d 0500 |0056: invoke-virtual {v5}, Ljava/net/InetAddress;.getHostAddress:()Ljava/lang/String; // method@5daf │ │ -499846: 0c02 |0059: move-result-object v2 │ │ -499848: 6e20 525b 2100 |005a: invoke-virtual {v1, v2}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ -49984e: 1212 |005d: const/4 v2, #int 1 // #1 │ │ -499850: 28b9 |005e: goto 0017 // -0047 │ │ -499852: 1a00 0000 |005f: const-string v0, "" // string@0000 │ │ -499856: 6e20 525b 0100 |0061: invoke-virtual {v1, v0}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ -49985c: 0e00 |0064: return-void │ │ +499780: |[499780] org.purple.smokestack.Settings.prepareListenerIpAddress:()V │ │ +499790: 1400 6b00 087f |0000: const v0, #float 1.80777e+38 // #7f08006b │ │ +499796: 6e20 f6d1 0900 |0003: invoke-virtual {v9, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +49979c: 0c00 |0006: move-result-object v0 │ │ +49979e: 1f00 850a |0007: check-cast v0, Landroid/widget/RadioGroup; // type@0a85 │ │ +4997a2: 1401 6800 087f |0009: const v1, #float 1.80777e+38 // #7f080068 │ │ +4997a8: 6e20 f6d1 1900 |000c: invoke-virtual {v9, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4997ae: 0c01 |000f: move-result-object v1 │ │ +4997b0: 1f01 9c0a |0010: check-cast v1, Landroid/widget/TextView; // type@0a9c │ │ +4997b4: 1202 |0012: const/4 v2, #int 0 // #0 │ │ +4997b6: 7100 c15d 0000 |0013: invoke-static {}, Ljava/net/NetworkInterface;.getNetworkInterfaces:()Ljava/util/Enumeration; // method@5dc1 │ │ +4997bc: 0c03 |0016: move-result-object v3 │ │ +4997be: 7210 2c60 0300 |0017: invoke-interface {v3}, Ljava/util/Enumeration;.hasMoreElements:()Z // method@602c │ │ +4997c4: 0a04 |001a: move-result v4 │ │ +4997c6: 3804 4900 |001b: if-eqz v4, 0064 // +0049 │ │ +4997ca: 3802 0300 |001d: if-eqz v2, 0020 // +0003 │ │ +4997ce: 2845 |001f: goto 0064 // +0045 │ │ +4997d0: 7210 2d60 0300 |0020: invoke-interface {v3}, Ljava/util/Enumeration;.nextElement:()Ljava/lang/Object; // method@602d │ │ +4997d6: 0c04 |0023: move-result-object v4 │ │ +4997d8: 1f04 1d0b |0024: check-cast v4, Ljava/net/NetworkInterface; // type@0b1d │ │ +4997dc: 6e10 c05d 0400 |0026: invoke-virtual {v4}, Ljava/net/NetworkInterface;.getInetAddresses:()Ljava/util/Enumeration; // method@5dc0 │ │ +4997e2: 0c04 |0029: move-result-object v4 │ │ +4997e4: 7210 2c60 0400 |002a: invoke-interface {v4}, Ljava/util/Enumeration;.hasMoreElements:()Z // method@602c │ │ +4997ea: 0a05 |002d: move-result v5 │ │ +4997ec: 1216 |002e: const/4 v6, #int 1 // #1 │ │ +4997ee: 3805 e8ff |002f: if-eqz v5, 0017 // -0018 │ │ +4997f2: 7210 2d60 0400 |0031: invoke-interface {v4}, Ljava/util/Enumeration;.nextElement:()Ljava/lang/Object; // method@602d │ │ +4997f8: 0c05 |0034: move-result-object v5 │ │ +4997fa: 1f05 190b |0035: check-cast v5, Ljava/net/InetAddress; // type@0b19 │ │ +4997fe: 6e10 b05d 0500 |0037: invoke-virtual {v5}, Ljava/net/InetAddress;.isLoopbackAddress:()Z // method@5db0 │ │ +499804: 0a07 |003a: move-result v7 │ │ +499806: 3907 efff |003b: if-nez v7, 002a // -0011 │ │ +49980a: 6e10 795a 0000 |003d: invoke-virtual {v0}, Landroid/widget/RadioGroup;.getCheckedRadioButtonId:()I // method@5a79 │ │ +499810: 0a07 |0040: move-result v7 │ │ +499812: 1408 6900 087f |0041: const v8, #float 1.80777e+38 // #7f080069 │ │ +499818: 3387 0e00 |0044: if-ne v7, v8, 0052 // +000e │ │ +49981c: 2057 170b |0046: instance-of v7, v5, Ljava/net/Inet4Address; // type@0b17 │ │ +499820: 3807 e2ff |0048: if-eqz v7, 002a // -001e │ │ +499824: 6e10 af5d 0500 |004a: invoke-virtual {v5}, Ljava/net/InetAddress;.getHostAddress:()Ljava/lang/String; // method@5daf │ │ +49982a: 0c02 |004d: move-result-object v2 │ │ +49982c: 6e20 525b 2100 |004e: invoke-virtual {v1, v2}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ +499832: 280c |0051: goto 005d // +000c │ │ +499834: 2057 180b |0052: instance-of v7, v5, Ljava/net/Inet6Address; // type@0b18 │ │ +499838: 3807 d6ff |0054: if-eqz v7, 002a // -002a │ │ +49983c: 6e10 af5d 0500 |0056: invoke-virtual {v5}, Ljava/net/InetAddress;.getHostAddress:()Ljava/lang/String; // method@5daf │ │ +499842: 0c02 |0059: move-result-object v2 │ │ +499844: 6e20 525b 2100 |005a: invoke-virtual {v1, v2}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ +49984a: 1212 |005d: const/4 v2, #int 1 // #1 │ │ +49984c: 28b9 |005e: goto 0017 // -0047 │ │ +49984e: 1a00 0000 |005f: const-string v0, "" // string@0000 │ │ +499852: 6e20 525b 0100 |0061: invoke-virtual {v1, v0}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ +499858: 0e00 |0064: return-void │ │ catches : 1 │ │ 0x0013 - 0x005d │ │ Ljava/lang/Exception; -> 0x005f │ │ positions : │ │ 0x0003 line=1596 │ │ 0x000c line=1597 │ │ 0x0013 line=1604 │ │ @@ -1717022,171 +1717021,171 @@ │ │ type : '()V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 5 │ │ ins : 1 │ │ outs : 3 │ │ insns size : 375 16-bit code units │ │ -499870: |[499870] org.purple.smokestack.Settings.prepareListeners:()V │ │ -499880: 6e10 fed1 0400 |0000: invoke-virtual {v4}, Lorg/purple/smokestack/Settings;.isFinishing:()Z // method@d1fe │ │ -499886: 0a00 |0003: move-result v0 │ │ -499888: 3800 0300 |0004: if-eqz v0, 0007 // +0003 │ │ -49988c: 0e00 |0006: return-void │ │ -49988e: 1400 7e00 087f |0007: const v0, #float 1.80778e+38 // #7f08007e │ │ -499894: 6e20 f6d1 0400 |000a: invoke-virtual {v4, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -49989a: 0c00 |000d: move-result-object v0 │ │ -49989c: 1f00 900a |000e: check-cast v0, Landroid/widget/Spinner; // type@0a90 │ │ -4998a0: 1401 1a00 087f |0010: const v1, #float 1.80776e+38 // #7f08001a │ │ -4998a6: 6e20 f6d1 1400 |0013: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4998ac: 0c01 |0016: move-result-object v1 │ │ -4998ae: 1f01 640a |0017: check-cast v1, Landroid/widget/Button; // type@0a64 │ │ -4998b2: 2202 e71e |0019: new-instance v2, Lorg/purple/smokestack/Settings$6; // type@1ee7 │ │ -4998b6: 7020 c6d1 4200 |001b: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$6;.:(Lorg/purple/smokestack/Settings;)V // method@d1c6 │ │ -4998bc: 6e20 fe58 2100 |001e: invoke-virtual {v1, v2}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ -4998c2: 1401 1b00 087f |0021: const v1, #float 1.80776e+38 // #7f08001b │ │ -4998c8: 6e20 f6d1 1400 |0024: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4998ce: 0c01 |0027: move-result-object v1 │ │ -4998d0: 1f01 640a |0028: check-cast v1, Landroid/widget/Button; // type@0a64 │ │ -4998d4: 2202 e81e |002a: new-instance v2, Lorg/purple/smokestack/Settings$7; // type@1ee8 │ │ -4998d8: 7020 c8d1 4200 |002c: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$7;.:(Lorg/purple/smokestack/Settings;)V // method@d1c8 │ │ -4998de: 6e20 fe58 2100 |002f: invoke-virtual {v1, v2}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ -4998e4: 1401 1c00 087f |0032: const v1, #float 1.80776e+38 // #7f08001c │ │ -4998ea: 6e20 f6d1 1400 |0035: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4998f0: 0c01 |0038: move-result-object v1 │ │ -4998f2: 1f01 640a |0039: check-cast v1, Landroid/widget/Button; // type@0a64 │ │ -4998f6: 2202 e91e |003b: new-instance v2, Lorg/purple/smokestack/Settings$8; // type@1ee9 │ │ -4998fa: 7020 cad1 4200 |003d: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$8;.:(Lorg/purple/smokestack/Settings;)V // method@d1ca │ │ -499900: 6e20 fe58 2100 |0040: invoke-virtual {v1, v2}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ -499906: 1401 3000 087f |0043: const v1, #float 1.80776e+38 // #7f080030 │ │ -49990c: 6e20 f6d1 1400 |0046: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -499912: 0c01 |0049: move-result-object v1 │ │ -499914: 1f01 640a |004a: check-cast v1, Landroid/widget/Button; // type@0a64 │ │ -499918: 2202 ea1e |004c: new-instance v2, Lorg/purple/smokestack/Settings$9; // type@1eea │ │ -49991c: 7020 ccd1 4200 |004e: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$9;.:(Lorg/purple/smokestack/Settings;)V // method@d1cc │ │ -499922: 6e20 fe58 2100 |0051: invoke-virtual {v1, v2}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ -499928: 1401 5100 087f |0054: const v1, #float 1.80777e+38 // #7f080051 │ │ -49992e: 6e20 f6d1 1400 |0057: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -499934: 0c01 |005a: move-result-object v1 │ │ -499936: 1f01 640a |005b: check-cast v1, Landroid/widget/Button; // type@0a64 │ │ -49993a: 2202 c31e |005d: new-instance v2, Lorg/purple/smokestack/Settings$10; // type@1ec3 │ │ -49993e: 7020 79d1 4200 |005f: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$10;.:(Lorg/purple/smokestack/Settings;)V // method@d179 │ │ -499944: 6e20 fe58 2100 |0062: invoke-virtual {v1, v2}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ -49994a: 1401 9b00 087f |0065: const v1, #float 1.80778e+38 // #7f08009b │ │ -499950: 6e20 f6d1 1400 |0068: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -499956: 0c01 |006b: move-result-object v1 │ │ -499958: 1f01 640a |006c: check-cast v1, Landroid/widget/Button; // type@0a64 │ │ -49995c: 2202 c41e |006e: new-instance v2, Lorg/purple/smokestack/Settings$11; // type@1ec4 │ │ -499960: 7020 7bd1 4200 |0070: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$11;.:(Lorg/purple/smokestack/Settings;)V // method@d17b │ │ -499966: 6e20 fe58 2100 |0073: invoke-virtual {v1, v2}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ -49996c: 1401 9c00 087f |0076: const v1, #float 1.80778e+38 // #7f08009c │ │ -499972: 6e20 f6d1 1400 |0079: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -499978: 0c01 |007c: move-result-object v1 │ │ -49997a: 1f01 640a |007d: check-cast v1, Landroid/widget/Button; // type@0a64 │ │ -49997e: 2202 c51e |007f: new-instance v2, Lorg/purple/smokestack/Settings$12; // type@1ec5 │ │ -499982: 7020 7dd1 4200 |0081: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$12;.:(Lorg/purple/smokestack/Settings;)V // method@d17d │ │ -499988: 6e20 fe58 2100 |0084: invoke-virtual {v1, v2}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ -49998e: 1401 9d00 087f |0087: const v1, #float 1.80778e+38 // #7f08009d │ │ -499994: 6e20 f6d1 1400 |008a: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -49999a: 0c01 |008d: move-result-object v1 │ │ -49999c: 1f01 640a |008e: check-cast v1, Landroid/widget/Button; // type@0a64 │ │ -4999a0: 2202 c61e |0090: new-instance v2, Lorg/purple/smokestack/Settings$13; // type@1ec6 │ │ -4999a4: 7020 7fd1 4200 |0092: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$13;.:(Lorg/purple/smokestack/Settings;)V // method@d17f │ │ -4999aa: 6e20 fe58 2100 |0095: invoke-virtual {v1, v2}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ -4999b0: 1401 9e00 087f |0098: const v1, #float 1.80778e+38 // #7f08009e │ │ -4999b6: 6e20 f6d1 1400 |009b: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4999bc: 0c01 |009e: move-result-object v1 │ │ -4999be: 1f01 640a |009f: check-cast v1, Landroid/widget/Button; // type@0a64 │ │ -4999c2: 2202 c71e |00a1: new-instance v2, Lorg/purple/smokestack/Settings$14; // type@1ec7 │ │ -4999c6: 7020 81d1 4200 |00a3: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$14;.:(Lorg/purple/smokestack/Settings;)V // method@d181 │ │ -4999cc: 6e20 fe58 2100 |00a6: invoke-virtual {v1, v2}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ -4999d2: 2201 c81e |00a9: new-instance v1, Lorg/purple/smokestack/Settings$15; // type@1ec8 │ │ -4999d6: 7020 83d1 4100 |00ab: invoke-direct {v1, v4}, Lorg/purple/smokestack/Settings$15;.:(Lorg/purple/smokestack/Settings;)V // method@d183 │ │ -4999dc: 1402 9f00 087f |00ae: const v2, #float 1.80778e+38 // #7f08009f │ │ -4999e2: 6e20 f6d1 2400 |00b1: invoke-virtual {v4, v2}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4999e8: 0c02 |00b4: move-result-object v2 │ │ -4999ea: 1f02 640a |00b5: check-cast v2, Landroid/widget/Button; // type@0a64 │ │ -4999ee: 2203 c91e |00b7: new-instance v3, Lorg/purple/smokestack/Settings$16; // type@1ec9 │ │ -4999f2: 7030 85d1 4301 |00b9: invoke-direct {v3, v4, v1}, Lorg/purple/smokestack/Settings$16;.:(Lorg/purple/smokestack/Settings;Landroid/content/DialogInterface$OnCancelListener;)V // method@d185 │ │ -4999f8: 6e20 fe58 3200 |00bc: invoke-virtual {v2, v3}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ -4999fe: 1401 a000 087f |00bf: const v1, #float 1.80778e+38 // #7f0800a0 │ │ -499a04: 6e20 f6d1 1400 |00c2: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -499a0a: 0c01 |00c5: move-result-object v1 │ │ -499a0c: 1f01 640a |00c6: check-cast v1, Landroid/widget/Button; // type@0a64 │ │ -499a10: 2202 ca1e |00c8: new-instance v2, Lorg/purple/smokestack/Settings$17; // type@1eca │ │ -499a14: 7020 87d1 4200 |00ca: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$17;.:(Lorg/purple/smokestack/Settings;)V // method@d187 │ │ -499a1a: 6e20 fe58 2100 |00cd: invoke-virtual {v1, v2}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ -499a20: 1401 a100 087f |00d0: const v1, #float 1.80778e+38 // #7f0800a1 │ │ -499a26: 6e20 f6d1 1400 |00d3: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -499a2c: 0c01 |00d6: move-result-object v1 │ │ -499a2e: 1f01 640a |00d7: check-cast v1, Landroid/widget/Button; // type@0a64 │ │ -499a32: 2202 cb1e |00d9: new-instance v2, Lorg/purple/smokestack/Settings$18; // type@1ecb │ │ -499a36: 7020 89d1 4200 |00db: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$18;.:(Lorg/purple/smokestack/Settings;)V // method@d189 │ │ -499a3c: 6e20 fe58 2100 |00de: invoke-virtual {v1, v2}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ -499a42: 1401 a200 087f |00e1: const v1, #float 1.80778e+38 // #7f0800a2 │ │ -499a48: 6e20 f6d1 1400 |00e4: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -499a4e: 0c01 |00e7: move-result-object v1 │ │ -499a50: 1f01 640a |00e8: check-cast v1, Landroid/widget/Button; // type@0a64 │ │ -499a54: 2202 cc1e |00ea: new-instance v2, Lorg/purple/smokestack/Settings$19; // type@1ecc │ │ -499a58: 7020 8bd1 4200 |00ec: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$19;.:(Lorg/purple/smokestack/Settings;)V // method@d18b │ │ -499a5e: 6e20 fe58 2100 |00ef: invoke-virtual {v1, v2}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ -499a64: 1401 a600 087f |00f2: const v1, #float 1.80778e+38 // #7f0800a6 │ │ -499a6a: 6e20 f6d1 1400 |00f5: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -499a70: 0c01 |00f8: move-result-object v1 │ │ -499a72: 1f01 640a |00f9: check-cast v1, Landroid/widget/Button; // type@0a64 │ │ -499a76: 2202 d01e |00fb: new-instance v2, Lorg/purple/smokestack/Settings$20; // type@1ed0 │ │ -499a7a: 7020 94d1 4200 |00fd: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$20;.:(Lorg/purple/smokestack/Settings;)V // method@d194 │ │ -499a80: 6e20 fe58 2100 |0100: invoke-virtual {v1, v2}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ -499a86: 2201 d11e |0103: new-instance v1, Lorg/purple/smokestack/Settings$21; // type@1ed1 │ │ -499a8a: 7020 96d1 4100 |0105: invoke-direct {v1, v4}, Lorg/purple/smokestack/Settings$21;.:(Lorg/purple/smokestack/Settings;)V // method@d196 │ │ -499a90: 1402 b800 087f |0108: const v2, #float 1.80779e+38 // #7f0800b8 │ │ -499a96: 6e20 f6d1 2400 |010b: invoke-virtual {v4, v2}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -499a9c: 0c02 |010e: move-result-object v2 │ │ -499a9e: 1f02 640a |010f: check-cast v2, Landroid/widget/Button; // type@0a64 │ │ -499aa2: 2203 d21e |0111: new-instance v3, Lorg/purple/smokestack/Settings$22; // type@1ed2 │ │ -499aa6: 7030 98d1 4301 |0113: invoke-direct {v3, v4, v1}, Lorg/purple/smokestack/Settings$22;.:(Lorg/purple/smokestack/Settings;Landroid/content/DialogInterface$OnCancelListener;)V // method@d198 │ │ -499aac: 6e20 fe58 3200 |0116: invoke-virtual {v2, v3}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ -499ab2: 1401 bd00 087f |0119: const v1, #float 1.80779e+38 // #7f0800bd │ │ -499ab8: 6e20 f6d1 1400 |011c: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -499abe: 0c01 |011f: move-result-object v1 │ │ -499ac0: 1f01 640a |0120: check-cast v1, Landroid/widget/Button; // type@0a64 │ │ -499ac4: 2202 d31e |0122: new-instance v2, Lorg/purple/smokestack/Settings$23; // type@1ed3 │ │ -499ac8: 7020 9ad1 4200 |0124: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$23;.:(Lorg/purple/smokestack/Settings;)V // method@d19a │ │ -499ace: 6e20 fe58 2100 |0127: invoke-virtual {v1, v2}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ -499ad4: 1401 2300 087f |012a: const v1, #float 1.80776e+38 // #7f080023 │ │ -499ada: 6e20 f6d1 1400 |012d: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -499ae0: 0c01 |0130: move-result-object v1 │ │ -499ae2: 1f01 920a |0131: check-cast v1, Landroid/widget/Switch; // type@0a92 │ │ -499ae6: 2202 d41e |0133: new-instance v2, Lorg/purple/smokestack/Settings$24; // type@1ed4 │ │ -499aea: 7020 9cd1 4200 |0135: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$24;.:(Lorg/purple/smokestack/Settings;)V // method@d19c │ │ -499af0: 6e20 ed5a 2100 |0138: invoke-virtual {v1, v2}, Landroid/widget/Switch;.setOnCheckedChangeListener:(Landroid/widget/CompoundButton$OnCheckedChangeListener;)V // method@5aed │ │ -499af6: 1401 2400 087f |013b: const v1, #float 1.80776e+38 // #7f080024 │ │ -499afc: 6e20 f6d1 1400 |013e: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -499b02: 0c01 |0141: move-result-object v1 │ │ -499b04: 1f01 920a |0142: check-cast v1, Landroid/widget/Switch; // type@0a92 │ │ -499b08: 2202 d51e |0144: new-instance v2, Lorg/purple/smokestack/Settings$25; // type@1ed5 │ │ -499b0c: 7020 9ed1 4200 |0146: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$25;.:(Lorg/purple/smokestack/Settings;)V // method@d19e │ │ -499b12: 6e20 ed5a 2100 |0149: invoke-virtual {v1, v2}, Landroid/widget/Switch;.setOnCheckedChangeListener:(Landroid/widget/CompoundButton$OnCheckedChangeListener;)V // method@5aed │ │ -499b18: 1401 7600 087f |014c: const v1, #float 1.80777e+38 // #7f080076 │ │ -499b1e: 6e20 f6d1 1400 |014f: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -499b24: 0c01 |0152: move-result-object v1 │ │ -499b26: 1f01 920a |0153: check-cast v1, Landroid/widget/Switch; // type@0a92 │ │ -499b2a: 2202 d61e |0155: new-instance v2, Lorg/purple/smokestack/Settings$26; // type@1ed6 │ │ -499b2e: 7020 a0d1 4200 |0157: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$26;.:(Lorg/purple/smokestack/Settings;)V // method@d1a0 │ │ -499b34: 6e20 ed5a 2100 |015a: invoke-virtual {v1, v2}, Landroid/widget/Switch;.setOnCheckedChangeListener:(Landroid/widget/CompoundButton$OnCheckedChangeListener;)V // method@5aed │ │ -499b3a: 1401 8500 087f |015d: const v1, #float 1.80778e+38 // #7f080085 │ │ -499b40: 6e20 f6d1 1400 |0160: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -499b46: 0c01 |0163: move-result-object v1 │ │ -499b48: 1f01 920a |0164: check-cast v1, Landroid/widget/Switch; // type@0a92 │ │ -499b4c: 2202 d71e |0166: new-instance v2, Lorg/purple/smokestack/Settings$27; // type@1ed7 │ │ -499b50: 7020 a2d1 4200 |0168: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$27;.:(Lorg/purple/smokestack/Settings;)V // method@d1a2 │ │ -499b56: 6e20 ed5a 2100 |016b: invoke-virtual {v1, v2}, Landroid/widget/Switch;.setOnCheckedChangeListener:(Landroid/widget/CompoundButton$OnCheckedChangeListener;)V // method@5aed │ │ -499b5c: 2201 d81e |016e: new-instance v1, Lorg/purple/smokestack/Settings$28; // type@1ed8 │ │ -499b60: 7020 a4d1 4100 |0170: invoke-direct {v1, v4}, Lorg/purple/smokestack/Settings$28;.:(Lorg/purple/smokestack/Settings;)V // method@d1a4 │ │ -499b66: 6e20 d75a 1000 |0173: invoke-virtual {v0, v1}, Landroid/widget/Spinner;.setOnItemSelectedListener:(Landroid/widget/AdapterView$OnItemSelectedListener;)V // method@5ad7 │ │ -499b6c: 0e00 |0176: return-void │ │ +49986c: |[49986c] org.purple.smokestack.Settings.prepareListeners:()V │ │ +49987c: 6e10 fed1 0400 |0000: invoke-virtual {v4}, Lorg/purple/smokestack/Settings;.isFinishing:()Z // method@d1fe │ │ +499882: 0a00 |0003: move-result v0 │ │ +499884: 3800 0300 |0004: if-eqz v0, 0007 // +0003 │ │ +499888: 0e00 |0006: return-void │ │ +49988a: 1400 7e00 087f |0007: const v0, #float 1.80778e+38 // #7f08007e │ │ +499890: 6e20 f6d1 0400 |000a: invoke-virtual {v4, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +499896: 0c00 |000d: move-result-object v0 │ │ +499898: 1f00 900a |000e: check-cast v0, Landroid/widget/Spinner; // type@0a90 │ │ +49989c: 1401 1a00 087f |0010: const v1, #float 1.80776e+38 // #7f08001a │ │ +4998a2: 6e20 f6d1 1400 |0013: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4998a8: 0c01 |0016: move-result-object v1 │ │ +4998aa: 1f01 640a |0017: check-cast v1, Landroid/widget/Button; // type@0a64 │ │ +4998ae: 2202 e71e |0019: new-instance v2, Lorg/purple/smokestack/Settings$6; // type@1ee7 │ │ +4998b2: 7020 c6d1 4200 |001b: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$6;.:(Lorg/purple/smokestack/Settings;)V // method@d1c6 │ │ +4998b8: 6e20 fe58 2100 |001e: invoke-virtual {v1, v2}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ +4998be: 1401 1b00 087f |0021: const v1, #float 1.80776e+38 // #7f08001b │ │ +4998c4: 6e20 f6d1 1400 |0024: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4998ca: 0c01 |0027: move-result-object v1 │ │ +4998cc: 1f01 640a |0028: check-cast v1, Landroid/widget/Button; // type@0a64 │ │ +4998d0: 2202 e81e |002a: new-instance v2, Lorg/purple/smokestack/Settings$7; // type@1ee8 │ │ +4998d4: 7020 c8d1 4200 |002c: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$7;.:(Lorg/purple/smokestack/Settings;)V // method@d1c8 │ │ +4998da: 6e20 fe58 2100 |002f: invoke-virtual {v1, v2}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ +4998e0: 1401 1c00 087f |0032: const v1, #float 1.80776e+38 // #7f08001c │ │ +4998e6: 6e20 f6d1 1400 |0035: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4998ec: 0c01 |0038: move-result-object v1 │ │ +4998ee: 1f01 640a |0039: check-cast v1, Landroid/widget/Button; // type@0a64 │ │ +4998f2: 2202 e91e |003b: new-instance v2, Lorg/purple/smokestack/Settings$8; // type@1ee9 │ │ +4998f6: 7020 cad1 4200 |003d: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$8;.:(Lorg/purple/smokestack/Settings;)V // method@d1ca │ │ +4998fc: 6e20 fe58 2100 |0040: invoke-virtual {v1, v2}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ +499902: 1401 3000 087f |0043: const v1, #float 1.80776e+38 // #7f080030 │ │ +499908: 6e20 f6d1 1400 |0046: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +49990e: 0c01 |0049: move-result-object v1 │ │ +499910: 1f01 640a |004a: check-cast v1, Landroid/widget/Button; // type@0a64 │ │ +499914: 2202 ea1e |004c: new-instance v2, Lorg/purple/smokestack/Settings$9; // type@1eea │ │ +499918: 7020 ccd1 4200 |004e: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$9;.:(Lorg/purple/smokestack/Settings;)V // method@d1cc │ │ +49991e: 6e20 fe58 2100 |0051: invoke-virtual {v1, v2}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ +499924: 1401 5100 087f |0054: const v1, #float 1.80777e+38 // #7f080051 │ │ +49992a: 6e20 f6d1 1400 |0057: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +499930: 0c01 |005a: move-result-object v1 │ │ +499932: 1f01 640a |005b: check-cast v1, Landroid/widget/Button; // type@0a64 │ │ +499936: 2202 c31e |005d: new-instance v2, Lorg/purple/smokestack/Settings$10; // type@1ec3 │ │ +49993a: 7020 79d1 4200 |005f: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$10;.:(Lorg/purple/smokestack/Settings;)V // method@d179 │ │ +499940: 6e20 fe58 2100 |0062: invoke-virtual {v1, v2}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ +499946: 1401 9b00 087f |0065: const v1, #float 1.80778e+38 // #7f08009b │ │ +49994c: 6e20 f6d1 1400 |0068: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +499952: 0c01 |006b: move-result-object v1 │ │ +499954: 1f01 640a |006c: check-cast v1, Landroid/widget/Button; // type@0a64 │ │ +499958: 2202 c41e |006e: new-instance v2, Lorg/purple/smokestack/Settings$11; // type@1ec4 │ │ +49995c: 7020 7bd1 4200 |0070: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$11;.:(Lorg/purple/smokestack/Settings;)V // method@d17b │ │ +499962: 6e20 fe58 2100 |0073: invoke-virtual {v1, v2}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ +499968: 1401 9c00 087f |0076: const v1, #float 1.80778e+38 // #7f08009c │ │ +49996e: 6e20 f6d1 1400 |0079: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +499974: 0c01 |007c: move-result-object v1 │ │ +499976: 1f01 640a |007d: check-cast v1, Landroid/widget/Button; // type@0a64 │ │ +49997a: 2202 c51e |007f: new-instance v2, Lorg/purple/smokestack/Settings$12; // type@1ec5 │ │ +49997e: 7020 7dd1 4200 |0081: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$12;.:(Lorg/purple/smokestack/Settings;)V // method@d17d │ │ +499984: 6e20 fe58 2100 |0084: invoke-virtual {v1, v2}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ +49998a: 1401 9d00 087f |0087: const v1, #float 1.80778e+38 // #7f08009d │ │ +499990: 6e20 f6d1 1400 |008a: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +499996: 0c01 |008d: move-result-object v1 │ │ +499998: 1f01 640a |008e: check-cast v1, Landroid/widget/Button; // type@0a64 │ │ +49999c: 2202 c61e |0090: new-instance v2, Lorg/purple/smokestack/Settings$13; // type@1ec6 │ │ +4999a0: 7020 7fd1 4200 |0092: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$13;.:(Lorg/purple/smokestack/Settings;)V // method@d17f │ │ +4999a6: 6e20 fe58 2100 |0095: invoke-virtual {v1, v2}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ +4999ac: 1401 9e00 087f |0098: const v1, #float 1.80778e+38 // #7f08009e │ │ +4999b2: 6e20 f6d1 1400 |009b: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4999b8: 0c01 |009e: move-result-object v1 │ │ +4999ba: 1f01 640a |009f: check-cast v1, Landroid/widget/Button; // type@0a64 │ │ +4999be: 2202 c71e |00a1: new-instance v2, Lorg/purple/smokestack/Settings$14; // type@1ec7 │ │ +4999c2: 7020 81d1 4200 |00a3: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$14;.:(Lorg/purple/smokestack/Settings;)V // method@d181 │ │ +4999c8: 6e20 fe58 2100 |00a6: invoke-virtual {v1, v2}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ +4999ce: 2201 c81e |00a9: new-instance v1, Lorg/purple/smokestack/Settings$15; // type@1ec8 │ │ +4999d2: 7020 83d1 4100 |00ab: invoke-direct {v1, v4}, Lorg/purple/smokestack/Settings$15;.:(Lorg/purple/smokestack/Settings;)V // method@d183 │ │ +4999d8: 1402 9f00 087f |00ae: const v2, #float 1.80778e+38 // #7f08009f │ │ +4999de: 6e20 f6d1 2400 |00b1: invoke-virtual {v4, v2}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4999e4: 0c02 |00b4: move-result-object v2 │ │ +4999e6: 1f02 640a |00b5: check-cast v2, Landroid/widget/Button; // type@0a64 │ │ +4999ea: 2203 c91e |00b7: new-instance v3, Lorg/purple/smokestack/Settings$16; // type@1ec9 │ │ +4999ee: 7030 85d1 4301 |00b9: invoke-direct {v3, v4, v1}, Lorg/purple/smokestack/Settings$16;.:(Lorg/purple/smokestack/Settings;Landroid/content/DialogInterface$OnCancelListener;)V // method@d185 │ │ +4999f4: 6e20 fe58 3200 |00bc: invoke-virtual {v2, v3}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ +4999fa: 1401 a000 087f |00bf: const v1, #float 1.80778e+38 // #7f0800a0 │ │ +499a00: 6e20 f6d1 1400 |00c2: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +499a06: 0c01 |00c5: move-result-object v1 │ │ +499a08: 1f01 640a |00c6: check-cast v1, Landroid/widget/Button; // type@0a64 │ │ +499a0c: 2202 ca1e |00c8: new-instance v2, Lorg/purple/smokestack/Settings$17; // type@1eca │ │ +499a10: 7020 87d1 4200 |00ca: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$17;.:(Lorg/purple/smokestack/Settings;)V // method@d187 │ │ +499a16: 6e20 fe58 2100 |00cd: invoke-virtual {v1, v2}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ +499a1c: 1401 a100 087f |00d0: const v1, #float 1.80778e+38 // #7f0800a1 │ │ +499a22: 6e20 f6d1 1400 |00d3: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +499a28: 0c01 |00d6: move-result-object v1 │ │ +499a2a: 1f01 640a |00d7: check-cast v1, Landroid/widget/Button; // type@0a64 │ │ +499a2e: 2202 cb1e |00d9: new-instance v2, Lorg/purple/smokestack/Settings$18; // type@1ecb │ │ +499a32: 7020 89d1 4200 |00db: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$18;.:(Lorg/purple/smokestack/Settings;)V // method@d189 │ │ +499a38: 6e20 fe58 2100 |00de: invoke-virtual {v1, v2}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ +499a3e: 1401 a200 087f |00e1: const v1, #float 1.80778e+38 // #7f0800a2 │ │ +499a44: 6e20 f6d1 1400 |00e4: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +499a4a: 0c01 |00e7: move-result-object v1 │ │ +499a4c: 1f01 640a |00e8: check-cast v1, Landroid/widget/Button; // type@0a64 │ │ +499a50: 2202 cc1e |00ea: new-instance v2, Lorg/purple/smokestack/Settings$19; // type@1ecc │ │ +499a54: 7020 8bd1 4200 |00ec: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$19;.:(Lorg/purple/smokestack/Settings;)V // method@d18b │ │ +499a5a: 6e20 fe58 2100 |00ef: invoke-virtual {v1, v2}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ +499a60: 1401 a600 087f |00f2: const v1, #float 1.80778e+38 // #7f0800a6 │ │ +499a66: 6e20 f6d1 1400 |00f5: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +499a6c: 0c01 |00f8: move-result-object v1 │ │ +499a6e: 1f01 640a |00f9: check-cast v1, Landroid/widget/Button; // type@0a64 │ │ +499a72: 2202 d01e |00fb: new-instance v2, Lorg/purple/smokestack/Settings$20; // type@1ed0 │ │ +499a76: 7020 94d1 4200 |00fd: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$20;.:(Lorg/purple/smokestack/Settings;)V // method@d194 │ │ +499a7c: 6e20 fe58 2100 |0100: invoke-virtual {v1, v2}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ +499a82: 2201 d11e |0103: new-instance v1, Lorg/purple/smokestack/Settings$21; // type@1ed1 │ │ +499a86: 7020 96d1 4100 |0105: invoke-direct {v1, v4}, Lorg/purple/smokestack/Settings$21;.:(Lorg/purple/smokestack/Settings;)V // method@d196 │ │ +499a8c: 1402 b800 087f |0108: const v2, #float 1.80779e+38 // #7f0800b8 │ │ +499a92: 6e20 f6d1 2400 |010b: invoke-virtual {v4, v2}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +499a98: 0c02 |010e: move-result-object v2 │ │ +499a9a: 1f02 640a |010f: check-cast v2, Landroid/widget/Button; // type@0a64 │ │ +499a9e: 2203 d21e |0111: new-instance v3, Lorg/purple/smokestack/Settings$22; // type@1ed2 │ │ +499aa2: 7030 98d1 4301 |0113: invoke-direct {v3, v4, v1}, Lorg/purple/smokestack/Settings$22;.:(Lorg/purple/smokestack/Settings;Landroid/content/DialogInterface$OnCancelListener;)V // method@d198 │ │ +499aa8: 6e20 fe58 3200 |0116: invoke-virtual {v2, v3}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ +499aae: 1401 bd00 087f |0119: const v1, #float 1.80779e+38 // #7f0800bd │ │ +499ab4: 6e20 f6d1 1400 |011c: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +499aba: 0c01 |011f: move-result-object v1 │ │ +499abc: 1f01 640a |0120: check-cast v1, Landroid/widget/Button; // type@0a64 │ │ +499ac0: 2202 d31e |0122: new-instance v2, Lorg/purple/smokestack/Settings$23; // type@1ed3 │ │ +499ac4: 7020 9ad1 4200 |0124: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$23;.:(Lorg/purple/smokestack/Settings;)V // method@d19a │ │ +499aca: 6e20 fe58 2100 |0127: invoke-virtual {v1, v2}, Landroid/widget/Button;.setOnClickListener:(Landroid/view/View$OnClickListener;)V // method@58fe │ │ +499ad0: 1401 2300 087f |012a: const v1, #float 1.80776e+38 // #7f080023 │ │ +499ad6: 6e20 f6d1 1400 |012d: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +499adc: 0c01 |0130: move-result-object v1 │ │ +499ade: 1f01 920a |0131: check-cast v1, Landroid/widget/Switch; // type@0a92 │ │ +499ae2: 2202 d41e |0133: new-instance v2, Lorg/purple/smokestack/Settings$24; // type@1ed4 │ │ +499ae6: 7020 9cd1 4200 |0135: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$24;.:(Lorg/purple/smokestack/Settings;)V // method@d19c │ │ +499aec: 6e20 ed5a 2100 |0138: invoke-virtual {v1, v2}, Landroid/widget/Switch;.setOnCheckedChangeListener:(Landroid/widget/CompoundButton$OnCheckedChangeListener;)V // method@5aed │ │ +499af2: 1401 2400 087f |013b: const v1, #float 1.80776e+38 // #7f080024 │ │ +499af8: 6e20 f6d1 1400 |013e: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +499afe: 0c01 |0141: move-result-object v1 │ │ +499b00: 1f01 920a |0142: check-cast v1, Landroid/widget/Switch; // type@0a92 │ │ +499b04: 2202 d51e |0144: new-instance v2, Lorg/purple/smokestack/Settings$25; // type@1ed5 │ │ +499b08: 7020 9ed1 4200 |0146: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$25;.:(Lorg/purple/smokestack/Settings;)V // method@d19e │ │ +499b0e: 6e20 ed5a 2100 |0149: invoke-virtual {v1, v2}, Landroid/widget/Switch;.setOnCheckedChangeListener:(Landroid/widget/CompoundButton$OnCheckedChangeListener;)V // method@5aed │ │ +499b14: 1401 7600 087f |014c: const v1, #float 1.80777e+38 // #7f080076 │ │ +499b1a: 6e20 f6d1 1400 |014f: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +499b20: 0c01 |0152: move-result-object v1 │ │ +499b22: 1f01 920a |0153: check-cast v1, Landroid/widget/Switch; // type@0a92 │ │ +499b26: 2202 d61e |0155: new-instance v2, Lorg/purple/smokestack/Settings$26; // type@1ed6 │ │ +499b2a: 7020 a0d1 4200 |0157: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$26;.:(Lorg/purple/smokestack/Settings;)V // method@d1a0 │ │ +499b30: 6e20 ed5a 2100 |015a: invoke-virtual {v1, v2}, Landroid/widget/Switch;.setOnCheckedChangeListener:(Landroid/widget/CompoundButton$OnCheckedChangeListener;)V // method@5aed │ │ +499b36: 1401 8500 087f |015d: const v1, #float 1.80778e+38 // #7f080085 │ │ +499b3c: 6e20 f6d1 1400 |0160: invoke-virtual {v4, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +499b42: 0c01 |0163: move-result-object v1 │ │ +499b44: 1f01 920a |0164: check-cast v1, Landroid/widget/Switch; // type@0a92 │ │ +499b48: 2202 d71e |0166: new-instance v2, Lorg/purple/smokestack/Settings$27; // type@1ed7 │ │ +499b4c: 7020 a2d1 4200 |0168: invoke-direct {v2, v4}, Lorg/purple/smokestack/Settings$27;.:(Lorg/purple/smokestack/Settings;)V // method@d1a2 │ │ +499b52: 6e20 ed5a 2100 |016b: invoke-virtual {v1, v2}, Landroid/widget/Switch;.setOnCheckedChangeListener:(Landroid/widget/CompoundButton$OnCheckedChangeListener;)V // method@5aed │ │ +499b58: 2201 d81e |016e: new-instance v1, Lorg/purple/smokestack/Settings$28; // type@1ed8 │ │ +499b5c: 7020 a4d1 4100 |0170: invoke-direct {v1, v4}, Lorg/purple/smokestack/Settings$28;.:(Lorg/purple/smokestack/Settings;)V // method@d1a4 │ │ +499b62: 6e20 d75a 1000 |0173: invoke-virtual {v0, v1}, Landroid/widget/Spinner;.setOnItemSelectedListener:(Landroid/widget/AdapterView$OnItemSelectedListener;)V // method@5ad7 │ │ +499b68: 0e00 |0176: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=1651 │ │ 0x000a line=1655 │ │ 0x0013 line=1657 │ │ 0x0019 line=1658 │ │ 0x0024 line=1669 │ │ @@ -1717243,28 +1717242,28 @@ │ │ type : '()V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 29 16-bit code units │ │ -499b70: |[499b70] org.purple.smokestack.Settings.releaseResources:()V │ │ -499b80: 7100 cfd0 0000 |0000: invoke-static {}, Lorg/purple/smokestack/Database;.releaseMemory:()V // method@d0cf │ │ -499b86: 5520 3a69 |0003: iget-boolean v0, v2, Lorg/purple/smokestack/Settings;.m_receiverRegistered:Z // field@693a │ │ -499b8a: 3800 0e00 |0005: if-eqz v0, 0013 // +000e │ │ -499b8e: 7110 cf1d 0200 |0007: invoke-static {v2}, Landroid/support/v4/content/LocalBroadcastManager;.getInstance:(Landroid/content/Context;)Landroid/support/v4/content/LocalBroadcastManager; // method@1dcf │ │ -499b94: 0c00 |000a: move-result-object v0 │ │ -499b96: 5421 3969 |000b: iget-object v1, v2, Lorg/purple/smokestack/Settings;.m_receiver:Lorg/purple/smokestack/Settings$SettingsBroadcastReceiver; // field@6939 │ │ -499b9a: 6e20 d31d 1000 |000d: invoke-virtual {v0, v1}, Landroid/support/v4/content/LocalBroadcastManager;.unregisterReceiver:(Landroid/content/BroadcastReceiver;)V // method@1dd3 │ │ -499ba0: 1200 |0010: const/4 v0, #int 0 // #0 │ │ -499ba2: 5c20 3a69 |0011: iput-boolean v0, v2, Lorg/purple/smokestack/Settings;.m_receiverRegistered:Z // field@693a │ │ -499ba6: 7010 1bd2 0200 |0013: invoke-direct {v2}, Lorg/purple/smokestack/Settings;.stopGeneralTimers:()V // method@d21b │ │ -499bac: 7010 1cd2 0200 |0016: invoke-direct {v2}, Lorg/purple/smokestack/Settings;.stopListenersTimers:()V // method@d21c │ │ -499bb2: 7010 1dd2 0200 |0019: invoke-direct {v2}, Lorg/purple/smokestack/Settings;.stopNeighborsTimers:()V // method@d21d │ │ -499bb8: 0e00 |001c: return-void │ │ +499b6c: |[499b6c] org.purple.smokestack.Settings.releaseResources:()V │ │ +499b7c: 7100 cfd0 0000 |0000: invoke-static {}, Lorg/purple/smokestack/Database;.releaseMemory:()V // method@d0cf │ │ +499b82: 5520 3a69 |0003: iget-boolean v0, v2, Lorg/purple/smokestack/Settings;.m_receiverRegistered:Z // field@693a │ │ +499b86: 3800 0e00 |0005: if-eqz v0, 0013 // +000e │ │ +499b8a: 7110 cf1d 0200 |0007: invoke-static {v2}, Landroid/support/v4/content/LocalBroadcastManager;.getInstance:(Landroid/content/Context;)Landroid/support/v4/content/LocalBroadcastManager; // method@1dcf │ │ +499b90: 0c00 |000a: move-result-object v0 │ │ +499b92: 5421 3969 |000b: iget-object v1, v2, Lorg/purple/smokestack/Settings;.m_receiver:Lorg/purple/smokestack/Settings$SettingsBroadcastReceiver; // field@6939 │ │ +499b96: 6e20 d31d 1000 |000d: invoke-virtual {v0, v1}, Landroid/support/v4/content/LocalBroadcastManager;.unregisterReceiver:(Landroid/content/BroadcastReceiver;)V // method@1dd3 │ │ +499b9c: 1200 |0010: const/4 v0, #int 0 // #0 │ │ +499b9e: 5c20 3a69 |0011: iput-boolean v0, v2, Lorg/purple/smokestack/Settings;.m_receiverRegistered:Z // field@693a │ │ +499ba2: 7010 1bd2 0200 |0013: invoke-direct {v2}, Lorg/purple/smokestack/Settings;.stopGeneralTimers:()V // method@d21b │ │ +499ba8: 7010 1cd2 0200 |0016: invoke-direct {v2}, Lorg/purple/smokestack/Settings;.stopListenersTimers:()V // method@d21c │ │ +499bae: 7010 1dd2 0200 |0019: invoke-direct {v2}, Lorg/purple/smokestack/Settings;.stopNeighborsTimers:()V // method@d21d │ │ +499bb4: 0e00 |001c: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=2170 │ │ 0x0003 line=2172 │ │ 0x0007 line=2174 │ │ 0x000d line=2175 │ │ 0x0011 line=2176 │ │ @@ -1717279,21 +1717278,21 @@ │ │ type : '()V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 3 │ │ insns size : 14 16-bit code units │ │ -499bbc: |[499bbc] org.purple.smokestack.Settings.showAuthenticateActivity:()V │ │ -499bcc: 2200 4900 |0000: new-instance v0, Landroid/content/Intent; // type@0049 │ │ -499bd0: 1c01 901e |0002: const-class v1, Lorg/purple/smokestack/Authenticate; // type@1e90 │ │ -499bd4: 7030 9f01 2001 |0004: invoke-direct {v0, v2, v1}, Landroid/content/Intent;.:(Landroid/content/Context;Ljava/lang/Class;)V // method@019f │ │ -499bda: 6e20 16d2 0200 |0007: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.startActivity:(Landroid/content/Intent;)V // method@d216 │ │ -499be0: 6e10 f7d1 0200 |000a: invoke-virtual {v2}, Lorg/purple/smokestack/Settings;.finish:()V // method@d1f7 │ │ -499be6: 0e00 |000d: return-void │ │ +499bb8: |[499bb8] org.purple.smokestack.Settings.showAuthenticateActivity:()V │ │ +499bc8: 2200 4900 |0000: new-instance v0, Landroid/content/Intent; // type@0049 │ │ +499bcc: 1c01 901e |0002: const-class v1, Lorg/purple/smokestack/Authenticate; // type@1e90 │ │ +499bd0: 7030 9f01 2001 |0004: invoke-direct {v0, v2, v1}, Landroid/content/Intent;.:(Landroid/content/Context;Ljava/lang/Class;)V // method@019f │ │ +499bd6: 6e20 16d2 0200 |0007: invoke-virtual {v2, v0}, Lorg/purple/smokestack/Settings;.startActivity:(Landroid/content/Intent;)V // method@d216 │ │ +499bdc: 6e10 f7d1 0200 |000a: invoke-virtual {v2}, Lorg/purple/smokestack/Settings;.finish:()V // method@d1f7 │ │ +499be2: 0e00 |000d: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=2186 │ │ 0x0007 line=2188 │ │ 0x000a line=2189 │ │ locals : │ │ 0x0000 - 0x000e reg=2 this Lorg/purple/smokestack/Settings; │ │ @@ -1717303,27 +1717302,27 @@ │ │ type : '()V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 9 │ │ ins : 1 │ │ outs : 7 │ │ insns size : 25 16-bit code units │ │ -499be8: |[499be8] org.purple.smokestack.Settings.startGeneralTimer:()V │ │ -499bf8: 5480 3369 |0000: iget-object v0, v8, Lorg/purple/smokestack/Settings;.m_generalScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6933 │ │ -499bfc: 3900 1600 |0002: if-nez v0, 0018 // +0016 │ │ -499c00: 7100 0761 0000 |0004: invoke-static {}, Ljava/util/concurrent/Executors;.newSingleThreadScheduledExecutor:()Ljava/util/concurrent/ScheduledExecutorService; // method@6107 │ │ -499c06: 0c01 |0007: move-result-object v1 │ │ -499c08: 5b81 3369 |0008: iput-object v1, v8, Lorg/purple/smokestack/Settings;.m_generalScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6933 │ │ -499c0c: 2202 da1e |000a: new-instance v2, Lorg/purple/smokestack/Settings$29; // type@1eda │ │ -499c10: 7020 a9d1 8200 |000c: invoke-direct {v2, v8}, Lorg/purple/smokestack/Settings$29;.:(Lorg/purple/smokestack/Settings;)V // method@d1a9 │ │ -499c16: 1603 0000 |000f: const-wide/16 v3, #int 0 // #0 │ │ -499c1a: 1605 c409 |0011: const-wide/16 v5, #int 2500 // #9c4 │ │ -499c1e: 6207 122d |0013: sget-object v7, Ljava/util/concurrent/TimeUnit;.MILLISECONDS:Ljava/util/concurrent/TimeUnit; // field@2d12 │ │ -499c22: 7807 0e61 0100 |0015: invoke-interface/range {v1, v2, v3, v4, v5, v6, v7}, Ljava/util/concurrent/ScheduledExecutorService;.scheduleAtFixedRate:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; // method@610e │ │ -499c28: 0e00 |0018: return-void │ │ +499be4: |[499be4] org.purple.smokestack.Settings.startGeneralTimer:()V │ │ +499bf4: 5480 3369 |0000: iget-object v0, v8, Lorg/purple/smokestack/Settings;.m_generalScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6933 │ │ +499bf8: 3900 1600 |0002: if-nez v0, 0018 // +0016 │ │ +499bfc: 7100 0761 0000 |0004: invoke-static {}, Ljava/util/concurrent/Executors;.newSingleThreadScheduledExecutor:()Ljava/util/concurrent/ScheduledExecutorService; // method@6107 │ │ +499c02: 0c01 |0007: move-result-object v1 │ │ +499c04: 5b81 3369 |0008: iput-object v1, v8, Lorg/purple/smokestack/Settings;.m_generalScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6933 │ │ +499c08: 2202 da1e |000a: new-instance v2, Lorg/purple/smokestack/Settings$29; // type@1eda │ │ +499c0c: 7020 a9d1 8200 |000c: invoke-direct {v2, v8}, Lorg/purple/smokestack/Settings$29;.:(Lorg/purple/smokestack/Settings;)V // method@d1a9 │ │ +499c12: 1603 0000 |000f: const-wide/16 v3, #int 0 // #0 │ │ +499c16: 1605 c409 |0011: const-wide/16 v5, #int 2500 // #9c4 │ │ +499c1a: 6207 122d |0013: sget-object v7, Ljava/util/concurrent/TimeUnit;.MILLISECONDS:Ljava/util/concurrent/TimeUnit; // field@2d12 │ │ +499c1e: 7807 0e61 0100 |0015: invoke-interface/range {v1, v2, v3, v4, v5, v6, v7}, Ljava/util/concurrent/ScheduledExecutorService;.scheduleAtFixedRate:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; // method@610e │ │ +499c24: 0e00 |0018: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=2194 │ │ 0x0004 line=2196 │ │ 0x000a line=2197 │ │ locals : │ │ 0x0000 - 0x0019 reg=8 this Lorg/purple/smokestack/Settings; │ │ @@ -1717333,22 +1717332,22 @@ │ │ type : '()V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 15 16-bit code units │ │ -499c2c: |[499c2c] org.purple.smokestack.Settings.startKernel:()V │ │ -499c3c: 7100 02d1 0000 |0000: invoke-static {}, Lorg/purple/smokestack/Kernel;.getInstance:()Lorg/purple/smokestack/Kernel; // method@d102 │ │ -499c42: 0c00 |0003: move-result-object v0 │ │ -499c44: 6e10 07d1 0000 |0004: invoke-virtual {v0}, Lorg/purple/smokestack/Kernel;.populateOzones:()V // method@d107 │ │ -499c4a: 7100 02d1 0000 |0007: invoke-static {}, Lorg/purple/smokestack/Kernel;.getInstance:()Lorg/purple/smokestack/Kernel; // method@d102 │ │ -499c50: 0c00 |000a: move-result-object v0 │ │ -499c52: 6e10 08d1 0000 |000b: invoke-virtual {v0}, Lorg/purple/smokestack/Kernel;.populateSipHashIds:()V // method@d108 │ │ -499c58: 0e00 |000e: return-void │ │ +499c28: |[499c28] org.purple.smokestack.Settings.startKernel:()V │ │ +499c38: 7100 02d1 0000 |0000: invoke-static {}, Lorg/purple/smokestack/Kernel;.getInstance:()Lorg/purple/smokestack/Kernel; // method@d102 │ │ +499c3e: 0c00 |0003: move-result-object v0 │ │ +499c40: 6e10 07d1 0000 |0004: invoke-virtual {v0}, Lorg/purple/smokestack/Kernel;.populateOzones:()V // method@d107 │ │ +499c46: 7100 02d1 0000 |0007: invoke-static {}, Lorg/purple/smokestack/Kernel;.getInstance:()Lorg/purple/smokestack/Kernel; // method@d102 │ │ +499c4c: 0c00 |000a: move-result-object v0 │ │ +499c4e: 6e10 08d1 0000 |000b: invoke-virtual {v0}, Lorg/purple/smokestack/Kernel;.populateSipHashIds:()V // method@d108 │ │ +499c54: 0e00 |000e: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=2249 │ │ 0x0007 line=2250 │ │ locals : │ │ 0x0000 - 0x000f reg=1 this Lorg/purple/smokestack/Settings; │ │ │ │ @@ -1717357,27 +1717356,27 @@ │ │ type : '()V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 9 │ │ ins : 1 │ │ outs : 7 │ │ insns size : 25 16-bit code units │ │ -499c5c: |[499c5c] org.purple.smokestack.Settings.startListenersTimers:()V │ │ -499c6c: 5480 3769 |0000: iget-object v0, v8, Lorg/purple/smokestack/Settings;.m_listenersScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6937 │ │ -499c70: 3900 1600 |0002: if-nez v0, 0018 // +0016 │ │ -499c74: 7100 0761 0000 |0004: invoke-static {}, Ljava/util/concurrent/Executors;.newSingleThreadScheduledExecutor:()Ljava/util/concurrent/ScheduledExecutorService; // method@6107 │ │ -499c7a: 0c01 |0007: move-result-object v1 │ │ -499c7c: 5b81 3769 |0008: iput-object v1, v8, Lorg/purple/smokestack/Settings;.m_listenersScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6937 │ │ -499c80: 2202 de1e |000a: new-instance v2, Lorg/purple/smokestack/Settings$30; // type@1ede │ │ -499c84: 7020 b2d1 8200 |000c: invoke-direct {v2, v8}, Lorg/purple/smokestack/Settings$30;.:(Lorg/purple/smokestack/Settings;)V // method@d1b2 │ │ -499c8a: 1603 0000 |000f: const-wide/16 v3, #int 0 // #0 │ │ -499c8e: 1605 c409 |0011: const-wide/16 v5, #int 2500 // #9c4 │ │ -499c92: 6207 122d |0013: sget-object v7, Ljava/util/concurrent/TimeUnit;.MILLISECONDS:Ljava/util/concurrent/TimeUnit; // field@2d12 │ │ -499c96: 7807 0e61 0100 |0015: invoke-interface/range {v1, v2, v3, v4, v5, v6, v7}, Ljava/util/concurrent/ScheduledExecutorService;.scheduleAtFixedRate:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; // method@610e │ │ -499c9c: 0e00 |0018: return-void │ │ +499c58: |[499c58] org.purple.smokestack.Settings.startListenersTimers:()V │ │ +499c68: 5480 3769 |0000: iget-object v0, v8, Lorg/purple/smokestack/Settings;.m_listenersScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6937 │ │ +499c6c: 3900 1600 |0002: if-nez v0, 0018 // +0016 │ │ +499c70: 7100 0761 0000 |0004: invoke-static {}, Ljava/util/concurrent/Executors;.newSingleThreadScheduledExecutor:()Ljava/util/concurrent/ScheduledExecutorService; // method@6107 │ │ +499c76: 0c01 |0007: move-result-object v1 │ │ +499c78: 5b81 3769 |0008: iput-object v1, v8, Lorg/purple/smokestack/Settings;.m_listenersScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6937 │ │ +499c7c: 2202 de1e |000a: new-instance v2, Lorg/purple/smokestack/Settings$30; // type@1ede │ │ +499c80: 7020 b2d1 8200 |000c: invoke-direct {v2, v8}, Lorg/purple/smokestack/Settings$30;.:(Lorg/purple/smokestack/Settings;)V // method@d1b2 │ │ +499c86: 1603 0000 |000f: const-wide/16 v3, #int 0 // #0 │ │ +499c8a: 1605 c409 |0011: const-wide/16 v5, #int 2500 // #9c4 │ │ +499c8e: 6207 122d |0013: sget-object v7, Ljava/util/concurrent/TimeUnit;.MILLISECONDS:Ljava/util/concurrent/TimeUnit; // field@2d12 │ │ +499c92: 7807 0e61 0100 |0015: invoke-interface/range {v1, v2, v3, v4, v5, v6, v7}, Ljava/util/concurrent/ScheduledExecutorService;.scheduleAtFixedRate:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; // method@610e │ │ +499c98: 0e00 |0018: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=2255 │ │ 0x0004 line=2257 │ │ 0x000a line=2258 │ │ locals : │ │ 0x0000 - 0x0019 reg=8 this Lorg/purple/smokestack/Settings; │ │ @@ -1717387,27 +1717386,27 @@ │ │ type : '()V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 9 │ │ ins : 1 │ │ outs : 7 │ │ insns size : 25 16-bit code units │ │ -499ca0: |[499ca0] org.purple.smokestack.Settings.startNeighborsTimers:()V │ │ -499cb0: 5480 3869 |0000: iget-object v0, v8, Lorg/purple/smokestack/Settings;.m_neighborsScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6938 │ │ -499cb4: 3900 1600 |0002: if-nez v0, 0018 // +0016 │ │ -499cb8: 7100 0761 0000 |0004: invoke-static {}, Ljava/util/concurrent/Executors;.newSingleThreadScheduledExecutor:()Ljava/util/concurrent/ScheduledExecutorService; // method@6107 │ │ -499cbe: 0c01 |0007: move-result-object v1 │ │ -499cc0: 5b81 3869 |0008: iput-object v1, v8, Lorg/purple/smokestack/Settings;.m_neighborsScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6938 │ │ -499cc4: 2202 df1e |000a: new-instance v2, Lorg/purple/smokestack/Settings$31; // type@1edf │ │ -499cc8: 7020 b4d1 8200 |000c: invoke-direct {v2, v8}, Lorg/purple/smokestack/Settings$31;.:(Lorg/purple/smokestack/Settings;)V // method@d1b4 │ │ -499cce: 1603 0000 |000f: const-wide/16 v3, #int 0 // #0 │ │ -499cd2: 1605 c409 |0011: const-wide/16 v5, #int 2500 // #9c4 │ │ -499cd6: 6207 122d |0013: sget-object v7, Ljava/util/concurrent/TimeUnit;.MILLISECONDS:Ljava/util/concurrent/TimeUnit; // field@2d12 │ │ -499cda: 7807 0e61 0100 |0015: invoke-interface/range {v1, v2, v3, v4, v5, v6, v7}, Ljava/util/concurrent/ScheduledExecutorService;.scheduleAtFixedRate:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; // method@610e │ │ -499ce0: 0e00 |0018: return-void │ │ +499c9c: |[499c9c] org.purple.smokestack.Settings.startNeighborsTimers:()V │ │ +499cac: 5480 3869 |0000: iget-object v0, v8, Lorg/purple/smokestack/Settings;.m_neighborsScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6938 │ │ +499cb0: 3900 1600 |0002: if-nez v0, 0018 // +0016 │ │ +499cb4: 7100 0761 0000 |0004: invoke-static {}, Ljava/util/concurrent/Executors;.newSingleThreadScheduledExecutor:()Ljava/util/concurrent/ScheduledExecutorService; // method@6107 │ │ +499cba: 0c01 |0007: move-result-object v1 │ │ +499cbc: 5b81 3869 |0008: iput-object v1, v8, Lorg/purple/smokestack/Settings;.m_neighborsScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6938 │ │ +499cc0: 2202 df1e |000a: new-instance v2, Lorg/purple/smokestack/Settings$31; // type@1edf │ │ +499cc4: 7020 b4d1 8200 |000c: invoke-direct {v2, v8}, Lorg/purple/smokestack/Settings$31;.:(Lorg/purple/smokestack/Settings;)V // method@d1b4 │ │ +499cca: 1603 0000 |000f: const-wide/16 v3, #int 0 // #0 │ │ +499cce: 1605 c409 |0011: const-wide/16 v5, #int 2500 // #9c4 │ │ +499cd2: 6207 122d |0013: sget-object v7, Ljava/util/concurrent/TimeUnit;.MILLISECONDS:Ljava/util/concurrent/TimeUnit; // field@2d12 │ │ +499cd6: 7807 0e61 0100 |0015: invoke-interface/range {v1, v2, v3, v4, v5, v6, v7}, Ljava/util/concurrent/ScheduledExecutorService;.scheduleAtFixedRate:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; // method@610e │ │ +499cdc: 0e00 |0018: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=2281 │ │ 0x0004 line=2283 │ │ 0x000a line=2284 │ │ locals : │ │ 0x0000 - 0x0019 reg=8 this Lorg/purple/smokestack/Settings; │ │ @@ -1717417,34 +1717416,34 @@ │ │ type : '()V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 6 │ │ ins : 1 │ │ outs : 4 │ │ insns size : 34 16-bit code units │ │ -499ce4: |[499ce4] org.purple.smokestack.Settings.stopGeneralTimers:()V │ │ -499cf4: 5450 3369 |0000: iget-object v0, v5, Lorg/purple/smokestack/Settings;.m_generalScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6933 │ │ -499cf8: 3900 0300 |0002: if-nez v0, 0005 // +0003 │ │ -499cfc: 0e00 |0004: return-void │ │ -499cfe: 7210 0f61 0000 |0005: invoke-interface {v0}, Ljava/util/concurrent/ScheduledExecutorService;.shutdown:()V // method@610f │ │ -499d04: 1200 |0008: const/4 v0, #int 0 // #0 │ │ -499d06: 5451 3369 |0009: iget-object v1, v5, Lorg/purple/smokestack/Settings;.m_generalScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6933 │ │ -499d0a: 1602 0a00 |000b: const-wide/16 v2, #int 10 // #a │ │ -499d0e: 6204 152d |000d: sget-object v4, Ljava/util/concurrent/TimeUnit;.SECONDS:Ljava/util/concurrent/TimeUnit; // field@2d15 │ │ -499d12: 7240 0d61 2143 |000f: invoke-interface {v1, v2, v3, v4}, Ljava/util/concurrent/ScheduledExecutorService;.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z // method@610d │ │ -499d18: 0a01 |0012: move-result v1 │ │ -499d1a: 3901 0c00 |0013: if-nez v1, 001f // +000c │ │ -499d1e: 5451 3369 |0015: iget-object v1, v5, Lorg/purple/smokestack/Settings;.m_generalScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6933 │ │ -499d22: 7210 1061 0100 |0017: invoke-interface {v1}, Ljava/util/concurrent/ScheduledExecutorService;.shutdownNow:()Ljava/util/List; // method@6110 │ │ -499d28: 2805 |001a: goto 001f // +0005 │ │ -499d2a: 0d01 |001b: move-exception v1 │ │ -499d2c: 5b50 3369 |001c: iput-object v0, v5, Lorg/purple/smokestack/Settings;.m_generalScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6933 │ │ -499d30: 2701 |001e: throw v1 │ │ -499d32: 5b50 3369 |001f: iput-object v0, v5, Lorg/purple/smokestack/Settings;.m_generalScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6933 │ │ -499d36: 0e00 |0021: return-void │ │ +499ce0: |[499ce0] org.purple.smokestack.Settings.stopGeneralTimers:()V │ │ +499cf0: 5450 3369 |0000: iget-object v0, v5, Lorg/purple/smokestack/Settings;.m_generalScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6933 │ │ +499cf4: 3900 0300 |0002: if-nez v0, 0005 // +0003 │ │ +499cf8: 0e00 |0004: return-void │ │ +499cfa: 7210 0f61 0000 |0005: invoke-interface {v0}, Ljava/util/concurrent/ScheduledExecutorService;.shutdown:()V // method@610f │ │ +499d00: 1200 |0008: const/4 v0, #int 0 // #0 │ │ +499d02: 5451 3369 |0009: iget-object v1, v5, Lorg/purple/smokestack/Settings;.m_generalScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6933 │ │ +499d06: 1602 0a00 |000b: const-wide/16 v2, #int 10 // #a │ │ +499d0a: 6204 152d |000d: sget-object v4, Ljava/util/concurrent/TimeUnit;.SECONDS:Ljava/util/concurrent/TimeUnit; // field@2d15 │ │ +499d0e: 7240 0d61 2143 |000f: invoke-interface {v1, v2, v3, v4}, Ljava/util/concurrent/ScheduledExecutorService;.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z // method@610d │ │ +499d14: 0a01 |0012: move-result v1 │ │ +499d16: 3901 0c00 |0013: if-nez v1, 001f // +000c │ │ +499d1a: 5451 3369 |0015: iget-object v1, v5, Lorg/purple/smokestack/Settings;.m_generalScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6933 │ │ +499d1e: 7210 1061 0100 |0017: invoke-interface {v1}, Ljava/util/concurrent/ScheduledExecutorService;.shutdownNow:()Ljava/util/List; // method@6110 │ │ +499d24: 2805 |001a: goto 001f // +0005 │ │ +499d26: 0d01 |001b: move-exception v1 │ │ +499d28: 5b50 3369 |001c: iput-object v0, v5, Lorg/purple/smokestack/Settings;.m_generalScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6933 │ │ +499d2c: 2701 |001e: throw v1 │ │ +499d2e: 5b50 3369 |001f: iput-object v0, v5, Lorg/purple/smokestack/Settings;.m_generalScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6933 │ │ +499d32: 0e00 |0021: return-void │ │ catches : 2 │ │ 0x0005 - 0x0008 │ │ Ljava/lang/Exception; -> 0x0008 │ │ 0x0009 - 0x001a │ │ Ljava/lang/Exception; -> 0x001f │ │ -> 0x001b │ │ positions : │ │ @@ -1717464,34 +1717463,34 @@ │ │ type : '()V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 6 │ │ ins : 1 │ │ outs : 4 │ │ insns size : 34 16-bit code units │ │ -499d54: |[499d54] org.purple.smokestack.Settings.stopListenersTimers:()V │ │ -499d64: 5450 3769 |0000: iget-object v0, v5, Lorg/purple/smokestack/Settings;.m_listenersScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6937 │ │ -499d68: 3900 0300 |0002: if-nez v0, 0005 // +0003 │ │ -499d6c: 0e00 |0004: return-void │ │ -499d6e: 7210 0f61 0000 |0005: invoke-interface {v0}, Ljava/util/concurrent/ScheduledExecutorService;.shutdown:()V // method@610f │ │ -499d74: 1200 |0008: const/4 v0, #int 0 // #0 │ │ -499d76: 5451 3769 |0009: iget-object v1, v5, Lorg/purple/smokestack/Settings;.m_listenersScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6937 │ │ -499d7a: 1602 0a00 |000b: const-wide/16 v2, #int 10 // #a │ │ -499d7e: 6204 152d |000d: sget-object v4, Ljava/util/concurrent/TimeUnit;.SECONDS:Ljava/util/concurrent/TimeUnit; // field@2d15 │ │ -499d82: 7240 0d61 2143 |000f: invoke-interface {v1, v2, v3, v4}, Ljava/util/concurrent/ScheduledExecutorService;.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z // method@610d │ │ -499d88: 0a01 |0012: move-result v1 │ │ -499d8a: 3901 0c00 |0013: if-nez v1, 001f // +000c │ │ -499d8e: 5451 3769 |0015: iget-object v1, v5, Lorg/purple/smokestack/Settings;.m_listenersScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6937 │ │ -499d92: 7210 1061 0100 |0017: invoke-interface {v1}, Ljava/util/concurrent/ScheduledExecutorService;.shutdownNow:()Ljava/util/List; // method@6110 │ │ -499d98: 2805 |001a: goto 001f // +0005 │ │ -499d9a: 0d01 |001b: move-exception v1 │ │ -499d9c: 5b50 3769 |001c: iput-object v0, v5, Lorg/purple/smokestack/Settings;.m_listenersScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6937 │ │ -499da0: 2701 |001e: throw v1 │ │ -499da2: 5b50 3769 |001f: iput-object v0, v5, Lorg/purple/smokestack/Settings;.m_listenersScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6937 │ │ -499da6: 0e00 |0021: return-void │ │ +499d50: |[499d50] org.purple.smokestack.Settings.stopListenersTimers:()V │ │ +499d60: 5450 3769 |0000: iget-object v0, v5, Lorg/purple/smokestack/Settings;.m_listenersScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6937 │ │ +499d64: 3900 0300 |0002: if-nez v0, 0005 // +0003 │ │ +499d68: 0e00 |0004: return-void │ │ +499d6a: 7210 0f61 0000 |0005: invoke-interface {v0}, Ljava/util/concurrent/ScheduledExecutorService;.shutdown:()V // method@610f │ │ +499d70: 1200 |0008: const/4 v0, #int 0 // #0 │ │ +499d72: 5451 3769 |0009: iget-object v1, v5, Lorg/purple/smokestack/Settings;.m_listenersScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6937 │ │ +499d76: 1602 0a00 |000b: const-wide/16 v2, #int 10 // #a │ │ +499d7a: 6204 152d |000d: sget-object v4, Ljava/util/concurrent/TimeUnit;.SECONDS:Ljava/util/concurrent/TimeUnit; // field@2d15 │ │ +499d7e: 7240 0d61 2143 |000f: invoke-interface {v1, v2, v3, v4}, Ljava/util/concurrent/ScheduledExecutorService;.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z // method@610d │ │ +499d84: 0a01 |0012: move-result v1 │ │ +499d86: 3901 0c00 |0013: if-nez v1, 001f // +000c │ │ +499d8a: 5451 3769 |0015: iget-object v1, v5, Lorg/purple/smokestack/Settings;.m_listenersScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6937 │ │ +499d8e: 7210 1061 0100 |0017: invoke-interface {v1}, Ljava/util/concurrent/ScheduledExecutorService;.shutdownNow:()Ljava/util/List; // method@6110 │ │ +499d94: 2805 |001a: goto 001f // +0005 │ │ +499d96: 0d01 |001b: move-exception v1 │ │ +499d98: 5b50 3769 |001c: iput-object v0, v5, Lorg/purple/smokestack/Settings;.m_listenersScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6937 │ │ +499d9c: 2701 |001e: throw v1 │ │ +499d9e: 5b50 3769 |001f: iput-object v0, v5, Lorg/purple/smokestack/Settings;.m_listenersScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6937 │ │ +499da2: 0e00 |0021: return-void │ │ catches : 2 │ │ 0x0005 - 0x0008 │ │ Ljava/lang/Exception; -> 0x0008 │ │ 0x0009 - 0x001a │ │ Ljava/lang/Exception; -> 0x001f │ │ -> 0x001b │ │ positions : │ │ @@ -1717511,34 +1717510,34 @@ │ │ type : '()V' │ │ access : 0x0002 (PRIVATE) │ │ code - │ │ registers : 6 │ │ ins : 1 │ │ outs : 4 │ │ insns size : 34 16-bit code units │ │ -499dc4: |[499dc4] org.purple.smokestack.Settings.stopNeighborsTimers:()V │ │ -499dd4: 5450 3869 |0000: iget-object v0, v5, Lorg/purple/smokestack/Settings;.m_neighborsScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6938 │ │ -499dd8: 3900 0300 |0002: if-nez v0, 0005 // +0003 │ │ -499ddc: 0e00 |0004: return-void │ │ -499dde: 7210 0f61 0000 |0005: invoke-interface {v0}, Ljava/util/concurrent/ScheduledExecutorService;.shutdown:()V // method@610f │ │ -499de4: 1200 |0008: const/4 v0, #int 0 // #0 │ │ -499de6: 5451 3869 |0009: iget-object v1, v5, Lorg/purple/smokestack/Settings;.m_neighborsScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6938 │ │ -499dea: 1602 0a00 |000b: const-wide/16 v2, #int 10 // #a │ │ -499dee: 6204 152d |000d: sget-object v4, Ljava/util/concurrent/TimeUnit;.SECONDS:Ljava/util/concurrent/TimeUnit; // field@2d15 │ │ -499df2: 7240 0d61 2143 |000f: invoke-interface {v1, v2, v3, v4}, Ljava/util/concurrent/ScheduledExecutorService;.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z // method@610d │ │ -499df8: 0a01 |0012: move-result v1 │ │ -499dfa: 3901 0c00 |0013: if-nez v1, 001f // +000c │ │ -499dfe: 5451 3869 |0015: iget-object v1, v5, Lorg/purple/smokestack/Settings;.m_neighborsScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6938 │ │ -499e02: 7210 1061 0100 |0017: invoke-interface {v1}, Ljava/util/concurrent/ScheduledExecutorService;.shutdownNow:()Ljava/util/List; // method@6110 │ │ -499e08: 2805 |001a: goto 001f // +0005 │ │ -499e0a: 0d01 |001b: move-exception v1 │ │ -499e0c: 5b50 3869 |001c: iput-object v0, v5, Lorg/purple/smokestack/Settings;.m_neighborsScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6938 │ │ -499e10: 2701 |001e: throw v1 │ │ -499e12: 5b50 3869 |001f: iput-object v0, v5, Lorg/purple/smokestack/Settings;.m_neighborsScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6938 │ │ -499e16: 0e00 |0021: return-void │ │ +499dc0: |[499dc0] org.purple.smokestack.Settings.stopNeighborsTimers:()V │ │ +499dd0: 5450 3869 |0000: iget-object v0, v5, Lorg/purple/smokestack/Settings;.m_neighborsScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6938 │ │ +499dd4: 3900 0300 |0002: if-nez v0, 0005 // +0003 │ │ +499dd8: 0e00 |0004: return-void │ │ +499dda: 7210 0f61 0000 |0005: invoke-interface {v0}, Ljava/util/concurrent/ScheduledExecutorService;.shutdown:()V // method@610f │ │ +499de0: 1200 |0008: const/4 v0, #int 0 // #0 │ │ +499de2: 5451 3869 |0009: iget-object v1, v5, Lorg/purple/smokestack/Settings;.m_neighborsScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6938 │ │ +499de6: 1602 0a00 |000b: const-wide/16 v2, #int 10 // #a │ │ +499dea: 6204 152d |000d: sget-object v4, Ljava/util/concurrent/TimeUnit;.SECONDS:Ljava/util/concurrent/TimeUnit; // field@2d15 │ │ +499dee: 7240 0d61 2143 |000f: invoke-interface {v1, v2, v3, v4}, Ljava/util/concurrent/ScheduledExecutorService;.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z // method@610d │ │ +499df4: 0a01 |0012: move-result v1 │ │ +499df6: 3901 0c00 |0013: if-nez v1, 001f // +000c │ │ +499dfa: 5451 3869 |0015: iget-object v1, v5, Lorg/purple/smokestack/Settings;.m_neighborsScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6938 │ │ +499dfe: 7210 1061 0100 |0017: invoke-interface {v1}, Ljava/util/concurrent/ScheduledExecutorService;.shutdownNow:()Ljava/util/List; // method@6110 │ │ +499e04: 2805 |001a: goto 001f // +0005 │ │ +499e06: 0d01 |001b: move-exception v1 │ │ +499e08: 5b50 3869 |001c: iput-object v0, v5, Lorg/purple/smokestack/Settings;.m_neighborsScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6938 │ │ +499e0c: 2701 |001e: throw v1 │ │ +499e0e: 5b50 3869 |001f: iput-object v0, v5, Lorg/purple/smokestack/Settings;.m_neighborsScheduler:Ljava/util/concurrent/ScheduledExecutorService; // field@6938 │ │ +499e12: 0e00 |0021: return-void │ │ catches : 2 │ │ 0x0005 - 0x0008 │ │ Ljava/lang/Exception; -> 0x0008 │ │ 0x0009 - 0x001a │ │ Ljava/lang/Exception; -> 0x001f │ │ -> 0x001b │ │ positions : │ │ @@ -1717559,185 +1717558,185 @@ │ │ type : '(Landroid/view/MenuItem;)Z' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 9 │ │ ins : 2 │ │ outs : 4 │ │ insns size : 386 16-bit code units │ │ -496a14: |[496a14] org.purple.smokestack.Settings.onContextItemSelected:(Landroid/view/MenuItem;)Z │ │ -496a24: 1200 |0000: const/4 v0, #int 0 // #0 │ │ -496a26: 3908 0300 |0001: if-nez v8, 0004 // +0003 │ │ -496a2a: 0f00 |0003: return v0 │ │ -496a2c: 7210 8955 0800 |0004: invoke-interface {v8}, Landroid/view/MenuItem;.getGroupId:()I // method@5589 │ │ -496a32: 0a01 |0007: move-result v1 │ │ -496a34: 7210 8b55 0800 |0008: invoke-interface {v8}, Landroid/view/MenuItem;.getItemId:()I // method@558b │ │ -496a3a: 0a02 |000b: move-result v2 │ │ -496a3c: 2203 e31e |000c: new-instance v3, Lorg/purple/smokestack/Settings$35; // type@1ee3 │ │ -496a40: 7040 bdd1 7321 |000e: invoke-direct {v3, v7, v1, v2}, Lorg/purple/smokestack/Settings$35;.:(Lorg/purple/smokestack/Settings;II)V // method@d1bd │ │ -496a46: 1a04 8609 |0011: const-string v4, "?" // string@0986 │ │ -496a4a: 1a05 1f04 |0013: const-string v5, ")" // string@041f │ │ -496a4e: 1a06 0000 |0015: const-string v6, "" // string@0000 │ │ -496a52: 2b01 5701 0000 |0017: packed-switch v1, 0000016e // +00000157 │ │ -496a58: 2900 5201 |001a: goto/16 016c // +0152 │ │ -496a5c: 5478 3269 |001c: iget-object v8, v7, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ -496a60: 6200 3c69 |001e: sget-object v0, Lorg/purple/smokestack/Settings;.s_cryptography:Lorg/purple/smokestack/Cryptography; // field@693c │ │ -496a64: 6e30 dbd0 0802 |0020: invoke-virtual {v8, v0, v2}, Lorg/purple/smokestack/Database;.toggleListenerPrivacy:(Lorg/purple/smokestack/Cryptography;I)Z // method@d0db │ │ -496a6a: 0a08 |0023: move-result v8 │ │ -496a6c: 3808 4801 |0024: if-eqz v8, 016c // +0148 │ │ -496a70: 7100 02d1 0000 |0026: invoke-static {}, Lorg/purple/smokestack/Kernel;.getInstance:()Lorg/purple/smokestack/Kernel; // method@d102 │ │ -496a76: 0c08 |0029: move-result-object v8 │ │ -496a78: 6e20 12d1 2800 |002a: invoke-virtual {v8, v2}, Lorg/purple/smokestack/Kernel;.toggleListenerPrivacy:(I)V // method@d112 │ │ -496a7e: 1408 2300 087f |002d: const v8, #float 1.80776e+38 // #7f080023 │ │ -496a84: 6e20 f6d1 8700 |0030: invoke-virtual {v7, v8}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -496a8a: 0c08 |0033: move-result-object v8 │ │ -496a8c: 1f08 920a |0034: check-cast v8, Landroid/widget/Switch; // type@0a92 │ │ -496a90: 6e10 e65a 0800 |0036: invoke-virtual {v8}, Landroid/widget/Switch;.isChecked:()Z // method@5ae6 │ │ -496a96: 0a08 |0039: move-result v8 │ │ -496a98: 3908 3201 |003a: if-nez v8, 016c // +0132 │ │ -496a9c: 1208 |003c: const/4 v8, #int 0 // #0 │ │ -496a9e: 7020 0ad2 8700 |003d: invoke-direct {v7, v8}, Lorg/purple/smokestack/Settings;.populateListeners:(Ljava/util/ArrayList;)V // method@d20a │ │ -496aa4: 2900 2c01 |0040: goto/16 016c // +012c │ │ -496aa8: 2200 fc0a |0042: new-instance v0, Ljava/lang/StringBuilder; // type@0afc │ │ -496aac: 7010 125d 0000 |0044: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ -496ab2: 1a01 260f |0047: const-string v1, "Are you sure that you wish to reset the messages retrieval state for " // string@0f26 │ │ -496ab6: 6e20 1d5d 1000 |0049: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -496abc: 7210 8d55 0800 |004c: invoke-interface {v8}, Landroid/view/MenuItem;.getTitle:()Ljava/lang/CharSequence; // method@558d │ │ -496ac2: 0c08 |004f: move-result-object v8 │ │ -496ac4: 7210 1b5c 0800 |0050: invoke-interface {v8}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ -496aca: 0c08 |0053: move-result-object v8 │ │ -496acc: 1a01 1a4d |0054: const-string v1, "Reset Retrieval State (" // string@4d1a │ │ -496ad0: 6e30 ec5c 1806 |0056: invoke-virtual {v8, v1, v6}, Ljava/lang/String;.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; // method@5cec │ │ -496ad6: 0c08 |0059: move-result-object v8 │ │ -496ad8: 6e30 ec5c 5806 |005a: invoke-virtual {v8, v5, v6}, Ljava/lang/String;.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; // method@5cec │ │ -496ade: 0c08 |005d: move-result-object v8 │ │ -496ae0: 6e20 1d5d 8000 |005e: invoke-virtual {v0, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -496ae6: 6e20 1d5d 4000 |0061: invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -496aec: 6e10 285d 0000 |0064: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ -496af2: 0c08 |0067: move-result-object v8 │ │ -496af4: 7130 43d1 3708 |0068: invoke-static {v7, v3, v8}, Lorg/purple/smokestack/Miscellaneous;.showPromptDialog:(Landroid/content/Context;Landroid/content/DialogInterface$OnCancelListener;Ljava/lang/String;)V // method@d143 │ │ -496afa: 2900 0101 |006b: goto/16 016c // +0101 │ │ -496afe: 2200 fc0a |006d: new-instance v0, Ljava/lang/StringBuilder; // type@0afc │ │ -496b02: 7010 125d 0000 |006f: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ -496b08: 1a01 ec4a |0072: const-string v1, "Please provide a new name for " // string@4aec │ │ -496b0c: 6e20 1d5d 1000 |0074: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -496b12: 7210 8d55 0800 |0077: invoke-interface {v8}, Landroid/view/MenuItem;.getTitle:()Ljava/lang/CharSequence; // method@558d │ │ -496b18: 0c08 |007a: move-result-object v8 │ │ -496b1a: 7210 1b5c 0800 |007b: invoke-interface {v8}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ -496b20: 0c08 |007e: move-result-object v8 │ │ -496b22: 1a01 2647 |007f: const-string v1, "New Name (" // string@4726 │ │ -496b26: 6e30 ec5c 1806 |0081: invoke-virtual {v8, v1, v6}, Ljava/lang/String;.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; // method@5cec │ │ -496b2c: 0c08 |0084: move-result-object v8 │ │ -496b2e: 6e30 ec5c 5806 |0085: invoke-virtual {v8, v5, v6}, Ljava/lang/String;.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; // method@5cec │ │ -496b34: 0c08 |0088: move-result-object v8 │ │ -496b36: 6e20 1d5d 8000 |0089: invoke-virtual {v0, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -496b3c: 1a08 d604 |008c: const-string v8, "." // string@04d6 │ │ -496b40: 6e20 1d5d 8000 |008e: invoke-virtual {v0, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -496b46: 6e10 285d 0000 |0091: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ -496b4c: 0c08 |0094: move-result-object v8 │ │ -496b4e: 1a00 f046 |0095: const-string v0, "Name" // string@46f0 │ │ -496b52: 7140 44d1 3708 |0097: invoke-static {v7, v3, v8, v0}, Lorg/purple/smokestack/Miscellaneous;.showTextInputDialog:(Landroid/content/Context;Landroid/content/DialogInterface$OnCancelListener;Ljava/lang/String;Ljava/lang/String;)V // method@d144 │ │ -496b58: 2900 d200 |009a: goto/16 016c // +00d2 │ │ -496b5c: 2200 fc0a |009c: new-instance v0, Ljava/lang/StringBuilder; // type@0afc │ │ -496b60: 7010 125d 0000 |009e: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ -496b66: 1a01 240f |00a1: const-string v1, "Are you sure that you wish to delete the participant " // string@0f24 │ │ -496b6a: 6e20 1d5d 1000 |00a3: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -496b70: 7210 8d55 0800 |00a6: invoke-interface {v8}, Landroid/view/MenuItem;.getTitle:()Ljava/lang/CharSequence; // method@558d │ │ -496b76: 0c08 |00a9: move-result-object v8 │ │ -496b78: 7210 1b5c 0800 |00aa: invoke-interface {v8}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ -496b7e: 0c08 |00ad: move-result-object v8 │ │ -496b80: 1a01 a318 |00ae: const-string v1, "Delete Participant (" // string@18a3 │ │ -496b84: 6e30 ec5c 1806 |00b0: invoke-virtual {v8, v1, v6}, Ljava/lang/String;.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; // method@5cec │ │ -496b8a: 0c08 |00b3: move-result-object v8 │ │ -496b8c: 6e30 ec5c 5806 |00b4: invoke-virtual {v8, v5, v6}, Ljava/lang/String;.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; // method@5cec │ │ -496b92: 0c08 |00b7: move-result-object v8 │ │ -496b94: 6e20 1d5d 8000 |00b8: invoke-virtual {v0, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -496b9a: 1a08 8709 |00bb: const-string v8, "? If confirmed, the associated Ozone will also be deleted." // string@0987 │ │ -496b9e: 6e20 1d5d 8000 |00bd: invoke-virtual {v0, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -496ba4: 6e10 285d 0000 |00c0: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ -496baa: 0c08 |00c3: move-result-object v8 │ │ -496bac: 7130 43d1 3708 |00c4: invoke-static {v7, v3, v8}, Lorg/purple/smokestack/Miscellaneous;.showPromptDialog:(Landroid/content/Context;Landroid/content/DialogInterface$OnCancelListener;Ljava/lang/String;)V // method@d143 │ │ -496bb2: 2900 a500 |00c7: goto/16 016c // +00a5 │ │ -496bb6: 2200 fc0a |00c9: new-instance v0, Ljava/lang/StringBuilder; // type@0afc │ │ -496bba: 7010 125d 0000 |00cb: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ -496bc0: 1a01 220f |00ce: const-string v1, "Are you sure that you wish to delete the Ozone " // string@0f22 │ │ -496bc4: 6e20 1d5d 1000 |00d0: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -496bca: 7210 8d55 0800 |00d3: invoke-interface {v8}, Landroid/view/MenuItem;.getTitle:()Ljava/lang/CharSequence; // method@558d │ │ -496bd0: 0c08 |00d6: move-result-object v8 │ │ -496bd2: 7210 1b5c 0800 |00d7: invoke-interface {v8}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ -496bd8: 0c08 |00da: move-result-object v8 │ │ -496bda: 1a01 a218 |00db: const-string v1, "Delete Ozone (" // string@18a2 │ │ -496bde: 6e30 ec5c 1806 |00dd: invoke-virtual {v8, v1, v6}, Ljava/lang/String;.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; // method@5cec │ │ -496be4: 0c08 |00e0: move-result-object v8 │ │ -496be6: 6e30 ec5c 5806 |00e1: invoke-virtual {v8, v5, v6}, Ljava/lang/String;.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; // method@5cec │ │ -496bec: 0c08 |00e4: move-result-object v8 │ │ -496bee: 6e20 1d5d 8000 |00e5: invoke-virtual {v0, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -496bf4: 6e20 1d5d 4000 |00e8: invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -496bfa: 6e10 285d 0000 |00eb: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ -496c00: 0c08 |00ee: move-result-object v8 │ │ -496c02: 7130 43d1 3708 |00ef: invoke-static {v7, v3, v8}, Lorg/purple/smokestack/Miscellaneous;.showPromptDialog:(Landroid/content/Context;Landroid/content/DialogInterface$OnCancelListener;Ljava/lang/String;)V // method@d143 │ │ -496c08: 2900 7a00 |00f2: goto/16 016c // +007a │ │ -496c0c: 2200 fc0a |00f4: new-instance v0, Ljava/lang/StringBuilder; // type@0afc │ │ -496c10: 7010 125d 0000 |00f6: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ -496c16: 1a01 230f |00f9: const-string v1, "Are you sure that you wish to delete the messages of participant " // string@0f23 │ │ -496c1a: 6e20 1d5d 1000 |00fb: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -496c20: 7210 8d55 0800 |00fe: invoke-interface {v8}, Landroid/view/MenuItem;.getTitle:()Ljava/lang/CharSequence; // method@558d │ │ -496c26: 0c08 |0101: move-result-object v8 │ │ -496c28: 7210 1b5c 0800 |0102: invoke-interface {v8}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ -496c2e: 0c08 |0105: move-result-object v8 │ │ -496c30: 1a01 a118 |0106: const-string v1, "Delete Messages (" // string@18a1 │ │ -496c34: 6e30 ec5c 1806 |0108: invoke-virtual {v8, v1, v6}, Ljava/lang/String;.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; // method@5cec │ │ -496c3a: 0c08 |010b: move-result-object v8 │ │ -496c3c: 6e30 ec5c 5806 |010c: invoke-virtual {v8, v5, v6}, Ljava/lang/String;.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; // method@5cec │ │ -496c42: 0c08 |010f: move-result-object v8 │ │ -496c44: 6e20 1d5d 8000 |0110: invoke-virtual {v0, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -496c4a: 6e20 1d5d 4000 |0113: invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -496c50: 6e10 285d 0000 |0116: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ -496c56: 0c08 |0119: move-result-object v8 │ │ -496c58: 7130 43d1 3708 |011a: invoke-static {v7, v3, v8}, Lorg/purple/smokestack/Miscellaneous;.showPromptDialog:(Landroid/content/Context;Landroid/content/DialogInterface$OnCancelListener;Ljava/lang/String;)V // method@d143 │ │ -496c5e: 284f |011d: goto 016c // +004f │ │ -496c60: 5478 3269 |011e: iget-object v8, v7, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ -496c64: 6201 3c69 |0120: sget-object v1, Lorg/purple/smokestack/Settings;.s_cryptography:Lorg/purple/smokestack/Cryptography; // field@693c │ │ -496c68: 6e30 c4d0 1802 |0122: invoke-virtual {v8, v1, v2}, Lorg/purple/smokestack/Database;.readListeners:(Lorg/purple/smokestack/Cryptography;I)Ljava/util/ArrayList; // method@d0c4 │ │ -496c6e: 0c08 |0125: move-result-object v8 │ │ -496c70: 5473 3269 |0126: iget-object v3, v7, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ -496c74: 7110 fa5c 0200 |0128: invoke-static {v2}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@5cfa │ │ -496c7a: 0c04 |012b: move-result-object v4 │ │ -496c7c: 1a05 658a |012c: const-string v5, "listeners" // string@8a65 │ │ -496c80: 6e30 aed0 4305 |012e: invoke-virtual {v3, v4, v5}, Lorg/purple/smokestack/Database;.deleteEntry:(Ljava/lang/String;Ljava/lang/String;)Z // method@d0ae │ │ -496c86: 0a03 |0131: move-result v3 │ │ -496c88: 3803 3a00 |0132: if-eqz v3, 016c // +003a │ │ -496c8c: 3808 2000 |0134: if-eqz v8, 0154 // +0020 │ │ -496c90: 6e10 da5f 0800 |0136: invoke-virtual {v8}, Ljava/util/ArrayList;.isEmpty:()Z // method@5fda │ │ -496c96: 0a03 |0139: move-result v3 │ │ -496c98: 3903 1a00 |013a: if-nez v3, 0154 // +001a │ │ -496c9c: 5473 3269 |013c: iget-object v3, v7, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ -496ca0: 6e20 d85f 0800 |013e: invoke-virtual {v8, v0}, Ljava/util/ArrayList;.get:(I)Ljava/lang/Object; // method@5fd8 │ │ -496ca6: 0c08 |0141: move-result-object v8 │ │ -496ca8: 1f08 a21e |0142: check-cast v8, Lorg/purple/smokestack/ListenerElement; // type@1ea2 │ │ -496cac: 6e30 afd0 1308 |0144: invoke-virtual {v3, v1, v8}, Lorg/purple/smokestack/Database;.deleteOzone:(Lorg/purple/smokestack/Cryptography;Lorg/purple/smokestack/ListenerElement;)Z // method@d0af │ │ -496cb2: 0a08 |0147: move-result v8 │ │ -496cb4: 3808 0c00 |0148: if-eqz v8, 0154 // +000c │ │ -496cb8: 7100 02d1 0000 |014a: invoke-static {}, Lorg/purple/smokestack/Kernel;.getInstance:()Lorg/purple/smokestack/Kernel; // method@d102 │ │ -496cbe: 0c08 |014d: move-result-object v8 │ │ -496cc0: 6e10 07d1 0800 |014e: invoke-virtual {v8}, Lorg/purple/smokestack/Kernel;.populateOzones:()V // method@d107 │ │ -496cc6: 7010 0cd2 0700 |0151: invoke-direct {v7}, Lorg/purple/smokestack/Settings;.populateOzoneAddresses:()V // method@d20c │ │ -496ccc: 1408 6600 087f |0154: const v8, #float 1.80777e+38 // #7f080066 │ │ -496cd2: 6e20 f6d1 8700 |0157: invoke-virtual {v7, v8}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -496cd8: 0c08 |015a: move-result-object v8 │ │ -496cda: 1f08 980a |015b: check-cast v8, Landroid/widget/TableLayout; // type@0a98 │ │ -496cde: 6e20 f6d1 2700 |015d: invoke-virtual {v7, v2}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -496ce4: 0c00 |0160: move-result-object v0 │ │ -496ce6: 1f00 9a0a |0161: check-cast v0, Landroid/widget/TableRow; // type@0a9a │ │ -496cea: 6e20 045b 0800 |0163: invoke-virtual {v8, v0}, Landroid/widget/TableLayout;.removeView:(Landroid/view/View;)V // method@5b04 │ │ -496cf0: 2806 |0166: goto 016c // +0006 │ │ -496cf2: 1a08 210f |0167: const-string v8, "Are you sure that you wish to delete all messages?" // string@0f21 │ │ -496cf6: 7130 43d1 3708 |0169: invoke-static {v7, v3, v8}, Lorg/purple/smokestack/Miscellaneous;.showPromptDialog:(Landroid/content/Context;Landroid/content/DialogInterface$OnCancelListener;Ljava/lang/String;)V // method@d143 │ │ -496cfc: 1218 |016c: const/4 v8, #int 1 // #1 │ │ -496cfe: 0f08 |016d: return v8 │ │ -496d00: 0001 0800 0000 0000 5001 0000 0701 ... |016e: packed-switch-data (20 units) │ │ +496a10: |[496a10] org.purple.smokestack.Settings.onContextItemSelected:(Landroid/view/MenuItem;)Z │ │ +496a20: 1200 |0000: const/4 v0, #int 0 // #0 │ │ +496a22: 3908 0300 |0001: if-nez v8, 0004 // +0003 │ │ +496a26: 0f00 |0003: return v0 │ │ +496a28: 7210 8955 0800 |0004: invoke-interface {v8}, Landroid/view/MenuItem;.getGroupId:()I // method@5589 │ │ +496a2e: 0a01 |0007: move-result v1 │ │ +496a30: 7210 8b55 0800 |0008: invoke-interface {v8}, Landroid/view/MenuItem;.getItemId:()I // method@558b │ │ +496a36: 0a02 |000b: move-result v2 │ │ +496a38: 2203 e31e |000c: new-instance v3, Lorg/purple/smokestack/Settings$35; // type@1ee3 │ │ +496a3c: 7040 bdd1 7321 |000e: invoke-direct {v3, v7, v1, v2}, Lorg/purple/smokestack/Settings$35;.:(Lorg/purple/smokestack/Settings;II)V // method@d1bd │ │ +496a42: 1a04 8609 |0011: const-string v4, "?" // string@0986 │ │ +496a46: 1a05 1f04 |0013: const-string v5, ")" // string@041f │ │ +496a4a: 1a06 0000 |0015: const-string v6, "" // string@0000 │ │ +496a4e: 2b01 5701 0000 |0017: packed-switch v1, 0000016e // +00000157 │ │ +496a54: 2900 5201 |001a: goto/16 016c // +0152 │ │ +496a58: 5478 3269 |001c: iget-object v8, v7, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ +496a5c: 6200 3c69 |001e: sget-object v0, Lorg/purple/smokestack/Settings;.s_cryptography:Lorg/purple/smokestack/Cryptography; // field@693c │ │ +496a60: 6e30 dbd0 0802 |0020: invoke-virtual {v8, v0, v2}, Lorg/purple/smokestack/Database;.toggleListenerPrivacy:(Lorg/purple/smokestack/Cryptography;I)Z // method@d0db │ │ +496a66: 0a08 |0023: move-result v8 │ │ +496a68: 3808 4801 |0024: if-eqz v8, 016c // +0148 │ │ +496a6c: 7100 02d1 0000 |0026: invoke-static {}, Lorg/purple/smokestack/Kernel;.getInstance:()Lorg/purple/smokestack/Kernel; // method@d102 │ │ +496a72: 0c08 |0029: move-result-object v8 │ │ +496a74: 6e20 12d1 2800 |002a: invoke-virtual {v8, v2}, Lorg/purple/smokestack/Kernel;.toggleListenerPrivacy:(I)V // method@d112 │ │ +496a7a: 1408 2300 087f |002d: const v8, #float 1.80776e+38 // #7f080023 │ │ +496a80: 6e20 f6d1 8700 |0030: invoke-virtual {v7, v8}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +496a86: 0c08 |0033: move-result-object v8 │ │ +496a88: 1f08 920a |0034: check-cast v8, Landroid/widget/Switch; // type@0a92 │ │ +496a8c: 6e10 e65a 0800 |0036: invoke-virtual {v8}, Landroid/widget/Switch;.isChecked:()Z // method@5ae6 │ │ +496a92: 0a08 |0039: move-result v8 │ │ +496a94: 3908 3201 |003a: if-nez v8, 016c // +0132 │ │ +496a98: 1208 |003c: const/4 v8, #int 0 // #0 │ │ +496a9a: 7020 0ad2 8700 |003d: invoke-direct {v7, v8}, Lorg/purple/smokestack/Settings;.populateListeners:(Ljava/util/ArrayList;)V // method@d20a │ │ +496aa0: 2900 2c01 |0040: goto/16 016c // +012c │ │ +496aa4: 2200 fc0a |0042: new-instance v0, Ljava/lang/StringBuilder; // type@0afc │ │ +496aa8: 7010 125d 0000 |0044: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ +496aae: 1a01 260f |0047: const-string v1, "Are you sure that you wish to reset the messages retrieval state for " // string@0f26 │ │ +496ab2: 6e20 1d5d 1000 |0049: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +496ab8: 7210 8d55 0800 |004c: invoke-interface {v8}, Landroid/view/MenuItem;.getTitle:()Ljava/lang/CharSequence; // method@558d │ │ +496abe: 0c08 |004f: move-result-object v8 │ │ +496ac0: 7210 1b5c 0800 |0050: invoke-interface {v8}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ +496ac6: 0c08 |0053: move-result-object v8 │ │ +496ac8: 1a01 1a4d |0054: const-string v1, "Reset Retrieval State (" // string@4d1a │ │ +496acc: 6e30 ec5c 1806 |0056: invoke-virtual {v8, v1, v6}, Ljava/lang/String;.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; // method@5cec │ │ +496ad2: 0c08 |0059: move-result-object v8 │ │ +496ad4: 6e30 ec5c 5806 |005a: invoke-virtual {v8, v5, v6}, Ljava/lang/String;.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; // method@5cec │ │ +496ada: 0c08 |005d: move-result-object v8 │ │ +496adc: 6e20 1d5d 8000 |005e: invoke-virtual {v0, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +496ae2: 6e20 1d5d 4000 |0061: invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +496ae8: 6e10 285d 0000 |0064: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ +496aee: 0c08 |0067: move-result-object v8 │ │ +496af0: 7130 43d1 3708 |0068: invoke-static {v7, v3, v8}, Lorg/purple/smokestack/Miscellaneous;.showPromptDialog:(Landroid/content/Context;Landroid/content/DialogInterface$OnCancelListener;Ljava/lang/String;)V // method@d143 │ │ +496af6: 2900 0101 |006b: goto/16 016c // +0101 │ │ +496afa: 2200 fc0a |006d: new-instance v0, Ljava/lang/StringBuilder; // type@0afc │ │ +496afe: 7010 125d 0000 |006f: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ +496b04: 1a01 ec4a |0072: const-string v1, "Please provide a new name for " // string@4aec │ │ +496b08: 6e20 1d5d 1000 |0074: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +496b0e: 7210 8d55 0800 |0077: invoke-interface {v8}, Landroid/view/MenuItem;.getTitle:()Ljava/lang/CharSequence; // method@558d │ │ +496b14: 0c08 |007a: move-result-object v8 │ │ +496b16: 7210 1b5c 0800 |007b: invoke-interface {v8}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ +496b1c: 0c08 |007e: move-result-object v8 │ │ +496b1e: 1a01 2647 |007f: const-string v1, "New Name (" // string@4726 │ │ +496b22: 6e30 ec5c 1806 |0081: invoke-virtual {v8, v1, v6}, Ljava/lang/String;.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; // method@5cec │ │ +496b28: 0c08 |0084: move-result-object v8 │ │ +496b2a: 6e30 ec5c 5806 |0085: invoke-virtual {v8, v5, v6}, Ljava/lang/String;.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; // method@5cec │ │ +496b30: 0c08 |0088: move-result-object v8 │ │ +496b32: 6e20 1d5d 8000 |0089: invoke-virtual {v0, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +496b38: 1a08 d604 |008c: const-string v8, "." // string@04d6 │ │ +496b3c: 6e20 1d5d 8000 |008e: invoke-virtual {v0, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +496b42: 6e10 285d 0000 |0091: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ +496b48: 0c08 |0094: move-result-object v8 │ │ +496b4a: 1a00 f046 |0095: const-string v0, "Name" // string@46f0 │ │ +496b4e: 7140 44d1 3708 |0097: invoke-static {v7, v3, v8, v0}, Lorg/purple/smokestack/Miscellaneous;.showTextInputDialog:(Landroid/content/Context;Landroid/content/DialogInterface$OnCancelListener;Ljava/lang/String;Ljava/lang/String;)V // method@d144 │ │ +496b54: 2900 d200 |009a: goto/16 016c // +00d2 │ │ +496b58: 2200 fc0a |009c: new-instance v0, Ljava/lang/StringBuilder; // type@0afc │ │ +496b5c: 7010 125d 0000 |009e: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ +496b62: 1a01 240f |00a1: const-string v1, "Are you sure that you wish to delete the participant " // string@0f24 │ │ +496b66: 6e20 1d5d 1000 |00a3: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +496b6c: 7210 8d55 0800 |00a6: invoke-interface {v8}, Landroid/view/MenuItem;.getTitle:()Ljava/lang/CharSequence; // method@558d │ │ +496b72: 0c08 |00a9: move-result-object v8 │ │ +496b74: 7210 1b5c 0800 |00aa: invoke-interface {v8}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ +496b7a: 0c08 |00ad: move-result-object v8 │ │ +496b7c: 1a01 a318 |00ae: const-string v1, "Delete Participant (" // string@18a3 │ │ +496b80: 6e30 ec5c 1806 |00b0: invoke-virtual {v8, v1, v6}, Ljava/lang/String;.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; // method@5cec │ │ +496b86: 0c08 |00b3: move-result-object v8 │ │ +496b88: 6e30 ec5c 5806 |00b4: invoke-virtual {v8, v5, v6}, Ljava/lang/String;.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; // method@5cec │ │ +496b8e: 0c08 |00b7: move-result-object v8 │ │ +496b90: 6e20 1d5d 8000 |00b8: invoke-virtual {v0, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +496b96: 1a08 8709 |00bb: const-string v8, "? If confirmed, the associated Ozone will also be deleted." // string@0987 │ │ +496b9a: 6e20 1d5d 8000 |00bd: invoke-virtual {v0, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +496ba0: 6e10 285d 0000 |00c0: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ +496ba6: 0c08 |00c3: move-result-object v8 │ │ +496ba8: 7130 43d1 3708 |00c4: invoke-static {v7, v3, v8}, Lorg/purple/smokestack/Miscellaneous;.showPromptDialog:(Landroid/content/Context;Landroid/content/DialogInterface$OnCancelListener;Ljava/lang/String;)V // method@d143 │ │ +496bae: 2900 a500 |00c7: goto/16 016c // +00a5 │ │ +496bb2: 2200 fc0a |00c9: new-instance v0, Ljava/lang/StringBuilder; // type@0afc │ │ +496bb6: 7010 125d 0000 |00cb: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ +496bbc: 1a01 220f |00ce: const-string v1, "Are you sure that you wish to delete the Ozone " // string@0f22 │ │ +496bc0: 6e20 1d5d 1000 |00d0: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +496bc6: 7210 8d55 0800 |00d3: invoke-interface {v8}, Landroid/view/MenuItem;.getTitle:()Ljava/lang/CharSequence; // method@558d │ │ +496bcc: 0c08 |00d6: move-result-object v8 │ │ +496bce: 7210 1b5c 0800 |00d7: invoke-interface {v8}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ +496bd4: 0c08 |00da: move-result-object v8 │ │ +496bd6: 1a01 a218 |00db: const-string v1, "Delete Ozone (" // string@18a2 │ │ +496bda: 6e30 ec5c 1806 |00dd: invoke-virtual {v8, v1, v6}, Ljava/lang/String;.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; // method@5cec │ │ +496be0: 0c08 |00e0: move-result-object v8 │ │ +496be2: 6e30 ec5c 5806 |00e1: invoke-virtual {v8, v5, v6}, Ljava/lang/String;.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; // method@5cec │ │ +496be8: 0c08 |00e4: move-result-object v8 │ │ +496bea: 6e20 1d5d 8000 |00e5: invoke-virtual {v0, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +496bf0: 6e20 1d5d 4000 |00e8: invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +496bf6: 6e10 285d 0000 |00eb: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ +496bfc: 0c08 |00ee: move-result-object v8 │ │ +496bfe: 7130 43d1 3708 |00ef: invoke-static {v7, v3, v8}, Lorg/purple/smokestack/Miscellaneous;.showPromptDialog:(Landroid/content/Context;Landroid/content/DialogInterface$OnCancelListener;Ljava/lang/String;)V // method@d143 │ │ +496c04: 2900 7a00 |00f2: goto/16 016c // +007a │ │ +496c08: 2200 fc0a |00f4: new-instance v0, Ljava/lang/StringBuilder; // type@0afc │ │ +496c0c: 7010 125d 0000 |00f6: invoke-direct {v0}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ +496c12: 1a01 230f |00f9: const-string v1, "Are you sure that you wish to delete the messages of participant " // string@0f23 │ │ +496c16: 6e20 1d5d 1000 |00fb: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +496c1c: 7210 8d55 0800 |00fe: invoke-interface {v8}, Landroid/view/MenuItem;.getTitle:()Ljava/lang/CharSequence; // method@558d │ │ +496c22: 0c08 |0101: move-result-object v8 │ │ +496c24: 7210 1b5c 0800 |0102: invoke-interface {v8}, Ljava/lang/CharSequence;.toString:()Ljava/lang/String; // method@5c1b │ │ +496c2a: 0c08 |0105: move-result-object v8 │ │ +496c2c: 1a01 a118 |0106: const-string v1, "Delete Messages (" // string@18a1 │ │ +496c30: 6e30 ec5c 1806 |0108: invoke-virtual {v8, v1, v6}, Ljava/lang/String;.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; // method@5cec │ │ +496c36: 0c08 |010b: move-result-object v8 │ │ +496c38: 6e30 ec5c 5806 |010c: invoke-virtual {v8, v5, v6}, Ljava/lang/String;.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; // method@5cec │ │ +496c3e: 0c08 |010f: move-result-object v8 │ │ +496c40: 6e20 1d5d 8000 |0110: invoke-virtual {v0, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +496c46: 6e20 1d5d 4000 |0113: invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +496c4c: 6e10 285d 0000 |0116: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ +496c52: 0c08 |0119: move-result-object v8 │ │ +496c54: 7130 43d1 3708 |011a: invoke-static {v7, v3, v8}, Lorg/purple/smokestack/Miscellaneous;.showPromptDialog:(Landroid/content/Context;Landroid/content/DialogInterface$OnCancelListener;Ljava/lang/String;)V // method@d143 │ │ +496c5a: 284f |011d: goto 016c // +004f │ │ +496c5c: 5478 3269 |011e: iget-object v8, v7, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ +496c60: 6201 3c69 |0120: sget-object v1, Lorg/purple/smokestack/Settings;.s_cryptography:Lorg/purple/smokestack/Cryptography; // field@693c │ │ +496c64: 6e30 c4d0 1802 |0122: invoke-virtual {v8, v1, v2}, Lorg/purple/smokestack/Database;.readListeners:(Lorg/purple/smokestack/Cryptography;I)Ljava/util/ArrayList; // method@d0c4 │ │ +496c6a: 0c08 |0125: move-result-object v8 │ │ +496c6c: 5473 3269 |0126: iget-object v3, v7, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ +496c70: 7110 fa5c 0200 |0128: invoke-static {v2}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@5cfa │ │ +496c76: 0c04 |012b: move-result-object v4 │ │ +496c78: 1a05 658a |012c: const-string v5, "listeners" // string@8a65 │ │ +496c7c: 6e30 aed0 4305 |012e: invoke-virtual {v3, v4, v5}, Lorg/purple/smokestack/Database;.deleteEntry:(Ljava/lang/String;Ljava/lang/String;)Z // method@d0ae │ │ +496c82: 0a03 |0131: move-result v3 │ │ +496c84: 3803 3a00 |0132: if-eqz v3, 016c // +003a │ │ +496c88: 3808 2000 |0134: if-eqz v8, 0154 // +0020 │ │ +496c8c: 6e10 da5f 0800 |0136: invoke-virtual {v8}, Ljava/util/ArrayList;.isEmpty:()Z // method@5fda │ │ +496c92: 0a03 |0139: move-result v3 │ │ +496c94: 3903 1a00 |013a: if-nez v3, 0154 // +001a │ │ +496c98: 5473 3269 |013c: iget-object v3, v7, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ +496c9c: 6e20 d85f 0800 |013e: invoke-virtual {v8, v0}, Ljava/util/ArrayList;.get:(I)Ljava/lang/Object; // method@5fd8 │ │ +496ca2: 0c08 |0141: move-result-object v8 │ │ +496ca4: 1f08 a21e |0142: check-cast v8, Lorg/purple/smokestack/ListenerElement; // type@1ea2 │ │ +496ca8: 6e30 afd0 1308 |0144: invoke-virtual {v3, v1, v8}, Lorg/purple/smokestack/Database;.deleteOzone:(Lorg/purple/smokestack/Cryptography;Lorg/purple/smokestack/ListenerElement;)Z // method@d0af │ │ +496cae: 0a08 |0147: move-result v8 │ │ +496cb0: 3808 0c00 |0148: if-eqz v8, 0154 // +000c │ │ +496cb4: 7100 02d1 0000 |014a: invoke-static {}, Lorg/purple/smokestack/Kernel;.getInstance:()Lorg/purple/smokestack/Kernel; // method@d102 │ │ +496cba: 0c08 |014d: move-result-object v8 │ │ +496cbc: 6e10 07d1 0800 |014e: invoke-virtual {v8}, Lorg/purple/smokestack/Kernel;.populateOzones:()V // method@d107 │ │ +496cc2: 7010 0cd2 0700 |0151: invoke-direct {v7}, Lorg/purple/smokestack/Settings;.populateOzoneAddresses:()V // method@d20c │ │ +496cc8: 1408 6600 087f |0154: const v8, #float 1.80777e+38 // #7f080066 │ │ +496cce: 6e20 f6d1 8700 |0157: invoke-virtual {v7, v8}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +496cd4: 0c08 |015a: move-result-object v8 │ │ +496cd6: 1f08 980a |015b: check-cast v8, Landroid/widget/TableLayout; // type@0a98 │ │ +496cda: 6e20 f6d1 2700 |015d: invoke-virtual {v7, v2}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +496ce0: 0c00 |0160: move-result-object v0 │ │ +496ce2: 1f00 9a0a |0161: check-cast v0, Landroid/widget/TableRow; // type@0a9a │ │ +496ce6: 6e20 045b 0800 |0163: invoke-virtual {v8, v0}, Landroid/widget/TableLayout;.removeView:(Landroid/view/View;)V // method@5b04 │ │ +496cec: 2806 |0166: goto 016c // +0006 │ │ +496cee: 1a08 210f |0167: const-string v8, "Are you sure that you wish to delete all messages?" // string@0f21 │ │ +496cf2: 7130 43d1 3708 |0169: invoke-static {v7, v3, v8}, Lorg/purple/smokestack/Miscellaneous;.showPromptDialog:(Landroid/content/Context;Landroid/content/DialogInterface$OnCancelListener;Ljava/lang/String;)V // method@d143 │ │ +496cf8: 1218 |016c: const/4 v8, #int 1 // #1 │ │ +496cfa: 0f08 |016d: return v8 │ │ +496cfc: 0001 0800 0000 0000 5001 0000 0701 ... |016e: packed-switch-data (20 units) │ │ catches : (none) │ │ positions : │ │ 0x0004 line=2825 │ │ 0x0008 line=2826 │ │ 0x000c line=2832 │ │ 0x001c line=3054 │ │ 0x0026 line=3056 │ │ @@ -1717791,356 +1717790,356 @@ │ │ type : '(Landroid/os/Bundle;)V' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 36 │ │ ins : 2 │ │ outs : 26 │ │ insns size : 793 16-bit code units │ │ -497834: |[497834] org.purple.smokestack.Settings.onCreate:(Landroid/os/Bundle;)V │ │ -497844: 0800 2200 |0000: move-object/from16 v0, v34 │ │ -497848: 7502 1a3d 2200 |0002: invoke-super/range {v34, v35}, Landroid/support/v7/app/AppCompatActivity;.onCreate:(Landroid/os/Bundle;)V // method@3d1a │ │ -49784e: 7401 f9d1 2200 |0005: invoke-virtual/range {v34}, Lorg/purple/smokestack/Settings;.getApplicationContext:()Landroid/content/Context; // method@d1f9 │ │ -497854: 0c01 |0008: move-result-object v1 │ │ -497856: 7110 b5d0 0100 |0009: invoke-static {v1}, Lorg/purple/smokestack/Database;.getInstance:(Landroid/content/Context;)Lorg/purple/smokestack/Database; // method@d0b5 │ │ -49785c: 0c01 |000c: move-result-object v1 │ │ -49785e: 5b01 3269 |000d: iput-object v1, v0, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ -497862: 7100 43d2 0000 |000f: invoke-static {}, Lorg/purple/smokestack/State;.getInstance:()Lorg/purple/smokestack/State; // method@d243 │ │ -497868: 0c01 |0012: move-result-object v1 │ │ -49786a: 6e10 45d2 0100 |0013: invoke-virtual {v1}, Lorg/purple/smokestack/State;.isAuthenticated:()Z // method@d245 │ │ -497870: 0a01 |0016: move-result v1 │ │ -497872: 3901 0e00 |0017: if-nez v1, 0025 // +000e │ │ -497876: 5401 3269 |0019: iget-object v1, v0, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ -49787a: 6e10 a0d0 0100 |001b: invoke-virtual {v1}, Lorg/purple/smokestack/Database;.accountPrepared:()Z // method@d0a0 │ │ -497880: 0a01 |001e: move-result v1 │ │ -497882: 3801 0600 |001f: if-eqz v1, 0025 // +0006 │ │ -497886: 7601 15d2 2200 |0021: invoke-direct/range {v34}, Lorg/purple/smokestack/Settings;.showAuthenticateActivity:()V // method@d215 │ │ -49788c: 0e00 |0024: return-void │ │ -49788e: 7701 39d2 2200 |0025: invoke-static/range {v34}, Lorg/purple/smokestack/SmokeStackService;.startForegroundTask:(Landroid/content/Context;)V // method@d239 │ │ -497894: 1401 1c00 0a7f |0028: const v1, #float 1.83434e+38 // #7f0a001c │ │ -49789a: 6e20 14d2 1000 |002b: invoke-virtual {v0, v1}, Lorg/purple/smokestack/Settings;.setContentView:(I)V // method@d214 │ │ -4978a0: 2201 ec1e |002e: new-instance v1, Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager; // type@1eec │ │ -4978a4: 7020 cfd1 0100 |0030: invoke-direct {v1, v0}, Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager;.:(Landroid/content/Context;)V // method@d1cf │ │ -4978aa: 5b01 3569 |0033: iput-object v1, v0, Lorg/purple/smokestack/Settings;.m_listenersLayoutManager:Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager; // field@6935 │ │ -4978ae: 1212 |0035: const/4 v2, #int 1 // #1 │ │ -4978b0: 6e20 d1d1 2100 |0036: invoke-virtual {v1, v2}, Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager;.setOrientation:(I)V // method@d1d1 │ │ -4978b6: 5401 3569 |0039: iget-object v1, v0, Lorg/purple/smokestack/Settings;.m_listenersLayoutManager:Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager; // field@6935 │ │ -4978ba: 1203 |003b: const/4 v3, #int 0 // #0 │ │ -4978bc: 6e20 d2d1 3100 |003c: invoke-virtual {v1, v3}, Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager;.setStackFromEnd:(Z)V // method@d1d2 │ │ -4978c2: 7401 fdd1 2200 |003f: invoke-virtual/range {v34}, Lorg/purple/smokestack/Settings;.getSupportActionBar:()Landroid/support/v7/app/ActionBar; // method@d1fd │ │ -4978c8: 0c01 |0042: move-result-object v1 │ │ -4978ca: 1a04 7352 |0043: const-string v4, "SmokeStack | Settings" // string@5273 │ │ -4978ce: 6e20 373c 4100 |0045: invoke-virtual {v1, v4}, Landroid/support/v7/app/ActionBar;.setTitle:(Ljava/lang/CharSequence;)V // method@3c37 │ │ -4978d4: 1401 6700 087f |0048: const v1, #float 1.80777e+38 // #7f080067 │ │ -4978da: 6e20 f6d1 1000 |004b: invoke-virtual {v0, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4978e0: 0c01 |004e: move-result-object v1 │ │ -4978e2: 1f01 5209 |004f: check-cast v1, Landroid/support/v7/widget/RecyclerView; // type@0952 │ │ -4978e6: 5b01 3669 |0051: iput-object v1, v0, Lorg/purple/smokestack/Settings;.m_listenersRecyclerView:Landroid/support/v7/widget/RecyclerView; // field@6936 │ │ -4978ea: 6e20 354f 2100 |0053: invoke-virtual {v1, v2}, Landroid/support/v7/widget/RecyclerView;.setHasFixedSize:(Z)V // method@4f35 │ │ -4978f0: 7100 43d2 0000 |0056: invoke-static {}, Lorg/purple/smokestack/State;.getInstance:()Lorg/purple/smokestack/State; // method@d243 │ │ -4978f6: 0c01 |0059: move-result-object v1 │ │ -4978f8: 6e10 45d2 0100 |005a: invoke-virtual {v1}, Lorg/purple/smokestack/State;.isAuthenticated:()Z // method@d245 │ │ -4978fe: 0a01 |005d: move-result v1 │ │ -497900: 1404 1a00 087f |005e: const v4, #float 1.80776e+38 // #7f08001a │ │ -497906: 6e20 f6d1 4000 |0061: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -49790c: 0c04 |0064: move-result-object v4 │ │ -49790e: 1f04 640a |0065: check-cast v4, Landroid/widget/Button; // type@0a64 │ │ -497912: 6e20 fc58 1400 |0067: invoke-virtual {v4, v1}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ -497918: 1404 1b00 087f |006a: const v4, #float 1.80776e+38 // #7f08001b │ │ -49791e: 6e20 f6d1 4000 |006d: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497924: 0c04 |0070: move-result-object v4 │ │ -497926: 1f04 640a |0071: check-cast v4, Landroid/widget/Button; // type@0a64 │ │ -49792a: 6e20 fc58 1400 |0073: invoke-virtual {v4, v1}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ -497930: 1404 1c00 087f |0076: const v4, #float 1.80776e+38 // #7f08001c │ │ -497936: 6e20 f6d1 4000 |0079: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -49793c: 0c04 |007c: move-result-object v4 │ │ -49793e: 1f04 640a |007d: check-cast v4, Landroid/widget/Button; // type@0a64 │ │ -497942: 6e20 fc58 1400 |007f: invoke-virtual {v4, v1}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ -497948: 1404 9b00 087f |0082: const v4, #float 1.80778e+38 // #7f08009b │ │ -49794e: 6e20 f6d1 4000 |0085: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497954: 0c04 |0088: move-result-object v4 │ │ -497956: 1f04 640a |0089: check-cast v4, Landroid/widget/Button; // type@0a64 │ │ -49795a: 6e20 fc58 1400 |008b: invoke-virtual {v4, v1}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ -497960: 1404 9c00 087f |008e: const v4, #float 1.80778e+38 // #7f08009c │ │ -497966: 6e20 f6d1 4000 |0091: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -49796c: 0c04 |0094: move-result-object v4 │ │ -49796e: 1f04 640a |0095: check-cast v4, Landroid/widget/Button; // type@0a64 │ │ -497972: 6e20 fc58 1400 |0097: invoke-virtual {v4, v1}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ -497978: 1404 9d00 087f |009a: const v4, #float 1.80778e+38 // #7f08009d │ │ -49797e: 6e20 f6d1 4000 |009d: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497984: 0c04 |00a0: move-result-object v4 │ │ -497986: 1f04 640a |00a1: check-cast v4, Landroid/widget/Button; // type@0a64 │ │ -49798a: 6e20 fc58 1400 |00a3: invoke-virtual {v4, v1}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ -497990: 1404 9e00 087f |00a6: const v4, #float 1.80778e+38 // #7f08009e │ │ -497996: 6e20 f6d1 4000 |00a9: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -49799c: 0c04 |00ac: move-result-object v4 │ │ -49799e: 1f04 640a |00ad: check-cast v4, Landroid/widget/Button; // type@0a64 │ │ -4979a2: 6e20 fc58 1400 |00af: invoke-virtual {v4, v1}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ -4979a8: 1404 a000 087f |00b2: const v4, #float 1.80778e+38 // #7f0800a0 │ │ -4979ae: 6e20 f6d1 4000 |00b5: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4979b4: 0c04 |00b8: move-result-object v4 │ │ -4979b6: 1f04 640a |00b9: check-cast v4, Landroid/widget/Button; // type@0a64 │ │ -4979ba: 6e20 fc58 1400 |00bb: invoke-virtual {v4, v1}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ -4979c0: 1404 a100 087f |00be: const v4, #float 1.80778e+38 // #7f0800a1 │ │ -4979c6: 6e20 f6d1 4000 |00c1: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4979cc: 0c04 |00c4: move-result-object v4 │ │ -4979ce: 1f04 640a |00c5: check-cast v4, Landroid/widget/Button; // type@0a64 │ │ -4979d2: 6e20 fc58 1400 |00c7: invoke-virtual {v4, v1}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ -4979d8: 1404 a200 087f |00ca: const v4, #float 1.80778e+38 // #7f0800a2 │ │ -4979de: 6e20 f6d1 4000 |00cd: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4979e4: 0c04 |00d0: move-result-object v4 │ │ -4979e6: 1f04 640a |00d1: check-cast v4, Landroid/widget/Button; // type@0a64 │ │ -4979ea: 6e20 fc58 1400 |00d3: invoke-virtual {v4, v1}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ -4979f0: 1404 a600 087f |00d6: const v4, #float 1.80778e+38 // #7f0800a6 │ │ -4979f6: 6e20 f6d1 4000 |00d9: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4979fc: 0c04 |00dc: move-result-object v4 │ │ -4979fe: 1f04 640a |00dd: check-cast v4, Landroid/widget/Button; // type@0a64 │ │ -497a02: 6e20 fc58 1400 |00df: invoke-virtual {v4, v1}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ -497a08: 1404 bd00 087f |00e2: const v4, #float 1.80779e+38 // #7f0800bd │ │ -497a0e: 6e20 f6d1 4000 |00e5: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497a14: 0c04 |00e8: move-result-object v4 │ │ -497a16: 1f04 640a |00e9: check-cast v4, Landroid/widget/Button; // type@0a64 │ │ -497a1a: 1405 6100 077f |00eb: const v5, #float 1.79448e+38 // #7f070061 │ │ -497a20: 6e53 fb58 5433 |00ee: invoke-virtual {v4, v5, v3, v3, v3}, Landroid/widget/Button;.setCompoundDrawablesWithIntrinsicBounds:(IIII)V // method@58fb │ │ -497a26: 1404 6900 087f |00f1: const v4, #float 1.80777e+38 // #7f080069 │ │ -497a2c: 6e20 f6d1 4000 |00f4: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497a32: 0c04 |00f7: move-result-object v4 │ │ -497a34: 1f04 830a |00f8: check-cast v4, Landroid/widget/RadioButton; // type@0a83 │ │ -497a38: 6e20 775a 1400 |00fa: invoke-virtual {v4, v1}, Landroid/widget/RadioButton;.setEnabled:(Z)V // method@5a77 │ │ -497a3e: 1404 6a00 087f |00fd: const v4, #float 1.80777e+38 // #7f08006a │ │ -497a44: 6e20 f6d1 4000 |0100: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497a4a: 0c04 |0103: move-result-object v4 │ │ -497a4c: 1f04 830a |0104: check-cast v4, Landroid/widget/RadioButton; // type@0a83 │ │ -497a50: 6e20 775a 1400 |0106: invoke-virtual {v4, v1}, Landroid/widget/RadioButton;.setEnabled:(Z)V // method@5a77 │ │ -497a56: 1404 7900 087f |0109: const v4, #float 1.80777e+38 // #7f080079 │ │ -497a5c: 6e20 f6d1 4000 |010c: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497a62: 0c04 |010f: move-result-object v4 │ │ -497a64: 1f04 830a |0110: check-cast v4, Landroid/widget/RadioButton; // type@0a83 │ │ -497a68: 6e20 775a 1400 |0112: invoke-virtual {v4, v1}, Landroid/widget/RadioButton;.setEnabled:(Z)V // method@5a77 │ │ -497a6e: 1404 7a00 087f |0115: const v4, #float 1.80777e+38 // #7f08007a │ │ -497a74: 6e20 f6d1 4000 |0118: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497a7a: 0c04 |011b: move-result-object v4 │ │ -497a7c: 1f04 830a |011c: check-cast v4, Landroid/widget/RadioButton; // type@0a83 │ │ -497a80: 6e20 775a 1400 |011e: invoke-virtual {v4, v1}, Landroid/widget/RadioButton;.setEnabled:(Z)V // method@5a77 │ │ -497a86: 1404 9900 087f |0121: const v4, #float 1.80778e+38 // #7f080099 │ │ -497a8c: 6e20 f6d1 4000 |0124: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497a92: 0c04 |0127: move-result-object v4 │ │ -497a94: 1f04 900a |0128: check-cast v4, Landroid/widget/Spinner; // type@0a90 │ │ -497a98: 1a05 4f1e |012a: const-string v5, "HTTP" // string@1e4f │ │ -497a9c: 1a06 b04f |012c: const-string v6, "SOCKS" // string@4fb0 │ │ -497aa0: 2420 6b1f 6500 |012e: filled-new-array {v5, v6}, [Ljava/lang/String; // type@1f6b │ │ -497aa6: 0c05 |0131: move-result-object v5 │ │ -497aa8: 6e20 d45a 1400 |0132: invoke-virtual {v4, v1}, Landroid/widget/Spinner;.setEnabled:(Z)V // method@5ad4 │ │ -497aae: 2206 610a |0135: new-instance v6, Landroid/widget/ArrayAdapter; // type@0a61 │ │ -497ab2: 1407 0800 0901 |0137: const v7, #float 2.51629e-38 // #01090008 │ │ -497ab8: 7040 e758 0657 |013a: invoke-direct {v6, v0, v7, v5}, Landroid/widget/ArrayAdapter;.:(Landroid/content/Context;I[Ljava/lang/Object;)V // method@58e7 │ │ -497abe: 6e20 ce5a 6400 |013d: invoke-virtual {v4, v6}, Landroid/widget/Spinner;.setAdapter:(Landroid/widget/SpinnerAdapter;)V // method@5ace │ │ -497ac4: 1404 7e00 087f |0140: const v4, #float 1.80778e+38 // #7f08007e │ │ -497aca: 6e20 f6d1 4000 |0143: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497ad0: 0c04 |0146: move-result-object v4 │ │ -497ad2: 1f04 900a |0147: check-cast v4, Landroid/widget/Spinner; // type@0a90 │ │ -497ad6: 1a05 5c53 |0149: const-string v5, "TCP" // string@535c │ │ -497ada: 1a06 9756 |014b: const-string v6, "UDP" // string@5697 │ │ -497ade: 2420 6b1f 6500 |014d: filled-new-array {v5, v6}, [Ljava/lang/String; // type@1f6b │ │ -497ae4: 0c05 |0150: move-result-object v5 │ │ -497ae6: 6e20 d45a 1400 |0151: invoke-virtual {v4, v1}, Landroid/widget/Spinner;.setEnabled:(Z)V // method@5ad4 │ │ -497aec: 2206 610a |0154: new-instance v6, Landroid/widget/ArrayAdapter; // type@0a61 │ │ -497af0: 7040 e758 0657 |0156: invoke-direct {v6, v0, v7, v5}, Landroid/widget/ArrayAdapter;.:(Landroid/content/Context;I[Ljava/lang/Object;)V // method@58e7 │ │ -497af6: 6e20 ce5a 6400 |0159: invoke-virtual {v4, v6}, Landroid/widget/Spinner;.setAdapter:(Landroid/widget/SpinnerAdapter;)V // method@5ace │ │ -497afc: 1a08 d806 |015c: const-string v8, "1000" // string@06d8 │ │ -497b00: 1a09 d207 |015e: const-string v9, "2500" // string@07d2 │ │ -497b04: 1a0a 6908 |0160: const-string v10, "5000" // string@0869 │ │ -497b08: 1a0b b708 |0162: const-string v11, "7500" // string@08b7 │ │ -497b0c: 1a0c d906 |0164: const-string v12, "10000" // string@06d9 │ │ -497b10: 1a0d 1e07 |0166: const-string v13, "12500" // string@071e │ │ -497b14: 1a0e 3407 |0168: const-string v14, "15000" // string@0734 │ │ -497b18: 1a0f 4007 |016a: const-string v15, "17500" // string@0740 │ │ -497b1c: 1a10 bc07 |016c: const-string v16, "20000" // string@07bc │ │ -497b20: 1a11 d307 |016e: const-string v17, "25000" // string@07d3 │ │ -497b24: 1a12 f807 |0170: const-string v18, "30000" // string@07f8 │ │ -497b28: 1a13 2708 |0172: const-string v19, "35000" // string@0827 │ │ -497b2c: 1a14 4408 |0174: const-string v20, "40000" // string@0844 │ │ -497b30: 1a15 5808 |0176: const-string v21, "45000" // string@0858 │ │ -497b34: 1a16 6a08 |0178: const-string v22, "50000" // string@086a │ │ -497b38: 1a17 7f08 |017a: const-string v23, "55000" // string@087f │ │ -497b3c: 1a18 9308 |017c: const-string v24, "60000" // string@0893 │ │ -497b40: 1a19 9a08 |017e: const-string v25, "65000" // string@089a │ │ -497b44: 1a1a af08 |0180: const-string v26, "70000" // string@08af │ │ -497b48: 1a1b b808 |0182: const-string v27, "75000" // string@08b8 │ │ -497b4c: 1a1c de08 |0184: const-string v28, "85000" // string@08de │ │ -497b50: 1a1d da06 |0186: const-string v29, "100000" // string@06da │ │ -497b54: 1a1e 3507 |0188: const-string v30, "150000" // string@0735 │ │ -497b58: 1a1f d407 |018a: const-string v31, "250000" // string@07d4 │ │ -497b5c: 1a20 6b08 |018c: const-string v32, "500000" // string@086b │ │ -497b60: 1a21 db06 |018e: const-string v33, "1000000" // string@06db │ │ -497b64: 251a 6b1f 0800 |0190: filled-new-array/range {v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33}, [Ljava/lang/String; // type@1f6b │ │ -497b6a: 0c04 |0193: move-result-object v4 │ │ -497b6c: 2205 610a |0194: new-instance v5, Landroid/widget/ArrayAdapter; // type@0a61 │ │ -497b70: 7040 e758 0547 |0196: invoke-direct {v5, v0, v7, v4}, Landroid/widget/ArrayAdapter;.:(Landroid/content/Context;I[Ljava/lang/Object;)V // method@58e7 │ │ -497b76: 1404 5f00 087f |0199: const v4, #float 1.80777e+38 // #7f08005f │ │ -497b7c: 6e20 f6d1 4000 |019c: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497b82: 0c04 |019f: move-result-object v4 │ │ -497b84: 1f04 900a |01a0: check-cast v4, Landroid/widget/Spinner; // type@0a90 │ │ -497b88: 6e20 ce5a 5400 |01a2: invoke-virtual {v4, v5}, Landroid/widget/Spinner;.setAdapter:(Landroid/widget/SpinnerAdapter;)V // method@5ace │ │ -497b8e: 1404 6b00 087f |01a5: const v4, #float 1.80777e+38 // #7f08006b │ │ -497b94: 6e20 f6d1 4000 |01a8: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497b9a: 0c04 |01ab: move-result-object v4 │ │ -497b9c: 1f04 850a |01ac: check-cast v4, Landroid/widget/RadioGroup; // type@0a85 │ │ -497ba0: 2205 e01e |01ae: new-instance v5, Lorg/purple/smokestack/Settings$32; // type@1ee0 │ │ -497ba4: 7020 b6d1 0500 |01b0: invoke-direct {v5, v0}, Lorg/purple/smokestack/Settings$32;.:(Lorg/purple/smokestack/Settings;)V // method@d1b6 │ │ -497baa: 6e20 7a5a 5400 |01b3: invoke-virtual {v4, v5}, Landroid/widget/RadioGroup;.setOnCheckedChangeListener:(Landroid/widget/RadioGroup$OnCheckedChangeListener;)V // method@5a7a │ │ -497bb0: 1404 7b00 087f |01b6: const v4, #float 1.80778e+38 // #7f08007b │ │ -497bb6: 6e20 f6d1 4000 |01b9: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497bbc: 0c04 |01bc: move-result-object v4 │ │ -497bbe: 1f04 850a |01bd: check-cast v4, Landroid/widget/RadioGroup; // type@0a85 │ │ -497bc2: 2205 e11e |01bf: new-instance v5, Lorg/purple/smokestack/Settings$33; // type@1ee1 │ │ -497bc6: 7020 b8d1 0500 |01c1: invoke-direct {v5, v0}, Lorg/purple/smokestack/Settings$33;.:(Lorg/purple/smokestack/Settings;)V // method@d1b8 │ │ -497bcc: 6e20 7a5a 5400 |01c4: invoke-virtual {v4, v5}, Landroid/widget/RadioGroup;.setOnCheckedChangeListener:(Landroid/widget/RadioGroup$OnCheckedChangeListener;)V // method@5a7a │ │ -497bd2: 1404 0100 087f |01c7: const v4, #float 1.80775e+38 // #7f080001 │ │ -497bd8: 6e20 f6d1 4000 |01ca: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497bde: 0c04 |01cd: move-result-object v4 │ │ -497be0: 1f04 920a |01ce: check-cast v4, Landroid/widget/Switch; // type@0a92 │ │ -497be4: 6e20 e85a 1400 |01d0: invoke-virtual {v4, v1}, Landroid/widget/Switch;.setEnabled:(Z)V // method@5ae8 │ │ -497bea: 1404 8500 087f |01d3: const v4, #float 1.80778e+38 // #7f080085 │ │ -497bf0: 6e20 f6d1 4000 |01d6: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497bf6: 0c04 |01d9: move-result-object v4 │ │ -497bf8: 1f04 920a |01da: check-cast v4, Landroid/widget/Switch; // type@0a92 │ │ -497bfc: df05 0101 |01dc: xor-int/lit8 v5, v1, #int 1 // #01 │ │ -497c00: 6e20 e75a 5400 |01de: invoke-virtual {v4, v5}, Landroid/widget/Switch;.setChecked:(Z)V // method@5ae7 │ │ -497c06: 6e20 e85a 1400 |01e1: invoke-virtual {v4, v1}, Landroid/widget/Switch;.setEnabled:(Z)V // method@5ae8 │ │ -497c0c: 1405 b800 087f |01e4: const v5, #float 1.80779e+38 // #7f0800b8 │ │ -497c12: 6e20 f6d1 5000 |01e7: invoke-virtual {v0, v5}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497c18: 0c05 |01ea: move-result-object v5 │ │ -497c1a: 1f05 640a |01eb: check-cast v5, Landroid/widget/Button; // type@0a64 │ │ -497c1e: 6e10 e65a 0400 |01ed: invoke-virtual {v4}, Landroid/widget/Switch;.isChecked:()Z // method@5ae6 │ │ -497c24: 0a04 |01f0: move-result v4 │ │ -497c26: 6e20 fc58 4500 |01f1: invoke-virtual {v5, v4}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ -497c2c: 1404 9400 087f |01f4: const v4, #float 1.80778e+38 // #7f080094 │ │ -497c32: 6e20 f6d1 4000 |01f7: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497c38: 0c04 |01fa: move-result-object v4 │ │ -497c3a: 1f04 920a |01fb: check-cast v4, Landroid/widget/Switch; // type@0a92 │ │ -497c3e: 6e20 e85a 1400 |01fd: invoke-virtual {v4, v1}, Landroid/widget/Switch;.setEnabled:(Z)V // method@5ae8 │ │ -497c44: 1504 087f |0200: const/high16 v4, #int 2131230720 // #7f08 │ │ -497c48: 6e20 f6d1 4000 |0202: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497c4e: 0c04 |0205: move-result-object v4 │ │ -497c50: 1f04 9c0a |0206: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ -497c54: 7100 4fd0 0000 |0208: invoke-static {}, Lorg/purple/smokestack/About;.about:()Ljava/lang/String; // method@d04f │ │ -497c5a: 0c05 |020b: move-result-object v5 │ │ -497c5c: 6e20 525b 5400 |020c: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ -497c62: 1404 6c00 087f |020f: const v4, #float 1.80777e+38 // #7f08006c │ │ -497c68: 6e20 f6d1 4000 |0212: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497c6e: 0c04 |0215: move-result-object v4 │ │ -497c70: 1f04 9c0a |0216: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ -497c74: 2325 5e1f |0218: new-array v5, v2, [Landroid/text/InputFilter; // type@1f5e │ │ -497c78: 6206 3d69 |021a: sget-object v6, Lorg/purple/smokestack/Settings;.s_maximumClientsFilter:Landroid/text/InputFilter; // field@693d │ │ -497c7c: 4d06 0503 |021c: aput-object v6, v5, v3 │ │ -497c80: 6e20 3e5b 5400 |021e: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setFilters:([Landroid/text/InputFilter;)V // method@5b3e │ │ -497c86: 1a05 6608 |0221: const-string v5, "5" // string@0866 │ │ -497c8a: 6e20 525b 5400 |0223: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ -497c90: 1404 6e00 087f |0226: const v4, #float 1.80777e+38 // #7f08006e │ │ -497c96: 6e20 f6d1 4000 |0229: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497c9c: 0c04 |022c: move-result-object v4 │ │ -497c9e: 1f04 9c0a |022d: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ -497ca2: 6e20 3d5b 3400 |022f: invoke-virtual {v4, v3}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ -497ca8: 1404 7d00 087f |0232: const v4, #float 1.80778e+38 // #7f08007d │ │ -497cae: 6e20 f6d1 4000 |0235: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497cb4: 0c04 |0238: move-result-object v4 │ │ -497cb6: 1f04 9c0a |0239: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ -497cba: 6e20 3d5b 3400 |023b: invoke-virtual {v4, v3}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ -497cc0: 1404 6d00 087f |023e: const v4, #float 1.80777e+38 // #7f08006d │ │ -497cc6: 6e20 f6d1 4000 |0241: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497ccc: 0c04 |0244: move-result-object v4 │ │ -497cce: 1f04 9c0a |0245: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ -497cd2: 6e20 3d5b 1400 |0247: invoke-virtual {v4, v1}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ -497cd8: 2325 5e1f |024a: new-array v5, v2, [Landroid/text/InputFilter; // type@1f5e │ │ -497cdc: 6206 3e69 |024c: sget-object v6, Lorg/purple/smokestack/Settings;.s_portFilter:Landroid/text/InputFilter; // field@693e │ │ -497ce0: 4d06 0503 |024e: aput-object v6, v5, v3 │ │ -497ce4: 6e20 3e5b 5400 |0250: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setFilters:([Landroid/text/InputFilter;)V // method@5b3e │ │ -497cea: 1a05 5c08 |0253: const-string v5, "4710" // string@085c │ │ -497cee: 6e20 525b 5400 |0255: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ -497cf4: 1404 7c00 087f |0258: const v4, #float 1.80778e+38 // #7f08007c │ │ -497cfa: 6e20 f6d1 4000 |025b: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497d00: 0c04 |025e: move-result-object v4 │ │ -497d02: 1f04 9c0a |025f: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ -497d06: 1407 9700 087f |0261: const v7, #float 1.80778e+38 // #7f080097 │ │ -497d0c: 6e20 475b 7400 |0264: invoke-virtual {v4, v7}, Landroid/widget/TextView;.setNextFocusDownId:(I)V // method@5b47 │ │ -497d12: 6e20 3d5b 1400 |0267: invoke-virtual {v4, v1}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ -497d18: 2328 5e1f |026a: new-array v8, v2, [Landroid/text/InputFilter; // type@1f5e │ │ -497d1c: 4d06 0803 |026c: aput-object v6, v8, v3 │ │ -497d20: 6e20 3e5b 8400 |026e: invoke-virtual {v4, v8}, Landroid/widget/TextView;.setFilters:([Landroid/text/InputFilter;)V // method@5b3e │ │ -497d26: 6e20 525b 5400 |0271: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ -497d2c: 1404 6800 087f |0274: const v4, #float 1.80777e+38 // #7f080068 │ │ -497d32: 6e20 f6d1 4000 |0277: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497d38: 0c04 |027a: move-result-object v4 │ │ -497d3a: 1f04 9c0a |027b: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ -497d3e: 3801 0500 |027d: if-eqz v1, 0282 // +0005 │ │ -497d42: 6e10 305b 0400 |027f: invoke-virtual {v4}, Landroid/widget/TextView;.requestFocus:()Z // method@5b30 │ │ -497d48: 6e20 3d5b 1400 |0282: invoke-virtual {v4, v1}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ -497d4e: 1404 8600 087f |0285: const v4, #float 1.80778e+38 // #7f080086 │ │ -497d54: 6e20 f6d1 4000 |0288: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497d5a: 0c04 |028b: move-result-object v4 │ │ -497d5c: 1f04 9c0a |028c: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ -497d60: 6e20 3d5b 1400 |028e: invoke-virtual {v4, v1}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ -497d66: 1404 8c00 087f |0291: const v4, #float 1.80778e+38 // #7f08008c │ │ -497d6c: 6e20 f6d1 4000 |0294: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497d72: 0c04 |0297: move-result-object v4 │ │ -497d74: 1f04 9c0a |0298: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ -497d78: 6e20 3d5b 1400 |029a: invoke-virtual {v4, v1}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ -497d7e: 1404 8d00 087f |029d: const v4, #float 1.80778e+38 // #7f08008d │ │ -497d84: 6e20 f6d1 4000 |02a0: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497d8a: 0c04 |02a3: move-result-object v4 │ │ -497d8c: 1f04 9c0a |02a4: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ -497d90: 6e20 3d5b 1400 |02a6: invoke-virtual {v4, v1}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ -497d96: 1225 |02a9: const/4 v5, #int 2 // #2 │ │ -497d98: 2355 5e1f |02aa: new-array v5, v5, [Landroid/text/InputFilter; // type@1f5e │ │ -497d9c: 2208 bd09 |02ac: new-instance v8, Landroid/text/InputFilter$AllCaps; // type@09bd │ │ -497da0: 7010 5f54 0800 |02ae: invoke-direct {v8}, Landroid/text/InputFilter$AllCaps;.:()V // method@545f │ │ -497da6: 4d08 0503 |02b1: aput-object v8, v5, v3 │ │ -497daa: 6208 3f69 |02b3: sget-object v8, Lorg/purple/smokestack/Settings;.s_sipHashInputFilter:Landroid/text/InputFilter; // field@693f │ │ -497dae: 4d08 0502 |02b5: aput-object v8, v5, v2 │ │ -497db2: 6e20 3e5b 5400 |02b7: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setFilters:([Landroid/text/InputFilter;)V // method@5b3e │ │ -497db8: 1405 9000 0800 |02ba: const v5, #float 7.34886e-40 // #00080090 │ │ -497dbe: 6e20 435b 5400 |02bd: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setInputType:(I)V // method@5b43 │ │ -497dc4: 1404 9000 087f |02c0: const v4, #float 1.80778e+38 // #7f080090 │ │ -497dca: 6e20 f6d1 4000 |02c3: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497dd0: 0c04 |02c6: move-result-object v4 │ │ -497dd2: 1f04 9c0a |02c7: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ -497dd6: 3901 0500 |02c9: if-nez v1, 02ce // +0005 │ │ -497dda: 6e10 305b 0400 |02cb: invoke-virtual {v4}, Landroid/widget/TextView;.requestFocus:()Z // method@5b30 │ │ -497de0: 1a05 0000 |02ce: const-string v5, "" // string@0000 │ │ -497de4: 6e20 525b 5400 |02d0: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ -497dea: 1404 9100 087f |02d3: const v4, #float 1.80778e+38 // #7f080091 │ │ -497df0: 6e20 f6d1 4000 |02d6: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497df6: 0c04 |02d9: move-result-object v4 │ │ -497df8: 1f04 9c0a |02da: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ -497dfc: 6e20 525b 5400 |02dc: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ -497e02: 6e20 f6d1 7000 |02df: invoke-virtual {v0, v7}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497e08: 0c04 |02e2: move-result-object v4 │ │ -497e0a: 1f04 9c0a |02e3: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ -497e0e: 6e20 3d5b 1400 |02e5: invoke-virtual {v4, v1}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ -497e14: 1404 9800 087f |02e8: const v4, #float 1.80778e+38 // #7f080098 │ │ -497e1a: 6e20 f6d1 4000 |02eb: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497e20: 0c04 |02ee: move-result-object v4 │ │ -497e22: 1f04 9c0a |02ef: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ -497e26: 6e20 3d5b 1400 |02f1: invoke-virtual {v4, v1}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ -497e2c: 2321 5e1f |02f4: new-array v1, v2, [Landroid/text/InputFilter; // type@1f5e │ │ -497e30: 4d06 0103 |02f6: aput-object v6, v1, v3 │ │ -497e34: 6e20 3e5b 1400 |02f8: invoke-virtual {v4, v1}, Landroid/widget/TextView;.setFilters:([Landroid/text/InputFilter;)V // method@5b3e │ │ -497e3a: 2201 a41e |02fb: new-instance v1, Lorg/purple/smokestack/ListenersAdapter; // type@1ea4 │ │ -497e3e: 7020 19d1 0100 |02fd: invoke-direct {v1, v0}, Lorg/purple/smokestack/ListenersAdapter;.:(Lorg/purple/smokestack/Settings;)V // method@d119 │ │ -497e44: 5b01 3469 |0300: iput-object v1, v0, Lorg/purple/smokestack/Settings;.m_listenersAdapter:Landroid/support/v7/widget/RecyclerView$Adapter; // field@6934 │ │ -497e48: 2202 e21e |0302: new-instance v2, Lorg/purple/smokestack/Settings$34; // type@1ee2 │ │ -497e4c: 7020 bad1 0200 |0304: invoke-direct {v2, v0}, Lorg/purple/smokestack/Settings$34;.:(Lorg/purple/smokestack/Settings;)V // method@d1ba │ │ -497e52: 6e20 714c 2100 |0307: invoke-virtual {v1, v2}, Landroid/support/v7/widget/RecyclerView$Adapter;.registerAdapterDataObserver:(Landroid/support/v7/widget/RecyclerView$AdapterDataObserver;)V // method@4c71 │ │ -497e58: 5401 3669 |030a: iget-object v1, v0, Lorg/purple/smokestack/Settings;.m_listenersRecyclerView:Landroid/support/v7/widget/RecyclerView; // field@6936 │ │ -497e5c: 5402 3469 |030c: iget-object v2, v0, Lorg/purple/smokestack/Settings;.m_listenersAdapter:Landroid/support/v7/widget/RecyclerView$Adapter; // field@6934 │ │ -497e60: 6e20 2c4f 2100 |030e: invoke-virtual {v1, v2}, Landroid/support/v7/widget/RecyclerView;.setAdapter:(Landroid/support/v7/widget/RecyclerView$Adapter;)V // method@4f2c │ │ -497e66: 5401 3669 |0311: iget-object v1, v0, Lorg/purple/smokestack/Settings;.m_listenersRecyclerView:Landroid/support/v7/widget/RecyclerView; // field@6936 │ │ -497e6a: 5402 3569 |0313: iget-object v2, v0, Lorg/purple/smokestack/Settings;.m_listenersLayoutManager:Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager; // field@6935 │ │ -497e6e: 6e20 394f 2100 |0315: invoke-virtual {v1, v2}, Landroid/support/v7/widget/RecyclerView;.setLayoutManager:(Landroid/support/v7/widget/RecyclerView$LayoutManager;)V // method@4f39 │ │ -497e74: 0e00 |0318: return-void │ │ +497830: |[497830] org.purple.smokestack.Settings.onCreate:(Landroid/os/Bundle;)V │ │ +497840: 0800 2200 |0000: move-object/from16 v0, v34 │ │ +497844: 7502 1a3d 2200 |0002: invoke-super/range {v34, v35}, Landroid/support/v7/app/AppCompatActivity;.onCreate:(Landroid/os/Bundle;)V // method@3d1a │ │ +49784a: 7401 f9d1 2200 |0005: invoke-virtual/range {v34}, Lorg/purple/smokestack/Settings;.getApplicationContext:()Landroid/content/Context; // method@d1f9 │ │ +497850: 0c01 |0008: move-result-object v1 │ │ +497852: 7110 b5d0 0100 |0009: invoke-static {v1}, Lorg/purple/smokestack/Database;.getInstance:(Landroid/content/Context;)Lorg/purple/smokestack/Database; // method@d0b5 │ │ +497858: 0c01 |000c: move-result-object v1 │ │ +49785a: 5b01 3269 |000d: iput-object v1, v0, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ +49785e: 7100 43d2 0000 |000f: invoke-static {}, Lorg/purple/smokestack/State;.getInstance:()Lorg/purple/smokestack/State; // method@d243 │ │ +497864: 0c01 |0012: move-result-object v1 │ │ +497866: 6e10 45d2 0100 |0013: invoke-virtual {v1}, Lorg/purple/smokestack/State;.isAuthenticated:()Z // method@d245 │ │ +49786c: 0a01 |0016: move-result v1 │ │ +49786e: 3901 0e00 |0017: if-nez v1, 0025 // +000e │ │ +497872: 5401 3269 |0019: iget-object v1, v0, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ +497876: 6e10 a0d0 0100 |001b: invoke-virtual {v1}, Lorg/purple/smokestack/Database;.accountPrepared:()Z // method@d0a0 │ │ +49787c: 0a01 |001e: move-result v1 │ │ +49787e: 3801 0600 |001f: if-eqz v1, 0025 // +0006 │ │ +497882: 7601 15d2 2200 |0021: invoke-direct/range {v34}, Lorg/purple/smokestack/Settings;.showAuthenticateActivity:()V // method@d215 │ │ +497888: 0e00 |0024: return-void │ │ +49788a: 7701 39d2 2200 |0025: invoke-static/range {v34}, Lorg/purple/smokestack/SmokeStackService;.startForegroundTask:(Landroid/content/Context;)V // method@d239 │ │ +497890: 1401 1c00 0a7f |0028: const v1, #float 1.83434e+38 // #7f0a001c │ │ +497896: 6e20 14d2 1000 |002b: invoke-virtual {v0, v1}, Lorg/purple/smokestack/Settings;.setContentView:(I)V // method@d214 │ │ +49789c: 2201 ec1e |002e: new-instance v1, Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager; // type@1eec │ │ +4978a0: 7020 cfd1 0100 |0030: invoke-direct {v1, v0}, Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager;.:(Landroid/content/Context;)V // method@d1cf │ │ +4978a6: 5b01 3569 |0033: iput-object v1, v0, Lorg/purple/smokestack/Settings;.m_listenersLayoutManager:Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager; // field@6935 │ │ +4978aa: 1212 |0035: const/4 v2, #int 1 // #1 │ │ +4978ac: 6e20 d1d1 2100 |0036: invoke-virtual {v1, v2}, Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager;.setOrientation:(I)V // method@d1d1 │ │ +4978b2: 5401 3569 |0039: iget-object v1, v0, Lorg/purple/smokestack/Settings;.m_listenersLayoutManager:Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager; // field@6935 │ │ +4978b6: 1203 |003b: const/4 v3, #int 0 // #0 │ │ +4978b8: 6e20 d2d1 3100 |003c: invoke-virtual {v1, v3}, Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager;.setStackFromEnd:(Z)V // method@d1d2 │ │ +4978be: 7401 fdd1 2200 |003f: invoke-virtual/range {v34}, Lorg/purple/smokestack/Settings;.getSupportActionBar:()Landroid/support/v7/app/ActionBar; // method@d1fd │ │ +4978c4: 0c01 |0042: move-result-object v1 │ │ +4978c6: 1a04 7352 |0043: const-string v4, "SmokeStack | Settings" // string@5273 │ │ +4978ca: 6e20 373c 4100 |0045: invoke-virtual {v1, v4}, Landroid/support/v7/app/ActionBar;.setTitle:(Ljava/lang/CharSequence;)V // method@3c37 │ │ +4978d0: 1401 6700 087f |0048: const v1, #float 1.80777e+38 // #7f080067 │ │ +4978d6: 6e20 f6d1 1000 |004b: invoke-virtual {v0, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4978dc: 0c01 |004e: move-result-object v1 │ │ +4978de: 1f01 5209 |004f: check-cast v1, Landroid/support/v7/widget/RecyclerView; // type@0952 │ │ +4978e2: 5b01 3669 |0051: iput-object v1, v0, Lorg/purple/smokestack/Settings;.m_listenersRecyclerView:Landroid/support/v7/widget/RecyclerView; // field@6936 │ │ +4978e6: 6e20 354f 2100 |0053: invoke-virtual {v1, v2}, Landroid/support/v7/widget/RecyclerView;.setHasFixedSize:(Z)V // method@4f35 │ │ +4978ec: 7100 43d2 0000 |0056: invoke-static {}, Lorg/purple/smokestack/State;.getInstance:()Lorg/purple/smokestack/State; // method@d243 │ │ +4978f2: 0c01 |0059: move-result-object v1 │ │ +4978f4: 6e10 45d2 0100 |005a: invoke-virtual {v1}, Lorg/purple/smokestack/State;.isAuthenticated:()Z // method@d245 │ │ +4978fa: 0a01 |005d: move-result v1 │ │ +4978fc: 1404 1a00 087f |005e: const v4, #float 1.80776e+38 // #7f08001a │ │ +497902: 6e20 f6d1 4000 |0061: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497908: 0c04 |0064: move-result-object v4 │ │ +49790a: 1f04 640a |0065: check-cast v4, Landroid/widget/Button; // type@0a64 │ │ +49790e: 6e20 fc58 1400 |0067: invoke-virtual {v4, v1}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ +497914: 1404 1b00 087f |006a: const v4, #float 1.80776e+38 // #7f08001b │ │ +49791a: 6e20 f6d1 4000 |006d: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497920: 0c04 |0070: move-result-object v4 │ │ +497922: 1f04 640a |0071: check-cast v4, Landroid/widget/Button; // type@0a64 │ │ +497926: 6e20 fc58 1400 |0073: invoke-virtual {v4, v1}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ +49792c: 1404 1c00 087f |0076: const v4, #float 1.80776e+38 // #7f08001c │ │ +497932: 6e20 f6d1 4000 |0079: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497938: 0c04 |007c: move-result-object v4 │ │ +49793a: 1f04 640a |007d: check-cast v4, Landroid/widget/Button; // type@0a64 │ │ +49793e: 6e20 fc58 1400 |007f: invoke-virtual {v4, v1}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ +497944: 1404 9b00 087f |0082: const v4, #float 1.80778e+38 // #7f08009b │ │ +49794a: 6e20 f6d1 4000 |0085: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497950: 0c04 |0088: move-result-object v4 │ │ +497952: 1f04 640a |0089: check-cast v4, Landroid/widget/Button; // type@0a64 │ │ +497956: 6e20 fc58 1400 |008b: invoke-virtual {v4, v1}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ +49795c: 1404 9c00 087f |008e: const v4, #float 1.80778e+38 // #7f08009c │ │ +497962: 6e20 f6d1 4000 |0091: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497968: 0c04 |0094: move-result-object v4 │ │ +49796a: 1f04 640a |0095: check-cast v4, Landroid/widget/Button; // type@0a64 │ │ +49796e: 6e20 fc58 1400 |0097: invoke-virtual {v4, v1}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ +497974: 1404 9d00 087f |009a: const v4, #float 1.80778e+38 // #7f08009d │ │ +49797a: 6e20 f6d1 4000 |009d: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497980: 0c04 |00a0: move-result-object v4 │ │ +497982: 1f04 640a |00a1: check-cast v4, Landroid/widget/Button; // type@0a64 │ │ +497986: 6e20 fc58 1400 |00a3: invoke-virtual {v4, v1}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ +49798c: 1404 9e00 087f |00a6: const v4, #float 1.80778e+38 // #7f08009e │ │ +497992: 6e20 f6d1 4000 |00a9: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497998: 0c04 |00ac: move-result-object v4 │ │ +49799a: 1f04 640a |00ad: check-cast v4, Landroid/widget/Button; // type@0a64 │ │ +49799e: 6e20 fc58 1400 |00af: invoke-virtual {v4, v1}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ +4979a4: 1404 a000 087f |00b2: const v4, #float 1.80778e+38 // #7f0800a0 │ │ +4979aa: 6e20 f6d1 4000 |00b5: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4979b0: 0c04 |00b8: move-result-object v4 │ │ +4979b2: 1f04 640a |00b9: check-cast v4, Landroid/widget/Button; // type@0a64 │ │ +4979b6: 6e20 fc58 1400 |00bb: invoke-virtual {v4, v1}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ +4979bc: 1404 a100 087f |00be: const v4, #float 1.80778e+38 // #7f0800a1 │ │ +4979c2: 6e20 f6d1 4000 |00c1: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4979c8: 0c04 |00c4: move-result-object v4 │ │ +4979ca: 1f04 640a |00c5: check-cast v4, Landroid/widget/Button; // type@0a64 │ │ +4979ce: 6e20 fc58 1400 |00c7: invoke-virtual {v4, v1}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ +4979d4: 1404 a200 087f |00ca: const v4, #float 1.80778e+38 // #7f0800a2 │ │ +4979da: 6e20 f6d1 4000 |00cd: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4979e0: 0c04 |00d0: move-result-object v4 │ │ +4979e2: 1f04 640a |00d1: check-cast v4, Landroid/widget/Button; // type@0a64 │ │ +4979e6: 6e20 fc58 1400 |00d3: invoke-virtual {v4, v1}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ +4979ec: 1404 a600 087f |00d6: const v4, #float 1.80778e+38 // #7f0800a6 │ │ +4979f2: 6e20 f6d1 4000 |00d9: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4979f8: 0c04 |00dc: move-result-object v4 │ │ +4979fa: 1f04 640a |00dd: check-cast v4, Landroid/widget/Button; // type@0a64 │ │ +4979fe: 6e20 fc58 1400 |00df: invoke-virtual {v4, v1}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ +497a04: 1404 bd00 087f |00e2: const v4, #float 1.80779e+38 // #7f0800bd │ │ +497a0a: 6e20 f6d1 4000 |00e5: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497a10: 0c04 |00e8: move-result-object v4 │ │ +497a12: 1f04 640a |00e9: check-cast v4, Landroid/widget/Button; // type@0a64 │ │ +497a16: 1405 6100 077f |00eb: const v5, #float 1.79448e+38 // #7f070061 │ │ +497a1c: 6e53 fb58 5433 |00ee: invoke-virtual {v4, v5, v3, v3, v3}, Landroid/widget/Button;.setCompoundDrawablesWithIntrinsicBounds:(IIII)V // method@58fb │ │ +497a22: 1404 6900 087f |00f1: const v4, #float 1.80777e+38 // #7f080069 │ │ +497a28: 6e20 f6d1 4000 |00f4: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497a2e: 0c04 |00f7: move-result-object v4 │ │ +497a30: 1f04 830a |00f8: check-cast v4, Landroid/widget/RadioButton; // type@0a83 │ │ +497a34: 6e20 775a 1400 |00fa: invoke-virtual {v4, v1}, Landroid/widget/RadioButton;.setEnabled:(Z)V // method@5a77 │ │ +497a3a: 1404 6a00 087f |00fd: const v4, #float 1.80777e+38 // #7f08006a │ │ +497a40: 6e20 f6d1 4000 |0100: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497a46: 0c04 |0103: move-result-object v4 │ │ +497a48: 1f04 830a |0104: check-cast v4, Landroid/widget/RadioButton; // type@0a83 │ │ +497a4c: 6e20 775a 1400 |0106: invoke-virtual {v4, v1}, Landroid/widget/RadioButton;.setEnabled:(Z)V // method@5a77 │ │ +497a52: 1404 7900 087f |0109: const v4, #float 1.80777e+38 // #7f080079 │ │ +497a58: 6e20 f6d1 4000 |010c: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497a5e: 0c04 |010f: move-result-object v4 │ │ +497a60: 1f04 830a |0110: check-cast v4, Landroid/widget/RadioButton; // type@0a83 │ │ +497a64: 6e20 775a 1400 |0112: invoke-virtual {v4, v1}, Landroid/widget/RadioButton;.setEnabled:(Z)V // method@5a77 │ │ +497a6a: 1404 7a00 087f |0115: const v4, #float 1.80777e+38 // #7f08007a │ │ +497a70: 6e20 f6d1 4000 |0118: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497a76: 0c04 |011b: move-result-object v4 │ │ +497a78: 1f04 830a |011c: check-cast v4, Landroid/widget/RadioButton; // type@0a83 │ │ +497a7c: 6e20 775a 1400 |011e: invoke-virtual {v4, v1}, Landroid/widget/RadioButton;.setEnabled:(Z)V // method@5a77 │ │ +497a82: 1404 9900 087f |0121: const v4, #float 1.80778e+38 // #7f080099 │ │ +497a88: 6e20 f6d1 4000 |0124: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497a8e: 0c04 |0127: move-result-object v4 │ │ +497a90: 1f04 900a |0128: check-cast v4, Landroid/widget/Spinner; // type@0a90 │ │ +497a94: 1a05 4f1e |012a: const-string v5, "HTTP" // string@1e4f │ │ +497a98: 1a06 b04f |012c: const-string v6, "SOCKS" // string@4fb0 │ │ +497a9c: 2420 6b1f 6500 |012e: filled-new-array {v5, v6}, [Ljava/lang/String; // type@1f6b │ │ +497aa2: 0c05 |0131: move-result-object v5 │ │ +497aa4: 6e20 d45a 1400 |0132: invoke-virtual {v4, v1}, Landroid/widget/Spinner;.setEnabled:(Z)V // method@5ad4 │ │ +497aaa: 2206 610a |0135: new-instance v6, Landroid/widget/ArrayAdapter; // type@0a61 │ │ +497aae: 1407 0800 0901 |0137: const v7, #float 2.51629e-38 // #01090008 │ │ +497ab4: 7040 e758 0657 |013a: invoke-direct {v6, v0, v7, v5}, Landroid/widget/ArrayAdapter;.:(Landroid/content/Context;I[Ljava/lang/Object;)V // method@58e7 │ │ +497aba: 6e20 ce5a 6400 |013d: invoke-virtual {v4, v6}, Landroid/widget/Spinner;.setAdapter:(Landroid/widget/SpinnerAdapter;)V // method@5ace │ │ +497ac0: 1404 7e00 087f |0140: const v4, #float 1.80778e+38 // #7f08007e │ │ +497ac6: 6e20 f6d1 4000 |0143: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497acc: 0c04 |0146: move-result-object v4 │ │ +497ace: 1f04 900a |0147: check-cast v4, Landroid/widget/Spinner; // type@0a90 │ │ +497ad2: 1a05 5c53 |0149: const-string v5, "TCP" // string@535c │ │ +497ad6: 1a06 9756 |014b: const-string v6, "UDP" // string@5697 │ │ +497ada: 2420 6b1f 6500 |014d: filled-new-array {v5, v6}, [Ljava/lang/String; // type@1f6b │ │ +497ae0: 0c05 |0150: move-result-object v5 │ │ +497ae2: 6e20 d45a 1400 |0151: invoke-virtual {v4, v1}, Landroid/widget/Spinner;.setEnabled:(Z)V // method@5ad4 │ │ +497ae8: 2206 610a |0154: new-instance v6, Landroid/widget/ArrayAdapter; // type@0a61 │ │ +497aec: 7040 e758 0657 |0156: invoke-direct {v6, v0, v7, v5}, Landroid/widget/ArrayAdapter;.:(Landroid/content/Context;I[Ljava/lang/Object;)V // method@58e7 │ │ +497af2: 6e20 ce5a 6400 |0159: invoke-virtual {v4, v6}, Landroid/widget/Spinner;.setAdapter:(Landroid/widget/SpinnerAdapter;)V // method@5ace │ │ +497af8: 1a08 d806 |015c: const-string v8, "1000" // string@06d8 │ │ +497afc: 1a09 d207 |015e: const-string v9, "2500" // string@07d2 │ │ +497b00: 1a0a 6908 |0160: const-string v10, "5000" // string@0869 │ │ +497b04: 1a0b b708 |0162: const-string v11, "7500" // string@08b7 │ │ +497b08: 1a0c d906 |0164: const-string v12, "10000" // string@06d9 │ │ +497b0c: 1a0d 1e07 |0166: const-string v13, "12500" // string@071e │ │ +497b10: 1a0e 3407 |0168: const-string v14, "15000" // string@0734 │ │ +497b14: 1a0f 4007 |016a: const-string v15, "17500" // string@0740 │ │ +497b18: 1a10 bc07 |016c: const-string v16, "20000" // string@07bc │ │ +497b1c: 1a11 d307 |016e: const-string v17, "25000" // string@07d3 │ │ +497b20: 1a12 f807 |0170: const-string v18, "30000" // string@07f8 │ │ +497b24: 1a13 2708 |0172: const-string v19, "35000" // string@0827 │ │ +497b28: 1a14 4408 |0174: const-string v20, "40000" // string@0844 │ │ +497b2c: 1a15 5808 |0176: const-string v21, "45000" // string@0858 │ │ +497b30: 1a16 6a08 |0178: const-string v22, "50000" // string@086a │ │ +497b34: 1a17 7f08 |017a: const-string v23, "55000" // string@087f │ │ +497b38: 1a18 9308 |017c: const-string v24, "60000" // string@0893 │ │ +497b3c: 1a19 9a08 |017e: const-string v25, "65000" // string@089a │ │ +497b40: 1a1a af08 |0180: const-string v26, "70000" // string@08af │ │ +497b44: 1a1b b808 |0182: const-string v27, "75000" // string@08b8 │ │ +497b48: 1a1c de08 |0184: const-string v28, "85000" // string@08de │ │ +497b4c: 1a1d da06 |0186: const-string v29, "100000" // string@06da │ │ +497b50: 1a1e 3507 |0188: const-string v30, "150000" // string@0735 │ │ +497b54: 1a1f d407 |018a: const-string v31, "250000" // string@07d4 │ │ +497b58: 1a20 6b08 |018c: const-string v32, "500000" // string@086b │ │ +497b5c: 1a21 db06 |018e: const-string v33, "1000000" // string@06db │ │ +497b60: 251a 6b1f 0800 |0190: filled-new-array/range {v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33}, [Ljava/lang/String; // type@1f6b │ │ +497b66: 0c04 |0193: move-result-object v4 │ │ +497b68: 2205 610a |0194: new-instance v5, Landroid/widget/ArrayAdapter; // type@0a61 │ │ +497b6c: 7040 e758 0547 |0196: invoke-direct {v5, v0, v7, v4}, Landroid/widget/ArrayAdapter;.:(Landroid/content/Context;I[Ljava/lang/Object;)V // method@58e7 │ │ +497b72: 1404 5f00 087f |0199: const v4, #float 1.80777e+38 // #7f08005f │ │ +497b78: 6e20 f6d1 4000 |019c: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497b7e: 0c04 |019f: move-result-object v4 │ │ +497b80: 1f04 900a |01a0: check-cast v4, Landroid/widget/Spinner; // type@0a90 │ │ +497b84: 6e20 ce5a 5400 |01a2: invoke-virtual {v4, v5}, Landroid/widget/Spinner;.setAdapter:(Landroid/widget/SpinnerAdapter;)V // method@5ace │ │ +497b8a: 1404 6b00 087f |01a5: const v4, #float 1.80777e+38 // #7f08006b │ │ +497b90: 6e20 f6d1 4000 |01a8: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497b96: 0c04 |01ab: move-result-object v4 │ │ +497b98: 1f04 850a |01ac: check-cast v4, Landroid/widget/RadioGroup; // type@0a85 │ │ +497b9c: 2205 e01e |01ae: new-instance v5, Lorg/purple/smokestack/Settings$32; // type@1ee0 │ │ +497ba0: 7020 b6d1 0500 |01b0: invoke-direct {v5, v0}, Lorg/purple/smokestack/Settings$32;.:(Lorg/purple/smokestack/Settings;)V // method@d1b6 │ │ +497ba6: 6e20 7a5a 5400 |01b3: invoke-virtual {v4, v5}, Landroid/widget/RadioGroup;.setOnCheckedChangeListener:(Landroid/widget/RadioGroup$OnCheckedChangeListener;)V // method@5a7a │ │ +497bac: 1404 7b00 087f |01b6: const v4, #float 1.80778e+38 // #7f08007b │ │ +497bb2: 6e20 f6d1 4000 |01b9: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497bb8: 0c04 |01bc: move-result-object v4 │ │ +497bba: 1f04 850a |01bd: check-cast v4, Landroid/widget/RadioGroup; // type@0a85 │ │ +497bbe: 2205 e11e |01bf: new-instance v5, Lorg/purple/smokestack/Settings$33; // type@1ee1 │ │ +497bc2: 7020 b8d1 0500 |01c1: invoke-direct {v5, v0}, Lorg/purple/smokestack/Settings$33;.:(Lorg/purple/smokestack/Settings;)V // method@d1b8 │ │ +497bc8: 6e20 7a5a 5400 |01c4: invoke-virtual {v4, v5}, Landroid/widget/RadioGroup;.setOnCheckedChangeListener:(Landroid/widget/RadioGroup$OnCheckedChangeListener;)V // method@5a7a │ │ +497bce: 1404 0100 087f |01c7: const v4, #float 1.80775e+38 // #7f080001 │ │ +497bd4: 6e20 f6d1 4000 |01ca: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497bda: 0c04 |01cd: move-result-object v4 │ │ +497bdc: 1f04 920a |01ce: check-cast v4, Landroid/widget/Switch; // type@0a92 │ │ +497be0: 6e20 e85a 1400 |01d0: invoke-virtual {v4, v1}, Landroid/widget/Switch;.setEnabled:(Z)V // method@5ae8 │ │ +497be6: 1404 8500 087f |01d3: const v4, #float 1.80778e+38 // #7f080085 │ │ +497bec: 6e20 f6d1 4000 |01d6: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497bf2: 0c04 |01d9: move-result-object v4 │ │ +497bf4: 1f04 920a |01da: check-cast v4, Landroid/widget/Switch; // type@0a92 │ │ +497bf8: df05 0101 |01dc: xor-int/lit8 v5, v1, #int 1 // #01 │ │ +497bfc: 6e20 e75a 5400 |01de: invoke-virtual {v4, v5}, Landroid/widget/Switch;.setChecked:(Z)V // method@5ae7 │ │ +497c02: 6e20 e85a 1400 |01e1: invoke-virtual {v4, v1}, Landroid/widget/Switch;.setEnabled:(Z)V // method@5ae8 │ │ +497c08: 1405 b800 087f |01e4: const v5, #float 1.80779e+38 // #7f0800b8 │ │ +497c0e: 6e20 f6d1 5000 |01e7: invoke-virtual {v0, v5}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497c14: 0c05 |01ea: move-result-object v5 │ │ +497c16: 1f05 640a |01eb: check-cast v5, Landroid/widget/Button; // type@0a64 │ │ +497c1a: 6e10 e65a 0400 |01ed: invoke-virtual {v4}, Landroid/widget/Switch;.isChecked:()Z // method@5ae6 │ │ +497c20: 0a04 |01f0: move-result v4 │ │ +497c22: 6e20 fc58 4500 |01f1: invoke-virtual {v5, v4}, Landroid/widget/Button;.setEnabled:(Z)V // method@58fc │ │ +497c28: 1404 9400 087f |01f4: const v4, #float 1.80778e+38 // #7f080094 │ │ +497c2e: 6e20 f6d1 4000 |01f7: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497c34: 0c04 |01fa: move-result-object v4 │ │ +497c36: 1f04 920a |01fb: check-cast v4, Landroid/widget/Switch; // type@0a92 │ │ +497c3a: 6e20 e85a 1400 |01fd: invoke-virtual {v4, v1}, Landroid/widget/Switch;.setEnabled:(Z)V // method@5ae8 │ │ +497c40: 1504 087f |0200: const/high16 v4, #int 2131230720 // #7f08 │ │ +497c44: 6e20 f6d1 4000 |0202: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497c4a: 0c04 |0205: move-result-object v4 │ │ +497c4c: 1f04 9c0a |0206: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ +497c50: 7100 4fd0 0000 |0208: invoke-static {}, Lorg/purple/smokestack/About;.about:()Ljava/lang/String; // method@d04f │ │ +497c56: 0c05 |020b: move-result-object v5 │ │ +497c58: 6e20 525b 5400 |020c: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ +497c5e: 1404 6c00 087f |020f: const v4, #float 1.80777e+38 // #7f08006c │ │ +497c64: 6e20 f6d1 4000 |0212: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497c6a: 0c04 |0215: move-result-object v4 │ │ +497c6c: 1f04 9c0a |0216: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ +497c70: 2325 5e1f |0218: new-array v5, v2, [Landroid/text/InputFilter; // type@1f5e │ │ +497c74: 6206 3d69 |021a: sget-object v6, Lorg/purple/smokestack/Settings;.s_maximumClientsFilter:Landroid/text/InputFilter; // field@693d │ │ +497c78: 4d06 0503 |021c: aput-object v6, v5, v3 │ │ +497c7c: 6e20 3e5b 5400 |021e: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setFilters:([Landroid/text/InputFilter;)V // method@5b3e │ │ +497c82: 1a05 6608 |0221: const-string v5, "5" // string@0866 │ │ +497c86: 6e20 525b 5400 |0223: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ +497c8c: 1404 6e00 087f |0226: const v4, #float 1.80777e+38 // #7f08006e │ │ +497c92: 6e20 f6d1 4000 |0229: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497c98: 0c04 |022c: move-result-object v4 │ │ +497c9a: 1f04 9c0a |022d: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ +497c9e: 6e20 3d5b 3400 |022f: invoke-virtual {v4, v3}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ +497ca4: 1404 7d00 087f |0232: const v4, #float 1.80778e+38 // #7f08007d │ │ +497caa: 6e20 f6d1 4000 |0235: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497cb0: 0c04 |0238: move-result-object v4 │ │ +497cb2: 1f04 9c0a |0239: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ +497cb6: 6e20 3d5b 3400 |023b: invoke-virtual {v4, v3}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ +497cbc: 1404 6d00 087f |023e: const v4, #float 1.80777e+38 // #7f08006d │ │ +497cc2: 6e20 f6d1 4000 |0241: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497cc8: 0c04 |0244: move-result-object v4 │ │ +497cca: 1f04 9c0a |0245: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ +497cce: 6e20 3d5b 1400 |0247: invoke-virtual {v4, v1}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ +497cd4: 2325 5e1f |024a: new-array v5, v2, [Landroid/text/InputFilter; // type@1f5e │ │ +497cd8: 6206 3e69 |024c: sget-object v6, Lorg/purple/smokestack/Settings;.s_portFilter:Landroid/text/InputFilter; // field@693e │ │ +497cdc: 4d06 0503 |024e: aput-object v6, v5, v3 │ │ +497ce0: 6e20 3e5b 5400 |0250: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setFilters:([Landroid/text/InputFilter;)V // method@5b3e │ │ +497ce6: 1a05 5c08 |0253: const-string v5, "4710" // string@085c │ │ +497cea: 6e20 525b 5400 |0255: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ +497cf0: 1404 7c00 087f |0258: const v4, #float 1.80778e+38 // #7f08007c │ │ +497cf6: 6e20 f6d1 4000 |025b: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497cfc: 0c04 |025e: move-result-object v4 │ │ +497cfe: 1f04 9c0a |025f: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ +497d02: 1407 9700 087f |0261: const v7, #float 1.80778e+38 // #7f080097 │ │ +497d08: 6e20 475b 7400 |0264: invoke-virtual {v4, v7}, Landroid/widget/TextView;.setNextFocusDownId:(I)V // method@5b47 │ │ +497d0e: 6e20 3d5b 1400 |0267: invoke-virtual {v4, v1}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ +497d14: 2328 5e1f |026a: new-array v8, v2, [Landroid/text/InputFilter; // type@1f5e │ │ +497d18: 4d06 0803 |026c: aput-object v6, v8, v3 │ │ +497d1c: 6e20 3e5b 8400 |026e: invoke-virtual {v4, v8}, Landroid/widget/TextView;.setFilters:([Landroid/text/InputFilter;)V // method@5b3e │ │ +497d22: 6e20 525b 5400 |0271: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ +497d28: 1404 6800 087f |0274: const v4, #float 1.80777e+38 // #7f080068 │ │ +497d2e: 6e20 f6d1 4000 |0277: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497d34: 0c04 |027a: move-result-object v4 │ │ +497d36: 1f04 9c0a |027b: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ +497d3a: 3801 0500 |027d: if-eqz v1, 0282 // +0005 │ │ +497d3e: 6e10 305b 0400 |027f: invoke-virtual {v4}, Landroid/widget/TextView;.requestFocus:()Z // method@5b30 │ │ +497d44: 6e20 3d5b 1400 |0282: invoke-virtual {v4, v1}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ +497d4a: 1404 8600 087f |0285: const v4, #float 1.80778e+38 // #7f080086 │ │ +497d50: 6e20 f6d1 4000 |0288: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497d56: 0c04 |028b: move-result-object v4 │ │ +497d58: 1f04 9c0a |028c: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ +497d5c: 6e20 3d5b 1400 |028e: invoke-virtual {v4, v1}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ +497d62: 1404 8c00 087f |0291: const v4, #float 1.80778e+38 // #7f08008c │ │ +497d68: 6e20 f6d1 4000 |0294: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497d6e: 0c04 |0297: move-result-object v4 │ │ +497d70: 1f04 9c0a |0298: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ +497d74: 6e20 3d5b 1400 |029a: invoke-virtual {v4, v1}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ +497d7a: 1404 8d00 087f |029d: const v4, #float 1.80778e+38 // #7f08008d │ │ +497d80: 6e20 f6d1 4000 |02a0: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497d86: 0c04 |02a3: move-result-object v4 │ │ +497d88: 1f04 9c0a |02a4: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ +497d8c: 6e20 3d5b 1400 |02a6: invoke-virtual {v4, v1}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ +497d92: 1225 |02a9: const/4 v5, #int 2 // #2 │ │ +497d94: 2355 5e1f |02aa: new-array v5, v5, [Landroid/text/InputFilter; // type@1f5e │ │ +497d98: 2208 bd09 |02ac: new-instance v8, Landroid/text/InputFilter$AllCaps; // type@09bd │ │ +497d9c: 7010 5f54 0800 |02ae: invoke-direct {v8}, Landroid/text/InputFilter$AllCaps;.:()V // method@545f │ │ +497da2: 4d08 0503 |02b1: aput-object v8, v5, v3 │ │ +497da6: 6208 3f69 |02b3: sget-object v8, Lorg/purple/smokestack/Settings;.s_sipHashInputFilter:Landroid/text/InputFilter; // field@693f │ │ +497daa: 4d08 0502 |02b5: aput-object v8, v5, v2 │ │ +497dae: 6e20 3e5b 5400 |02b7: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setFilters:([Landroid/text/InputFilter;)V // method@5b3e │ │ +497db4: 1405 9000 0800 |02ba: const v5, #float 7.34886e-40 // #00080090 │ │ +497dba: 6e20 435b 5400 |02bd: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setInputType:(I)V // method@5b43 │ │ +497dc0: 1404 9000 087f |02c0: const v4, #float 1.80778e+38 // #7f080090 │ │ +497dc6: 6e20 f6d1 4000 |02c3: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497dcc: 0c04 |02c6: move-result-object v4 │ │ +497dce: 1f04 9c0a |02c7: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ +497dd2: 3901 0500 |02c9: if-nez v1, 02ce // +0005 │ │ +497dd6: 6e10 305b 0400 |02cb: invoke-virtual {v4}, Landroid/widget/TextView;.requestFocus:()Z // method@5b30 │ │ +497ddc: 1a05 0000 |02ce: const-string v5, "" // string@0000 │ │ +497de0: 6e20 525b 5400 |02d0: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ +497de6: 1404 9100 087f |02d3: const v4, #float 1.80778e+38 // #7f080091 │ │ +497dec: 6e20 f6d1 4000 |02d6: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497df2: 0c04 |02d9: move-result-object v4 │ │ +497df4: 1f04 9c0a |02da: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ +497df8: 6e20 525b 5400 |02dc: invoke-virtual {v4, v5}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ +497dfe: 6e20 f6d1 7000 |02df: invoke-virtual {v0, v7}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497e04: 0c04 |02e2: move-result-object v4 │ │ +497e06: 1f04 9c0a |02e3: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ +497e0a: 6e20 3d5b 1400 |02e5: invoke-virtual {v4, v1}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ +497e10: 1404 9800 087f |02e8: const v4, #float 1.80778e+38 // #7f080098 │ │ +497e16: 6e20 f6d1 4000 |02eb: invoke-virtual {v0, v4}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497e1c: 0c04 |02ee: move-result-object v4 │ │ +497e1e: 1f04 9c0a |02ef: check-cast v4, Landroid/widget/TextView; // type@0a9c │ │ +497e22: 6e20 3d5b 1400 |02f1: invoke-virtual {v4, v1}, Landroid/widget/TextView;.setEnabled:(Z)V // method@5b3d │ │ +497e28: 2321 5e1f |02f4: new-array v1, v2, [Landroid/text/InputFilter; // type@1f5e │ │ +497e2c: 4d06 0103 |02f6: aput-object v6, v1, v3 │ │ +497e30: 6e20 3e5b 1400 |02f8: invoke-virtual {v4, v1}, Landroid/widget/TextView;.setFilters:([Landroid/text/InputFilter;)V // method@5b3e │ │ +497e36: 2201 a41e |02fb: new-instance v1, Lorg/purple/smokestack/ListenersAdapter; // type@1ea4 │ │ +497e3a: 7020 19d1 0100 |02fd: invoke-direct {v1, v0}, Lorg/purple/smokestack/ListenersAdapter;.:(Lorg/purple/smokestack/Settings;)V // method@d119 │ │ +497e40: 5b01 3469 |0300: iput-object v1, v0, Lorg/purple/smokestack/Settings;.m_listenersAdapter:Landroid/support/v7/widget/RecyclerView$Adapter; // field@6934 │ │ +497e44: 2202 e21e |0302: new-instance v2, Lorg/purple/smokestack/Settings$34; // type@1ee2 │ │ +497e48: 7020 bad1 0200 |0304: invoke-direct {v2, v0}, Lorg/purple/smokestack/Settings$34;.:(Lorg/purple/smokestack/Settings;)V // method@d1ba │ │ +497e4e: 6e20 714c 2100 |0307: invoke-virtual {v1, v2}, Landroid/support/v7/widget/RecyclerView$Adapter;.registerAdapterDataObserver:(Landroid/support/v7/widget/RecyclerView$AdapterDataObserver;)V // method@4c71 │ │ +497e54: 5401 3669 |030a: iget-object v1, v0, Lorg/purple/smokestack/Settings;.m_listenersRecyclerView:Landroid/support/v7/widget/RecyclerView; // field@6936 │ │ +497e58: 5402 3469 |030c: iget-object v2, v0, Lorg/purple/smokestack/Settings;.m_listenersAdapter:Landroid/support/v7/widget/RecyclerView$Adapter; // field@6934 │ │ +497e5c: 6e20 2c4f 2100 |030e: invoke-virtual {v1, v2}, Landroid/support/v7/widget/RecyclerView;.setAdapter:(Landroid/support/v7/widget/RecyclerView$Adapter;)V // method@4f2c │ │ +497e62: 5401 3669 |0311: iget-object v1, v0, Lorg/purple/smokestack/Settings;.m_listenersRecyclerView:Landroid/support/v7/widget/RecyclerView; // field@6936 │ │ +497e66: 5402 3569 |0313: iget-object v2, v0, Lorg/purple/smokestack/Settings;.m_listenersLayoutManager:Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager; // field@6935 │ │ +497e6a: 6e20 394f 2100 |0315: invoke-virtual {v1, v2}, Landroid/support/v7/widget/RecyclerView;.setLayoutManager:(Landroid/support/v7/widget/RecyclerView$LayoutManager;)V // method@4f39 │ │ +497e70: 0e00 |0318: return-void │ │ catches : 1 │ │ 0x003f - 0x0048 │ │ Ljava/lang/Exception; -> 0x0048 │ │ positions : │ │ 0x0002 line=2391 │ │ 0x0005 line=2392 │ │ 0x000f line=2394 │ │ @@ -1718269,130 +1718268,130 @@ │ │ type : '(Landroid/view/ContextMenu;Landroid/view/View;Landroid/view/ContextMenu$ContextMenuInfo;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 10 │ │ ins : 4 │ │ outs : 5 │ │ insns size : 258 16-bit code units │ │ -497e88: |[497e88] org.purple.smokestack.Settings.onCreateContextMenu:(Landroid/view/ContextMenu;Landroid/view/View;Landroid/view/ContextMenu$ContextMenuInfo;)V │ │ -497e98: 3908 0300 |0000: if-nez v8, 0003 // +0003 │ │ -497e9c: 0e00 |0002: return-void │ │ -497e9e: 6e10 3a56 0800 |0003: invoke-virtual {v8}, Landroid/view/View;.getTag:()Ljava/lang/Object; // method@563a │ │ -497ea4: 0c00 |0006: move-result-object v0 │ │ -497ea6: 3800 fa00 |0007: if-eqz v0, 0101 // +00fa │ │ -497eaa: 6f40 1b3d 7698 |0009: invoke-super {v6, v7, v8, v9}, Landroid/support/v7/app/AppCompatActivity;.onCreateContextMenu:(Landroid/view/ContextMenu;Landroid/view/View;Landroid/view/ContextMenu$ContextMenuInfo;)V // method@3d1b │ │ -497eb0: 6e10 2c56 0800 |000c: invoke-virtual {v8}, Landroid/view/View;.getParent:()Landroid/view/ViewParent; // method@562c │ │ -497eb6: 0c09 |000f: move-result-object v9 │ │ -497eb8: 7210 4d57 0900 |0010: invoke-interface {v9}, Landroid/view/ViewParent;.getParent:()Landroid/view/ViewParent; // method@574d │ │ -497ebe: 0c09 |0013: move-result-object v9 │ │ -497ec0: 1401 6600 087f |0014: const v1, #float 1.80777e+38 // #7f080066 │ │ -497ec6: 6e20 f6d1 1600 |0017: invoke-virtual {v6, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497ecc: 0c01 |001a: move-result-object v1 │ │ -497ece: 1a02 1f04 |001b: const-string v2, ")" // string@041f │ │ -497ed2: 1203 |001d: const/4 v3, #int 0 // #0 │ │ -497ed4: 3319 3c00 |001e: if-ne v9, v1, 005a // +003c │ │ -497ed8: 1219 |0020: const/4 v9, #int 1 // #1 │ │ -497eda: 6e10 1256 0800 |0021: invoke-virtual {v8}, Landroid/view/View;.getId:()I // method@5612 │ │ -497ee0: 0a01 |0024: move-result v1 │ │ -497ee2: 2204 fc0a |0025: new-instance v4, Ljava/lang/StringBuilder; // type@0afc │ │ -497ee6: 7010 125d 0400 |0027: invoke-direct {v4}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ -497eec: 1a05 a018 |002a: const-string v5, "Delete Listener (" // string@18a0 │ │ -497ef0: 6e20 1d5d 5400 |002c: invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -497ef6: 6e20 1c5d 0400 |002f: invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@5d1c │ │ -497efc: 6e20 1d5d 2400 |0032: invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -497f02: 6e10 285d 0400 |0035: invoke-virtual {v4}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ -497f08: 0c04 |0038: move-result-object v4 │ │ -497f0a: 7254 2e55 9731 |0039: invoke-interface {v7, v9, v1, v3, v4}, Landroid/view/ContextMenu;.add:(IIILjava/lang/CharSequence;)Landroid/view/MenuItem; // method@552e │ │ -497f10: 1279 |003c: const/4 v9, #int 7 // #7 │ │ -497f12: 6e10 1256 0800 |003d: invoke-virtual {v8}, Landroid/view/View;.getId:()I // method@5612 │ │ -497f18: 0a08 |0040: move-result v8 │ │ -497f1a: 2201 fc0a |0041: new-instance v1, Ljava/lang/StringBuilder; // type@0afc │ │ -497f1e: 7010 125d 0100 |0043: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ -497f24: 1a04 1056 |0046: const-string v4, "Toggle Privacy (" // string@5610 │ │ -497f28: 6e20 1d5d 4100 |0048: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -497f2e: 6e20 1c5d 0100 |004b: invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@5d1c │ │ -497f34: 6e20 1d5d 2100 |004e: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -497f3a: 6e10 285d 0100 |0051: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ -497f40: 0c00 |0054: move-result-object v0 │ │ -497f42: 7250 2e55 9738 |0055: invoke-interface {v7, v9, v8, v3, v0}, Landroid/view/ContextMenu;.add:(IIILjava/lang/CharSequence;)Landroid/view/MenuItem; // method@552e │ │ -497f48: 2900 a900 |0058: goto/16 0101 // +00a9 │ │ -497f4c: 6e10 2c56 0800 |005a: invoke-virtual {v8}, Landroid/view/View;.getParent:()Landroid/view/ViewParent; // method@562c │ │ -497f52: 0c09 |005d: move-result-object v9 │ │ -497f54: 7210 4d57 0900 |005e: invoke-interface {v9}, Landroid/view/ViewParent;.getParent:()Landroid/view/ViewParent; // method@574d │ │ -497f5a: 0c09 |0061: move-result-object v9 │ │ -497f5c: 1401 8700 087f |0062: const v1, #float 1.80778e+38 // #7f080087 │ │ -497f62: 6e20 f6d1 1600 |0065: invoke-virtual {v6, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -497f68: 0c01 |0068: move-result-object v1 │ │ -497f6a: 3319 1f00 |0069: if-ne v9, v1, 0088 // +001f │ │ -497f6e: 1239 |006b: const/4 v9, #int 3 // #3 │ │ -497f70: 6e10 1256 0800 |006c: invoke-virtual {v8}, Landroid/view/View;.getId:()I // method@5612 │ │ -497f76: 0a08 |006f: move-result v8 │ │ -497f78: 2201 fc0a |0070: new-instance v1, Ljava/lang/StringBuilder; // type@0afc │ │ -497f7c: 7010 125d 0100 |0072: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ -497f82: 1a04 a218 |0075: const-string v4, "Delete Ozone (" // string@18a2 │ │ -497f86: 6e20 1d5d 4100 |0077: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -497f8c: 6e20 1c5d 0100 |007a: invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@5d1c │ │ -497f92: 6e20 1d5d 2100 |007d: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -497f98: 6e10 285d 0100 |0080: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ -497f9e: 0c00 |0083: move-result-object v0 │ │ -497fa0: 7250 2e55 9738 |0084: invoke-interface {v7, v9, v8, v3, v0}, Landroid/view/ContextMenu;.add:(IIILjava/lang/CharSequence;)Landroid/view/MenuItem; // method@552e │ │ -497fa6: 287a |0087: goto 0101 // +007a │ │ -497fa8: 6e10 1256 0800 |0088: invoke-virtual {v8}, Landroid/view/View;.getId:()I // method@5612 │ │ -497fae: 0a09 |008b: move-result v9 │ │ -497fb0: 1a01 9f18 |008c: const-string v1, "Delete All Messages" // string@189f │ │ -497fb4: 7251 2e55 3739 |008e: invoke-interface {v7, v3, v9, v3, v1}, Landroid/view/ContextMenu;.add:(IIILjava/lang/CharSequence;)Landroid/view/MenuItem; // method@552e │ │ -497fba: 1229 |0091: const/4 v9, #int 2 // #2 │ │ -497fbc: 6e10 1256 0800 |0092: invoke-virtual {v8}, Landroid/view/View;.getId:()I // method@5612 │ │ -497fc2: 0a01 |0095: move-result v1 │ │ -497fc4: 2204 fc0a |0096: new-instance v4, Ljava/lang/StringBuilder; // type@0afc │ │ -497fc8: 7010 125d 0400 |0098: invoke-direct {v4}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ -497fce: 1a05 a118 |009b: const-string v5, "Delete Messages (" // string@18a1 │ │ -497fd2: 6e20 1d5d 5400 |009d: invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -497fd8: 6e20 1c5d 0400 |00a0: invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@5d1c │ │ -497fde: 6e20 1d5d 2400 |00a3: invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -497fe4: 6e10 285d 0400 |00a6: invoke-virtual {v4}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ -497fea: 0c04 |00a9: move-result-object v4 │ │ -497fec: 7254 2e55 9731 |00aa: invoke-interface {v7, v9, v1, v3, v4}, Landroid/view/ContextMenu;.add:(IIILjava/lang/CharSequence;)Landroid/view/MenuItem; // method@552e │ │ -497ff2: 1249 |00ad: const/4 v9, #int 4 // #4 │ │ -497ff4: 6e10 1256 0800 |00ae: invoke-virtual {v8}, Landroid/view/View;.getId:()I // method@5612 │ │ -497ffa: 0a01 |00b1: move-result v1 │ │ -497ffc: 2204 fc0a |00b2: new-instance v4, Ljava/lang/StringBuilder; // type@0afc │ │ -498000: 7010 125d 0400 |00b4: invoke-direct {v4}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ -498006: 1a05 a318 |00b7: const-string v5, "Delete Participant (" // string@18a3 │ │ -49800a: 6e20 1d5d 5400 |00b9: invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498010: 6e20 1c5d 0400 |00bc: invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@5d1c │ │ -498016: 6e20 1d5d 2400 |00bf: invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49801c: 6e10 285d 0400 |00c2: invoke-virtual {v4}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ -498022: 0c04 |00c5: move-result-object v4 │ │ -498024: 7254 2e55 9731 |00c6: invoke-interface {v7, v9, v1, v3, v4}, Landroid/view/ContextMenu;.add:(IIILjava/lang/CharSequence;)Landroid/view/MenuItem; // method@552e │ │ -49802a: 1259 |00c9: const/4 v9, #int 5 // #5 │ │ -49802c: 6e10 1256 0800 |00ca: invoke-virtual {v8}, Landroid/view/View;.getId:()I // method@5612 │ │ -498032: 0a01 |00cd: move-result v1 │ │ -498034: 2204 fc0a |00ce: new-instance v4, Ljava/lang/StringBuilder; // type@0afc │ │ -498038: 7010 125d 0400 |00d0: invoke-direct {v4}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ -49803e: 1a05 2647 |00d3: const-string v5, "New Name (" // string@4726 │ │ -498042: 6e20 1d5d 5400 |00d5: invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498048: 6e20 1c5d 0400 |00d8: invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@5d1c │ │ -49804e: 6e20 1d5d 2400 |00db: invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498054: 6e10 285d 0400 |00de: invoke-virtual {v4}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ -49805a: 0c04 |00e1: move-result-object v4 │ │ -49805c: 7254 2e55 9731 |00e2: invoke-interface {v7, v9, v1, v3, v4}, Landroid/view/ContextMenu;.add:(IIILjava/lang/CharSequence;)Landroid/view/MenuItem; // method@552e │ │ -498062: 1269 |00e5: const/4 v9, #int 6 // #6 │ │ -498064: 6e10 1256 0800 |00e6: invoke-virtual {v8}, Landroid/view/View;.getId:()I // method@5612 │ │ -49806a: 0a08 |00e9: move-result v8 │ │ -49806c: 2201 fc0a |00ea: new-instance v1, Ljava/lang/StringBuilder; // type@0afc │ │ -498070: 7010 125d 0100 |00ec: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ -498076: 1a04 1a4d |00ef: const-string v4, "Reset Retrieval State (" // string@4d1a │ │ -49807a: 6e20 1d5d 4100 |00f1: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -498080: 6e20 1c5d 0100 |00f4: invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@5d1c │ │ -498086: 6e20 1d5d 2100 |00f7: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ -49808c: 6e10 285d 0100 |00fa: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ -498092: 0c00 |00fd: move-result-object v0 │ │ -498094: 7250 2e55 9738 |00fe: invoke-interface {v7, v9, v8, v3, v0}, Landroid/view/ContextMenu;.add:(IIILjava/lang/CharSequence;)Landroid/view/MenuItem; // method@552e │ │ -49809a: 0e00 |0101: return-void │ │ +497e84: |[497e84] org.purple.smokestack.Settings.onCreateContextMenu:(Landroid/view/ContextMenu;Landroid/view/View;Landroid/view/ContextMenu$ContextMenuInfo;)V │ │ +497e94: 3908 0300 |0000: if-nez v8, 0003 // +0003 │ │ +497e98: 0e00 |0002: return-void │ │ +497e9a: 6e10 3a56 0800 |0003: invoke-virtual {v8}, Landroid/view/View;.getTag:()Ljava/lang/Object; // method@563a │ │ +497ea0: 0c00 |0006: move-result-object v0 │ │ +497ea2: 3800 fa00 |0007: if-eqz v0, 0101 // +00fa │ │ +497ea6: 6f40 1b3d 7698 |0009: invoke-super {v6, v7, v8, v9}, Landroid/support/v7/app/AppCompatActivity;.onCreateContextMenu:(Landroid/view/ContextMenu;Landroid/view/View;Landroid/view/ContextMenu$ContextMenuInfo;)V // method@3d1b │ │ +497eac: 6e10 2c56 0800 |000c: invoke-virtual {v8}, Landroid/view/View;.getParent:()Landroid/view/ViewParent; // method@562c │ │ +497eb2: 0c09 |000f: move-result-object v9 │ │ +497eb4: 7210 4d57 0900 |0010: invoke-interface {v9}, Landroid/view/ViewParent;.getParent:()Landroid/view/ViewParent; // method@574d │ │ +497eba: 0c09 |0013: move-result-object v9 │ │ +497ebc: 1401 6600 087f |0014: const v1, #float 1.80777e+38 // #7f080066 │ │ +497ec2: 6e20 f6d1 1600 |0017: invoke-virtual {v6, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497ec8: 0c01 |001a: move-result-object v1 │ │ +497eca: 1a02 1f04 |001b: const-string v2, ")" // string@041f │ │ +497ece: 1203 |001d: const/4 v3, #int 0 // #0 │ │ +497ed0: 3319 3c00 |001e: if-ne v9, v1, 005a // +003c │ │ +497ed4: 1219 |0020: const/4 v9, #int 1 // #1 │ │ +497ed6: 6e10 1256 0800 |0021: invoke-virtual {v8}, Landroid/view/View;.getId:()I // method@5612 │ │ +497edc: 0a01 |0024: move-result v1 │ │ +497ede: 2204 fc0a |0025: new-instance v4, Ljava/lang/StringBuilder; // type@0afc │ │ +497ee2: 7010 125d 0400 |0027: invoke-direct {v4}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ +497ee8: 1a05 a018 |002a: const-string v5, "Delete Listener (" // string@18a0 │ │ +497eec: 6e20 1d5d 5400 |002c: invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +497ef2: 6e20 1c5d 0400 |002f: invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@5d1c │ │ +497ef8: 6e20 1d5d 2400 |0032: invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +497efe: 6e10 285d 0400 |0035: invoke-virtual {v4}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ +497f04: 0c04 |0038: move-result-object v4 │ │ +497f06: 7254 2e55 9731 |0039: invoke-interface {v7, v9, v1, v3, v4}, Landroid/view/ContextMenu;.add:(IIILjava/lang/CharSequence;)Landroid/view/MenuItem; // method@552e │ │ +497f0c: 1279 |003c: const/4 v9, #int 7 // #7 │ │ +497f0e: 6e10 1256 0800 |003d: invoke-virtual {v8}, Landroid/view/View;.getId:()I // method@5612 │ │ +497f14: 0a08 |0040: move-result v8 │ │ +497f16: 2201 fc0a |0041: new-instance v1, Ljava/lang/StringBuilder; // type@0afc │ │ +497f1a: 7010 125d 0100 |0043: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ +497f20: 1a04 1056 |0046: const-string v4, "Toggle Privacy (" // string@5610 │ │ +497f24: 6e20 1d5d 4100 |0048: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +497f2a: 6e20 1c5d 0100 |004b: invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@5d1c │ │ +497f30: 6e20 1d5d 2100 |004e: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +497f36: 6e10 285d 0100 |0051: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ +497f3c: 0c00 |0054: move-result-object v0 │ │ +497f3e: 7250 2e55 9738 |0055: invoke-interface {v7, v9, v8, v3, v0}, Landroid/view/ContextMenu;.add:(IIILjava/lang/CharSequence;)Landroid/view/MenuItem; // method@552e │ │ +497f44: 2900 a900 |0058: goto/16 0101 // +00a9 │ │ +497f48: 6e10 2c56 0800 |005a: invoke-virtual {v8}, Landroid/view/View;.getParent:()Landroid/view/ViewParent; // method@562c │ │ +497f4e: 0c09 |005d: move-result-object v9 │ │ +497f50: 7210 4d57 0900 |005e: invoke-interface {v9}, Landroid/view/ViewParent;.getParent:()Landroid/view/ViewParent; // method@574d │ │ +497f56: 0c09 |0061: move-result-object v9 │ │ +497f58: 1401 8700 087f |0062: const v1, #float 1.80778e+38 // #7f080087 │ │ +497f5e: 6e20 f6d1 1600 |0065: invoke-virtual {v6, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +497f64: 0c01 |0068: move-result-object v1 │ │ +497f66: 3319 1f00 |0069: if-ne v9, v1, 0088 // +001f │ │ +497f6a: 1239 |006b: const/4 v9, #int 3 // #3 │ │ +497f6c: 6e10 1256 0800 |006c: invoke-virtual {v8}, Landroid/view/View;.getId:()I // method@5612 │ │ +497f72: 0a08 |006f: move-result v8 │ │ +497f74: 2201 fc0a |0070: new-instance v1, Ljava/lang/StringBuilder; // type@0afc │ │ +497f78: 7010 125d 0100 |0072: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ +497f7e: 1a04 a218 |0075: const-string v4, "Delete Ozone (" // string@18a2 │ │ +497f82: 6e20 1d5d 4100 |0077: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +497f88: 6e20 1c5d 0100 |007a: invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@5d1c │ │ +497f8e: 6e20 1d5d 2100 |007d: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +497f94: 6e10 285d 0100 |0080: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ +497f9a: 0c00 |0083: move-result-object v0 │ │ +497f9c: 7250 2e55 9738 |0084: invoke-interface {v7, v9, v8, v3, v0}, Landroid/view/ContextMenu;.add:(IIILjava/lang/CharSequence;)Landroid/view/MenuItem; // method@552e │ │ +497fa2: 287a |0087: goto 0101 // +007a │ │ +497fa4: 6e10 1256 0800 |0088: invoke-virtual {v8}, Landroid/view/View;.getId:()I // method@5612 │ │ +497faa: 0a09 |008b: move-result v9 │ │ +497fac: 1a01 9f18 |008c: const-string v1, "Delete All Messages" // string@189f │ │ +497fb0: 7251 2e55 3739 |008e: invoke-interface {v7, v3, v9, v3, v1}, Landroid/view/ContextMenu;.add:(IIILjava/lang/CharSequence;)Landroid/view/MenuItem; // method@552e │ │ +497fb6: 1229 |0091: const/4 v9, #int 2 // #2 │ │ +497fb8: 6e10 1256 0800 |0092: invoke-virtual {v8}, Landroid/view/View;.getId:()I // method@5612 │ │ +497fbe: 0a01 |0095: move-result v1 │ │ +497fc0: 2204 fc0a |0096: new-instance v4, Ljava/lang/StringBuilder; // type@0afc │ │ +497fc4: 7010 125d 0400 |0098: invoke-direct {v4}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ +497fca: 1a05 a118 |009b: const-string v5, "Delete Messages (" // string@18a1 │ │ +497fce: 6e20 1d5d 5400 |009d: invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +497fd4: 6e20 1c5d 0400 |00a0: invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@5d1c │ │ +497fda: 6e20 1d5d 2400 |00a3: invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +497fe0: 6e10 285d 0400 |00a6: invoke-virtual {v4}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ +497fe6: 0c04 |00a9: move-result-object v4 │ │ +497fe8: 7254 2e55 9731 |00aa: invoke-interface {v7, v9, v1, v3, v4}, Landroid/view/ContextMenu;.add:(IIILjava/lang/CharSequence;)Landroid/view/MenuItem; // method@552e │ │ +497fee: 1249 |00ad: const/4 v9, #int 4 // #4 │ │ +497ff0: 6e10 1256 0800 |00ae: invoke-virtual {v8}, Landroid/view/View;.getId:()I // method@5612 │ │ +497ff6: 0a01 |00b1: move-result v1 │ │ +497ff8: 2204 fc0a |00b2: new-instance v4, Ljava/lang/StringBuilder; // type@0afc │ │ +497ffc: 7010 125d 0400 |00b4: invoke-direct {v4}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ +498002: 1a05 a318 |00b7: const-string v5, "Delete Participant (" // string@18a3 │ │ +498006: 6e20 1d5d 5400 |00b9: invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49800c: 6e20 1c5d 0400 |00bc: invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@5d1c │ │ +498012: 6e20 1d5d 2400 |00bf: invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498018: 6e10 285d 0400 |00c2: invoke-virtual {v4}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ +49801e: 0c04 |00c5: move-result-object v4 │ │ +498020: 7254 2e55 9731 |00c6: invoke-interface {v7, v9, v1, v3, v4}, Landroid/view/ContextMenu;.add:(IIILjava/lang/CharSequence;)Landroid/view/MenuItem; // method@552e │ │ +498026: 1259 |00c9: const/4 v9, #int 5 // #5 │ │ +498028: 6e10 1256 0800 |00ca: invoke-virtual {v8}, Landroid/view/View;.getId:()I // method@5612 │ │ +49802e: 0a01 |00cd: move-result v1 │ │ +498030: 2204 fc0a |00ce: new-instance v4, Ljava/lang/StringBuilder; // type@0afc │ │ +498034: 7010 125d 0400 |00d0: invoke-direct {v4}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ +49803a: 1a05 2647 |00d3: const-string v5, "New Name (" // string@4726 │ │ +49803e: 6e20 1d5d 5400 |00d5: invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498044: 6e20 1c5d 0400 |00d8: invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@5d1c │ │ +49804a: 6e20 1d5d 2400 |00db: invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498050: 6e10 285d 0400 |00de: invoke-virtual {v4}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ +498056: 0c04 |00e1: move-result-object v4 │ │ +498058: 7254 2e55 9731 |00e2: invoke-interface {v7, v9, v1, v3, v4}, Landroid/view/ContextMenu;.add:(IIILjava/lang/CharSequence;)Landroid/view/MenuItem; // method@552e │ │ +49805e: 1269 |00e5: const/4 v9, #int 6 // #6 │ │ +498060: 6e10 1256 0800 |00e6: invoke-virtual {v8}, Landroid/view/View;.getId:()I // method@5612 │ │ +498066: 0a08 |00e9: move-result v8 │ │ +498068: 2201 fc0a |00ea: new-instance v1, Ljava/lang/StringBuilder; // type@0afc │ │ +49806c: 7010 125d 0100 |00ec: invoke-direct {v1}, Ljava/lang/StringBuilder;.:()V // method@5d12 │ │ +498072: 1a04 1a4d |00ef: const-string v4, "Reset Retrieval State (" // string@4d1a │ │ +498076: 6e20 1d5d 4100 |00f1: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +49807c: 6e20 1c5d 0100 |00f4: invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@5d1c │ │ +498082: 6e20 1d5d 2100 |00f7: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@5d1d │ │ +498088: 6e10 285d 0100 |00fa: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@5d28 │ │ +49808e: 0c00 |00fd: move-result-object v0 │ │ +498090: 7250 2e55 9738 |00fe: invoke-interface {v7, v9, v8, v3, v0}, Landroid/view/ContextMenu;.add:(IIILjava/lang/CharSequence;)Landroid/view/MenuItem; // method@552e │ │ +498096: 0e00 |0101: return-void │ │ catches : 2 │ │ 0x000c - 0x001b │ │ Ljava/lang/Exception; -> 0x0101 │ │ 0x0021 - 0x0101 │ │ Ljava/lang/Exception; -> 0x0101 │ │ positions : │ │ 0x0003 line=3121 │ │ @@ -1718426,21 +1718425,21 @@ │ │ type : '(Landroid/view/Menu;)Z' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 4 │ │ ins : 2 │ │ outs : 3 │ │ insns size : 12 16-bit code units │ │ -496d28: |[496d28] org.purple.smokestack.Settings.onCreateOptionsMenu:(Landroid/view/Menu;)Z │ │ -496d38: 6e10 fbd1 0200 |0000: invoke-virtual {v2}, Lorg/purple/smokestack/Settings;.getMenuInflater:()Landroid/view/MenuInflater; // method@d1fb │ │ -496d3e: 0c00 |0003: move-result-object v0 │ │ -496d40: 1401 0100 0b7f |0004: const v1, #float 1.84763e+38 // #7f0b0001 │ │ -496d46: 6e30 8155 1003 |0007: invoke-virtual {v0, v1, v3}, Landroid/view/MenuInflater;.inflate:(ILandroid/view/Menu;)V // method@5581 │ │ -496d4c: 1213 |000a: const/4 v3, #int 1 // #1 │ │ -496d4e: 0f03 |000b: return v3 │ │ +496d24: |[496d24] org.purple.smokestack.Settings.onCreateOptionsMenu:(Landroid/view/Menu;)Z │ │ +496d34: 6e10 fbd1 0200 |0000: invoke-virtual {v2}, Lorg/purple/smokestack/Settings;.getMenuInflater:()Landroid/view/MenuInflater; // method@d1fb │ │ +496d3a: 0c00 |0003: move-result-object v0 │ │ +496d3c: 1401 0100 0b7f |0004: const v1, #float 1.84763e+38 // #7f0b0001 │ │ +496d42: 6e30 8155 1003 |0007: invoke-virtual {v0, v1, v3}, Landroid/view/MenuInflater;.inflate:(ILandroid/view/Menu;)V // method@5581 │ │ +496d48: 1213 |000a: const/4 v3, #int 1 // #1 │ │ +496d4a: 0f03 |000b: return v3 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=3076 │ │ locals : │ │ 0x0000 - 0x000c reg=2 this Lorg/purple/smokestack/Settings; │ │ 0x0000 - 0x000c reg=3 (null) Landroid/view/Menu; │ │ │ │ @@ -1718449,27 +1718448,27 @@ │ │ type : '()V' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 25 16-bit code units │ │ -4980b4: |[4980b4] org.purple.smokestack.Settings.onDestroy:()V │ │ -4980c4: 7100 43d2 0000 |0000: invoke-static {}, Lorg/purple/smokestack/State;.getInstance:()Lorg/purple/smokestack/State; // method@d243 │ │ -4980ca: 0c00 |0003: move-result-object v0 │ │ -4980cc: 6e10 41d2 0000 |0004: invoke-virtual {v0}, Lorg/purple/smokestack/State;.exit:()Z // method@d241 │ │ -4980d2: 0a00 |0007: move-result v0 │ │ -4980d4: 3800 0a00 |0008: if-eqz v0, 0012 // +000a │ │ -4980d8: 7100 4705 0000 |000a: invoke-static {}, Landroid/os/Process;.myPid:()I // method@0547 │ │ -4980de: 0a00 |000d: move-result v0 │ │ -4980e0: 7110 4605 0000 |000e: invoke-static {v0}, Landroid/os/Process;.killProcess:(I)V // method@0546 │ │ -4980e6: 2807 |0011: goto 0018 // +0007 │ │ -4980e8: 7010 12d2 0100 |0012: invoke-direct {v1}, Lorg/purple/smokestack/Settings;.releaseResources:()V // method@d212 │ │ -4980ee: 6f10 1d3d 0100 |0015: invoke-super {v1}, Landroid/support/v7/app/AppCompatActivity;.onDestroy:()V // method@3d1d │ │ -4980f4: 0e00 |0018: return-void │ │ +4980b0: |[4980b0] org.purple.smokestack.Settings.onDestroy:()V │ │ +4980c0: 7100 43d2 0000 |0000: invoke-static {}, Lorg/purple/smokestack/State;.getInstance:()Lorg/purple/smokestack/State; // method@d243 │ │ +4980c6: 0c00 |0003: move-result-object v0 │ │ +4980c8: 6e10 41d2 0000 |0004: invoke-virtual {v0}, Lorg/purple/smokestack/State;.exit:()Z // method@d241 │ │ +4980ce: 0a00 |0007: move-result v0 │ │ +4980d0: 3800 0a00 |0008: if-eqz v0, 0012 // +000a │ │ +4980d4: 7100 4705 0000 |000a: invoke-static {}, Landroid/os/Process;.myPid:()I // method@0547 │ │ +4980da: 0a00 |000d: move-result v0 │ │ +4980dc: 7110 4605 0000 |000e: invoke-static {v0}, Landroid/os/Process;.killProcess:(I)V // method@0546 │ │ +4980e2: 2807 |0011: goto 0018 // +0007 │ │ +4980e4: 7010 12d2 0100 |0012: invoke-direct {v1}, Lorg/purple/smokestack/Settings;.releaseResources:()V // method@d212 │ │ +4980ea: 6f10 1d3d 0100 |0015: invoke-super {v1}, Landroid/support/v7/app/AppCompatActivity;.onDestroy:()V // method@3d1d │ │ +4980f0: 0e00 |0018: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=2653 │ │ 0x000a line=2654 │ │ 0x0012 line=2657 │ │ 0x0015 line=2658 │ │ locals : │ │ @@ -1718480,30 +1718479,30 @@ │ │ type : '(Landroid/view/MenuItem;)Z' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 4 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 29 16-bit code units │ │ -496d50: |[496d50] org.purple.smokestack.Settings.onOptionsItemSelected:(Landroid/view/MenuItem;)Z │ │ -496d60: 3803 1800 |0000: if-eqz v3, 0018 // +0018 │ │ -496d64: 7210 8b55 0300 |0002: invoke-interface {v3}, Landroid/view/MenuItem;.getItemId:()I // method@558b │ │ -496d6a: 0a00 |0005: move-result v0 │ │ -496d6c: 1401 0e00 087f |0006: const v1, #float 1.80775e+38 // #7f08000e │ │ -496d72: 3210 0300 |0009: if-eq v0, v1, 000c // +0003 │ │ -496d76: 280d |000b: goto 0018 // +000d │ │ -496d78: 7100 43d2 0000 |000c: invoke-static {}, Lorg/purple/smokestack/State;.getInstance:()Lorg/purple/smokestack/State; // method@d243 │ │ -496d7e: 0c03 |000f: move-result-object v3 │ │ -496d80: 1210 |0010: const/4 v0, #int 1 // #1 │ │ -496d82: 6e20 49d2 0300 |0011: invoke-virtual {v3, v0}, Lorg/purple/smokestack/State;.setExit:(Z)V // method@d249 │ │ -496d88: 7110 2bd2 0200 |0014: invoke-static {v2}, Lorg/purple/smokestack/SmokeStack;.exit:(Landroid/content/Context;)V // method@d22b │ │ -496d8e: 0f00 |0017: return v0 │ │ -496d90: 6f20 203d 3200 |0018: invoke-super {v2, v3}, Landroid/support/v7/app/AppCompatActivity;.onOptionsItemSelected:(Landroid/view/MenuItem;)Z // method@3d20 │ │ -496d96: 0a03 |001b: move-result v3 │ │ -496d98: 0f03 |001c: return v3 │ │ +496d4c: |[496d4c] org.purple.smokestack.Settings.onOptionsItemSelected:(Landroid/view/MenuItem;)Z │ │ +496d5c: 3803 1800 |0000: if-eqz v3, 0018 // +0018 │ │ +496d60: 7210 8b55 0300 |0002: invoke-interface {v3}, Landroid/view/MenuItem;.getItemId:()I // method@558b │ │ +496d66: 0a00 |0005: move-result v0 │ │ +496d68: 1401 0e00 087f |0006: const v1, #float 1.80775e+38 // #7f08000e │ │ +496d6e: 3210 0300 |0009: if-eq v0, v1, 000c // +0003 │ │ +496d72: 280d |000b: goto 0018 // +000d │ │ +496d74: 7100 43d2 0000 |000c: invoke-static {}, Lorg/purple/smokestack/State;.getInstance:()Lorg/purple/smokestack/State; // method@d243 │ │ +496d7a: 0c03 |000f: move-result-object v3 │ │ +496d7c: 1210 |0010: const/4 v0, #int 1 // #1 │ │ +496d7e: 6e20 49d2 0300 |0011: invoke-virtual {v3, v0}, Lorg/purple/smokestack/State;.setExit:(Z)V // method@d249 │ │ +496d84: 7110 2bd2 0200 |0014: invoke-static {v2}, Lorg/purple/smokestack/SmokeStack;.exit:(Landroid/content/Context;)V // method@d22b │ │ +496d8a: 0f00 |0017: return v0 │ │ +496d8c: 6f20 203d 3200 |0018: invoke-super {v2, v3}, Landroid/support/v7/app/AppCompatActivity;.onOptionsItemSelected:(Landroid/view/MenuItem;)Z // method@3d20 │ │ +496d92: 0a03 |001b: move-result v3 │ │ +496d94: 0f03 |001c: return v3 │ │ catches : (none) │ │ positions : │ │ 0x0002 line=3084 │ │ 0x000c line=3087 │ │ 0x0014 line=3088 │ │ 0x0018 line=3094 │ │ locals : │ │ @@ -1718515,18 +1718514,18 @@ │ │ type : '()V' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 7 16-bit code units │ │ -4980f8: |[4980f8] org.purple.smokestack.Settings.onPause:()V │ │ -498108: 6f10 223d 0000 |0000: invoke-super {v0}, Landroid/support/v7/app/AppCompatActivity;.onPause:()V // method@3d22 │ │ -49810e: 7010 12d2 0000 |0003: invoke-direct {v0}, Lorg/purple/smokestack/Settings;.releaseResources:()V // method@d212 │ │ -498114: 0e00 |0006: return-void │ │ +4980f4: |[4980f4] org.purple.smokestack.Settings.onPause:()V │ │ +498104: 6f10 223d 0000 |0000: invoke-super {v0}, Landroid/support/v7/app/AppCompatActivity;.onPause:()V // method@3d22 │ │ +49810a: 7010 12d2 0000 |0003: invoke-direct {v0}, Lorg/purple/smokestack/Settings;.releaseResources:()V // method@d212 │ │ +498110: 0e00 |0006: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=2665 │ │ 0x0003 line=2666 │ │ locals : │ │ 0x0000 - 0x0007 reg=0 this Lorg/purple/smokestack/Settings; │ │ │ │ @@ -1718535,31 +1718534,31 @@ │ │ type : '(Landroid/view/Menu;)Z' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 5 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 30 16-bit code units │ │ -496d9c: |[496d9c] org.purple.smokestack.Settings.onPrepareOptionsMenu:(Landroid/view/Menu;)Z │ │ -496dac: 7100 43d2 0000 |0000: invoke-static {}, Lorg/purple/smokestack/State;.getInstance:()Lorg/purple/smokestack/State; // method@d243 │ │ -496db2: 0c00 |0003: move-result-object v0 │ │ -496db4: 6e10 45d2 0000 |0004: invoke-virtual {v0}, Lorg/purple/smokestack/State;.isAuthenticated:()Z // method@d245 │ │ -496dba: 0a00 |0007: move-result v0 │ │ -496dbc: 5431 3269 |0008: iget-object v1, v3, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ -496dc0: 6e10 a0d0 0100 |000a: invoke-virtual {v1}, Lorg/purple/smokestack/Database;.accountPrepared:()Z // method@d0a0 │ │ -496dc6: 0a01 |000d: move-result v1 │ │ -496dc8: 1212 |000e: const/4 v2, #int 1 // #1 │ │ -496dca: 3901 0300 |000f: if-nez v1, 0012 // +0003 │ │ -496dce: 1210 |0011: const/4 v0, #int 1 // #1 │ │ -496dd0: 1401 0300 087f |0012: const v1, #float 1.80775e+38 // #7f080003 │ │ -496dd6: 7220 7d55 1400 |0015: invoke-interface {v4, v1}, Landroid/view/Menu;.findItem:(I)Landroid/view/MenuItem; // method@557d │ │ -496ddc: 0c04 |0018: move-result-object v4 │ │ -496dde: b720 |0019: xor-int/2addr v0, v2 │ │ -496de0: 7220 9955 0400 |001a: invoke-interface {v4, v0}, Landroid/view/MenuItem;.setEnabled:(Z)Landroid/view/MenuItem; // method@5599 │ │ -496de6: 0f02 |001d: return v2 │ │ +496d98: |[496d98] org.purple.smokestack.Settings.onPrepareOptionsMenu:(Landroid/view/Menu;)Z │ │ +496da8: 7100 43d2 0000 |0000: invoke-static {}, Lorg/purple/smokestack/State;.getInstance:()Lorg/purple/smokestack/State; // method@d243 │ │ +496dae: 0c00 |0003: move-result-object v0 │ │ +496db0: 6e10 45d2 0000 |0004: invoke-virtual {v0}, Lorg/purple/smokestack/State;.isAuthenticated:()Z // method@d245 │ │ +496db6: 0a00 |0007: move-result v0 │ │ +496db8: 5431 3269 |0008: iget-object v1, v3, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ +496dbc: 6e10 a0d0 0100 |000a: invoke-virtual {v1}, Lorg/purple/smokestack/Database;.accountPrepared:()Z // method@d0a0 │ │ +496dc2: 0a01 |000d: move-result v1 │ │ +496dc4: 1212 |000e: const/4 v2, #int 1 // #1 │ │ +496dc6: 3901 0300 |000f: if-nez v1, 0012 // +0003 │ │ +496dca: 1210 |0011: const/4 v0, #int 1 // #1 │ │ +496dcc: 1401 0300 087f |0012: const v1, #float 1.80775e+38 // #7f080003 │ │ +496dd2: 7220 7d55 1400 |0015: invoke-interface {v4, v1}, Landroid/view/Menu;.findItem:(I)Landroid/view/MenuItem; // method@557d │ │ +496dd8: 0c04 |0018: move-result-object v4 │ │ +496dda: b720 |0019: xor-int/2addr v0, v2 │ │ +496ddc: 7220 9955 0400 |001a: invoke-interface {v4, v0}, Landroid/view/MenuItem;.setEnabled:(Z)Landroid/view/MenuItem; // method@5599 │ │ +496de2: 0f02 |001d: return v2 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=3100 │ │ 0x0008 line=3102 │ │ 0x0015 line=3109 │ │ locals : │ │ 0x0000 - 0x001e reg=3 this Lorg/purple/smokestack/Settings; │ │ @@ -1718570,56 +1718569,56 @@ │ │ type : '(Landroid/os/Bundle;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 0 │ │ insns size : 1 16-bit code units │ │ -498118: |[498118] org.purple.smokestack.Settings.onRestoreInstanceState:(Landroid/os/Bundle;)V │ │ -498128: 0e00 |0000: return-void │ │ +498114: |[498114] org.purple.smokestack.Settings.onRestoreInstanceState:(Landroid/os/Bundle;)V │ │ +498124: 0e00 |0000: return-void │ │ catches : (none) │ │ positions : │ │ locals : │ │ │ │ #9 : (in Lorg/purple/smokestack/Settings;) │ │ name : 'onResume' │ │ type : '()V' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 6 │ │ ins : 1 │ │ outs : 4 │ │ insns size : 55 16-bit code units │ │ -49812c: |[49812c] org.purple.smokestack.Settings.onResume:()V │ │ -49813c: 6f10 263d 0500 |0000: invoke-super {v5}, Landroid/support/v7/app/AppCompatActivity;.onResume:()V // method@3d26 │ │ -498142: 5550 3a69 |0003: iget-boolean v0, v5, Lorg/purple/smokestack/Settings;.m_receiverRegistered:Z // field@693a │ │ -498146: 1211 |0005: const/4 v1, #int 1 // #1 │ │ -498148: 3900 1c00 |0006: if-nez v0, 0022 // +001c │ │ -49814c: 2200 4a00 |0008: new-instance v0, Landroid/content/IntentFilter; // type@004a │ │ -498150: 7010 c901 0000 |000a: invoke-direct {v0}, Landroid/content/IntentFilter;.:()V // method@01c9 │ │ -498156: 1a02 0f9e |000d: const-string v2, "org.purple.smokestack.populate_ozones_participants" // string@9e0f │ │ -49815a: 6e20 ca01 2000 |000f: invoke-virtual {v0, v2}, Landroid/content/IntentFilter;.addAction:(Ljava/lang/String;)V // method@01ca │ │ -498160: 1a02 109e |0012: const-string v2, "org.purple.smokestack.populate_participants" // string@9e10 │ │ -498164: 6e20 ca01 2000 |0014: invoke-virtual {v0, v2}, Landroid/content/IntentFilter;.addAction:(Ljava/lang/String;)V // method@01ca │ │ -49816a: 7110 cf1d 0500 |0017: invoke-static {v5}, Landroid/support/v4/content/LocalBroadcastManager;.getInstance:(Landroid/content/Context;)Landroid/support/v4/content/LocalBroadcastManager; // method@1dcf │ │ -498170: 0c02 |001a: move-result-object v2 │ │ -498172: 5453 3969 |001b: iget-object v3, v5, Lorg/purple/smokestack/Settings;.m_receiver:Lorg/purple/smokestack/Settings$SettingsBroadcastReceiver; // field@6939 │ │ -498176: 6e30 d01d 3200 |001d: invoke-virtual {v2, v3, v0}, Landroid/support/v4/content/LocalBroadcastManager;.registerReceiver:(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)V // method@1dd0 │ │ -49817c: 5c51 3a69 |0020: iput-boolean v1, v5, Lorg/purple/smokestack/Settings;.m_receiverRegistered:Z // field@693a │ │ -498180: 5450 3469 |0022: iget-object v0, v5, Lorg/purple/smokestack/Settings;.m_listenersAdapter:Landroid/support/v7/widget/RecyclerView$Adapter; // field@6934 │ │ -498184: 6e10 5e4c 0000 |0024: invoke-virtual {v0}, Landroid/support/v7/widget/RecyclerView$Adapter;.notifyDataSetChanged:()V // method@4c5e │ │ -49818a: 5450 3569 |0027: iget-object v0, v5, Lorg/purple/smokestack/Settings;.m_listenersLayoutManager:Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager; // field@6935 │ │ -49818e: 5452 3669 |0029: iget-object v2, v5, Lorg/purple/smokestack/Settings;.m_listenersRecyclerView:Landroid/support/v7/widget/RecyclerView; // field@6936 │ │ -498192: 1203 |002b: const/4 v3, #int 0 // #0 │ │ -498194: 5454 3469 |002c: iget-object v4, v5, Lorg/purple/smokestack/Settings;.m_listenersAdapter:Landroid/support/v7/widget/RecyclerView$Adapter; // field@6934 │ │ -498198: 6e10 594c 0400 |002e: invoke-virtual {v4}, Landroid/support/v7/widget/RecyclerView$Adapter;.getItemCount:()I // method@4c59 │ │ -49819e: 0a04 |0031: move-result v4 │ │ -4981a0: b114 |0032: sub-int/2addr v4, v1 │ │ -4981a2: 6e40 d3d1 2043 |0033: invoke-virtual {v0, v2, v3, v4}, Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager;.smoothScrollToPosition:(Landroid/support/v7/widget/RecyclerView;Landroid/support/v7/widget/RecyclerView$State;I)V // method@d1d3 │ │ -4981a8: 0e00 |0036: return-void │ │ +498128: |[498128] org.purple.smokestack.Settings.onResume:()V │ │ +498138: 6f10 263d 0500 |0000: invoke-super {v5}, Landroid/support/v7/app/AppCompatActivity;.onResume:()V // method@3d26 │ │ +49813e: 5550 3a69 |0003: iget-boolean v0, v5, Lorg/purple/smokestack/Settings;.m_receiverRegistered:Z // field@693a │ │ +498142: 1211 |0005: const/4 v1, #int 1 // #1 │ │ +498144: 3900 1c00 |0006: if-nez v0, 0022 // +001c │ │ +498148: 2200 4a00 |0008: new-instance v0, Landroid/content/IntentFilter; // type@004a │ │ +49814c: 7010 c901 0000 |000a: invoke-direct {v0}, Landroid/content/IntentFilter;.:()V // method@01c9 │ │ +498152: 1a02 0f9e |000d: const-string v2, "org.purple.smokestack.populate_ozones_participants" // string@9e0f │ │ +498156: 6e20 ca01 2000 |000f: invoke-virtual {v0, v2}, Landroid/content/IntentFilter;.addAction:(Ljava/lang/String;)V // method@01ca │ │ +49815c: 1a02 109e |0012: const-string v2, "org.purple.smokestack.populate_participants" // string@9e10 │ │ +498160: 6e20 ca01 2000 |0014: invoke-virtual {v0, v2}, Landroid/content/IntentFilter;.addAction:(Ljava/lang/String;)V // method@01ca │ │ +498166: 7110 cf1d 0500 |0017: invoke-static {v5}, Landroid/support/v4/content/LocalBroadcastManager;.getInstance:(Landroid/content/Context;)Landroid/support/v4/content/LocalBroadcastManager; // method@1dcf │ │ +49816c: 0c02 |001a: move-result-object v2 │ │ +49816e: 5453 3969 |001b: iget-object v3, v5, Lorg/purple/smokestack/Settings;.m_receiver:Lorg/purple/smokestack/Settings$SettingsBroadcastReceiver; // field@6939 │ │ +498172: 6e30 d01d 3200 |001d: invoke-virtual {v2, v3, v0}, Landroid/support/v4/content/LocalBroadcastManager;.registerReceiver:(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)V // method@1dd0 │ │ +498178: 5c51 3a69 |0020: iput-boolean v1, v5, Lorg/purple/smokestack/Settings;.m_receiverRegistered:Z // field@693a │ │ +49817c: 5450 3469 |0022: iget-object v0, v5, Lorg/purple/smokestack/Settings;.m_listenersAdapter:Landroid/support/v7/widget/RecyclerView$Adapter; // field@6934 │ │ +498180: 6e10 5e4c 0000 |0024: invoke-virtual {v0}, Landroid/support/v7/widget/RecyclerView$Adapter;.notifyDataSetChanged:()V // method@4c5e │ │ +498186: 5450 3569 |0027: iget-object v0, v5, Lorg/purple/smokestack/Settings;.m_listenersLayoutManager:Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager; // field@6935 │ │ +49818a: 5452 3669 |0029: iget-object v2, v5, Lorg/purple/smokestack/Settings;.m_listenersRecyclerView:Landroid/support/v7/widget/RecyclerView; // field@6936 │ │ +49818e: 1203 |002b: const/4 v3, #int 0 // #0 │ │ +498190: 5454 3469 |002c: iget-object v4, v5, Lorg/purple/smokestack/Settings;.m_listenersAdapter:Landroid/support/v7/widget/RecyclerView$Adapter; // field@6934 │ │ +498194: 6e10 594c 0400 |002e: invoke-virtual {v4}, Landroid/support/v7/widget/RecyclerView$Adapter;.getItemCount:()I // method@4c59 │ │ +49819a: 0a04 |0031: move-result v4 │ │ +49819c: b114 |0032: sub-int/2addr v4, v1 │ │ +49819e: 6e40 d3d1 2043 |0033: invoke-virtual {v0, v2, v3, v4}, Lorg/purple/smokestack/Settings$ListenersLinearLayoutManager;.smoothScrollToPosition:(Landroid/support/v7/widget/RecyclerView;Landroid/support/v7/widget/RecyclerView$State;I)V // method@d1d3 │ │ +4981a4: 0e00 |0036: return-void │ │ catches : 1 │ │ 0x0022 - 0x0036 │ │ Ljava/lang/Exception; -> 0x0036 │ │ positions : │ │ 0x0000 line=2672 │ │ 0x0003 line=2674 │ │ 0x0008 line=2676 │ │ @@ -1718640,167 +1718639,167 @@ │ │ type : '()V' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 13 │ │ ins : 1 │ │ outs : 3 │ │ insns size : 329 16-bit code units │ │ -4981bc: |[4981bc] org.purple.smokestack.Settings.onStart:()V │ │ -4981cc: 6f10 283d 0c00 |0000: invoke-super {v12}, Landroid/support/v7/app/AppCompatActivity;.onStart:()V // method@3d28 │ │ -4981d2: 54c0 3269 |0003: iget-object v0, v12, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ -4981d6: 1a01 cca0 |0005: const-string v1, "prefer_active_screen" // string@a0cc │ │ -4981da: 6e20 b2d0 1000 |0007: invoke-virtual {v0, v1}, Lorg/purple/smokestack/Database;.deleteSetting:(Ljava/lang/String;)V // method@d0b2 │ │ -4981e0: 7100 43d2 0000 |000a: invoke-static {}, Lorg/purple/smokestack/State;.getInstance:()Lorg/purple/smokestack/State; // method@d243 │ │ -4981e6: 0c00 |000d: move-result-object v0 │ │ -4981e8: 6e10 45d2 0000 |000e: invoke-virtual {v0}, Lorg/purple/smokestack/State;.isAuthenticated:()Z // method@d245 │ │ -4981ee: 0a00 |0011: move-result v0 │ │ -4981f0: 3900 0e00 |0012: if-nez v0, 0020 // +000e │ │ -4981f4: 54c0 3269 |0014: iget-object v0, v12, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ -4981f8: 6e10 a0d0 0000 |0016: invoke-virtual {v0}, Lorg/purple/smokestack/Database;.accountPrepared:()Z // method@d0a0 │ │ -4981fe: 0a00 |0019: move-result v0 │ │ -498200: 3800 0600 |001a: if-eqz v0, 0020 // +0006 │ │ -498204: 7010 15d2 0c00 |001c: invoke-direct {v12}, Lorg/purple/smokestack/Settings;.showAuthenticateActivity:()V // method@d215 │ │ -49820a: 0e00 |001f: return-void │ │ -49820c: 54c0 3969 |0020: iget-object v0, v12, Lorg/purple/smokestack/Settings;.m_receiver:Lorg/purple/smokestack/Settings$SettingsBroadcastReceiver; // field@6939 │ │ -498210: 3900 0900 |0022: if-nez v0, 002b // +0009 │ │ -498214: 2200 ef1e |0024: new-instance v0, Lorg/purple/smokestack/Settings$SettingsBroadcastReceiver; // type@1eef │ │ -498218: 7020 d8d1 c000 |0026: invoke-direct {v0, v12}, Lorg/purple/smokestack/Settings$SettingsBroadcastReceiver;.:(Lorg/purple/smokestack/Settings;)V // method@d1d8 │ │ -49821e: 5bc0 3969 |0029: iput-object v0, v12, Lorg/purple/smokestack/Settings;.m_receiver:Lorg/purple/smokestack/Settings$SettingsBroadcastReceiver; // field@6939 │ │ -498222: 1400 2300 087f |002b: const v0, #float 1.80776e+38 // #7f080023 │ │ -498228: 6e20 f6d1 0c00 |002e: invoke-virtual {v12, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -49822e: 0c01 |0031: move-result-object v1 │ │ -498230: 1f01 920a |0032: check-cast v1, Landroid/widget/Switch; // type@0a92 │ │ -498234: 54c2 3269 |0034: iget-object v2, v12, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ -498238: 1203 |0036: const/4 v3, #int 0 // #0 │ │ -49823a: 1a04 1c63 |0037: const-string v4, "automatic_listeners_refresh" // string@631c │ │ -49823e: 6e30 ccd0 3204 |0039: invoke-virtual {v2, v3, v4}, Lorg/purple/smokestack/Database;.readSetting:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;)Ljava/lang/String; // method@d0cc │ │ -498244: 0c02 |003c: move-result-object v2 │ │ -498246: 1a05 17b3 |003d: const-string v5, "true" // string@b317 │ │ -49824a: 6e20 da5c 5200 |003f: invoke-virtual {v2, v5}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ -498250: 0a02 |0042: move-result v2 │ │ -498252: 1216 |0043: const/4 v6, #int 1 // #1 │ │ -498254: 1207 |0044: const/4 v7, #int 0 // #0 │ │ -498256: 3802 0600 |0045: if-eqz v2, 004b // +0006 │ │ -49825a: 6e20 e75a 6100 |0047: invoke-virtual {v1, v6}, Landroid/widget/Switch;.setChecked:(Z)V // method@5ae7 │ │ -498260: 2804 |004a: goto 004e // +0004 │ │ -498262: 6e20 e75a 7100 |004b: invoke-virtual {v1, v7}, Landroid/widget/Switch;.setChecked:(Z)V // method@5ae7 │ │ -498268: 1401 2400 087f |004e: const v1, #float 1.80776e+38 // #7f080024 │ │ -49826e: 6e20 f6d1 1c00 |0051: invoke-virtual {v12, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -498274: 0c02 |0054: move-result-object v2 │ │ -498276: 1f02 920a |0055: check-cast v2, Landroid/widget/Switch; // type@0a92 │ │ -49827a: 54c8 3269 |0057: iget-object v8, v12, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ -49827e: 1a09 1d63 |0059: const-string v9, "automatic_neighbors_refresh" // string@631d │ │ -498282: 6e30 ccd0 3809 |005b: invoke-virtual {v8, v3, v9}, Lorg/purple/smokestack/Database;.readSetting:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;)Ljava/lang/String; // method@d0cc │ │ -498288: 0c08 |005e: move-result-object v8 │ │ -49828a: 6e20 da5c 5800 |005f: invoke-virtual {v8, v5}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ -498290: 0a08 |0062: move-result v8 │ │ -498292: 3808 0600 |0063: if-eqz v8, 0069 // +0006 │ │ -498296: 6e20 e75a 6200 |0065: invoke-virtual {v2, v6}, Landroid/widget/Switch;.setChecked:(Z)V // method@5ae7 │ │ -49829c: 2804 |0068: goto 006c // +0004 │ │ -49829e: 6e20 e75a 7200 |0069: invoke-virtual {v2, v7}, Landroid/widget/Switch;.setChecked:(Z)V // method@5ae7 │ │ -4982a4: 1402 7600 087f |006c: const v2, #float 1.80777e+38 // #7f080076 │ │ -4982aa: 6e20 f6d1 2c00 |006f: invoke-virtual {v12, v2}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4982b0: 0c02 |0072: move-result-object v2 │ │ -4982b2: 1f02 920a |0073: check-cast v2, Landroid/widget/Switch; // type@0a92 │ │ -4982b6: 54c8 3269 |0075: iget-object v8, v12, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ -4982ba: 1a0a 0298 |0077: const-string v10, "neighbors_details" // string@9802 │ │ -4982be: 6e30 ccd0 380a |0079: invoke-virtual {v8, v3, v10}, Lorg/purple/smokestack/Database;.readSetting:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;)Ljava/lang/String; // method@d0cc │ │ -4982c4: 0c08 |007c: move-result-object v8 │ │ -4982c6: 6e20 da5c 5800 |007d: invoke-virtual {v8, v5}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ -4982cc: 0a08 |0080: move-result v8 │ │ -4982ce: 3808 0600 |0081: if-eqz v8, 0087 // +0006 │ │ -4982d2: 6e20 e75a 6200 |0083: invoke-virtual {v2, v6}, Landroid/widget/Switch;.setChecked:(Z)V // method@5ae7 │ │ -4982d8: 2804 |0086: goto 008a // +0004 │ │ -4982da: 6e20 e75a 7200 |0087: invoke-virtual {v2, v7}, Landroid/widget/Switch;.setChecked:(Z)V // method@5ae7 │ │ -4982e0: 1402 5f00 087f |008a: const v2, #float 1.80777e+38 // #7f08005f │ │ -4982e6: 6e20 f6d1 2c00 |008d: invoke-virtual {v12, v2}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4982ec: 0c02 |0090: move-result-object v2 │ │ -4982ee: 1f02 900a |0091: check-cast v2, Landroid/widget/Spinner; // type@0a90 │ │ -4982f2: 6e10 bf5a 0200 |0093: invoke-virtual {v2}, Landroid/widget/Spinner;.getAdapter:()Landroid/widget/SpinnerAdapter; // method@5abf │ │ -4982f8: 0c08 |0096: move-result-object v8 │ │ -4982fa: 1f08 610a |0097: check-cast v8, Landroid/widget/ArrayAdapter; // type@0a61 │ │ -4982fe: 54ca 3269 |0099: iget-object v10, v12, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ -498302: 1a0b bf88 |009b: const-string v11, "iterationCount" // string@88bf │ │ -498306: 6e30 ccd0 3a0b |009d: invoke-virtual {v10, v3, v11}, Lorg/purple/smokestack/Database;.readSetting:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;)Ljava/lang/String; // method@d0cc │ │ -49830c: 0c0a |00a0: move-result-object v10 │ │ -49830e: 6e20 e858 a800 |00a1: invoke-virtual {v8, v10}, Landroid/widget/ArrayAdapter;.getPosition:(Ljava/lang/Object;)I // method@58e8 │ │ -498314: 0a08 |00a4: move-result v8 │ │ -498316: 7120 995c 8700 |00a5: invoke-static {v7, v8}, Ljava/lang/Math;.max:(II)I // method@5c99 │ │ -49831c: 0a08 |00a8: move-result v8 │ │ -49831e: 6e20 da5a 8200 |00a9: invoke-virtual {v2, v8}, Landroid/widget/Spinner;.setSelection:(I)V // method@5ada │ │ -498324: 2804 |00ac: goto 00b0 // +0004 │ │ -498326: 6e20 da5a 7200 |00ad: invoke-virtual {v2, v7}, Landroid/widget/Spinner;.setSelection:(I)V // method@5ada │ │ -49832c: 55c2 3a69 |00b0: iget-boolean v2, v12, Lorg/purple/smokestack/Settings;.m_receiverRegistered:Z // field@693a │ │ -498330: 3902 1c00 |00b2: if-nez v2, 00ce // +001c │ │ -498334: 2202 4a00 |00b4: new-instance v2, Landroid/content/IntentFilter; // type@004a │ │ -498338: 7010 c901 0200 |00b6: invoke-direct {v2}, Landroid/content/IntentFilter;.:()V // method@01c9 │ │ -49833e: 1a07 0f9e |00b9: const-string v7, "org.purple.smokestack.populate_ozones_participants" // string@9e0f │ │ -498342: 6e20 ca01 7200 |00bb: invoke-virtual {v2, v7}, Landroid/content/IntentFilter;.addAction:(Ljava/lang/String;)V // method@01ca │ │ -498348: 1a07 109e |00be: const-string v7, "org.purple.smokestack.populate_participants" // string@9e10 │ │ -49834c: 6e20 ca01 7200 |00c0: invoke-virtual {v2, v7}, Landroid/content/IntentFilter;.addAction:(Ljava/lang/String;)V // method@01ca │ │ -498352: 7110 cf1d 0c00 |00c3: invoke-static {v12}, Landroid/support/v4/content/LocalBroadcastManager;.getInstance:(Landroid/content/Context;)Landroid/support/v4/content/LocalBroadcastManager; // method@1dcf │ │ -498358: 0c07 |00c6: move-result-object v7 │ │ -49835a: 54c8 3969 |00c7: iget-object v8, v12, Lorg/purple/smokestack/Settings;.m_receiver:Lorg/purple/smokestack/Settings$SettingsBroadcastReceiver; // field@6939 │ │ -49835e: 6e30 d01d 8702 |00c9: invoke-virtual {v7, v8, v2}, Landroid/support/v4/content/LocalBroadcastManager;.registerReceiver:(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)V // method@1dd0 │ │ -498364: 5cc6 3a69 |00cc: iput-boolean v6, v12, Lorg/purple/smokestack/Settings;.m_receiverRegistered:Z // field@693a │ │ -498368: 54c2 3269 |00ce: iget-object v2, v12, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ -49836c: 6e30 ccd0 3204 |00d0: invoke-virtual {v2, v3, v4}, Lorg/purple/smokestack/Database;.readSetting:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;)Ljava/lang/String; // method@d0cc │ │ -498372: 0c02 |00d3: move-result-object v2 │ │ -498374: 6e20 da5c 5200 |00d4: invoke-virtual {v2, v5}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ -49837a: 0a02 |00d7: move-result v2 │ │ -49837c: 3802 0600 |00d8: if-eqz v2, 00de // +0006 │ │ -498380: 7010 19d2 0c00 |00da: invoke-direct {v12}, Lorg/purple/smokestack/Settings;.startListenersTimers:()V // method@d219 │ │ -498386: 2804 |00dd: goto 00e1 // +0004 │ │ -498388: 7020 0ad2 3c00 |00de: invoke-direct {v12, v3}, Lorg/purple/smokestack/Settings;.populateListeners:(Ljava/util/ArrayList;)V // method@d20a │ │ -49838e: 54c2 3269 |00e1: iget-object v2, v12, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ -498392: 6e30 ccd0 3209 |00e3: invoke-virtual {v2, v3, v9}, Lorg/purple/smokestack/Database;.readSetting:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;)Ljava/lang/String; // method@d0cc │ │ -498398: 0c02 |00e6: move-result-object v2 │ │ -49839a: 6e20 da5c 5200 |00e7: invoke-virtual {v2, v5}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ -4983a0: 0a02 |00ea: move-result v2 │ │ -4983a2: 3802 0600 |00eb: if-eqz v2, 00f1 // +0006 │ │ -4983a6: 7010 1ad2 0c00 |00ed: invoke-direct {v12}, Lorg/purple/smokestack/Settings;.startNeighborsTimers:()V // method@d21a │ │ -4983ac: 2804 |00f0: goto 00f4 // +0004 │ │ -4983ae: 7020 0bd2 3c00 |00f1: invoke-direct {v12, v3}, Lorg/purple/smokestack/Settings;.populateNeighbors:(Ljava/util/ArrayList;)V // method@d20b │ │ -4983b4: 54c2 3269 |00f4: iget-object v2, v12, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ -4983b8: 6e10 acd0 0200 |00f6: invoke-virtual {v2}, Lorg/purple/smokestack/Database;.deleteEchoQueue:()V // method@d0ac │ │ -4983be: 7010 0fd2 0c00 |00f9: invoke-direct {v12}, Lorg/purple/smokestack/Settings;.prepareListenerIpAddress:()V // method@d20f │ │ -4983c4: 7010 10d2 0c00 |00fc: invoke-direct {v12}, Lorg/purple/smokestack/Settings;.prepareListeners:()V // method@d210 │ │ -4983ca: 7010 17d2 0c00 |00ff: invoke-direct {v12}, Lorg/purple/smokestack/Settings;.startGeneralTimer:()V // method@d217 │ │ -4983d0: 7100 43d2 0000 |0102: invoke-static {}, Lorg/purple/smokestack/State;.getInstance:()Lorg/purple/smokestack/State; // method@d243 │ │ -4983d6: 0c02 |0105: move-result-object v2 │ │ -4983d8: 6e10 45d2 0200 |0106: invoke-virtual {v2}, Lorg/purple/smokestack/State;.isAuthenticated:()Z // method@d245 │ │ -4983de: 0a02 |0109: move-result v2 │ │ -4983e0: 3802 3000 |010a: if-eqz v2, 013a // +0030 │ │ -4983e4: 6e20 f6d1 0c00 |010c: invoke-virtual {v12, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -4983ea: 0c00 |010f: move-result-object v0 │ │ -4983ec: 1f00 920a |0110: check-cast v0, Landroid/widget/Switch; // type@0a92 │ │ -4983f0: 6e10 e65a 0000 |0112: invoke-virtual {v0}, Landroid/widget/Switch;.isChecked:()Z // method@5ae6 │ │ -4983f6: 0a00 |0115: move-result v0 │ │ -4983f8: 3800 0500 |0116: if-eqz v0, 011b // +0005 │ │ -4983fc: 7010 19d2 0c00 |0118: invoke-direct {v12}, Lorg/purple/smokestack/Settings;.startListenersTimers:()V // method@d219 │ │ -498402: 6e20 f6d1 1c00 |011b: invoke-virtual {v12, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -498408: 0c00 |011e: move-result-object v0 │ │ -49840a: 1f00 920a |011f: check-cast v0, Landroid/widget/Switch; // type@0a92 │ │ -49840e: 6e10 e65a 0000 |0121: invoke-virtual {v0}, Landroid/widget/Switch;.isChecked:()Z // method@5ae6 │ │ -498414: 0a00 |0124: move-result v0 │ │ -498416: 3800 0500 |0125: if-eqz v0, 012a // +0005 │ │ -49841a: 7010 1ad2 0c00 |0127: invoke-direct {v12}, Lorg/purple/smokestack/Settings;.startNeighborsTimers:()V // method@d21a │ │ -498420: 7020 0ad2 3c00 |012a: invoke-direct {v12, v3}, Lorg/purple/smokestack/Settings;.populateListeners:(Ljava/util/ArrayList;)V // method@d20a │ │ -498426: 7020 0bd2 3c00 |012d: invoke-direct {v12, v3}, Lorg/purple/smokestack/Settings;.populateNeighbors:(Ljava/util/ArrayList;)V // method@d20b │ │ -49842c: 7010 0cd2 0c00 |0130: invoke-direct {v12}, Lorg/purple/smokestack/Settings;.populateOzoneAddresses:()V // method@d20c │ │ -498432: 7010 0dd2 0c00 |0133: invoke-direct {v12}, Lorg/purple/smokestack/Settings;.populateParticipants:()V // method@d20d │ │ -498438: 7010 18d2 0c00 |0136: invoke-direct {v12}, Lorg/purple/smokestack/Settings;.startKernel:()V // method@d218 │ │ -49843e: 280f |0139: goto 0148 // +000f │ │ -498440: 1400 5c00 087f |013a: const v0, #float 1.80777e+38 // #7f08005c │ │ -498446: 6e20 f6d1 0c00 |013d: invoke-virtual {v12, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ -49844c: 0c00 |0140: move-result-object v0 │ │ -49844e: 1f00 9c0a |0141: check-cast v0, Landroid/widget/TextView; // type@0a9c │ │ -498452: 1a01 3d20 |0143: const-string v1, "Internal Neighbors Container Size: 0" // string@203d │ │ -498456: 6e20 525b 1000 |0145: invoke-virtual {v0, v1}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ -49845c: 0e00 |0148: return-void │ │ +4981b8: |[4981b8] org.purple.smokestack.Settings.onStart:()V │ │ +4981c8: 6f10 283d 0c00 |0000: invoke-super {v12}, Landroid/support/v7/app/AppCompatActivity;.onStart:()V // method@3d28 │ │ +4981ce: 54c0 3269 |0003: iget-object v0, v12, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ +4981d2: 1a01 cca0 |0005: const-string v1, "prefer_active_screen" // string@a0cc │ │ +4981d6: 6e20 b2d0 1000 |0007: invoke-virtual {v0, v1}, Lorg/purple/smokestack/Database;.deleteSetting:(Ljava/lang/String;)V // method@d0b2 │ │ +4981dc: 7100 43d2 0000 |000a: invoke-static {}, Lorg/purple/smokestack/State;.getInstance:()Lorg/purple/smokestack/State; // method@d243 │ │ +4981e2: 0c00 |000d: move-result-object v0 │ │ +4981e4: 6e10 45d2 0000 |000e: invoke-virtual {v0}, Lorg/purple/smokestack/State;.isAuthenticated:()Z // method@d245 │ │ +4981ea: 0a00 |0011: move-result v0 │ │ +4981ec: 3900 0e00 |0012: if-nez v0, 0020 // +000e │ │ +4981f0: 54c0 3269 |0014: iget-object v0, v12, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ +4981f4: 6e10 a0d0 0000 |0016: invoke-virtual {v0}, Lorg/purple/smokestack/Database;.accountPrepared:()Z // method@d0a0 │ │ +4981fa: 0a00 |0019: move-result v0 │ │ +4981fc: 3800 0600 |001a: if-eqz v0, 0020 // +0006 │ │ +498200: 7010 15d2 0c00 |001c: invoke-direct {v12}, Lorg/purple/smokestack/Settings;.showAuthenticateActivity:()V // method@d215 │ │ +498206: 0e00 |001f: return-void │ │ +498208: 54c0 3969 |0020: iget-object v0, v12, Lorg/purple/smokestack/Settings;.m_receiver:Lorg/purple/smokestack/Settings$SettingsBroadcastReceiver; // field@6939 │ │ +49820c: 3900 0900 |0022: if-nez v0, 002b // +0009 │ │ +498210: 2200 ef1e |0024: new-instance v0, Lorg/purple/smokestack/Settings$SettingsBroadcastReceiver; // type@1eef │ │ +498214: 7020 d8d1 c000 |0026: invoke-direct {v0, v12}, Lorg/purple/smokestack/Settings$SettingsBroadcastReceiver;.:(Lorg/purple/smokestack/Settings;)V // method@d1d8 │ │ +49821a: 5bc0 3969 |0029: iput-object v0, v12, Lorg/purple/smokestack/Settings;.m_receiver:Lorg/purple/smokestack/Settings$SettingsBroadcastReceiver; // field@6939 │ │ +49821e: 1400 2300 087f |002b: const v0, #float 1.80776e+38 // #7f080023 │ │ +498224: 6e20 f6d1 0c00 |002e: invoke-virtual {v12, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +49822a: 0c01 |0031: move-result-object v1 │ │ +49822c: 1f01 920a |0032: check-cast v1, Landroid/widget/Switch; // type@0a92 │ │ +498230: 54c2 3269 |0034: iget-object v2, v12, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ +498234: 1203 |0036: const/4 v3, #int 0 // #0 │ │ +498236: 1a04 1c63 |0037: const-string v4, "automatic_listeners_refresh" // string@631c │ │ +49823a: 6e30 ccd0 3204 |0039: invoke-virtual {v2, v3, v4}, Lorg/purple/smokestack/Database;.readSetting:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;)Ljava/lang/String; // method@d0cc │ │ +498240: 0c02 |003c: move-result-object v2 │ │ +498242: 1a05 17b3 |003d: const-string v5, "true" // string@b317 │ │ +498246: 6e20 da5c 5200 |003f: invoke-virtual {v2, v5}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ +49824c: 0a02 |0042: move-result v2 │ │ +49824e: 1216 |0043: const/4 v6, #int 1 // #1 │ │ +498250: 1207 |0044: const/4 v7, #int 0 // #0 │ │ +498252: 3802 0600 |0045: if-eqz v2, 004b // +0006 │ │ +498256: 6e20 e75a 6100 |0047: invoke-virtual {v1, v6}, Landroid/widget/Switch;.setChecked:(Z)V // method@5ae7 │ │ +49825c: 2804 |004a: goto 004e // +0004 │ │ +49825e: 6e20 e75a 7100 |004b: invoke-virtual {v1, v7}, Landroid/widget/Switch;.setChecked:(Z)V // method@5ae7 │ │ +498264: 1401 2400 087f |004e: const v1, #float 1.80776e+38 // #7f080024 │ │ +49826a: 6e20 f6d1 1c00 |0051: invoke-virtual {v12, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +498270: 0c02 |0054: move-result-object v2 │ │ +498272: 1f02 920a |0055: check-cast v2, Landroid/widget/Switch; // type@0a92 │ │ +498276: 54c8 3269 |0057: iget-object v8, v12, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ +49827a: 1a09 1d63 |0059: const-string v9, "automatic_neighbors_refresh" // string@631d │ │ +49827e: 6e30 ccd0 3809 |005b: invoke-virtual {v8, v3, v9}, Lorg/purple/smokestack/Database;.readSetting:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;)Ljava/lang/String; // method@d0cc │ │ +498284: 0c08 |005e: move-result-object v8 │ │ +498286: 6e20 da5c 5800 |005f: invoke-virtual {v8, v5}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ +49828c: 0a08 |0062: move-result v8 │ │ +49828e: 3808 0600 |0063: if-eqz v8, 0069 // +0006 │ │ +498292: 6e20 e75a 6200 |0065: invoke-virtual {v2, v6}, Landroid/widget/Switch;.setChecked:(Z)V // method@5ae7 │ │ +498298: 2804 |0068: goto 006c // +0004 │ │ +49829a: 6e20 e75a 7200 |0069: invoke-virtual {v2, v7}, Landroid/widget/Switch;.setChecked:(Z)V // method@5ae7 │ │ +4982a0: 1402 7600 087f |006c: const v2, #float 1.80777e+38 // #7f080076 │ │ +4982a6: 6e20 f6d1 2c00 |006f: invoke-virtual {v12, v2}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4982ac: 0c02 |0072: move-result-object v2 │ │ +4982ae: 1f02 920a |0073: check-cast v2, Landroid/widget/Switch; // type@0a92 │ │ +4982b2: 54c8 3269 |0075: iget-object v8, v12, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ +4982b6: 1a0a 0298 |0077: const-string v10, "neighbors_details" // string@9802 │ │ +4982ba: 6e30 ccd0 380a |0079: invoke-virtual {v8, v3, v10}, Lorg/purple/smokestack/Database;.readSetting:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;)Ljava/lang/String; // method@d0cc │ │ +4982c0: 0c08 |007c: move-result-object v8 │ │ +4982c2: 6e20 da5c 5800 |007d: invoke-virtual {v8, v5}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ +4982c8: 0a08 |0080: move-result v8 │ │ +4982ca: 3808 0600 |0081: if-eqz v8, 0087 // +0006 │ │ +4982ce: 6e20 e75a 6200 |0083: invoke-virtual {v2, v6}, Landroid/widget/Switch;.setChecked:(Z)V // method@5ae7 │ │ +4982d4: 2804 |0086: goto 008a // +0004 │ │ +4982d6: 6e20 e75a 7200 |0087: invoke-virtual {v2, v7}, Landroid/widget/Switch;.setChecked:(Z)V // method@5ae7 │ │ +4982dc: 1402 5f00 087f |008a: const v2, #float 1.80777e+38 // #7f08005f │ │ +4982e2: 6e20 f6d1 2c00 |008d: invoke-virtual {v12, v2}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4982e8: 0c02 |0090: move-result-object v2 │ │ +4982ea: 1f02 900a |0091: check-cast v2, Landroid/widget/Spinner; // type@0a90 │ │ +4982ee: 6e10 bf5a 0200 |0093: invoke-virtual {v2}, Landroid/widget/Spinner;.getAdapter:()Landroid/widget/SpinnerAdapter; // method@5abf │ │ +4982f4: 0c08 |0096: move-result-object v8 │ │ +4982f6: 1f08 610a |0097: check-cast v8, Landroid/widget/ArrayAdapter; // type@0a61 │ │ +4982fa: 54ca 3269 |0099: iget-object v10, v12, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ +4982fe: 1a0b bf88 |009b: const-string v11, "iterationCount" // string@88bf │ │ +498302: 6e30 ccd0 3a0b |009d: invoke-virtual {v10, v3, v11}, Lorg/purple/smokestack/Database;.readSetting:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;)Ljava/lang/String; // method@d0cc │ │ +498308: 0c0a |00a0: move-result-object v10 │ │ +49830a: 6e20 e858 a800 |00a1: invoke-virtual {v8, v10}, Landroid/widget/ArrayAdapter;.getPosition:(Ljava/lang/Object;)I // method@58e8 │ │ +498310: 0a08 |00a4: move-result v8 │ │ +498312: 7120 995c 8700 |00a5: invoke-static {v7, v8}, Ljava/lang/Math;.max:(II)I // method@5c99 │ │ +498318: 0a08 |00a8: move-result v8 │ │ +49831a: 6e20 da5a 8200 |00a9: invoke-virtual {v2, v8}, Landroid/widget/Spinner;.setSelection:(I)V // method@5ada │ │ +498320: 2804 |00ac: goto 00b0 // +0004 │ │ +498322: 6e20 da5a 7200 |00ad: invoke-virtual {v2, v7}, Landroid/widget/Spinner;.setSelection:(I)V // method@5ada │ │ +498328: 55c2 3a69 |00b0: iget-boolean v2, v12, Lorg/purple/smokestack/Settings;.m_receiverRegistered:Z // field@693a │ │ +49832c: 3902 1c00 |00b2: if-nez v2, 00ce // +001c │ │ +498330: 2202 4a00 |00b4: new-instance v2, Landroid/content/IntentFilter; // type@004a │ │ +498334: 7010 c901 0200 |00b6: invoke-direct {v2}, Landroid/content/IntentFilter;.:()V // method@01c9 │ │ +49833a: 1a07 0f9e |00b9: const-string v7, "org.purple.smokestack.populate_ozones_participants" // string@9e0f │ │ +49833e: 6e20 ca01 7200 |00bb: invoke-virtual {v2, v7}, Landroid/content/IntentFilter;.addAction:(Ljava/lang/String;)V // method@01ca │ │ +498344: 1a07 109e |00be: const-string v7, "org.purple.smokestack.populate_participants" // string@9e10 │ │ +498348: 6e20 ca01 7200 |00c0: invoke-virtual {v2, v7}, Landroid/content/IntentFilter;.addAction:(Ljava/lang/String;)V // method@01ca │ │ +49834e: 7110 cf1d 0c00 |00c3: invoke-static {v12}, Landroid/support/v4/content/LocalBroadcastManager;.getInstance:(Landroid/content/Context;)Landroid/support/v4/content/LocalBroadcastManager; // method@1dcf │ │ +498354: 0c07 |00c6: move-result-object v7 │ │ +498356: 54c8 3969 |00c7: iget-object v8, v12, Lorg/purple/smokestack/Settings;.m_receiver:Lorg/purple/smokestack/Settings$SettingsBroadcastReceiver; // field@6939 │ │ +49835a: 6e30 d01d 8702 |00c9: invoke-virtual {v7, v8, v2}, Landroid/support/v4/content/LocalBroadcastManager;.registerReceiver:(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)V // method@1dd0 │ │ +498360: 5cc6 3a69 |00cc: iput-boolean v6, v12, Lorg/purple/smokestack/Settings;.m_receiverRegistered:Z // field@693a │ │ +498364: 54c2 3269 |00ce: iget-object v2, v12, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ +498368: 6e30 ccd0 3204 |00d0: invoke-virtual {v2, v3, v4}, Lorg/purple/smokestack/Database;.readSetting:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;)Ljava/lang/String; // method@d0cc │ │ +49836e: 0c02 |00d3: move-result-object v2 │ │ +498370: 6e20 da5c 5200 |00d4: invoke-virtual {v2, v5}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ +498376: 0a02 |00d7: move-result v2 │ │ +498378: 3802 0600 |00d8: if-eqz v2, 00de // +0006 │ │ +49837c: 7010 19d2 0c00 |00da: invoke-direct {v12}, Lorg/purple/smokestack/Settings;.startListenersTimers:()V // method@d219 │ │ +498382: 2804 |00dd: goto 00e1 // +0004 │ │ +498384: 7020 0ad2 3c00 |00de: invoke-direct {v12, v3}, Lorg/purple/smokestack/Settings;.populateListeners:(Ljava/util/ArrayList;)V // method@d20a │ │ +49838a: 54c2 3269 |00e1: iget-object v2, v12, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ +49838e: 6e30 ccd0 3209 |00e3: invoke-virtual {v2, v3, v9}, Lorg/purple/smokestack/Database;.readSetting:(Lorg/purple/smokestack/Cryptography;Ljava/lang/String;)Ljava/lang/String; // method@d0cc │ │ +498394: 0c02 |00e6: move-result-object v2 │ │ +498396: 6e20 da5c 5200 |00e7: invoke-virtual {v2, v5}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@5cda │ │ +49839c: 0a02 |00ea: move-result v2 │ │ +49839e: 3802 0600 |00eb: if-eqz v2, 00f1 // +0006 │ │ +4983a2: 7010 1ad2 0c00 |00ed: invoke-direct {v12}, Lorg/purple/smokestack/Settings;.startNeighborsTimers:()V // method@d21a │ │ +4983a8: 2804 |00f0: goto 00f4 // +0004 │ │ +4983aa: 7020 0bd2 3c00 |00f1: invoke-direct {v12, v3}, Lorg/purple/smokestack/Settings;.populateNeighbors:(Ljava/util/ArrayList;)V // method@d20b │ │ +4983b0: 54c2 3269 |00f4: iget-object v2, v12, Lorg/purple/smokestack/Settings;.m_databaseHelper:Lorg/purple/smokestack/Database; // field@6932 │ │ +4983b4: 6e10 acd0 0200 |00f6: invoke-virtual {v2}, Lorg/purple/smokestack/Database;.deleteEchoQueue:()V // method@d0ac │ │ +4983ba: 7010 0fd2 0c00 |00f9: invoke-direct {v12}, Lorg/purple/smokestack/Settings;.prepareListenerIpAddress:()V // method@d20f │ │ +4983c0: 7010 10d2 0c00 |00fc: invoke-direct {v12}, Lorg/purple/smokestack/Settings;.prepareListeners:()V // method@d210 │ │ +4983c6: 7010 17d2 0c00 |00ff: invoke-direct {v12}, Lorg/purple/smokestack/Settings;.startGeneralTimer:()V // method@d217 │ │ +4983cc: 7100 43d2 0000 |0102: invoke-static {}, Lorg/purple/smokestack/State;.getInstance:()Lorg/purple/smokestack/State; // method@d243 │ │ +4983d2: 0c02 |0105: move-result-object v2 │ │ +4983d4: 6e10 45d2 0200 |0106: invoke-virtual {v2}, Lorg/purple/smokestack/State;.isAuthenticated:()Z // method@d245 │ │ +4983da: 0a02 |0109: move-result v2 │ │ +4983dc: 3802 3000 |010a: if-eqz v2, 013a // +0030 │ │ +4983e0: 6e20 f6d1 0c00 |010c: invoke-virtual {v12, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +4983e6: 0c00 |010f: move-result-object v0 │ │ +4983e8: 1f00 920a |0110: check-cast v0, Landroid/widget/Switch; // type@0a92 │ │ +4983ec: 6e10 e65a 0000 |0112: invoke-virtual {v0}, Landroid/widget/Switch;.isChecked:()Z // method@5ae6 │ │ +4983f2: 0a00 |0115: move-result v0 │ │ +4983f4: 3800 0500 |0116: if-eqz v0, 011b // +0005 │ │ +4983f8: 7010 19d2 0c00 |0118: invoke-direct {v12}, Lorg/purple/smokestack/Settings;.startListenersTimers:()V // method@d219 │ │ +4983fe: 6e20 f6d1 1c00 |011b: invoke-virtual {v12, v1}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +498404: 0c00 |011e: move-result-object v0 │ │ +498406: 1f00 920a |011f: check-cast v0, Landroid/widget/Switch; // type@0a92 │ │ +49840a: 6e10 e65a 0000 |0121: invoke-virtual {v0}, Landroid/widget/Switch;.isChecked:()Z // method@5ae6 │ │ +498410: 0a00 |0124: move-result v0 │ │ +498412: 3800 0500 |0125: if-eqz v0, 012a // +0005 │ │ +498416: 7010 1ad2 0c00 |0127: invoke-direct {v12}, Lorg/purple/smokestack/Settings;.startNeighborsTimers:()V // method@d21a │ │ +49841c: 7020 0ad2 3c00 |012a: invoke-direct {v12, v3}, Lorg/purple/smokestack/Settings;.populateListeners:(Ljava/util/ArrayList;)V // method@d20a │ │ +498422: 7020 0bd2 3c00 |012d: invoke-direct {v12, v3}, Lorg/purple/smokestack/Settings;.populateNeighbors:(Ljava/util/ArrayList;)V // method@d20b │ │ +498428: 7010 0cd2 0c00 |0130: invoke-direct {v12}, Lorg/purple/smokestack/Settings;.populateOzoneAddresses:()V // method@d20c │ │ +49842e: 7010 0dd2 0c00 |0133: invoke-direct {v12}, Lorg/purple/smokestack/Settings;.populateParticipants:()V // method@d20d │ │ +498434: 7010 18d2 0c00 |0136: invoke-direct {v12}, Lorg/purple/smokestack/Settings;.startKernel:()V // method@d218 │ │ +49843a: 280f |0139: goto 0148 // +000f │ │ +49843c: 1400 5c00 087f |013a: const v0, #float 1.80777e+38 // #7f08005c │ │ +498442: 6e20 f6d1 0c00 |013d: invoke-virtual {v12, v0}, Lorg/purple/smokestack/Settings;.findViewById:(I)Landroid/view/View; // method@d1f6 │ │ +498448: 0c00 |0140: move-result-object v0 │ │ +49844a: 1f00 9c0a |0141: check-cast v0, Landroid/widget/TextView; // type@0a9c │ │ +49844e: 1a01 3d20 |0143: const-string v1, "Internal Neighbors Container Size: 0" // string@203d │ │ +498452: 6e20 525b 1000 |0145: invoke-virtual {v0, v1}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@5b52 │ │ +498458: 0e00 |0148: return-void │ │ catches : 1 │ │ 0x0093 - 0x00ac │ │ Ljava/lang/Exception; -> 0x00ad │ │ positions : │ │ 0x0000 line=2703 │ │ 0x0003 line=2704 │ │ 0x000a line=2710 │ ├── classes.jar │ │ ├── zipinfo {} │ │ │ @@ -1,8 +1,8 @@ │ │ │ -Zip file size: 14022400 bytes, number of entries: 7000 │ │ │ +Zip file size: 14022383 bytes, number of entries: 7000 │ │ │ ?rwxrwxr-x 2.0 unx 125 b- stor 80-Jan-01 00:00 android/support/annotation/AnimRes.class │ │ │ ?rwxrwxr-x 2.0 unx 129 b- stor 80-Jan-01 00:00 android/support/annotation/AnimatorRes.class │ │ │ ?rwxrwxr-x 2.0 unx 124 b- stor 80-Jan-01 00:00 android/support/annotation/AnyRes.class │ │ │ ?rwxrwxr-x 2.0 unx 127 b- stor 80-Jan-01 00:00 android/support/annotation/AnyThread.class │ │ │ ?rwxrwxr-x 2.0 unx 126 b- stor 80-Jan-01 00:00 android/support/annotation/ArrayRes.class │ │ │ ?rwxrwxr-x 2.0 unx 125 b- stor 80-Jan-01 00:00 android/support/annotation/AttrRes.class │ │ │ ?rwxrwxr-x 2.0 unx 130 b- stor 80-Jan-01 00:00 android/support/annotation/BinderThread.class │ │ │ @@ -3044,15 +3044,15 @@ │ │ │ ?rwxrwxr-x 2.0 unx 1011 b- stor 80-Jan-01 00:00 org/purple/smokestack/Settings$28.class │ │ │ ?rwxrwxr-x 2.0 unx 1872 b- stor 80-Jan-01 00:00 org/purple/smokestack/Settings$29$1.class │ │ │ ?rwxrwxr-x 2.0 unx 1117 b- stor 80-Jan-01 00:00 org/purple/smokestack/Settings$29.class │ │ │ ?rwxrwxr-x 2.0 unx 715 b- stor 80-Jan-01 00:00 org/purple/smokestack/Settings$2.class │ │ │ ?rwxrwxr-x 2.0 unx 3294 b- stor 80-Jan-01 00:00 org/purple/smokestack/Settings$2SingleShot$1.class │ │ │ ?rwxrwxr-x 2.0 unx 2932 b- stor 80-Jan-01 00:00 org/purple/smokestack/Settings$2SingleShot.class │ │ │ ?rwxrwxr-x 2.0 unx 931 b- stor 80-Jan-01 00:00 org/purple/smokestack/Settings$30.class │ │ │ -?rwxrwxr-x 2.0 unx 942 b- stor 80-Jan-01 00:00 org/purple/smokestack/Settings$31.class │ │ │ +?rwxrwxr-x 2.0 unx 925 b- stor 80-Jan-01 00:00 org/purple/smokestack/Settings$31.class │ │ │ ?rwxrwxr-x 2.0 unx 800 b- stor 80-Jan-01 00:00 org/purple/smokestack/Settings$32.class │ │ │ ?rwxrwxr-x 2.0 unx 769 b- stor 80-Jan-01 00:00 org/purple/smokestack/Settings$33.class │ │ │ ?rwxrwxr-x 2.0 unx 3141 b- stor 80-Jan-01 00:00 org/purple/smokestack/Settings$35.class │ │ │ ?rwxrwxr-x 2.0 unx 640 b- stor 80-Jan-01 00:00 org/purple/smokestack/Settings$3.class │ │ │ ?rwxrwxr-x 2.0 unx 922 b- stor 80-Jan-01 00:00 org/purple/smokestack/Settings$4.class │ │ │ ?rwxrwxr-x 2.0 unx 1937 b- stor 80-Jan-01 00:00 org/purple/smokestack/Settings$5.class │ │ │ ?rwxrwxr-x 2.0 unx 467 b- stor 80-Jan-01 00:00 org/purple/smokestack/Settings$6.class │ │ │ @@ -6995,8 +6995,8 @@ │ │ │ ?rwxrwxr-x 2.0 unx 770 b- stor 80-Jan-01 00:00 android/support/v4/view/ViewCompat$KitKatViewCompatImpl.class │ │ │ ?rwxrwxr-x 2.0 unx 829 b- stor 80-Jan-01 00:00 android/support/v4/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityNodeInfoApi22Impl.class │ │ │ ?rwxrwxr-x 2.0 unx 3468 b- stor 80-Jan-01 00:00 android/support/v4/view/ViewCompat$LollipopViewCompatImpl.class │ │ │ ?rwxrwxr-x 2.0 unx 1008 b- stor 80-Jan-01 00:00 android/support/v4/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityNodeInfoApi23Impl.class │ │ │ ?rwxrwxr-x 2.0 unx 641 b- stor 80-Jan-01 00:00 android/support/v4/view/ViewCompat$MarshmallowViewCompatImpl.class │ │ │ ?rwxrwxr-x 2.0 unx 814 b- stor 80-Jan-01 00:00 android/support/v4/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityNodeInfoApi24Impl.class │ │ │ ?rwxrwxr-x 2.0 unx 539 b- stor 80-Jan-01 00:00 android/support/v4/view/ViewCompat$Api24ViewCompatImpl.class │ │ │ -7000 files, 14523792 bytes uncompressed, 12665252 bytes compressed: 12.8% │ │ │ +7000 files, 14523775 bytes uncompressed, 12665235 bytes compressed: 12.8% │ │ ├── org/purple/smokestack/About.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -32,15 +32,15 @@ │ │ │ │ final StringBuilder sb = new StringBuilder(); │ │ │ │ sb.append("Bouncy Castle Version "); │ │ │ │ try { │ │ │ │ sb.append(new BouncyCastleProvider().getVersion()); │ │ │ │ sb.append("\nSmokeStack Version 2022.04.20 Stack Smash (Final) "); │ │ │ │ sb.append("(Release)"); │ │ │ │ sb.append("\nBuild Date "); │ │ │ │ - final Date date = new Date(1650618817971L); │ │ │ │ + final Date date = new Date(1660444366578L); │ │ │ │ final SimpleDateFormat simpleDateFormat2 = simpleDateFormat; │ │ │ │ try { │ │ │ │ sb.append(simpleDateFormat2.format(date)); │ │ │ │ sb.append(" UTC\nAndroid "); │ │ │ │ sb.append(Build$VERSION.RELEASE); │ │ │ │ String str; │ │ │ │ if (Build$VERSION.SDK_INT < 21) { │ │ ├── org/purple/smokestack/BuildConfig.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,12 +1,12 @@ │ │ │ │ │ │ │ │ package org.purple.smokestack; │ │ │ │ │ │ │ │ public final class BuildConfig │ │ │ │ { │ │ │ │ public static final String APPLICATION_ID = "org.purple.smokestack"; │ │ │ │ - public static final long BUILD_TIME = 1650618817971L; │ │ │ │ + public static final long BUILD_TIME = 1660444366578L; │ │ │ │ public static final String BUILD_TYPE = "release"; │ │ │ │ public static final boolean DEBUG = false; │ │ │ │ public static final int VERSION_CODE = 20220420; │ │ │ │ public static final String VERSION_NAME = "2022.04.20"; │ │ │ │ } │ │ ├── org/purple/smokestack/Settings$31.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -10,29 +10,25 @@ │ │ │ │ } │ │ │ │ │ │ │ │ public void run() { │ │ │ │ try { │ │ │ │ final Settings this$0 = this.this$0; │ │ │ │ try { │ │ │ │ try { │ │ │ │ - final Settings this$2 = this.this$0; │ │ │ │ + final Database access$500 = Settings.access$500(this$0); │ │ │ │ try { │ │ │ │ - final Database access$500 = Settings.access$500(this$2); │ │ │ │ + final Settings$PopulateNeighbors settings$PopulateNeighbors = new Settings$PopulateNeighbors(this$0, access$500.readNeighbors(Settings.access$400())); │ │ │ │ + final Settings settings = this$0; │ │ │ │ try { │ │ │ │ - final Settings$PopulateNeighbors settings$PopulateNeighbors = new Settings$PopulateNeighbors(this$2, access$500.readNeighbors(Settings.access$400())); │ │ │ │ - final Settings settings = this$0; │ │ │ │ - try { │ │ │ │ - settings.runOnUiThread((Runnable)settings$PopulateNeighbors); │ │ │ │ - } │ │ │ │ - catch (Exception ex) {} │ │ │ │ + settings.runOnUiThread((Runnable)settings$PopulateNeighbors); │ │ │ │ } │ │ │ │ - catch (Exception ex2) {} │ │ │ │ + catch (Exception ex) {} │ │ │ │ } │ │ │ │ - catch (Exception ex3) {} │ │ │ │ + catch (Exception ex2) {} │ │ │ │ } │ │ │ │ - catch (Exception ex4) {} │ │ │ │ + catch (Exception ex3) {} │ │ │ │ } │ │ │ │ - catch (Exception ex5) {} │ │ │ │ + catch (Exception ex4) {} │ │ │ │ } │ │ │ │ - catch (Exception ex6) {} │ │ │ │ + catch (Exception ex5) {} │ │ │ │ } │ │ │ │ } ├── smali/org/purple/smokestack/About.smali │ @@ -91,15 +91,15 @@ │ │ const-string v3, "\nBuild Date " │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ new-instance v3, Ljava/util/Date; │ │ - const-wide v4, 0x180508c5db3L │ + const-wide v4, 0x1829a3256f2L │ │ invoke-direct {v3, v4, v5}, Ljava/util/Date;->(J)V │ │ .line 62 │ invoke-virtual {v1, v3}, Ljava/text/SimpleDateFormat;->format(Ljava/util/Date;)Ljava/lang/String; │ │ move-result-object v1 ├── smali/org/purple/smokestack/Settings$31.smali │ @@ -32,39 +32,37 @@ │ │ return-void │ .end method │ │ │ # virtual methods │ .method public run()V │ - .locals 5 │ + .locals 4 │ │ .line 2291 │ :try_start_0 │ iget-object v0, p0, Lorg/purple/smokestack/Settings$31;->this$0:Lorg/purple/smokestack/Settings; │ │ new-instance v1, Lorg/purple/smokestack/Settings$PopulateNeighbors; │ │ - iget-object v2, p0, Lorg/purple/smokestack/Settings$31;->this$0:Lorg/purple/smokestack/Settings; │ - │ .line 2293 │ - invoke-static {v2}, Lorg/purple/smokestack/Settings;->access$500(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; │ + invoke-static {v0}, Lorg/purple/smokestack/Settings;->access$500(Lorg/purple/smokestack/Settings;)Lorg/purple/smokestack/Database; │ │ - move-result-object v3 │ + move-result-object v2 │ │ .line 2294 │ invoke-static {}, Lorg/purple/smokestack/Settings;->access$400()Lorg/purple/smokestack/Cryptography; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - invoke-virtual {v3, v4}, Lorg/purple/smokestack/Database;->readNeighbors(Lorg/purple/smokestack/Cryptography;)Ljava/util/ArrayList; │ + invoke-virtual {v2, v3}, Lorg/purple/smokestack/Database;->readNeighbors(Lorg/purple/smokestack/Cryptography;)Ljava/util/ArrayList; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - invoke-direct {v1, v2, v3}, Lorg/purple/smokestack/Settings$PopulateNeighbors;->(Lorg/purple/smokestack/Settings;Ljava/util/ArrayList;)V │ + invoke-direct {v1, v0, v2}, Lorg/purple/smokestack/Settings$PopulateNeighbors;->(Lorg/purple/smokestack/Settings;Ljava/util/ArrayList;)V │ │ .line 2292 │ invoke-virtual {v0, v1}, Lorg/purple/smokestack/Settings;->runOnUiThread(Ljava/lang/Runnable;)V │ :try_end_0 │ .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 │ │ :catch_0 ├── smali/org/purple/smokestack/BuildConfig.smali │ @@ -2,15 +2,15 @@ │ .super Ljava/lang/Object; │ .source "BuildConfig.java" │ │ │ # static fields │ .field public static final APPLICATION_ID:Ljava/lang/String; = "org.purple.smokestack" │ │ -.field public static final BUILD_TIME:J = 0x180508c5db3L │ +.field public static final BUILD_TIME:J = 0x1829a3256f2L │ │ .field public static final BUILD_TYPE:Ljava/lang/String; = "release" │ │ .field public static final DEBUG:Z = false │ │ .field public static final VERSION_CODE:I = 0x1348a04