; Author: pancake ; Language: java-assembly (jasm) in jasmin syntax ; URL: http://pancake.host.sk/altres/src/Bottle.j .class Bottle .super java/lang/Object .method private static PrintBottle(ILjava/lang/String;)V .limit stack 10 ; .limit locals 4 ; UnDecompilable Hack getstatic java/lang/System/out Ljava/io/PrintStream; dup astore_2 ; get PrintStream object aload_0 ; integer iflt PrintBottle_noint aload_0 bipush 1 if_icmpne PrintBottle_notlast ; 's' Stripper aload_1 ; load string bipush 115 ; 's' bipush 0 invokevirtual java/lang/String/replace(CC)Ljava/lang/String; astore_1 ; save new string PrintBottle_notlast: aload_2 aload_0 invokevirtual java/io/PrintStream/print(I)V PrintBottle_noint: aload_2 ; get PrintStream object aload_1 ; String invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V return .end method .method public static main([Ljava/lang/String;)V .limit stack 666 .limit locals 30 ; UnDeComp Hack bipush 99 astore_1 ; var1=99; this var is args of main xD main_while: aload_1 ldc " bottles of beer on the wall," invokestatic Bottle/PrintBottle(ILjava/lang/String;)V aload_1 ldc " bottles of beer," invokestatic Bottle/PrintBottle(ILjava/lang/String;)V bipush -1 ldc "Take one down pass it around," invokestatic Bottle/PrintBottle(ILjava/lang/String;)V iinc 1 -1 ; var0-- : Drink it! aload_1 ; pop var0 ldc " bottles of beer on the wall\n" invokestatic Bottle/PrintBottle(ILjava/lang/String;)V aload_1 ifne main_while ; if !=0 return .end method