	.file	"874723.c"
	.intel_syntax noprefix
	.text
	.globl	SIZE
	.bss
	.align 4
	.type	SIZE, @object
	.size	SIZE, 4
SIZE:
	.zero	4
	.globl	set_time
	.data
	.type	set_time, @object
	.size	set_time, 1
set_time:
	.byte	1
	.globl	goal
	.bss
	.type	goal, @object
	.size	goal, 1
goal:
	.zero	1
	.globl	goal1
	.type	goal1, @object
	.size	goal1, 1
goal1:
	.zero	1
	.globl	goal2
	.type	goal2, @object
	.size	goal2, 1
goal2:
	.zero	1
	.globl	score
	.align 4
	.type	score, @object
	.size	score, 4
score:
	.zero	4
	.globl	scheme
	.type	scheme, @object
	.size	scheme, 1
scheme:
	.zero	1
	.section	.rodata
.LC0:
	.string	"\033[38;5;%d;48;5;%dm"
	.text
	.globl	getColor
	.type	getColor, @function
getColor:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 192
	mov	eax, edi
	mov	QWORD PTR -176[rbp], rsi
	mov	QWORD PTR -184[rbp], rdx
	mov	BYTE PTR -164[rbp], al
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	movabs	rax, -70932780774457592
	movabs	rdx, -69806863687483644
	mov	QWORD PTR -112[rbp], rax
	mov	QWORD PTR -104[rbp], rdx
	movabs	rax, 3377746965823497
	movabs	rdx, 71777214278795277
	mov	QWORD PTR -96[rbp], rax
	mov	QWORD PTR -88[rbp], rdx
	movabs	rax, -4785156209836056
	movabs	rdx, 69524272002039792
	mov	QWORD PTR -80[rbp], rax
	mov	QWORD PTR -72[rbp], rdx
	movabs	rax, 70651292912517368
	movabs	rdx, 71777209999491324
	mov	QWORD PTR -64[rbp], rax
	mov	QWORD PTR -56[rbp], rdx
	movabs	rax, -45599796643233813
	movabs	rdx, -15481355653218431
	mov	QWORD PTR -48[rbp], rax
	mov	QWORD PTR -40[rbp], rdx
	movabs	rax, -16607272737767481
	movabs	rdx, -16607277032865852
	mov	QWORD PTR -32[rbp], rax
	mov	QWORD PTR -24[rbp], rdx
	lea	rax, -112[rbp]
	mov	QWORD PTR -144[rbp], rax
	lea	rax, -80[rbp]
	mov	QWORD PTR -136[rbp], rax
	lea	rax, -48[rbp]
	mov	QWORD PTR -128[rbp], rax
	movzx	eax, BYTE PTR scheme[rip]
	movzx	eax, al
	cdqe
	mov	rax, QWORD PTR -144[rbp+rax*8]
	mov	QWORD PTR -160[rbp], rax
	movzx	eax, BYTE PTR scheme[rip]
	movzx	eax, al
	cdqe
	mov	rax, QWORD PTR -144[rbp+rax*8]
	add	rax, 1
	mov	QWORD PTR -152[rbp], rax
	cmp	BYTE PTR -164[rbp], 0
	je	.L2
	jmp	.L3
.L4:
	mov	rax, QWORD PTR -160[rbp]
	lea	rdx, 2[rax]
	movzx	eax, BYTE PTR scheme[rip]
	movzx	eax, al
	cdqe
	mov	rax, QWORD PTR -144[rbp+rax*8]
	add	rax, 32
	cmp	rdx, rax
	jnb	.L3
	add	QWORD PTR -160[rbp], 2
	add	QWORD PTR -152[rbp], 2
.L3:
	movzx	eax, BYTE PTR -164[rbp]
	lea	edx, -1[rax]
	mov	BYTE PTR -164[rbp], dl
	test	al, al
	jne	.L4
