reading Blort.class...
method <init> ()V
first 000c
block 0000
  pred 000a
  Blort.java:2@0001: Rop{invoke-direct . <- Ljava/lang/Object; call throws <any
  >}(java.lang.Object.<init>:()V catch) . <- v0:NffffLBlort;
  next 000b
block 000a
  pred 000c
  Blort.java:2@0000: move-param-object(0) v0:"this"NffffLBlort; <- .
  Blort.java:2@0000: goto . <- .
  next 0000
block 000b
  pred 0000
  Blort.java:4@0004: return-void . <- .
  returns
block 000c
  @????: goto . <- .
  next 000a

method testNumeric ()V
first 005e
block 0000
  pred 005c
  Blort.java:10@0000: const-int(10) v0:I=10 <- .
  @????: mark-local-int . <- v0:"foo"I
  Blort.java:12@0003: const-int(0) v1:I=0 <- .
  @????: mark-local-int . <- v1:"i"I
  Blort.java:12@0004: goto . <- .
  next 0005
block 0005
  pred 0000
  pred 000b
  Blort.java:12@0008: if-ge-int . <- v1:I v3:I=10
  next 000b *
  next 0018
block 000b
  pred 0005
  Blort.java:13@000f: mul-const-int(10) v2:I <- v1:I
  Blort.java:13@0010: add-int v0:I <- v0:I v2:I
  @????: mark-local-int . <- v0:"foo"I
  Blort.java:12@0012: add-const-int(1) v1:"i"I <- v1:I
  Blort.java:12@0015: goto . <- .
  next 0005
block 0018
  pred 0005
  Blort.java:16@0018: const-int(0) v1:I=0 <- .
  @????: mark-local-int . <- v1:"i"I
  Blort.java:16@0019: goto . <- .
  next 001a
block 001a
  pred 0018
  pred 0020
  Blort.java:16@001d: if-ge-int . <- v1:I v3:I=10
  next 0020 *
  next 005d
block 0020
  pred 001a
  Blort.java:17@0024: add-const-int(10) v2:I <- v1:I
  Blort.java:17@0025: add-int v0:I <- v0:I v2:I
  @????: mark-local-int . <- v0:"foo"I
  Blort.java:16@0027: add-const-int(1) v1:"i"I <- v1:I
  Blort.java:16@002a: goto . <- .
  next 001a
block 005c
  pred 005e
  Blort.java:10@0000: move-param-object(0) v4:"this"LBlort; <- .
  Blort.java:10@0000: goto . <- .
  next 0000
block 005d
  pred 001a
  Blort.java:19@002d: return-void . <- .
  returns
block 005e
  @????: const-int(10) v3:I=10 <- .
  @????: goto . <- .
  next 005c

method testStrings ()V
first 0078
block 0000
  pred 0064
  Blort.java:22@0000: new-instance(java.lang.StringBuilder catch) . <- .
  next 006b
block 0003
  pred 006b
  Blort.java:22@0004: Rop{invoke-direct . <- Ljava/lang/StringBuilder; call thr
  ows <any>}(java.lang.StringBuilder.<init>:()V catch) . <- v0:N0000Ljava/lang/
  StringBuilder;
  next 0007
block 0007
  pred 0003
  @????: mark-local-object . <- v0:"sb"Ljava/lang/StringBuilder;
  Blort.java:24@0009: const-object("foo" catch) . <- .
  next 006c
block 000b
  pred 006c
  Blort.java:24@000b: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l
  ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str
  ing;)Ljava/lang/StringBuilder; catch) . <- v0:Ljava/lang/StringBuilder; v1:Lj
  ava/lang/String;="foo"
  next 000e
block 000e
  pred 000b
  Blort.java:25@0010: const-object("foo" catch) . <- .
  next 006e
block 0012
  pred 006e
  Blort.java:25@0012: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l
  ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str
  ing;)Ljava/lang/StringBuilder; catch) . <- v0:Ljava/lang/StringBuilder; v1:Lj
  ava/lang/String;="foo"
  next 0015
