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

method edgeSplitPredTest (I)I
first 002f
block 0000
  pred 0026
  live in:{}
  Blort.java:26@0000: const-int(1) v4:I=1 <- .
  Blort.java:26@0001: move-int v2:I=1 <- v4:I=1
  Blort.java:26@0001: goto . <- .
  next 0002
  live out:{}
block 0002
  pred 0000
  live in:{}
  Blort.java:29@0002: move-int v4:I <- v1:I
  Blort.java:29@0003: Rop{invoke-static . <- I call throws <any>}(java.lang.Integer.toString:(I)Ljava/lang/String; catch java.lang.Object) . <- v4:I
  next 0030
  next 002d *
  live out:{}
block 0006
  pred 002d
  live in:{}
  Blort.java:30@0007: move-int v4:I <- v1:I
  Blort.java:30@0008: Rop{invoke-static . <- I call throws <any>}(java.lang.Integer.toString:(I)Ljava/lang/String; catch java.lang.Object) . <- v4:I
  next 0031
  next 002e *
  live out:{}
block 000b
  pred 002e
  live in:{}
  Blort.java:31@000c: add-const-int(1) v2:I <- v2:I
  Blort.java:31@000c: goto . <- .
  next 000f
  live out:{}
block 000f
  pred 000b
  live in:{}
  Blort.java:33@000f: move-int v4:I <- v2:I
  Blort.java:33@0010: move-int v0:I <- v4:I
  Blort.java:33@0010: goto . <- .
  next 0027
  live out:{}
block 0011
  pred 0024
  live in:{}
  Blort.java:33@0011: move-object v3:Ljava/lang/Class;=java.lang.Object <- v4:Ljava/lang/Class;=java.lang.Object
  Blort.java:33@0011: goto . <- .
  next 0012
  live out:{}
block 0012
  pred 0011
  live in:{}
  Blort.java:33@0012: move-int v4:I <- v2:I
  Blort.java:33@0013: move-int v0:I <- v4:I
  Blort.java:33@0013: goto . <- .
  next 0027
  live out:{}
block 0024
  pred 0030
  pred 0031
  live in:{}
  Blort.java:33@0011: goto . <- .
  next 0011
  live out:{}
block 0026
  pred 002f
  live in:{}
  Blort.java:26@0000: move-param-object(0) v0:LBlort; <- .
  Blort.java:26@0000: move-param-int(1) v1:I <- .
  Blort.java:26@0000: goto . <- .
  next 0000
  live out:{}
block 0027
  pred 000f
  pred 0012
  live in:{}
  Blort.java:33@0010: return-int . <- v0:I
  returns
  live out:{}
block 002d
  pred 0002
  live in:{}
  Blort.java:29@0003: Rop{move-result Ljava/lang/String; <- . flows} v4:Ljava/lang/String; <- .
  Blort.java:29@0003: goto . <- .
  next 0006
  live out:{}
block 002e
  pred 0006
  live in:{}
  Blort.java:30@0008: Rop{move-result Ljava/lang/String; <- . flows} v4:Ljava/lang/String; <- .
  Blort.java:30@0008: goto . <- .
  next 000b
  live out:{}
block 002f
  live in:{}
  @????: goto . <- .
  next 0026
  live out:{}
block 0030
  pred 0002
  live in:{}
  Blort.java:33@0011: Rop{move-exception Ljava/lang/Object; <- . flows} v4:Ljava/lang/Object; <- .
  @????: goto . <- .
  next 0024
  live out:{}
block 0031
  pred 0006
  live in:{}
  Blort.java:33@0011: Rop{move-exception Ljava/lang/Object; <- . flows} v4:Ljava/lang/Object; <- .
  @????: goto . <- .
  next 0024
  live out:{}

method voidFunction ()V
first 0004
block 0000
  pred 0002
  live in:{}
  Blort.java:41@0000: goto . <- .
  next 0003
  live out:{}
block 0002
  pred 0004
  live in:{}
  Blort.java:41@0000: move-param-object(0) v0:LBlort; <- .
  Blort.java:41@0000: goto . <- .
  next 0000
  live out:{}
block 0003
  pred 0000
  live in:{}
  Blort.java:41@0000: return-void . <- .
  returns
  live out:{}
block 0004
  live in:{}
  @????: goto . <- .
  next 0002
  live out:{}

method edgeSplitMoveException ()V
first 0027
block 0000
  pred 001e
  live in:{}
  Blort.java:49@0000: move-object v2:LBlort; <- v0:LBlort;
  Blort.java:49@0001: Rop{invoke-virtual . <- Ljava/lang/Object; call throws <any>}(java.lang.Object.hashCode:()I catch java.lang.Throwable) . <- v2:LBlort;
  next 0028
  next 0025 *
  live out:{}
