	.file	"swissvault.c"
.globl initiated
	.bss
	.type	initiated, @object
	.size	initiated, 1
initiated:
	.zero	1
.globl lastkey
	.align 4
	.type	lastkey, @object
	.size	lastkey, 4
lastkey:
	.zero	4
	.text
.globl checkinit
	.type	checkinit, @function
checkinit:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$8, %esp
	cmpb	$0, initiated
	jne	.L8
	call	initiate_vault
.L8:
	leave
	ret
	.size	checkinit, .-checkinit
.globl swiss_keycmp
	.type	swiss_keycmp, @function
swiss_keycmp:
	pushl	%ebp
	movl	%esp, %ebp
	movl	12(%ebp), %eax
	movl	(%eax), %ecx
	movl	16(%ebp), %eax
	movl	(%eax), %eax
	movl	(%eax), %edx
	movl	(%ecx), %eax
	subl	%edx, %eax
	popl	%ebp
	ret
	.size	swiss_keycmp, .-swiss_keycmp
	.section	.rodata
.LC0:
	.string	"newkey: ret=%d\n"
	.text
.globl newkey
	.type	newkey, @function
newkey:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$136, %esp
	call	checkinit
	movl	$24, 8(%esp)
	movl	$0, 4(%esp)
	leal	-56(%ebp), %eax
	movl	%eax, (%esp)
	call	memset
	movl	$24, 8(%esp)
	movl	$0, 4(%esp)
	leal	-88(%ebp), %eax
	movl	%eax, (%esp)
	call	memset
	movl	$4, -52(%ebp)
	leal	-12(%ebp), %eax
	movl	%eax, -56(%ebp)
	movl	lastkey, %eax
	movl	%eax, -12(%ebp)
	movl	-12(%ebp), %ecx
	incl	%ecx
	movl	$1073741825, %eax
	imull	%ecx
	sarl	$29, %edx
	movl	%ecx, %eax
	sarl	$31, %eax
	subl	%eax, %edx
	movl	%edx, %eax
	movl	%eax, -12(%ebp)
	movl	-12(%ebp), %edx
	movl	%edx, %eax
	sall	$31, %eax
	subl	%edx, %eax
	subl	%eax, %ecx
	movl	%ecx, %eax
	movl	%eax, -12(%ebp)
	nop
.L14:
	cmpl	$0, lastkey
	sete	%al
	movzbl	%al, %eax
	movl	%eax, -12(%ebp)
	movl	-12(%ebp), %eax
	testl	%eax, %eax
	jne	.L17
	jmp	.L15
.L17:
	movl	vault, %edx
	movl	$0, 16(%esp)
	leal	-88(%ebp), %eax
	movl	%eax, 12(%esp)
	leal	-56(%ebp), %eax
	movl	%eax, 8(%esp)
	movl	$0, 4(%esp)
	movl	vault, %eax
	movl	%eax, (%esp)
	movl	284(%edx), %eax
	call	*%eax
	movl	%eax, -16(%ebp)
	movl	-16(%ebp), %eax
	movl	%eax, 4(%esp)
	movl	$.LC0, (%esp)
	call	printf
	cmpl	$-30998, -16(%ebp)
	jne	.L16
	movl	-12(%ebp), %eax
	movl	%eax, lastkey
	movl	-12(%ebp), %eax
	movl	%eax, -92(%ebp)
	jmp	.L11
.L16:
	movl	-12(%ebp), %ecx
	incl	%ecx
	movl	$1073741825, %eax
	imull	%ecx
	sarl	$29, %edx
	movl	%ecx, %eax
	sarl	$31, %eax
	subl	%eax, %edx
	movl	%edx, %eax
	movl	%eax, -12(%ebp)
	movl	-12(%ebp), %edx
	movl	%edx, %eax
	sall	$31, %eax
	subl	%edx, %eax
	subl	%eax, %ecx
	movl	%ecx, %eax
	movl	%eax, -12(%ebp)
	jmp	.L14
.L15:
	movl	$-2, -92(%ebp)
.L11:
	movl	-92(%ebp), %eax
	leave
	ret
	.size	newkey, .-newkey
	.section	.rodata
	.align 32
.LC1:
	.string	"length of stored(%d) or tried(%d) PW != SWISS_PWDLEN(%d)\n"
	.text
.globl check_auth
	.type	check_auth, @function
check_auth:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%edi
	subl	$84, %esp
	leal	-40(%ebp), %edi
	cld
	movl	$0, %edx
	movl	$5, %eax
	movl	%eax, %ecx
	movl	%edx, %eax
	rep
	stosl
	cmpl	$20, 20(%ebp)
	jne	.L23
	cmpl	$20, 12(%ebp)
	jne	.L23
	jmp	.L22