block 0015
  pred 0012
  Blort.java:26@0017: const-object("foo" catch) . <- .
  next 0070
block 0019
  pred 0070
  Blort.java:26@0019: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l
  ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str
  ing;)Ljava/lang/StringBuilder; catch) . <- v0:Ljava/lang/StringBuilder; v1:Lj
  ava/lang/String;="foo"
  next 001c
block 001c
  pred 0019
  Blort.java:27@001e: const-object("foo" catch) . <- .
  next 0072
block 0020
  pred 0072
  Blort.java:27@0020: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l
  ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str
  ing;)Ljava/lang/StringBuilder; catch) . <- v0:Ljava/lang/StringBuilder; v1:Lj
  ava/lang/String;="foo"
  next 0023
block 0023
  pred 0020
  Blort.java:28@0025: const-object("foo" catch) . <- .
  next 0074
block 0027
  pred 0074
  Blort.java:28@0027: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l
  ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str
  ing;)Ljava/lang/StringBuilder; catch) . <- v0:Ljava/lang/StringBuilder; v1:Lj
  ava/lang/String;="foo"
  next 002a
block 002a
  pred 0027
  Blort.java:29@002c: const-object("foo" catch) . <- .
  next 0076
block 002e
  pred 0076
  Blort.java:29@002e: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l
  ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str
  ing;)Ljava/lang/StringBuilder; catch) . <- v0:Ljava/lang/StringBuilder; v1:Lj
  ava/lang/String;="foo"
  next 0065
block 0064
  pred 0078
  Blort.java:22@0000: move-param-object(0) v2:"this"LBlort; <- .
  Blort.java:22@0000: goto . <- .
  next 0000
block 0065
  pred 002e
  Blort.java:30@0032: return-void . <- .
  returns
block 006b
  pred 0000
  Blort.java:22@0000: Rop{move-result-pseudo N0000Ljava/lang/StringBuilder; <- 
  . flows} v0:N0000Ljava/lang/StringBuilder; <- .
  Blort.java:22@0000: goto . <- .
  next 0003
block 006c
  pred 0007
  Blort.java:24@0009: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v1:
  Ljava/lang/String;="foo" <- .
  Blort.java:24@0009: goto . <- .
  next 000b
block 006e
  pred 000e
  Blort.java:25@0010: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v1:
  Ljava/lang/String;="foo" <- .
  Blort.java:25@0010: goto . <- .
  next 0012
block 0070
  pred 0015
  Blort.java:26@0017: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v1:
  Ljava/lang/String;="foo" <- .
  Blort.java:26@0017: goto . <- .
  next 0019
block 0072
  pred 001c
  Blort.java:27@001e: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v1:
  Ljava/lang/String;="foo" <- .
  Blort.java:27@001e: goto . <- .
  next 0020
block 0074
  pred 0023
  Blort.java:28@0025: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v1:
  Ljava/lang/String;="foo" <- .
  Blort.java:28@0025: goto . <- .
  next 0027
block 0076
  pred 002a
  Blort.java:29@002c: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v1:
  Ljava/lang/String;="foo" <- .
  Blort.java:29@002c: goto . <- .
  next 002e
block 0078
  @????: goto . <- .
  next 0064

method testCaughtStrings ()V
first 0094
block 0000
  pred 007e
  Blort.java:33@0000: new-instance(java.lang.StringBuilder catch) . <- .
  next 0085
block 0003
  pred 0085
  Blort.java:33@0004: Rop{invoke-direct . <- Ljava/lang/StringBuilder; call thr
  ows <any>}(java.lang.StringBuilder.<init>:()V catch) . <- v0:N0000Ljava/lang/
  StringBuilder;
  next 0007
block 0007
  pred 0003
  @????: mark-local-object . <- v0:"sb"Ljava/lang/StringBuilder;
  Blort.java:35@0009: const-object("foo" catch) . <- .
  next 0086
block 000b
  pred 0086
  Blort.java:35@000b: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l
  ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str
  ing;)Ljava/lang/StringBuilder; catch) . <- v0:Ljava/lang/StringBuilder; v2:Lj
  ava/lang/String;="foo"
  next 000e
