	.file	"ACMEScan.c"
	.section	.rodata
.LC0:
	.string	"rb"
.LC1:
	.string	"ACMEScan.c"
	.text
.globl isAVirus
	.type	isAVirus, @function
isAVirus:
.LFB0:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	movq	%rsp, %rbp
	.cfi_offset 6, -16
	.cfi_def_cfa_register 6
	subq	$64, %rsp
	movq	%rdi, -56(%rbp)
	movl	$544024393, -32(%rbp)
	movl	$1769349217, -28(%rbp)
	movl	$7566706, -24(%rbp)
	movl	$.LC0, %edx
	movq	-56(%rbp), %rax
	movq	%rdx, %rsi
	movq	%rax, %rdi
	call	fopen
	movq	%rax, -8(%rbp)
	cmpq	$0, -8(%rbp)
	jne	.L2
	movl	$.LC1, %edi
	call	perror
	movl	$1, %edi
	call	exit
.L2:
	movq	-8(%rbp), %rdx
	leaq	-48(%rbp), %rax
	movq	%rdx, %rcx
	movl	$12, %edx
	movl	$1, %esi
	movq	%rax, %rdi
	call	fread
	cmpq	$11, %rax
	ja	.L3
	movq	-8(%rbp), %rax
	movq	%rax, %rdi
	call	feof
	testl	%eax, %eax
	jne	.L3
	movl	$.LC1, %edi
	call	perror
	movl	$1, %edi
	call	exit
.L3:
	movq	-8(%rbp), %rax
	movq	%rax, %rdi
	call	fclose
	leaq	-32(%rbp), %rax
	movq	%rax, %rdi
	call	strlen
	movq	%rax, %rdx
	leaq	-32(%rbp), %rcx
	leaq	-48(%rbp), %rax
	movq	%rcx, %rsi
	movq	%rax, %rdi
	call	memcmp
	testl	%eax, %eax
	sete	%al
	leave
	ret
	.cfi_endproc
.LFE0:
	.size	isAVirus, .-isAVirus
.globl appendReportItem
	.type	appendReportItem, @function
appendReportItem:
.LFB1:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	movq	%rsp, %rbp
	.cfi_offset 6, -16
	.cfi_def_cfa_register 6
	subq	$32, %rsp
	movq	%rdi, -24(%rbp)
	movq	%rsi, -32(%rbp)
	movl	$48, %edi
	call	malloc
	movq	%rax, -8(%rbp)
	movq	-32(%rbp), %rcx
	movq	-8(%rbp), %rax
	movl	$48, %edx
	movq	%rcx, %rsi
	movq	%rax, %rdi
	call	memcpy
	movq	-24(%rbp), %rax
	movq	(%rax), %rdx
	movq	-8(%rbp), %rax
	movq	%rdx, 40(%rax)
	movq	-24(%rbp), %rax
	movq	-8(%rbp), %rdx
	movq	%rdx, (%rax)
	leave
	ret
	.cfi_endproc
.LFE1:
	.size	appendReportItem, .-appendReportItem
.globl freeFullReport
	.type	freeFullReport, @function
freeFullReport:
.LFB2:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	movq	%rsp, %rbp
	.cfi_offset 6, -16
	.cfi_def_cfa_register 6
	subq	$32, %rsp
	movq	%rdi, -24(%rbp)
	movq	-24(%rbp), %rax
	movq	(%rax), %rax
	movq	%rax, -16(%rbp)
	jmp	.L8
.L9:
	movq	-16(%rbp), %rax
	movq	%rax, -8(%rbp)
	movq	-8(%rbp), %rax
	movq	40(%rax), %rax
	movq	%rax, -16(%rbp)
	movq	-8(%rbp), %rax
	movq	%rax, %rdi
	call	free
.L8:
	cmpq	$0, -16(%rbp)
	jne	.L9
	movq	-24(%rbp), %rax
	movq	$0, (%rax)
	leave
	ret
	.cfi_endproc
.LFE2:
	.size	freeFullReport, .-freeFullReport
	.section	.rodata
	.align 8
.LC2:
	.string	"---------------------------------------"
	.align 8
.LC3:
	.string	"       ___       _______  __    __       _______"
	.align 8
.LC4:
	.string	"      /   |     / _____/ /  |  /  |     / _____/"
	.align 8
.LC5:
	.string	"     / /| |    / /      /   | /   |    / /____  "
	.align 8
.LC6:
	.string	"    / /_| |   / /      / /| |/ /| |   / _____/  "
	.align 8
.LC7:
	.string	"   / ___  |  / /____  / / |___/ | |  / /____    "
	.align 8
.LC8:
	.string	"  /_/   |_| /______/ /_/        |_| /______/    "
	.align 8