.L23:
	movl	$20, 16(%esp)
	movl	20(%ebp), %eax
	movl	%eax, 12(%esp)
	movl	12(%ebp), %eax
	movl	%eax, 8(%esp)
	movl	$.LC1, 4(%esp)
	movl	stderr, %eax
	movl	%eax, (%esp)
	call	fprintf
	movl	$0, -44(%ebp)
	jmp	.L21
.L22:
	movl	16(%ebp), %eax
	movl	%eax, 4(%esp)
	leal	-40(%ebp), %eax
	movl	%eax, (%esp)
	call	swiss_pwd_hash
	leal	-40(%ebp), %eax
	movl	$20, 8(%esp)
	movl	%eax, 4(%esp)
	movl	8(%ebp), %eax
	movl	%eax, (%esp)
	call	memcmp
	testl	%eax, %eax
	je	.L24
	movl	$0, -44(%ebp)
	jmp	.L21
.L24:
	movl	$1, -44(%ebp)
.L21:
	movl	-44(%ebp), %eax
	addl	$84, %esp
	popl	%edi
	popl	%ebp
	ret
	.size	check_auth, .-check_auth
.globl free_account
	.type	free_account, @function
free_account:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$8, %esp
	movl	8(%ebp), %eax
	movl	(%eax), %eax
	movl	%eax, (%esp)
	call	free
	movl	8(%ebp), %eax
	movl	8(%eax), %eax
	movl	%eax, (%esp)
	call	free
	movl	8(%ebp), %eax
	movl	%eax, (%esp)
	call	free
	leave
	ret
	.size	free_account, .-free_account
	.section	.rodata
.LC2:
	.string	"Couldn't get memory"
	.text
.globl marshall_acc
	.type	marshall_acc, @function
marshall_acc:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%ebx
	subl	$20, %esp
	movl	16(%ebp), %eax
	addl	24(%ebp), %eax
	addl	$16, %eax
	movl	%eax, -8(%ebp)
	movl	8(%ebp), %ebx
	movl	-8(%ebp), %eax
	movl	%eax, (%esp)
	call	malloc
	movl	%eax, -12(%ebp)
	movl	-12(%ebp), %eax
	movl	%eax, (%ebx)
	cmpl	$0, -12(%ebp)
	jne	.L28
	movl	$.LC2, (%esp)
	call	perror
	call	__errno_location
	movl	(%eax), %eax
	movl	%eax, (%esp)
	call	exit
.L28:
	movl	$4, 8(%esp)
	leal	12(%ebp), %eax
	addl	$20, %eax
	movl	%eax, 4(%esp)
	movl	-12(%ebp), %eax
	movl	%eax, (%esp)
	call	memcpy
	addl	$4, %eax
	movl	%eax, -12(%ebp)
	movl	$4, 8(%esp)
	leal	12(%ebp), %eax
	addl	$4, %eax
	movl	%eax, 4(%esp)
	movl	-12(%ebp), %eax
	movl	%eax, (%esp)
	call	memcpy
	addl	$4, %eax
	movl	%eax, -12(%ebp)
	movl	$4, 8(%esp)
	leal	12(%ebp), %eax
	addl	$12, %eax
	movl	%eax, 4(%esp)
	movl	-12(%ebp), %eax
	movl	%eax, (%esp)
	call	memcpy
	addl	$4, %eax
	movl	%eax, -12(%ebp)
	movl	$4, 8(%esp)
	leal	12(%ebp), %eax
	addl	$16, %eax
	movl	%eax, 4(%esp)
	movl	-12(%ebp), %eax
	movl	%eax, (%esp)
	call	memcpy
	addl	$4, %eax
	movl	%eax, -12(%ebp)
	movl	16(%ebp), %eax
	movl	%eax, 8(%esp)
	movl	12(%ebp), %eax
	movl	%eax, 4(%esp)
	movl	-12(%ebp), %eax
	movl	%eax, (%esp)
	call	memcpy
	addl	16(%ebp), %eax
	movl	%eax, -12(%ebp)
	movl	24(%ebp), %eax
	movl	%eax, 8(%esp)
	movl	20(%ebp), %eax
	movl	%eax, 4(%esp)
	movl	-12(%ebp), %eax
	movl	%eax, (%esp)
	call	memcpy
	addl	24(%ebp), %eax
	movl	%eax, -12(%ebp)
	movl	-8(%ebp), %eax
	addl	$20, %esp
	popl	%ebx
	popl	%ebp
	ret
	.size	marshall_acc, .-marshall_acc