block 0004
  pred 0025
  live in:{}
  Blort.java:50@0005: move-object v2:LBlort; <- v0:LBlort;
  Blort.java:50@0006: Rop{invoke-virtual . <- Ljava/lang/Object; call throws <any>}(java.lang.Object.hashCode:()I catch java.lang.Throwable) . <- v2:LBlort;
  next 0029
  next 0026 *
  live out:{}
block 0009
  pred 0026
  live in:{}
  @????: goto . <- .
  next 000a
  live out:{}
block 000a
  pred 0009
  live in:{}
  Blort.java:52@000a: goto . <- .
  next 000e
  live out:{}
block 000d
  pred 001c
  live in:{}
  Blort.java:51@000d: move-object v1:Ljava/lang/Class;=java.lang.Throwable <- v2:Ljava/lang/Class;=java.lang.Throwable
  Blort.java:51@000d: goto . <- .
  next 000e
  live out:{}
block 000e
  pred 000a
  pred 000d
  live in:{}
  Blort.java:53@000e: goto . <- .
  next 001f
  live out:{}
block 001c
  pred 0028
  pred 0029
  live in:{}
  Blort.java:51@000d: goto . <- .
  next 000d
  live out:{}
block 001e
  pred 0027
  live in:{}
  Blort.java:49@0000: move-param-object(0) v0:LBlort; <- .
  Blort.java:49@0000: goto . <- .
  next 0000
  live out:{}
block 001f
  pred 000e
  live in:{}
  Blort.java:53@000e: return-void . <- .
  returns
  live out:{}
block 0025
  pred 0000
  live in:{}
  Blort.java:49@0001: Rop{move-result I <- . flows} v2:I <- .
  Blort.java:49@0001: goto . <- .
  next 0004
  live out:{}
block 0026
  pred 0004
  live in:{}
  Blort.java:50@0006: Rop{move-result I <- . flows} v2:I <- .
  Blort.java:50@0006: goto . <- .
  next 0009
  live out:{}
block 0027
  live in:{}
  @????: goto . <- .
  next 001e
  live out:{}
block 0028
  pred 0000
  live in:{}
  Blort.java:51@000d: Rop{move-exception Ljava/lang/Throwable; <- . flows} v2:Ljava/lang/Throwable; <- .
  @????: goto . <- .
  next 001c
  live out:{}
block 0029
  pred 0004
  live in:{}
  Blort.java:51@000d: Rop{move-exception Ljava/lang/Throwable; <- . flows} v2:Ljava/lang/Throwable; <- .
  @????: goto . <- .
  next 001c
  live out:{}

method edgeSplitSuccessor (I)I
first 005a
block 0000
  pred 0058
  live in:{}
  Blort.java:62@0000: const-int(0) v3:I=0 <- .
  Blort.java:62@0001: move-int v2:I=0 <- v3:I=0
  Blort.java:64@0002: move-int v3:I <- v1:I
  Blort.java:64@0003: switch({1, 2, 3}) . <- v3:I
  next 001c
  next 0022
  next 0028
  next 005b *
  live out:{}
block 001c
  pred 0000
  live in:{}
  Blort.java:65@001c: add-const-int(1) v2:I <- v2:I
  Blort.java:66@001f: goto . <- .
  next 002b
  live out:{}
block 0022
  pred 0000
  live in:{}
  Blort.java:67@0022: add-const-int(1) v2:I <- v2:I
  Blort.java:68@0025: goto . <- .
  next 002b
  live out:{}
block 0028
  pred 0000
  live in:{}
  Blort.java:69@0028: add-const-int(1) v2:I <- v2:I
  Blort.java:69@0028: goto . <- .
  next 002b
  live out:{}
block 002b
  pred 001c
  pred 0022
  pred 0028
  pred 005b
  live in:{}
  Blort.java:72@002b: move-int v3:I <- v2:I
  Blort.java:72@002c: move-int v0:I <- v3:I
  Blort.java:72@002c: goto . <- .
  next 0059
  live out:{}
block 0058
  pred 005a
  live in:{}
  Blort.java:62@0000: move-param-object(0) v0:LBlort; <- .
  Blort.java:62@0000: move-param-int(1) v1:I <- .
  Blort.java:62@0000: goto . <- .
  next 0000
  live out:{}
block 0059
  pred 002b
  live in:{}
  Blort.java:72@002c: return-int . <- v0:I
  returns
  live out:{}
block 005a
  live in:{}
  @????: goto . <- .
  next 0058
  live out:{}
block 005b
  pred 0000
  live in:{}
  @????: goto . <- .
  next 002b
  live out:{}