block 000e
  pred 000b
  Blort.java:36@0010: const-object("foo" catch) . <- .
  next 0088
block 0012
  pred 0088
  Blort.java:36@0012: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l
  ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str
  ing;)Ljava/lang/StringBuilder; catch) . <- v0:Ljava/lang/StringBuilder; v2:Lj
  ava/lang/String;="foo"
  next 0015
block 0015
  pred 0012
  Blort.java:37@0017: const-object("foo" catch) . <- .
  next 008a
block 0019
  pred 008a
  Blort.java:37@0019: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l
  ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str
  ing;)Ljava/lang/StringBuilder; catch) . <- v0:Ljava/lang/StringBuilder; v2:Lj
  ava/lang/String;="foo"
  next 001d
block 001d
  pred 0019
  Blort.java:39@001e: const-object("foo" catch java.lang.Throwable) . <- .
  next 0095
  next 008c *
block 0020
  pred 008c
  Blort.java:39@0020: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l
  ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str
  ing;)Ljava/lang/StringBuilder; catch java.lang.Throwable) . <- v0:Ljava/lang/
  StringBuilder; v2:Ljava/lang/String;="foo"
  next 0095
  next 0023 *
block 0023
  pred 0020
  Blort.java:40@0025: const-object("foo" catch java.lang.Throwable) . <- .
  next 0095
  next 008e *
block 0027
  pred 008e
  Blort.java:40@0027: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l
  ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str
  ing;)Ljava/lang/StringBuilder; catch java.lang.Throwable) . <- v0:Ljava/lang/
  StringBuilder; v2:Ljava/lang/String;="foo"
  next 0095
  next 002a *
block 002a
  pred 0027
  Blort.java:41@002c: const-object("foo" catch java.lang.Throwable) . <- .
  next 0095
  next 0090 *
block 002e
  pred 0090
  Blort.java:41@002e: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l
  ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str
  ing;)Ljava/lang/StringBuilder; catch java.lang.Throwable) . <- v0:Ljava/lang/
  StringBuilder; v2:Ljava/lang/String;="foo"
  next 0095
  next 007f *
block 0035
  pred 0095
  @????: mark-local-object . <- v1:"tr"Ljava/lang/Throwable;
  Blort.java:43@0036: get-static-object(java.lang.System.out:Ljava/io/PrintStre
  am; catch) . <- .
  next 0092
block 0039
  pred 0092
  Blort.java:43@0039: const-object("foo" catch) . <- .
  next 0093
block 003b
  pred 0093
  Blort.java:43@003b: Rop{invoke-virtual . <- Ljava/io/PrintStream; Ljava/lang/
  String; call throws <any>}(java.io.PrintStream.println:(Ljava/lang/String;)V 
  catch) . <- v2:Ljava/io/PrintStream; v3:Ljava/lang/String;="foo"
  next 007f
block 007e
  pred 0094
  Blort.java:33@0000: move-param-object(0) v4:"this"LBlort; <- .
  Blort.java:33@0000: goto . <- .
  next 0000
block 007f
  pred 002e
  pred 003b
  Blort.java:45@003e: return-void . <- .
  returns
block 0085
  pred 0000
  Blort.java:33@0000: Rop{move-result-pseudo N0000Ljava/lang/StringBuilder; <- 
  . flows} v0:N0000Ljava/lang/StringBuilder; <- .
  Blort.java:33@0000: goto . <- .
  next 0003
block 0086
  pred 0007
  Blort.java:35@0009: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v2:
  Ljava/lang/String;="foo" <- .
  Blort.java:35@0009: goto . <- .
  next 000b
block 0088
  pred 000e
  Blort.java:36@0010: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v2:
  Ljava/lang/String;="foo" <- .
  Blort.java:36@0010: goto . <- .
  next 0012
block 008a
  pred 0015
  Blort.java:37@0017: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v2:
  Ljava/lang/String;="foo" <- .
  Blort.java:37@0017: goto . <- .
  next 0019