.globl unmarshall_acc
	.type	unmarshall_acc, @function
unmarshall_acc:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%ebx
	subl	$20, %esp
	movl	8(%ebp), %eax
	movl	%eax, -12(%ebp)
	movl	$24, (%esp)
	call	malloc
	movl	%eax, -8(%ebp)
	cmpl	$0, -8(%ebp)
	jne	.L30
	movl	$.LC2, (%esp)
	call	perror
	call	__errno_location
	movl	(%eax), %eax
	movl	%eax, (%esp)
	call	exit
.L30:
	movl	$4, 8(%esp)
	movl	-12(%ebp), %eax
	movl	%eax, 4(%esp)
	movl	-8(%ebp), %eax
	addl	$20, %eax
	movl	%eax, (%esp)
	call	memcpy
	leal	-12(%ebp), %eax
	addl	$4, (%eax)
	movl	$4, 8(%esp)
	movl	-12(%ebp), %eax
	movl	%eax, 4(%esp)
	movl	-8(%ebp), %eax
	addl	$4, %eax
	movl	%eax, (%esp)
	call	memcpy
	leal	-12(%ebp), %eax
	addl	$4, (%eax)
	movl	$4, 8(%esp)
	movl	-12(%ebp), %eax
	movl	%eax, 4(%esp)
	movl	-8(%ebp), %eax
	addl	$12, %eax
	movl	%eax, (%esp)
	call	memcpy
	leal	-12(%ebp), %eax
	addl	$4, (%eax)
	movl	$4, 8(%esp)
	movl	-12(%ebp), %eax
	movl	%eax, 4(%esp)
	movl	-8(%ebp), %eax
	addl	$16, %eax
	movl	%eax, (%esp)
	call	memcpy
	leal	-12(%ebp), %eax
	addl	$4, (%eax)
	movl	-8(%ebp), %ebx
	movl	-8(%ebp), %eax
	movl	4(%eax), %eax
	movl	%eax, (%esp)
	call	malloc
	movl	%eax, (%ebx)
	cmpl	$0, -8(%ebp)
	jne	.L31
	movl	$.LC2, (%esp)
	call	perror
	call	__errno_location
	movl	(%eax), %eax
	movl	%eax, (%esp)
	call	exit
.L31:
	movl	-8(%ebp), %ebx
	movl	-8(%ebp), %eax
	movl	12(%eax), %eax
	movl	%eax, (%esp)
	call	malloc
	movl	%eax, 8(%ebx)
	cmpl	$0, -8(%ebp)
	jne	.L32
	movl	$.LC2, (%esp)
	call	perror
	call	__errno_location
	movl	(%eax), %eax
	movl	%eax, (%esp)
	call	exit
.L32:
	movl	-8(%ebp), %eax
	movl	4(%eax), %eax
	movl	%eax, 8(%esp)
	movl	-12(%ebp), %eax
	movl	%eax, 4(%esp)
	movl	-8(%ebp), %eax
	movl	(%eax), %eax
	movl	%eax, (%esp)
	call	memcpy
	movl	-8(%ebp), %eax
	movl	4(%eax), %edx
	leal	-12(%ebp), %eax
	addl	%edx, (%eax)
	movl	-8(%ebp), %eax
	movl	12(%eax), %eax
	movl	%eax, 8(%esp)
	movl	-12(%ebp), %eax
	movl	%eax, 4(%esp)
	movl	-8(%ebp), %eax
	movl	8(%eax), %eax
	movl	%eax, (%esp)
	call	memcpy
	movl	-8(%ebp), %eax
	movl	12(%eax), %edx
	leal	-12(%ebp), %eax
	addl	%edx, (%eax)
	movl	-8(%ebp), %eax
	addl	$20, %esp
	popl	%ebx
	popl	%ebp
	ret
	.size	unmarshall_acc, .-unmarshall_acc
.globl hasauth
	.type	hasauth, @function
hasauth:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$4, %esp
	movl	$0, -4(%ebp)
	movl	8(%ebp), %eax
	cmpl	$0, 8(%eax)
	jne	.L35
	movl	8(%ebp), %eax
	cmpl	$0, 12(%eax)
	jne	.L35
	jmp	.L34
.L35:
	movl	$1, -4(%ebp)
.L34:
	movl	-4(%ebp), %eax
	leave
	ret
	.size	hasauth, .-hasauth
.globl hasdata
	.type	hasdata, @function
