reading Blort.class...
method <init> ()V
first 000c
block 0000
  pred 000a
  Blort.java:17@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:17@0000: move-param-object(0) v0:NffffLBlort; <- .
  Blort.java:17@0000: goto . <- .
  next 0000
block 000b
  pred 0000
  Blort.java:17@0004: return-void . <- .
  returns
block 000c
  @????: goto . <- .
  next 000a

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

method edgeSplitMoveException ()V
first 0027
block 0000
  pred 001e
  Blort.java:31@0001: Rop{invoke-virtual . <- Ljava/lang/Object; call throws <any>}(java.lang.Object.hashCode:()I catch java.lang.Throwable) . <- v1:LBlort;
  next 0028
  next 0004 *
block 0004
  pred 0000
  Blort.java:32@0006: Rop{invoke-virtual . <- Ljava/lang/Object; call throws <any>}(java.lang.Object.hashCode:()I catch java.lang.Throwable) . <- v1:LBlort;
  next 0028
  next 001f *
block 001e
  pred 0027
  Blort.java:31@0000: move-param-object(0) v1:LBlort; <- .
  Blort.java:31@0000: goto . <- .
  next 0000
block 001f
  pred 0004
  pred 0028
  Blort.java:35@000e: return-void . <- .
  returns
block 0027
  @????: goto . <- .
  next 001e
block 0028
  pred 0000
  pred 0004
  Blort.java:33@000d: Rop{move-exception Ljava/lang/Throwable; <- . flows} v0:Ljava/lang/Throwable; <- .
  @????: goto . <- .
  next 001f

method infiniteLoop ()V
first 0003
block 0000
  pred 0000
  pred 0002
  Blort.java:41@0000: goto . <- .
  next 0000
block 0002
  pred 0003
  Blort.java:41@0000: move-param-object(0) v0:LBlort; <- .
  Blort.java:41@0000: goto . <- .
  next 0000
block 0003
  @????: goto . <- .
  next 0002
