	.file	"920846.c"
	.intel_syntax noprefix
	.text
	.section	.rodata
.LC3:
	.string	"\nWelcome to the ATM!\n"
.LC4:
	.string	"Please enter your pin: "
.LC5:
	.string	"%u"
.LC6:
	.string	"Access Granted"
	.align 8
.LC7:
	.string	"Incorrect pin, %d tries remaining\n"
	.align 8
.LC8:
	.string	"\n\tPress a number on the keypad to select a function"
.LC9:
	.string	"\n\t------Main Menu------"
.LC10:
	.string	"Check Balance\n"
.LC11:
	.string	"\t1%21s"
.LC12:
	.string	"Cash Withdrawal\n"
.LC13:
	.string	"\t2%21s"
.LC14:
	.string	"Cash Deposit\n"
.LC15:
	.string	"\t3%21s"
.LC16:
	.string	"Quit\n"
.LC17:
	.string	"\t4%21s"
.LC18:
	.string	": "
	.text
	.globl	main
	.type	main, @function
main:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	movss	xmm0, DWORD PTR .LC0[rip]
	movss	DWORD PTR -64[rbp], xmm0
	lea	rax, -64[rbp]
	mov	QWORD PTR -32[rbp], rax
	movss	xmm0, DWORD PTR .LC1[rip]
	movss	DWORD PTR -60[rbp], xmm0
	lea	rax, -60[rbp]
	mov	QWORD PTR -24[rbp], rax
	movss	xmm0, DWORD PTR .LC2[rip]
	movss	DWORD PTR -56[rbp], xmm0
	lea	rax, -56[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	DWORD PTR -52[rbp], 0
	mov	DWORD PTR -44[rbp], 0
	mov	DWORD PTR -40[rbp], 0
	mov	DWORD PTR -36[rbp], 0
	lea	rdi, .LC3[rip]
	call	puts@PLT
	jmp	.L2
.L5:
	lea	rdi, .LC4[rip]
	call	puts@PLT
	lea	rax, -52[rbp]
	mov	rsi, rax
	lea	rdi, .LC5[rip]
	mov	eax, 0
	call	__isoc99_scanf@PLT
	mov	eax, DWORD PTR -52[rbp]
	cmp	eax, 3014
	jne	.L3
	lea	rdi, .LC6[rip]
	call	puts@PLT
	mov	DWORD PTR -44[rbp], 1
	jmp	.L4
.L3:
	add	DWORD PTR -40[rbp], 1
	mov	eax, 3
	sub	eax, DWORD PTR -40[rbp]
	mov	esi, eax
	lea	rdi, .LC7[rip]
	mov	eax, 0
	call	printf@PLT
.L2:
	cmp	DWORD PTR -40[rbp], 2
	jbe	.L5
.L4:
	mov	eax, DWORD PTR -52[rbp]
	cmp	eax, 3014
	je	.L7
	cmp	DWORD PTR -40[rbp], 2
	jbe	.L7
	mov	eax, DWORD PTR -36[rbp]
	mov	esi, eax
	mov	edi, 2
	call	quit
	jmp	.L7
.L14:
	lea	rdi, .LC8[rip]
	call	puts@PLT
	lea	rdi, .LC9[rip]
	call	puts@PLT
	lea	rsi, .LC10[rip]
	lea	rdi, .LC11[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rsi, .LC12[rip]
	lea	rdi, .LC13[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rsi, .LC14[rip]
	lea	rdi, .LC15[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rsi, .LC16[rip]
	lea	rdi, .LC17[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rdi, .LC18[rip]
	call	puts@PLT
	lea	rax, -48[rbp]
	mov	rsi, rax
	lea	rdi, .LC5[rip]
	mov	eax, 0
	call	__isoc99_scanf@PLT
	mov	eax, DWORD PTR -48[rbp]
	cmp	eax, 4
	je	.L8
	cmp	eax, 4
	ja	.L9
	cmp	eax, 3
	je	.L10
	cmp	eax, 3
	ja	.L9
	cmp	eax, 1
	je	.L11
	cmp	eax, 2
	je	.L12
	jmp	.L9
.L11:
	mov	eax, DWORD PTR -56[rbp]
	movd	xmm0, eax
	call	checkBalance
	add	DWORD PTR -36[rbp], 1
	jmp	.L7
.L12:
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -16[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	withdrawal
	add	DWORD PTR -36[rbp], 1
	jmp	.L7
.L10:
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -16[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	deposit
	add	DWORD PTR -36[rbp], 1
	jmp	.L7
.L8:
	mov	eax, DWORD PTR -36[rbp]
	mov	esi, eax
	mov	edi, 0
	call	quit
.L9:
	mov	eax, DWORD PTR -36[rbp]
	mov	esi, eax
	mov	edi, 1
	call	quit
	nop
.L7:
	cmp	DWORD PTR -44[rbp], 0
	jne	.L14
	mov	eax, 0
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L16
	call	__stack_chk_fail@PLT
.L16:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	main, .-main
	.section	.rodata
.LC19:
	.string	"\nThank you for using the ATM"
.LC20:
	.string	"%d transactions completed\n"
	.align 8
.LC21:
	.string	"\n Something went wrong.\nThank you for using the ATM"
.LC22:
	.string	"%d transactions completed/n"
	.align 8
.LC23:
	.string	"\n Incorrect pin entered too many times"
.LC24:
	.string	"\n Amount can not be validated"
	.align 8
.LC25:
	.string	"\n Daily limit for this transaction is exceeded"
	.text
	.globl	quit
	.type	quit, @function
quit:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	DWORD PTR -8[rbp], esi
	cmp	DWORD PTR -4[rbp], 4
	je	.L18
	cmp	DWORD PTR -4[rbp], 4
	jg	.L19
	cmp	DWORD PTR -4[rbp], 3
	je	.L20
	cmp	DWORD PTR -4[rbp], 3
	jg	.L19
	cmp	DWORD PTR -4[rbp], 0
	je	.L21
	cmp	DWORD PTR -4[rbp], 2
	je	.L22
	jmp	.L19
.L21:
	lea	rdi, .LC19[rip]
	call	puts@PLT
	mov	eax, DWORD PTR -8[rbp]
	mov	esi, eax
	lea	rdi, .LC20[rip]
	mov	eax, 0
	call	printf@PLT
	mov	edi, 0
	call	exit@PLT
.L19:
	lea	rdi, .LC21[rip]
	call	puts@PLT
	mov	eax, DWORD PTR -8[rbp]
	mov	esi, eax
	lea	rdi, .LC22[rip]
	mov	eax, 0
	call	printf@PLT
	mov	edi, 1
	call	exit@PLT
.L22:
	lea	rdi, .LC23[rip]
	call	puts@PLT
	mov	edi, 1
	call	exit@PLT
.L20:
	lea	rdi, .LC24[rip]
	call	puts@PLT
	mov	edi, 1
	call	exit@PLT
.L18:
	lea	rdi, .LC25[rip]
	call	puts@PLT
	mov	edi, 1
	call	exit@PLT
	.cfi_endproc
.LFE7:
	.size	quit, .-quit
	.section	.rodata
.LC26:
	.string	"Your balance is: %.2f\n"
	.text
	.globl	checkBalance
	.type	checkBalance, @function
checkBalance:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	movss	DWORD PTR -4[rbp], xmm0
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, DWORD PTR -4[rbp]
	movq	rax, xmm1
	movq	xmm0, rax
	lea	rdi, .LC26[rip]
	mov	eax, 1
	call	printf@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	checkBalance, .-checkBalance
	.section	.rodata
	.align 8
.LC28:
	.string	"\tYou can withdrawal up to $1000/day"
	.align 8
.LC29:
	.string	"\tEnter withdrawal amount in $20 increments: "
.LC30:
	.string	"%s"
.LC31:
	.string	"%d"
.LC32:
	.string	"\n\tProcessing transaction..."
	.align 8
.LC33:
	.string	"\n\tThat is not a valid withdrawal amount"
	.align 8
.LC34:
	.string	"\n\tWithdrawal amount must be in $20 increments"
	.align 8
.LC35:
	.string	"\n\tWithdrawal amount cannot exceed balance"
	.align 8
.LC36:
	.string	"\tWould you like a receipt(1 = yes, 2 = no)"
.LC37:
	.string	"\n\tPrinting receipt..."
.LC38:
	.string	"\tReturning to main menu"
	.align 8
.LC39:
	.string	"\tThis transaction exceeds the daily limit, returning to main menu"
	.align 8
.LC40:
	.string	"\tThat is not a valid amount, returning to main menu"
	.text
	.globl	withdrawal
	.type	withdrawal, @function
withdrawal:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -20[rbp], 0
	mov	DWORD PTR -12[rbp], 0
	mov	rax, QWORD PTR -48[rbp]
	movss	xmm1, DWORD PTR [rax]
	pxor	xmm0, xmm0
	comiss	xmm0, xmm1
	jb	.L25
	mov	esi, -1
	mov	edi, 4
	call	quit
.L25:
	lea	rdi, .LC28[rip]
	call	puts@PLT
.L34:
	lea	rsi, .LC29[rip]
	lea	rdi, .LC30[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rax, -20[rbp]
	mov	rsi, rax
	lea	rdi, .LC31[rip]
	mov	eax, 0
	call	__isoc99_scanf@PLT
	mov	eax, DWORD PTR -20[rbp]
	test	eax, eax
	jle	.L27
	mov	ecx, DWORD PTR -20[rbp]
	movsx	rax, ecx
	imul	rax, rax, 1717986919
	shr	rax, 32
	sar	eax, 3
	mov	esi, ecx
	sar	esi, 31
	sub	eax, esi
	mov	edx, eax
	mov	eax, edx
	sal	eax, 2
	add	eax, edx
	sal	eax, 2
	sub	ecx, eax
	mov	edx, ecx
	test	edx, edx
	jne	.L27
	mov	eax, DWORD PTR -20[rbp]
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, eax
	mov	rax, QWORD PTR -40[rbp]
	movss	xmm0, DWORD PTR [rax]
	comiss	xmm0, xmm1
	jbe	.L27
	lea	rdi, .LC32[rip]
	call	puts@PLT
	jmp	.L29
.L27:
	mov	eax, DWORD PTR -20[rbp]
	test	eax, eax
	jg	.L30
	lea	rdi, .LC33[rip]
	call	puts@PLT
	jmp	.L31
.L30:
	mov	ecx, DWORD PTR -20[rbp]
	movsx	rax, ecx
	imul	rax, rax, 1717986919
	shr	rax, 32
	sar	eax, 3
	mov	esi, ecx
	sar	esi, 31
	sub	eax, esi
	mov	edx, eax
	mov	eax, edx
	sal	eax, 2
	add	eax, edx
	sal	eax, 2
	mov	edx, ecx
	sub	edx, eax
	test	edx, edx
	je	.L32
	lea	rdi, .LC34[rip]
	call	puts@PLT
	jmp	.L31
.L32:
	mov	eax, DWORD PTR -20[rbp]
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, eax
	mov	rax, QWORD PTR -40[rbp]
	movss	xmm1, DWORD PTR [rax]
	comiss	xmm0, xmm1
	jbe	.L31
	lea	rdi, .LC35[rip]
	call	puts@PLT
.L31:
	add	DWORD PTR -12[rbp], 1
	cmp	DWORD PTR -12[rbp], 2
	jbe	.L34
.L29:
	cmp	DWORD PTR -12[rbp], 2
	jbe	.L35
	mov	esi, -1
	mov	edi, 3
	call	quit
.L35:
	mov	rax, QWORD PTR -48[rbp]
	movss	xmm0, DWORD PTR [rax]
	mov	eax, DWORD PTR -20[rbp]
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, eax
	comiss	xmm0, xmm1
	jb	.L48
	mov	rax, QWORD PTR -48[rbp]
	movss	xmm0, DWORD PTR [rax]
	mov	eax, DWORD PTR -20[rbp]
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, eax
	subss	xmm0, xmm1
	mov	rax, QWORD PTR -48[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -40[rbp]
	movss	xmm0, DWORD PTR [rax]
	mov	eax, DWORD PTR -20[rbp]
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, eax
	subss	xmm0, xmm1
	mov	rax, QWORD PTR -40[rbp]
	movss	DWORD PTR [rax], xmm0
	lea	rdi, .LC36[rip]
	call	puts@PLT
	lea	rax, -16[rbp]
	mov	rsi, rax
	lea	rdi, .LC5[rip]
	mov	eax, 0
	call	__isoc99_scanf@PLT
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, 1
	jne	.L38
	lea	rdi, .LC37[rip]
	call	puts@PLT
.L38:
	lea	rdi, .LC38[rip]
	call	puts@PLT
	jmp	.L50
.L48:
	mov	rax, QWORD PTR -48[rbp]
	movss	xmm1, DWORD PTR [rax]
	mov	eax, DWORD PTR -20[rbp]
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, eax
	comiss	xmm0, xmm1
	jbe	.L49
	lea	rdi, .LC39[rip]
	call	puts@PLT
	jmp	.L50
.L49:
	lea	rdi, .LC40[rip]
	call	puts@PLT
.L50:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L42
	call	__stack_chk_fail@PLT
.L42:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	withdrawal, .-withdrawal
	.section	.rodata
	.align 8
.LC41:
	.string	"\tYou can deposit up to $10000/day"
.LC42:
	.string	"\tEnter deposit amount: "
.LC43:
	.string	"\n\tThat is not a valid amount."
.LC44:
	.string	"\n\tDeposit exceeds daily limit"
	.align 8
.LC45:
	.string	"Would you like a receipt(1 = yes, 2 = no)"
	.text
	.globl	deposit
	.type	deposit, @function
deposit:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -20[rbp], 0
	mov	DWORD PTR -12[rbp], 0
	mov	rax, QWORD PTR -48[rbp]
	movss	xmm1, DWORD PTR [rax]
	pxor	xmm0, xmm0
	comiss	xmm0, xmm1
	jb	.L52
	mov	esi, -1
	mov	edi, 4
	call	quit
.L52:
	lea	rdi, .LC41[rip]
	call	puts@PLT
.L60:
	lea	rsi, .LC42[rip]
	lea	rdi, .LC30[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rax, -20[rbp]
	mov	rsi, rax
	lea	rdi, .LC31[rip]
	mov	eax, 0
	call	__isoc99_scanf@PLT
	mov	eax, DWORD PTR -20[rbp]
	test	eax, eax
	jle	.L54
	mov	eax, DWORD PTR -20[rbp]
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, eax
	mov	rax, QWORD PTR -48[rbp]
	movss	xmm0, DWORD PTR [rax]
	comiss	xmm0, xmm1
	jb	.L54
	lea	rdi, .LC32[rip]
	call	puts@PLT
	jmp	.L56
.L54:
	mov	eax, DWORD PTR -20[rbp]
	test	eax, eax
	jg	.L57
	lea	rdi, .LC43[rip]
	call	puts@PLT
	jmp	.L58
.L57:
	mov	eax, DWORD PTR -20[rbp]
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, eax
	mov	rax, QWORD PTR -48[rbp]
	movss	xmm1, DWORD PTR [rax]
	comiss	xmm0, xmm1
	jbe	.L58
	lea	rdi, .LC44[rip]
	call	puts@PLT
.L58:
	add	DWORD PTR -12[rbp], 1
	cmp	DWORD PTR -12[rbp], 2
	jbe	.L60
.L56:
	cmp	DWORD PTR -12[rbp], 2
	jbe	.L61
	mov	esi, -1
	mov	edi, 3
	call	quit
.L61:
	mov	eax, DWORD PTR -20[rbp]
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, eax
	mov	rax, QWORD PTR -48[rbp]
	movss	xmm1, DWORD PTR [rax]
	comiss	xmm0, xmm1
	jbe	.L74
	lea	rdi, .LC39[rip]
	call	puts@PLT
	jmp	.L76
.L74:
	mov	eax, DWORD PTR -20[rbp]
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, eax
	mov	rax, QWORD PTR -48[rbp]
	movss	xmm0, DWORD PTR [rax]
	comiss	xmm0, xmm1
	jb	.L75
	mov	rax, QWORD PTR -48[rbp]
	movss	xmm0, DWORD PTR [rax]
	mov	eax, DWORD PTR -20[rbp]
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, eax
	subss	xmm0, xmm1
	mov	rax, QWORD PTR -48[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -40[rbp]
	movss	xmm1, DWORD PTR [rax]
	mov	eax, DWORD PTR -20[rbp]
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, eax
	addss	xmm0, xmm1
	mov	rax, QWORD PTR -40[rbp]
	movss	DWORD PTR [rax], xmm0
	lea	rdi, .LC45[rip]
	call	puts@PLT
	lea	rax, -16[rbp]
	mov	rsi, rax
	lea	rdi, .LC5[rip]
	mov	eax, 0
	call	__isoc99_scanf@PLT
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, 1
	jne	.L67
	lea	rdi, .LC37[rip]
	call	puts@PLT
.L67:
	lea	rdi, .LC38[rip]
	call	puts@PLT
	jmp	.L76
.L75:
	lea	rdi, .LC40[rip]
	call	puts@PLT
.L76:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L68
	call	__stack_chk_fail@PLT
.L68:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	deposit, .-deposit
	.section	.rodata
	.align 4
.LC0:
	.long	1148846080
	.align 4
.LC1:
	.long	1176256512
	.align 4
.LC2:
	.long	1167867904
	.ident	"GCC: (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 6
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"920846.c"
	.text
	.section	.rodata
	.align	2
.LC0:
	.ascii	"\012Welcome to the ATM!\012\000"
	.align	2
.LC1:
	.ascii	"Please enter your pin: \000"
	.align	2
.LC2:
	.ascii	"%u\000"
	.align	2
.LC3:
	.ascii	"Access Granted\000"
	.align	2
.LC4:
	.ascii	"Incorrect pin, %d tries remaining\012\000"
	.align	2
.LC5:
	.ascii	"\012\011Press a number on the keypad to select a fu"
	.ascii	"nction\000"
	.align	2
.LC6:
	.ascii	"\012\011------Main Menu------\000"
	.align	2
.LC7:
	.ascii	"Check Balance\012\000"
	.align	2
.LC8:
	.ascii	"\0111%21s\000"
	.align	2
.LC9:
	.ascii	"Cash Withdrawal\012\000"
	.align	2
.LC10:
	.ascii	"\0112%21s\000"
	.align	2
.LC11:
	.ascii	"Cash Deposit\012\000"
	.align	2
.LC12:
	.ascii	"\0113%21s\000"
	.align	2
.LC13:
	.ascii	"Quit\012\000"
	.align	2
.LC14:
	.ascii	"\0114%21s\000"
	.align	2
.LC15:
	.ascii	": \000"
	.align	2
.LC16:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	ldr	r3, .L18
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L18+4
	str	r3, [fp, #-52]	@ float
	sub	r3, fp, #52
	str	r3, [fp, #-20]
	ldr	r3, .L18+8
	str	r3, [fp, #-48]	@ float
	sub	r3, fp, #48
	str	r3, [fp, #-16]
	ldr	r3, .L18+12
	str	r3, [fp, #-44]	@ float
	sub	r3, fp, #44
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-40]
	mov	r3, #0
	str	r3, [fp, #-32]
	mov	r3, #0
	str	r3, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-24]
	ldr	r0, .L18+16
	bl	puts
	b	.L2
.L5:
	ldr	r0, .L18+20
	bl	puts
	sub	r3, fp, #40
	mov	r1, r3
	ldr	r0, .L18+24
	bl	__isoc99_scanf
	ldr	r3, [fp, #-40]
	ldr	r2, .L18+28
	cmp	r3, r2
	bne	.L3
	ldr	r0, .L18+32
	bl	puts
	mov	r3, #1
	str	r3, [fp, #-32]
	b	.L4
.L3:
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	rsb	r3, r3, #3
	mov	r1, r3
	ldr	r0, .L18+36
	bl	printf
.L2:
	ldr	r3, [fp, #-28]
	cmp	r3, #2
	bls	.L5
.L4:
	ldr	r3, [fp, #-40]
	ldr	r2, .L18+28
	cmp	r3, r2
	beq	.L7
	ldr	r3, [fp, #-28]
	cmp	r3, #2
	bls	.L7
	ldr	r3, [fp, #-24]
	mov	r1, r3
	mov	r0, #2
	bl	quit
	b	.L7
.L15:
	ldr	r0, .L18+40
	bl	puts
	ldr	r0, .L18+44
	bl	puts
	ldr	r1, .L18+48
	ldr	r0, .L18+52
	bl	printf
	ldr	r1, .L18+56
	ldr	r0, .L18+60
	bl	printf
	ldr	r1, .L18+64
	ldr	r0, .L18+68
	bl	printf
	ldr	r1, .L18+72
	ldr	r0, .L18+76
	bl	printf
	ldr	r0, .L18+80
	bl	puts
	sub	r3, fp, #36
	mov	r1, r3
	ldr	r0, .L18+24
	bl	__isoc99_scanf
	ldr	r3, [fp, #-36]
	sub	r3, r3, #1
	cmp	r3, #3
	ldrls	pc, [pc, r3, asl #2]
	b	.L8
.L10:
	.word	.L13
	.word	.L12
	.word	.L11
	.word	.L9
.L13:
	ldr	r3, [fp, #-44]	@ float
	mov	r0, r3
	bl	checkBalance
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
	b	.L7
.L12:
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-12]
	bl	withdrawal
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
	b	.L7
.L11:
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-12]
	bl	deposit
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
	b	.L7
.L9:
	ldr	r3, [fp, #-24]
	mov	r1, r3
	mov	r0, #0
	bl	quit
.L8:
	ldr	r3, [fp, #-24]
	mov	r1, r3
	mov	r0, #1
	bl	quit
	nop
.L7:
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	bne	.L15
	mov	r3, #0
	ldr	r2, .L18
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L17
	bl	__stack_chk_fail
.L17:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L19:
	.align	2
.L18:
	.word	.LC16
	.word	1148846080
	.word	1176256512
	.word	1167867904
	.word	.LC0
	.word	.LC1
	.word	.LC2
	.word	3014
	.word	.LC3
	.word	.LC4
	.word	.LC5
	.word	.LC6
	.word	.LC7
	.word	.LC8
	.word	.LC9
	.word	.LC10
	.word	.LC11
	.word	.LC12
	.word	.LC13
	.word	.LC14
	.word	.LC15
	.size	main, .-main
	.section	.rodata
	.align	2
.LC17:
	.ascii	"\012Thank you for using the ATM\000"
	.align	2
.LC18:
	.ascii	"%d transactions completed\012\000"
	.align	2
.LC19:
	.ascii	"\012 Something went wrong.\012Thank you for using t"
	.ascii	"he ATM\000"
	.align	2
.LC20:
	.ascii	"%d transactions completed/n\000"
	.align	2
.LC21:
	.ascii	"\012 Incorrect pin entered too many times\000"
	.align	2
.LC22:
	.ascii	"\012 Amount can not be validated\000"
	.align	2
.LC23:
	.ascii	"\012 Daily limit for this transaction is exceeded\000"
	.text
	.align	2
	.global	quit
	.syntax unified
	.arm
	.fpu softvfp
	.type	quit, %function
quit:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-8]
	cmp	r3, #4
	ldrls	pc, [pc, r3, asl #2]
	b	.L21
.L23:
	.word	.L26
	.word	.L21
	.word	.L25
	.word	.L24
	.word	.L22
.L26:
	ldr	r0, .L27
	bl	puts
	ldr	r1, [fp, #-12]
	ldr	r0, .L27+4
	bl	printf
	mov	r0, #0
	bl	exit
.L21:
	ldr	r0, .L27+8
	bl	puts
	ldr	r1, [fp, #-12]
	ldr	r0, .L27+12
	bl	printf
	mov	r0, #1
	bl	exit
.L25:
	ldr	r0, .L27+16
	bl	puts
	mov	r0, #1
	bl	exit
.L24:
	ldr	r0, .L27+20
	bl	puts
	mov	r0, #1
	bl	exit
.L22:
	ldr	r0, .L27+24
	bl	puts
	mov	r0, #1
	bl	exit
.L28:
	.align	2
.L27:
	.word	.LC17
	.word	.LC18
	.word	.LC19
	.word	.LC20
	.word	.LC21
	.word	.LC22
	.word	.LC23
	.size	quit, .-quit
	.global	__aeabi_f2d
	.section	.rodata
	.align	2
.LC24:
	.ascii	"Your balance is: %.2f\012\000"
	.text
	.align	2
	.global	checkBalance
	.syntax unified
	.arm
	.fpu softvfp
	.type	checkBalance, %function
checkBalance:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]	@ float
	ldr	r0, [fp, #-8]	@ float
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	ldr	r0, .L30
	bl	printf
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L31:
	.align	2
.L30:
	.word	.LC24
	.size	checkBalance, .-checkBalance
	.global	__aeabi_fcmple
	.section	.rodata
	.align	2
.LC25:
	.ascii	"\011You can withdrawal up to $1000/day\000"
	.align	2
.LC26:
	.ascii	"\011Enter withdrawal amount in $20 increments: \000"
	.align	2
.LC27:
	.ascii	"%s\000"
	.align	2
.LC28:
	.ascii	"%d\000"
	.global	__aeabi_i2f
	.global	__aeabi_fcmplt
	.align	2
.LC29:
	.ascii	"\012\011Processing transaction...\000"
	.align	2
.LC30:
	.ascii	"\012\011That is not a valid withdrawal amount\000"
	.align	2
.LC31:
	.ascii	"\012\011Withdrawal amount must be in $20 increments"
	.ascii	"\000"
	.global	__aeabi_fcmpgt
	.align	2
.LC32:
	.ascii	"\012\011Withdrawal amount cannot exceed balance\000"
	.global	__aeabi_fcmpge
	.global	__aeabi_fsub
	.align	2
.LC33:
	.ascii	"\011Would you like a receipt(1 = yes, 2 = no)\000"
	.align	2
.LC34:
	.ascii	"\012\011Printing receipt...\000"
	.align	2
.LC35:
	.ascii	"\011Returning to main menu\000"
	.align	2
.LC36:
	.ascii	"\011This transaction exceeds the daily limit, retur"
	.ascii	"ning to main menu\000"
	.align	2
.LC37:
	.ascii	"\011That is not a valid amount, returning to main m"
	.ascii	"enu\000"
	.align	2
.LC38:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	withdrawal
	.syntax unified
	.arm
	.fpu softvfp
	.type	withdrawal, %function
withdrawal:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	ldr	r3, .L59
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmple
	mov	r3, r0
	cmp	r3, #0
	beq	.L33
	mvn	r1, #0
	mov	r0, #4
	bl	quit
.L33:
	ldr	r0, .L59+4
	bl	puts
.L42:
	ldr	r1, .L59+8
	ldr	r0, .L59+12
	bl	printf
	sub	r3, fp, #28
	mov	r1, r3
	ldr	r0, .L59+16
	bl	__isoc99_scanf
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	ble	.L35
	ldr	r1, [fp, #-28]
	ldr	r3, .L59+20
	smull	r2, r3, r1, r3
	asr	r2, r3, #3
	asr	r3, r1, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, r1, r3
	cmp	r2, #0
	bne	.L35
	ldr	r3, [fp, #-28]
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r2, r0
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L35
	ldr	r0, .L59+24
	bl	puts
	b	.L37
.L35:
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bgt	.L38
	ldr	r0, .L59+28
	bl	puts
	b	.L39
.L38:
	ldr	r1, [fp, #-28]
	ldr	r3, .L59+20
	smull	r2, r3, r1, r3
	asr	r2, r3, #3
	asr	r3, r1, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, r1, r3
	cmp	r2, #0
	beq	.L40
	ldr	r0, .L59+32
	bl	puts
	b	.L39
.L40:
	ldr	r3, [fp, #-28]
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r2, r0
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L39
	ldr	r0, .L59+36
	bl	puts
.L39:
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #2
	bls	.L42
.L37:
	ldr	r3, [fp, #-20]
	cmp	r3, #2
	bls	.L43
	mvn	r1, #0
	mov	r0, #3
	bl	quit
.L43:
	ldr	r3, [fp, #-36]
	ldr	r4, [r3]	@ float
	ldr	r3, [fp, #-28]
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fcmpge
	mov	r3, r0
	cmp	r3, #0
	beq	.L56
	ldr	r3, [fp, #-36]
	ldr	r4, [r3]	@ float
	ldr	r3, [fp, #-28]
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-36]
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-32]
	ldr	r4, [r3]	@ float
	ldr	r3, [fp, #-28]
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-32]
	str	r2, [r3]	@ float
	ldr	r0, .L59+40
	bl	puts
	sub	r3, fp, #24
	mov	r1, r3
	ldr	r0, .L59+44
	bl	__isoc99_scanf
	ldr	r3, [fp, #-24]
	cmp	r3, #1
	bne	.L46
	ldr	r0, .L59+48
	bl	puts
.L46:
	ldr	r0, .L59+52
	bl	puts
	b	.L58
.L56:
	ldr	r3, [fp, #-36]
	ldr	r4, [r3]	@ float
	ldr	r3, [fp, #-28]
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L57
	ldr	r0, .L59+56
	bl	puts
	b	.L58
.L57:
	ldr	r0, .L59+60
	bl	puts
.L58:
	nop
	ldr	r3, .L59
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L50
	bl	__stack_chk_fail
.L50:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L60:
	.align	2
.L59:
	.word	.LC38
	.word	.LC25
	.word	.LC26
	.word	.LC27
	.word	.LC28
	.word	1717986919
	.word	.LC29
	.word	.LC30
	.word	.LC31
	.word	.LC32
	.word	.LC33
	.word	.LC2
	.word	.LC34
	.word	.LC35
	.word	.LC36
	.word	.LC37
	.size	withdrawal, .-withdrawal
	.section	.rodata
	.align	2
.LC39:
	.ascii	"\011You can deposit up to $10000/day\000"
	.align	2
.LC40:
	.ascii	"\011Enter deposit amount: \000"
	.align	2
.LC41:
	.ascii	"\012\011That is not a valid amount.\000"
	.align	2
.LC42:
	.ascii	"\012\011Deposit exceeds daily limit\000"
	.global	__aeabi_fadd
	.align	2
.LC43:
	.ascii	"Would you like a receipt(1 = yes, 2 = no)\000"
	.align	2
.LC44:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	deposit
	.syntax unified
	.arm
	.fpu softvfp
	.type	deposit, %function
deposit:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	ldr	r3, .L87
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmple
	mov	r3, r0
	cmp	r3, #0
	beq	.L62
	mvn	r1, #0
	mov	r0, #4
	bl	quit
.L62:
	ldr	r0, .L87+4
	bl	puts
.L70:
	ldr	r1, .L87+8
	ldr	r0, .L87+12
	bl	printf
	sub	r3, fp, #28
	mov	r1, r3
	ldr	r0, .L87+16
	bl	__isoc99_scanf
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	ble	.L64
	ldr	r3, [fp, #-28]
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r2, r0
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fcmple
	mov	r3, r0
	cmp	r3, #0
	beq	.L64
	ldr	r0, .L87+20
	bl	puts
	b	.L66
.L64:
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bgt	.L67
	ldr	r0, .L87+24
	bl	puts
	b	.L68
.L67:
	ldr	r3, [fp, #-28]
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r2, r0
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L68
	ldr	r0, .L87+28
	bl	puts
.L68:
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #2
	bls	.L70
.L66:
	ldr	r3, [fp, #-20]
	cmp	r3, #2
	bls	.L71
	mvn	r1, #0
	mov	r0, #3
	bl	quit
.L71:
	ldr	r3, [fp, #-28]
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r2, r0
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L84
	ldr	r0, .L87+32
	bl	puts
	b	.L86
.L84:
	ldr	r3, [fp, #-28]
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r2, r0
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fcmple
	mov	r3, r0
	cmp	r3, #0
	beq	.L85
	ldr	r3, [fp, #-36]
	ldr	r4, [r3]	@ float
	ldr	r3, [fp, #-28]
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-36]
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-32]
	ldr	r4, [r3]	@ float
	ldr	r3, [fp, #-28]
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-32]
	str	r2, [r3]	@ float
	ldr	r0, .L87+36
	bl	puts
	sub	r3, fp, #24
	mov	r1, r3
	ldr	r0, .L87+40
	bl	__isoc99_scanf
	ldr	r3, [fp, #-24]
	cmp	r3, #1
	bne	.L77
	ldr	r0, .L87+44
	bl	puts
.L77:
	ldr	r0, .L87+48
	bl	puts
	b	.L86
.L85:
	ldr	r0, .L87+52
	bl	puts
.L86:
	nop
	ldr	r3, .L87
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L78
	bl	__stack_chk_fail
.L78:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L88:
	.align	2
.L87:
	.word	.LC44
	.word	.LC39
	.word	.LC40
	.word	.LC27
	.word	.LC28
	.word	.LC29
	.word	.LC41
	.word	.LC42
	.word	.LC36
	.word	.LC43
	.word	.LC2
	.word	.LC34
	.word	.LC35
	.word	.LC37
	.size	deposit, .-deposit
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
