	.file	"831958.c"
	.intel_syntax noprefix
	.text
	.globl	lives
	.data
	.align 2
	.type	lives, @object
	.size	lives, 2
lives:
	.value	3
	.globl	empty
	.section	.rodata
.LC0:
	.string	" "
	.section	.data.rel.local,"aw"
	.align 8
	.type	empty, @object
	.size	empty, 8
empty:
	.quad	.LC0
	.globl	body
	.section	.rodata
.LC1:
	.string	"O"
	.section	.data.rel.local
	.align 8
	.type	body, @object
	.size	body, 8
body:
	.quad	.LC1
	.globl	apple
	.section	.rodata
.LC2:
	.string	"@"
	.section	.data.rel.local
	.align 8
	.type	apple, @object
	.size	apple, 8
apple:
	.quad	.LC2
	.globl	wall
	.section	.rodata
.LC3:
	.string	"#"
	.section	.data.rel.local
	.align 8
	.type	wall, @object
	.size	wall, 8
wall:
	.quad	.LC3
	.globl	snake_head
	.align 8
	.type	snake_head, @object
	.size	snake_head, 8
snake_head:
	.quad	.LC1
	.globl	rows
	.bss
	.align 2
	.type	rows, @object
	.size	rows, 2
rows:
	.zero	2
	.globl	cols
	.align 2
	.type	cols, @object
	.size	cols, 2
cols:
	.zero	2
	.globl	nrows
	.align 2
	.type	nrows, @object
	.size	nrows, 2
nrows:
	.zero	2
	.globl	ncols
	.align 2
	.type	ncols, @object
	.size	ncols, 2
ncols:
	.zero	2
	.globl	num_apples
	.align 2
	.type	num_apples, @object
	.size	num_apples, 2
num_apples:
	.zero	2
	.globl	score
	.align 2
	.type	score, @object
	.size	score, 2
score:
	.zero	2
	.globl	time_out
	.data
	.align 4
	.type	time_out, @object
	.size	time_out, 4
time_out:
	.long	1000
	.globl	disp_arr
	.bss
	.align 8
	.type	disp_arr, @object
	.size	disp_arr, 8
disp_arr:
	.zero	8
	.globl	levels_array
	.align 32
	.type	levels_array, @object
	.size	levels_array, 1280
levels_array:
	.zero	1280
	.globl	snake
	.align 8
	.type	snake, @object
	.size	snake, 8
snake:
	.zero	8
	.globl	papples
	.align 8
	.type	papples, @object
	.size	papples, 8
papples:
	.zero	8
	.text
	.globl	list_init
	.type	list_init, @function
list_init:
.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, 32
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L2
	mov	edi, 40
	call	malloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L2
	mov	eax, -1
	jmp	.L3
.L2:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR 24[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR 32[rax], 0
	mov	eax, 0
.L3:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	list_init, .-list_init
	.globl	list_destroy
	.type	list_destroy, @function
list_destroy:
.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, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L10
	jmp	.L6
.L7:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	lea	rdx, -16[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	list_rem_next
.L6:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jg	.L7
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], 0
	nop
.L10:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L9
	call	__stack_chk_fail@PLT
.L9:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	list_destroy, .-list_destroy
	.globl	list_ins_next
	.type	list_ins_next, @function
list_ins_next:
.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, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	edi, 16
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L12
	mov	eax, -1
	jmp	.L13
.L12:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR [rax], rdx
	cmp	QWORD PTR -32[rbp], 0
	jne	.L14
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L15
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 32[rax], rdx
.L15:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 24[rax], rdx
	jmp	.L16
.L14:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	jne	.L17
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 32[rax], rdx
.L17:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], rdx
.L16:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, 0
.L13:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	list_ins_next, .-list_ins_next
	.globl	list_rem_next
	.type	list_rem_next, @function
list_rem_next:
.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 -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L19
	mov	eax, -1
	jmp	.L20
.L19:
	cmp	QWORD PTR -32[rbp], 0
	jne	.L21
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 1
	jne	.L22
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 32[rax], 0
	jmp	.L22
.L21:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	jne	.L23
	mov	eax, -1
	jmp	.L20
.L23:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	jne	.L22
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 32[rax], rdx
.L22:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	je	.L24
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	rdx
.L24:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, 0
.L20:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	list_rem_next, .-list_rem_next
	.globl	delete_element
	.type	delete_element, @function
delete_element:
.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 -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	cmp	QWORD PTR -32[rbp], 0
	je	.L26
	cmp	QWORD PTR -24[rbp], 0
	je	.L26
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	jne	.L27
.L26:
	mov	eax, -1
	jmp	.L28