hasdata:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$4, %esp
	movl	$0, -4(%ebp)
	movl	8(%ebp), %eax
	cmpl	$0, (%eax)
	jne	.L38
	movl	8(%ebp), %eax
	cmpl	$0, 4(%eax)
	jne	.L38
	jmp	.L37
.L38:
	movl	$1, -4(%ebp)
.L37:
	movl	-4(%ebp), %eax
	leave
	ret
	.size	hasdata, .-hasdata
.globl hasid
	.type	hasid, @function
hasid:
	pushl	%ebp
	movl	%esp, %ebp
	movl	8(%ebp), %eax
	cmpl	$0, 20(%eax)
	setg	%al
	movzbl	%al, %eax
	popl	%ebp
	ret
	.size	hasid, .-hasid
	.section	.rodata
	.align 32
.LC3:
	.string	"store: request accid=%d data=%s\n"
.LC4:
	.string	"retrieve returned error %d\n"
	.align 32
.LC5:
	.string	"retrieve returned empty account\n"
.LC6:
	.string	"store: newkey=%d\n"
.LC7:
	.string	"vault->put"
	.text
.globl store
	.type	store, @function
store:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%ebx
	subl	$148, %esp
	call	checkinit
	movl	8(%ebp), %eax
	movl	%eax, (%esp)
	call	hasauth
	testl	%eax, %eax
	je	.L42
	movl	8(%ebp), %eax
	movl	%eax, (%esp)
	call	hasdata
	testl	%eax, %eax
	jne	.L41
.L42:
	movl	$-1, -112(%ebp)
	jmp	.L40
.L41:
	movl	$24, 8(%esp)
	movl	$0, 4(%esp)
	leal	-72(%ebp), %eax
	movl	%eax, (%esp)
	call	memset
	movl	$24, 8(%esp)
	movl	$0, 4(%esp)
	leal	-104(%ebp), %eax
	movl	%eax, (%esp)
	call	memset
	movl	8(%ebp), %eax
	movl	(%eax), %eax
	movl	%eax, 8(%esp)
	movl	8(%ebp), %eax
	movl	20(%eax), %eax
	movl	%eax, 4(%esp)
	movl	$.LC3, (%esp)
	call	printf
	movl	8(%ebp), %eax
	movl	%eax, (%esp)
	call	hasid
	testl	%eax, %eax
	je	.L43
	movl	$0, -40(%ebp)
	movl	$0, -36(%ebp)
	movl	8(%ebp), %eax
	movl	20(%eax), %eax
	movl	%eax, -20(%ebp)
	movl	8(%ebp), %eax
	movl	8(%eax), %eax
	movl	%eax, -32(%ebp)
	movl	8(%ebp), %eax
	movl	12(%eax), %eax
	movl	%eax, -28(%ebp)
	leal	-40(%ebp), %eax
	movl	%eax, (%esp)
	call	retrieve
	movl	%eax, -108(%ebp)
	cmpl	$0, -108(%ebp)
	jns	.L44
	movl	-108(%ebp), %eax
	movl	%eax, 8(%esp)
	movl	$.LC4, 4(%esp)
	movl	stderr, %eax
	movl	%eax, (%esp)
	call	fprintf
	movl	-108(%ebp), %eax
	movl	%eax, -112(%ebp)
	jmp	.L40
.L44:
	cmpl	$0, -108(%ebp)
	jne	.L45
	movl	$.LC5, 4(%esp)
	movl	stderr, %eax
	movl	%eax, (%esp)
	call	fprintf
	movl	$-3, -112(%ebp)
	jmp	.L40
.L45:
	movl	8(%ebp), %eax
	addl	$20, %eax
	movl	%eax, -72(%ebp)
	movl	$4, -68(%ebp)
	jmp	.L47
.L43:
	movl	8(%ebp), %ebx
	call	newkey
	movl	%eax, 20(%ebx)
	movl	8(%ebp), %eax
	movl	20(%eax), %eax
	movl	%eax, 4(%esp)
	movl	$.LC6, (%esp)
	call	printf
	movl	8(%ebp), %eax
	addl	$20, %eax
	movl	%eax, -72(%ebp)
	movl	$4, -68(%ebp)
	movl	8(%ebp), %eax
	cmpl	$0, 16(%eax)
	jg	.L47
	movl	8(%ebp), %eax
	movl	$10, 16(%eax)