block 008c
  pred 001d
  Blort.java:39@001e: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v2:
  Ljava/lang/String;="foo" <- .
  Blort.java:39@001e: goto . <- .
  next 0020
block 008e
  pred 0023
  Blort.java:40@0025: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v2:
  Ljava/lang/String;="foo" <- .
  Blort.java:40@0025: goto . <- .
  next 0027
block 0090
  pred 002a
  Blort.java:41@002c: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v2:
  Ljava/lang/String;="foo" <- .
  Blort.java:41@002c: goto . <- .
  next 002e
block 0092
  pred 0035
  Blort.java:43@0036: Rop{move-result-pseudo Ljava/io/PrintStream; <- . flows} 
  v2:Ljava/io/PrintStream; <- .
  Blort.java:43@0036: goto . <- .
  next 0039
block 0093
  pred 0039
  Blort.java:43@0039: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v3:
  Ljava/lang/String;="foo" <- .
  Blort.java:43@0039: goto . <- .
  next 003b
block 0094
  @????: goto . <- .
  next 007e
block 0095
  pred 001d
  pred 0020
  pred 0023
  pred 0027
  pred 002a
  pred 002e
  Blort.java:42@0035: Rop{move-exception Ljava/lang/Throwable; <- . flows} v1:L
  java/lang/Throwable; <- .
  @????: goto . <- .
  next 0035

method testLocalVars ()V
first 0004
block 0000
  pred 0002
  Blort.java:49@0000: const-int(10) v3:I=10 <- .
  @????: mark-local-int . <- v3:"i"I
  Blort.java:50@0003: const-int(10) v4:I=10 <- .
  @????: mark-local-int . <- v4:"j"I
  Blort.java:51@0006: const-int(10) v5:I=10 <- .
  @????: mark-local-int . <- v5:"k"I
  Blort.java:52@0009: const-int(10) v0:I=10 <- .
  @????: mark-local-int . <- v0:"a"I
  Blort.java:53@000d: const-int(10) v1:I=10 <- .
  @????: mark-local-int . <- v1:"b"I
  Blort.java:54@0011: const-int(10) v2:I=10 <- .
  @????: mark-local-int . <- v2:"c"I
  Blort.java:56@0018: mul-const-int(10) v3:I=100 <- v3:I
  @????: mark-local-int . <- v3:"i"I=100
  Blort.java:57@001a: goto . <- .
  next 0003
block 0002
  pred 0004
  Blort.java:49@0000: move-param-object(0) v6:"this"LBlort; <- .
  Blort.java:49@0000: goto . <- .
  next 0000
block 0003
  pred 0000
  Blort.java:57@001a: return-void . <- .
  returns
block 0004
  @????: goto . <- .
  next 0002

method testNull (Ljava/lang/Object;)V
first 0021
block 0000
  pred 0018
  Blort.java:60@0002: Rop{invoke-virtual . <- Ljava/lang/Object; Ljava/lang/Obj
  ect; call throws <any>}(java.lang.Object.equals:(Ljava/lang/Object;)Z catch) 
  . <- v2:Ljava/lang/Object; v0:<null>=null
  next 0005
block 0005
  pred 0000
  Blort.java:61@0008: Rop{invoke-virtual . <- Ljava/lang/Object; Ljava/lang/Obj
  ect; call throws <any>}(java.lang.Object.equals:(Ljava/lang/Object;)Z catch) 
  . <- v2:Ljava/lang/Object; v0:<null>=null
  next 0019
block 0018
  pred 0021
  Blort.java:60@0000: move-param-object(0) v1:"this"LBlort; <- .
  Blort.java:60@0000: move-param-object(1) v2:"a"Ljava/lang/Object; <- .
  Blort.java:60@0000: goto . <- .
  next 0000
block 0019
  pred 0005
  Blort.java:63@000c: return-void . <- .
  returns
block 0021
  @????: const-object-nothrow(null) v0:<null>=null <- .
  @????: goto . <- .
  next 0018