	.file	"fac.c"
	.text
.globl facRec
	.type	facRec, @function
facRec:
.L2:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$4, %esp
	cmpl	$0, 8(%ebp)
	jne	.L3
	movl	$1, -4(%ebp)
	jmp	.L1
.L3:
	subl	$12, %esp
	movl	8(%ebp), %eax
	decl	%eax
	pushl	%eax
	call	facRec
	addl	$16, %esp
	imull	8(%ebp), %eax
	movl	%eax, -4(%ebp)
.L1:
	movl	-4(%ebp), %eax
	leave
	ret
	.size	facRec, .-facRec
.globl facRec3
	.type	facRec3, @function
facRec3:
.L5:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$4, %esp
	cmpl	$0, 12(%ebp)
	jne	.L6
	movl	8(%ebp), %eax
	movl	%eax, -4(%ebp)
	jmp	.L4
.L6:
	subl	$8, %esp
	movl	12(%ebp), %eax
	decl	%eax
	pushl	%eax
	movl	8(%ebp), %eax
	imull	12(%ebp), %eax
	pushl	%eax
	call	facRec3
	addl	$16, %esp
	movl	%eax, -4(%ebp)
.L4:
	movl	-4(%ebp), %eax
	leave
	ret
	.size	facRec3, .-facRec3
.globl facRec2
	.type	facRec2, @function
facRec2:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$8, %esp
	subl	$8, %esp
	pushl	8(%ebp)
	pushl	$1
	call	facRec3
	addl	$16, %esp
	leave
	ret
	.size	facRec2, .-facRec2
.globl facIter
	.type	facIter, @function
facIter:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$4, %esp
	movl	$1, -4(%ebp)
.L9:
	cmpl	$0, 8(%ebp)
	jg	.L10
	jmp	.L11
.L10:
	movl	-4(%ebp), %eax
	imull	8(%ebp), %eax
	movl	%eax, -4(%ebp)
	decl	8(%ebp)
	jmp	.L9
.L11:
	movl	-4(%ebp), %eax
	leave
	ret
	.size	facIter, .-facIter
	.section	.rodata
.LC0:
	.string	"%d,%d,%d\n"
	.text
.globl main
	.type	main, @function
main:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$8, %esp
	andl	$-16, %esp
	movl	$0, %eax
	subl	%eax, %esp
	subl	$12, %esp
	pushl	$5
	call	facIter
	addl	$16, %esp
	pushl	%eax
	subl	$8, %esp
	pushl	$5
	call	facRec2
	addl	$12, %esp
	pushl	%eax
	subl	$4, %esp
	pushl	$5
	call	facRec
	addl	$8, %esp
	pushl	%eax
	pushl	$.LC0
	call	printf
	addl	$16, %esp
	movl	$0, %eax
	leave
	ret
	.size	main, .-main
	.section	.note.GNU-stack,"",@progbits
	.ident	"GCC: (GNU) 3.3.3 (SuSE Linux)"