.L47:
	movl	8(%ebp), %edx
	movl	(%edx), %eax
	movl	%eax, 4(%esp)
	movl	4(%edx), %eax
	movl	%eax, 8(%esp)
	movl	8(%edx), %eax
	movl	%eax, 12(%esp)
	movl	12(%edx), %eax
	movl	%eax, 16(%esp)
	movl	16(%edx), %eax
	movl	%eax, 20(%esp)
	movl	20(%edx), %eax
	movl	%eax, 24(%esp)
	leal	-104(%ebp), %eax
	movl	%eax, (%esp)
	call	marshall_acc
	movl	%eax, -100(%ebp)
	movl	vault, %edx
	movl	$0, 16(%esp)
	leal	-104(%ebp), %eax
	movl	%eax, 12(%esp)
	leal	-72(%ebp), %eax
	movl	%eax, 8(%esp)
	movl	$0, 4(%esp)
	movl	vault, %eax
	movl	%eax, (%esp)
	movl	312(%edx), %eax
	call	*%eax
	movl	%eax, -108(%ebp)
	cmpl	$0, -108(%ebp)
	je	.L49
	movl	vault, %edx
	movl	$.LC7, 8(%esp)
	movl	-108(%ebp), %eax
	movl	%eax, 4(%esp)
	movl	vault, %eax
	movl	%eax, (%esp)
	movl	272(%edx), %eax
	call	*%eax
	movl	$-3, -112(%ebp)
	jmp	.L40
.L49:
	movl	8(%ebp), %eax
	movl	20(%eax), %eax
	movl	%eax, -112(%ebp)
.L40:
	movl	-112(%ebp), %eax
	addl	$148, %esp
	popl	%ebx
	popl	%ebp
	ret
	.size	store, .-store
	.section	.rodata
.LC8:
	.string	"retrieve: returned error %d\n"
	.align 32
.LC9:
	.string	"retrieve authorisation failed\n"
	.align 32
.LC10:
	.string	"retrieve: error %d re-putting data\n"
	.text
.globl retrieve
	.type	retrieve, @function
retrieve:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$136, %esp
	call	checkinit
	movl	8(%ebp), %eax
	movl	%eax, (%esp)
	call	hasauth
	testl	%eax, %eax
	je	.L52
	movl	8(%ebp), %eax
	movl	%eax, (%esp)
	call	hasid
	testl	%eax, %eax
	je	.L52
	movl	8(%ebp), %eax
	movl	%eax, (%esp)
	call	hasdata
	testl	%eax, %eax
	jne	.L52
	jmp	.L51
.L52:
	movl	$-1, -96(%ebp)
	jmp	.L50
.L51:
	movl	$24, 8(%esp)
	movl	$0, 4(%esp)
	leal	-56(%ebp), %eax
	movl	%eax, (%esp)
	call	memset
	movl	$24, 8(%esp)
	movl	$0, 4(%esp)
	leal	-88(%ebp), %eax
	movl	%eax, (%esp)
	call	memset
	movl	8(%ebp), %eax
	addl	$20, %eax
	movl	%eax, -56(%ebp)
	movl	$4, -52(%ebp)
	movl	vault, %edx
	movl	$0, 16(%esp)
	leal	-88(%ebp), %eax
	movl	%eax, 12(%esp)
	leal	-56(%ebp), %eax
	movl	%eax, 8(%esp)
	movl	$0, 4(%esp)
	movl	vault, %eax
	movl	%eax, (%esp)
	movl	284(%edx), %eax
	call	*%eax
	movl	%eax, -92(%ebp)
	cmpl	$0, -92(%ebp)
	je	.L53
	movl	-92(%ebp), %eax
	movl	%eax, 8(%esp)
	movl	$.LC8, 4(%esp)
	movl	stderr, %eax
	movl	%eax, (%esp)
	call	fprintf
	movl	$-2, -96(%ebp)
	jmp	.L50
.L53:
	movl	-88(%ebp), %eax
	movl	%eax, (%esp)
	call	unmarshall_acc
	movl	%eax, -12(%ebp)
	movl	8(%ebp), %eax
	movl	12(%eax), %eax
	movl	%eax, 12(%esp)
	movl	8(%ebp), %eax
	movl	8(%eax), %eax
	movl	%eax, 8(%esp)
	movl	-12(%ebp), %eax
	movl	12(%eax), %eax
	movl	%eax, 4(%esp)
	movl	-12(%ebp), %eax
	movl	8(%eax), %eax
	movl	%eax, (%esp)
	call	check_auth
	movl	%eax, -92(%ebp)
	cmpl	$0, -92(%ebp)
	jg	.L54
	movl	$.LC9, 4(%esp)
	movl	stderr, %eax
	movl	%eax, (%esp)
	call	fprintf
	movl	$-3, -96(%ebp)
	jmp	.L50
