	.file	"fact.p"
	.version	"01.01"
gcc2_compiled.:
	.local	_p_MPNGHS
	.comm	_p_MPNGHS,4,4
	.local	_p_MPNGSL
	.comm	_p_MPNGSL,4,4
	.local	_p_MPNGFP
	.comm	_p_MPNGFP,4,4
	.local	Val
	.comm	Val,4,4
.text
	.align 4
	.type	 Helper.2,@function
Helper.2:
	pushl %ebp
	movl %esp,%ebp
	subl $8,%esp
	movl %ecx,-4(%ebp)
	cmpl $0,8(%ebp)
	jne .L3
	movl 12(%ebp),%eax
	movl %eax,-8(%ebp)
	jmp .L4
	.align 4
.L3:
	movl 12(%ebp),%eax
	imull 8(%ebp),%eax
	pushl %eax
	movl 8(%ebp),%eax
	decl %eax
	pushl %eax
	movl -4(%ebp),%ecx
	call Helper.2
	addl $8,%esp
	movl %eax,%eax
	movl %eax,-8(%ebp)
.L4:
	movl -8(%ebp),%edx
	movl %edx,%eax
	jmp .L2
	.align 4
.L2:
	movl %ebp,%esp
	popl %ebp
	ret
.Lfe1:
	.size	 Helper.2,.Lfe1-Helper.2
	.align 4
.globl Factorial
	.type	 Factorial,@function
Factorial:
	pushl %ebp
	movl %esp,%ebp
	subl $4,%esp
	pushl $1
	movl 8(%ebp),%eax
	pushl %eax
	movl %ebp,%ecx
	call Helper.2
	addl $8,%esp
	movl %eax,%eax
	movl %eax,-4(%ebp)
	movl -4(%ebp),%edx
	movl %edx,%eax
	jmp .L1
	.align 4
.L1:
	movl %ebp,%esp
	popl %ebp
	ret
.Lfe2:
	.size	 Factorial,.Lfe2-Factorial
.globl _p_write
.section	.rodata
.LC0:
	.string	"Please enter a number: "
.globl _p_check_inoutres
.globl _p_read
.LC1:
	.string	"The factorial of "
.LC2:
	.string	" is "
.text
	.align 4
.globl program_Factorial
	.type	 program_Factorial,@function
program_Factorial:
	pushl %ebp
	movl %esp,%ebp
	pushl $23
	pushl $.LC0
	pushl $16
	pushl $1
	pushl $_p_stdout
	call _p_write
	addl $20,%esp
	cmpl $0,_p_inoutres
	je .L6
	call _p_check_inoutres
.L6:
	pushl $21
	pushl $Val
	pushl $3
	pushl $2
	pushl $_p_stdin
	call _p_read
	addl $20,%esp
	cmpl $0,_p_inoutres
	je .L7
	call _p_check_inoutres
.L7:
	pushl $17
	pushl $.LC1
	pushl $16
	pushl $1
	pushl $_p_stdout
	call _p_write
	addl $20,%esp
	cmpl $0,_p_inoutres
	je .L8
	call _p_check_inoutres
.L8:
	pushl $1
	movl Val,%eax
	pushl %eax
	pushl $259
	pushl $1
	pushl $_p_stdout
	call _p_write
	addl $20,%esp
	cmpl $0,_p_inoutres
	je .L9
	call _p_check_inoutres
.L9:
	pushl $4
	pushl $.LC2
	pushl $16
	pushl $1
	pushl $_p_stdout
	call _p_write
	addl $20,%esp
	cmpl $0,_p_inoutres
	je .L10
	call _p_check_inoutres
.L10:
	pushl $1
	movl Val,%eax
	pushl %eax
	call Factorial
	addl $4,%esp
	movl %eax,%eax
	pushl %eax
	pushl $259
	pushl $1
	pushl $_p_stdout
	call _p_write
	addl $20,%esp
	cmpl $0,_p_inoutres
	je .L11
	call _p_check_inoutres
.L11:
	pushl $21
	pushl $46
	pushl $14
	pushl $2
	pushl $_p_stdout
	call _p_write
	addl $20,%esp
	cmpl $0,_p_inoutres
	je .L12
	call _p_check_inoutres
.L12:
.L5:
	movl %ebp,%esp
	popl %ebp
	ret
.Lfe3:
	.size	 program_Factorial,.Lfe3-program_Factorial
.globl _p_collect
	.align 4
.globl __init_program_Factorial
	.type	 __init_program_Factorial,@function
__init_program_Factorial:
	pushl %ebp
	movl %esp,%ebp
	cmpl $0,_p_collect_flag
	je .L14
	pushl $0
	pushl $__init_program_Factorial
	call _p_collect
	addl $8,%esp
	jmp .L13
	.align 4
.L14:
.L13:
	movl %ebp,%esp
	popl %ebp
	ret
.Lfe4:
	.size	 __init_program_Factorial,.Lfe4-__init_program_Factorial
.section	.ctors,"aw"
	.long	 __init_program_Factorial
.text
	.align 4
.globl __fini_program_Factorial
	.type	 __fini_program_Factorial,@function
__fini_program_Factorial:
	pushl %ebp
	movl %esp,%ebp
.L15:
	movl %ebp,%esp
	popl %ebp
	ret
.Lfe5:
	.size	 __fini_program_Factorial,.Lfe5-__fini_program_Factorial
.section	.dtors,"aw"
	.long	 __fini_program_Factorial
.globl program_Factorial
.text
	.align 4
.globl main
	.type	 main,@function
main:
	pushl %ebp
	movl %esp,%ebp
	movl 16(%ebp),%eax
	pushl %eax
	movl 12(%ebp),%eax
	pushl %eax
	movl 8(%ebp),%eax
	pushl %eax
	call _p_initialize
	addl $12,%esp
	call program_Factorial
	xorl %eax,%eax
	jmp .L16
	.align 4
.L16:
	movl %ebp,%esp
	popl %ebp
	ret
.Lfe6:
	.size	 main,.Lfe6-main
	.ident	"GCC: (GNU) 2.8.1"
