	.file	"vecsum.c"
	.text
	.p2align 2,,3
.globl vnew
	.type	vnew,@function
vnew:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%esi
	pushl	%ebx
	subl	$12, %esp
	pushl	$4
	movl	8(%ebp), %esi
	call	malloc
	movl	%eax, %ebx
	addl	$16, %esp
	xorl	%eax, %eax
	testl	%ebx, %ebx
	je	.L1
	testl	%esi, %esi
	movl	%esi, (%ebx)
	jle	.L3
	subl	$8, %esp
	pushl	$4
	pushl	%esi
	call	calloc
	addl	$16, %esp
	testl	%eax, %eax
	je	.L6
	movl	%eax, 4(%ebx)
.L5:
	movl	%ebx, %eax
.L1:
	leal	-8(%ebp), %esp
	popl	%ebx
	popl	%esi
	leave
	ret
.L6:
	subl	$12, %esp
	pushl	%ebx
	call	free
	xorl	%eax, %eax
	jmp	.L1
	.p2align 2,,3
.L3:
	movl	$0, 4(%ebx)
	jmp	.L5
.Lfe1:
	.size	vnew,.Lfe1-vnew
	.p2align 2,,3
.globl vget
	.type	vget,@function
vget:
	pushl	%ebp
	movl	%esp, %ebp
	movl	12(%ebp), %edx
	testl	%edx, %edx
	movl	8(%ebp), %eax
	js	.L9
	cmpl	(%eax), %edx
	jl	.L8
.L9:
	xorl	%eax, %eax
.L7:
	leave
	ret
	.p2align 2,,3
.L8:
	movl	4(%eax), %eax
	movl	(%eax,%edx,4), %edx
	movl	16(%ebp), %eax
	movl	%edx, (%eax)
	movl	$1, %eax
	jmp	.L7
.Lfe2:
	.size	vget,.Lfe2-vget
	.p2align 2,,3
.globl vset
	.type	vset,@function
vset:
	pushl	%ebp
	movl	%esp, %ebp
	movl	12(%ebp), %ecx
	testl	%ecx, %ecx
	movl	8(%ebp), %eax
	js	.L12
	cmpl	(%eax), %ecx
	jl	.L11
.L12:
	xorl	%eax, %eax
.L10:
	leave
	ret
	.p2align 2,,3
.L11:
	movl	4(%eax), %edx
	movl	16(%ebp), %eax
	movl	%eax, (%edx,%ecx,4)
	movl	$1, %eax
	jmp	.L10
.Lfe3:
	.size	vset,.Lfe3-vset
	.p2align 2,,3
.globl vlen
	.type	vlen,@function
vlen:
	pushl	%ebp
	movl	%esp, %ebp
	movl	8(%ebp), %eax
	movl	(%eax), %eax
	leave
	ret
.Lfe4:
	.size	vlen,.Lfe4-vlen
	.p2align 2,,3
.globl vdata
	.type	vdata,@function
vdata:
	pushl	%ebp
	movl	%esp, %ebp
	movl	8(%ebp), %eax
	movl	4(%eax), %eax
	leave
	ret
.Lfe5:
	.size	vdata,.Lfe5-vdata
	.p2align 2,,3
.globl sum1
	.type	sum1,@function
sum1:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%edi
	pushl	%esi
	pushl	%ebx
	subl	$12, %esp
	movl	12(%ebp), %esi
	movl	8(%ebp), %edi
	xorl	%ebx, %ebx
	movl	$0, (%esi)
	.p2align 2,,3
.L16:
	subl	$12, %esp
	pushl	%edi
	call	vlen
	addl	$16, %esp
	cmpl	%eax, %ebx
	jge	.L21
	pushl	%eax
	leal	-16(%ebp), %eax
	pushl	%eax
	pushl	%ebx
	pushl	%edi
	call	vget
	movl	-16(%ebp), %eax
	addl	%eax, (%esi)
	addl	$16, %esp
	incl	%ebx
	jmp	.L16
.L21:
	leal	-12(%ebp), %esp
	popl	%ebx
	popl	%esi
	popl	%edi
	leave
	ret
.Lfe6:
	.size	sum1,.Lfe6-sum1
	.p2align 2,,3
.globl sum2
	.type	sum2,@function
sum2:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%edi
	pushl	%esi
	pushl	%ebx
	subl	$24, %esp
	pushl	8(%ebp)
	movl	12(%ebp), %esi
	xorl	%ebx, %ebx
	call	vlen
	addl	$16, %esp
	cmpl	%eax, %ebx
	movl	%eax, %edi
	movl	$0, (%esi)
	jge	.L29
	.p2align 2,,3
.L27:
	pushl	%edx
	leal	-16(%ebp), %eax
	pushl	%eax
	pushl	%ebx
	pushl	8(%ebp)
	call	vget
	incl	%ebx
	movl	-16(%ebp), %eax
	addl	%eax, (%esi)
	addl	$16, %esp
	cmpl	%edi, %ebx
	jl	.L27
.L29:
	leal	-12(%ebp), %esp
	popl	%ebx
	popl	%esi
	popl	%edi
	leave
	ret
.Lfe7:
	.size	sum2,.Lfe7-sum2
	.p2align 2,,3
.globl sum3
	.type	sum3,@function
sum3:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%edi
	pushl	%esi
	pushl	%ebx
	subl	$24, %esp
	movl	8(%ebp), %ebx
	pushl	%ebx
	movl	12(%ebp), %esi
	call	vlen
	movl	%eax, %edi
	movl	%ebx, (%esp)
	call	vdata
	xorl	%edx, %edx
	addl	$16, %esp
	cmpl	%edi, %edx
	movl	%eax, %ecx
	movl	$0, (%esi)
	jge	.L37
	.p2align 2,,3
.L35:
	movl	(%ecx,%edx,4), %eax
	incl	%edx
	addl	%eax, (%esi)
	cmpl	%edi, %edx
	jl	.L35
.L37:
	leal	-12(%ebp), %esp
	popl	%ebx
	popl	%esi
	popl	%edi
	leave
	ret
.Lfe8:
	.size	sum3,.Lfe8-sum3
	.p2align 2,,3
.globl sum4
	.type	sum4,@function
sum4:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%esi
	pushl	%ebx
	subl	$12, %esp
	movl	8(%ebp), %ebx
	pushl	%ebx
	call	vlen
	movl	%eax, %esi
	movl	%ebx, (%esp)
	call	vdata
	xorl	%ecx, %ecx
	xorl	%edx, %edx
	addl	$16, %esp
	cmpl	%esi, %ecx
	jge	.L45
	.p2align 2,,3
.L43:
	addl	(%eax,%edx,4), %ecx
	incl	%edx
	cmpl	%esi, %edx
	jl	.L43
.L45:
	movl	12(%ebp), %eax
	movl	%ecx, (%eax)
	leal	-8(%ebp), %esp
	popl	%ebx
	popl	%esi
	leave
	ret
.Lfe9:
	.size	sum4,.Lfe9-sum4
	.ident	"GCC: (GNU) 3.2.2 20030222 (Red Hat Linux 3.2.2-5)"