.L54:
	movl	-12(%ebp), %eax
	movl	8(%eax), %eax
	movl	%eax, (%esp)
	call	free
	movl	-12(%ebp), %edx
	movl	8(%ebp), %eax
	movl	8(%eax), %eax
	movl	%eax, 8(%edx)
	movl	-12(%ebp), %edx
	movl	8(%ebp), %eax
	movl	12(%eax), %eax
	movl	%eax, 12(%edx)
	movl	-12(%ebp), %edx
	movl	-12(%ebp), %eax
	movl	16(%eax), %eax
	decl	%eax
	movl	%eax, 16(%edx)
	movl	-12(%ebp), %edx
	movl	(%edx), %eax
	movl	%eax, 4(%esp)
	movl	4(%edx), %eax
	movl	%eax, 8(%esp)
	movl	8(%edx), %eax
	movl	%eax, 12(%esp)
	movl	12(%edx), %eax
	movl	%eax, 16(%esp)
	movl	16(%edx), %eax
	movl	%eax, 20(%esp)
	movl	20(%edx), %eax
	movl	%eax, 24(%esp)
	leal	-88(%ebp), %eax
	movl	%eax, (%esp)
	call	marshall_acc
	movl	%eax, -84(%ebp)
	movl	vault, %edx
	movl	$0, 16(%esp)
	leal	-88(%ebp), %eax
	movl	%eax, 12(%esp)
	leal	-56(%ebp), %eax
	movl	%eax, 8(%esp)
	movl	$0, 4(%esp)
	movl	vault, %eax
	movl	%eax, (%esp)
	movl	312(%edx), %eax
	call	*%eax
	movl	%eax, -92(%ebp)
	cmpl	$0, -92(%ebp)
	je	.L55
	movl	-92(%ebp), %eax
	movl	%eax, 8(%esp)
	movl	$.LC10, 4(%esp)
	movl	stderr, %eax
	movl	%eax, (%esp)
	call	fprintf
	movl	-12(%ebp), %eax
	movl	%eax, (%esp)
	call	free
	movl	$-2, -96(%ebp)
	jmp	.L50
.L55:
	movl	8(%ebp), %ecx
	movl	-12(%ebp), %edx
	movl	(%edx), %eax
	movl	%eax, (%ecx)
	movl	4(%edx), %eax
	movl	%eax, 4(%ecx)
	movl	8(%edx), %eax
	movl	%eax, 8(%ecx)
	movl	12(%edx), %eax
	movl	%eax, 12(%ecx)
	movl	16(%edx), %eax
	movl	%eax, 16(%ecx)
	movl	20(%edx), %eax
	movl	%eax, 20(%ecx)
	movl	-12(%ebp), %eax
	movl	%eax, (%esp)
	call	free
	movl	8(%ebp), %eax
	movl	4(%eax), %eax
	movl	%eax, -96(%ebp)
.L50:
	movl	-96(%ebp), %eax
	leave
	ret
	.size	retrieve, .-retrieve
.globl refresh
	.type	refresh, @function
refresh:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$136, %esp
	call	checkinit
	movl	8(%ebp), %eax
	movl	%eax, (%esp)
	call	hasauth
	testl	%eax, %eax
	je	.L58
	movl	8(%ebp), %eax
	movl	%eax, (%esp)
	call	hasid
	testl	%eax, %eax
	je	.L58
	movl	8(%ebp), %eax
	movl	%eax, (%esp)
	call	hasdata
	testl	%eax, %eax
	jne	.L58
	jmp	.L57
.L58:
	movl	$-1, -92(%ebp)
	jmp	.L56
.L57:
	movl	$24, 8(%esp)
	movl	$0, 4(%esp)
	leal	-56(%ebp), %eax
	movl	%eax, (%esp)
	call	memset
	movl	$24, 8(%esp)
	movl	$0, 4(%esp)
	leal	-88(%ebp), %eax
	movl	%eax, (%esp)
	call	memset
	movl	8(%ebp), %eax
	addl	$20, %eax
	movl	%eax, -56(%ebp)
	movl	$4, -52(%ebp)
	movl	vault, %edx
	movl	$0, 16(%esp)
	leal	-88(%ebp), %eax
	movl	%eax, 12(%esp)
	leal	-56(%ebp), %eax
	movl	%eax, 8(%esp)
	movl	$0, 4(%esp)
	movl	vault, %eax
	movl	%eax, (%esp)
	movl	284(%edx), %eax
	call	*%eax
	movl	%eax, -12(%ebp)
	cmpl	$0, -12(%ebp)
	jg	.L59
	movl	$-2, -92(%ebp)
	jmp	.L56