.L27:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -16[rbp], rax
	mov	QWORD PTR -8[rbp], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
	test	eax, eax
	jne	.L30
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 8[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	eax, 0
	jmp	.L28
.L32:
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
	test	eax, eax
	jne	.L31
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	eax, 0
	jmp	.L28
.L31:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -16[rbp], rax
.L30:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	jne	.L32
	mov	eax, -1
.L28:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	delete_element, .-delete_element
	.globl	delete_tail
	.type	delete_tail, @function
delete_tail:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -8[rbp], 0
	cmp	QWORD PTR -24[rbp], 0
	je	.L34
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L35
.L36:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -8[rbp], rax
.L35:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 32[rax]
	cmp	rdx, rax
	jne	.L36
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	eax, 0
	jmp	.L37
.L34:
	mov	eax, -1
.L37:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	delete_tail, .-delete_tail
	.globl	find_element
	.type	find_element, @function
find_element:
.LFB12:
	.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 -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	cmp	QWORD PTR -32[rbp], 0
	je	.L39
	cmp	QWORD PTR -24[rbp], 0
	jne	.L40
.L39:
	mov	eax, -1
	jmp	.L41
.L40:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L42
.L44:
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
	test	eax, eax
	jne	.L43
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, 0
	jmp	.L41
.L43:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -8[rbp], rax
.L42:
	cmp	QWORD PTR -8[rbp], 0
	jne	.L44
	mov	eax, -1
.L41:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	find_element, .-find_element
	.globl	iterate
	.type	iterate, @function
iterate:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	cmp	QWORD PTR -24[rbp], 0
	je	.L50
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L48
.L49:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -8[rbp], rax
.L48:
	cmp	QWORD PTR -8[rbp], 0
	jne	.L49
	jmp	.L45
.L50:
	nop
.L45:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	iterate, .-iterate
	.globl	display
	.type	display, @function
display:
.LFB14:
	.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 -8[rbp], 0
	jmp	.L52
.L55:
	mov	DWORD PTR -4[rbp], 0
	jmp	.L53
.L54:
	mov	rdx, QWORD PTR empty[rip]
	mov	ecx, DWORD PTR -4[rbp]
	mov	eax, DWORD PTR -8[rbp]
	mov	esi, ecx
	mov	edi, eax
	mov	eax, 0
	call	mvprintw@PLT
	add	DWORD PTR -4[rbp], 1
.L53:
	movzx	eax, WORD PTR cols[rip]
	movzx	eax, ax
	cmp	DWORD PTR -4[rbp], eax
	jl	.L54
	add	DWORD PTR -8[rbp], 1
.L52:
	movzx	eax, WORD PTR rows[rip]
	movzx	eax, ax
	cmp	DWORD PTR -8[rbp], eax
	jl	.L55
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	display, .-display
	.globl	clear_display
	.type	clear_display, @function
clear_display:
.LFB15:
	.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 -8[rbp], 0
	jmp	.L57
.L60:
	mov	DWORD PTR -4[rbp], 0
	jmp	.L58
.L59:
	mov	rdx, QWORD PTR empty[rip]
	mov	ecx, DWORD PTR -4[rbp]
	mov	eax, DWORD PTR -8[rbp]
	mov	esi, ecx
	mov	edi, eax
	mov	eax, 0
	call	mvprintw@PLT
	add	DWORD PTR -4[rbp], 1
.L58:
	movzx	eax, WORD PTR cols[rip]
	movzx	eax, ax
	cmp	DWORD PTR -4[rbp], eax
	jl	.L59
	add	DWORD PTR -8[rbp], 1
.L57:
	movzx	eax, WORD PTR rows[rip]
	movzx	eax, ax
	cmp	DWORD PTR -8[rbp], eax
	jl	.L60
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	clear_display, .-clear_display
	.globl	destroy
	.type	destroy, @function
destroy:
.LFB16:
	.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	QWORD PTR -8[rbp], rdi
	cmp	QWORD PTR -8[rbp], 0
	je	.L63
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	free@PLT
.L63:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	destroy, .-destroy
	.globl	equals
	.type	equals, @function
equals:
.LFB17:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	movzx	edx, WORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR [rax]
	cmp	dx, ax
	jne	.L65
	mov	rax, QWORD PTR -16[rbp]
	movzx	edx, WORD PTR 2[rax]
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 2[rax]
	cmp	dx, ax
	jne	.L65
	mov	eax, 0
	jmp	.L66
.L65:
	mov	eax, -1
.L66:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	equals, .-equals
	.globl	init_apples
	.type	init_apples, @function
init_apples:
.LFB18:
	.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	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L68
	mov	edi, 16
	call	malloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L69
	mov	eax, -1
	jmp	.L70
.L69:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	WORD PTR 8[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR [rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L68
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	lea	rdx, equals[rip]
	lea	rsi, destroy[rip]
	mov	rdi, rax
	call	list_init
.L68:
	mov	eax, -1
.L70:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	init_apples, .-init_apples
	.globl	init_snake
	.type	init_snake, @function
init_snake:
.LFB19:
	.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	DWORD PTR -44[rbp], esi
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L72
	mov	edi, 16
	call	malloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L73
	mov	eax, -1
	jmp	.L74
.L73:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR -44[rbp]
	mov	WORD PTR 12[rax], dx
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	DWORD PTR 8[rax], 2
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR [rax], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L72
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	lea	rdx, equals[rip]
	lea	rsi, destroy[rip]
	mov	rdi, rax
	call	list_init
	movzx	eax, WORD PTR rows[rip]
	shr	ax
	movzx	eax, ax
	mov	DWORD PTR -16[rbp], eax
	movzx	eax, WORD PTR cols[rip]
	shr	ax
	movzx	eax, ax
	mov	DWORD PTR -12[rbp], eax
	mov	edx, DWORD PTR -12[rbp]
	mov	eax, DWORD PTR -44[rbp]
	add	eax, edx
	mov	DWORD PTR -20[rbp], eax
	jmp	.L75
.L79:
	mov	edi, 6
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L76
	mov	eax, -1
	jmp	.L74
.L76:
	mov	eax, DWORD PTR -20[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	WORD PTR [rax], dx
	mov	eax, DWORD PTR -16[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	WORD PTR 2[rax], dx
	mov	edx, DWORD PTR -12[rbp]
	mov	eax, DWORD PTR -44[rbp]
	add	eax, edx
	cmp	DWORD PTR -20[rbp], eax
	jne	.L77
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 4[rax], 1
	jmp	.L78
.L77:
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 4[rax], 0
.L78:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	list_ins_next
	sub	DWORD PTR -20[rbp], 1
.L75:
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -12[rbp]
	ja	.L79
	mov	eax, 0
	jmp	.L74
.L72:
	mov	eax, -1
.L74:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	init_snake, .-init_snake
	.globl	draw_node
	.type	draw_node, @function
draw_node:
.LFB20:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 4[rax]
	test	al, al
	je	.L81
	mov	edx, 0
	mov	esi, 6
	mov	edi, 6
	call	init_pair@PLT
	mov	rax, QWORD PTR stdscr[rip]
	mov	edx, 0
	mov	esi, 1536
	mov	rdi, rax
	call	wattr_on@PLT
	mov	rdx, QWORD PTR snake_head[rip]
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	ecx, ax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 2[rax]
	movzx	eax, ax
	mov	esi, ecx
	mov	edi, eax
	mov	eax, 0
	call	mvprintw@PLT
	mov	rax, QWORD PTR stdscr[rip]
	mov	edx, 0
	mov	esi, 1536
	mov	rdi, rax
	call	wattr_off@PLT
	jmp	.L83
.L81:
	mov	edx, 0
	mov	esi, 2
	mov	edi, 1
	call	init_pair@PLT
	mov	rax, QWORD PTR stdscr[rip]
	mov	edx, 0
	mov	esi, 256
	mov	rdi, rax
	call	wattr_on@PLT
	mov	rdx, QWORD PTR body[rip]
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	ecx, ax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 2[rax]
	movzx	eax, ax
	mov	esi, ecx
	mov	edi, eax
	mov	eax, 0
	call	mvprintw@PLT
	mov	rax, QWORD PTR stdscr[rip]
	mov	edx, 0
	mov	esi, 256
	mov	rdi, rax
	call	wattr_off@PLT
.L83:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	draw_node, .-draw_node
	.globl	draw_apple
	.type	draw_apple, @function
draw_apple:
.LFB21:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	edx, 0
	mov	esi, 1
	mov	edi, 2
	call	init_pair@PLT
	mov	rax, QWORD PTR stdscr[rip]
	mov	edx, 0
	mov	esi, 512
	mov	rdi, rax
	call	wattr_on@PLT
	mov	rax, QWORD PTR stdscr[rip]
	mov	edx, 0
	mov	esi, 2097152
	mov	rdi, rax
	call	wattr_on@PLT
	mov	rdx, QWORD PTR apple[rip]
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	ecx, ax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 2[rax]
	movzx	eax, ax
	mov	esi, ecx
	mov	edi, eax
	mov	eax, 0
	call	mvprintw@PLT
	mov	rax, QWORD PTR stdscr[rip]
	mov	edx, 0
	mov	esi, 2097152
	mov	rdi, rax
	call	wattr_off@PLT
	mov	rax, QWORD PTR stdscr[rip]
	mov	edx, 0
	mov	esi, 512
	mov	rdi, rax
	call	wattr_off@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	draw_apple, .-draw_apple
	.globl	erase_node
	.type	erase_node, @function
erase_node:
.LFB22:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	ecx, ax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 2[rax]
	movzx	eax, ax
	lea	rdx, .LC0[rip]
	mov	esi, ecx
	mov	edi, eax
	mov	eax, 0
	call	mvprintw@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE22:
	.size	erase_node, .-erase_node
	.globl	display_snake
	.type	display_snake, @function
display_snake:
.LFB23:
	.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	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	lea	rsi, draw_node[rip]
	mov	rdi, rax
	call	iterate
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE23:
	.size	display_snake, .-display_snake
	.globl	erase_snake
	.type	erase_snake, @function
erase_snake:
.LFB24:
	.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	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	lea	rsi, erase_node[rip]
	mov	rdi, rax
	call	iterate
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE24:
	.size	erase_snake, .-erase_snake
	.globl	destroy_snake
	.type	destroy_snake, @function
destroy_snake:
.LFB25:
	.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	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L89
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L90
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	list_destroy
.L90:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], 0
	mov	eax, 0
	jmp	.L91
.L89:
	mov	eax, -1
.L91:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE25:
	.size	destroy_snake, .-destroy_snake
	.globl	destroy_apples
	.type	destroy_apples, @function
destroy_apples:
.LFB26:
	.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	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L93
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L94
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	list_destroy
.L94:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], 0
	mov	eax, 0
	jmp	.L95
.L93:
	mov	eax, -1
.L95:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE26:
	.size	destroy_apples, .-destroy_apples
	.globl	found_apple
	.type	found_apple, @function
found_apple:
.LFB27:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR papples[rip]
	mov	rax, QWORD PTR [rax]
	lea	rdx, -16[rbp]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	find_element
	test	eax, eax
	jne	.L97
	mov	eax, 1
	jmp	.L99
.L97:
	mov	eax, 0
.L99:
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L100
	call	__stack_chk_fail@PLT
.L100:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE27:
	.size	found_apple, .-found_apple
	.globl	eat_apple
	.type	eat_apple, @function
eat_apple:
.LFB28:
	.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	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR papples[rip]
	mov	rax, QWORD PTR [rax]
	lea	rdx, -24[rbp]
	mov	rcx, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	find_element
	test	eax, eax
	jne	.L104
	mov	rax, QWORD PTR papples[rip]
	mov	rax, QWORD PTR [rax]
	lea	rdx, -16[rbp]
	mov	rcx, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	delete_element
	mov	rax, QWORD PTR papples[rip]
	movzx	edx, WORD PTR 8[rax]
	sub	edx, 1
	mov	WORD PTR 8[rax], dx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	DWORD PTR time_out[rip], 1000
.L104:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L103
	call	__stack_chk_fail@PLT
.L103:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE28:
	.size	eat_apple, .-eat_apple
	.globl	move_snake
	.type	move_snake, @function
move_snake:
.LFB29:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	cmp	QWORD PTR -24[rbp], 0
	je	.L119
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	QWORD PTR -8[rbp], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 8[rax]
	cmp	eax, 3
	je	.L107
	cmp	eax, 3
	ja	.L120
	cmp	eax, 2
	je	.L108
	cmp	eax, 2
	ja	.L120
	test	eax, eax
	je	.L109
	cmp	eax, 1
	je	.L110
	jmp	.L120
.L109:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	collision
	test	eax, eax
	jne	.L121
	mov	edi, 6
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, WORD PTR 2[rax]
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	WORD PTR 2[rax], dx
	mov	rax, QWORD PTR -16[rbp]
	movzx	edx, WORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	WORD PTR [rax], dx
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 4[rax], 1
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR 4[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	list_ins_next
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	found_apple
	test	eax, eax
	je	.L112
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	eat_apple
	movzx	eax, WORD PTR score[rip]
	add	eax, 1
	mov	WORD PTR score[rip], ax
	mov	rax, QWORD PTR papples[rip]
	movzx	eax, WORD PTR 8[rax]
	test	ax, ax
	jne	.L121
	mov	rdx, QWORD PTR papples[rip]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	get_random_apple
	jmp	.L121
.L112:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	delete_tail
	jmp	.L121
.L110:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	collision
	test	eax, eax
	jne	.L122
	mov	edi, 6
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, WORD PTR 2[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	WORD PTR 2[rax], dx
	mov	rax, QWORD PTR -16[rbp]
	movzx	edx, WORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	WORD PTR [rax], dx
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 4[rax], 1
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR 4[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	list_ins_next
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	found_apple
	test	eax, eax
	je	.L114
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	eat_apple
	movzx	eax, WORD PTR score[rip]
	add	eax, 1
	mov	WORD PTR score[rip], ax
	mov	rax, QWORD PTR papples[rip]
	movzx	eax, WORD PTR 8[rax]
	test	ax, ax
	jne	.L122
	mov	rdx, QWORD PTR papples[rip]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	get_random_apple
	jmp	.L122
.L114:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	delete_tail
	jmp	.L122
.L108:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	collision
	test	eax, eax
	jne	.L123
	mov	edi, 6
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	movzx	edx, WORD PTR 2[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	WORD PTR 2[rax], dx
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, WORD PTR [rax]
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	WORD PTR [rax], dx
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 4[rax], 1
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR 4[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	list_ins_next
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	found_apple
	test	eax, eax
	je	.L116
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	eat_apple
	movzx	eax, WORD PTR score[rip]
	add	eax, 1
	mov	WORD PTR score[rip], ax
	mov	rax, QWORD PTR papples[rip]
	movzx	eax, WORD PTR 8[rax]
	test	ax, ax
	jne	.L123
	mov	rdx, QWORD PTR papples[rip]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	get_random_apple
	jmp	.L123
.L116:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	delete_tail
	jmp	.L123
.L107:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	collision
	test	eax, eax
	jne	.L124
	mov	edi, 6
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	movzx	edx, WORD PTR 2[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	WORD PTR 2[rax], dx
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, WORD PTR [rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	WORD PTR [rax], dx
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 4[rax], 1
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR 4[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	list_ins_next
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	found_apple
	test	eax, eax
	je	.L118
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	eat_apple
	movzx	eax, WORD PTR score[rip]
	add	eax, 1
	mov	WORD PTR score[rip], ax
	mov	rax, QWORD PTR papples[rip]
	movzx	eax, WORD PTR 8[rax]
	test	ax, ax
	jne	.L124
	mov	rdx, QWORD PTR papples[rip]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	get_random_apple
	jmp	.L124
.L118:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	delete_tail
	jmp	.L124
.L119:
	nop
	jmp	.L120
.L121:
	nop
	jmp	.L120
.L122:
	nop
	jmp	.L120
.L123:
	nop
	jmp	.L120
.L124:
	nop
.L120:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE29:
	.size	move_snake, .-move_snake
	.globl	display_apples
	.type	display_apples, @function
display_apples:
.LFB30:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	rax, QWORD PTR papples[rip]
	mov	rax, QWORD PTR [rax]
	lea	rsi, draw_apple[rip]
	mov	rdi, rax
	call	iterate
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE30:
	.size	display_apples, .-display_apples
	.globl	self_collision
	.type	self_collision, @function
self_collision:
.LFB31:
	.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	DWORD PTR -44[rbp], esi
	mov	DWORD PTR -48[rbp], edx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR -44[rbp]
	mov	WORD PTR -22[rbp], ax
	mov	eax, DWORD PTR -48[rbp]
	mov	WORD PTR -20[rbp], ax
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	lea	rdx, -16[rbp]
	lea	rcx, -22[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	find_element
	test	eax, eax
	jne	.L127
	mov	eax, 1
	jmp	.L129
.L127:
	mov	eax, 0
.L129:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L130
	call	__stack_chk_fail@PLT
.L130:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE31:
	.size	self_collision, .-self_collision
	.globl	collision
	.type	collision, @function
collision:
.LFB32:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	cmp	QWORD PTR -24[rbp], 0
	je	.L132
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 8[rax]
	cmp	eax, 3
	je	.L133
	cmp	eax, 3
	ja	.L132
	cmp	eax, 2
	je	.L134
	cmp	eax, 2
	ja	.L132
	test	eax, eax
	je	.L135
	cmp	eax, 1
	je	.L136
	jmp	.L132
.L135:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 2[rax]
	test	ax, ax
	jne	.L137
	mov	eax, 1
	jmp	.L138
.L137:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 2[rax]
	movzx	eax, ax
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	ecx, ax
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	self_collision
	test	eax, eax
	je	.L139
	mov	eax, 1
	jmp	.L138
.L139:
	mov	eax, 0
	jmp	.L138
.L136:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 2[rax]
	movzx	eax, ax
	lea	edx, 1[rax]
	movzx	eax, WORD PTR rows[rip]
	movzx	eax, ax
	cmp	edx, eax
	jne	.L140
	mov	eax, 1
	jmp	.L138
.L140:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 2[rax]
	movzx	eax, ax
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	ecx, ax
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	self_collision
	test	eax, eax
	je	.L141
	mov	eax, 1
	jmp	.L138
.L141:
	mov	eax, 0
	jmp	.L138
.L133:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	lea	edx, 1[rax]
	movzx	eax, WORD PTR cols[rip]
	movzx	eax, ax
	cmp	edx, eax
	jne	.L142
	mov	eax, 1
	jmp	.L138
.L142:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 2[rax]
	movzx	edx, ax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	lea	ecx, 1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	self_collision
	test	eax, eax
	je	.L143
	mov	eax, 1
	jmp	.L138
.L143:
	mov	eax, 0
	jmp	.L138
.L134:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR [rax]
	test	ax, ax
	jne	.L144
	mov	eax, 1
	jmp	.L138
.L144:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 2[rax]
	movzx	edx, ax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	lea	ecx, -1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	self_collision
	test	eax, eax
	je	.L145
	mov	eax, 1
	jmp	.L138
.L145:
	mov	eax, 0
	jmp	.L138
.L132:
	mov	eax, 0
.L138:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE32:
	.size	collision, .-collision
	.globl	get_input
	.type	get_input, @function
get_input:
.LFB33:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR stdscr[rip]
	mov	rdi, rax
	call	wgetch@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 261
	je	.L147
	cmp	DWORD PTR -4[rbp], 261
	jg	.L156
	cmp	DWORD PTR -4[rbp], 260
	je	.L149
	cmp	DWORD PTR -4[rbp], 260
	jg	.L156
	cmp	DWORD PTR -4[rbp], 258
	je	.L150
	cmp	DWORD PTR -4[rbp], 259
	je	.L151
	jmp	.L156
.L149:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 8[rax]
	cmp	eax, 3
	je	.L157
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 8[rax], 2
	jmp	.L157
.L150:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 8[rax]
	test	eax, eax
	je	.L158
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 8[rax], 1
	jmp	.L158
.L151:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 8[rax]
	cmp	eax, 1
	je	.L159
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 8[rax], 0
	jmp	.L159
.L147:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 8[rax]
	cmp	eax, 2
	je	.L160
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 8[rax], 3
	jmp	.L160
.L157:
	nop
	jmp	.L156
.L158:
	nop
	jmp	.L156
.L159:
	nop
	jmp	.L156
.L160:
	nop
.L156:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE33:
	.size	get_input, .-get_input
	.globl	get_random_apple
	.type	get_random_apple, @function
get_random_apple:
.LFB34:
	.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	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
.L166:
	call	rand@PLT
	movzx	edx, WORD PTR rows[rip]
	movzx	ecx, dx
	cdq
	idiv	ecx
	mov	eax, edx
	mov	DWORD PTR -36[rbp], eax
	call	rand@PLT
	movzx	edx, WORD PTR cols[rip]
	movzx	ecx, dx
	cdq
	idiv	ecx
	mov	eax, edx
	mov	DWORD PTR -32[rbp], eax
	cmp	DWORD PTR -36[rbp], 0
	jne	.L162
	mov	DWORD PTR -36[rbp], 1
.L162:
	movzx	eax, WORD PTR rows[rip]
	movzx	eax, ax
	sub	eax, 1
	cmp	DWORD PTR -36[rbp], eax
	jb	.L163
	movzx	eax, WORD PTR rows[rip]
	movzx	eax, ax
	sub	eax, 2
	mov	DWORD PTR -36[rbp], eax
.L163:
	cmp	DWORD PTR -32[rbp], 0
	jne	.L164
	mov	DWORD PTR -32[rbp], 1
.L164:
	movzx	eax, WORD PTR cols[rip]
	movzx	eax, ax
	sub	eax, 1
	cmp	DWORD PTR -32[rbp], eax
	jb	.L165
	movzx	eax, WORD PTR cols[rip]
	movzx	eax, ax
	sub	eax, 2
	mov	DWORD PTR -32[rbp], eax
.L165:
	mov	eax, DWORD PTR -32[rbp]
	mov	WORD PTR -28[rbp], ax
	mov	eax, DWORD PTR -36[rbp]
	mov	WORD PTR -26[rbp], ax
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR [rax]
	lea	rdx, -24[rbp]
	lea	rcx, -28[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	find_element
	test	eax, eax
	je	.L166
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	lea	rdx, -24[rbp]
	lea	rcx, -28[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	find_element
	test	eax, eax
	je	.L166
	mov	edi, 4
	call	malloc@PLT
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	je	.L169
	mov	eax, DWORD PTR -32[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -16[rbp]
	mov	WORD PTR [rax], dx
	mov	eax, DWORD PTR -36[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -16[rbp]
	mov	WORD PTR 2[rax], dx
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR -16[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	list_ins_next
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, WORD PTR 8[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	WORD PTR 8[rax], dx
.L169:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L168
	call	__stack_chk_fail@PLT
.L168:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE34:
	.size	get_random_apple, .-get_random_apple
	.globl	check_timeout
	.type	check_timeout, @function
check_timeout:
.LFB35:
	.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	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	eax, DWORD PTR time_out[rip]
	test	eax, eax
	jg	.L172
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	get_random_apple
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	get_random_apple
	mov	DWORD PTR time_out[rip], 1000
.L172:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE35:
	.size	check_timeout, .-check_timeout
	.globl	display_walls
	.type	display_walls, @function
display_walls:
.LFB36:
	.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	edx, 0
	mov	esi, 7
	mov	edi, 3
	call	init_pair@PLT
	mov	rax, QWORD PTR stdscr[rip]
	mov	edx, 0
	mov	esi, 768
	mov	rdi, rax
	call	wattr_on@PLT
	mov	DWORD PTR -4[rbp], 0
	jmp	.L174
.L175:
	mov	rdx, QWORD PTR wall[rip]
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, eax
	mov	edi, 0
	mov	eax, 0
	call	mvprintw@PLT
	add	DWORD PTR -4[rbp], 1
.L174:
	movzx	eax, WORD PTR cols[rip]
	movzx	eax, ax
	cmp	DWORD PTR -4[rbp], eax
	jb	.L175
	mov	DWORD PTR -4[rbp], 0
	jmp	.L176
.L177:
	mov	rdx, QWORD PTR wall[rip]
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, 0
	mov	edi, eax
	mov	eax, 0
	call	mvprintw@PLT
	mov	rdx, QWORD PTR wall[rip]
	movzx	eax, WORD PTR cols[rip]
	movzx	eax, ax
	lea	ecx, -1[rax]
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, ecx
	mov	edi, eax
	mov	eax, 0
	call	mvprintw@PLT
	add	DWORD PTR -4[rbp], 1
.L176:
	movzx	eax, WORD PTR rows[rip]
	movzx	eax, ax
	cmp	DWORD PTR -4[rbp], eax
	jb	.L177
	mov	rax, QWORD PTR stdscr[rip]
	mov	edx, 0
	mov	esi, 768
	mov	rdi, rax
	call	wattr_off@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE36:
	.size	display_walls, .-display_walls
	.globl	display_timeout
	.type	display_timeout, @function
display_timeout:
.LFB37:
	.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
	movzx	eax, WORD PTR cols[rip]
	movzx	eax, ax
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, eax
	movsd	xmm1, QWORD PTR .LC4[rip]
	divsd	xmm0, xmm1
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR -8[rbp], xmm0
	mov	eax, DWORD PTR time_out[rip]
	mov	edx, 1000
	sub	edx, eax
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, edx
	mulss	xmm0, DWORD PTR -8[rbp]
	cvttss2si	rax, xmm0
	mov	DWORD PTR -4[rbp], eax
	mov	edx, 0
	mov	esi, 1
	mov	edi, 7
	call	init_pair@PLT
	mov	DWORD PTR -12[rbp], 0
	jmp	.L179
.L182:
	mov	eax, DWORD PTR -12[rbp]
	cmp	eax, DWORD PTR -4[rbp]
	jnb	.L180
	mov	rax, QWORD PTR stdscr[rip]
	mov	edx, 0
	mov	esi, 1792
	mov	rdi, rax
	call	wattr_on@PLT
	mov	rdx, QWORD PTR wall[rip]
	mov	eax, DWORD PTR -12[rbp]
	movzx	ecx, WORD PTR rows[rip]
	movzx	ecx, cx
	sub	ecx, 1
	mov	esi, eax
	mov	edi, ecx
	mov	eax, 0
	call	mvprintw@PLT
	mov	rax, QWORD PTR stdscr[rip]
	mov	edx, 0
	mov	esi, 1792
	mov	rdi, rax
	call	wattr_off@PLT
	jmp	.L181
.L180:
	mov	rax, QWORD PTR stdscr[rip]
	mov	edx, 0
	mov	esi, 768
	mov	rdi, rax
	call	wattr_on@PLT
	mov	rdx, QWORD PTR wall[rip]
	mov	eax, DWORD PTR -12[rbp]
	movzx	ecx, WORD PTR rows[rip]
	movzx	ecx, cx
	sub	ecx, 1
	mov	esi, eax
	mov	edi, ecx
	mov	eax, 0
	call	mvprintw@PLT
	mov	rax, QWORD PTR stdscr[rip]
	mov	edx, 0
	mov	esi, 768
	mov	rdi, rax
	call	wattr_off@PLT
.L181:
	add	DWORD PTR -12[rbp], 1
.L179:
	movzx	eax, WORD PTR cols[rip]
	movzx	eax, ax
	cmp	DWORD PTR -12[rbp], eax
	jb	.L182
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE37:
	.size	display_timeout, .-display_timeout
	.section	.rodata
.LC5:
	.string	" [ score: %d lives: %d ] "
	.text
	.globl	display_score
	.type	display_score, @function
display_score:
.LFB38:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 112
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	movzx	eax, WORD PTR cols[rip]
	cmp	ax, 39
	jbe	.L186
	movzx	eax, WORD PTR lives[rip]
	movzx	ecx, ax
	movzx	eax, WORD PTR score[rip]
	movzx	edx, ax
	lea	rax, -112[rbp]
	lea	rsi, .LC5[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	mov	edx, 0
	mov	esi, 6
	mov	edi, 5
	call	init_pair@PLT
	mov	rax, QWORD PTR stdscr[rip]
	mov	edx, 0
	mov	esi, 1280
	mov	rdi, rax
	call	wattr_on@PLT
	lea	rax, -112[rbp]
	mov	rdx, rax
	mov	esi, 3
	mov	edi, 0
	mov	eax, 0
	call	mvprintw@PLT
	mov	rax, QWORD PTR stdscr[rip]
	mov	edx, 0
	mov	esi, 1280
	mov	rdi, rax
	call	wattr_off@PLT
.L186:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L185
	call	__stack_chk_fail@PLT
.L185:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE38:
	.size	display_score, .-display_score
	.section	.rodata
.LC6:
	.string	"Your score is: %d"
	.text
	.globl	display_final_score
	.type	display_final_score, @function
display_final_score:
.LFB39:
	.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	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, 0
	call	clear_display
	movzx	eax, WORD PTR score[rip]
	movzx	edx, ax
	lea	rax, -48[rbp]
	lea	rsi, .LC6[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	mov	edx, 0
	mov	esi, 6
	mov	edi, 5
	call	init_pair@PLT
	mov	rax, QWORD PTR stdscr[rip]
	mov	edx, 0
	mov	esi, 1280
	mov	rdi, rax
	call	wattr_on@PLT
	movzx	eax, WORD PTR cols[rip]
	shr	ax
	movzx	eax, ax
	lea	ecx, -8[rax]
	movzx	eax, WORD PTR rows[rip]
	shr	ax
	movzx	eax, ax
	lea	rdx, -48[rbp]
	mov	esi, ecx
	mov	edi, eax
	mov	eax, 0
	call	mvprintw@PLT
	mov	rax, QWORD PTR stdscr[rip]
	mov	edx, 0
	mov	esi, 1280
	mov	rdi, rax
	call	wattr_off@PLT
	mov	rax, QWORD PTR stdscr[rip]
	mov	rdi, rax
	call	wrefresh@PLT
	mov	edi, 2
	call	sleep@PLT
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L188
	call	__stack_chk_fail@PLT
.L188:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE39:
	.size	display_final_score, .-display_final_score
	.section	.rodata
.LC7:
	.string	"Game Over!"
	.text
	.globl	display_game_over
	.type	display_game_over, @function
display_game_over:
.LFB40:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, 0
	call	clear_display
	mov	edx, 0
	mov	esi, 6
	mov	edi, 5
	call	init_pair@PLT
	mov	rax, QWORD PTR stdscr[rip]
	mov	edx, 0
	mov	esi, 1280
	mov	rdi, rax
	call	wattr_on@PLT
	movzx	eax, WORD PTR cols[rip]
	shr	ax
	movzx	eax, ax
	lea	ecx, -5[rax]
	movzx	eax, WORD PTR rows[rip]
	shr	ax
	movzx	eax, ax
	lea	rdx, .LC7[rip]
	mov	esi, ecx
	mov	edi, eax
	mov	eax, 0
	call	mvprintw@PLT
	mov	rax, QWORD PTR stdscr[rip]
	mov	edx, 0
	mov	esi, 1280
	mov	rdi, rax
	call	wattr_off@PLT
	mov	rax, QWORD PTR stdscr[rip]
	mov	rdi, rax
	call	wrefresh@PLT
	mov	edi, 3
	call	sleep@PLT
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE40:
	.size	display_game_over, .-display_game_over
	.section	.rodata
.LC8:
	.string	"Snake Curses"
	.text
	.globl	display_title
	.type	display_title, @function
display_title:
.LFB41:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	edx, 0
	mov	esi, 6
	mov	edi, 5
	call	init_pair@PLT
	mov	rax, QWORD PTR stdscr[rip]
	mov	edx, 0
	mov	esi, 1280
	mov	rdi, rax
	call	wattr_on@PLT
	movzx	eax, WORD PTR cols[rip]
	shr	ax
	movzx	eax, ax
	lea	ecx, -6[rax]
	movzx	eax, WORD PTR rows[rip]
	shr	ax
	movzx	eax, ax
	sub	eax, 1
	lea	rdx, .LC8[rip]
	mov	esi, ecx
	mov	edi, eax
	mov	eax, 0
	call	mvprintw@PLT
	mov	rax, QWORD PTR stdscr[rip]
	mov	edx, 0
	mov	esi, 1280
	mov	rdi, rax
	call	wattr_off@PLT
	mov	rax, QWORD PTR stdscr[rip]
	mov	rdi, rax
	call	wrefresh@PLT
	mov	edi, 3
	call	sleep@PLT
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE41:
	.size	display_title, .-display_title
	.section	.rodata
.LC9:
	.string	"Lives left: %d"
	.text
	.globl	display_lives_left
	.type	display_lives_left, @function
display_lives_left:
.LFB42:
	.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	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, 0
	call	clear_display
	movzx	eax, WORD PTR lives[rip]
	movzx	edx, ax
	lea	rax, -48[rbp]
	lea	rsi, .LC9[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	mov	edx, 0
	mov	esi, 6
	mov	edi, 5
	call	init_pair@PLT
	mov	rax, QWORD PTR stdscr[rip]
	mov	edx, 0
	mov	esi, 1280
	mov	rdi, rax
	call	wattr_on@PLT
	movzx	eax, WORD PTR cols[rip]
	shr	ax
	movzx	eax, ax
	lea	esi, -7[rax]
	movzx	eax, WORD PTR rows[rip]
	shr	ax
	movzx	eax, ax
	lea	ecx, -1[rax]
	lea	rax, -48[rbp]
	mov	rdx, rax
	mov	edi, ecx
	mov	eax, 0
	call	mvprintw@PLT
	mov	rax, QWORD PTR stdscr[rip]
	mov	edx, 0
	mov	esi, 1280
	mov	rdi, rax
	call	wattr_off@PLT
	mov	rax, QWORD PTR stdscr[rip]
	mov	rdi, rax
	call	wrefresh@PLT
	mov	edi, 2
	call	sleep@PLT
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L192
	call	__stack_chk_fail@PLT
.L192:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE42:
	.size	display_lives_left, .-display_lives_left
	.globl	main
	.type	main, @function
main:
.LFB43:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	call	initscr@PLT
	call	cbreak@PLT
	mov	rax, QWORD PTR stdscr[rip]
	mov	esi, 1
	mov	rdi, rax
	call	nodelay@PLT
	call	noecho@PLT
	mov	edi, 0
	call	curs_set@PLT
	mov	rax, QWORD PTR stdscr[rip]
	mov	esi, 1
	mov	rdi, rax
	call	keypad@PLT
	mov	rax, QWORD PTR stdscr[rip]
	test	rax, rax
	je	.L194
	mov	rax, QWORD PTR stdscr[rip]
	movzx	eax, WORD PTR 4[rax]
	add	eax, 1
	jmp	.L195
.L194:
	mov	eax, -1
.L195:
	mov	WORD PTR rows[rip], ax
	mov	rax, QWORD PTR stdscr[rip]
	test	rax, rax
	je	.L196
	mov	rax, QWORD PTR stdscr[rip]
	movzx	eax, WORD PTR 6[rax]
	add	eax, 1
	jmp	.L197
.L196:
	mov	eax, -1
.L197:
	mov	WORD PTR cols[rip], ax
	mov	edi, 0
	call	time@PLT
	mov	edi, eax
	call	srand@PLT
	call	start_color@PLT
	mov	eax, 0
	call	display_title
	jmp	.L198
.L208:
	movzx	eax, WORD PTR cols[rip]
	shr	ax, 2
	movzx	eax, ax
	mov	esi, eax
	lea	rdi, snake[rip]
	call	init_snake
	lea	rdi, papples[rip]
	call	init_apples
	mov	eax, 0
	call	clear_display
	mov	rdx, QWORD PTR papples[rip]
	mov	rax, QWORD PTR snake[rip]
	mov	rsi, rdx
	mov	rdi, rax
	call	get_random_apple
	mov	DWORD PTR time_out[rip], 1000
	jmp	.L199
.L207:
	mov	rax, QWORD PTR stdscr[rip]
	test	rax, rax
	je	.L200
	mov	rax, QWORD PTR stdscr[rip]
	movzx	eax, WORD PTR 4[rax]
	add	eax, 1
	jmp	.L201
.L200:
	mov	eax, -1
.L201:
	mov	WORD PTR nrows[rip], ax
	mov	rax, QWORD PTR stdscr[rip]
	test	rax, rax
	je	.L202
	mov	rax, QWORD PTR stdscr[rip]
	movzx	eax, WORD PTR 6[rax]
	add	eax, 1
	jmp	.L203
.L202:
	mov	eax, -1
.L203:
	mov	WORD PTR ncols[rip], ax
	movzx	edx, WORD PTR rows[rip]
	movzx	eax, WORD PTR nrows[rip]
	cmp	dx, ax
	jne	.L204
	movzx	edx, WORD PTR cols[rip]
	movzx	eax, WORD PTR ncols[rip]
	cmp	dx, ax
	je	.L205
.L204:
	mov	eax, 0
	call	clear_display
	movzx	eax, WORD PTR nrows[rip]
	mov	WORD PTR rows[rip], ax
	movzx	eax, WORD PTR ncols[rip]
	mov	WORD PTR cols[rip], ax
	lea	rdi, papples[rip]
	call	destroy_apples
	lea	rdi, snake[rip]
	call	destroy_snake
	movzx	eax, WORD PTR cols[rip]
	shr	ax, 2
	movzx	eax, ax
	mov	esi, eax
	lea	rdi, snake[rip]
	call	init_snake
	lea	rdi, papples[rip]
	call	init_apples
	mov	rdx, QWORD PTR papples[rip]
	mov	rax, QWORD PTR snake[rip]
	mov	rsi, rdx
	mov	rdi, rax
	call	get_random_apple
.L205:
	mov	rax, QWORD PTR snake[rip]
	mov	rdi, rax
	call	get_input
	movzx	eax, WORD PTR score[rip]
	movzx	eax, ax
	pxor	xmm5, xmm5
	cvtsi2sd	xmm5, eax
	movq	rax, xmm5
	movq	xmm0, rax
	call	sqrt@PLT
	movapd	xmm1, xmm0
	addsd	xmm1, xmm0
	movsd	xmm3, QWORD PTR .LC10[rip]
	movapd	xmm0, xmm1
	movq	xmm2, QWORD PTR .LC11[rip]
	movapd	xmm4, xmm0
	andpd	xmm4, xmm2
	ucomisd	xmm3, xmm4
	jbe	.L206
	cvttsd2si	rax, xmm0
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	andnpd	xmm2, xmm1
	orpd	xmm0, xmm2
.L206:
	movapd	xmm1, xmm0
	mov	eax, DWORD PTR time_out[rip]
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, eax
	subsd	xmm0, xmm1
	cvttsd2si	eax, xmm0
	mov	DWORD PTR time_out[rip], eax
	mov	rdx, QWORD PTR papples[rip]
	mov	rax, QWORD PTR snake[rip]
	mov	rsi, rdx
	mov	rdi, rax
	call	check_timeout
	mov	eax, 0
	call	clear_display
	mov	eax, 0
	call	display_walls
	mov	eax, 0
	call	display_timeout
	mov	eax, 0
	call	display_score
	mov	eax, 0
	call	display_apples
	mov	rax, QWORD PTR snake[rip]
	mov	rdi, rax
	call	move_snake
	mov	rax, QWORD PTR snake[rip]
	mov	rdi, rax
	call	display_snake
	mov	rax, QWORD PTR stdscr[rip]
	mov	rdi, rax
	call	wrefresh@PLT
	movzx	eax, WORD PTR score[rip]
	movzx	eax, ax
	imul	eax, eax, -100
	add	eax, 100000
	mov	edi, eax
	call	usleep@PLT
.L199:
	mov	rax, QWORD PTR snake[rip]
	mov	rdi, rax
	call	collision
	test	eax, eax
	je	.L207
	lea	rdi, snake[rip]
	call	destroy_snake
	lea	rdi, papples[rip]
	call	destroy_apples
	movzx	eax, WORD PTR lives[rip]
	sub	eax, 1
	mov	WORD PTR lives[rip], ax
	movzx	eax, WORD PTR lives[rip]
	test	ax, ax
	je	.L198
	mov	eax, 0
	call	display_lives_left
.L198:
	movzx	eax, WORD PTR lives[rip]
	test	ax, ax
	jne	.L208
	mov	eax, 0
	call	display_final_score
	mov	eax, 0
	call	display_game_over
	mov	rax, QWORD PTR stdscr[rip]
	mov	rdi, rax
	call	wclear@PLT
	mov	edi, 2
	call	curs_set@PLT
	call	endwin@PLT
	mov	eax, 0
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE43:
	.size	main, .-main
	.section	.rodata
	.align 8
.LC4:
	.long	0
	.long	1083129856
	.align 8
.LC10:
	.long	0
	.long	1127219200
	.align 16
.LC11:
	.long	-1
	.long	2147483647
	.long	0
	.long	0
	.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	"831958.c"
	.text
	.global	lives
	.data
	.align	1
	.type	lives, %object
	.size	lives, 2
lives:
	.short	3
	.global	empty
	.section	.rodata
	.align	2
.LC0:
	.ascii	" \000"
	.data
	.align	2
	.type	empty, %object
	.size	empty, 4
empty:
	.word	.LC0
	.global	body
	.section	.rodata
	.align	2
.LC1:
	.ascii	"O\000"
	.data
	.align	2
	.type	body, %object
	.size	body, 4
body:
	.word	.LC1
	.global	apple
	.section	.rodata
	.align	2
.LC2:
	.ascii	"@\000"
	.data
	.align	2
	.type	apple, %object
	.size	apple, 4
apple:
	.word	.LC2
	.global	wall
	.section	.rodata
	.align	2
.LC3:
	.ascii	"#\000"
	.data
	.align	2
	.type	wall, %object
	.size	wall, 4
wall:
	.word	.LC3
	.global	snake_head
	.align	2
	.type	snake_head, %object
	.size	snake_head, 4
snake_head:
	.word	.LC1
	.comm	rows,2,2
	.comm	cols,2,2
	.comm	nrows,2,2
	.comm	ncols,2,2
	.global	num_apples
	.bss
	.align	1
	.type	num_apples, %object
	.size	num_apples, 2
num_apples:
	.space	2
	.global	score
	.align	1
	.type	score, %object
	.size	score, 2
score:
	.space	2
	.global	time_out
	.data
	.align	2
	.type	time_out, %object
	.size	time_out, 4
time_out:
	.word	1000
	.comm	disp_arr,4,4
	.comm	levels_array,1216,4
	.global	snake
	.bss
	.align	2
	.type	snake, %object
	.size	snake, 4
snake:
	.space	4
	.global	papples
	.align	2
	.type	papples, %object
	.size	papples, 4
papples:
	.space	4
	.text
	.align	2
	.global	list_init
	.syntax unified
	.arm
	.fpu softvfp
	.type	list_init, %function
list_init:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L2
	mov	r0, #20
	bl	malloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L2
	mvn	r3, #0
	b	.L3
.L2:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r2, #0
	str	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r2, #0
	str	r2, [r3, #16]
	mov	r3, #0
.L3:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	list_init, .-list_init
	.section	.rodata
	.align	2
.LC4:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	list_destroy
	.syntax unified
	.arm
	.fpu softvfp
	.type	list_destroy, %function
list_destroy:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, .L11
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L10
	b	.L6
.L7:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	sub	r2, fp, #12
	mov	r1, #0
	mov	r0, r3
	bl	list_rem_next
.L6:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r3, [r3]
	cmp	r3, #0
	bgt	.L7
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3]
	nop
.L10:
	nop
	ldr	r3, .L11
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L9
	bl	__stack_chk_fail
.L9:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L12:
	.align	2
.L11:
	.word	.LC4
	.size	list_destroy, .-list_destroy
	.align	2
	.global	list_ins_next
	.syntax unified
	.arm
	.fpu softvfp
	.type	list_ins_next, %function
list_ins_next:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	mov	r0, #8
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L14
	mvn	r3, #0
	b	.L15
.L14:
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-24]
	str	r2, [r3]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L16
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L17
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #16]
.L17:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #12]
	b	.L18
.L16:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L19
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #16]
.L19:
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #4]
.L18:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	mov	r3, #0
.L15:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	list_ins_next, .-list_ins_next
	.align	2
	.global	list_rem_next
	.syntax unified
	.arm
	.fpu softvfp
	.type	list_rem_next, %function
list_rem_next:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L21
	mvn	r3, #0
	b	.L22
.L21:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L23
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L24
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #16]
	b	.L24
.L23:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L25
	mvn	r3, #0
	b	.L22
.L25:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #4]
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	str	r2, [r3]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #4]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-20]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L24
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-20]
	str	r2, [r3, #16]
.L24:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	beq	.L26
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-8]
	ldr	r2, [r2]
	mov	r0, r2
	blx	r3
.L26:
	ldr	r0, [fp, #-8]
	bl	free
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	sub	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	mov	r3, #0
.L22:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	list_rem_next, .-list_rem_next
	.align	2
	.global	delete_element
	.syntax unified
	.arm
	.fpu softvfp
	.type	delete_element, %function
delete_element:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L28
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L28
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	bne	.L29
.L28:
	mvn	r3, #0
	b	.L30
.L29:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-12]
	ldr	r2, [r2]
	mov	r1, r2
	ldr	r0, [fp, #-20]
	blx	r3
	mov	r3, r0
	cmp	r3, #0
	bne	.L32
	ldr	r3, [fp, #-12]
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	sub	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	ldr	r0, [fp, #-12]
	bl	free
	mov	r3, #0
	b	.L30
.L34:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-12]
	ldr	r2, [r2, #4]
	ldr	r2, [r2]
	mov	r1, r2
	ldr	r0, [fp, #-20]
	blx	r3
	mov	r3, r0
	cmp	r3, #0
	bne	.L33
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	sub	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	ldr	r0, [fp, #-8]
	bl	free
	mov	r3, #0
	b	.L30
.L33:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-12]
.L32:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L34
	mvn	r3, #0
.L30:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	delete_element, .-delete_element
	.align	2
	.global	delete_tail
	.syntax unified
	.arm
	.fpu softvfp
	.type	delete_tail, %function
delete_tail:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L36
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-8]
	b	.L37
.L38:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-8]
.L37:
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #16]
	cmp	r2, r3
	bne	.L38
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	sub	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #16]
	mov	r3, #0
	b	.L39
.L36:
	mvn	r3, #0
.L39:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	delete_tail, .-delete_tail
	.align	2
	.global	find_element
	.syntax unified
	.arm
	.fpu softvfp
	.type	find_element, %function
find_element:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L41
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L42
.L41:
	mvn	r3, #0
	b	.L43
.L42:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-8]
	b	.L44
.L46:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-8]
	ldr	r2, [r2]
	mov	r1, r2
	ldr	r0, [fp, #-20]
	blx	r3
	mov	r3, r0
	cmp	r3, #0
	bne	.L45
	ldr	r3, [fp, #-8]
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	str	r2, [r3]
	mov	r3, #0
	b	.L43
.L45:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-8]
.L44:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L46
	mvn	r3, #0
.L43:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	find_element, .-find_element
	.align	2
	.global	iterate
	.syntax unified
	.arm
	.fpu softvfp
	.type	iterate, %function
iterate:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L52
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-8]
	b	.L50
.L51:
	ldr	r3, [fp, #-8]
	ldr	r2, [r3]
	ldr	r3, [fp, #-20]
	mov	r0, r2
	blx	r3
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-8]
.L50:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L51
	b	.L47
.L52:
	nop
.L47:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	iterate, .-iterate
	.align	2
	.global	display
	.syntax unified
	.arm
	.fpu softvfp
	.type	display, %function
display:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L54
.L57:
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L55
.L56:
	ldr	r3, .L58
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-12]
	bl	mvprintw
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L55:
	ldr	r3, .L58+4
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-8]
	cmp	r3, r2
	blt	.L56
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L54:
	ldr	r3, .L58+8
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-12]
	cmp	r3, r2
	blt	.L57
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L59:
	.align	2
.L58:
	.word	empty
	.word	cols
	.word	rows
	.size	display, .-display
	.align	2
	.global	clear_display
	.syntax unified
	.arm
	.fpu softvfp
	.type	clear_display, %function
clear_display:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L61
.L64:
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L62
.L63:
	ldr	r3, .L65
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-12]
	bl	mvprintw
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L62:
	ldr	r3, .L65+4
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-8]
	cmp	r3, r2
	blt	.L63
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L61:
	ldr	r3, .L65+8
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-12]
	cmp	r3, r2
	blt	.L64
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L66:
	.align	2
.L65:
	.word	empty
	.word	cols
	.word	rows
	.size	clear_display, .-clear_display
	.align	2
	.global	destroy
	.syntax unified
	.arm
	.fpu softvfp
	.type	destroy, %function
destroy:
	@ 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]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L69
	ldr	r0, [fp, #-8]
	bl	free
.L69:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	destroy, .-destroy
	.align	2
	.global	equals
	.syntax unified
	.arm
	.fpu softvfp
	.type	equals, %function
equals:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	ldrh	r2, [r3]
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3]
	cmp	r2, r3
	bne	.L71
	ldr	r3, [fp, #-12]
	ldrh	r2, [r3, #2]
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #2]
	cmp	r2, r3
	bne	.L71
	mov	r3, #0
	b	.L72
.L71:
	mvn	r3, #0
.L72:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	equals, .-equals
	.align	2
	.global	init_apples
	.syntax unified
	.arm
	.fpu softvfp
	.type	init_apples, %function
init_apples:
	@ 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]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L74
	mov	r0, #8
	bl	malloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L75
	mvn	r3, #0
	b	.L76
.L75:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r2, #0
	strh	r2, [r3, #4]	@ movhi
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L74
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	ldr	r2, .L77
	ldr	r1, .L77+4
	mov	r0, r3
	bl	list_init
.L74:
	mvn	r3, #0
.L76:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L78:
	.align	2
.L77:
	.word	equals
	.word	destroy
	.size	init_apples, .-init_apples
	.align	2
	.global	init_snake
	.syntax unified
	.arm
	.fpu softvfp
	.type	init_snake, %function
init_snake:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L80
	mov	r0, #12
	bl	malloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L81
	mvn	r3, #0
	b	.L82
.L81:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	mov	r2, #2
	str	r2, [r3, #4]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L80
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	ldr	r2, .L88
	ldr	r1, .L88+4
	mov	r0, r3
	bl	list_init
	ldr	r3, .L88+8
	ldrh	r3, [r3]
	lsr	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	str	r3, [fp, #-16]
	ldr	r3, .L88+12
	ldrh	r3, [r3]
	lsr	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	b	.L83
.L87:
	mov	r0, #6
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L84
	mvn	r3, #0
	b	.L82
.L84:
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-8]
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-8]
	strh	r2, [r3, #2]	@ movhi
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	bne	.L85
	ldr	r3, [fp, #-8]
	mov	r2, #1
	strb	r2, [r3, #4]
	b	.L86
.L85:
	ldr	r3, [fp, #-8]
	mov	r2, #0
	strb	r2, [r3, #4]
.L86:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	mov	r1, #0
	mov	r0, r3
	bl	list_ins_next
	ldr	r3, [fp, #-20]
	sub	r3, r3, #1
	str	r3, [fp, #-20]
.L83:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	bhi	.L87
	mov	r3, #0
	b	.L82
.L80:
	mvn	r3, #0
.L82:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L89:
	.align	2
.L88:
	.word	equals
	.word	destroy
	.word	rows
	.word	cols
	.size	init_snake, .-init_snake
	.align	2
	.global	draw_node
	.syntax unified
	.arm
	.fpu softvfp
	.type	draw_node, %function
draw_node:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #4]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L91
	mov	r2, #0
	mov	r1, #6
	mov	r0, #6
	bl	init_pair
	ldr	r3, .L94
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #1536
	mov	r0, r3
	bl	wattr_on
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #2]
	mov	r0, r3
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3]
	mov	r1, r3
	ldr	r3, .L94+4
	ldr	r3, [r3]
	mov	r2, r3
	bl	mvprintw
	ldr	r3, .L94
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #1536
	mov	r0, r3
	bl	wattr_off
	b	.L93
.L91:
	mov	r2, #0
	mov	r1, #2
	mov	r0, #1
	bl	init_pair
	ldr	r3, .L94
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #256
	mov	r0, r3
	bl	wattr_on
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #2]
	mov	r0, r3
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3]
	mov	r1, r3
	ldr	r3, .L94+8
	ldr	r3, [r3]
	mov	r2, r3
	bl	mvprintw
	ldr	r3, .L94
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #256
	mov	r0, r3
	bl	wattr_off
.L93:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L95:
	.align	2
.L94:
	.word	stdscr
	.word	snake_head
	.word	body
	.size	draw_node, .-draw_node
	.align	2
	.global	draw_apple
	.syntax unified
	.arm
	.fpu softvfp
	.type	draw_apple, %function
draw_apple:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-8]
	mov	r2, #0
	mov	r1, #1
	mov	r0, #2
	bl	init_pair
	ldr	r3, .L97
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #512
	mov	r0, r3
	bl	wattr_on
	ldr	r3, .L97
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #2097152
	mov	r0, r3
	bl	wattr_on
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #2]
	mov	r0, r3
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3]
	mov	r1, r3
	ldr	r3, .L97+4
	ldr	r3, [r3]
	mov	r2, r3
	bl	mvprintw
	ldr	r3, .L97
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #2097152
	mov	r0, r3
	bl	wattr_off
	ldr	r3, .L97
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #512
	mov	r0, r3
	bl	wattr_off
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L98:
	.align	2
.L97:
	.word	stdscr
	.word	apple
	.size	draw_apple, .-draw_apple
	.align	2
	.global	erase_node
	.syntax unified
	.arm
	.fpu softvfp
	.type	erase_node, %function
erase_node:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #2]
	mov	r0, r3
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3]
	ldr	r2, .L100
	mov	r1, r3
	bl	mvprintw
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L101:
	.align	2
.L100:
	.word	.LC0
	.size	erase_node, .-erase_node
	.align	2
	.global	display_snake
	.syntax unified
	.arm
	.fpu softvfp
	.type	display_snake, %function
display_snake:
	@ 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]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	ldr	r1, .L103
	mov	r0, r3
	bl	iterate
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L104:
	.align	2
.L103:
	.word	draw_node
	.size	display_snake, .-display_snake
	.align	2
	.global	erase_snake
	.syntax unified
	.arm
	.fpu softvfp
	.type	erase_snake, %function
erase_snake:
	@ 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]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	ldr	r1, .L106
	mov	r0, r3
	bl	iterate
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L107:
	.align	2
.L106:
	.word	erase_node
	.size	erase_snake, .-erase_snake
	.align	2
	.global	destroy_snake
	.syntax unified
	.arm
	.fpu softvfp
	.type	destroy_snake, %function
destroy_snake:
	@ 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]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L109
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L110
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r0, r3
	bl	list_destroy
.L110:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3]
	mov	r3, #0
	b	.L111
.L109:
	mvn	r3, #0
.L111:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	destroy_snake, .-destroy_snake
	.align	2
	.global	destroy_apples
	.syntax unified
	.arm
	.fpu softvfp
	.type	destroy_apples, %function
destroy_apples:
	@ 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]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L113
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L114
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r0, r3
	bl	list_destroy
.L114:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3]
	mov	r3, #0
	b	.L115
.L113:
	mvn	r3, #0
.L115:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	destroy_apples, .-destroy_apples
	.section	.rodata
	.align	2
.LC5:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	found_apple
	.syntax unified
	.arm
	.fpu softvfp
	.type	found_apple, %function
found_apple:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, .L121
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L121+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	sub	r2, fp, #12
	ldr	r1, [fp, #-16]
	mov	r0, r3
	bl	find_element
	mov	r3, r0
	cmp	r3, #0
	bne	.L117
	mov	r3, #1
	b	.L119
.L117:
	mov	r3, #0
.L119:
	ldr	r2, .L121
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L120
	bl	__stack_chk_fail
.L120:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L122:
	.align	2
.L121:
	.word	.LC5
	.word	papples
	.size	found_apple, .-found_apple
	.section	.rodata
	.align	2
.LC6:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	eat_apple
	.syntax unified
	.arm
	.fpu softvfp
	.type	eat_apple, %function
eat_apple:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	ldr	r3, .L127
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L127+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	sub	r2, fp, #16
	ldr	r1, [fp, #-24]
	mov	r0, r3
	bl	find_element
	mov	r3, r0
	cmp	r3, #0
	bne	.L126
	ldr	r3, .L127+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	sub	r2, fp, #12
	ldr	r1, [fp, #-24]
	mov	r0, r3
	bl	delete_element
	ldr	r3, .L127+4
	ldr	r3, [r3]
	ldrh	r2, [r3, #4]
	sub	r2, r2, #1
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #4]	@ movhi
	ldr	r3, [fp, #-12]
	mov	r0, r3
	bl	free
	ldr	r3, .L127+8
	mov	r2, #1000
	str	r2, [r3]
.L126:
	nop
	ldr	r3, .L127
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L125
	bl	__stack_chk_fail
.L125:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L128:
	.align	2
.L127:
	.word	.LC6
	.word	papples
	.word	time_out
	.size	eat_apple, .-eat_apple
	.align	2
	.global	move_snake
	.syntax unified
	.arm
	.fpu softvfp
	.type	move_snake, %function
move_snake:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L144
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	cmp	r3, #3
	ldrls	pc, [pc, r3, asl #2]
	b	.L145
.L132:
	.word	.L135
	.word	.L134
	.word	.L133
	.word	.L131
.L135:
	ldr	r0, [fp, #-16]
	bl	collision
	mov	r3, r0
	cmp	r3, #0
	bne	.L146
	mov	r0, #6
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	ldrh	r3, [r3, #2]
	sub	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-8]
	strh	r2, [r3, #2]	@ movhi
	ldr	r3, [fp, #-12]
	ldrh	r2, [r3]
	ldr	r3, [fp, #-8]
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-8]
	mov	r2, #1
	strb	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	mov	r2, #0
	strb	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	mov	r1, #0
	mov	r0, r3
	bl	list_ins_next
	ldr	r0, [fp, #-8]
	bl	found_apple
	mov	r3, r0
	cmp	r3, #0
	beq	.L137
	ldr	r0, [fp, #-8]
	bl	eat_apple
	ldr	r3, .L150
	ldrh	r3, [r3]
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L150
	strh	r3, [r2]	@ movhi
	ldr	r3, .L150+4
	ldr	r3, [r3]
	ldrh	r3, [r3, #4]
	cmp	r3, #0
	bne	.L146
	ldr	r3, .L150+4
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	get_random_apple
	b	.L146
.L137:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	mov	r0, r3
	bl	delete_tail
	b	.L146
.L134:
	ldr	r0, [fp, #-16]
	bl	collision
	mov	r3, r0
	cmp	r3, #0
	bne	.L147
	mov	r0, #6
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	ldrh	r3, [r3, #2]
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-8]
	strh	r2, [r3, #2]	@ movhi
	ldr	r3, [fp, #-12]
	ldrh	r2, [r3]
	ldr	r3, [fp, #-8]
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-8]
	mov	r2, #1
	strb	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	mov	r2, #0
	strb	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	mov	r1, #0
	mov	r0, r3
	bl	list_ins_next
	ldr	r0, [fp, #-8]
	bl	found_apple
	mov	r3, r0
	cmp	r3, #0
	beq	.L139
	ldr	r0, [fp, #-8]
	bl	eat_apple
	ldr	r3, .L150
	ldrh	r3, [r3]
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L150
	strh	r3, [r2]	@ movhi
	ldr	r3, .L150+4
	ldr	r3, [r3]
	ldrh	r3, [r3, #4]
	cmp	r3, #0
	bne	.L147
	ldr	r3, .L150+4
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	get_random_apple
	b	.L147
.L139:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	mov	r0, r3
	bl	delete_tail
	b	.L147
.L133:
	ldr	r0, [fp, #-16]
	bl	collision
	mov	r3, r0
	cmp	r3, #0
	bne	.L148
	mov	r0, #6
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	ldrh	r2, [r3, #2]
	ldr	r3, [fp, #-8]
	strh	r2, [r3, #2]	@ movhi
	ldr	r3, [fp, #-12]
	ldrh	r3, [r3]
	sub	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-8]
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-8]
	mov	r2, #1
	strb	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	mov	r2, #0
	strb	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	mov	r1, #0
	mov	r0, r3
	bl	list_ins_next
	ldr	r0, [fp, #-8]
	bl	found_apple
	mov	r3, r0
	cmp	r3, #0
	beq	.L141
	ldr	r0, [fp, #-8]
	bl	eat_apple
	ldr	r3, .L150
	ldrh	r3, [r3]
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L150
	strh	r3, [r2]	@ movhi
	ldr	r3, .L150+4
	ldr	r3, [r3]
	ldrh	r3, [r3, #4]
	cmp	r3, #0
	bne	.L148
	ldr	r3, .L150+4
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	get_random_apple
	b	.L148
.L141:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	mov	r0, r3
	bl	delete_tail
	b	.L148
.L131:
	ldr	r0, [fp, #-16]
	bl	collision
	mov	r3, r0
	cmp	r3, #0
	bne	.L149
	mov	r0, #6
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	ldrh	r2, [r3, #2]
	ldr	r3, [fp, #-8]
	strh	r2, [r3, #2]	@ movhi
	ldr	r3, [fp, #-12]
	ldrh	r3, [r3]
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-8]
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-8]
	mov	r2, #1
	strb	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	mov	r2, #0
	strb	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	mov	r1, #0
	mov	r0, r3
	bl	list_ins_next
	ldr	r0, [fp, #-8]
	bl	found_apple
	mov	r3, r0
	cmp	r3, #0
	beq	.L143
	ldr	r0, [fp, #-8]
	bl	eat_apple
	ldr	r3, .L150
	ldrh	r3, [r3]
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L150
	strh	r3, [r2]	@ movhi
	ldr	r3, .L150+4
	ldr	r3, [r3]
	ldrh	r3, [r3, #4]
	cmp	r3, #0
	bne	.L149
	ldr	r3, .L150+4
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	get_random_apple
	b	.L149
.L143:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	mov	r0, r3
	bl	delete_tail
	b	.L149
.L144:
	nop
	b	.L145
.L146:
	nop
	b	.L145
.L147:
	nop
	b	.L145
.L148:
	nop
	b	.L145
.L149:
	nop
.L145:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L151:
	.align	2
.L150:
	.word	score
	.word	papples
	.size	move_snake, .-move_snake
	.align	2
	.global	display_apples
	.syntax unified
	.arm
	.fpu softvfp
	.type	display_apples, %function
display_apples:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L153
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r1, .L153+4
	mov	r0, r3
	bl	iterate
	nop
	pop	{fp, pc}
.L154:
	.align	2
.L153:
	.word	papples
	.word	draw_apple
	.size	display_apples, .-display_apples
	.section	.rodata
	.align	2
.LC7:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	self_collision
	.syntax unified
	.arm
	.fpu softvfp
	.type	self_collision, %function
self_collision:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	ldr	r3, .L160
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-16]	@ movhi
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-14]	@ movhi
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	sub	r2, fp, #20
	sub	r1, fp, #16
	mov	r0, r3
	bl	find_element
	mov	r3, r0
	cmp	r3, #0
	bne	.L156
	mov	r3, #1
	b	.L158
.L156:
	mov	r3, #0
.L158:
	ldr	r2, .L160
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L159
	bl	__stack_chk_fail
.L159:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L161:
	.align	2
.L160:
	.word	.LC7
	.size	self_collision, .-self_collision
	.align	2
	.global	collision
	.syntax unified
	.arm
	.fpu softvfp
	.type	collision, %function
collision:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L163
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	cmp	r3, #3
	ldrls	pc, [pc, r3, asl #2]
	b	.L163
.L165:
	.word	.L168
	.word	.L167
	.word	.L166
	.word	.L164
.L168:
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #2]
	cmp	r3, #0
	bne	.L169
	mov	r3, #1
	b	.L170
.L169:
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3]
	mov	r1, r3
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #2]
	sub	r3, r3, #1
	mov	r2, r3
	ldr	r0, [fp, #-16]
	bl	self_collision
	mov	r3, r0
	cmp	r3, #0
	beq	.L171
	mov	r3, #1
	b	.L170
.L171:
	mov	r3, #0
	b	.L170
.L167:
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #2]
	add	r3, r3, #1
	ldr	r2, .L178
	ldrh	r2, [r2]
	cmp	r3, r2
	bne	.L172
	mov	r3, #1
	b	.L170
.L172:
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3]
	mov	r1, r3
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #2]
	add	r3, r3, #1
	mov	r2, r3
	ldr	r0, [fp, #-16]
	bl	self_collision
	mov	r3, r0
	cmp	r3, #0
	beq	.L173
	mov	r3, #1
	b	.L170
.L173:
	mov	r3, #0
	b	.L170
.L164:
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L178+4
	ldrh	r2, [r2]
	cmp	r3, r2
	bne	.L174
	mov	r3, #1
	b	.L170
.L174:
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3]
	add	r1, r3, #1
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #2]
	mov	r2, r3
	ldr	r0, [fp, #-16]
	bl	self_collision
	mov	r3, r0
	cmp	r3, #0
	beq	.L175
	mov	r3, #1
	b	.L170
.L175:
	mov	r3, #0
	b	.L170
.L166:
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3]
	cmp	r3, #0
	bne	.L176
	mov	r3, #1
	b	.L170
.L176:
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3]
	sub	r1, r3, #1
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #2]
	mov	r2, r3
	ldr	r0, [fp, #-16]
	bl	self_collision
	mov	r3, r0
	cmp	r3, #0
	beq	.L177
	mov	r3, #1
	b	.L170
.L177:
	mov	r3, #0
	b	.L170
.L163:
	mov	r3, #0
.L170:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L179:
	.align	2
.L178:
	.word	rows
	.word	cols
	.size	collision, .-collision
	.align	2
	.global	get_input
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_input, %function
get_input:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, .L196
	ldr	r3, [r3]
	mov	r0, r3
	bl	wgetch
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	sub	r3, r3, #256
	sub	r3, r3, #2
	cmp	r3, #3
	ldrls	pc, [pc, r3, asl #2]
	b	.L191
.L183:
	.word	.L186
	.word	.L185
	.word	.L184
	.word	.L182
.L184:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	cmp	r3, #3
	beq	.L192
	ldr	r3, [fp, #-16]
	mov	r2, #2
	str	r2, [r3, #4]
	b	.L192
.L186:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L193
	ldr	r3, [fp, #-16]
	mov	r2, #1
	str	r2, [r3, #4]
	b	.L193
.L185:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	cmp	r3, #1
	beq	.L194
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #4]
	b	.L194
.L182:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	cmp	r3, #2
	beq	.L195
	ldr	r3, [fp, #-16]
	mov	r2, #3
	str	r2, [r3, #4]
	b	.L195
.L192:
	nop
	b	.L191
.L193:
	nop
	b	.L191
.L194:
	nop
	b	.L191
.L195:
	nop
.L191:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L197:
	.align	2
.L196:
	.word	stdscr
	.size	get_input, .-get_input
	.global	__aeabi_idivmod
	.section	.rodata
	.align	2
.LC8:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	get_random_apple
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_random_apple, %function
get_random_apple:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	ldr	r3, .L207
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
.L203:
	bl	rand
	mov	r3, r0
	ldr	r2, .L207+4
	ldrh	r2, [r2]
	mov	r1, r2
	mov	r0, r3
	bl	__aeabi_idivmod
	mov	r3, r1
	str	r3, [fp, #-20]
	bl	rand
	mov	r3, r0
	ldr	r2, .L207+8
	ldrh	r2, [r2]
	mov	r1, r2
	mov	r0, r3
	bl	__aeabi_idivmod
	mov	r3, r1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L199
	mov	r3, #1
	str	r3, [fp, #-20]
.L199:
	ldr	r3, .L207+4
	ldrh	r3, [r3]
	sub	r3, r3, #1
	mov	r2, r3
	ldr	r3, [fp, #-20]
	cmp	r3, r2
	bcc	.L200
	ldr	r3, .L207+4
	ldrh	r3, [r3]
	sub	r3, r3, #2
	str	r3, [fp, #-20]
.L200:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L201
	mov	r3, #1
	str	r3, [fp, #-16]
.L201:
	ldr	r3, .L207+8
	ldrh	r3, [r3]
	sub	r3, r3, #1
	mov	r2, r3
	ldr	r3, [fp, #-16]
	cmp	r3, r2
	bcc	.L202
	ldr	r3, .L207+8
	ldrh	r3, [r3]
	sub	r3, r3, #2
	str	r3, [fp, #-16]
.L202:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-28]	@ movhi
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-26]	@ movhi
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	sub	r2, fp, #24
	sub	r1, fp, #28
	mov	r0, r3
	bl	find_element
	mov	r3, r0
	cmp	r3, #0
	beq	.L203
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	sub	r2, fp, #24
	sub	r1, fp, #28
	mov	r0, r3
	bl	find_element
	mov	r3, r0
	cmp	r3, #0
	beq	.L203
	mov	r0, #4
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L206
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-12]
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-12]
	strh	r2, [r3, #2]	@ movhi
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	mov	r1, #0
	mov	r0, r3
	bl	list_ins_next
	ldr	r3, [fp, #-36]
	ldrh	r3, [r3, #4]
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-36]
	strh	r2, [r3, #4]	@ movhi
.L206:
	nop
	ldr	r3, .L207
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L205
	bl	__stack_chk_fail
.L205:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L208:
	.align	2
.L207:
	.word	.LC8
	.word	rows
	.word	cols
	.size	get_random_apple, .-get_random_apple
	.align	2
	.global	check_timeout
	.syntax unified
	.arm
	.fpu softvfp
	.type	check_timeout, %function
check_timeout:
	@ 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, .L212
	ldr	r3, [r3]
	cmp	r3, #0
	bgt	.L211
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	get_random_apple
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	get_random_apple
	ldr	r3, .L212
	mov	r2, #1000
	str	r2, [r3]
.L211:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L213:
	.align	2
.L212:
	.word	time_out
	.size	check_timeout, .-check_timeout
	.align	2
	.global	display_walls
	.syntax unified
	.arm
	.fpu softvfp
	.type	display_walls, %function
display_walls:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r2, #0
	mov	r1, #7
	mov	r0, #3
	bl	init_pair
	ldr	r3, .L219
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #768
	mov	r0, r3
	bl	wattr_on
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L215
.L216:
	ldr	r3, [fp, #-8]
	ldr	r2, .L219+4
	ldr	r2, [r2]
	mov	r1, r3
	mov	r0, #0
	bl	mvprintw
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L215:
	ldr	r3, .L219+8
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-8]
	cmp	r3, r2
	bcc	.L216
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L217
.L218:
	ldr	r3, [fp, #-8]
	ldr	r2, .L219+4
	ldr	r2, [r2]
	mov	r1, #0
	mov	r0, r3
	bl	mvprintw
	ldr	r3, [fp, #-8]
	ldr	r2, .L219+8
	ldrh	r2, [r2]
	sub	r1, r2, #1
	ldr	r2, .L219+4
	ldr	r2, [r2]
	mov	r0, r3
	bl	mvprintw
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L217:
	ldr	r3, .L219+12
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-8]
	cmp	r3, r2
	bcc	.L218
	ldr	r3, .L219
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #768
	mov	r0, r3
	bl	wattr_off
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L220:
	.align	2
.L219:
	.word	stdscr
	.word	wall
	.word	cols
	.word	rows
	.size	display_walls, .-display_walls
	.global	__aeabi_i2d
	.global	__aeabi_ddiv
	.global	__aeabi_d2f
	.global	__aeabi_i2f
	.global	__aeabi_fmul
	.global	__aeabi_f2uiz
	.align	2
	.global	display_timeout
	.syntax unified
	.arm
	.fpu softvfp
	.type	display_timeout, %function
display_timeout:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	ldr	r3, .L226
	ldrh	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, #0
	ldr	r3, .L226+4
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [fp, #-12]	@ float
	ldr	r3, .L226+8
	ldr	r3, [r3]
	rsb	r3, r3, #1000
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r3, r0
	ldr	r1, [fp, #-12]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2uiz
	mov	r3, r0
	str	r3, [fp, #-8]
	mov	r2, #0
	mov	r1, #1
	mov	r0, #7
	bl	init_pair
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L222
.L225:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	bcs	.L223
	ldr	r3, .L226+12
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #1792
	mov	r0, r3
	bl	wattr_on
	ldr	r3, .L226+16
	ldrh	r3, [r3]
	sub	r3, r3, #1
	ldr	r1, [fp, #-16]
	ldr	r2, .L226+20
	ldr	r2, [r2]
	mov	r0, r3
	bl	mvprintw
	ldr	r3, .L226+12
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #1792
	mov	r0, r3
	bl	wattr_off
	b	.L224
.L223:
	ldr	r3, .L226+12
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #768
	mov	r0, r3
	bl	wattr_on
	ldr	r3, .L226+16
	ldrh	r3, [r3]
	sub	r3, r3, #1
	ldr	r1, [fp, #-16]
	ldr	r2, .L226+20
	ldr	r2, [r2]
	mov	r0, r3
	bl	mvprintw
	ldr	r3, .L226+12
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #768
	mov	r0, r3
	bl	wattr_off
.L224:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L222:
	ldr	r3, .L226
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-16]
	cmp	r3, r2
	bcc	.L225
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L227:
	.align	2
.L226:
	.word	cols
	.word	1083129856
	.word	time_out
	.word	stdscr
	.word	rows
	.word	wall
	.size	display_timeout, .-display_timeout
	.section	.rodata
	.align	2
.LC9:
	.ascii	" [ score: %d lives: %d ] \000"
	.align	2
.LC10:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	display_score
	.syntax unified
	.arm
	.fpu softvfp
	.type	display_score, %function
display_score:
	@ args = 0, pretend = 0, frame = 104
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #104
	ldr	r3, .L232
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L232+4
	ldrh	r3, [r3]
	cmp	r3, #39
	bls	.L231
	ldr	r3, .L232+8
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, .L232+12
	ldrh	r3, [r3]
	sub	r0, fp, #108
	ldr	r1, .L232+16
	bl	sprintf
	mov	r2, #0
	mov	r1, #6
	mov	r0, #5
	bl	init_pair
	ldr	r3, .L232+20
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #1280
	mov	r0, r3
	bl	wattr_on
	sub	r3, fp, #108
	mov	r2, r3
	mov	r1, #3
	mov	r0, #0
	bl	mvprintw
	ldr	r3, .L232+20
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #1280
	mov	r0, r3
	bl	wattr_off
.L231:
	nop
	ldr	r3, .L232
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L230
	bl	__stack_chk_fail
.L230:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L233:
	.align	2
.L232:
	.word	.LC10
	.word	cols
	.word	score
	.word	lives
	.word	.LC9
	.word	stdscr
	.size	display_score, .-display_score
	.section	.rodata
	.align	2
.LC11:
	.ascii	"Your score is: %d\000"
	.align	2
.LC12:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	display_final_score
	.syntax unified
	.arm
	.fpu softvfp
	.type	display_final_score, %function
display_final_score:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	ldr	r3, .L236
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	bl	clear_display
	ldr	r3, .L236+4
	ldrh	r3, [r3]
	mov	r2, r3
	sub	r3, fp, #40
	ldr	r1, .L236+8
	mov	r0, r3
	bl	sprintf
	mov	r2, #0
	mov	r1, #6
	mov	r0, #5
	bl	init_pair
	ldr	r3, .L236+12
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #1280
	mov	r0, r3
	bl	wattr_on
	ldr	r3, .L236+16
	ldrh	r3, [r3]
	lsr	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r0, r3
	ldr	r3, .L236+20
	ldrh	r3, [r3]
	lsr	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	sub	r3, r3, #8
	sub	r2, fp, #40
	mov	r1, r3
	bl	mvprintw
	ldr	r3, .L236+12
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #1280
	mov	r0, r3
	bl	wattr_off
	ldr	r3, .L236+12
	ldr	r3, [r3]
	mov	r0, r3
	bl	wrefresh
	mov	r0, #2
	bl	sleep
	nop
	ldr	r3, .L236
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L235
	bl	__stack_chk_fail
.L235:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L237:
	.align	2
.L236:
	.word	.LC12
	.word	score
	.word	.LC11
	.word	stdscr
	.word	rows
	.word	cols
	.size	display_final_score, .-display_final_score
	.section	.rodata
	.align	2
.LC13:
	.ascii	"Game Over!\000"
	.text
	.align	2
	.global	display_game_over
	.syntax unified
	.arm
	.fpu softvfp
	.type	display_game_over, %function
display_game_over:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	bl	clear_display
	mov	r2, #0
	mov	r1, #6
	mov	r0, #5
	bl	init_pair
	ldr	r3, .L239
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #1280
	mov	r0, r3
	bl	wattr_on
	ldr	r3, .L239+4
	ldrh	r3, [r3]
	lsr	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r0, r3
	ldr	r3, .L239+8
	ldrh	r3, [r3]
	lsr	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	sub	r3, r3, #5
	ldr	r2, .L239+12
	mov	r1, r3
	bl	mvprintw
	ldr	r3, .L239
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #1280
	mov	r0, r3
	bl	wattr_off
	ldr	r3, .L239
	ldr	r3, [r3]
	mov	r0, r3
	bl	wrefresh
	mov	r0, #3
	bl	sleep
	nop
	pop	{fp, pc}
.L240:
	.align	2
.L239:
	.word	stdscr
	.word	rows
	.word	cols
	.word	.LC13
	.size	display_game_over, .-display_game_over
	.section	.rodata
	.align	2
.LC14:
	.ascii	"Snake Curses\000"
	.text
	.align	2
	.global	display_title
	.syntax unified
	.arm
	.fpu softvfp
	.type	display_title, %function
display_title:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	mov	r2, #0
	mov	r1, #6
	mov	r0, #5
	bl	init_pair
	ldr	r3, .L242
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #1280
	mov	r0, r3
	bl	wattr_on
	ldr	r3, .L242+4
	ldrh	r3, [r3]
	lsr	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	sub	r0, r3, #1
	ldr	r3, .L242+8
	ldrh	r3, [r3]
	lsr	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	sub	r3, r3, #6
	ldr	r2, .L242+12
	mov	r1, r3
	bl	mvprintw
	ldr	r3, .L242
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #1280
	mov	r0, r3
	bl	wattr_off
	ldr	r3, .L242
	ldr	r3, [r3]
	mov	r0, r3
	bl	wrefresh
	mov	r0, #3
	bl	sleep
	nop
	pop	{fp, pc}
.L243:
	.align	2
.L242:
	.word	stdscr
	.word	rows
	.word	cols
	.word	.LC14
	.size	display_title, .-display_title
	.section	.rodata
	.align	2
.LC15:
	.ascii	"Lives left: %d\000"
	.align	2
.LC16:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	display_lives_left
	.syntax unified
	.arm
	.fpu softvfp
	.type	display_lives_left, %function
display_lives_left:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	ldr	r3, .L246
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	bl	clear_display
	ldr	r3, .L246+4
	ldrh	r3, [r3]
	mov	r2, r3
	sub	r3, fp, #40
	ldr	r1, .L246+8
	mov	r0, r3
	bl	sprintf
	mov	r2, #0
	mov	r1, #6
	mov	r0, #5
	bl	init_pair
	ldr	r3, .L246+12
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #1280
	mov	r0, r3
	bl	wattr_on
	ldr	r3, .L246+16
	ldrh	r3, [r3]
	lsr	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	sub	r0, r3, #1
	ldr	r3, .L246+20
	ldrh	r3, [r3]
	lsr	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	sub	r3, r3, #7
	sub	r2, fp, #40
	mov	r1, r3
	bl	mvprintw
	ldr	r3, .L246+12
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #1280
	mov	r0, r3
	bl	wattr_off
	ldr	r3, .L246+12
	ldr	r3, [r3]
	mov	r0, r3
	bl	wrefresh
	mov	r0, #2
	bl	sleep
	nop
	ldr	r3, .L246
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L245
	bl	__stack_chk_fail
.L245:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L247:
	.align	2
.L246:
	.word	.LC16
	.word	lives
	.word	.LC15
	.word	stdscr
	.word	rows
	.word	cols
	.size	display_lives_left, .-display_lives_left
	.global	__aeabi_ui2d
	.global	__aeabi_dadd
	.global	__aeabi_dsub
	.global	__aeabi_d2iz
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	bl	initscr
	bl	cbreak
	ldr	r3, .L264
	ldr	r3, [r3]
	mov	r1, #1
	mov	r0, r3
	bl	nodelay
	bl	noecho
	mov	r0, #0
	bl	curs_set
	ldr	r3, .L264
	ldr	r3, [r3]
	mov	r1, #1
	mov	r0, r3
	bl	keypad
	ldr	r3, .L264
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L249
	ldr	r3, .L264
	ldr	r3, [r3]
	ldrsh	r3, [r3, #4]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	b	.L250
.L249:
	ldr	r3, .L264+4
.L250:
	ldr	r2, .L264+8
	strh	r3, [r2]	@ movhi
	ldr	r3, .L264
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L251
	ldr	r3, .L264
	ldr	r3, [r3]
	ldrsh	r3, [r3, #6]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	b	.L252
.L251:
	ldr	r3, .L264+4
.L252:
	ldr	r2, .L264+12
	strh	r3, [r2]	@ movhi
	mov	r0, #0
	bl	time
	mov	r3, r0
	mov	r0, r3
	bl	srand
	bl	start_color
	bl	display_title
	b	.L253
.L262:
	ldr	r3, .L264+12
	ldrh	r3, [r3]
	lsr	r3, r3, #2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	ldr	r0, .L264+16
	bl	init_snake
	ldr	r0, .L264+20
	bl	init_apples
	bl	clear_display
	ldr	r3, .L264+16
	ldr	r3, [r3]
	ldr	r2, .L264+20
	ldr	r2, [r2]
	mov	r1, r2
	mov	r0, r3
	bl	get_random_apple
	ldr	r3, .L264+24
	mov	r2, #1000
	str	r2, [r3]
	b	.L254
.L261:
	ldr	r3, .L264
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L255
	ldr	r3, .L264
	ldr	r3, [r3]
	ldrsh	r3, [r3, #4]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	b	.L256
.L255:
	ldr	r3, .L264+4
.L256:
	ldr	r2, .L264+28
	strh	r3, [r2]	@ movhi
	ldr	r3, .L264
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L257
	ldr	r3, .L264
	ldr	r3, [r3]
	ldrsh	r3, [r3, #6]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	b	.L258
.L257:
	ldr	r3, .L264+4
.L258:
	ldr	r2, .L264+32
	strh	r3, [r2]	@ movhi
	ldr	r3, .L264+8
	ldrh	r2, [r3]
	ldr	r3, .L264+28
	ldrh	r3, [r3]
	cmp	r2, r3
	bne	.L259
	ldr	r3, .L264+12
	ldrh	r2, [r3]
	ldr	r3, .L264+32
	ldrh	r3, [r3]
	cmp	r2, r3
	beq	.L260
.L259:
	bl	clear_display
	ldr	r3, .L264+28
	ldrh	r3, [r3]
	ldr	r2, .L264+8
	strh	r3, [r2]	@ movhi
	ldr	r3, .L264+32
	ldrh	r3, [r3]
	ldr	r2, .L264+12
	strh	r3, [r2]	@ movhi
	ldr	r0, .L264+20
	bl	destroy_apples
	ldr	r0, .L264+16
	bl	destroy_snake
	ldr	r3, .L264+12
	ldrh	r3, [r3]
	lsr	r3, r3, #2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	ldr	r0, .L264+16
	bl	init_snake
	ldr	r0, .L264+20
	bl	init_apples
	ldr	r3, .L264+16
	ldr	r3, [r3]
	ldr	r2, .L264+20
	ldr	r2, [r2]
	mov	r1, r2
	mov	r0, r3
	bl	get_random_apple
.L260:
	ldr	r3, .L264+16
	ldr	r3, [r3]
	mov	r0, r3
	bl	get_input
	ldr	r3, .L264+36
	ldrh	r3, [r3]
	mov	r0, r3
	bl	__aeabi_ui2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	sqrt
	mov	r2, r0
	mov	r3, r1
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	trunc
	mov	r4, r0
	mov	r5, r1
	ldr	r3, .L264+24
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r4
	mov	r3, r5
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
	ldr	r2, .L264+24
	str	r3, [r2]
	ldr	r3, .L264+16
	ldr	r3, [r3]
	ldr	r2, .L264+20
	ldr	r2, [r2]
	mov	r1, r2
	mov	r0, r3
	bl	check_timeout
	bl	clear_display
	bl	display_walls
	bl	display_timeout
	bl	display_score
	bl	display_apples
	ldr	r3, .L264+16
	ldr	r3, [r3]
	mov	r0, r3
	bl	move_snake
	ldr	r3, .L264+16
	ldr	r3, [r3]
	mov	r0, r3
	bl	display_snake
	ldr	r3, .L264
	ldr	r3, [r3]
	mov	r0, r3
	bl	wrefresh
	ldr	r3, .L264+36
	ldrh	r3, [r3]
	mov	r2, r3
	mvn	r3, #99
	mul	r3, r2, r3
	add	r3, r3, #99328
	add	r3, r3, #672
	mov	r0, r3
	bl	usleep
.L254:
	ldr	r3, .L264+16
	ldr	r3, [r3]
	mov	r0, r3
	bl	collision
	mov	r3, r0
	cmp	r3, #0
	beq	.L261
	ldr	r0, .L264+16
	bl	destroy_snake
	ldr	r0, .L264+20
	bl	destroy_apples
	ldr	r3, .L264+40
	ldrh	r3, [r3]
	sub	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L264+40
	strh	r3, [r2]	@ movhi
	ldr	r3, .L264+40
	ldrh	r3, [r3]
	cmp	r3, #0
	beq	.L253
	bl	display_lives_left
.L253:
	ldr	r3, .L264+40
	ldrh	r3, [r3]
	cmp	r3, #0
	bne	.L262
	bl	display_final_score
	bl	display_game_over
	ldr	r3, .L264
	ldr	r3, [r3]
	mov	r0, r3
	bl	wclear
	mov	r0, #2
	bl	curs_set
	bl	endwin
	mov	r3, #0
	mov	r0, r3
	pop	{r4, r5, fp, pc}
.L265:
	.align	2
.L264:
	.word	stdscr
	.word	65535
	.word	rows
	.word	cols
	.word	snake
	.word	papples
	.word	time_out
	.word	nrows
	.word	ncols
	.word	score
	.word	lives
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
