
	.global main 
	.align 4
.str9:
	.asciz "in g: %d\n"
.str10:
	.asciz "in f: %d\n"

	.align 4
main:

	save %sp,-200,%sp
	mov 10,%o0
	st %o0,[%fp-20]
	ba endfunc3
	nop
func1:
	save %sp,-200,%sp
	st %i0,[%fp-20]
	set .str9,%o0
	mov %i0,%o1
	call printf
	nop
	mov 0,%o0
	cmp %i0,%o0
	mov 1,%o0
	bg bool4
	nop
	mov %g0,%o0
bool4:
	cmp %o0,1
	bne else5
	nop
	mov 1,%o0
	sub %i0,%o0,%o1
	mov %o0,%l0
	mov %o1,%l1
	mov %l1,%o0
	call func2
	nop
	ba endif5
	nop
else5:
endif5:
	mov %o0,%i0
	ret
	restore
endfunc3:
	ba endfunc6
	nop
func2:
	save %sp,-200,%sp
	st %i0,[%fp-20]
	set .str10,%o0
	mov %i0,%o1
	call printf
	nop
	mov 0,%o0
	cmp %i0,%o0
	mov 1,%o0
	bg bool7
	nop
	mov %g0,%o0
bool7:
	cmp %o0,1
	bne else8
	nop
	mov 1,%o0
	sub %i0,%o0,%o1
	mov %o0,%l0
	mov %o1,%l1
	mov %l1,%o0
	call func1
	nop
	ba endif8
	nop
else8:
endif8:
	mov %o0,%i0
	ret
	restore
endfunc6:
	ld [%fp-20],%o0
	mov %o0,%l0
	call func1
	nop

	mov 1, %g1
	ta 0