.L59:
	movl	-88(%ebp), %eax
	movl	%eax, (%esp)
	call	unmarshall_acc
	movl	%eax, -16(%ebp)
	movl	8(%ebp), %eax
	movl	12(%eax), %eax
	movl	%eax, 12(%esp)
	movl	8(%ebp), %eax
	movl	8(%eax), %eax
	movl	%eax, 8(%esp)
	movl	-16(%ebp), %eax
	movl	12(%eax), %eax
	movl	%eax, 4(%esp)
	movl	-16(%ebp), %eax
	movl	8(%eax), %eax
	movl	%eax, (%esp)
	call	check_auth
	movl	%eax, -12(%ebp)
	cmpl	$0, -12(%ebp)
	jg	.L60
	movl	$-3, -92(%ebp)
	jmp	.L56
.L60:
	movl	-16(%ebp), %eax
	movl	8(%eax), %eax
	movl	%eax, (%esp)
	call	free
	movl	-16(%ebp), %edx
	movl	8(%ebp), %eax
	movl	8(%eax), %eax
	movl	%eax, 8(%edx)
	movl	-16(%ebp), %edx
	movl	8(%ebp), %eax
	movl	12(%eax), %eax
	movl	%eax, 12(%edx)
	movl	8(%ebp), %eax
	cmpl	$0, 16(%eax)
	jg	.L61
	movl	-16(%ebp), %eax
	movl	-16(%ebp), %edx
	movl	16(%edx), %edx
	decl	%edx
	movl	%edx, 16(%eax)
	jmp	.L62
.L61:
	movl	-16(%ebp), %eax
	movl	8(%ebp), %edx
	movl	16(%edx), %edx
	movl	%edx, 16(%eax)
.L62:
	movl	-16(%ebp), %edx
	movl	(%edx), %eax
	movl	%eax, 4(%esp)
	movl	4(%edx), %eax
	movl	%eax, 8(%esp)
	movl	8(%edx), %eax
	movl	%eax, 12(%esp)
	movl	12(%edx), %eax
	movl	%eax, 16(%esp)
	movl	16(%edx), %eax
	movl	%eax, 20(%esp)
	movl	20(%edx), %eax
	movl	%eax, 24(%esp)
	leal	-88(%ebp), %eax
	movl	%eax, (%esp)
	call	marshall_acc
	movl	%eax, -84(%ebp)
	movl	8(%ebp), %ecx
	movl	-16(%ebp), %edx
	movl	(%edx), %eax
	movl	%eax, (%ecx)
	movl	4(%edx), %eax
	movl	%eax, 4(%ecx)
	movl	8(%edx), %eax
	movl	%eax, 8(%ecx)
	movl	12(%edx), %eax
	movl	%eax, 12(%ecx)
	movl	16(%edx), %eax
	movl	%eax, 16(%ecx)
	movl	20(%edx), %eax
	movl	%eax, 20(%ecx)
	movl	-16(%ebp), %eax
	movl	%eax, (%esp)
	call	free
	movl	$1, -92(%ebp)
.L56:
	movl	-92(%ebp), %eax
	leave
	ret
	.size	refresh, .-refresh
.globl delete
	.type	delete, @function
delete:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$136, %esp
	call	checkinit
	movl	8(%ebp), %eax
	movl	%eax, (%esp)
	call	hasauth
	testl	%eax, %eax
	je	.L65
	movl	8(%ebp), %eax
	movl	%eax, (%esp)
	call	hasid
	testl	%eax, %eax
	je	.L65
	movl	8(%ebp), %eax
	movl	%eax, (%esp)
	call	hasdata
	testl	%eax, %eax
	jne	.L65
	jmp	.L64
.L65:
	movl	$-1, -92(%ebp)
	jmp	.L63
.L64:
	movl	$24, 8(%esp)
	movl	$0, 4(%esp)
	leal	-56(%ebp), %eax
	movl	%eax, (%esp)
	call	memset
	movl	$24, 8(%esp)
	movl	$0, 4(%esp)
	leal	-88(%ebp), %eax
	movl	%eax, (%esp)
	call	memset
	movl	8(%ebp), %eax
	addl	$20, %eax
	movl	%eax, -56(%ebp)
	movl	$4, -52(%ebp)
	movl	vault, %edx
	movl	$0, 16(%esp)
	leal	-88(%ebp), %eax
	movl	%eax, 12(%esp)
	leal	-56(%ebp), %eax
	movl	%eax, 8(%esp)
	movl	$0, 4(%esp)
	movl	vault, %eax
	movl	%eax, (%esp)
	movl	284(%edx), %eax
	call	*%eax
	movl	%eax, -12(%ebp)
	cmpl	$0, -12(%ebp)
	jg	.L66
	movl	$-2, -92(%ebp)
	jmp	.L63
