;
; Output created by JasminView on Jun 6, 2002
; mailto:shawn@pobox.com
; Copyright (c) 1997-Present Shawn Silverman
;
; Jasmin can be found at:
;     http://www.cat.nyu.edu/meyer/jasmin/
;

; Classfile version:
;     major: 45
;     minor: 3

.source Gcd.java

.class  Gcd
.super  java/lang/Object

.field private r I

; >> METHOD 1 <<
.method <init>(II)V
    .limit stack 5
    .limit locals 4
;----
.line 6
    aload_0
    invokespecial java/lang/Object/<init>()V
.line 7
    aload_0
    iconst_0
    putfield Gcd/r I
.line 8
    iload_2
    ifne Label1
.line 9
    aload_0
    iload_1
    putfield Gcd/r I
.line 8
    goto Label2
.line 11
Label1:
    new Gcd
    dup
    iload_2
    iload_1
    iload_2
    irem
    invokespecial Gcd/<init>(II)V
    astore_3
.line 12
    aload_0
    aload_3
    invokevirtual Gcd/result()I
    putfield Gcd/r I
.line 6
Label2:
    return
.end method

; >> METHOD 2 <<
.method public static main([Ljava/lang/String;)V
    .limit stack 4
    .limit locals 4
;----
.line 19
    iconst_0
    istore_1
    iconst_0
    istore_2
.line 21
Label1:
    aload_0
    iconst_0
    aaload
    invokestatic java/lang/Integer/parseInt(Ljava/lang/String;)I
    istore_1
.line 23
    aload_0
    iconst_1
    aaload
    invokestatic java/lang/Integer/parseInt(Ljava/lang/String;)I
    istore_2
.line 21
Label2:
    goto Label4
.line 24
Label3:
    astore_3
.line 25
    aload_3
    invokevirtual java/lang/Throwable/printStackTrace()V
.line 26
    getstatic java/lang/System/err Ljava/io/PrintStream;
    ldc "arguments expected."
    invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V
.line 27
    iconst_1
    invokestatic java/lang/System/exit(I)V
.line 30
Label4:
    iload_1
    ifle Label5
    iload_2
    ifgt Label6
.line 31
Label5:
    getstatic java/lang/System/err Ljava/io/PrintStream;
    ldc "Only support a>0 and b>0."
    invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V
.line 32
    iconst_2
    invokestatic java/lang/System/exit(I)V
.line 35
Label6:
    new Gcd
    dup
    iload_1
    iload_2
    invokespecial Gcd/<init>(II)V
    astore_3
.line 36
    getstatic java/lang/System/out Ljava/io/PrintStream;
    new java/lang/StringBuffer
    dup
    iload_1
    invokestatic java/lang/String/valueOf(I)Ljava/lang/String;
    invokespecial java/lang/StringBuffer/<init>(Ljava/lang/String;)V
    ldc ","
    invokevirtual java/lang/StringBuffer/append(Ljava/lang/String;)Ljava/lang/StringBuffer;
    iload_2
    invokevirtual java/lang/StringBuffer/append(I)Ljava/lang/StringBuffer;
    ldc "="
    invokevirtual java/lang/StringBuffer/append(Ljava/lang/String;)Ljava/lang/StringBuffer;
    aload_3
    invokevirtual Gcd/result()I
    invokevirtual java/lang/StringBuffer/append(I)Ljava/lang/StringBuffer;
    invokevirtual java/lang/StringBuffer/toString()Ljava/lang/String;
    invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V
.line 18
    return
;----
.catch java/lang/Exception from Label1 to Label2 using Label3
.end method

; >> METHOD 3 <<
.method result()I
    .limit stack 1
    .limit locals 1
;----
.line 16
    aload_0
    getfield Gcd/r I
    ireturn
.end method