.L2:
	mov	rax, QWORD PTR -160[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	ecx, al
	mov	rax, QWORD PTR -152[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rsi, QWORD PTR -184[rbp]
	mov	rax, QWORD PTR -176[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	lea	rdx, .LC0[rip]
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L5
	call	__stack_chk_fail@PLT
.L5:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	getColor, .-getColor
	.section	.rodata
.LC1:
	.string	"\033[H"
.LC2:
	.string	"1P %21d pts\n\n"
.LC3:
	.string	"%s"
.LC4:
	.string	"       "
.LC5:
	.string	"%u"
.LC6:
	.string	""
.LC7:
	.string	"%*s%s%*s"
.LC8:
	.string	"   \302\267   "
.LC9:
	.string	"        a,w,d,s or q        "
.LC10:
	.string	"\033[A"
	.text
	.globl	drawBoard
	.type	drawBoard, @function
drawBoard:
.LFB1:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 104
	.cfi_offset 3, -24
	mov	QWORD PTR -104[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	ebx, DWORD PTR SIZE[rip]
	movsx	rax, ebx
	sub	rax, 1
	mov	QWORD PTR -88[rbp], rax
	movsx	rax, ebx
	mov	r8, rax
	mov	r9d, 0
	mov	DWORD PTR -76[rbp], 7166747
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, DWORD PTR score[rip]
	mov	esi, eax
	lea	rdi, .LC2[rip]
	mov	eax, 0
	call	printf@PLT
	mov	BYTE PTR -90[rbp], 0
	jmp	.L7
.L16:
	mov	BYTE PTR -91[rbp], 0
	jmp	.L8
.L9:
	movzx	edx, BYTE PTR -91[rbp]
	movsx	rax, ebx
	imul	rdx, rax
	mov	rax, QWORD PTR -104[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR -90[rbp]
	cdqe
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	lea	rcx, -64[rbp]
	mov	edx, 40
	mov	rsi, rcx
	mov	edi, eax
	call	getColor
	lea	rax, -64[rbp]
	mov	rsi, rax
	lea	rdi, .LC3[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rdi, .LC4[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rax, -76[rbp]
	mov	rsi, rax
	lea	rdi, .LC3[rip]
	mov	eax, 0
	call	printf@PLT
	movzx	eax, BYTE PTR -91[rbp]
	add	eax, 1
	mov	BYTE PTR -91[rbp], al
.L8:
	movzx	edx, BYTE PTR -91[rbp]
	mov	eax, DWORD PTR SIZE[rip]
	cmp	edx, eax
	jl	.L9
	mov	edi, 10
	call	putchar@PLT
	mov	BYTE PTR -91[rbp], 0
	jmp	.L10
.L13:
	movzx	edx, BYTE PTR -91[rbp]
	movsx	rax, ebx
	imul	rdx, rax
	mov	rax, QWORD PTR -104[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR -90[rbp]
	cdqe
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	lea	rcx, -64[rbp]
	mov	edx, 40
	mov	rsi, rcx
	mov	edi, eax
	call	getColor
	lea	rax, -64[rbp]
	mov	rsi, rax
	lea	rdi, .LC3[rip]
	mov	eax, 0
	call	printf@PLT
	movzx	edx, BYTE PTR -91[rbp]
	movsx	rax, ebx
	imul	rdx, rax
	mov	rax, QWORD PTR -104[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR -90[rbp]
	cdqe
	movzx	eax, BYTE PTR [rdx+rax]
	test	al, al
	je	.L11
	movzx	edx, BYTE PTR -91[rbp]
	movsx	rax, ebx
	imul	rdx, rax
	mov	rax, QWORD PTR -104[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR -90[rbp]
	cdqe
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	lea	rax, -72[rbp]
	mov	ecx, edx
	lea	rdx, .LC5[rip]
	mov	esi, 8
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	lea	rax, -72[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	edx, eax
	mov	eax, 7
	sub	eax, edx
	mov	BYTE PTR -89[rbp], al
	movzx	eax, BYTE PTR -89[rbp]
	shr	al
	movzx	ecx, al
	movzx	eax, BYTE PTR -89[rbp]
	movzx	edx, BYTE PTR -89[rbp]
	shr	dl
	movzx	edx, dl
	sub	eax, edx
	mov	esi, eax
	lea	rax, -72[rbp]
	lea	r9, .LC6[rip]
	mov	r8d, ecx
	mov	rcx, rax
	lea	rdx, .LC6[rip]
	lea	rdi, .LC7[rip]
	mov	eax, 0
	call	printf@PLT
	jmp	.L12
.L11:
	lea	rdi, .LC8[rip]
	mov	eax, 0
	call	printf@PLT
.L12:
	lea	rax, -76[rbp]
	mov	rsi, rax
	lea	rdi, .LC3[rip]
	mov	eax, 0
	call	printf@PLT
	movzx	eax, BYTE PTR -91[rbp]
	add	eax, 1
	mov	BYTE PTR -91[rbp], al
.L10:
	movzx	edx, BYTE PTR -91[rbp]
	mov	eax, DWORD PTR SIZE[rip]
	cmp	edx, eax
	jl	.L13
	mov	edi, 10
	call	putchar@PLT
	mov	BYTE PTR -91[rbp], 0
	jmp	.L14
.L15:
	movzx	edx, BYTE PTR -91[rbp]
	movsx	rax, ebx
	imul	rdx, rax
	mov	rax, QWORD PTR -104[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR -90[rbp]
	cdqe
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	lea	rcx, -64[rbp]
	mov	edx, 40
	mov	rsi, rcx
	mov	edi, eax
	call	getColor
	lea	rax, -64[rbp]
	mov	rsi, rax
	lea	rdi, .LC3[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rdi, .LC4[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rax, -76[rbp]
	mov	rsi, rax
	lea	rdi, .LC3[rip]
	mov	eax, 0
	call	printf@PLT
	movzx	eax, BYTE PTR -91[rbp]
	add	eax, 1
	mov	BYTE PTR -91[rbp], al
.L14:
	movzx	edx, BYTE PTR -91[rbp]
	mov	eax, DWORD PTR SIZE[rip]
	cmp	edx, eax
	jl	.L15
	mov	edi, 10
	call	putchar@PLT
	movzx	eax, BYTE PTR -90[rbp]
	add	eax, 1
	mov	BYTE PTR -90[rbp], al
.L7:
	movzx	edx, BYTE PTR -90[rbp]
	mov	eax, DWORD PTR SIZE[rip]
	cmp	edx, eax
	jl	.L16
	mov	edi, 10
	call	putchar@PLT
	lea	rdi, .LC9[rip]
	call	puts@PLT
	lea	rdi, .LC10[rip]
	mov	eax, 0
	call	printf@PLT
	nop
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L17
	call	__stack_chk_fail@PLT
.L17:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	drawBoard, .-drawBoard
	.section	.rodata
.LC11:
	.string	"\t\t\t\t\t\t\t2P %21d pts\n\n"
.LC12:
	.string	"\t\t\t\t\t\t\t"
	.align 8
.LC13:
	.string	"        \342\206\220,\342\206\221,\342\206\222,\342\206\223 or q        "
	.text
	.globl	drawBoard2
	.type	drawBoard2, @function
drawBoard2:
.LFB2:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 104
	.cfi_offset 3, -24
	mov	QWORD PTR -104[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	ebx, DWORD PTR SIZE[rip]
	movsx	rax, ebx
	sub	rax, 1
	mov	QWORD PTR -88[rbp], rax
	movsx	rax, ebx
	mov	r8, rax
	mov	r9d, 0
	mov	DWORD PTR -76[rbp], 7166747
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, DWORD PTR score[rip]
	mov	esi, eax
	lea	rdi, .LC11[rip]
	mov	eax, 0
	call	printf@PLT
	mov	BYTE PTR -90[rbp], 0
	jmp	.L19
.L28:
	lea	rdi, .LC12[rip]
	mov	eax, 0
	call	printf@PLT
	mov	BYTE PTR -91[rbp], 0
	jmp	.L20
.L21:
	movzx	edx, BYTE PTR -91[rbp]
	movsx	rax, ebx
	imul	rdx, rax
	mov	rax, QWORD PTR -104[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR -90[rbp]
	cdqe
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	lea	rcx, -64[rbp]
	mov	edx, 40
	mov	rsi, rcx
	mov	edi, eax
	call	getColor
	lea	rax, -64[rbp]
	mov	rsi, rax
	lea	rdi, .LC3[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rdi, .LC4[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rax, -76[rbp]
	mov	rsi, rax
	lea	rdi, .LC3[rip]
	mov	eax, 0
	call	printf@PLT
	movzx	eax, BYTE PTR -91[rbp]
	add	eax, 1
	mov	BYTE PTR -91[rbp], al
.L20:
	movzx	edx, BYTE PTR -91[rbp]
	mov	eax, DWORD PTR SIZE[rip]
	cmp	edx, eax
	jl	.L21
	mov	edi, 10
	call	putchar@PLT
	lea	rdi, .LC12[rip]
	mov	eax, 0
	call	printf@PLT
	mov	BYTE PTR -91[rbp], 0
	jmp	.L22
.L25:
	movzx	edx, BYTE PTR -91[rbp]
	movsx	rax, ebx
	imul	rdx, rax
	mov	rax, QWORD PTR -104[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR -90[rbp]
	cdqe
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	lea	rcx, -64[rbp]
	mov	edx, 40
	mov	rsi, rcx
	mov	edi, eax
	call	getColor
	lea	rax, -64[rbp]
	mov	rsi, rax
	lea	rdi, .LC3[rip]
	mov	eax, 0
	call	printf@PLT
	movzx	edx, BYTE PTR -91[rbp]
	movsx	rax, ebx
	imul	rdx, rax
	mov	rax, QWORD PTR -104[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR -90[rbp]
	cdqe
	movzx	eax, BYTE PTR [rdx+rax]
	test	al, al
	je	.L23
	movzx	edx, BYTE PTR -91[rbp]
	movsx	rax, ebx
	imul	rdx, rax
	mov	rax, QWORD PTR -104[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR -90[rbp]
	cdqe
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	lea	rax, -72[rbp]
	mov	ecx, edx
	lea	rdx, .LC5[rip]
	mov	esi, 8
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	lea	rax, -72[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	edx, eax
	mov	eax, 7
	sub	eax, edx
	mov	BYTE PTR -89[rbp], al
	movzx	eax, BYTE PTR -89[rbp]
	shr	al
	movzx	ecx, al
	movzx	eax, BYTE PTR -89[rbp]
	movzx	edx, BYTE PTR -89[rbp]
	shr	dl
	movzx	edx, dl
	sub	eax, edx
	mov	esi, eax
	lea	rax, -72[rbp]
	lea	r9, .LC6[rip]
	mov	r8d, ecx
	mov	rcx, rax
	lea	rdx, .LC6[rip]
	lea	rdi, .LC7[rip]
	mov	eax, 0
	call	printf@PLT
	jmp	.L24
.L23:
	lea	rdi, .LC8[rip]
	mov	eax, 0
	call	printf@PLT
.L24:
	lea	rax, -76[rbp]
	mov	rsi, rax
	lea	rdi, .LC3[rip]
	mov	eax, 0
	call	printf@PLT
	movzx	eax, BYTE PTR -91[rbp]
	add	eax, 1
	mov	BYTE PTR -91[rbp], al
.L22:
	movzx	edx, BYTE PTR -91[rbp]
	mov	eax, DWORD PTR SIZE[rip]
	cmp	edx, eax
	jl	.L25
	mov	edi, 10
	call	putchar@PLT
	lea	rdi, .LC12[rip]
	mov	eax, 0
	call	printf@PLT
	mov	BYTE PTR -91[rbp], 0
	jmp	.L26
.L27:
	movzx	edx, BYTE PTR -91[rbp]
	movsx	rax, ebx
	imul	rdx, rax
	mov	rax, QWORD PTR -104[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR -90[rbp]
	cdqe
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	lea	rcx, -64[rbp]
	mov	edx, 40
	mov	rsi, rcx
	mov	edi, eax
	call	getColor
	lea	rax, -64[rbp]
	mov	rsi, rax
	lea	rdi, .LC3[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rdi, .LC4[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rax, -76[rbp]
	mov	rsi, rax
	lea	rdi, .LC3[rip]
	mov	eax, 0
	call	printf@PLT
	movzx	eax, BYTE PTR -91[rbp]
	add	eax, 1
	mov	BYTE PTR -91[rbp], al
.L26:
	movzx	edx, BYTE PTR -91[rbp]
	mov	eax, DWORD PTR SIZE[rip]
	cmp	edx, eax
	jl	.L27
	mov	edi, 10
	call	putchar@PLT
	movzx	eax, BYTE PTR -90[rbp]
	add	eax, 1
	mov	BYTE PTR -90[rbp], al
.L19:
	movzx	edx, BYTE PTR -90[rbp]
	mov	eax, DWORD PTR SIZE[rip]
	cmp	edx, eax
	jl	.L28
	mov	edi, 10
	call	putchar@PLT
	lea	rdi, .LC12[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rdi, .LC13[rip]
	call	puts@PLT
	lea	rdi, .LC10[rip]
	mov	eax, 0
	call	printf@PLT
	nop
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L29
	call	__stack_chk_fail@PLT
.L29:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	drawBoard2, .-drawBoard2
	.globl	findTarget
	.type	findTarget, @function
findTarget:
.LFB3:
	.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	ecx, esi
	mov	eax, edx
	mov	edx, ecx
	mov	BYTE PTR -28[rbp], dl
	mov	BYTE PTR -32[rbp], al
	cmp	BYTE PTR -28[rbp], 0
	jne	.L31
	movzx	eax, BYTE PTR -28[rbp]
	jmp	.L32
.L31:
	movzx	eax, BYTE PTR -28[rbp]
	sub	eax, 1
	mov	BYTE PTR -1[rbp], al
.L36:
	movzx	edx, BYTE PTR -1[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L33
	movzx	edx, BYTE PTR -1[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	movzx	ecx, BYTE PTR -28[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	cmp	dl, al
	je	.L34
	movzx	eax, BYTE PTR -1[rbp]
	add	eax, 1
	jmp	.L32
.L34:
	movzx	eax, BYTE PTR -1[rbp]
	jmp	.L32
.L33:
	movzx	eax, BYTE PTR -1[rbp]
	cmp	al, BYTE PTR -32[rbp]
	jne	.L35
	movzx	eax, BYTE PTR -1[rbp]
	jmp	.L32
.L35:
	movzx	eax, BYTE PTR -1[rbp]
	sub	eax, 1
	mov	BYTE PTR -1[rbp], al
	jmp	.L36
.L32:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE3:
	.size	findTarget, .-findTarget
	.globl	slideArray
	.type	slideArray, @function
slideArray:
.LFB4:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 24
	mov	QWORD PTR -24[rbp], rdi
	mov	BYTE PTR -4[rbp], 0
	mov	BYTE PTR -2[rbp], 0
	mov	BYTE PTR -3[rbp], 0
	jmp	.L38
.L43:
	movzx	edx, BYTE PTR -3[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L39
	movzx	edx, BYTE PTR -2[rbp]
	movzx	ecx, BYTE PTR -3[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	findTarget
	mov	BYTE PTR -1[rbp], al
	movzx	eax, BYTE PTR -1[rbp]
	cmp	al, BYTE PTR -3[rbp]
	je	.L39
	movzx	edx, BYTE PTR -1[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L40
	movzx	edx, BYTE PTR -3[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	ecx, BYTE PTR -1[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	jmp	.L41
.L40:
	movzx	edx, BYTE PTR -1[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	movzx	ecx, BYTE PTR -3[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	cmp	dl, al
	jne	.L41
	movzx	edx, BYTE PTR -1[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	add	edx, 1
	mov	BYTE PTR [rax], dl
	movzx	edx, BYTE PTR -1[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, DWORD PTR score[rip]
	add	eax, edx
	mov	DWORD PTR score[rip], eax
	mov	eax, DWORD PTR score[rip]
	cmp	eax, 3999
	jbe	.L42
	mov	BYTE PTR goal[rip], 1
.L42:
	movzx	eax, BYTE PTR -1[rbp]
	add	eax, 1
	mov	BYTE PTR -2[rbp], al
.L41:
	movzx	edx, BYTE PTR -3[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 0
	mov	BYTE PTR -4[rbp], 1
.L39:
	movzx	eax, BYTE PTR -3[rbp]
	add	eax, 1
	mov	BYTE PTR -3[rbp], al
.L38:
	movzx	edx, BYTE PTR -3[rbp]
	mov	eax, DWORD PTR SIZE[rip]
	cmp	edx, eax
	jl	.L43
	movzx	eax, BYTE PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	slideArray, .-slideArray
	.globl	rotateBoard
	.type	rotateBoard, @function
rotateBoard:
.LFB5:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	eax, DWORD PTR SIZE[rip]
	movsx	rdx, eax
	sub	rdx, 1
	mov	QWORD PTR -24[rbp], rdx
	movsx	rdx, eax
	mov	rcx, rdx
	mov	ebx, 0
	mov	edx, DWORD PTR SIZE[rip]
	mov	BYTE PTR -26[rbp], dl
	mov	BYTE PTR -27[rbp], 0
	jmp	.L46
.L49:
	movzx	edx, BYTE PTR -27[rbp]
	mov	BYTE PTR -28[rbp], dl
	jmp	.L47
.L48:
	movzx	ecx, BYTE PTR -27[rbp]
	movsx	rdx, eax
	imul	rcx, rdx
	mov	rdx, QWORD PTR -40[rbp]
	add	rcx, rdx
	movzx	edx, BYTE PTR -28[rbp]
	movsx	rdx, edx
	movzx	edx, BYTE PTR [rcx+rdx]
	mov	BYTE PTR -25[rbp], dl
	movzx	ecx, BYTE PTR -28[rbp]
	movsx	rdx, eax
	imul	rcx, rdx
	mov	rdx, QWORD PTR -40[rbp]
	add	rcx, rdx
	movzx	edx, BYTE PTR -26[rbp]
	movzx	esi, BYTE PTR -27[rbp]
	sub	edx, esi
	lea	r8d, -1[rdx]
	movzx	esi, BYTE PTR -27[rbp]
	movsx	rdx, eax
	imul	rsi, rdx
	mov	rdx, QWORD PTR -40[rbp]
	add	rsi, rdx
	movzx	edi, BYTE PTR -28[rbp]
	movsx	rdx, r8d
	movzx	ecx, BYTE PTR [rcx+rdx]
	movsx	rdx, edi
	mov	BYTE PTR [rsi+rdx], cl
	movzx	edx, BYTE PTR -26[rbp]
	movzx	ecx, BYTE PTR -27[rbp]
	sub	edx, ecx
	sub	edx, 1
	movsx	rcx, edx
	movsx	rdx, eax
	imul	rcx, rdx
	mov	rdx, QWORD PTR -40[rbp]
	add	rcx, rdx
	movzx	edx, BYTE PTR -26[rbp]
	movzx	esi, BYTE PTR -28[rbp]
	sub	edx, esi
	lea	r8d, -1[rdx]
	movzx	esi, BYTE PTR -28[rbp]
	movsx	rdx, eax
	imul	rsi, rdx
	mov	rdx, QWORD PTR -40[rbp]
	add	rsi, rdx
	movzx	edx, BYTE PTR -26[rbp]
	movzx	edi, BYTE PTR -27[rbp]
	sub	edx, edi
	lea	edi, -1[rdx]
	movsx	rdx, r8d
	movzx	ecx, BYTE PTR [rcx+rdx]
	movsx	rdx, edi
	mov	BYTE PTR [rsi+rdx], cl
	movzx	edx, BYTE PTR -26[rbp]
	movzx	ecx, BYTE PTR -28[rbp]
	sub	edx, ecx
	sub	edx, 1
	movsx	rcx, edx
	movsx	rdx, eax
	imul	rcx, rdx
	mov	rdx, QWORD PTR -40[rbp]
	add	rcx, rdx
	movzx	edx, BYTE PTR -27[rbp]
	movzx	esi, BYTE PTR -26[rbp]
	movzx	edi, BYTE PTR -27[rbp]
	sub	esi, edi
	sub	esi, 1
	movsx	rdi, esi
	movsx	rsi, eax
	imul	rdi, rsi
	mov	rsi, QWORD PTR -40[rbp]
	add	rsi, rdi
	movzx	edi, BYTE PTR -26[rbp]
	movzx	r8d, BYTE PTR -28[rbp]
	sub	edi, r8d
	sub	edi, 1
	movsx	rdx, edx
	movzx	ecx, BYTE PTR [rcx+rdx]
	movsx	rdx, edi
	mov	BYTE PTR [rsi+rdx], cl
	movzx	edx, BYTE PTR -26[rbp]
	movzx	ecx, BYTE PTR -28[rbp]
	sub	edx, ecx
	sub	edx, 1
	movsx	rcx, edx
	movsx	rdx, eax
	imul	rcx, rdx
	mov	rdx, QWORD PTR -40[rbp]
	lea	rsi, [rcx+rdx]
	movzx	edx, BYTE PTR -27[rbp]
	movsx	rdx, edx
	movzx	ecx, BYTE PTR -25[rbp]
	mov	BYTE PTR [rsi+rdx], cl
	movzx	edx, BYTE PTR -28[rbp]
	add	edx, 1
	mov	BYTE PTR -28[rbp], dl
.L47:
	movzx	edx, BYTE PTR -28[rbp]
	movzx	ecx, BYTE PTR -26[rbp]
	movzx	esi, BYTE PTR -27[rbp]
	sub	ecx, esi
	sub	ecx, 1
	cmp	edx, ecx
	jl	.L48
	movzx	edx, BYTE PTR -27[rbp]
	add	edx, 1
	mov	BYTE PTR -27[rbp], dl
.L46:
	movzx	edx, BYTE PTR -26[rbp]
	shr	dl
	cmp	BYTE PTR -27[rbp], dl
	jb	.L49
	nop
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	rotateBoard, .-rotateBoard
	.globl	moveUp
	.type	moveUp, @function
moveUp:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	ebx, DWORD PTR SIZE[rip]
	movsx	rax, ebx
	sub	rax, 1
	mov	QWORD PTR -24[rbp], rax
	movsx	rax, ebx
	mov	r8, rax
	mov	r9d, 0
	mov	BYTE PTR -25[rbp], 0
	mov	BYTE PTR -26[rbp], 0
	jmp	.L51
.L52:
	movzx	edx, BYTE PTR -26[rbp]
	movsx	rax, ebx
	imul	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	rdi, rax
	call	slideArray
	or	al, BYTE PTR -25[rbp]
	movzx	eax, al
	test	eax, eax
	setne	al
	mov	BYTE PTR -25[rbp], al
	movzx	eax, BYTE PTR -26[rbp]
	add	eax, 1
	mov	BYTE PTR -26[rbp], al
.L51:
	movzx	edx, BYTE PTR -26[rbp]
	mov	eax, DWORD PTR SIZE[rip]
	cmp	edx, eax
	jl	.L52
	movzx	eax, BYTE PTR -25[rbp]
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	moveUp, .-moveUp
	.globl	moveLeft
	.type	moveLeft, @function
moveLeft:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	eax, DWORD PTR SIZE[rip]
	movsx	rdx, eax
	sub	rdx, 1
	mov	QWORD PTR -24[rbp], rdx
	cdqe
	mov	rcx, rax
	mov	ebx, 0
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	rotateBoard
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	moveUp
	mov	BYTE PTR -25[rbp], al
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	rotateBoard
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	rotateBoard
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	rotateBoard
	movzx	eax, BYTE PTR -25[rbp]
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	moveLeft, .-moveLeft
	.globl	moveDown
	.type	moveDown, @function
moveDown:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	eax, DWORD PTR SIZE[rip]
	movsx	rdx, eax
	sub	rdx, 1
	mov	QWORD PTR -24[rbp], rdx
	cdqe
	mov	rcx, rax
	mov	ebx, 0
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	rotateBoard
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	rotateBoard
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	moveUp
	mov	BYTE PTR -25[rbp], al
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	rotateBoard
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	rotateBoard
	movzx	eax, BYTE PTR -25[rbp]
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	moveDown, .-moveDown
	.globl	moveRight
	.type	moveRight, @function
moveRight:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	eax, DWORD PTR SIZE[rip]
	movsx	rdx, eax
	sub	rdx, 1
	mov	QWORD PTR -24[rbp], rdx
	cdqe
	mov	rcx, rax
	mov	ebx, 0
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	rotateBoard
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	rotateBoard
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	rotateBoard
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	moveUp
	mov	BYTE PTR -25[rbp], al
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	rotateBoard
	movzx	eax, BYTE PTR -25[rbp]
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	moveRight, .-moveRight
	.globl	findPairDown
	.type	findPairDown, @function
findPairDown:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	eax, DWORD PTR SIZE[rip]
	movsx	rdx, eax
	sub	rdx, 1
	mov	QWORD PTR -24[rbp], rdx
	movsx	rdx, eax
	mov	rcx, rdx
	mov	ebx, 0
	mov	BYTE PTR -25[rbp], 0
	mov	BYTE PTR -26[rbp], 0
	jmp	.L61
.L66:
	mov	BYTE PTR -27[rbp], 0
	jmp	.L62
.L65:
	movzx	ecx, BYTE PTR -26[rbp]
	movsx	rdx, eax
	imul	rcx, rdx
	mov	rdx, QWORD PTR -40[rbp]
	add	rcx, rdx
	movzx	edx, BYTE PTR -27[rbp]
	movsx	rdx, edx
	movzx	ecx, BYTE PTR [rcx+rdx]
	movzx	esi, BYTE PTR -26[rbp]
	movsx	rdx, eax
	imul	rsi, rdx
	mov	rdx, QWORD PTR -40[rbp]
	add	rsi, rdx
	movzx	edx, BYTE PTR -27[rbp]
	add	edx, 1
	movsx	rdx, edx
	movzx	edx, BYTE PTR [rsi+rdx]
	cmp	cl, dl
	jne	.L63
	mov	eax, 1
	jmp	.L64
.L63:
	movzx	edx, BYTE PTR -27[rbp]
	add	edx, 1
	mov	BYTE PTR -27[rbp], dl
.L62:
	movzx	edx, BYTE PTR -27[rbp]
	mov	ecx, DWORD PTR SIZE[rip]
	sub	ecx, 1
	cmp	edx, ecx
	jl	.L65
	movzx	edx, BYTE PTR -26[rbp]
	add	edx, 1
	mov	BYTE PTR -26[rbp], dl
.L61:
	movzx	ecx, BYTE PTR -26[rbp]
	mov	edx, DWORD PTR SIZE[rip]
	cmp	ecx, edx
	jl	.L66
	movzx	eax, BYTE PTR -25[rbp]
.L64:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	findPairDown, .-findPairDown
	.globl	countEmpty
	.type	countEmpty, @function
countEmpty:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	eax, DWORD PTR SIZE[rip]
	movsx	rdx, eax
	sub	rdx, 1
	mov	QWORD PTR -24[rbp], rdx
	movsx	rdx, eax
	mov	rcx, rdx
	mov	ebx, 0
	mov	BYTE PTR -27[rbp], 0
	mov	BYTE PTR -25[rbp], 0
	jmp	.L68
.L72:
	mov	BYTE PTR -26[rbp], 0
	jmp	.L69
.L71:
	movzx	ecx, BYTE PTR -25[rbp]
	movsx	rdx, eax
	imul	rcx, rdx
	mov	rdx, QWORD PTR -40[rbp]
	add	rcx, rdx
	movzx	edx, BYTE PTR -26[rbp]
	movsx	rdx, edx
	movzx	edx, BYTE PTR [rcx+rdx]
	test	dl, dl
	jne	.L70
	movzx	edx, BYTE PTR -27[rbp]
	add	edx, 1
	mov	BYTE PTR -27[rbp], dl
.L70:
	movzx	edx, BYTE PTR -26[rbp]
	add	edx, 1
	mov	BYTE PTR -26[rbp], dl
.L69:
	movzx	ecx, BYTE PTR -26[rbp]
	mov	edx, DWORD PTR SIZE[rip]
	cmp	ecx, edx
	jl	.L71
	movzx	edx, BYTE PTR -25[rbp]
	add	edx, 1
	mov	BYTE PTR -25[rbp], dl
.L68:
	movzx	ecx, BYTE PTR -25[rbp]
	mov	edx, DWORD PTR SIZE[rip]
	cmp	ecx, edx
	jl	.L72
	movzx	eax, BYTE PTR -27[rbp]
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	countEmpty, .-countEmpty
	.globl	gameEnded
	.type	gameEnded, @function
gameEnded:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	eax, DWORD PTR SIZE[rip]
	movsx	rdx, eax
	sub	rdx, 1
	mov	QWORD PTR -24[rbp], rdx
	cdqe
	mov	rcx, rax
	mov	ebx, 0
	mov	BYTE PTR -25[rbp], 1
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	countEmpty
	test	al, al
	je	.L75
	mov	eax, 0
	jmp	.L76
.L75:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	findPairDown
	test	al, al
	je	.L77
	mov	eax, 0
	jmp	.L76
.L77:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	rotateBoard
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	findPairDown
	test	al, al
	je	.L78
	mov	BYTE PTR -25[rbp], 0
.L78:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	rotateBoard
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	rotateBoard
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	rotateBoard
	movzx	eax, BYTE PTR -25[rbp]
.L76:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	gameEnded, .-gameEnded
	.globl	addRandom
	.type	addRandom, @function
addRandom:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r13
	push	r12
	push	rbx
	sub	rsp, 72
	.cfi_offset 13, -24
	.cfi_offset 12, -32
	.cfi_offset 3, -40
	mov	QWORD PTR -88[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -40[rbp], rax
	xor	eax, eax
	mov	ebx, DWORD PTR SIZE[rip]
	movsx	rax, ebx
	sub	rax, 1
	mov	QWORD PTR -64[rbp], rax
	movsx	rax, ebx
	mov	r12, rax
	mov	r13d, 0
	mov	rax, rsp
	mov	r12, rax
	mov	BYTE PTR -69[rbp], 0
	mov	edx, DWORD PTR SIZE[rip]
	mov	eax, DWORD PTR SIZE[rip]
	imul	eax, edx
	movsx	rdx, eax
	sub	rdx, 1
	mov	QWORD PTR -56[rbp], rdx
	movsx	rdx, eax
	mov	r10, rdx
	mov	r11d, 0
	movsx	rdx, eax
	mov	r8, rdx
	mov	r9d, 0
	cdqe
	lea	rdx, [rax+rax]
	mov	eax, 16
	sub	rax, 1
	add	rax, rdx
	mov	edi, 16
	mov	edx, 0
	div	rdi
	imul	rax, rax, 16
	mov	rcx, rax
	and	rcx, -4096
	mov	rdx, rsp
	sub	rdx, rcx
.L80:
	cmp	rsp, rdx
	je	.L81
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L80
.L81:
	mov	rdx, rax
	and	edx, 4095
	sub	rsp, rdx
	mov	rdx, rax
	and	edx, 4095
	test	rdx, rdx
	je	.L82
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L82:
	mov	rax, rsp
	add	rax, 0
	mov	QWORD PTR -48[rbp], rax
	movzx	eax, BYTE PTR initialized.2[rip]
	xor	eax, 1
	test	al, al
	je	.L83
	mov	edi, 0
	call	time@PLT
	mov	edi, eax
	call	srand@PLT
	mov	BYTE PTR initialized.2[rip], 1
.L83:
	mov	BYTE PTR -67[rbp], 0
	jmp	.L84
.L88:
	mov	BYTE PTR -68[rbp], 0
	jmp	.L85
.L87:
	movzx	edx, BYTE PTR -67[rbp]
	movsx	rax, ebx
	imul	rdx, rax
	mov	rax, QWORD PTR -88[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR -68[rbp]
	cdqe
	movzx	eax, BYTE PTR [rdx+rax]
	test	al, al
	jne	.L86
	movzx	edx, BYTE PTR -69[rbp]
	mov	rax, QWORD PTR -48[rbp]
	movsx	rdx, edx
	movzx	ecx, BYTE PTR -67[rbp]
	mov	BYTE PTR [rax+rdx*2], cl
	movzx	edx, BYTE PTR -69[rbp]
	mov	rax, QWORD PTR -48[rbp]
	movsx	rdx, edx
	movzx	ecx, BYTE PTR -68[rbp]
	mov	BYTE PTR 1[rax+rdx*2], cl
	movzx	eax, BYTE PTR -69[rbp]
	add	eax, 1
	mov	BYTE PTR -69[rbp], al
.L86:
	movzx	eax, BYTE PTR -68[rbp]
	add	eax, 1
	mov	BYTE PTR -68[rbp], al
.L85:
	movzx	edx, BYTE PTR -68[rbp]
	mov	eax, DWORD PTR SIZE[rip]
	cmp	edx, eax
	jl	.L87
	movzx	eax, BYTE PTR -67[rbp]
	add	eax, 1
	mov	BYTE PTR -67[rbp], al
.L84:
	movzx	edx, BYTE PTR -67[rbp]
	mov	eax, DWORD PTR SIZE[rip]
	cmp	edx, eax
	jl	.L88
	cmp	BYTE PTR -69[rbp], 0
	je	.L89
	call	rand@PLT
	movzx	ecx, BYTE PTR -69[rbp]
	cdq
	idiv	ecx
	mov	eax, edx
	mov	BYTE PTR -66[rbp], al
	movzx	edx, BYTE PTR -66[rbp]
	mov	rax, QWORD PTR -48[rbp]
	movsx	rdx, edx
	movzx	eax, BYTE PTR [rax+rdx*2]
	mov	BYTE PTR -67[rbp], al
	movzx	edx, BYTE PTR -66[rbp]
	mov	rax, QWORD PTR -48[rbp]
	movsx	rdx, edx
	movzx	eax, BYTE PTR 1[rax+rdx*2]
	mov	BYTE PTR -68[rbp], al
	call	rand@PLT
	mov	ecx, eax
	movsx	rax, ecx
	imul	rax, rax, 1717986919
	shr	rax, 32
	sar	eax, 2
	mov	esi, ecx
	sar	esi, 31
	sub	eax, esi
	mov	edx, eax
	mov	eax, edx
	sal	eax, 2
	add	eax, edx
	add	eax, eax
	sub	ecx, eax
	mov	edx, ecx
	movsx	rax, edx
	imul	rax, rax, 954437177
	shr	rax, 32
	sar	eax
	sar	edx, 31
	sub	eax, edx
	add	eax, 1
	mov	BYTE PTR -65[rbp], al
	movzx	edx, BYTE PTR -67[rbp]
	movsx	rax, ebx
	imul	rdx, rax
	mov	rax, QWORD PTR -88[rbp]
	lea	rcx, [rdx+rax]
	movzx	eax, BYTE PTR -68[rbp]
	cdqe
	movzx	edx, BYTE PTR -65[rbp]
	mov	BYTE PTR [rcx+rax], dl
.L89:
	mov	rsp, r12
	nop
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L90
	call	__stack_chk_fail@PLT
.L90:
	lea	rsp, -24[rbp]
	pop	rbx
	pop	r12
	pop	r13
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	addRandom, .-addRandom
	.globl	initBoard
	.type	initBoard, @function
initBoard:
.LFB14:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	eax, DWORD PTR SIZE[rip]
	movsx	rdx, eax
	sub	rdx, 1
	mov	QWORD PTR -24[rbp], rdx
	movsx	rdx, eax
	mov	rcx, rdx
	mov	ebx, 0
	mov	BYTE PTR -25[rbp], 0
	jmp	.L92
.L95:
	mov	BYTE PTR -26[rbp], 0
	jmp	.L93
.L94:
	movzx	ecx, BYTE PTR -25[rbp]
	movsx	rdx, eax
	imul	rcx, rdx
	mov	rdx, QWORD PTR -40[rbp]
	add	rcx, rdx
	movzx	edx, BYTE PTR -26[rbp]
	movsx	rdx, edx
	mov	BYTE PTR [rcx+rdx], 0
	movzx	edx, BYTE PTR -26[rbp]
	add	edx, 1
	mov	BYTE PTR -26[rbp], dl
.L93:
	movzx	ecx, BYTE PTR -26[rbp]
	mov	edx, DWORD PTR SIZE[rip]
	cmp	ecx, edx
	jl	.L94
	movzx	edx, BYTE PTR -25[rbp]
	add	edx, 1
	mov	BYTE PTR -25[rbp], dl
.L92:
	movzx	ecx, BYTE PTR -25[rbp]
	mov	edx, DWORD PTR SIZE[rip]
	cmp	ecx, edx
	jl	.L95
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	addRandom
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	addRandom
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	drawBoard
	mov	DWORD PTR score[rip], 0
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	initBoard, .-initBoard
	.globl	initBoard2
	.type	initBoard2, @function
initBoard2:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	eax, DWORD PTR SIZE[rip]
	movsx	rdx, eax
	sub	rdx, 1
	mov	QWORD PTR -24[rbp], rdx
	movsx	rdx, eax
	mov	rcx, rdx
	mov	ebx, 0
	mov	BYTE PTR -25[rbp], 0
	jmp	.L97
.L100:
	mov	BYTE PTR -26[rbp], 0
	jmp	.L98
.L99:
	movzx	ecx, BYTE PTR -25[rbp]
	movsx	rdx, eax
	imul	rcx, rdx
	mov	rdx, QWORD PTR -40[rbp]
	add	rcx, rdx
	movzx	edx, BYTE PTR -26[rbp]
	movsx	rdx, edx
	mov	BYTE PTR [rcx+rdx], 0
	movzx	edx, BYTE PTR -26[rbp]
	add	edx, 1
	mov	BYTE PTR -26[rbp], dl
.L98:
	movzx	ecx, BYTE PTR -26[rbp]
	mov	edx, DWORD PTR SIZE[rip]
	cmp	ecx, edx
	jl	.L99
	movzx	edx, BYTE PTR -25[rbp]
	add	edx, 1
	mov	BYTE PTR -25[rbp], dl
.L97:
	movzx	ecx, BYTE PTR -25[rbp]
	mov	edx, DWORD PTR SIZE[rip]
	cmp	ecx, edx
	jl	.L100
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	addRandom
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	addRandom
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	drawBoard2
	mov	DWORD PTR score[rip], 0
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	initBoard2, .-initBoard2
	.globl	setBufferedInput
	.type	setBufferedInput, @function
setBufferedInput:
.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, 96
	mov	eax, edi
	mov	BYTE PTR -84[rbp], al
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	cmp	BYTE PTR -84[rbp], 0
	je	.L102
	movzx	eax, BYTE PTR enabled.1[rip]
	xor	eax, 1
	test	al, al
	je	.L102
	lea	rdx, old.0[rip]
	mov	esi, 0
	mov	edi, 0
	call	tcsetattr@PLT
	mov	BYTE PTR enabled.1[rip], 1
	jmp	.L105
.L102:
	movzx	eax, BYTE PTR -84[rbp]
	xor	eax, 1
	test	al, al
	je	.L105
	movzx	eax, BYTE PTR enabled.1[rip]
	test	al, al
	je	.L105
	lea	rax, -80[rbp]
	mov	rsi, rax
	mov	edi, 0
	call	tcgetattr@PLT
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR -72[rbp]
	mov	QWORD PTR old.0[rip], rax
	mov	QWORD PTR old.0[rip+8], rdx
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR -56[rbp]
	mov	QWORD PTR old.0[rip+16], rax
	mov	QWORD PTR old.0[rip+24], rdx
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR old.0[rip+32], rax
	mov	QWORD PTR old.0[rip+40], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR old.0[rip+48], rax
	mov	eax, DWORD PTR -24[rbp]
	mov	DWORD PTR old.0[rip+56], eax
	mov	eax, DWORD PTR -68[rbp]
	and	eax, -11
	mov	DWORD PTR -68[rbp], eax
	lea	rax, -80[rbp]
	mov	rdx, rax
	mov	esi, 0
	mov	edi, 0
	call	tcsetattr@PLT
	mov	BYTE PTR enabled.1[rip], 0
.L105:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L104
	call	__stack_chk_fail@PLT
.L104:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	setBufferedInput, .-setBufferedInput
	.section	.rodata
.LC14:
	.string	"%d "
.LC15:
	.string	"=> "
.LC16:
	.string	"expected "
	.align 8
.LC17:
	.string	"All %u tests executed successfully\n"
	.text
	.globl	test
	.type	test, @function
test:
.LFB17:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 168
	.cfi_offset 3, -24
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rax, rsp
	mov	rbx, rax
	mov	eax, DWORD PTR SIZE[rip]
	movsx	rdx, eax
	sub	rdx, 1
	mov	QWORD PTR -160[rbp], rdx
	movsx	rdx, eax
	mov	r8, rdx
	mov	r9d, 0
	movsx	rdx, eax
	mov	rsi, rdx
	mov	edi, 0
	cdqe
	mov	edx, 16
	sub	rdx, 1
	add	rax, rdx
	mov	ecx, 16
	mov	edx, 0
	div	rcx
	imul	rax, rax, 16
	mov	rcx, rax
	and	rcx, -4096
	mov	rdx, rsp
	sub	rdx, rcx
.L107:
	cmp	rsp, rdx
	je	.L108
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L107
.L108:
	mov	rdx, rax
	and	edx, 4095
	sub	rsp, rdx
	mov	rdx, rax
	and	edx, 4095
	test	rdx, rdx
	je	.L109
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L109:
	mov	rax, rsp
	add	rax, 0
	mov	QWORD PTR -152[rbp], rax
	movabs	rax, 4311744512
	movabs	rdx, 8606777344
	mov	QWORD PTR -128[rbp], rax
	mov	QWORD PTR -120[rbp], rdx
	movabs	rax, 8606712064
	movabs	rdx, 8606711809
	mov	QWORD PTR -112[rbp], rax
	mov	QWORD PTR -104[rbp], rdx
	movabs	rax, 8590000129
	movabs	rdx, 1108101628161
	mov	QWORD PTR -96[rbp], rax
	mov	QWORD PTR -88[rbp], rdx
	movabs	rax, 1108118405121
	movabs	rdx, 1108118339841
	mov	QWORD PTR -80[rbp], rax
	mov	QWORD PTR -72[rbp], rdx
	movabs	rax, 2207630033153
	movabs	rdx, 2211925000706
	mov	QWORD PTR -64[rbp], rax
	mov	QWORD PTR -56[rbp], rdx
	movabs	rax, 3307158503681
	movabs	rdx, 2211925000195
	mov	QWORD PTR -48[rbp], rax
	mov	QWORD PTR -40[rbp], rdx
	movabs	rax, 2207630032898
	mov	QWORD PTR -32[rbp], rax
	mov	BYTE PTR -162[rbp], 1
	mov	eax, DWORD PTR SIZE[rip]
	add	eax, eax
	movsx	rsi, eax
	mov	eax, 104
	mov	edx, 0
	div	rsi
	mov	BYTE PTR -161[rbp], al
	mov	BYTE PTR -163[rbp], 0
	jmp	.L110
.L126:
	movzx	edx, BYTE PTR -163[rbp]
	mov	eax, DWORD PTR SIZE[rip]
	imul	eax, edx
	add	eax, eax
	cdqe
	lea	rdx, -128[rbp]
	add	rax, rdx
	mov	QWORD PTR -144[rbp], rax
	mov	eax, DWORD PTR SIZE[rip]
	movsx	rdx, eax
	mov	rax, QWORD PTR -144[rbp]
	add	rax, rdx
	mov	QWORD PTR -136[rbp], rax
	mov	BYTE PTR -164[rbp], 0
	jmp	.L111
.L112:
	movzx	edx, BYTE PTR -164[rbp]
	mov	rax, QWORD PTR -144[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR -164[rbp]
	movzx	ecx, BYTE PTR [rdx]
	mov	rdx, QWORD PTR -152[rbp]
	cdqe
	mov	BYTE PTR [rdx+rax], cl
	movzx	eax, BYTE PTR -164[rbp]
	add	eax, 1
	mov	BYTE PTR -164[rbp], al
.L111:
	movzx	edx, BYTE PTR -164[rbp]
	mov	eax, DWORD PTR SIZE[rip]
	cmp	edx, eax
	jl	.L112
	mov	rax, QWORD PTR -152[rbp]
	mov	rdi, rax
	call	slideArray
	mov	BYTE PTR -164[rbp], 0
	jmp	.L113
.L115:
	movzx	eax, BYTE PTR -164[rbp]
	mov	rdx, QWORD PTR -152[rbp]
	cdqe
	movzx	edx, BYTE PTR [rdx+rax]
	movzx	ecx, BYTE PTR -164[rbp]
	mov	rax, QWORD PTR -136[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	cmp	dl, al
	je	.L114
	mov	BYTE PTR -162[rbp], 0
.L114:
	movzx	eax, BYTE PTR -164[rbp]
	add	eax, 1
	mov	BYTE PTR -164[rbp], al
.L113:
	movzx	edx, BYTE PTR -164[rbp]
	mov	eax, DWORD PTR SIZE[rip]
	cmp	edx, eax
	jl	.L115
	movzx	eax, BYTE PTR -162[rbp]
	xor	eax, 1
	test	al, al
	je	.L116
	mov	BYTE PTR -164[rbp], 0
	jmp	.L117
.L118:
	movzx	edx, BYTE PTR -164[rbp]
	mov	rax, QWORD PTR -144[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	esi, eax
	lea	rdi, .LC14[rip]
	mov	eax, 0
	call	printf@PLT
	movzx	eax, BYTE PTR -164[rbp]
	add	eax, 1
	mov	BYTE PTR -164[rbp], al
.L117:
	movzx	edx, BYTE PTR -164[rbp]
	mov	eax, DWORD PTR SIZE[rip]
	cmp	edx, eax
	jl	.L118
	lea	rdi, .LC15[rip]
	mov	eax, 0
	call	printf@PLT
	mov	BYTE PTR -164[rbp], 0
	jmp	.L119
.L120:
	movzx	eax, BYTE PTR -164[rbp]
	mov	rdx, QWORD PTR -152[rbp]
	cdqe
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	mov	esi, eax
	lea	rdi, .LC14[rip]
	mov	eax, 0
	call	printf@PLT
	movzx	eax, BYTE PTR -164[rbp]
	add	eax, 1
	mov	BYTE PTR -164[rbp], al
.L119:
	movzx	edx, BYTE PTR -164[rbp]
	mov	eax, DWORD PTR SIZE[rip]
	cmp	edx, eax
	jl	.L120
	lea	rdi, .LC16[rip]
	mov	eax, 0
	call	printf@PLT
	mov	BYTE PTR -164[rbp], 0
	jmp	.L121
.L122:
	movzx	edx, BYTE PTR -164[rbp]
	mov	rax, QWORD PTR -144[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	esi, eax
	lea	rdi, .LC14[rip]
	mov	eax, 0
	call	printf@PLT
	movzx	eax, BYTE PTR -164[rbp]
	add	eax, 1
	mov	BYTE PTR -164[rbp], al
.L121:
	movzx	edx, BYTE PTR -164[rbp]
	mov	eax, DWORD PTR SIZE[rip]
	cmp	edx, eax
	jl	.L122
	lea	rdi, .LC15[rip]
	mov	eax, 0
	call	printf@PLT
	mov	BYTE PTR -164[rbp], 0
	jmp	.L123
.L124:
	movzx	edx, BYTE PTR -164[rbp]
	mov	rax, QWORD PTR -136[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	esi, eax
	lea	rdi, .LC14[rip]
	mov	eax, 0
	call	printf@PLT
	movzx	eax, BYTE PTR -164[rbp]
	add	eax, 1
	mov	BYTE PTR -164[rbp], al
.L123:
	movzx	edx, BYTE PTR -164[rbp]
	mov	eax, DWORD PTR SIZE[rip]
	cmp	edx, eax
	jl	.L124
	mov	edi, 10
	call	putchar@PLT
	jmp	.L125
.L116:
	movzx	eax, BYTE PTR -163[rbp]
	add	eax, 1
	mov	BYTE PTR -163[rbp], al
.L110:
	movzx	eax, BYTE PTR -163[rbp]
	cmp	al, BYTE PTR -161[rbp]
	jb	.L126
.L125:
	cmp	BYTE PTR -162[rbp], 0
	je	.L127
	movzx	eax, BYTE PTR -161[rbp]
	mov	esi, eax
	lea	rdi, .LC17[rip]
	mov	eax, 0
	call	printf@PLT
.L127:
	movzx	eax, BYTE PTR -162[rbp]
	xor	eax, 1
	movzx	eax, al
	mov	rsp, rbx
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L129
	call	__stack_chk_fail@PLT
.L129:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	test, .-test
	.section	.rodata
.LC18:
	.string	"         TERMINATED         "
.LC19:
	.string	"\033[?25h\033[m"
	.text
	.globl	signal_callback_handler
	.type	signal_callback_handler, @function
signal_callback_handler:
.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	DWORD PTR -4[rbp], edi
	lea	rdi, .LC18[rip]
	call	puts@PLT
	mov	edi, 1
	call	setBufferedInput
	lea	rdi, .LC19[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, DWORD PTR -4[rbp]
	mov	edi, eax
	call	exit@PLT
	.cfi_endproc
.LFE18:
	.size	signal_callback_handler, .-signal_callback_handler
	.section	.rodata
	.align 8
.LC20:
	.string	"\n \354\213\234\354\236\221\355\225\240 \353\225\214 \354\202\254\354\232\251\354\236\220\352\260\200 \354\204\240\355\203\235\355\225\234 \354\202\254\354\235\264\354\246\210\354\235\230 \355\214\220 \354\234\204\354\227\220 2\352\260\234\354\235\230 2(\353\230\220\353\212\224 4)\352\260\200 \354\236\210\353\212\224\353\215\260 "
	.align 8
.LC21:
	.string	" \355\202\244\353\263\264\353\223\234 \353\260\251\355\226\245\355\202\244\353\202\230 \355\204\260\354\271\230\354\212\244\355\201\254\353\246\260\354\234\274\353\241\234 \353\223\234\353\236\230\352\267\270\355\225\230\353\251\264 \353\270\224\353\241\235\354\235\264 \354\240\204\353\266\200 \352\267\270 \353\260\251\355\226\245\354\234\274\353\241\234 \354\235\264\353\217\231\355\225\230\353\251\264\354\204\234 "
	.align 8
.LC22:
	.string	" \352\260\231\354\235\200 \354\210\253\354\236\220\352\260\200 \354\236\210\354\235\204 \352\262\275\354\232\260 \355\225\251\354\263\220\354\247\200\353\251\260 \353\271\210 \354\236\220\353\246\254 \354\244\221 \355\225\234 \354\271\270\354\227\220 \353\236\234\353\215\244\355\225\230\352\262\214 2 \353\230\220\353\212\224 4\352\260\200 \353\202\230\354\230\265\353\213\210\353\213\244."
	.align 8
.LC23:
	.string	" \354\235\264\353\245\274 \353\260\230\353\263\265\355\225\264\354\204\234 2\353\241\234\353\266\200\355\204\260 2048\354\235\204 \353\247\214\353\223\244\353\251\264 \352\262\214\354\236\204 \355\201\264\353\246\254\354\226\264 ! "
	.align 8
.LC24:
	.string	" \353\247\214\354\225\275 2048\354\235\204 \353\247\214\353\223\244\352\270\260 \354\240\204 \354\235\264\353\217\231\355\225\240 \354\210\230 \354\227\206\353\212\224 \352\262\275\354\232\260 \354\246\211 16\354\271\270\354\235\264 \352\275\211 \354\260\250\354\236\210\354\234\274\353\251\264\354\204\234 \354\235\270\354\240\221\355\225\234 \353\221\220 \354\271\270\354\235\264 \352\260\231\354\247\200 \354\225\212\354\235\204 \353\225\214 \352\262\214\354\236\204 \354\230\244\353\262\204\352\260\200 \353\220\230\353\251\260,"
	.align 8
.LC25:
	.string	" 2048\354\235\204 \353\247\214\353\223\246\352\263\274 \353\217\231\354\213\234\354\227\220 \354\235\264\353\217\231 \353\266\210\352\260\200\353\251\264 \354\227\255\354\213\234 \353\247\210\354\260\254\352\260\200\354\247\200 \354\236\205\353\213\210\353\213\244."
.LC26:
	.string	" \354\260\270 \354\211\275\354\243\240 ? "
	.align 8
.LC27:
	.string	" \353\263\204 \352\261\260 \354\225\204\353\213\214 \352\262\203 \352\260\231\354\247\200\353\247\214...\354\235\200\352\267\274\355\236\210 \354\244\221\353\217\205\354\204\261\354\236\210\352\263\240 \354\226\264\353\240\265\354\212\265\353\213\210\353\213\244. "
	.align 8
.LC28:
	.string	" \354\210\253\354\236\220\353\245\274 \353\255\211\354\271\240 \353\225\214 3\352\260\234~4\352\260\234\352\260\200 \355\225\234\352\272\274\353\262\210\354\227\220 \353\255\211\354\263\220\354\247\200\354\247\200\353\212\224 \354\225\212\354\212\265\353\213\210\353\213\244. "
	.align 8
.LC29:
	.string	" \354\230\210\353\245\274 \353\223\244\354\226\264, 4-4-4-4 \354\235\264\353\240\207\352\262\214 \353\220\230\354\226\264 \354\236\210\352\261\260\353\202\230 4-4-8 \354\235\264\353\240\207\352\262\214 \353\220\230\354\226\264 \354\236\210\354\235\204 \353\225\214 \353\255\211\354\271\230\353\251\264 8-8\353\241\234 \353\220\230\352\263\240 \353\260\224\353\241\234 16\354\234\274\353\241\234 \353\220\230\354\247\200\353\212\224 \354\225\212\354\212\265\353\213\210\353\213\244. "
	.align 8
.LC30:
	.string	" \353\254\274\353\241\240 8-8\353\241\234 \353\220\234 \354\203\201\355\203\234\354\227\220\354\204\234 \355\225\234 \353\262\210 \353\215\224 \353\255\211\354\271\230\353\251\264 16\354\234\274\353\241\234 \353\220\230\353\212\224 \352\261\264 \353\247\236\354\212\265\353\213\210\353\213\244. \n "
	.align 8
.LC31:
	.string	" \354\246\211, 4-4-4-4\353\202\230 4-4-8 \354\235\264\353\240\207\352\262\214 \353\220\234 \352\262\203\354\235\204 16\354\234\274\353\241\234 \353\255\211\354\271\230\353\240\244\353\251\264 \353\221\220 \353\262\210 \353\255\211\354\263\220\354\225\274 \355\225\234\353\213\244\353\212\224 \354\226\230\352\270\260 ! \n "
	.align 8
.LC32:
	.string	" \352\267\270\353\237\274 \354\235\264\354\240\234 '\355\224\214\353\240\210\354\235\264'\353\245\274 \355\225\230\353\237\254 \352\260\200\353\263\274\352\271\214\354\232\224 ?? \n "
	.text
	.globl	manual
	.type	manual, @function
manual:
.LFB19:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	rdi, .LC20[rip]
	call	puts@PLT
	lea	rdi, .LC21[rip]
	call	puts@PLT
	lea	rdi, .LC22[rip]
	call	puts@PLT
	lea	rdi, .LC23[rip]
	call	puts@PLT
	lea	rdi, .LC24[rip]
	call	puts@PLT
	lea	rdi, .LC25[rip]
	call	puts@PLT
	lea	rdi, .LC26[rip]
	call	puts@PLT
	lea	rdi, .LC27[rip]
	call	puts@PLT
	lea	rdi, .LC28[rip]
	call	puts@PLT
	lea	rdi, .LC29[rip]
	call	puts@PLT
	lea	rdi, .LC30[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rdi, .LC31[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rdi, .LC32[rip]
	call	puts@PLT
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	manual, .-manual
	.type	myclock, @function
myclock:
.LFB20:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rax, -32[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	gettimeofday@PLT
	mov	rax, QWORD PTR -32[rbp]
	imul	rsi, rax, 1000
	mov	rcx, QWORD PTR -24[rbp]
	movabs	rdx, 2361183241434822607
	mov	rax, rcx
	imul	rdx
	mov	rax, rdx
	sar	rax, 7
	sar	rcx, 63
	mov	rdx, rcx
	sub	rax, rdx
	add	rax, rsi
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L134
	call	__stack_chk_fail@PLT
.L134:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	myclock, .-myclock
	.section	.rodata
	.align 8
.LC33:
	.string	"2048 \352\262\214\354\236\204\354\235\204 \354\246\220\352\270\270 \354\244\200\353\271\204\352\260\200 \353\220\230\354\205\250\353\202\230\354\232\224 ? "
.LC34:
	.string	"   1. \355\224\214\353\240\210\354\235\264 "
.LC35:
	.string	"   2. \352\262\214\354\236\204\353\260\251\353\262\225 "
	.align 8
.LC36:
	.string	"\354\233\220\355\225\230\353\212\224 \353\262\210\355\230\270\353\245\274 \354\204\240\355\203\235\355\225\264\354\243\274\354\204\270\354\232\224 : "
.LC37:
	.string	"%d"
.LC38:
	.string	"%s%d_%d.txt"
.LC39:
	.string	"\n"
	.align 8
.LC40:
	.string	"\355\224\214\353\240\210\354\235\264\354\226\264 \354\210\230\353\245\274 \354\236\205\353\240\245\355\225\230\354\204\270\354\232\224 (\354\265\234\353\214\200 2\353\252\205) : "
.LC41:
	.string	"\n\n\n\n\n\n\n\n\n"
.LC42:
	.string	"test"
.LC43:
	.string	"blackwhite"
.LC44:
	.string	"bluered"
	.align 8
.LC45:
	.string	"\353\263\264\353\223\234\354\235\230 \355\201\254\352\270\260\353\245\274 \354\236\205\353\240\245\355\225\230\354\204\270\354\232\224. ex) 4 : "
	.align 8
.LC46:
	.string	"\353\263\264\353\223\234\355\214\220\354\235\230 \355\201\254\352\270\260\352\260\200 \353\204\210\353\254\264 \354\236\221\354\225\204\354\232\224 !"
.LC47:
	.string	"\033[?25l\033[2J"
	.align 8
.LC48:
	.string	"\nError! Cannot read keyboard input!"
.LC49:
	.string	"\nRecord : %d.%d sec\n"
.LC50:
	.string	"\n\n\nWIN"
.LC51:
	.string	"%d.%d\n"
.LC54:
	.string	"%f\n"
.LC55:
	.string	"%d : %s\n"
.LC56:
	.string	"\n\n\n\t\t\t\t\t\t\tWIN"
.LC57:
	.string	"--- %d.%d sec\n"
.LC58:
	.string	"         GAME OVER          "
	.align 8
.LC59:
	.string	"\t\t\t\t\t\t\t         GAME OVER          "
.LC60:
	.string	"        QUIT? (y/n)         "
.LC61:
	.string	"       RESTART? (y/n)       "
	.text
	.globl	main
	.type	main, @function
main:
.LFB21:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r15
	push	r14
	push	r13
	push	r12
	push	rbx
	sub	rsp, 872
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	mov	DWORD PTR -804[rbp], edi
	mov	QWORD PTR -816[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -56[rbp], rax
	xor	eax, eax
	mov	rax, rsp
	mov	QWORD PTR -904[rbp], rax
	mov	esi, DWORD PTR SIZE[rip]
	mov	edi, DWORD PTR SIZE[rip]
	movsx	rax, esi
	sub	rax, 1
	mov	QWORD PTR -744[rbp], rax
	movsx	rax, esi
	mov	rcx, rax
	mov	ebx, 0
	movsx	rax, edi
	sub	rax, 1
	mov	QWORD PTR -736[rbp], rax
	movsx	rax, esi
	mov	r10, rax
	mov	r11d, 0
	movsx	rax, edi
	mov	r8, rax
	mov	r9d, 0
	mov	rdx, r11
	imul	rdx, r8
	mov	rax, r9
	imul	rax, r10
	lea	rcx, [rdx+rax]
	mov	rax, r10
	mul	r8
	add	rcx, rdx
	mov	rdx, rcx
	movsx	rax, esi
	mov	QWORD PTR -864[rbp], rax
	mov	QWORD PTR -856[rbp], 0
	movsx	rax, edi
	mov	QWORD PTR -832[rbp], rax
	mov	QWORD PTR -824[rbp], 0
	mov	rcx, QWORD PTR -864[rbp]
	mov	rbx, QWORD PTR -856[rbp]
	mov	rdx, rbx
	mov	r9, QWORD PTR -832[rbp]
	mov	r10, QWORD PTR -824[rbp]
	imul	rdx, r9
	mov	QWORD PTR -832[rbp], r9
	mov	QWORD PTR -824[rbp], r10
	mov	rax, r10
	mov	r9, rcx
	mov	r10, rbx
	imul	rax, r9
	lea	rcx, [rdx+rax]
	mov	rax, r9
	mul	QWORD PTR -832[rbp]
	add	rcx, rdx
	mov	rdx, rcx
	movsx	rdx, esi
	movsx	rax, edi
	imul	rax, rdx
	mov	edx, 16
	sub	rdx, 1
	add	rax, rdx
	mov	ebx, 16
	mov	edx, 0
	div	rbx
	imul	rax, rax, 16
	mov	rcx, rax
	and	rcx, -4096
	mov	rdx, rsp
	sub	rdx, rcx
.L136:
	cmp	rsp, rdx
	je	.L137
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L136
.L137:
	mov	rdx, rax
	and	edx, 4095
	sub	rsp, rdx
	mov	rdx, rax
	and	edx, 4095
	test	rdx, rdx
	je	.L138
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L138:
	mov	rax, rsp
	add	rax, 0
	mov	QWORD PTR -728[rbp], rax
	mov	ecx, DWORD PTR SIZE[rip]
	mov	esi, DWORD PTR SIZE[rip]
	movsx	rax, ecx
	sub	rax, 1
	mov	QWORD PTR -720[rbp], rax
	movsx	rax, ecx
	mov	QWORD PTR -896[rbp], rax
	mov	QWORD PTR -888[rbp], 0
	movsx	rax, esi
	sub	rax, 1
	mov	QWORD PTR -712[rbp], rax
	movsx	rax, ecx
	mov	QWORD PTR -880[rbp], rax
	mov	QWORD PTR -872[rbp], 0
	movsx	rax, esi
	mov	QWORD PTR -848[rbp], rax
	mov	QWORD PTR -840[rbp], 0
	mov	r9, QWORD PTR -880[rbp]
	mov	r10, QWORD PTR -872[rbp]
	mov	rdx, r10
	imul	rdx, QWORD PTR -848[rbp]
	mov	rax, QWORD PTR -840[rbp]
	imul	rax, r9
	lea	rdi, [rdx+rax]
	mov	rax, r9
	mul	QWORD PTR -848[rbp]
	add	rdi, rdx
	mov	rdx, rdi
	movsx	rax, ecx
	mov	r14, rax
	mov	r15d, 0
	movsx	rax, esi
	mov	r12, rax
	mov	r13d, 0
	mov	rdx, r15
	imul	rdx, r12
	mov	rax, r13
	imul	rax, r14
	lea	rdi, [rdx+rax]
	mov	rax, r14
	mul	r12
	add	rdi, rdx
	mov	rdx, rdi
	movsx	rdx, ecx
	movsx	rax, esi
	imul	rax, rdx
	mov	edx, 16
	sub	rdx, 1
	add	rax, rdx
	mov	ebx, 16
	mov	edx, 0
	div	rbx
	imul	rax, rax, 16
	mov	rcx, rax
	and	rcx, -4096
	mov	rdx, rsp
	sub	rdx, rcx
.L139:
	cmp	rsp, rdx
	je	.L140
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L139
.L140:
	mov	rdx, rax
	and	edx, 4095
	sub	rsp, rdx
	mov	rdx, rax
	and	edx, 4095
	test	rdx, rdx
	je	.L141
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L141:
	mov	rax, rsp
	add	rax, 0
	mov	QWORD PTR -704[rbp], rax
	movabs	rax, 7018912131931138095
	movabs	rdx, 8092739206770550894
	mov	QWORD PTR -272[rbp], rax
	mov	QWORD PTR -264[rbp], rdx
	movabs	rax, 3415245235575549541
	movabs	rdx, 5922061085178081330
	mov	QWORD PTR -256[rbp], rax
	mov	QWORD PTR -248[rbp], rdx
	mov	QWORD PTR -240[rbp], 795569761
	mov	QWORD PTR -232[rbp], 0
	mov	QWORD PTR -224[rbp], 0
	mov	QWORD PTR -216[rbp], 0
	mov	QWORD PTR -208[rbp], 0
	mov	QWORD PTR -200[rbp], 0
	mov	QWORD PTR -192[rbp], 0
	mov	QWORD PTR -184[rbp], 0
	mov	DWORD PTR -176[rbp], 0
	lea	rax, -272[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	access@PLT
	mov	DWORD PTR -760[rbp], eax
	mov	BYTE PTR goal[rip], 0
	mov	BYTE PTR goal1[rip], 0
	mov	BYTE PTR goal2[rip], 0
.L144:
	lea	rdi, .LC33[rip]
	call	puts@PLT
	mov	edi, 10
	call	putchar@PLT
	lea	rdi, .LC34[rip]
	call	puts@PLT
	lea	rdi, .LC35[rip]
	call	puts@PLT
	mov	edi, 10
	call	putchar@PLT
	lea	rdi, .LC36[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rax, -780[rbp]
	mov	rsi, rax
	lea	rdi, .LC37[rip]
	mov	eax, 0
	call	__isoc99_scanf@PLT
	mov	eax, DWORD PTR -780[rbp]
	cmp	eax, 1
	je	.L218
	mov	eax, 0
	call	manual
	jmp	.L144
.L218:
	nop
	mov	DWORD PTR -776[rbp], 1
	jmp	.L145
.L148:
	cmp	DWORD PTR -760[rbp], 0
	jne	.L146
	mov	ecx, DWORD PTR SIZE[rip]
	mov	esi, DWORD PTR -776[rbp]
	lea	rdx, -272[rbp]
	lea	rax, -160[rbp]
	mov	r8d, esi
	lea	rsi, .LC38[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	lea	rax, -160[rbp]
	mov	esi, 66
	mov	rdi, rax
	mov	eax, 0
	call	open@PLT
	mov	DWORD PTR -772[rbp], eax
	jmp	.L147
.L146:
	cmp	DWORD PTR -760[rbp], -1
	jne	.L147
	lea	rax, -272[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	mkdir@PLT
	mov	DWORD PTR -748[rbp], eax
	mov	ecx, DWORD PTR SIZE[rip]
	mov	esi, DWORD PTR -776[rbp]
	lea	rdx, -272[rbp]
	lea	rax, -160[rbp]
	mov	r8d, esi
	lea	rsi, .LC38[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	lea	rax, -160[rbp]
	mov	esi, 66
	mov	rdi, rax
	mov	eax, 0
	call	open@PLT
	mov	DWORD PTR -772[rbp], eax
.L147:
	lea	rax, -160[rbp]
	mov	esi, 66
	mov	rdi, rax
	mov	eax, 0
	call	open@PLT
	mov	DWORD PTR -752[rbp], eax
	add	DWORD PTR -776[rbp], 1
.L145:
	cmp	DWORD PTR -776[rbp], 5
	jle	.L148
	lea	rdi, .LC39[rip]
	call	puts@PLT
	lea	rdi, .LC40[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rax, -784[rbp]
	mov	rsi, rax
	lea	rdi, .LC37[rip]
	mov	eax, 0
	call	__isoc99_scanf@PLT
	lea	rdi, .LC41[rip]
	call	puts@PLT
	cmp	DWORD PTR -804[rbp], 2
	jne	.L149
	mov	rax, QWORD PTR -816[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC42[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L149
	mov	eax, 0
	call	test
	jmp	.L150
.L149:
	cmp	DWORD PTR -804[rbp], 2
	jne	.L151
	mov	rax, QWORD PTR -816[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC43[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L151
	mov	BYTE PTR scheme[rip], 1
.L151:
	cmp	DWORD PTR -804[rbp], 2
	jne	.L152
	mov	rax, QWORD PTR -816[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC44[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L152
	mov	BYTE PTR scheme[rip], 2
.L152:
	lea	rdi, .LC39[rip]
	call	puts@PLT
	lea	rdi, .LC45[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rax, -788[rbp]
	mov	rsi, rax
	lea	rdi, .LC37[rip]
	mov	eax, 0
	call	__isoc99_scanf@PLT
	lea	rdi, .LC41[rip]
	call	puts@PLT
	mov	eax, DWORD PTR -788[rbp]
	mov	DWORD PTR SIZE[rip], eax
	mov	eax, DWORD PTR SIZE[rip]
	test	eax, eax
	je	.L153
	mov	eax, DWORD PTR SIZE[rip]
	cmp	eax, 1
	je	.L153
	mov	eax, DWORD PTR SIZE[rip]
	cmp	eax, 2
	jne	.L154
.L153:
	lea	rdi, .LC46[rip]
	call	puts@PLT
	mov	edi, 1
	call	exit@PLT
.L154:
	lea	rdi, .LC47[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rsi, signal_callback_handler[rip]
	mov	edi, 2
	call	__sysv_signal@PLT
	mov	rax, QWORD PTR -728[rbp]
	mov	rdi, rax
	call	initBoard
	mov	eax, DWORD PTR -784[rbp]
	cmp	eax, 2
	jne	.L155
	mov	rax, QWORD PTR -704[rbp]
	mov	rdi, rax
	call	initBoard2
.L155:
	mov	edi, 0
	call	setBufferedInput
	movzx	eax, BYTE PTR set_time[rip]
	test	al, al
	je	.L210
	mov	eax, 0
	call	myclock
	mov	DWORD PTR -768[rbp], eax
	mov	BYTE PTR set_time[rip], 0
.L210:
	call	getchar@PLT
	mov	BYTE PTR -789[rbp], al
	cmp	BYTE PTR -789[rbp], -1
	jne	.L157
	lea	rdi, .LC48[rip]
	call	puts@PLT
	jmp	.L158
.L157:
	movzx	eax, BYTE PTR goal[rip]
	test	al, al
	je	.L159
	movzx	eax, BYTE PTR goal1[rip]
	test	al, al
	je	.L159
	mov	eax, 0
	call	myclock
	mov	edx, DWORD PTR -768[rbp]
	sub	eax, edx
	mov	DWORD PTR -756[rbp], eax
	mov	edx, DWORD PTR -756[rbp]
	movsx	rax, edx
	imul	rax, rax, 274877907
	shr	rax, 32
	sar	eax, 6
	mov	ecx, edx
	sar	ecx, 31
	sub	eax, ecx
	imul	ecx, eax, 1000
	mov	eax, edx
	sub	eax, ecx
	mov	edx, DWORD PTR -756[rbp]
	movsx	rcx, edx
	imul	rcx, rcx, 274877907
	shr	rcx, 32
	sar	ecx, 6
	sar	edx, 31
	sub	ecx, edx
	mov	edx, eax
	mov	esi, ecx
	lea	rdi, .LC49[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rdi, .LC50[rip]
	call	puts@PLT
	lea	rdi, .LC39[rip]
	call	puts@PLT
	mov	edx, DWORD PTR -756[rbp]
	movsx	rax, edx
	imul	rax, rax, 274877907
	shr	rax, 32
	sar	eax, 6
	mov	ecx, edx
	sar	ecx, 31
	sub	eax, ecx
	imul	ecx, eax, 1000
	mov	eax, edx
	sub	eax, ecx
	mov	edx, DWORD PTR -756[rbp]
	movsx	rcx, edx
	imul	rcx, rcx, 274877907
	shr	rcx, 32
	sar	ecx, 6
	mov	esi, edx
	sar	esi, 31
	sub	ecx, esi
	mov	edx, ecx
	lea	rdi, -608[rbp]
	mov	ecx, eax
	lea	rsi, .LC51[rip]
	mov	eax, 0
	call	sprintf@PLT
	lea	rax, -608[rbp]
	mov	rdi, rax
	call	atof@PLT
	movq	rax, xmm0
	mov	QWORD PTR -688[rbp], rax
	mov	DWORD PTR -776[rbp], 1
	jmp	.L160
.L163:
	mov	ecx, DWORD PTR SIZE[rip]
	mov	esi, DWORD PTR -776[rbp]
	lea	rdx, -272[rbp]
	lea	rax, -160[rbp]
	mov	r8d, esi
	lea	rsi, .LC38[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	lea	rax, -160[rbp]
	mov	esi, 66
	mov	rdi, rax
	mov	eax, 0
	call	open@PLT
	mov	DWORD PTR -752[rbp], eax
	lea	rcx, -384[rbp]
	mov	eax, DWORD PTR -752[rbp]
	mov	edx, 100
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	lea	rax, -384[rbp]
	mov	rdi, rax
	call	atof@PLT
	movq	rax, xmm0
	mov	edx, DWORD PTR -776[rbp]
	movsx	rdx, edx
	mov	QWORD PTR -688[rbp+rdx*8], rax
	mov	eax, DWORD PTR -776[rbp]
	cdqe
	movsd	xmm1, QWORD PTR -688[rbp+rax*8]
	movsd	xmm0, QWORD PTR .LC52[rip]
	comisd	xmm0, xmm1
	jbe	.L161
	mov	eax, DWORD PTR -776[rbp]
	cdqe
	movsd	xmm0, QWORD PTR .LC53[rip]
	movsd	QWORD PTR -688[rbp+rax*8], xmm0
.L161:
	add	DWORD PTR -776[rbp], 1
.L160:
	cmp	DWORD PTR -776[rbp], 5
	jle	.L163
	mov	DWORD PTR -776[rbp], 0
	jmp	.L164
.L171:
	mov	eax, DWORD PTR -776[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -688[rbp+rax*8]
	movsd	QWORD PTR -696[rbp], xmm0
	mov	eax, DWORD PTR -776[rbp]
	sub	eax, 1
	mov	DWORD PTR -764[rbp], eax
	jmp	.L165
.L170:
	mov	eax, DWORD PTR -764[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -688[rbp+rax*8]
	comisd	xmm0, QWORD PTR -696[rbp]
	ja	.L214
	jmp	.L169
.L214:
	mov	eax, DWORD PTR -764[rbp]
	lea	edx, 1[rax]
	mov	eax, DWORD PTR -764[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -688[rbp+rax*8]
	movsx	rax, edx
	movsd	QWORD PTR -688[rbp+rax*8], xmm0
	sub	DWORD PTR -764[rbp], 1
.L165:
	cmp	DWORD PTR -764[rbp], 0
	jns	.L170
.L169:
	mov	eax, DWORD PTR -764[rbp]
	add	eax, 1
	cdqe
	movsd	xmm0, QWORD PTR -696[rbp]
	movsd	QWORD PTR -688[rbp+rax*8], xmm0
	add	DWORD PTR -776[rbp], 1
.L164:
	cmp	DWORD PTR -776[rbp], 5
	jle	.L171
	mov	DWORD PTR -776[rbp], 1
	jmp	.L172
.L173:
	mov	ecx, DWORD PTR SIZE[rip]
	mov	esi, DWORD PTR -776[rbp]
	lea	rdx, -272[rbp]
	lea	rax, -160[rbp]
	mov	r8d, esi
	lea	rsi, .LC38[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	lea	rax, -160[rbp]
	mov	esi, 66
	mov	rdi, rax
	mov	eax, 0
	call	open@PLT
	mov	DWORD PTR -772[rbp], eax
	mov	eax, DWORD PTR -776[rbp]
	sub	eax, 1
	cdqe
	mov	rdx, QWORD PTR -688[rbp+rax*8]
	lea	rax, -496[rbp]
	movq	xmm0, rdx
	lea	rsi, .LC54[rip]
	mov	rdi, rax
	mov	eax, 1
	call	sprintf@PLT
	lea	rcx, -496[rbp]
	mov	eax, DWORD PTR -772[rbp]
	mov	edx, 100
	mov	rsi, rcx
	mov	edi, eax
	call	write@PLT
	add	DWORD PTR -776[rbp], 1
.L172:
	cmp	DWORD PTR -776[rbp], 5
	jle	.L173
	mov	edi, 10
	call	putchar@PLT
	mov	DWORD PTR -776[rbp], 1
	jmp	.L174
.L175:
	mov	ecx, DWORD PTR SIZE[rip]
	mov	esi, DWORD PTR -776[rbp]
	lea	rdx, -272[rbp]
	lea	rax, -160[rbp]
	mov	r8d, esi
	lea	rsi, .LC38[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	lea	rax, -160[rbp]
	mov	esi, 66
	mov	rdi, rax
	mov	eax, 0
	call	open@PLT
	mov	DWORD PTR -752[rbp], eax
	lea	rcx, -384[rbp]
	mov	eax, DWORD PTR -752[rbp]
	mov	edx, 100
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	lea	rdx, -384[rbp]
	mov	eax, DWORD PTR -776[rbp]
	mov	esi, eax
	lea	rdi, .LC55[rip]
	mov	eax, 0
	call	printf@PLT
	add	DWORD PTR -776[rbp], 1
.L174:
	cmp	DWORD PTR -776[rbp], 5
	jle	.L175
	jmp	.L158
.L159:
	movzx	eax, BYTE PTR goal[rip]
	test	al, al
	je	.L176
	movzx	eax, BYTE PTR goal2[rip]
	test	al, al
	je	.L176
	mov	eax, 0
	call	myclock
	mov	edx, DWORD PTR -768[rbp]
	sub	eax, edx
	mov	DWORD PTR -756[rbp], eax
	mov	edx, DWORD PTR -756[rbp]
	movsx	rax, edx
	imul	rax, rax, 274877907
	shr	rax, 32
	sar	eax, 6
	mov	ecx, edx
	sar	ecx, 31
	sub	eax, ecx
	imul	ecx, eax, 1000
	mov	eax, edx
	sub	eax, ecx
	mov	edx, DWORD PTR -756[rbp]
	movsx	rcx, edx
	imul	rcx, rcx, 274877907
	shr	rcx, 32
	sar	ecx, 6
	sar	edx, 31
	sub	ecx, edx
	mov	edx, eax
	mov	esi, ecx
	lea	rdi, .LC49[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rdi, .LC56[rip]
	call	puts@PLT
	lea	rdi, .LC39[rip]
	call	puts@PLT
	mov	edx, DWORD PTR -756[rbp]
	movsx	rax, edx
	imul	rax, rax, 274877907
	shr	rax, 32
	sar	eax, 6
	mov	ecx, edx
	sar	ecx, 31
	sub	eax, ecx
	imul	ecx, eax, 1000
	mov	eax, edx
	sub	eax, ecx
	mov	edx, DWORD PTR -756[rbp]
	movsx	rcx, edx
	imul	rcx, rcx, 274877907
	shr	rcx, 32
	sar	ecx, 6
	mov	esi, edx
	sar	esi, 31
	sub	ecx, esi
	mov	edx, ecx
	lea	rdi, -608[rbp]
	mov	ecx, eax
	lea	rsi, .LC51[rip]
	mov	eax, 0
	call	sprintf@PLT
	lea	rax, -608[rbp]
	mov	rdi, rax
	call	atof@PLT
	movq	rax, xmm0
	mov	QWORD PTR -688[rbp], rax
	mov	DWORD PTR -776[rbp], 1
	jmp	.L177
.L180:
	mov	ecx, DWORD PTR SIZE[rip]
	mov	esi, DWORD PTR -776[rbp]
	lea	rdx, -272[rbp]
	lea	rax, -160[rbp]
	mov	r8d, esi
	lea	rsi, .LC38[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	lea	rax, -160[rbp]
	mov	esi, 66
	mov	rdi, rax
	mov	eax, 0
	call	open@PLT
	mov	DWORD PTR -752[rbp], eax
	lea	rcx, -384[rbp]
	mov	eax, DWORD PTR -752[rbp]
	mov	edx, 100
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	lea	rax, -384[rbp]
	mov	rdi, rax
	call	atof@PLT
	movq	rax, xmm0
	mov	edx, DWORD PTR -776[rbp]
	movsx	rdx, edx
	mov	QWORD PTR -688[rbp+rdx*8], rax
	mov	eax, DWORD PTR -776[rbp]
	cdqe
	movsd	xmm1, QWORD PTR -688[rbp+rax*8]
	movsd	xmm0, QWORD PTR .LC52[rip]
	comisd	xmm0, xmm1
	jbe	.L178
	mov	eax, DWORD PTR -776[rbp]
	cdqe
	movsd	xmm0, QWORD PTR .LC53[rip]
	movsd	QWORD PTR -688[rbp+rax*8], xmm0
.L178:
	add	DWORD PTR -776[rbp], 1
.L177:
	cmp	DWORD PTR -776[rbp], 5
	jle	.L180
	mov	DWORD PTR -776[rbp], 0
	jmp	.L181
.L188:
	mov	eax, DWORD PTR -776[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -688[rbp+rax*8]
	movsd	QWORD PTR -696[rbp], xmm0
	mov	eax, DWORD PTR -776[rbp]
	sub	eax, 1
	mov	DWORD PTR -764[rbp], eax
	jmp	.L182
.L187:
	mov	eax, DWORD PTR -764[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -688[rbp+rax*8]
	comisd	xmm0, QWORD PTR -696[rbp]
	ja	.L216
	jmp	.L186
.L216:
	mov	eax, DWORD PTR -764[rbp]
	lea	edx, 1[rax]
	mov	eax, DWORD PTR -764[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -688[rbp+rax*8]
	movsx	rax, edx
	movsd	QWORD PTR -688[rbp+rax*8], xmm0
	sub	DWORD PTR -764[rbp], 1
.L182:
	cmp	DWORD PTR -764[rbp], 0
	jns	.L187
.L186:
	mov	eax, DWORD PTR -764[rbp]
	add	eax, 1
	cdqe
	movsd	xmm0, QWORD PTR -696[rbp]
	movsd	QWORD PTR -688[rbp+rax*8], xmm0
	add	DWORD PTR -776[rbp], 1
.L181:
	cmp	DWORD PTR -776[rbp], 5
	jle	.L188
	mov	DWORD PTR -776[rbp], 1
	jmp	.L189
.L190:
	mov	ecx, DWORD PTR SIZE[rip]
	mov	esi, DWORD PTR -776[rbp]
	lea	rdx, -272[rbp]
	lea	rax, -160[rbp]
	mov	r8d, esi
	lea	rsi, .LC38[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	lea	rax, -160[rbp]
	mov	esi, 66
	mov	rdi, rax
	mov	eax, 0
	call	open@PLT
	mov	DWORD PTR -772[rbp], eax
	mov	eax, DWORD PTR -776[rbp]
	sub	eax, 1
	cdqe
	mov	rdx, QWORD PTR -688[rbp+rax*8]
	lea	rax, -496[rbp]
	movq	xmm0, rdx
	lea	rsi, .LC54[rip]
	mov	rdi, rax
	mov	eax, 1
	call	sprintf@PLT
	lea	rcx, -496[rbp]
	mov	eax, DWORD PTR -772[rbp]
	mov	edx, 100
	mov	rsi, rcx
	mov	edi, eax
	call	write@PLT
	add	DWORD PTR -776[rbp], 1
.L189:
	cmp	DWORD PTR -776[rbp], 5
	jle	.L190
	mov	edi, 10
	call	putchar@PLT
	mov	DWORD PTR -776[rbp], 1
	jmp	.L191
.L192:
	mov	ecx, DWORD PTR SIZE[rip]
	mov	esi, DWORD PTR -776[rbp]
	lea	rdx, -272[rbp]
	lea	rax, -160[rbp]
	mov	r8d, esi
	lea	rsi, .LC38[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	lea	rax, -160[rbp]
	mov	esi, 66
	mov	rdi, rax
	mov	eax, 0
	call	open@PLT
	mov	DWORD PTR -752[rbp], eax
	lea	rcx, -384[rbp]
	mov	eax, DWORD PTR -752[rbp]
	mov	edx, 100
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	lea	rdx, -384[rbp]
	mov	eax, DWORD PTR -776[rbp]
	mov	esi, eax
	lea	rdi, .LC55[rip]
	mov	eax, 0
	call	printf@PLT
	add	DWORD PTR -776[rbp], 1
.L191:
	cmp	DWORD PTR -776[rbp], 5
	jle	.L192
	jmp	.L158
.L176:
	mov	BYTE PTR goal1[rip], 0
	mov	BYTE PTR goal2[rip], 0
	movsx	eax, BYTE PTR -789[rbp]
	sub	eax, 65
	cmp	eax, 54
	ja	.L193
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L195[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L195[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L195:
	.long	.L202-.L195
	.long	.L201-.L195
	.long	.L200-.L195
	.long	.L199-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L198-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L197-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L196-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L193-.L195
	.long	.L194-.L195
	.text
.L198:
	mov	rax, QWORD PTR -728[rbp]
	mov	rdi, rax
	call	moveLeft
	mov	BYTE PTR -790[rbp], al
	mov	BYTE PTR -791[rbp], 0
	mov	BYTE PTR goal1[rip], 1
	jmp	.L203
.L199:
	mov	eax, DWORD PTR -784[rbp]
	cmp	eax, 2
	jne	.L197
	mov	rax, QWORD PTR -704[rbp]
	mov	rdi, rax
	call	moveLeft
	mov	BYTE PTR -791[rbp], al
	mov	BYTE PTR -790[rbp], 0
	mov	BYTE PTR goal2[rip], 1
	jmp	.L203
.L197:
	mov	rax, QWORD PTR -728[rbp]
	mov	rdi, rax
	call	moveRight
	mov	BYTE PTR -790[rbp], al
	mov	BYTE PTR -791[rbp], 0
	mov	BYTE PTR goal1[rip], 1
	jmp	.L203
.L200:
	mov	eax, DWORD PTR -784[rbp]
	cmp	eax, 2
	jne	.L194
	mov	rax, QWORD PTR -704[rbp]
	mov	rdi, rax
	call	moveRight
	mov	BYTE PTR -791[rbp], al
	mov	BYTE PTR -790[rbp], 0
	mov	BYTE PTR goal2[rip], 1
	jmp	.L203
.L194:
	mov	rax, QWORD PTR -728[rbp]
	mov	rdi, rax
	call	moveUp
	mov	BYTE PTR -790[rbp], al
	mov	BYTE PTR -791[rbp], 0
	mov	BYTE PTR goal1[rip], 1
	jmp	.L203
.L202:
	mov	eax, DWORD PTR -784[rbp]
	cmp	eax, 2
	jne	.L196
	mov	rax, QWORD PTR -704[rbp]
	mov	rdi, rax
	call	moveUp
	mov	BYTE PTR -791[rbp], al
	mov	BYTE PTR -790[rbp], 0
	mov	BYTE PTR goal2[rip], 1
	jmp	.L203
.L196:
	mov	rax, QWORD PTR -728[rbp]
	mov	rdi, rax
	call	moveDown
	mov	BYTE PTR -790[rbp], al
	mov	BYTE PTR -791[rbp], 0
	mov	BYTE PTR goal1[rip], 1
	jmp	.L203
.L201:
	mov	eax, DWORD PTR -784[rbp]
	cmp	eax, 2
	jne	.L193
	mov	rax, QWORD PTR -704[rbp]
	mov	rdi, rax
	call	moveDown
	mov	BYTE PTR -791[rbp], al
	mov	BYTE PTR -790[rbp], 0
	mov	BYTE PTR goal2[rip], 1
	jmp	.L203
.L193:
	mov	BYTE PTR -790[rbp], 0
	mov	BYTE PTR -791[rbp], 0
.L203:
	cmp	BYTE PTR -790[rbp], 0
	je	.L204
	mov	rax, QWORD PTR -728[rbp]
	mov	rdi, rax
	call	drawBoard
	mov	edi, 150000
	call	usleep@PLT
	mov	rax, QWORD PTR -728[rbp]
	mov	rdi, rax
	call	addRandom
	mov	rax, QWORD PTR -728[rbp]
	mov	rdi, rax
	call	drawBoard
	mov	rax, QWORD PTR -728[rbp]
	mov	rdi, rax
	call	gameEnded
	test	al, al
	je	.L204
	mov	eax, 0
	call	myclock
	mov	edx, DWORD PTR -768[rbp]
	sub	eax, edx
	mov	DWORD PTR -756[rbp], eax
	mov	edx, DWORD PTR -756[rbp]
	movsx	rax, edx
	imul	rax, rax, 274877907
	shr	rax, 32
	sar	eax, 6
	mov	ecx, edx
	sar	ecx, 31
	sub	eax, ecx
	imul	ecx, eax, 1000
	mov	eax, edx
	sub	eax, ecx
	mov	edx, DWORD PTR -756[rbp]
	movsx	rcx, edx
	imul	rcx, rcx, 274877907
	shr	rcx, 32
	sar	ecx, 6
	sar	edx, 31
	sub	ecx, edx
	mov	edx, eax
	mov	esi, ecx
	lea	rdi, .LC57[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rdi, .LC58[rip]
	call	puts@PLT
	jmp	.L158
.L204:
	cmp	BYTE PTR -791[rbp], 0
	je	.L205
	mov	rax, QWORD PTR -704[rbp]
	mov	rdi, rax
	call	drawBoard2
	mov	edi, 150000
	call	usleep@PLT
	mov	rax, QWORD PTR -728[rbp]
	mov	rdi, rax
	call	addRandom
	mov	rax, QWORD PTR -704[rbp]
	mov	rdi, rax
	call	drawBoard2
	mov	rax, QWORD PTR -704[rbp]
	mov	rdi, rax
	call	gameEnded
	test	al, al
	je	.L205
	lea	rdi, .LC59[rip]
	call	puts@PLT
	jmp	.L158
.L205:
	cmp	BYTE PTR -789[rbp], 113
	jne	.L206
	lea	rdi, .LC60[rip]
	call	puts@PLT
	call	getchar@PLT
	mov	BYTE PTR -789[rbp], al
	cmp	BYTE PTR -789[rbp], 121
	je	.L219
	mov	rax, QWORD PTR -728[rbp]
	mov	rdi, rax
	call	drawBoard
.L206:
	cmp	BYTE PTR -789[rbp], 114
	jne	.L210
	lea	rdi, .LC61[rip]
	call	puts@PLT
	call	getchar@PLT
	mov	BYTE PTR -789[rbp], al
	cmp	BYTE PTR -789[rbp], 121
	jne	.L209
	mov	rax, QWORD PTR -728[rbp]
	mov	rdi, rax
	call	initBoard
.L209:
	mov	rax, QWORD PTR -728[rbp]
	mov	rdi, rax
	call	drawBoard
	jmp	.L210
.L219:
	nop
.L158:
	mov	edi, 1
	call	setBufferedInput
	lea	rdi, .LC19[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, DWORD PTR -772[rbp]
	mov	edi, eax
	call	close@PLT
	mov	eax, 0
.L150:
	mov	rsp, QWORD PTR -904[rbp]
	mov	rbx, QWORD PTR -56[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L212
	call	__stack_chk_fail@PLT
.L212:
	lea	rsp, -40[rbp]
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	main, .-main
	.local	initialized.2
	.comm	initialized.2,1,1
	.data
	.type	enabled.1, @object
	.size	enabled.1, 1
enabled.1:
	.byte	1
	.local	old.0
	.comm	old.0,60,32
	.section	.rodata
	.align 8
.LC52:
	.long	0
	.long	1072693248
	.align 8
.LC53:
	.long	0
	.long	1086556160
	.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	"874723.c"
	.text
	.comm	SIZE,4,4
	.global	set_time
	.data
	.type	set_time, %object
	.size	set_time, 1
set_time:
	.byte	1
	.comm	goal,1,1
	.comm	goal1,1,1
	.comm	goal2,1,1
	.global	score
	.bss
	.align	2
	.type	score, %object
	.size	score, 4
score:
	.space	4
	.global	scheme
	.type	scheme, %object
	.size	scheme, 1
scheme:
	.space	1
	.section	.rodata
	.align	2
.LC3:
	.ascii	"\033[38;5;%d;48;5;%dm\000"
	.align	2
.LC0:
	.ascii	"\010\377\001\377\002\377\003\377\004\377\005\377\006"
	.ascii	"\377\007\377\011\000\012\000\013\000\014\000\015\000"
	.ascii	"\016\000\377\000\377\000"
	.align	2
.LC1:
	.ascii	"\350\377\352\377\354\377\356\377\360\377\362\377\364"
	.ascii	"\377\366\000\370\000\371\000\372\000\373\000\374\000"
	.ascii	"\375\000\376\000\377\000"
	.align	2
.LC2:
	.ascii	"\353\377?\3779\377]\377\201\377\245\377\311\377\310"
	.ascii	"\377\307\377\306\377\305\377\304\377\304\377\304\377"
	.ascii	"\304\377\304\377"
	.align	2
.LC4:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	getColor
	.syntax unified
	.arm
	.fpu softvfp
	.type	getColor, %function
getColor:
	@ args = 0, pretend = 0, frame = 136
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #144
	mov	r3, r0
	str	r1, [fp, #-132]
	str	r2, [fp, #-136]
	strb	r3, [fp, #-125]
	ldr	r3, .L6
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L6+4
	sub	ip, fp, #104
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	ldr	r3, .L6+8
	sub	ip, fp, #72
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	ldr	r3, .L6+12
	sub	ip, fp, #40
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	sub	r3, fp, #104
	str	r3, [fp, #-116]
	sub	r3, fp, #72
	str	r3, [fp, #-112]
	sub	r3, fp, #40
	str	r3, [fp, #-108]
	ldr	r3, .L6+16
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-112]
	str	r3, [fp, #-124]
	ldr	r3, .L6+16
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-112]
	add	r3, r3, #1
	str	r3, [fp, #-120]
	ldrb	r3, [fp, #-125]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2
	b	.L3
.L4:
	ldr	r3, [fp, #-124]
	add	r2, r3, #2
	ldr	r3, .L6+16
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #2
	sub	r1, fp, #4
	add	r3, r1, r3
	ldr	r3, [r3, #-112]
	add	r3, r3, #32
	cmp	r2, r3
	bcs	.L3
	ldr	r3, [fp, #-124]
	add	r3, r3, #2
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-120]
	add	r3, r3, #2
	str	r3, [fp, #-120]
.L3:
	ldrb	r3, [fp, #-125]	@ zero_extendqisi2
	sub	r2, r3, #1
	strb	r2, [fp, #-125]
	cmp	r3, #0
	bne	.L4
.L2:
	ldr	r3, [fp, #-120]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-124]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, .L6+20
	ldr	r1, [fp, #-136]
	ldr	r0, [fp, #-132]
	bl	snprintf
	nop
	ldr	r3, .L6
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L5
	bl	__stack_chk_fail
.L5:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L7:
	.align	2
.L6:
	.word	.LC4
	.word	.LC0
	.word	.LC1
	.word	.LC2
	.word	scheme
	.word	.LC3
	.size	getColor, .-getColor
	.section	.rodata
	.align	2
.LC5:
	.ascii	"\033[H\000"
	.align	2
.LC6:
	.ascii	"1P %21d pts\012\012\000"
	.align	2
.LC7:
	.ascii	"%s\000"
	.align	2
.LC8:
	.ascii	"       \000"
	.align	2
.LC9:
	.ascii	"%u\000"
	.align	2
.LC10:
	.ascii	"\000"
	.align	2
.LC11:
	.ascii	"%*s%s%*s\000"
	.align	2
.LC12:
	.ascii	"   \302\267   \000"
	.align	2
.LC13:
	.ascii	"        a,w,d,s or q        \000"
	.align	2
.LC14:
	.ascii	"\033[A\000"
	.align	2
.LC15:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	drawBoard
	.syntax unified
	.arm
	.fpu softvfp
	.type	drawBoard, %function
drawBoard:
	@ args = 0, pretend = 0, frame = 72
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #84
	str	r0, [fp, #-80]
	ldr	r3, .L20
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, .L20+4
	ldr	r4, [r3]
	sub	r3, r4, #1
	str	r3, [fp, #-72]
	mov	r3, r4
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	ldr	r3, .L20+8
	str	r3, [fp, #-68]
	ldr	r0, .L20+12
	bl	printf
	ldr	r3, .L20+16
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L20+20
	bl	printf
	mov	r3, #0
	strb	r3, [fp, #-74]
	b	.L9
.L18:
	mov	r3, #0
	strb	r3, [fp, #-75]
	b	.L10
.L11:
	ldrb	r3, [fp, #-75]	@ zero_extendqisi2
	mov	r2, r4
	mul	r3, r2, r3
	ldr	r2, [fp, #-80]
	add	r2, r2, r3
	ldrb	r3, [fp, #-74]	@ zero_extendqisi2
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	sub	r1, fp, #56
	mov	r2, #40
	mov	r0, r3
	bl	getColor
	sub	r3, fp, #56
	mov	r1, r3
	ldr	r0, .L20+24
	bl	printf
	ldr	r0, .L20+28
	bl	printf
	sub	r3, fp, #68
	mov	r1, r3
	ldr	r0, .L20+24
	bl	printf
	ldrb	r3, [fp, #-75]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-75]
.L10:
	ldrb	r2, [fp, #-75]	@ zero_extendqisi2
	ldr	r3, .L20+4
	ldr	r3, [r3]
	cmp	r2, r3
	blt	.L11
	mov	r0, #10
	bl	putchar
	mov	r3, #0
	strb	r3, [fp, #-75]
	b	.L12
.L15:
	ldrb	r3, [fp, #-75]	@ zero_extendqisi2
	mov	r2, r4
	mul	r3, r2, r3
	ldr	r2, [fp, #-80]
	add	r2, r2, r3
	ldrb	r3, [fp, #-74]	@ zero_extendqisi2
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	sub	r1, fp, #56
	mov	r2, #40
	mov	r0, r3
	bl	getColor
	sub	r3, fp, #56
	mov	r1, r3
	ldr	r0, .L20+24
	bl	printf
	ldrb	r3, [fp, #-75]	@ zero_extendqisi2
	mov	r2, r4
	mul	r3, r2, r3
	ldr	r2, [fp, #-80]
	add	r2, r2, r3
	ldrb	r3, [fp, #-74]	@ zero_extendqisi2
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L13
	ldrb	r3, [fp, #-75]	@ zero_extendqisi2
	mov	r2, r4
	mul	r3, r2, r3
	ldr	r2, [fp, #-80]
	add	r2, r2, r3
	ldrb	r3, [fp, #-74]	@ zero_extendqisi2
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, #1
	lsl	r3, r3, r2
	sub	r0, fp, #64
	ldr	r2, .L20+32
	mov	r1, #8
	bl	snprintf
	sub	r3, fp, #64
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	and	r3, r3, #255
	rsb	r3, r3, #7
	strb	r3, [fp, #-73]
	ldrb	r3, [fp, #-73]	@ zero_extendqisi2
	ldrb	r2, [fp, #-73]	@ zero_extendqisi2
	lsr	r2, r2, #1
	and	r2, r2, #255
	sub	r1, r3, r2
	ldrb	r3, [fp, #-73]	@ zero_extendqisi2
	lsr	r3, r3, #1
	and	r3, r3, #255
	mov	r0, r3
	sub	r3, fp, #64
	ldr	r2, .L20+36
	str	r2, [sp, #4]
	str	r0, [sp]
	ldr	r2, .L20+36
	ldr	r0, .L20+40
	bl	printf
	b	.L14
.L13:
	ldr	r0, .L20+44
	bl	printf
.L14:
	sub	r3, fp, #68
	mov	r1, r3
	ldr	r0, .L20+24
	bl	printf
	ldrb	r3, [fp, #-75]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-75]
.L12:
	ldrb	r2, [fp, #-75]	@ zero_extendqisi2
	ldr	r3, .L20+4
	ldr	r3, [r3]
	cmp	r2, r3
	blt	.L15
	mov	r0, #10
	bl	putchar
	mov	r3, #0
	strb	r3, [fp, #-75]
	b	.L16
.L17:
	ldrb	r3, [fp, #-75]	@ zero_extendqisi2
	mov	r2, r4
	mul	r3, r2, r3
	ldr	r2, [fp, #-80]
	add	r2, r2, r3
	ldrb	r3, [fp, #-74]	@ zero_extendqisi2
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	sub	r1, fp, #56
	mov	r2, #40
	mov	r0, r3
	bl	getColor
	sub	r3, fp, #56
	mov	r1, r3
	ldr	r0, .L20+24
	bl	printf
	ldr	r0, .L20+28
	bl	printf
	sub	r3, fp, #68
	mov	r1, r3
	ldr	r0, .L20+24
	bl	printf
	ldrb	r3, [fp, #-75]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-75]
.L16:
	ldrb	r2, [fp, #-75]	@ zero_extendqisi2
	ldr	r3, .L20+4
	ldr	r3, [r3]
	cmp	r2, r3
	blt	.L17
	mov	r0, #10
	bl	putchar
	ldrb	r3, [fp, #-74]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-74]
.L9:
	ldrb	r2, [fp, #-74]	@ zero_extendqisi2
	ldr	r3, .L20+4
	ldr	r3, [r3]
	cmp	r2, r3
	blt	.L18
	mov	r0, #10
	bl	putchar
	ldr	r0, .L20+48
	bl	puts
	ldr	r0, .L20+52
	bl	printf
	nop
	ldr	r3, .L20
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L19
	bl	__stack_chk_fail
.L19:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L21:
	.align	2
.L20:
	.word	.LC15
	.word	SIZE
	.word	7166747
	.word	.LC5
	.word	score
	.word	.LC6
	.word	.LC7
	.word	.LC8
	.word	.LC9
	.word	.LC10
	.word	.LC11
	.word	.LC12
	.word	.LC13
	.word	.LC14
	.size	drawBoard, .-drawBoard
	.section	.rodata
	.align	2
.LC16:
	.ascii	"\011\011\011\011\011\011\0112P %21d pts\012\012\000"
	.align	2
.LC17:
	.ascii	"\011\011\011\011\011\011\011\000"
	.align	2
.LC18:
	.ascii	"        \342\206\220,\342\206\221,\342\206\222,\342"
	.ascii	"\206\223 or q        \000"
	.align	2
.LC19:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	drawBoard2
	.syntax unified
	.arm
	.fpu softvfp
	.type	drawBoard2, %function
drawBoard2:
	@ args = 0, pretend = 0, frame = 72
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #84
	str	r0, [fp, #-80]
	ldr	r3, .L34
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, .L34+4
	ldr	r4, [r3]
	sub	r3, r4, #1
	str	r3, [fp, #-72]
	mov	r3, r4
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	ldr	r3, .L34+8
	str	r3, [fp, #-68]
	ldr	r0, .L34+12
	bl	printf
	ldr	r3, .L34+16
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L34+20
	bl	printf
	mov	r3, #0
	strb	r3, [fp, #-74]
	b	.L23
.L32:
	ldr	r0, .L34+24
	bl	printf
	mov	r3, #0
	strb	r3, [fp, #-75]
	b	.L24
.L25:
	ldrb	r3, [fp, #-75]	@ zero_extendqisi2
	mov	r2, r4
	mul	r3, r2, r3
	ldr	r2, [fp, #-80]
	add	r2, r2, r3
	ldrb	r3, [fp, #-74]	@ zero_extendqisi2
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	sub	r1, fp, #56
	mov	r2, #40
	mov	r0, r3
	bl	getColor
	sub	r3, fp, #56
	mov	r1, r3
	ldr	r0, .L34+28
	bl	printf
	ldr	r0, .L34+32
	bl	printf
	sub	r3, fp, #68
	mov	r1, r3
	ldr	r0, .L34+28
	bl	printf
	ldrb	r3, [fp, #-75]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-75]
.L24:
	ldrb	r2, [fp, #-75]	@ zero_extendqisi2
	ldr	r3, .L34+4
	ldr	r3, [r3]
	cmp	r2, r3
	blt	.L25
	mov	r0, #10
	bl	putchar
	ldr	r0, .L34+24
	bl	printf
	mov	r3, #0
	strb	r3, [fp, #-75]
	b	.L26
.L29:
	ldrb	r3, [fp, #-75]	@ zero_extendqisi2
	mov	r2, r4
	mul	r3, r2, r3
	ldr	r2, [fp, #-80]
	add	r2, r2, r3
	ldrb	r3, [fp, #-74]	@ zero_extendqisi2
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	sub	r1, fp, #56
	mov	r2, #40
	mov	r0, r3
	bl	getColor
	sub	r3, fp, #56
	mov	r1, r3
	ldr	r0, .L34+28
	bl	printf
	ldrb	r3, [fp, #-75]	@ zero_extendqisi2
	mov	r2, r4
	mul	r3, r2, r3
	ldr	r2, [fp, #-80]
	add	r2, r2, r3
	ldrb	r3, [fp, #-74]	@ zero_extendqisi2
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L27
	ldrb	r3, [fp, #-75]	@ zero_extendqisi2
	mov	r2, r4
	mul	r3, r2, r3
	ldr	r2, [fp, #-80]
	add	r2, r2, r3
	ldrb	r3, [fp, #-74]	@ zero_extendqisi2
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, #1
	lsl	r3, r3, r2
	sub	r0, fp, #64
	ldr	r2, .L34+36
	mov	r1, #8
	bl	snprintf
	sub	r3, fp, #64
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	and	r3, r3, #255
	rsb	r3, r3, #7
	strb	r3, [fp, #-73]
	ldrb	r3, [fp, #-73]	@ zero_extendqisi2
	ldrb	r2, [fp, #-73]	@ zero_extendqisi2
	lsr	r2, r2, #1
	and	r2, r2, #255
	sub	r1, r3, r2
	ldrb	r3, [fp, #-73]	@ zero_extendqisi2
	lsr	r3, r3, #1
	and	r3, r3, #255
	mov	r0, r3
	sub	r3, fp, #64
	ldr	r2, .L34+40
	str	r2, [sp, #4]
	str	r0, [sp]
	ldr	r2, .L34+40
	ldr	r0, .L34+44
	bl	printf
	b	.L28
.L27:
	ldr	r0, .L34+48
	bl	printf
.L28:
	sub	r3, fp, #68
	mov	r1, r3
	ldr	r0, .L34+28
	bl	printf
	ldrb	r3, [fp, #-75]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-75]
.L26:
	ldrb	r2, [fp, #-75]	@ zero_extendqisi2
	ldr	r3, .L34+4
	ldr	r3, [r3]
	cmp	r2, r3
	blt	.L29
	mov	r0, #10
	bl	putchar
	ldr	r0, .L34+24
	bl	printf
	mov	r3, #0
	strb	r3, [fp, #-75]
	b	.L30
.L31:
	ldrb	r3, [fp, #-75]	@ zero_extendqisi2
	mov	r2, r4
	mul	r3, r2, r3
	ldr	r2, [fp, #-80]
	add	r2, r2, r3
	ldrb	r3, [fp, #-74]	@ zero_extendqisi2
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	sub	r1, fp, #56
	mov	r2, #40
	mov	r0, r3
	bl	getColor
	sub	r3, fp, #56
	mov	r1, r3
	ldr	r0, .L34+28
	bl	printf
	ldr	r0, .L34+32
	bl	printf
	sub	r3, fp, #68
	mov	r1, r3
	ldr	r0, .L34+28
	bl	printf
	ldrb	r3, [fp, #-75]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-75]
.L30:
	ldrb	r2, [fp, #-75]	@ zero_extendqisi2
	ldr	r3, .L34+4
	ldr	r3, [r3]
	cmp	r2, r3
	blt	.L31
	mov	r0, #10
	bl	putchar
	ldrb	r3, [fp, #-74]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-74]
.L23:
	ldrb	r2, [fp, #-74]	@ zero_extendqisi2
	ldr	r3, .L34+4
	ldr	r3, [r3]
	cmp	r2, r3
	blt	.L32
	mov	r0, #10
	bl	putchar
	ldr	r0, .L34+24
	bl	printf
	ldr	r0, .L34+52
	bl	puts
	ldr	r0, .L34+56
	bl	printf
	nop
	ldr	r3, .L34
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L33
	bl	__stack_chk_fail
.L33:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L35:
	.align	2
.L34:
	.word	.LC19
	.word	SIZE
	.word	7166747
	.word	.LC5
	.word	score
	.word	.LC16
	.word	.LC17
	.word	.LC7
	.word	.LC8
	.word	.LC9
	.word	.LC10
	.word	.LC11
	.word	.LC12
	.word	.LC18
	.word	.LC14
	.size	drawBoard2, .-drawBoard2
	.align	2
	.global	findTarget
	.syntax unified
	.arm
	.fpu softvfp
	.type	findTarget, %function
findTarget:
	@ 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]
	mov	r3, r1
	strb	r3, [fp, #-17]
	mov	r3, r2
	strb	r3, [fp, #-18]
	ldrb	r3, [fp, #-17]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L37
	ldrb	r3, [fp, #-17]	@ zero_extendqisi2
	b	.L38
.L37:
	ldrb	r3, [fp, #-17]
	sub	r3, r3, #1
	strb	r3, [fp, #-5]
.L42:
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L39
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-17]	@ zero_extendqisi2
	ldr	r1, [fp, #-16]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r2, r3
	beq	.L40
	ldrb	r3, [fp, #-5]
	add	r3, r3, #1
	and	r3, r3, #255
	b	.L38
.L40:
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	b	.L38
.L39:
	ldrb	r2, [fp, #-5]	@ zero_extendqisi2
	ldrb	r3, [fp, #-18]	@ zero_extendqisi2
	cmp	r2, r3
	bne	.L41
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	b	.L38
.L41:
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	sub	r3, r3, #1
	strb	r3, [fp, #-5]
	b	.L42
.L38:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	findTarget, .-findTarget
	.align	2
	.global	slideArray
	.syntax unified
	.arm
	.fpu softvfp
	.type	slideArray, %function
slideArray:
	@ 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
	strb	r3, [fp, #-8]
	mov	r3, #0
	strb	r3, [fp, #-6]
	mov	r3, #0
	strb	r3, [fp, #-7]
	b	.L44
.L49:
	ldrb	r3, [fp, #-7]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L45
	ldrb	r2, [fp, #-6]	@ zero_extendqisi2
	ldrb	r3, [fp, #-7]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	findTarget
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r2, [fp, #-5]	@ zero_extendqisi2
	ldrb	r3, [fp, #-7]	@ zero_extendqisi2
	cmp	r2, r3
	beq	.L45
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L46
	ldrb	r3, [fp, #-7]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r2, r2, r3
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	ldr	r1, [fp, #-16]
	add	r3, r1, r3
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	b	.L47
.L46:
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-7]	@ zero_extendqisi2
	ldr	r1, [fp, #-16]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r2, r3
	bne	.L47
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	add	r2, r2, #1
	and	r2, r2, #255
	strb	r2, [r3]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, #1
	lsl	r2, r3, r2
	ldr	r3, .L51
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L51
	str	r3, [r2]
	ldr	r3, .L51
	ldr	r3, [r3]
	cmp	r3, #4000
	bcc	.L48
	ldr	r3, .L51+4
	mov	r2, #1
	strb	r2, [r3]
.L48:
	ldrb	r3, [fp, #-5]
	add	r3, r3, #1
	strb	r3, [fp, #-6]
.L47:
	ldrb	r3, [fp, #-7]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	mov	r3, #1
	strb	r3, [fp, #-8]
.L45:
	ldrb	r3, [fp, #-7]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-7]
.L44:
	ldrb	r2, [fp, #-7]	@ zero_extendqisi2
	ldr	r3, .L51+8
	ldr	r3, [r3]
	cmp	r2, r3
	blt	.L49
	ldrb	r3, [fp, #-8]	@ zero_extendqisi2
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L52:
	.align	2
.L51:
	.word	score
	.word	goal
	.word	SIZE
	.size	slideArray, .-slideArray
	.align	2
	.global	rotateBoard
	.syntax unified
	.arm
	.fpu softvfp
	.type	rotateBoard, %function
rotateBoard:
	@ 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, .L58
	ldr	ip, [r3]
	sub	r3, ip, #1
	str	r3, [fp, #-8]
	mov	r3, ip
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	ldr	r3, .L58
	ldr	r3, [r3]
	strb	r3, [fp, #-10]
	mov	r3, #0
	strb	r3, [fp, #-11]
	b	.L54
.L57:
	ldrb	r3, [fp, #-11]
	strb	r3, [fp, #-12]
	b	.L55
.L56:
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	mov	r2, ip
	mul	r3, r2, r3
	ldr	r2, [fp, #-16]
	add	r2, r2, r3
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	ldrb	r3, [r2, r3]
	strb	r3, [fp, #-9]
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	mov	r2, ip
	mul	r3, r2, r3
	ldr	r2, [fp, #-16]
	add	r0, r2, r3
	ldrb	r2, [fp, #-10]	@ zero_extendqisi2
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	sub	r3, r2, r3
	sub	r1, r3, #1
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	mov	r2, ip
	mul	r3, r2, r3
	ldr	r2, [fp, #-16]
	add	r2, r2, r3
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	ldrb	r1, [r0, r1]	@ zero_extendqisi2
	strb	r1, [r2, r3]
	ldrb	r2, [fp, #-10]	@ zero_extendqisi2
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	sub	r3, r2, r3
	sub	r3, r3, #1
	mov	r2, ip
	mul	r3, r2, r3
	ldr	r2, [fp, #-16]
	add	r0, r2, r3
	ldrb	r2, [fp, #-10]	@ zero_extendqisi2
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	sub	r3, r2, r3
	sub	r1, r3, #1
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	mov	r2, ip
	mul	r3, r2, r3
	ldr	r2, [fp, #-16]
	add	r2, r2, r3
	ldrb	lr, [fp, #-10]	@ zero_extendqisi2
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	sub	r3, lr, r3
	sub	r3, r3, #1
	ldrb	r1, [r0, r1]	@ zero_extendqisi2
	strb	r1, [r2, r3]
	ldrb	r2, [fp, #-10]	@ zero_extendqisi2
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	sub	r3, r2, r3
	sub	r3, r3, #1
	mov	r2, ip
	mul	r3, r2, r3
	ldr	r2, [fp, #-16]
	add	r0, r2, r3
	ldrb	r1, [fp, #-11]	@ zero_extendqisi2
	ldrb	r2, [fp, #-10]	@ zero_extendqisi2
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	sub	r3, r2, r3
	sub	r3, r3, #1
	mov	r2, ip
	mul	r3, r2, r3
	ldr	r2, [fp, #-16]
	add	r2, r2, r3
	ldrb	lr, [fp, #-10]	@ zero_extendqisi2
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	sub	r3, lr, r3
	sub	r3, r3, #1
	ldrb	r1, [r0, r1]	@ zero_extendqisi2
	strb	r1, [r2, r3]
	ldrb	r2, [fp, #-10]	@ zero_extendqisi2
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	sub	r3, r2, r3
	sub	r3, r3, #1
	mov	r2, ip
	mul	r3, r2, r3
	ldr	r2, [fp, #-16]
	add	r2, r2, r3
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	ldrb	r1, [fp, #-9]
	strb	r1, [r2, r3]
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-12]
.L55:
	ldrb	r2, [fp, #-12]	@ zero_extendqisi2
	ldrb	r1, [fp, #-10]	@ zero_extendqisi2
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	sub	r3, r1, r3
	sub	r3, r3, #1
	cmp	r2, r3
	blt	.L56
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-11]
.L54:
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	lsr	r3, r3, #1
	and	r3, r3, #255
	ldrb	r2, [fp, #-11]	@ zero_extendqisi2
	cmp	r2, r3
	bcc	.L57
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L59:
	.align	2
.L58:
	.word	SIZE
	.size	rotateBoard, .-rotateBoard
	.align	2
	.global	moveUp
	.syntax unified
	.arm
	.fpu softvfp
	.type	moveUp, %function
moveUp:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #20
	str	r0, [fp, #-24]
	ldr	r3, .L64
	ldr	r4, [r3]
	sub	r3, r4, #1
	str	r3, [fp, #-16]
	mov	r3, r4
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, #0
	strb	r3, [fp, #-17]
	mov	r3, #0
	strb	r3, [fp, #-18]
	b	.L61
.L62:
	ldrb	r3, [fp, #-18]	@ zero_extendqisi2
	mov	r2, r4
	mul	r3, r2, r3
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	mov	r0, r3
	bl	slideArray
	mov	r3, r0
	mov	r2, r3
	ldrb	r3, [fp, #-17]
	orr	r3, r2, r3
	and	r3, r3, #255
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	strb	r3, [fp, #-17]
	ldrb	r3, [fp, #-18]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-18]
.L61:
	ldrb	r2, [fp, #-18]	@ zero_extendqisi2
	ldr	r3, .L64
	ldr	r3, [r3]
	cmp	r2, r3
	blt	.L62
	ldrb	r3, [fp, #-17]	@ zero_extendqisi2
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L65:
	.align	2
.L64:
	.word	SIZE
	.size	moveUp, .-moveUp
	.align	2
	.global	moveLeft
	.syntax unified
	.arm
	.fpu softvfp
	.type	moveLeft, %function
moveLeft:
	@ 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, .L68
	ldr	r3, [r3]
	sub	r2, r3, #1
	str	r2, [fp, #-8]
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	ldr	r0, [fp, #-16]
	bl	rotateBoard
	ldr	r0, [fp, #-16]
	bl	moveUp
	mov	r3, r0
	strb	r3, [fp, #-9]
	ldr	r0, [fp, #-16]
	bl	rotateBoard
	ldr	r0, [fp, #-16]
	bl	rotateBoard
	ldr	r0, [fp, #-16]
	bl	rotateBoard
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L69:
	.align	2
.L68:
	.word	SIZE
	.size	moveLeft, .-moveLeft
	.align	2
	.global	moveDown
	.syntax unified
	.arm
	.fpu softvfp
	.type	moveDown, %function
moveDown:
	@ 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, .L72
	ldr	r3, [r3]
	sub	r2, r3, #1
	str	r2, [fp, #-8]
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	ldr	r0, [fp, #-16]
	bl	rotateBoard
	ldr	r0, [fp, #-16]
	bl	rotateBoard
	ldr	r0, [fp, #-16]
	bl	moveUp
	mov	r3, r0
	strb	r3, [fp, #-9]
	ldr	r0, [fp, #-16]
	bl	rotateBoard
	ldr	r0, [fp, #-16]
	bl	rotateBoard
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L73:
	.align	2
.L72:
	.word	SIZE
	.size	moveDown, .-moveDown
	.align	2
	.global	moveRight
	.syntax unified
	.arm
	.fpu softvfp
	.type	moveRight, %function
moveRight:
	@ 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, .L76
	ldr	r3, [r3]
	sub	r2, r3, #1
	str	r2, [fp, #-8]
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	ldr	r0, [fp, #-16]
	bl	rotateBoard
	ldr	r0, [fp, #-16]
	bl	rotateBoard
	ldr	r0, [fp, #-16]
	bl	rotateBoard
	ldr	r0, [fp, #-16]
	bl	moveUp
	mov	r3, r0
	strb	r3, [fp, #-9]
	ldr	r0, [fp, #-16]
	bl	rotateBoard
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L77:
	.align	2
.L76:
	.word	SIZE
	.size	moveRight, .-moveRight
	.align	2
	.global	findPairDown
	.syntax unified
	.arm
	.fpu softvfp
	.type	findPairDown, %function
findPairDown:
	@ 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]
	ldr	r3, .L85
	ldr	ip, [r3]
	sub	r3, ip, #1
	str	r3, [fp, #-8]
	mov	r3, ip
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, #0
	strb	r3, [fp, #-9]
	mov	r3, #0
	strb	r3, [fp, #-10]
	b	.L79
.L84:
	mov	r3, #0
	strb	r3, [fp, #-11]
	b	.L80
.L83:
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	mov	r2, ip
	mul	r3, r2, r3
	ldr	r2, [fp, #-16]
	add	r2, r2, r3
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	ldrb	r2, [r2, r3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	mov	r1, ip
	mul	r3, r1, r3
	ldr	r1, [fp, #-16]
	add	r1, r1, r3
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	add	r3, r3, #1
	ldrb	r3, [r1, r3]	@ zero_extendqisi2
	cmp	r2, r3
	bne	.L81
	mov	r3, #1
	b	.L82
.L81:
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-11]
.L80:
	ldrb	r2, [fp, #-11]	@ zero_extendqisi2
	ldr	r3, .L85
	ldr	r3, [r3]
	sub	r3, r3, #1
	cmp	r2, r3
	blt	.L83
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-10]
.L79:
	ldrb	r2, [fp, #-10]	@ zero_extendqisi2
	ldr	r3, .L85
	ldr	r3, [r3]
	cmp	r2, r3
	blt	.L84
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
.L82:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L86:
	.align	2
.L85:
	.word	SIZE
	.size	findPairDown, .-findPairDown
	.align	2
	.global	countEmpty
	.syntax unified
	.arm
	.fpu softvfp
	.type	countEmpty, %function
countEmpty:
	@ 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]
	ldr	r3, .L94
	ldr	ip, [r3]
	sub	r3, ip, #1
	str	r3, [fp, #-8]
	mov	r3, ip
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, #0
	strb	r3, [fp, #-11]
	mov	r3, #0
	strb	r3, [fp, #-9]
	b	.L88
.L92:
	mov	r3, #0
	strb	r3, [fp, #-10]
	b	.L89
.L91:
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r2, ip
	mul	r3, r2, r3
	ldr	r2, [fp, #-16]
	add	r2, r2, r3
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L90
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-11]
.L90:
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-10]
.L89:
	ldrb	r2, [fp, #-10]	@ zero_extendqisi2
	ldr	r3, .L94
	ldr	r3, [r3]
	cmp	r2, r3
	blt	.L91
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-9]
.L88:
	ldrb	r2, [fp, #-9]	@ zero_extendqisi2
	ldr	r3, .L94
	ldr	r3, [r3]
	cmp	r2, r3
	blt	.L92
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L95:
	.align	2
.L94:
	.word	SIZE
	.size	countEmpty, .-countEmpty
	.align	2
	.global	gameEnded
	.syntax unified
	.arm
	.fpu softvfp
	.type	gameEnded, %function
gameEnded:
	@ 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, .L101
	ldr	r3, [r3]
	sub	r2, r3, #1
	str	r2, [fp, #-8]
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, #1
	strb	r3, [fp, #-9]
	ldr	r0, [fp, #-16]
	bl	countEmpty
	mov	r3, r0
	cmp	r3, #0
	beq	.L97
	mov	r3, #0
	b	.L98
.L97:
	ldr	r0, [fp, #-16]
	bl	findPairDown
	mov	r3, r0
	cmp	r3, #0
	beq	.L99
	mov	r3, #0
	b	.L98
.L99:
	ldr	r0, [fp, #-16]
	bl	rotateBoard
	ldr	r0, [fp, #-16]
	bl	findPairDown
	mov	r3, r0
	cmp	r3, #0
	beq	.L100
	mov	r3, #0
	strb	r3, [fp, #-9]
.L100:
	ldr	r0, [fp, #-16]
	bl	rotateBoard
	ldr	r0, [fp, #-16]
	bl	rotateBoard
	ldr	r0, [fp, #-16]
	bl	rotateBoard
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
.L98:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L102:
	.align	2
.L101:
	.word	SIZE
	.size	gameEnded, .-gameEnded
	.global	__aeabi_idivmod
	.section	.rodata
	.align	2
.LC20:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	addRandom
	.syntax unified
	.arm
	.fpu softvfp
	.type	addRandom, %function
addRandom:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #32
	str	r0, [fp, #-40]
	ldr	r3, .L112
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, .L112+4
	ldr	r4, [r3]
	sub	r3, r4, #1
	str	r3, [fp, #-28]
	mov	r3, r4
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, sp
	mov	r5, r3
	mov	r3, #0
	strb	r3, [fp, #-33]
	ldr	r3, .L112+4
	ldr	r3, [r3]
	ldr	r2, .L112+4
	ldr	r2, [r2]
	mul	ip, r2, r3
	sub	r3, ip, #1
	str	r3, [fp, #-24]
	mov	r3, ip
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #4
	orr	r3, r3, r0, lsr #28
	lsl	r2, r0, #4
	mov	r3, ip
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #4
	orr	r3, r3, r0, lsr #28
	lsl	r2, r0, #4
	mov	r3, ip
	lsl	r3, r3, #1
	add	r3, r3, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	sub	sp, sp, r3
	mov	r3, sp
	add	r3, r3, #0
	str	r3, [fp, #-20]
	ldr	r3, .L112+8
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L104
	mov	r0, #0
	bl	time
	mov	r3, r0
	mov	r0, r3
	bl	srand
	ldr	r3, .L112+8
	mov	r2, #1
	strb	r2, [r3]
.L104:
	mov	r3, #0
	strb	r3, [fp, #-31]
	b	.L105
.L109:
	mov	r3, #0
	strb	r3, [fp, #-32]
	b	.L106
.L108:
	ldrb	r3, [fp, #-31]	@ zero_extendqisi2
	mov	r2, r4
	mul	r3, r2, r3
	ldr	r2, [fp, #-40]
	add	r2, r2, r3
	ldrb	r3, [fp, #-32]	@ zero_extendqisi2
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L107
	ldrb	r2, [fp, #-33]	@ zero_extendqisi2
	ldr	r3, [fp, #-20]
	ldrb	r1, [fp, #-31]
	strb	r1, [r3, r2, lsl #1]
	ldrb	r3, [fp, #-33]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrb	r2, [fp, #-32]
	strb	r2, [r3, #1]
	ldrb	r3, [fp, #-33]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-33]
.L107:
	ldrb	r3, [fp, #-32]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-32]
.L106:
	ldrb	r2, [fp, #-32]	@ zero_extendqisi2
	ldr	r3, .L112+4
	ldr	r3, [r3]
	cmp	r2, r3
	blt	.L108
	ldrb	r3, [fp, #-31]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-31]
.L105:
	ldrb	r2, [fp, #-31]	@ zero_extendqisi2
	ldr	r3, .L112+4
	ldr	r3, [r3]
	cmp	r2, r3
	blt	.L109
	ldrb	r3, [fp, #-33]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L110
	bl	rand
	mov	r2, r0
	ldrb	r3, [fp, #-33]	@ zero_extendqisi2
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idivmod
	mov	r3, r1
	strb	r3, [fp, #-30]
	ldrb	r2, [fp, #-30]	@ zero_extendqisi2
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3, r2, lsl #1]
	strb	r3, [fp, #-31]
	ldrb	r3, [fp, #-30]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrb	r3, [r3, #1]
	strb	r3, [fp, #-32]
	bl	rand
	mov	r1, r0
	ldr	r3, .L112+12
	smull	r2, r3, r1, r3
	asr	r2, r3, #2
	asr	r3, r1, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	sub	r2, r1, r3
	ldr	r3, .L112+16
	smull	r1, r3, r2, r3
	asr	r1, r3, #1
	asr	r3, r2, #31
	sub	r3, r1, r3
	and	r3, r3, #255
	add	r3, r3, #1
	strb	r3, [fp, #-29]
	ldrb	r3, [fp, #-31]	@ zero_extendqisi2
	mov	r2, r4
	mul	r3, r2, r3
	ldr	r2, [fp, #-40]
	add	r2, r2, r3
	ldrb	r3, [fp, #-32]	@ zero_extendqisi2
	ldrb	r1, [fp, #-29]
	strb	r1, [r2, r3]
.L110:
	mov	sp, r5
	nop
	ldr	r3, .L112
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L111
	bl	__stack_chk_fail
.L111:
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L113:
	.align	2
.L112:
	.word	.LC20
	.word	SIZE
	.word	initialized.6141
	.word	1717986919
	.word	954437177
	.size	addRandom, .-addRandom
	.align	2
	.global	initBoard
	.syntax unified
	.arm
	.fpu softvfp
	.type	initBoard, %function
initBoard:
	@ 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, .L119
	ldr	ip, [r3]
	sub	r3, ip, #1
	str	r3, [fp, #-8]
	mov	r3, ip
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, #0
	strb	r3, [fp, #-9]
	b	.L115
.L118:
	mov	r3, #0
	strb	r3, [fp, #-10]
	b	.L116
.L117:
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r2, ip
	mul	r3, r2, r3
	ldr	r2, [fp, #-16]
	add	r2, r2, r3
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	mov	r1, #0
	strb	r1, [r2, r3]
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-10]
.L116:
	ldrb	r2, [fp, #-10]	@ zero_extendqisi2
	ldr	r3, .L119
	ldr	r3, [r3]
	cmp	r2, r3
	blt	.L117
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-9]
.L115:
	ldrb	r2, [fp, #-9]	@ zero_extendqisi2
	ldr	r3, .L119
	ldr	r3, [r3]
	cmp	r2, r3
	blt	.L118
	ldr	r0, [fp, #-16]
	bl	addRandom
	ldr	r0, [fp, #-16]
	bl	addRandom
	ldr	r0, [fp, #-16]
	bl	drawBoard
	ldr	r3, .L119+4
	mov	r2, #0
	str	r2, [r3]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L120:
	.align	2
.L119:
	.word	SIZE
	.word	score
	.size	initBoard, .-initBoard
	.align	2
	.global	initBoard2
	.syntax unified
	.arm
	.fpu softvfp
	.type	initBoard2, %function
initBoard2:
	@ 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, .L126
	ldr	ip, [r3]
	sub	r3, ip, #1
	str	r3, [fp, #-8]
	mov	r3, ip
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, #0
	strb	r3, [fp, #-9]
	b	.L122
.L125:
	mov	r3, #0
	strb	r3, [fp, #-10]
	b	.L123
.L124:
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r2, ip
	mul	r3, r2, r3
	ldr	r2, [fp, #-16]
	add	r2, r2, r3
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	mov	r1, #0
	strb	r1, [r2, r3]
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-10]
.L123:
	ldrb	r2, [fp, #-10]	@ zero_extendqisi2
	ldr	r3, .L126
	ldr	r3, [r3]
	cmp	r2, r3
	blt	.L124
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-9]
.L122:
	ldrb	r2, [fp, #-9]	@ zero_extendqisi2
	ldr	r3, .L126
	ldr	r3, [r3]
	cmp	r2, r3
	blt	.L125
	ldr	r0, [fp, #-16]
	bl	addRandom
	ldr	r0, [fp, #-16]
	bl	addRandom
	ldr	r0, [fp, #-16]
	bl	drawBoard2
	ldr	r3, .L126+4
	mov	r2, #0
	str	r2, [r3]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L127:
	.align	2
.L126:
	.word	SIZE
	.word	score
	.size	initBoard2, .-initBoard2
	.section	.rodata
	.align	2
.LC21:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	setBufferedInput
	.syntax unified
	.arm
	.fpu softvfp
	.type	setBufferedInput, %function
setBufferedInput:
	@ args = 0, pretend = 0, frame = 72
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #72
	mov	r3, r0
	strb	r3, [fp, #-69]
	ldr	r3, .L133
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldrb	r3, [fp, #-69]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L129
	ldr	r3, .L133+4
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L129
	ldr	r2, .L133+8
	mov	r1, #0
	mov	r0, #0
	bl	tcsetattr
	ldr	r3, .L133+4
	mov	r2, #1
	strb	r2, [r3]
	b	.L132
.L129:
	ldrb	r3, [fp, #-69]
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L132
	ldr	r3, .L133+4
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L132
	sub	r3, fp, #68
	mov	r1, r3
	mov	r0, #0
	bl	tcgetattr
	ldr	r3, .L133+8
	mov	lr, r3
	sub	ip, fp, #68
	ldmia	ip!, {r0, r1, r2, r3}
	stmia	lr!, {r0, r1, r2, r3}
	ldmia	ip!, {r0, r1, r2, r3}
	stmia	lr!, {r0, r1, r2, r3}
	ldmia	ip!, {r0, r1, r2, r3}
	stmia	lr!, {r0, r1, r2, r3}
	ldm	ip, {r0, r1, r2}
	stm	lr, {r0, r1, r2}
	ldr	r3, [fp, #-56]
	bic	r3, r3, #10
	str	r3, [fp, #-56]
	sub	r3, fp, #68
	mov	r2, r3
	mov	r1, #0
	mov	r0, #0
	bl	tcsetattr
	ldr	r3, .L133+4
	mov	r2, #0
	strb	r2, [r3]
.L132:
	nop
	ldr	r3, .L133
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L131
	bl	__stack_chk_fail
.L131:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L134:
	.align	2
.L133:
	.word	.LC21
	.word	enabled.6179
	.word	old.6180
	.size	setBufferedInput, .-setBufferedInput
	.global	__aeabi_uidiv
	.section	.rodata
	.align	2
.LC23:
	.ascii	"%d \000"
	.align	2
.LC24:
	.ascii	"=> \000"
	.align	2
.LC25:
	.ascii	"expected \000"
	.align	2
.LC26:
	.ascii	"All %u tests executed successfully\012\000"
	.align	2
.LC22:
	.ascii	"\000\000\000\001\001\000\000\000\000\000\001\001\002"
	.ascii	"\000\000\000\000\001\000\001\002\000\000\000\001\000"
	.ascii	"\000\001\002\000\000\000\001\000\001\000\002\000\000"
	.ascii	"\000\001\001\001\000\002\001\000\000\001\000\001\001"
	.ascii	"\002\001\000\000\001\001\000\001\002\001\000\000\001"
	.ascii	"\001\001\001\002\002\000\000\002\002\001\001\003\002"
	.ascii	"\000\000\001\001\002\002\002\003\000\000\003\000\001"
	.ascii	"\001\003\002\000\000\002\000\001\001\002\002\000\000"
	.align	2
.LC27:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	test
	.syntax unified
	.arm
	.fpu softvfp
	.type	test, %function
test:
	@ args = 0, pretend = 0, frame = 128
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #132
	ldr	r3, .L156
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, sp
	mov	r4, r3
	ldr	r3, .L156+4
	ldr	ip, [r3]
	sub	r3, ip, #1
	str	r3, [fp, #-136]
	mov	r3, ip
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, ip
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r3, ip
	add	r3, r3, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	sub	sp, sp, r3
	mov	r3, sp
	add	r3, r3, #0
	str	r3, [fp, #-132]
	ldr	r2, .L156+8
	sub	r3, fp, #120
	mov	r1, r2
	mov	r2, #104
	mov	r0, r3
	bl	memcpy
	mov	r3, #1
	strb	r3, [fp, #-138]
	ldr	r3, .L156+4
	ldr	r3, [r3]
	lsl	r3, r3, #1
	mov	r1, r3
	mov	r0, #104
	bl	__aeabi_uidiv
	mov	r3, r0
	strb	r3, [fp, #-137]
	mov	r3, #0
	strb	r3, [fp, #-139]
	b	.L136
.L152:
	ldrb	r3, [fp, #-139]	@ zero_extendqisi2
	ldr	r2, .L156+4
	ldr	r2, [r2]
	mul	r3, r2, r3
	lsl	r3, r3, #1
	mov	r2, r3
	sub	r3, fp, #120
	add	r3, r3, r2
	str	r3, [fp, #-128]
	ldr	r3, .L156+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-128]
	add	r3, r3, r2
	str	r3, [fp, #-124]
	mov	r3, #0
	strb	r3, [fp, #-140]
	b	.L137
.L138:
	ldrb	r3, [fp, #-140]	@ zero_extendqisi2
	ldr	r2, [fp, #-128]
	add	r2, r2, r3
	ldrb	r3, [fp, #-140]	@ zero_extendqisi2
	ldrb	r1, [r2]	@ zero_extendqisi2
	ldr	r2, [fp, #-132]
	strb	r1, [r2, r3]
	ldrb	r3, [fp, #-140]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-140]
.L137:
	ldrb	r2, [fp, #-140]	@ zero_extendqisi2
	ldr	r3, .L156+4
	ldr	r3, [r3]
	cmp	r2, r3
	blt	.L138
	ldr	r0, [fp, #-132]
	bl	slideArray
	mov	r3, #0
	strb	r3, [fp, #-140]
	b	.L139
.L141:
	ldrb	r3, [fp, #-140]	@ zero_extendqisi2
	ldr	r2, [fp, #-132]
	ldrb	r2, [r2, r3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-140]	@ zero_extendqisi2
	ldr	r1, [fp, #-124]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r2, r3
	beq	.L140
	mov	r3, #0
	strb	r3, [fp, #-138]
.L140:
	ldrb	r3, [fp, #-140]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-140]
.L139:
	ldrb	r2, [fp, #-140]	@ zero_extendqisi2
	ldr	r3, .L156+4
	ldr	r3, [r3]
	cmp	r2, r3
	blt	.L141
	ldrb	r3, [fp, #-138]
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L142
	mov	r3, #0
	strb	r3, [fp, #-140]
	b	.L143
.L144:
	ldrb	r3, [fp, #-140]	@ zero_extendqisi2
	ldr	r2, [fp, #-128]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, .L156+12
	bl	printf
	ldrb	r3, [fp, #-140]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-140]
.L143:
	ldrb	r2, [fp, #-140]	@ zero_extendqisi2
	ldr	r3, .L156+4
	ldr	r3, [r3]
	cmp	r2, r3
	blt	.L144
	ldr	r0, .L156+16
	bl	printf
	mov	r3, #0
	strb	r3, [fp, #-140]
	b	.L145
.L146:
	ldrb	r3, [fp, #-140]	@ zero_extendqisi2
	ldr	r2, [fp, #-132]
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, .L156+12
	bl	printf
	ldrb	r3, [fp, #-140]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-140]
.L145:
	ldrb	r2, [fp, #-140]	@ zero_extendqisi2
	ldr	r3, .L156+4
	ldr	r3, [r3]
	cmp	r2, r3
	blt	.L146
	ldr	r0, .L156+20
	bl	printf
	mov	r3, #0
	strb	r3, [fp, #-140]
	b	.L147
.L148:
	ldrb	r3, [fp, #-140]	@ zero_extendqisi2
	ldr	r2, [fp, #-128]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, .L156+12
	bl	printf
	ldrb	r3, [fp, #-140]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-140]
.L147:
	ldrb	r2, [fp, #-140]	@ zero_extendqisi2
	ldr	r3, .L156+4
	ldr	r3, [r3]
	cmp	r2, r3
	blt	.L148
	ldr	r0, .L156+16
	bl	printf
	mov	r3, #0
	strb	r3, [fp, #-140]
	b	.L149
.L150:
	ldrb	r3, [fp, #-140]	@ zero_extendqisi2
	ldr	r2, [fp, #-124]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, .L156+12
	bl	printf
	ldrb	r3, [fp, #-140]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-140]
.L149:
	ldrb	r2, [fp, #-140]	@ zero_extendqisi2
	ldr	r3, .L156+4
	ldr	r3, [r3]
	cmp	r2, r3
	blt	.L150
	mov	r0, #10
	bl	putchar
	b	.L151
.L142:
	ldrb	r3, [fp, #-139]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-139]
.L136:
	ldrb	r2, [fp, #-139]	@ zero_extendqisi2
	ldrb	r3, [fp, #-137]	@ zero_extendqisi2
	cmp	r2, r3
	bcc	.L152
.L151:
	ldrb	r3, [fp, #-138]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L153
	ldrb	r3, [fp, #-137]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, .L156+24
	bl	printf
.L153:
	ldrb	r3, [fp, #-138]
	eor	r3, r3, #1
	and	r3, r3, #255
	mov	sp, r4
	ldr	r2, .L156
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L155
	bl	__stack_chk_fail
.L155:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L157:
	.align	2
.L156:
	.word	.LC27
	.word	SIZE
	.word	.LC22
	.word	.LC23
	.word	.LC24
	.word	.LC25
	.word	.LC26
	.size	test, .-test
	.section	.rodata
	.align	2
.LC28:
	.ascii	"         TERMINATED         \000"
	.align	2
.LC29:
	.ascii	"\033[?25h\033[m\000"
	.text
	.align	2
	.global	signal_callback_handler
	.syntax unified
	.arm
	.fpu softvfp
	.type	signal_callback_handler, %function
signal_callback_handler:
	@ 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	r0, .L159
	bl	puts
	mov	r0, #1
	bl	setBufferedInput
	ldr	r0, .L159+4
	bl	printf
	ldr	r0, [fp, #-8]
	bl	exit
.L160:
	.align	2
.L159:
	.word	.LC28
	.word	.LC29
	.size	signal_callback_handler, .-signal_callback_handler
	.section	.rodata
	.align	2
.LC30:
	.ascii	"\012 \354\213\234\354\236\221\355\225\240 \353\225\214"
	.ascii	" \354\202\254\354\232\251\354\236\220\352\260\200 \354"
	.ascii	"\204\240\355\203\235\355\225\234 \354\202\254\354\235"
	.ascii	"\264\354\246\210\354\235\230 \355\214\220 \354\234\204"
	.ascii	"\354\227\220 2\352\260\234\354\235\230 2(\353\230\220"
	.ascii	"\353\212\224 4)\352\260\200 \354\236\210\353\212\224"
	.ascii	"\353\215\260 \000"
	.align	2
.LC31:
	.ascii	" \355\202\244\353\263\264\353\223\234 \353\260\251\355"
	.ascii	"\226\245\355\202\244\353\202\230 \355\204\260\354\271"
	.ascii	"\230\354\212\244\355\201\254\353\246\260\354\234\274"
	.ascii	"\353\241\234 \353\223\234\353\236\230\352\267\270\355"
	.ascii	"\225\230\353\251\264 \353\270\224\353\241\235\354\235"
	.ascii	"\264 \354\240\204\353\266\200 \352\267\270 \353\260"
	.ascii	"\251\355\226\245\354\234\274\353\241\234 \354\235\264"
	.ascii	"\353\217\231\355\225\230\353\251\264\354\204\234 \000"
	.align	2
.LC32:
	.ascii	" \352\260\231\354\235\200 \354\210\253\354\236\220\352"
	.ascii	"\260\200 \354\236\210\354\235\204 \352\262\275\354\232"
	.ascii	"\260 \355\225\251\354\263\220\354\247\200\353\251\260"
	.ascii	" \353\271\210 \354\236\220\353\246\254 \354\244\221"
	.ascii	" \355\225\234 \354\271\270\354\227\220 \353\236\234"
	.ascii	"\353\215\244\355\225\230\352\262\214 2 \353\230\220"
	.ascii	"\353\212\224 4\352\260\200 \353\202\230\354\230\265"
	.ascii	"\353\213\210\353\213\244.\000"
	.align	2
.LC33:
	.ascii	" \354\235\264\353\245\274 \353\260\230\353\263\265\355"
	.ascii	"\225\264\354\204\234 2\353\241\234\353\266\200\355\204"
	.ascii	"\260 2048\354\235\204 \353\247\214\353\223\244\353\251"
	.ascii	"\264 \352\262\214\354\236\204 \355\201\264\353\246\254"
	.ascii	"\354\226\264 ! \000"
	.align	2
.LC34:
	.ascii	" \353\247\214\354\225\275 2048\354\235\204 \353\247"
	.ascii	"\214\353\223\244\352\270\260 \354\240\204 \354\235\264"
	.ascii	"\353\217\231\355\225\240 \354\210\230 \354\227\206\353"
	.ascii	"\212\224 \352\262\275\354\232\260 \354\246\211 16\354"
	.ascii	"\271\270\354\235\264 \352\275\211 \354\260\250\354\236"
	.ascii	"\210\354\234\274\353\251\264\354\204\234 \354\235\270"
	.ascii	"\354\240\221\355\225\234 \353\221\220 \354\271\270\354"
	.ascii	"\235\264 \352\260\231\354\247\200 \354\225\212\354\235"
	.ascii	"\204 \353\225\214 \352\262\214\354\236\204 \354\230"
	.ascii	"\244\353\262\204\352\260\200 \353\220\230\353\251\260"
	.ascii	",\000"
	.align	2
.LC35:
	.ascii	" 2048\354\235\204 \353\247\214\353\223\246\352\263\274"
	.ascii	" \353\217\231\354\213\234\354\227\220 \354\235\264\353"
	.ascii	"\217\231 \353\266\210\352\260\200\353\251\264 \354\227"
	.ascii	"\255\354\213\234 \353\247\210\354\260\254\352\260\200"
	.ascii	"\354\247\200 \354\236\205\353\213\210\353\213\244.\000"
	.align	2
.LC36:
	.ascii	" \354\260\270 \354\211\275\354\243\240 ? \000"
	.align	2
.LC37:
	.ascii	" \353\263\204 \352\261\260 \354\225\204\353\213\214"
	.ascii	" \352\262\203 \352\260\231\354\247\200\353\247\214."
	.ascii	"..\354\235\200\352\267\274\355\236\210 \354\244\221"
	.ascii	"\353\217\205\354\204\261\354\236\210\352\263\240 \354"
	.ascii	"\226\264\353\240\265\354\212\265\353\213\210\353\213"
	.ascii	"\244. \000"
	.align	2
.LC38:
	.ascii	" \354\210\253\354\236\220\353\245\274 \353\255\211\354"
	.ascii	"\271\240 \353\225\214 3\352\260\234~4\352\260\234\352"
	.ascii	"\260\200 \355\225\234\352\272\274\353\262\210\354\227"
	.ascii	"\220 \353\255\211\354\263\220\354\247\200\354\247\200"
	.ascii	"\353\212\224 \354\225\212\354\212\265\353\213\210\353"
	.ascii	"\213\244. \000"
	.align	2
.LC39:
	.ascii	" \354\230\210\353\245\274 \353\223\244\354\226\264,"
	.ascii	" 4-4-4-4 \354\235\264\353\240\207\352\262\214 \353\220"
	.ascii	"\230\354\226\264 \354\236\210\352\261\260\353\202\230"
	.ascii	" 4-4-8 \354\235\264\353\240\207\352\262\214 \353\220"
	.ascii	"\230\354\226\264 \354\236\210\354\235\204 \353\225\214"
	.ascii	" \353\255\211\354\271\230\353\251\264 8-8\353\241\234"
	.ascii	" \353\220\230\352\263\240 \353\260\224\353\241\234 "
	.ascii	"16\354\234\274\353\241\234 \353\220\230\354\247\200"
	.ascii	"\353\212\224 \354\225\212\354\212\265\353\213\210\353"
	.ascii	"\213\244. \000"
	.align	2
.LC40:
	.ascii	" \353\254\274\353\241\240 8-8\353\241\234 \353\220\234"
	.ascii	" \354\203\201\355\203\234\354\227\220\354\204\234 \355"
	.ascii	"\225\234 \353\262\210 \353\215\224 \353\255\211\354"
	.ascii	"\271\230\353\251\264 16\354\234\274\353\241\234 \353"
	.ascii	"\220\230\353\212\224 \352\261\264 \353\247\236\354\212"
	.ascii	"\265\353\213\210\353\213\244. \012 \000"
	.align	2
.LC41:
	.ascii	" \354\246\211, 4-4-4-4\353\202\230 4-4-8 \354\235\264"
	.ascii	"\353\240\207\352\262\214 \353\220\234 \352\262\203\354"
	.ascii	"\235\204 16\354\234\274\353\241\234 \353\255\211\354"
	.ascii	"\271\230\353\240\244\353\251\264 \353\221\220 \353\262"
	.ascii	"\210 \353\255\211\354\263\220\354\225\274 \355\225\234"
	.ascii	"\353\213\244\353\212\224 \354\226\230\352\270\260 !"
	.ascii	" \012 \000"
	.align	2
.LC42:
	.ascii	" \352\267\270\353\237\274 \354\235\264\354\240\234 "
	.ascii	"'\355\224\214\353\240\210\354\235\264'\353\245\274 "
	.ascii	"\355\225\230\353\237\254 \352\260\200\353\263\274\352"
	.ascii	"\271\214\354\232\224 ?? \012 \000"
	.text
	.align	2
	.global	manual
	.syntax unified
	.arm
	.fpu softvfp
	.type	manual, %function
manual:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r0, .L162
	bl	puts
	ldr	r0, .L162+4
	bl	puts
	ldr	r0, .L162+8
	bl	puts
	ldr	r0, .L162+12
	bl	puts
	ldr	r0, .L162+16
	bl	puts
	ldr	r0, .L162+20
	bl	puts
	ldr	r0, .L162+24
	bl	puts
	ldr	r0, .L162+28
	bl	puts
	ldr	r0, .L162+32
	bl	puts
	ldr	r0, .L162+36
	bl	puts
	ldr	r0, .L162+40
	bl	printf
	ldr	r0, .L162+44
	bl	printf
	ldr	r0, .L162+48
	bl	puts
	nop
	pop	{fp, pc}
.L163:
	.align	2
.L162:
	.word	.LC30
	.word	.LC31
	.word	.LC32
	.word	.LC33
	.word	.LC34
	.word	.LC35
	.word	.LC36
	.word	.LC37
	.word	.LC38
	.word	.LC39
	.word	.LC40
	.word	.LC41
	.word	.LC42
	.size	manual, .-manual
	.section	.rodata
	.align	2
.LC43:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	myclock, %function
myclock:
	@ 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, .L167
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #16
	mov	r1, #0
	mov	r0, r3
	bl	gettimeofday
	ldr	r2, [fp, #-16]
	mov	r3, r2
	lsl	r3, r3, #5
	sub	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r1, r3
	ldr	r3, [fp, #-12]
	ldr	r2, .L167+4
	smull	r0, r2, r3, r2
	asr	r2, r2, #6
	asr	r3, r3, #31
	sub	r3, r2, r3
	add	r3, r1, r3
	ldr	r2, .L167
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L166
	bl	__stack_chk_fail
.L166:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L168:
	.align	2
.L167:
	.word	.LC43
	.word	274877907
	.size	myclock, .-myclock
	.section	.rodata
	.align	2
.LC45:
	.ascii	"2048 \352\262\214\354\236\204\354\235\204 \354\246\220"
	.ascii	"\352\270\270 \354\244\200\353\271\204\352\260\200 \353"
	.ascii	"\220\230\354\205\250\353\202\230\354\232\224 ? \000"
	.align	2
.LC46:
	.ascii	"   1. \355\224\214\353\240\210\354\235\264 \000"
	.align	2
.LC47:
	.ascii	"   2. \352\262\214\354\236\204\353\260\251\353\262\225"
	.ascii	" \000"
	.align	2
.LC48:
	.ascii	"\354\233\220\355\225\230\353\212\224 \353\262\210\355"
	.ascii	"\230\270\353\245\274 \354\204\240\355\203\235\355\225"
	.ascii	"\264\354\243\274\354\204\270\354\232\224 : \000"
	.align	2
.LC49:
	.ascii	"%d\000"
	.align	2
.LC50:
	.ascii	"%s%d_%d.txt\000"
	.align	2
.LC51:
	.ascii	"\012\000"
	.align	2
.LC52:
	.ascii	"\355\224\214\353\240\210\354\235\264\354\226\264 \354"
	.ascii	"\210\230\353\245\274 \354\236\205\353\240\245\355\225"
	.ascii	"\230\354\204\270\354\232\224 (\354\265\234\353\214\200"
	.ascii	" 2\353\252\205) : \000"
	.align	2
.LC53:
	.ascii	"\012\012\012\012\012\012\012\012\012\000"
	.align	2
.LC54:
	.ascii	"test\000"
	.align	2
.LC55:
	.ascii	"blackwhite\000"
	.align	2
.LC56:
	.ascii	"bluered\000"
	.align	2
.LC57:
	.ascii	"\353\263\264\353\223\234\354\235\230 \355\201\254\352"
	.ascii	"\270\260\353\245\274 \354\236\205\353\240\245\355\225"
	.ascii	"\230\354\204\270\354\232\224. ex) 4 : \000"
	.align	2
.LC58:
	.ascii	"\353\263\264\353\223\234\355\214\220\354\235\230 \355"
	.ascii	"\201\254\352\270\260\352\260\200 \353\204\210\353\254"
	.ascii	"\264 \354\236\221\354\225\204\354\232\224 !\000"
	.align	2
.LC59:
	.ascii	"\033[?25l\033[2J\000"
	.align	2
.LC60:
	.ascii	"\012Record : %d.%d sec\012\000"
	.align	2
.LC61:
	.ascii	"\012\012\012WIN\000"
	.align	2
.LC62:
	.ascii	"%d.%d\012\000"
	.global	__aeabi_dcmplt
	.align	2
.LC63:
	.ascii	"%f\012\000"
	.align	2
.LC64:
	.ascii	"%d : %s\012\000"
	.align	2
.LC65:
	.ascii	"\012\012\012\011\011\011\011\011\011\011WIN\000"
	.align	2
.LC66:
	.ascii	"--- %d.%d sec\012\000"
	.align	2
.LC67:
	.ascii	"         GAME OVER          \000"
	.align	2
.LC68:
	.ascii	"\011\011\011\011\011\011\011         GAME OVER     "
	.ascii	"     \000"
	.align	2
.LC69:
	.ascii	"        QUIT? (y/n)         \000"
	.align	2
.LC70:
	.ascii	"       RESTART? (y/n)       \000"
	.align	2
.LC44:
	.ascii	"/home/hanhoon/OpenSorce/2048.c/Rank/\000"
	.space	63
	.align	2
.LC71:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 672
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	sub	sp, sp, #680
	str	r0, [fp, #-688]
	str	r1, [fp, #-692]
	ldr	r3, .L247
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	mov	r3, sp
	mov	r7, r3
	ldr	r3, .L247+4
	ldr	ip, [r3]
	ldr	r3, .L247+4
	ldr	lr, [r3]
	sub	r3, ip, #1
	str	r3, [fp, #-652]
	mov	r3, ip
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	sub	r3, lr, #1
	str	r3, [fp, #-648]
	mov	r3, ip
	mov	r4, r3
	mov	r5, #0
	mov	r3, lr
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r6, r2, r3
	umull	r2, r3, r4, r0
	add	r1, r6, r3
	mov	r3, r1
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #3
	orr	r1, r1, r2, lsr #29
	lsl	r0, r2, #3
	mov	r3, ip
	mov	r4, r3
	mov	r5, #0
	mov	r3, lr
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r6, r2, r3
	umull	r2, r3, r4, r0
	add	r1, r6, r3
	mov	r3, r1
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #3
	orr	r1, r1, r2, lsr #29
	lsl	r0, r2, #3
	mov	r3, ip
	mov	r2, lr
	mul	r3, r2, r3
	add	r3, r3, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	sub	sp, sp, r3
	add	r3, sp, #8
	add	r3, r3, #0
	str	r3, [fp, #-644]
	ldr	r3, .L247+4
	ldr	ip, [r3]
	ldr	r3, .L247+4
	ldr	lr, [r3]
	sub	r3, ip, #1
	str	r3, [fp, #-640]
	mov	r3, ip
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	sub	r3, lr, #1
	str	r3, [fp, #-636]
	mov	r3, ip
	mov	r4, r3
	mov	r5, #0
	mov	r3, lr
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r6, r2, r3
	umull	r2, r3, r4, r0
	add	r1, r6, r3
	mov	r3, r1
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #3
	orr	r1, r1, r2, lsr #29
	lsl	r0, r2, #3
	mov	r3, ip
	mov	r4, r3
	mov	r5, #0
	mov	r3, lr
	mov	r0, r3
	mov	r1, #0
	mul	r2, r0, r5
	mul	r3, r4, r1
	add	r6, r2, r3
	umull	r2, r3, r4, r0
	add	r1, r6, r3
	mov	r3, r1
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #3
	orr	r1, r1, r2, lsr #29
	lsl	r0, r2, #3
	mov	r3, ip
	mov	r2, lr
	mul	r3, r2, r3
	add	r3, r3, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	sub	sp, sp, r3
	add	r3, sp, #8
	add	r3, r3, #0
	str	r3, [fp, #-632]
	ldr	r3, .L247+8
	sub	ip, fp, #224
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1}
	str	r0, [ip]
	add	ip, ip, #4
	strb	r1, [ip]
	sub	r3, fp, #187
	mov	r2, #63
	mov	r1, #0
	mov	r0, r3
	bl	memset
	sub	r3, fp, #224
	mov	r1, #0
	mov	r0, r3
	bl	access
	str	r0, [fp, #-628]
	ldr	r3, .L247+12
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, .L247+120
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, .L247+124
	mov	r2, #0
	strb	r2, [r3]
.L172:
	ldr	r0, .L247+16
	bl	puts
	mov	r0, #10
	bl	putchar
	ldr	r0, .L247+20
	bl	puts
	ldr	r0, .L247+24
	bl	puts
	mov	r0, #10
	bl	putchar
	ldr	r0, .L247+28
	bl	printf
	sub	r3, fp, #672
	mov	r1, r3
	ldr	r0, .L247+32
	bl	__isoc99_scanf
	ldr	r3, [fp, #-672]
	cmp	r3, #1
	beq	.L245
	bl	manual
	b	.L172
.L245:
	nop
	mov	r3, #1
	str	r3, [fp, #-668]
	b	.L173
.L176:
	ldr	r3, [fp, #-628]
	cmp	r3, #0
	bne	.L174
	ldr	r3, .L247+4
	ldr	r1, [r3]
	sub	r2, fp, #224
	sub	r0, fp, #124
	ldr	r3, [fp, #-668]
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, .L247+36
	bl	sprintf
	sub	r3, fp, #124
	mov	r1, #66
	mov	r0, r3
	bl	open
	str	r0, [fp, #-664]
	b	.L175
.L174:
	ldr	r3, [fp, #-628]
	cmn	r3, #1
	bne	.L175
	sub	r3, fp, #224
	mov	r0, r3
	bl	mkdir
	str	r0, [fp, #-616]
	ldr	r3, .L247+4
	ldr	r1, [r3]
	sub	r2, fp, #224
	sub	r0, fp, #124
	ldr	r3, [fp, #-668]
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, .L247+36
	bl	sprintf
	sub	r3, fp, #124
	mov	r1, #66
	mov	r0, r3
	bl	open
	str	r0, [fp, #-664]
.L175:
	sub	r3, fp, #124
	mov	r1, #66
	mov	r0, r3
	bl	open
	str	r0, [fp, #-620]
	ldr	r3, [fp, #-668]
	add	r3, r3, #1
	str	r3, [fp, #-668]
.L173:
	ldr	r3, [fp, #-668]
	cmp	r3, #5
	ble	.L176
	ldr	r0, .L247+40
	bl	puts
	ldr	r0, .L247+44
	bl	printf
	sub	r3, fp, #676
	mov	r1, r3
	ldr	r0, .L247+32
	bl	__isoc99_scanf
	ldr	r0, .L247+48
	bl	puts
	ldr	r3, [fp, #-688]
	cmp	r3, #2
	bne	.L177
	ldr	r3, [fp, #-692]
	add	r3, r3, #4
	ldr	r3, [r3]
	ldr	r1, .L247+52
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L177
	bl	test
	mov	r3, r0
	b	.L178
.L177:
	ldr	r3, [fp, #-688]
	cmp	r3, #2
	bne	.L179
	ldr	r3, [fp, #-692]
	add	r3, r3, #4
	ldr	r3, [r3]
	ldr	r1, .L247+56
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L179
	ldr	r3, .L247+60
	mov	r2, #1
	strb	r2, [r3]
.L179:
	ldr	r3, [fp, #-688]
	cmp	r3, #2
	bne	.L180
	ldr	r3, [fp, #-692]
	add	r3, r3, #4
	ldr	r3, [r3]
	ldr	r1, .L247+64
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L180
	ldr	r3, .L247+60
	mov	r2, #2
	strb	r2, [r3]
.L180:
	ldr	r0, .L247+40
	bl	puts
	ldr	r0, .L247+68
	bl	printf
	sub	r3, fp, #680
	mov	r1, r3
	ldr	r0, .L247+32
	bl	__isoc99_scanf
	ldr	r0, .L247+48
	bl	puts
	ldr	r3, [fp, #-680]
	ldr	r2, .L247+4
	str	r3, [r2]
	ldr	r3, .L247+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L181
	ldr	r3, .L247+4
	ldr	r3, [r3]
	cmp	r3, #1
	beq	.L181
	ldr	r3, .L247+4
	ldr	r3, [r3]
	cmp	r3, #2
	bne	.L182
.L181:
	ldr	r0, .L247+72
	bl	puts
	mov	r0, #1
	bl	exit
.L182:
	ldr	r0, .L247+76
	bl	printf
	ldr	r1, .L247+80
	mov	r0, #2
	bl	__sysv_signal
	ldr	r0, [fp, #-644]
	bl	initBoard
	ldr	r3, [fp, #-676]
	cmp	r3, #2
	bne	.L183
	ldr	r0, [fp, #-632]
	bl	initBoard2
.L183:
	mov	r0, #0
	bl	setBufferedInput
	ldr	r3, .L247+84
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L237
	bl	myclock
	str	r0, [fp, #-660]
	ldr	r3, .L247+84
	mov	r2, #0
	strb	r2, [r3]
.L237:
	bl	getchar
	mov	r3, r0
	strb	r3, [fp, #-681]
	ldr	r3, .L247+12
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L185
	ldr	r3, .L247+120
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L185
	bl	myclock
	mov	r2, r0
	ldr	r3, [fp, #-660]
	sub	r3, r2, r3
	str	r3, [fp, #-624]
	ldr	r3, [fp, #-624]
	ldr	r2, .L247+128
	smull	r1, r2, r3, r2
	asr	r2, r2, #6
	asr	r3, r3, #31
	sub	r0, r2, r3
	ldr	r1, [fp, #-624]
	ldr	r3, .L247+128
	smull	r2, r3, r1, r3
	asr	r2, r3, #6
	asr	r3, r1, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #5
	sub	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, r1, r3
	mov	r1, r0
	ldr	r0, .L247+88
	bl	printf
	ldr	r0, .L247+92
	bl	puts
	ldr	r0, .L247+40
	bl	puts
	ldr	r3, [fp, #-624]
	ldr	r2, .L247+128
	smull	r1, r2, r3, r2
	asr	r2, r2, #6
	asr	r3, r3, #31
	sub	ip, r2, r3
	ldr	r1, [fp, #-624]
	ldr	r3, .L247+128
	smull	r2, r3, r1, r3
	asr	r2, r3, #6
	asr	r3, r1, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #5
	sub	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, r1, r3
	sub	r0, fp, #524
	mov	r3, r2
	mov	r2, ip
	ldr	r1, .L247+96
	bl	sprintf
	sub	r3, fp, #524
	mov	r0, r3
	bl	atof
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-604]
	str	r3, [fp, #-600]
	mov	r3, #1
	str	r3, [fp, #-668]
	b	.L186
.L189:
	ldr	r3, .L247+4
	ldr	r1, [r3]
	sub	r2, fp, #224
	sub	r0, fp, #124
	ldr	r3, [fp, #-668]
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, .L247+36
	bl	sprintf
	sub	r3, fp, #124
	mov	r1, #66
	mov	r0, r3
	bl	open
	str	r0, [fp, #-620]
	sub	r3, fp, #324
	mov	r2, #100
	mov	r1, r3
	ldr	r0, [fp, #-620]
	bl	read
	sub	r3, fp, #324
	mov	r0, r3
	bl	atof
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-668]
	lsl	r1, r1, #3
	sub	r0, fp, #20
	add	r1, r0, r1
	sub	r1, r1, #584
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-668]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #584
	ldmia	r3, {r0-r1}
	mov	r2, #0
	ldr	r3, .L247+100
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L187
	ldr	r3, [fp, #-668]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r1, r3, #584
	mov	r2, #0
	ldr	r3, .L247+104
	stm	r1, {r2-r3}
.L187:
	ldr	r3, [fp, #-668]
	add	r3, r3, #1
	str	r3, [fp, #-668]
.L186:
	ldr	r3, [fp, #-668]
	cmp	r3, #5
	ble	.L189
	mov	r3, #0
	str	r3, [fp, #-668]
	b	.L190
.L197:
	ldr	r3, [fp, #-668]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #584
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-612]
	str	r3, [fp, #-608]
	ldr	r3, [fp, #-668]
	sub	r3, r3, #1
	str	r3, [fp, #-656]
	b	.L191
.L196:
	ldr	r3, [fp, #-656]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #584
	ldmia	r3, {r2-r3}
	sub	r1, fp, #612
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	bne	.L241
	b	.L195
.L241:
	ldr	r3, [fp, #-656]
	add	r1, r3, #1
	ldr	r3, [fp, #-656]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #584
	ldmia	r3, {r2-r3}
	lsl	r1, r1, #3
	sub	r0, fp, #20
	add	r1, r0, r1
	sub	r1, r1, #584
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-656]
	sub	r3, r3, #1
	str	r3, [fp, #-656]
.L191:
	ldr	r3, [fp, #-656]
	cmp	r3, #0
	bge	.L196
.L195:
	ldr	r3, [fp, #-656]
	add	r3, r3, #1
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r1, r3, #584
	sub	r3, fp, #612
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-668]
	add	r3, r3, #1
	str	r3, [fp, #-668]
.L190:
	ldr	r3, [fp, #-668]
	cmp	r3, #5
	ble	.L197
	mov	r3, #1
	str	r3, [fp, #-668]
	b	.L198
.L199:
	ldr	r3, .L247+4
	ldr	r1, [r3]
	sub	r2, fp, #224
	sub	r0, fp, #124
	ldr	r3, [fp, #-668]
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, .L247+36
	bl	sprintf
	sub	r3, fp, #124
	mov	r1, #66
	mov	r0, r3
	bl	open
	str	r0, [fp, #-664]
	ldr	r3, [fp, #-668]
	sub	r3, r3, #1
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #584
	ldmia	r3, {r2-r3}
	sub	r0, fp, #424
	ldr	r1, .L247+108
	bl	sprintf
	sub	r3, fp, #424
	mov	r2, #100
	mov	r1, r3
	ldr	r0, [fp, #-664]
	bl	write
	ldr	r3, [fp, #-668]
	add	r3, r3, #1
	str	r3, [fp, #-668]
.L198:
	ldr	r3, [fp, #-668]
	cmp	r3, #5
	ble	.L199
	mov	r0, #10
	bl	putchar
	mov	r3, #1
	str	r3, [fp, #-668]
	b	.L200
.L201:
	ldr	r3, .L247+4
	ldr	r1, [r3]
	sub	r2, fp, #224
	sub	r0, fp, #124
	ldr	r3, [fp, #-668]
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, .L247+36
	bl	sprintf
	sub	r3, fp, #124
	mov	r1, #66
	mov	r0, r3
	bl	open
	str	r0, [fp, #-620]
	sub	r3, fp, #324
	mov	r2, #100
	mov	r1, r3
	ldr	r0, [fp, #-620]
	bl	read
	sub	r3, fp, #324
	mov	r2, r3
	ldr	r1, [fp, #-668]
	ldr	r0, .L247+112
	bl	printf
	ldr	r3, [fp, #-668]
	add	r3, r3, #1
	str	r3, [fp, #-668]
.L200:
	ldr	r3, [fp, #-668]
	cmp	r3, #5
	ble	.L201
	b	.L202
.L185:
	ldr	r3, .L247+12
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L203
	ldr	r3, .L247+124
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L203
	bl	myclock
	mov	r2, r0
	ldr	r3, [fp, #-660]
	sub	r3, r2, r3
	str	r3, [fp, #-624]
	ldr	r3, [fp, #-624]
	ldr	r2, .L247+128
	smull	r1, r2, r3, r2
	asr	r2, r2, #6
	asr	r3, r3, #31
	sub	r0, r2, r3
	ldr	r1, [fp, #-624]
	ldr	r3, .L247+128
	smull	r2, r3, r1, r3
	asr	r2, r3, #6
	asr	r3, r1, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #5
	sub	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, r1, r3
	mov	r1, r0
	ldr	r0, .L247+88
	bl	printf
	ldr	r0, .L247+116
	bl	puts
	ldr	r0, .L247+40
	bl	puts
	ldr	r3, [fp, #-624]
	ldr	r2, .L247+128
	smull	r1, r2, r3, r2
	asr	r2, r2, #6
	asr	r3, r3, #31
	sub	ip, r2, r3
	ldr	r1, [fp, #-624]
	ldr	r3, .L247+128
	smull	r2, r3, r1, r3
	asr	r2, r3, #6
	asr	r3, r1, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #5
	sub	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, r1, r3
	sub	r0, fp, #524
	mov	r3, r2
	mov	r2, ip
	ldr	r1, .L247+96
	bl	sprintf
	sub	r3, fp, #524
	mov	r0, r3
	bl	atof
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-604]
	str	r3, [fp, #-600]
	mov	r3, #1
	str	r3, [fp, #-668]
	b	.L204
.L207:
	ldr	r3, .L247+4
	ldr	r1, [r3]
	sub	r2, fp, #224
	sub	r0, fp, #124
	ldr	r3, [fp, #-668]
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, .L247+36
	bl	sprintf
	sub	r3, fp, #124
	mov	r1, #66
	mov	r0, r3
	bl	open
	str	r0, [fp, #-620]
	sub	r3, fp, #324
	mov	r2, #100
	mov	r1, r3
	ldr	r0, [fp, #-620]
	bl	read
	sub	r3, fp, #324
	mov	r0, r3
	bl	atof
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-668]
	lsl	r1, r1, #3
	sub	r0, fp, #20
	add	r1, r0, r1
	sub	r1, r1, #584
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-668]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #584
	ldmia	r3, {r0-r1}
	mov	r2, #0
	ldr	r3, .L247+100
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L205
	ldr	r3, [fp, #-668]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r1, r3, #584
	mov	r2, #0
	ldr	r3, .L247+104
	stm	r1, {r2-r3}
.L205:
	ldr	r3, [fp, #-668]
	add	r3, r3, #1
	str	r3, [fp, #-668]
.L204:
	ldr	r3, [fp, #-668]
	cmp	r3, #5
	ble	.L207
	mov	r3, #0
	str	r3, [fp, #-668]
	b	.L208
.L215:
	ldr	r3, [fp, #-668]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #584
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-612]
	str	r3, [fp, #-608]
	ldr	r3, [fp, #-668]
	sub	r3, r3, #1
	str	r3, [fp, #-656]
	b	.L209
.L214:
	ldr	r3, [fp, #-656]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #584
	ldmia	r3, {r2-r3}
	sub	r1, fp, #612
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	bne	.L243
	b	.L213
.L243:
	ldr	r3, [fp, #-656]
	add	r1, r3, #1
	ldr	r3, [fp, #-656]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #584
	ldmia	r3, {r2-r3}
	lsl	r1, r1, #3
	sub	r0, fp, #20
	add	r1, r0, r1
	sub	r1, r1, #584
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-656]
	sub	r3, r3, #1
	str	r3, [fp, #-656]
.L209:
	ldr	r3, [fp, #-656]
	cmp	r3, #0
	bge	.L214
.L213:
	ldr	r3, [fp, #-656]
	add	r3, r3, #1
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r1, r3, #584
	sub	r3, fp, #612
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-668]
	add	r3, r3, #1
	str	r3, [fp, #-668]
.L208:
	ldr	r3, [fp, #-668]
	cmp	r3, #5
	ble	.L215
	mov	r3, #1
	str	r3, [fp, #-668]
	b	.L216
.L217:
	ldr	r3, .L247+4
	ldr	r1, [r3]
	sub	r2, fp, #224
	sub	r0, fp, #124
	ldr	r3, [fp, #-668]
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, .L247+36
	bl	sprintf
	sub	r3, fp, #124
	mov	r1, #66
	mov	r0, r3
	bl	open
	str	r0, [fp, #-664]
	ldr	r3, [fp, #-668]
	sub	r3, r3, #1
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #584
	ldmia	r3, {r2-r3}
	sub	r0, fp, #424
	ldr	r1, .L247+108
	bl	sprintf
	sub	r3, fp, #424
	mov	r2, #100
	mov	r1, r3
	ldr	r0, [fp, #-664]
	bl	write
	ldr	r3, [fp, #-668]
	add	r3, r3, #1
	str	r3, [fp, #-668]
.L216:
	ldr	r3, [fp, #-668]
	cmp	r3, #5
	ble	.L217
	mov	r0, #10
	bl	putchar
	mov	r3, #1
	str	r3, [fp, #-668]
	b	.L218
.L219:
	ldr	r3, .L247+4
	ldr	r1, [r3]
	sub	r2, fp, #224
	sub	r0, fp, #124
	ldr	r3, [fp, #-668]
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, .L247+36
	bl	sprintf
	sub	r3, fp, #124
	mov	r1, #66
	mov	r0, r3
	bl	open
	str	r0, [fp, #-620]
	sub	r3, fp, #324
	mov	r2, #100
	mov	r1, r3
	ldr	r0, [fp, #-620]
	bl	read
	sub	r3, fp, #324
	mov	r2, r3
	ldr	r1, [fp, #-668]
	ldr	r0, .L247+112
	bl	printf
	ldr	r3, [fp, #-668]
	add	r3, r3, #1
	str	r3, [fp, #-668]
.L218:
	ldr	r3, [fp, #-668]
	cmp	r3, #5
	ble	.L219
	b	.L202
.L203:
	ldr	r3, .L247+120
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, .L247+124
	mov	r2, #0
	strb	r2, [r3]
	ldrb	r3, [fp, #-681]	@ zero_extendqisi2
	sub	r3, r3, #65
	cmp	r3, #54
	ldrls	pc, [pc, r3, asl #2]
	b	.L220
.L222:
	.word	.L229
	.word	.L228
	.word	.L227
	.word	.L226
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L225
	.word	.L220
	.word	.L220
	.word	.L224
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L223
	.word	.L220
	.word	.L220
	.word	.L220
	.word	.L221
.L225:
	ldr	r0, [fp, #-644]
	bl	moveLeft
	mov	r3, r0
	strb	r3, [fp, #-682]
	mov	r3, #0
	strb	r3, [fp, #-683]
	ldr	r3, .L247+120
	mov	r2, #1
	strb	r2, [r3]
	b	.L230
.L226:
	ldr	r3, [fp, #-676]
	cmp	r3, #2
	bne	.L224
	ldr	r0, [fp, #-632]
	bl	moveLeft
	mov	r3, r0
	strb	r3, [fp, #-683]
	mov	r3, #0
	strb	r3, [fp, #-682]
	ldr	r3, .L247+124
	mov	r2, #1
	strb	r2, [r3]
	b	.L230
.L224:
	ldr	r0, [fp, #-644]
	bl	moveRight
	mov	r3, r0
	strb	r3, [fp, #-682]
	mov	r3, #0
	strb	r3, [fp, #-683]
	ldr	r3, .L247+120
	mov	r2, #1
	strb	r2, [r3]
	b	.L230
.L227:
	ldr	r3, [fp, #-676]
	cmp	r3, #2
	bne	.L221
	ldr	r0, [fp, #-632]
	bl	moveRight
	mov	r3, r0
	strb	r3, [fp, #-683]
	mov	r3, #0
	strb	r3, [fp, #-682]
	ldr	r3, .L247+124
	mov	r2, #1
	strb	r2, [r3]
	b	.L230
.L221:
	ldr	r0, [fp, #-644]
	bl	moveUp
	mov	r3, r0
	strb	r3, [fp, #-682]
	mov	r3, #0
	strb	r3, [fp, #-683]
	ldr	r3, .L247+120
	mov	r2, #1
	strb	r2, [r3]
	b	.L230
.L248:
	.align	2
.L247:
	.word	.LC71
	.word	SIZE
	.word	.LC44
	.word	goal
	.word	.LC45
	.word	.LC46
	.word	.LC47
	.word	.LC48
	.word	.LC49
	.word	.LC50
	.word	.LC51
	.word	.LC52
	.word	.LC53
	.word	.LC54
	.word	.LC55
	.word	scheme
	.word	.LC56
	.word	.LC57
	.word	.LC58
	.word	.LC59
	.word	signal_callback_handler
	.word	set_time
	.word	.LC60
	.word	.LC61
	.word	.LC62
	.word	1072693248
	.word	1086556160
	.word	.LC63
	.word	.LC64
	.word	.LC65
	.word	goal1
	.word	goal2
	.word	274877907
	.word	.LC66
	.word	.LC67
	.word	150000
	.word	.LC68
	.word	.LC69
	.word	.LC70
	.word	.LC29
	.word	.LC71
.L229:
	ldr	r3, [fp, #-676]
	cmp	r3, #2
	bne	.L223
	ldr	r0, [fp, #-632]
	bl	moveUp
	mov	r3, r0
	strb	r3, [fp, #-683]
	mov	r3, #0
	strb	r3, [fp, #-682]
	ldr	r3, .L247+124
	mov	r2, #1
	strb	r2, [r3]
	b	.L230
.L223:
	ldr	r0, [fp, #-644]
	bl	moveDown
	mov	r3, r0
	strb	r3, [fp, #-682]
	mov	r3, #0
	strb	r3, [fp, #-683]
	ldr	r3, .L247+120
	mov	r2, #1
	strb	r2, [r3]
	b	.L230
.L228:
	ldr	r3, [fp, #-676]
	cmp	r3, #2
	bne	.L220
	ldr	r0, [fp, #-632]
	bl	moveDown
	mov	r3, r0
	strb	r3, [fp, #-683]
	mov	r3, #0
	strb	r3, [fp, #-682]
	ldr	r3, .L247+124
	mov	r2, #1
	strb	r2, [r3]
	b	.L230
.L220:
	mov	r3, #0
	strb	r3, [fp, #-682]
	mov	r3, #0
	strb	r3, [fp, #-683]
.L230:
	ldrb	r3, [fp, #-682]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L231
	ldr	r0, [fp, #-644]
	bl	drawBoard
	ldr	r0, .L247+140
	bl	usleep
	ldr	r0, [fp, #-644]
	bl	addRandom
	ldr	r0, [fp, #-644]
	bl	drawBoard
	ldr	r0, [fp, #-644]
	bl	gameEnded
	mov	r3, r0
	cmp	r3, #0
	beq	.L231
	bl	myclock
	mov	r2, r0
	ldr	r3, [fp, #-660]
	sub	r3, r2, r3
	str	r3, [fp, #-624]
	ldr	r3, [fp, #-624]
	ldr	r2, .L247+128
	smull	r1, r2, r3, r2
	asr	r2, r2, #6
	asr	r3, r3, #31
	sub	r0, r2, r3
	ldr	r1, [fp, #-624]
	ldr	r3, .L247+128
	smull	r2, r3, r1, r3
	asr	r2, r3, #6
	asr	r3, r1, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #5
	sub	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, r1, r3
	mov	r1, r0
	ldr	r0, .L247+132
	bl	printf
	ldr	r0, .L247+136
	bl	puts
	b	.L202
.L231:
	ldrb	r3, [fp, #-683]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L232
	ldr	r0, [fp, #-632]
	bl	drawBoard2
	ldr	r0, .L247+140
	bl	usleep
	ldr	r0, [fp, #-644]
	bl	addRandom
	ldr	r0, [fp, #-632]
	bl	drawBoard2
	ldr	r0, [fp, #-632]
	bl	gameEnded
	mov	r3, r0
	cmp	r3, #0
	beq	.L232
	ldr	r0, .L247+144
	bl	puts
	b	.L202
.L232:
	ldrb	r3, [fp, #-681]	@ zero_extendqisi2
	cmp	r3, #113
	bne	.L233
	ldr	r0, .L247+148
	bl	puts
	bl	getchar
	mov	r3, r0
	strb	r3, [fp, #-681]
	ldrb	r3, [fp, #-681]	@ zero_extendqisi2
	cmp	r3, #121
	beq	.L246
	ldr	r0, [fp, #-644]
	bl	drawBoard
.L233:
	ldrb	r3, [fp, #-681]	@ zero_extendqisi2
	cmp	r3, #114
	bne	.L237
	ldr	r0, .L247+152
	bl	puts
	bl	getchar
	mov	r3, r0
	strb	r3, [fp, #-681]
	ldrb	r3, [fp, #-681]	@ zero_extendqisi2
	cmp	r3, #121
	bne	.L236
	ldr	r0, [fp, #-644]
	bl	initBoard
.L236:
	ldr	r0, [fp, #-644]
	bl	drawBoard
	b	.L237
.L246:
	nop
.L202:
	mov	r0, #1
	bl	setBufferedInput
	ldr	r0, .L247+156
	bl	printf
	ldr	r0, [fp, #-664]
	bl	close
	mov	r3, #0
.L178:
	mov	sp, r7
	ldr	r2, .L247+160
	ldr	r1, [r2]
	ldr	r2, [fp, #-24]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L239
	bl	__stack_chk_fail
.L239:
	mov	r0, r3
	sub	sp, fp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, fp, pc}
	.size	main, .-main
	.local	initialized.6141
	.comm	initialized.6141,1,1
	.data
	.type	enabled.6179, %object
	.size	enabled.6179, 1
enabled.6179:
	.byte	1
	.local	old.6180
	.comm	old.6180,60,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