.L66:
	movl	-88(%ebp), %eax
	movl	%eax, (%esp)
	call	unmarshall_acc
	movl	%eax, -16(%ebp)
	movl	8(%ebp), %eax
	movl	12(%eax), %eax
	movl	%eax, 12(%esp)
	movl	8(%ebp), %eax
	movl	8(%eax), %eax
	movl	%eax, 8(%esp)
	movl	-16(%ebp), %eax
	movl	12(%eax), %eax
	movl	%eax, 4(%esp)
	movl	-16(%ebp), %eax
	movl	8(%eax), %eax
	movl	%eax, (%esp)
	call	check_auth
	movl	%eax, -12(%ebp)
	cmpl	$0, -12(%ebp)
	jg	.L67
	movl	$-3, -92(%ebp)
	jmp	.L63
.L67:
	movl	vault, %edx
	movl	$0, 12(%esp)
	leal	-56(%ebp), %eax
	movl	%eax, 8(%esp)
	movl	$0, 4(%esp)
	movl	vault, %eax
	movl	%eax, (%esp)
	movl	268(%edx), %eax
	call	*%eax
	movl	-16(%ebp), %eax
	movl	%eax, (%esp)
	call	free_account
	movl	$1, -92(%ebp)
.L63:
	movl	-92(%ebp), %eax
	leave
	ret
	.size	delete, .-delete
	.section	.rodata
.LC11:
	.string	"Couldn't create the Vault."
.LC12:
	.string	"SwissVault"
.LC13:
	.string	"swissvault.db"
	.align 32
.LC14:
	.string	"This vault could not be opened for you!"
	.text
.globl initiate_vault
	.type	initiate_vault, @function
initiate_vault:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$40, %esp
	movl	$0, 8(%esp)
	movl	$0, 4(%esp)
	movl	$vault, (%esp)
	call	db_create_4001
	movl	%eax, -8(%ebp)
	cmpl	$0, -8(%ebp)
	je	.L69
	movl	$.LC11, (%esp)
	call	perror
	call	__errno_location
	movl	(%eax), %eax
	movl	%eax, (%esp)
	call	exit
.L69:
	movl	$1, -4(%ebp)
	movl	vault, %edx
	movl	$384, 24(%esp)
	movl	-4(%ebp), %eax
	movl	%eax, 20(%esp)
	movl	$1, 16(%esp)
	movl	$.LC12, 12(%esp)
	movl	$.LC13, 8(%esp)
	movl	$0, 4(%esp)
	movl	vault, %eax
	movl	%eax, (%esp)
	movl	308(%edx), %eax
	call	*%eax
	movl	%eax, -8(%ebp)
	cmpl	$0, -8(%ebp)
	je	.L70
	movl	$.LC14, (%esp)
	call	perror
	call	__errno_location
	movl	(%eax), %eax
	movl	%eax, (%esp)
	call	exit
.L70:
	movl	vault, %edx
	movl	$swiss_keycmp, 4(%esp)
	movl	vault, %eax
	movl	%eax, (%esp)
	movl	400(%edx), %eax
	call	*%eax
	movb	$1, initiated
	movsbl	initiated,%eax
	leave
	ret
	.size	initiate_vault, .-initiate_vault
	.section	.rodata
	.align 32
.LC15:
	.string	"nothing to close here. Stupid!\n"
	.text
.globl close_vault
	.type	close_vault, @function
close_vault:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$24, %esp
	cmpl	$0, vault
	je	.L72
	movb	$0, initiated
	movl	vault, %edx
	movl	$0, 4(%esp)
	movl	vault, %eax
	movl	%eax, (%esp)
	movl	260(%edx), %eax
	call	*%eax
	movl	%eax, -4(%ebp)
	jmp	.L71
.L72:
	movl	$.LC15, (%esp)
	call	perror
	movl	$0, -4(%ebp)
.L71:
	movl	-4(%ebp), %eax
	leave
	ret
	.size	close_vault, .-close_vault
	.comm	vault,4,4
	.section	.note.GNU-stack,"",@progbits
	.ident	"GCC: (GNU) 3.3.5-20050130 (Gentoo 3.3.5.20050130-r1, ssp-3.3.5.20050130-1, pie-8.7.7.1)"