.LC9:
	.string	"                                         [SCAN] "
.LC10:
	.string	"  Report:"
.LC11:
	.string	" %s%s\n"
.LC12:
	.string	"Virus Found!"
.LC13:
	.string	"OK"
.LC14:
	.string	"  %s [%s]\n"
.LC15:
	.string	"  %d elements scanned\n\n"
	.text
.globl printReport
	.type	printReport, @function
printReport:
.LFB3:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	movq	%rsp, %rbp
	.cfi_offset 6, -16
	.cfi_def_cfa_register 6
	pushq	%rbx
	subq	$56, %rsp
	movq	%rdi, -56(%rbp)
	movq	-56(%rbp), %rax
	movq	%rax, -40(%rbp)
	movl	$0, -28(%rbp)
	movq	$.LC2, -24(%rbp)
	movl	$.LC3, %edi
	.cfi_offset 3, -24
	call	puts
	movl	$.LC4, %edi
	call	puts
	movl	$.LC5, %edi
	call	puts
	movl	$.LC6, %edi
	call	puts
	movl	$.LC7, %edi
	call	puts
	movl	$.LC8, %edi
	call	puts
	movl	$.LC9, %edi
	call	puts
	movl	$.LC10, %edi
	call	puts
	movl	$.LC11, %eax
	movq	-24(%rbp), %rdx
	movq	-24(%rbp), %rcx
	movq	%rcx, %rsi
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf
	jmp	.L12
.L15:
	movq	-40(%rbp), %rax
	movzbl	32(%rax), %eax
	testb	%al, %al
	je	.L13
	movl	$.LC12, %eax
	jmp	.L14
.L13:
	movl	$.LC13, %eax
.L14:
	movq	-40(%rbp), %rbx
	movl	$.LC14, %ecx
	movq	%rax, %rdx
	movq	%rbx, %rsi
	movq	%rcx, %rdi
	movl	$0, %eax
	call	printf
	movq	-40(%rbp), %rax
	movq	40(%rax), %rax
	movq	%rax, -40(%rbp)
	addl	$1, -28(%rbp)
.L12:
	cmpq	$0, -40(%rbp)
	jne	.L15
	movl	$.LC11, %eax
	movq	-24(%rbp), %rdx
	movq	-24(%rbp), %rcx
	movq	%rcx, %rsi
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf
	movl	$.LC15, %eax
	movl	-28(%rbp), %edx
	movl	%edx, %esi
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf
	addq	$56, %rsp
	popq	%rbx
	leave
	ret
	.cfi_endproc
.LFE3:
	.size	printReport, .-printReport
.globl main
	.type	main, @function
main:
.LFB4:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	movq	%rsp, %rbp
	.cfi_offset 6, -16
	.cfi_def_cfa_register 6
	subq	$80, %rsp
	movl	%edi, -68(%rbp)
	movq	%rsi, -80(%rbp)
	movq	$0, -16(%rbp)
	movl	$1, -4(%rbp)
	jmp	.L18
.L20:
	movl	-4(%rbp), %eax
	cltq
	salq	$3, %rax
	addq	-80(%rbp), %rax
	movq	(%rax), %rax
	movq	%rax, %rdi
	call	isAVirus
	movb	%al, -32(%rbp)
	movl	-4(%rbp), %eax
	cltq
	salq	$3, %rax
	addq	-80(%rbp), %rax
	movq	(%rax), %rax
	movq	%rax, %rcx
	leaq	-64(%rbp), %rax
	movl	$32, %edx
	movq	%rcx, %rsi
	movq	%rax, %rdi
	call	strncpy
	movl	-4(%rbp), %eax
	cltq
	salq	$3, %rax
	addq	-80(%rbp), %rax
	movq	(%rax), %rax
	movq	%rax, %rdi
	call	strlen
	cmpq	$32, %rax
	jbe	.L19
	movb	$0, -32(%rbp)
.L19:
	leaq	-64(%rbp), %rdx
	leaq	-16(%rbp), %rax
	movq	%rdx, %rsi
	movq	%rax, %rdi
	call	appendReportItem
	addl	$1, -4(%rbp)
.L18:
	movl	-4(%rbp), %eax
	cmpl	-68(%rbp), %eax
	jl	.L20
	movq	-16(%rbp), %rax
	movq	%rax, %rdi
	call	printReport
	leaq	-16(%rbp), %rax
	movq	%rax, %rdi
	call	freeFullReport
	movl	$0, %eax
	leave
	ret
	.cfi_endproc
.LFE4:
	.size	main, .-main
	.ident	"GCC: (Debian 4.4.5-8) 4.4.5"
	.section	.note.GNU-stack,"",@progbits