1.class public LB22411633_1; 2.super Ljava/lang/Object; 3 4 5.method public static run(Z)V 6.registers 6 7 # Make v3 & v4 defined, just use null. 8 const v3, 0 9 const v4, 0 10 11 # Allocate a java.lang.Object (do not initialize). 12 new-instance v4, Ljava/lang/Object; 13 14 # Branch forward. 15 if-eqz v5, :LabelMerge 16 17 # Just some random work. 18 add-int/lit16 v3, v3, 1 19 20 # Another branch forward. 21 if-nez v5, :LabelMerge 22 23 # Some more random work, technically dead, but reachable. 24 add-int/lit16 v3, v3, 1 25 26:LabelMerge 27 # v4 is still an uninitialized reference here. Initialize it. 28 invoke-direct {v4}, Ljava/lang/Object;-><init>()V 29 30 # And test whether it's initialized by calling hashCode. 31 invoke-virtual {v4}, Ljava/lang/Object;->hashCode()I 32 33 return-void 34 35.end method 36