	.file	"150420.c"
	.intel_syntax noprefix
	.text
	.globl	box0
	.section	.rodata
	.align 8
	.type	box0, @object
	.size	box0, 8
box0:
	.long	4
	.long	30
	.globl	box1
	.align 16
	.type	box1, @object
	.size	box1, 16
box1:
	.long	4
	.long	30
	.long	4
	.long	32
	.globl	box2
	.align 16
	.type	box2, @object
	.size	box2, 16
box2:
	.long	4
	.long	30
	.long	5
	.long	32
	.globl	box3
	.align 16
	.type	box3, @object
	.size	box3, 24
box3:
	.long	4
	.long	28
	.long	4
	.long	30
	.long	4
	.long	32
	.globl	box4
	.align 16
	.type	box4, @object
	.size	box4, 24
box4:
	.long	4
	.long	28
	.long	4
	.long	30
	.long	5
	.long	30
	.globl	box5
	.align 16
	.type	box5, @object
	.size	box5, 24
box5:
	.long	4
	.long	28
	.long	5
	.long	30
	.long	6
	.long	32
	.globl	box6
	.align 16
	.type	box6, @object
	.size	box6, 24
box6:
	.long	4
	.long	30
	.long	5
	.long	28
	.long	5
	.long	32
	.globl	box7
	.align 32
	.type	box7, @object
	.size	box7, 32
box7:
	.long	4
	.long	28
	.long	5
	.long	30
	.long	6
	.long	32
	.long	7
	.long	34
	.globl	box8
	.align 32
	.type	box8, @object
	.size	box8, 32
box8:
	.long	4
	.long	30
	.long	5
	.long	28
	.long	5
	.long	30
	.long	5
	.long	32
	.globl	box9
	.align 32
	.type	box9, @object
	.size	box9, 32
box9:
	.long	4
	.long	30
	.long	5
	.long	28
	.long	5
	.long	32
	.long	6
	.long	30
	.globl	box10
	.align 32
	.type	box10, @object
	.size	box10, 32
box10:
	.long	4
	.long	28
	.long	4
	.long	30
	.long	4
	.long	32
	.long	4
	.long	34
	.globl	box11
	.align 32
	.type	box11, @object
	.size	box11, 32
box11:
	.long	4
	.long	28
	.long	5
	.long	28
	.long	5
	.long	30
	.long	5
	.long	32
	.globl	box12
	.align 32
	.type	box12, @object
	.size	box12, 32
box12:
	.long	4
	.long	28
	.long	4
	.long	30
	.long	5
	.long	30
	.long	5
	.long	32
	.globl	box13
	.align 32
	.type	box13, @object
	.size	box13, 32
box13:
	.long	4
	.long	28
	.long	4
	.long	30
	.long	5
	.long	28
	.long	5
	.long	30
	.globl	box14
	.align 32
	.type	box14, @object
	.size	box14, 32
box14:
	.long	4
	.long	28
	.long	4
	.long	34
	.long	5
	.long	30
	.long	5
	.long	32
	.globl	box15
	.align 32
	.type	box15, @object
	.size	box15, 40
box15:
	.long	4
	.long	26
	.long	4
	.long	28
	.long	4
	.long	30
	.long	4
	.long	32
	.long	4
	.long	34
	.globl	box16
	.align 32
	.type	box16, @object
	.size	box16, 40
box16:
	.long	4
	.long	30
	.long	5
	.long	28
	.long	5
	.long	30
	.long	5
	.long	32
	.long	6
	.long	30
	.globl	box17
	.align 32
	.type	box17, @object
	.size	box17, 40
box17:
	.long	4
	.long	28
	.long	4
	.long	32
	.long	5
	.long	30
	.long	6
	.long	28
	.long	6
	.long	32
	.globl	box18
	.align 32
	.type	box18, @object
	.size	box18, 40
box18:
	.long	4
	.long	28
	.long	4
	.long	32
	.long	5
	.long	28
	.long	5
	.long	30
	.long	5
	.long	32
	.globl	box19
	.align 32
	.type	box19, @object
	.size	box19, 40
box19:
	.long	4
	.long	28
	.long	4
	.long	30
	.long	5
	.long	30
	.long	6
	.long	30
	.long	6
	.long	32
	.globl	box20
	.align 32
	.type	box20, @object
	.size	box20, 40
box20:
	.long	4
	.long	28
	.long	5
	.long	28
	.long	6
	.long	28
	.long	6
	.long	30
	.long	6
	.long	32
	.globl	box21
	.align 32
	.type	box21, @object
	.size	box21, 40
box21:
	.long	4
	.long	28
	.long	4
	.long	30
	.long	5
	.long	30
	.long	5
	.long	32
	.long	6
	.long	32
	.globl	box22
	.align 32
	.type	box22, @object
	.size	box22, 40
box22:
	.long	4
	.long	26
	.long	4
	.long	34
	.long	5
	.long	28
	.long	5
	.long	30
	.long	5
	.long	32
	.globl	box23
	.align 32
	.type	box23, @object
	.size	box23, 40
box23:
	.long	4
	.long	26
	.long	4
	.long	34
	.long	5
	.long	28
	.long	5
	.long	32
	.long	6
	.long	30
	.globl	box24
	.align 32
	.type	box24, @object
	.size	box24, 40
box24:
	.long	4
	.long	26
	.long	5
	.long	28
	.long	6
	.long	30
	.long	7
	.long	32
	.long	8
	.long	34
	.globl	box25
	.align 32
	.type	box25, @object
	.size	box25, 40
box25:
	.long	4
	.long	28
	.long	4
	.long	32
	.long	5
	.long	26
	.long	5
	.long	30
	.long	5
	.long	34
	.globl	box26
	.align 32
	.type	box26, @object
	.size	box26, 64
box26:
	.long	4
	.long	28
	.long	4
	.long	34
	.long	5
	.long	30
	.long	5
	.long	32
	.long	6
	.long	30
	.long	6
	.long	32
	.long	7
	.long	28
	.long	7
	.long	34
	.globl	box27
	.align 32
	.type	box27, @object
	.size	box27, 72
box27:
	.long	4
	.long	30
	.long	5
	.long	28
	.long	5
	.long	32
	.long	6
	.long	26
	.long	6
	.long	30
	.long	6
	.long	34
	.long	7
	.long	28
	.long	7
	.long	32
	.long	8
	.long	30
	.globl	box28
	.align 32
	.type	box28, @object
	.size	box28, 104
box28:
	.long	4
	.long	30
	.long	5
	.long	28
	.long	5
	.long	30
	.long	5
	.long	32
	.long	6
	.long	26
	.long	6
	.long	28
	.long	6
	.long	30
	.long	6
	.long	32
	.long	6
	.long	34
	.long	7
	.long	28
	.long	7
	.long	30
	.long	7
	.long	32
	.long	8
	.long	30
	.globl	box29
	.align 32
	.type	box29, @object
	.size	box29, 104
box29:
	.long	4
	.long	30
	.long	5
	.long	30
	.long	6
	.long	28
	.long	6
	.long	30
	.long	6
	.long	32
	.long	7
	.long	26
	.long	7
	.long	30
	.long	7
	.long	34
	.long	8
	.long	30
	.long	9
	.long	30
	.long	10
	.long	30
	.long	11
	.long	30
	.long	12
	.long	30
	.globl	box30
	.align 32
	.type	box30, @object
	.size	box30, 136
box30:
	.long	4
	.long	26
	.long	4
	.long	28
	.long	4
	.long	30
	.long	4
	.long	34
	.long	5
	.long	30
	.long	5
	.long	34
	.long	6
	.long	26
	.long	6
	.long	28
	.long	6
	.long	30
	.long	6
	.long	32
	.long	6
	.long	34
	.long	7
	.long	26
	.long	7
	.long	30
	.long	8
	.long	26
	.long	8
	.long	30
	.long	8
	.long	32
	.long	8
	.long	34
	.globl	box31
	.align 32
	.type	box31, @object
	.size	box31, 136
box31:
	.long	4
	.long	30
	.long	5
	.long	28
	.long	6
	.long	26
	.long	6
	.long	34
	.long	7
	.long	28
	.long	7
	.long	32
	.long	7
	.long	36
	.long	8
	.long	22
	.long	8
	.long	30
	.long	8
	.long	38
	.long	9
	.long	24
	.long	9
	.long	28
	.long	9
	.long	32
	.long	10
	.long	26
	.long	10
	.long	34
	.long	11
	.long	32
	.long	12
	.long	30
	.globl	length
	.align 32
	.type	length, @object
	.size	length, 128
length:
	.long	2
	.long	4
	.long	4
	.long	6
	.long	6
	.long	6
	.long	6
	.long	8
	.long	8
	.long	8
	.long	8
	.long	8
	.long	8
	.long	8
	.long	8
	.long	10
	.long	10
	.long	10
	.long	10
	.long	10
	.long	10
	.long	10
	.long	10
	.long	10
	.long	10
	.long	10
	.long	16
	.long	18
	.long	26
	.long	26
	.long	34
	.long	34
	.globl	BOX
	.section	.data.rel.local,"aw"
	.align 32
	.type	BOX, @object
	.size	BOX, 256
BOX:
	.quad	box0
	.quad	box1
	.quad	box2
	.quad	box3
	.quad	box4
	.quad	box5
	.quad	box6
	.quad	box7
	.quad	box8
	.quad	box9
	.quad	box10
	.quad	box11
	.quad	box12
	.quad	box13
	.quad	box14
	.quad	box15
	.quad	box16
	.quad	box17
	.quad	box18
	.quad	box19
	.quad	box20
	.quad	box21
	.quad	box22
	.quad	box23
	.quad	box24
	.quad	box25
	.quad	box26
	.quad	box27
	.quad	box28
	.quad	box29
	.quad	box30
	.quad	box31
	.globl	score
	.bss
	.align 4
	.type	score, @object
	.size	score, 4
score:
	.zero	4
	.globl	width
	.data
	.align 4
	.type	width, @object
	.size	width, 4
width:
	.long	25
	.globl	height
	.align 4
	.type	height, @object
	.size	height, 4
height:
	.long	30
	.globl	prelevel
	.align 4
	.type	prelevel, @object
	.size	prelevel, 4
prelevel:
	.long	6
	.globl	runlevel
	.align 4
	.type	runlevel, @object
	.size	runlevel, 4
runlevel:
	.long	31
	.globl	speedlevel
	.bss
	.align 4
	.type	speedlevel, @object
	.size	speedlevel, 4
speedlevel:
	.zero	4
	.globl	toph
	.section	.rodata
	.align 4
	.type	toph, @object
	.size	toph, 4
toph:
	.long	3
	.globl	modw
	.align 4
	.type	modw, @object
	.size	modw, 4
modw:
	.long	4
	.local	sig
	.comm	sig,4,4
	.globl	color_len
	.data
	.align 8
	.type	color_len, @object
	.size	color_len, 8
color_len:
	.quad	593
	.globl	color_size
	.align 8
	.type	color_size, @object
	.size	color_size, 8
color_size:
	.quad	12
	.globl	str_size
	.align 8
	.type	str_size, @object
	.size	str_size, 8
str_size:
	.quad	1000
	.globl	wthm
	.bss
	.align 4
	.type	wthm, @object
	.size	wthm, 4
wthm:
	.zero	4
	.globl	dist
	.align 4
	.type	dist, @object
	.size	dist, 4
dist:
	.zero	4
	.globl	lower
	.align 4
	.type	lower, @object
	.size	lower, 4
lower:
	.zero	4
	.globl	unit
	.section	.rodata
.LC0:
	.string	"[]"
	.section	.data.rel.ro.local,"aw"
	.align 8
	.type	unit, @object
	.size	unit, 8
unit:
	.quad	.LC0
	.local	oldt
	.comm	oldt,60,32
	.globl	gmover
	.section	.rodata
.LC1:
	.string	"\033[?25h\033[36;26HGame Over!\033[0m\n"
	.section	.data.rel.ro.local
	.align 8
	.type	gmover, @object
	.size	gmover, 8
gmover:
	.quad	.LC1
	.globl	box
	.bss
	.align 32
	.type	box, @object
	.size	box, 112
box:
	.zero	112
	.globl	locus
	.align 32
	.type	locus, @object
	.size	locus, 112
locus:
	.zero	112
	.text
	.globl	main
	.type	main, @function
main:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 1104
	mov	DWORD PTR -1092[rbp], edi
	mov	QWORD PTR -1104[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rdx, QWORD PTR -1104[rbp]
	mov	eax, DWORD PTR -1092[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	get_argv
	test	eax, eax
	je	.L2
	mov	edi, 0
	call	exit@PLT
.L2:
	mov	edi, 0
	call	time@PLT
	mov	edi, eax
	call	srand@PLT
	lea	rdi, box[rip]
	call	vector_init
	lea	rdi, locus[rip]
	call	vector_init
	lea	rax, -1040[rbp]
	mov	rdi, rax
	call	init_piece
	lea	rax, -1072[rbp]
	mov	rdi, rax
	call	init_time
	lea	rdx, -1072[rbp]
	lea	rax, -1088[rbp]
	mov	rcx, rdx
	lea	rdx, get_time_current[rip]
	mov	esi, 0
	mov	rdi, rax
	call	pthread_create@PLT
	lea	rdx, -1040[rbp]
	lea	rax, -1080[rbp]
	mov	rcx, rdx
	lea	rdx, piece_persig[rip]
	mov	esi, 0
	mov	rdi, rax
	call	pthread_create@PLT
	mov	rax, QWORD PTR -1088[rbp]
	mov	rdi, rax
	call	pthread_detach@PLT
	mov	rax, QWORD PTR -1080[rbp]
	mov	rdi, rax
	call	pthread_detach@PLT
	mov	rdx, QWORD PTR -1032[rbp]
	lea	rax, -1040[rbp]
	mov	rdi, rax
	call	rdx
	mov	rdx, QWORD PTR -1024[rbp]
	lea	rax, -1040[rbp]
	mov	rdi, rax
	call	rdx
	mov	rax, QWORD PTR box[rip+8]
	lea	rdi, box[rip]
	call	rax
	mov	rax, QWORD PTR locus[rip+8]
	lea	rdi, locus[rip]
	call	rax
	mov	eax, 0
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L4
	call	__stack_chk_fail@PLT
.L4:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	main, .-main
	.section	.rodata
.LC2:
	.string	"-h"
.LC3:
	.string	"--help"
	.align 8
.LC4:
	.string	"Usage: %s [ <runlevel> [ <previewlevel> [ <speedlevel> [ <width> [height] ] ] ] ]\n"
	.align 8
.LC5:
	.string	"Range: [ 0 <= runlevel <= 31 ] [ previewlevel >= 1 ] [ speedlevel <= 30 ] [ width >= 17 ] [ height >= 10 ]"
.LC6:
	.string	"-v"
.LC7:
	.string	"--version"
.LC8:
	.string	"Version 1.0.3"
	.text
	.globl	get_argv
	.type	get_argv, @function
get_argv:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	QWORD PTR -32[rbp], rsi
	mov	eax, DWORD PTR width[rip]
	add	eax, eax
	mov	edx, 4
	add	eax, edx
	mov	DWORD PTR wthm[rip], eax
	mov	edx, 4
	mov	eax, DWORD PTR wthm[rip]
	add	eax, edx
	add	eax, 3
	mov	DWORD PTR dist[rip], eax
	mov	eax, DWORD PTR height[rip]
	mov	edx, 3
	add	eax, edx
	mov	DWORD PTR lower[rip], eax
	cmp	DWORD PTR -20[rbp], 2
	jle	.L6
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	atoi@PLT
	mov	DWORD PTR runlevel[rip], eax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 16
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	atoi@PLT
	mov	DWORD PTR prelevel[rip], eax
	cmp	DWORD PTR -20[rbp], 3
	jle	.L7
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 24
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	atoi@PLT
	mov	DWORD PTR speedlevel[rip], eax
	cmp	DWORD PTR -20[rbp], 4
	jle	.L7
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 32
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	atoi@PLT
	mov	DWORD PTR width[rip], eax
	cmp	DWORD PTR -20[rbp], 5
	jle	.L7
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 40
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	atoi@PLT
	mov	DWORD PTR height[rip], eax
.L7:
	mov	eax, DWORD PTR width[rip]
	add	eax, eax
	mov	edx, 4
	add	eax, edx
	mov	DWORD PTR wthm[rip], eax
	mov	edx, 4
	mov	eax, DWORD PTR wthm[rip]
	add	eax, edx
	add	eax, 3
	mov	DWORD PTR dist[rip], eax
	mov	eax, DWORD PTR height[rip]
	mov	edx, 3
	add	eax, edx
	mov	DWORD PTR lower[rip], eax
	mov	eax, 0
	jmp	.L8
.L6:
	cmp	DWORD PTR -20[rbp], 2
	jne	.L9
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, .LC2[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	je	.L10
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L11
.L10:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rsi, rax
	lea	rdi, .LC4[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rdi, .LC5[rip]
	call	puts@PLT
	mov	eax, 1
	jmp	.L8
.L11:
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, .LC6[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	je	.L12
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, .LC7[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L13
.L12:
	lea	rdi, .LC8[rip]
	call	puts@PLT
	mov	eax, 1
	jmp	.L8
.L13:
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	atoi@PLT
	mov	DWORD PTR runlevel[rip], eax
	mov	eax, 0
	jmp	.L8
.L9:
	mov	eax, 0
.L8:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	get_argv, .-get_argv
	.globl	get_sig
	.type	get_sig, @function
get_sig:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, 0
	lock xadd	DWORD PTR sig[rip], eax
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	get_sig, .-get_sig
	.globl	set_sig
	.type	set_sig, @function
set_sig:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -4[rbp], edi
	mov	eax, DWORD PTR -4[rbp]
	xchg	eax, DWORD PTR sig[rip]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	set_sig, .-set_sig
	.globl	restore_terminal_settings
	.type	restore_terminal_settings, @function
restore_terminal_settings:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	rdx, oldt[rip]
	mov	esi, 0
	mov	edi, 0
	call	tcsetattr@PLT
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	restore_terminal_settings, .-restore_terminal_settings
	.globl	disable_waiting_for_enter
	.type	disable_waiting_for_enter, @function
disable_waiting_for_enter:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rsi, oldt[rip]
	mov	edi, 0
	call	tcgetattr@PLT
	mov	rax, QWORD PTR oldt[rip]
	mov	rdx, QWORD PTR oldt[rip+8]
	mov	QWORD PTR -80[rbp], rax
	mov	QWORD PTR -72[rbp], rdx
	mov	rax, QWORD PTR oldt[rip+16]
	mov	rdx, QWORD PTR oldt[rip+24]
	mov	QWORD PTR -64[rbp], rax
	mov	QWORD PTR -56[rbp], rdx
	mov	rax, QWORD PTR oldt[rip+32]
	mov	rdx, QWORD PTR oldt[rip+40]
	mov	QWORD PTR -48[rbp], rax
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR oldt[rip+48]
	mov	QWORD PTR -32[rbp], rax
	mov	eax, DWORD PTR oldt[rip+56]
	mov	DWORD PTR -24[rbp], 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
	lea	rdi, restore_terminal_settings[rip]
	call	atexit@PLT
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L20
	call	__stack_chk_fail@PLT
.L20:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	disable_waiting_for_enter, .-disable_waiting_for_enter
	.globl	wait
	.type	wait, @function
wait:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	imul	eax, eax, 1000
	mov	edi, eax
	call	usleep@PLT
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	wait, .-wait
	.section	.rodata
.LC9:
	.string	"\033[?25h\033[36;4H"
	.text
	.globl	runleave
	.type	runleave, @function
runleave:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	cmp	DWORD PTR -4[rbp], 0
	jne	.L24
	lea	rax, .LC1[rip]
	mov	rdi, rax
	call	puts@PLT
	jmp	.L27
.L24:
	cmp	DWORD PTR -4[rbp], 1
	jne	.L26
	mov	edi, 22
	call	set_sig
.L26:
	lea	rdi, .LC9[rip]
	call	puts@PLT
.L27:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	runleave, .-runleave
	.globl	vector_clear
	.type	vector_clear, @function
vector_clear:
.LFB14:
	.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 -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 96[rax], 0
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	vector_clear, .-vector_clear
	.globl	vector_at
	.type	vector_at, @function
vector_at:
.LFB15:
	.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 -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 88[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	vector_at, .-vector_at
	.globl	vector_set
	.type	vector_set, @function
vector_set:
.LFB16:
	.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 -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	DWORD PTR -20[rbp], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 88[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 2
	add	rdx, rax
	mov	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR [rdx], eax
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	vector_set, .-vector_set
	.globl	vector_copy
	.type	vector_copy, @function
vector_copy:
.LFB17:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 96[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 96[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 104[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 104[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 104[rax]
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 88[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	realloc@PLT
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 88[rdx], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 96[rax]
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -16[rbp]
	mov	rcx, QWORD PTR 88[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 88[rax]
	mov	rsi, rcx
	mov	rdi, rax
	call	memcpy@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	vector_copy, .-vector_copy
	.globl	vector_reserve
	.type	vector_reserve, @function
vector_reserve:
.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, 96
	mov	QWORD PTR -88[rbp], rdi
	mov	QWORD PTR -96[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR -96[rbp]
	mov	QWORD PTR 104[rax], rdx
	mov	rax, QWORD PTR -96[rbp]
	sal	rax, 2
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR 96[rax]
	cmp	QWORD PTR -96[rbp], rax
	cmovbe	rax, QWORD PTR -96[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -88[rbp]
	mov	rcx, QWORD PTR 88[rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	memcpy@PLT
	mov	DWORD PTR -36[rbp], 0
	lea	rax, -36[rbp]
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR 88[rax]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -24[rbp], rax
	lea	rax, -32[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	DWORD PTR -76[rbp], 0
	jmp	.L34
.L35:
	mov	eax, DWORD PTR -76[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	free@PLT
	add	DWORD PTR -76[rbp], 1
.L34:
	mov	eax, DWORD PTR -76[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	cmp	QWORD PTR -56[rbp], rax
	jne	.L35
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR -72[rbp]
	mov	QWORD PTR 88[rax], rdx
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L36
	call	__stack_chk_fail@PLT
.L36:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	vector_reserve, .-vector_reserve
	.globl	vector_resize
	.type	vector_resize, @function
vector_resize:
.LFB19:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -8[rbp]
	mov	rcx, QWORD PTR 48[rax]
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 96[rax], rdx
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	vector_resize, .-vector_resize
	.globl	vector_assign
	.type	vector_assign, @function
vector_assign:
.LFB20:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -36[rbp], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 104[rax]
	cmp	QWORD PTR -32[rbp], rax
	jbe	.L39
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rax
	lea	rcx, 1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	rdx
.L39:
	mov	QWORD PTR -8[rbp], 0
	jmp	.L40
.L41:
	mov	rax, QWORD PTR -24[rbp]
	mov	r8, QWORD PTR 64[rax]
	mov	edx, DWORD PTR -36[rbp]
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	r8
	add	QWORD PTR -8[rbp], 1
.L40:
	mov	rax, QWORD PTR -8[rbp]
	cmp	rax, QWORD PTR -32[rbp]
	jne	.L41
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 96[rax], rdx
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	vector_assign, .-vector_assign
	.globl	vector_size
	.type	vector_size, @function
vector_size:
.LFB21:
	.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 -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 96[rax]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	vector_size, .-vector_size
	.globl	vector_capacity
	.type	vector_capacity, @function
vector_capacity:
.LFB22:
	.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 -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 104[rax]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE22:
	.size	vector_capacity, .-vector_capacity
	.globl	vector_push_back
	.type	vector_push_back, @function
vector_push_back:
.LFB23:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	DWORD PTR -12[rbp], esi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 96[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 104[rax]
	cmp	rdx, rax
	jb	.L47
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 104[rax]
	add	rax, rax
	lea	rcx, 1[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	rdx
.L47:
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, QWORD PTR 88[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 96[rax]
	lea	rcx, 1[rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 96[rdx], rcx
	sal	rax, 2
	lea	rdx, [rsi+rax]
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR [rdx], eax
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE23:
	.size	vector_push_back, .-vector_push_back
	.globl	vector_delete
	.type	vector_delete, @function
vector_delete:
.LFB24:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -72[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -36[rbp], 0
	lea	rax, -36[rbp]
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 88[rax]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -24[rbp], rax
	lea	rax, -32[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	DWORD PTR -60[rbp], 0
	jmp	.L49
.L50:
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	free@PLT
	add	DWORD PTR -60[rbp], 1
.L49:
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	cmp	QWORD PTR -56[rbp], rax
	jne	.L50
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR 88[rax], 0
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR 96[rax], 0
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR 104[rax], 0
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L51
	call	__stack_chk_fail@PLT
.L51:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE24:
	.size	vector_delete, .-vector_delete
	.globl	vector_init
	.type	vector_init, @function
vector_init:
.LFB25:
	.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 -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 88[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 96[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 104[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, vector_at[rip]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, vector_set[rip]
	mov	QWORD PTR 64[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, vector_copy[rip]
	mov	QWORD PTR 80[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, vector_size[rip]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, vector_clear[rip]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, vector_resize[rip]
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, vector_delete[rip]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, vector_assign[rip]
	mov	QWORD PTR 72[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, vector_capacity[rip]
	mov	QWORD PTR 56[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, vector_reserve[rip]
	mov	QWORD PTR 48[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, vector_push_back[rip]
	mov	QWORD PTR 24[rax], rdx
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE25:
	.size	vector_init, .-vector_init
	.globl	max_distance_clear
	.type	max_distance_clear, @function
max_distance_clear:
.LFB26:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 32
	mov	rdi, rdx
	call	rax
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE26:
	.size	max_distance_clear, .-max_distance_clear
	.globl	max_distance_max_vertical_coordinate
	.type	max_distance_max_vertical_coordinate, @function
max_distance_max_vertical_coordinate:
.LFB27:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 160
	mov	QWORD PTR -152[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -120[rbp], 0
	mov	rax, QWORD PTR box[rip+16]
	lea	rdi, box[rip]
	call	rax
	shr	rax
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	sal	rax, 3
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -80[rbp], rax
	mov	QWORD PTR -112[rbp], 0
	jmp	.L56
.L63:
	mov	rdx, QWORD PTR box[rip+40]
	mov	rax, QWORD PTR -112[rbp]
	mov	rsi, rax
	lea	rdi, box[rip]
	call	rdx
	mov	DWORD PTR -128[rbp], eax
	mov	rax, QWORD PTR box[rip+40]
	mov	rdx, QWORD PTR -112[rbp]
	add	rdx, 1
	mov	rsi, rdx
	lea	rdi, box[rip]
	call	rax
	mov	DWORD PTR -124[rbp], eax
	mov	QWORD PTR -104[rbp], 0
	jmp	.L57
.L60:
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -124[rbp], eax
	je	.L70
	add	QWORD PTR -104[rbp], 1
.L57:
	mov	rax, QWORD PTR -104[rbp]
	cmp	rax, QWORD PTR -120[rbp]
	jne	.L60
	jmp	.L59
.L70:
	nop
.L59:
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	add	rax, 4
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	cmp	rax, QWORD PTR -120[rbp]
	jne	.L61
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -124[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR -128[rbp]
	mov	DWORD PTR [rax], edx
	add	QWORD PTR -120[rbp], 1
	jmp	.L62
.L61:
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -128[rbp], eax
	jle	.L62
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR -128[rbp]
	mov	DWORD PTR [rax], edx
.L62:
	add	QWORD PTR -112[rbp], 2
.L56:
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rax
	cmp	QWORD PTR -112[rbp], rax
	jne	.L63
	mov	QWORD PTR -96[rbp], 0
	jmp	.L64
.L65:
	mov	rax, QWORD PTR -152[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -96[rbp]
	lea	rcx, 0[0+rax*8]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rcx
	mov	eax, DWORD PTR 4[rax]
	mov	rcx, QWORD PTR -152[rbp]
	add	rcx, 32
	mov	esi, eax
	mov	rdi, rcx
	call	rdx
	mov	rax, QWORD PTR -152[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -96[rbp]
	lea	rcx, 0[0+rax*8]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rcx
	mov	eax, DWORD PTR [rax]
	mov	rcx, QWORD PTR -152[rbp]
	add	rcx, 32
	mov	esi, eax
	mov	rdi, rcx
	call	rdx
	add	QWORD PTR -96[rbp], 1
.L64:
	mov	rax, QWORD PTR -96[rbp]
	cmp	rax, QWORD PTR -120[rbp]
	jne	.L65
	mov	DWORD PTR -36[rbp], 0
	lea	rax, -36[rbp]
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -24[rbp], rax
	lea	rax, -32[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	DWORD PTR -132[rbp], 0
	jmp	.L66
.L67:
	mov	eax, DWORD PTR -132[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	free@PLT
	add	DWORD PTR -132[rbp], 1
.L66:
	mov	eax, DWORD PTR -132[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	cmp	QWORD PTR -72[rbp], rax
	jne	.L67
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L69
	call	__stack_chk_fail@PLT
.L69:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE27:
	.size	max_distance_max_vertical_coordinate, .-max_distance_max_vertical_coordinate
	.globl	max_distance_max_height
	.type	max_distance_max_height, @function
max_distance_max_height:
.LFB28:
	.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, 56
	.cfi_offset 3, -24
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	DWORD PTR -36[rbp], 0
	mov	QWORD PTR -24[rbp], 0
	jmp	.L72
.L77:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 72[rax]
	mov	rax, QWORD PTR -56[rbp]
	lea	rcx, 32[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	call	rdx
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 72[rax]
	mov	rdx, QWORD PTR -24[rbp]
	lea	rcx, 1[rdx]
	mov	rdx, QWORD PTR -56[rbp]
	add	rdx, 32
	mov	rsi, rcx
	mov	rdi, rdx
	call	rax
	mov	DWORD PTR -28[rbp], eax
	mov	edx, DWORD PTR -32[rbp]
	mov	eax, DWORD PTR -36[rbp]
	add	eax, edx
	mov	edx, 4
	sub	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -28[rbp]
	mov	ecx, eax
	shr	ecx, 31
	add	eax, ecx
	sar	eax
	mov	ecx, 3
	sub	eax, ecx
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	eax, 1
	jne	.L73
	mov	eax, DWORD PTR -36[rbp]
	sub	eax, 1
	jmp	.L74
.L73:
	mov	edx, DWORD PTR -32[rbp]
	mov	eax, DWORD PTR -36[rbp]
	add	edx, eax
	mov	eax, DWORD PTR lower[rip]
	cmp	edx, eax
	jne	.L75
	mov	eax, DWORD PTR -36[rbp]
	jmp	.L74
.L75:
	mov	rax, QWORD PTR -24[rbp]
	lea	rbx, 2[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 48[rax]
	mov	rdx, QWORD PTR -56[rbp]
	add	rdx, 32
	mov	rdi, rdx
	call	rax
	cmp	rbx, rax
	jne	.L76
	mov	QWORD PTR -24[rbp], -2
	add	DWORD PTR -36[rbp], 1
.L76:
	add	QWORD PTR -24[rbp], 2
.L72:
	mov	eax, DWORD PTR height[rip]
	cmp	DWORD PTR -36[rbp], eax
	jne	.L77
	mov	eax, 0
.L74:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE28:
	.size	max_distance_max_height, .-max_distance_max_height
	.globl	max_distance_delete
	.type	max_distance_delete, @function
max_distance_delete:
.LFB29:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 32
	mov	rdi, rdx
	call	rax
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE29:
	.size	max_distance_delete, .-max_distance_delete
	.globl	max_distance_init
	.type	max_distance_init, @function
max_distance_init:
.LFB30:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 8
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 32
	mov	rdi, rax
	call	vector_init
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, max_distance_clear[rip]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, max_distance_delete[rip]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, max_distance_max_height[rip]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, max_distance_max_vertical_coordinate[rip]
	mov	QWORD PTR 24[rax], rdx
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE30:
	.size	max_distance_init, .-max_distance_init
	.globl	transpose_unique
	.type	transpose_unique, @function
transpose_unique:
.LFB31:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	QWORD PTR -32[rbp], 0
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 288[rax]
	mov	rdx, QWORD PTR -56[rbp]
	add	rdx, 288
	mov	rdi, rdx
	call	rax
	mov	QWORD PTR -16[rbp], 0
	jmp	.L81
.L87:
	mov	rax, QWORD PTR -64[rbp]
	mov	rcx, QWORD PTR 40[rax]
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
	mov	DWORD PTR -40[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -16[rbp]
	lea	rcx, 1[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	rdx
	mov	DWORD PTR -36[rbp], eax
	mov	QWORD PTR -24[rbp], 0
	jmp	.L82
.L85:
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rax
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 328[rax]
	mov	rax, QWORD PTR -56[rbp]
	lea	rcx, 288[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	call	rdx
	cmp	DWORD PTR -40[rbp], eax
	jne	.L83
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 328[rax]
	mov	rdx, QWORD PTR -8[rbp]
	lea	rcx, 1[rdx]
	mov	rdx, QWORD PTR -56[rbp]
	add	rdx, 288
	mov	rsi, rcx
	mov	rdi, rdx
	call	rax
	cmp	DWORD PTR -36[rbp], eax
	je	.L88
.L83:
	add	QWORD PTR -24[rbp], 1
.L82:
	mov	rax, QWORD PTR -24[rbp]
	cmp	rax, QWORD PTR -32[rbp]
	jne	.L85
	jmp	.L84
.L88:
	nop
.L84:
	mov	rax, QWORD PTR -24[rbp]
	cmp	rax, QWORD PTR -32[rbp]
	jne	.L86
	add	QWORD PTR -32[rbp], 1
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 312[rax]
	mov	rax, QWORD PTR -56[rbp]
	lea	rcx, 288[rax]
	mov	eax, DWORD PTR -40[rbp]
	mov	esi, eax
	mov	rdi, rcx
	call	rdx
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 312[rax]
	mov	rax, QWORD PTR -56[rbp]
	lea	rcx, 288[rax]
	mov	eax, DWORD PTR -36[rbp]
	mov	esi, eax
	mov	rdi, rcx
	call	rdx
.L86:
	add	QWORD PTR -16[rbp], 2
.L81:
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, rax
	call	rdx
	cmp	QWORD PTR -16[rbp], rax
	jne	.L87
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 80[rax]
	mov	rax, QWORD PTR -56[rbp]
	lea	rcx, 288[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	rdx
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE31:
	.size	transpose_unique, .-transpose_unique
	.globl	transpose_addbox
	.type	transpose_addbox, @function
transpose_addbox:
.LFB32:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	DWORD PTR -32[rbp], edx
	mov	QWORD PTR -8[rbp], 0
	jmp	.L90
.L91:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -28[rbp]
	movsx	rcx, eax
	mov	rax, QWORD PTR -8[rbp]
	add	rcx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	rdx
	mov	edx, DWORD PTR -32[rbp]
	add	eax, edx
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 64[rax]
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, [rdx+rax]
	mov	edx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	rcx
	add	QWORD PTR -8[rbp], 2
.L90:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	rdx
	cmp	QWORD PTR -8[rbp], rax
	jne	.L91
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE32:
	.size	transpose_addbox, .-transpose_addbox
	.globl	transpose_mid_point
	.type	transpose_mid_point, @function
transpose_mid_point:
.LFB33:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	rdx
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	shr	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	and	eax, 3
	shr	rax
	mov	rcx, rax
	mov	rax, rdx
	sub	rax, rcx
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR 40[rax]
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
	mov	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -16[rbp]
	lea	rcx, 1[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	rdx
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE33:
	.size	transpose_mid_point, .-transpose_mid_point
	.globl	transpose_multiple
	.type	transpose_multiple, @function
transpose_multiple:
.LFB34:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	DWORD PTR -52[rbp], edx
	mov	DWORD PTR -56[rbp], ecx
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR 136[rax]
	mov	rax, QWORD PTR -40[rbp]
	lea	rdi, 64[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, 0
	mov	rsi, rax
	call	rcx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	rax, QWORD PTR -40[rbp]
	lea	rcx, 64[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	call	rdx
	mov	QWORD PTR -16[rbp], 0
	jmp	.L95
.L96:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -16[rbp]
	lea	rcx, 3[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	rdx
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -16[rbp]
	lea	rcx, 1[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	rdx
	mov	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 104[rax]
	mov	rdx, QWORD PTR -16[rbp]
	lea	rcx, 1[rdx]
	mov	rdx, QWORD PTR -40[rbp]
	add	rdx, 64
	mov	rsi, rcx
	mov	rdi, rdx
	call	rax
	mov	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR 128[rax]
	mov	eax, DWORD PTR -28[rbp]
	sub	eax, DWORD PTR -24[rbp]
	imul	eax, DWORD PTR -52[rbp]
	cdq
	idiv	DWORD PTR -56[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -20[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rsi, 3[rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 64
	mov	rdi, rax
	call	rcx
	add	QWORD PTR -16[rbp], 2
.L95:
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 2
	cmp	QWORD PTR -16[rbp], rax
	jne	.L96
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 64
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE34:
	.size	transpose_multiple, .-transpose_multiple
	.globl	transpose_coordinate_transformation
	.type	transpose_coordinate_transformation, @function
transpose_coordinate_transformation:
.LFB35:
	.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, 56
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	movsd	QWORD PTR -48[rbp], xmm0
	mov	DWORD PTR -52[rbp], esi
	mov	DWORD PTR -56[rbp], edx
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 80[rax]
	mov	rdx, QWORD PTR -40[rbp]
	add	rdx, 64
	mov	rdi, rdx
	call	rax
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR 248[rax]
	mov	rax, QWORD PTR -40[rbp]
	lea	rdi, 176[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	rsi, rax
	call	rcx
	mov	DWORD PTR -28[rbp], 0
	jmp	.L99
.L100:
	mov	rax, QWORD PTR -40[rbp]
	mov	rbx, QWORD PTR 240[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 104[rax]
	mov	eax, DWORD PTR -28[rbp]
	add	eax, 1
	cdqe
	mov	rcx, QWORD PTR -40[rbp]
	add	rcx, 64
	mov	rsi, rax
	mov	rdi, rcx
	call	rdx
	mov	edx, DWORD PTR -52[rbp]
	add	eax, edx
	sub	eax, DWORD PTR -56[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	mov	rcx, QWORD PTR -40[rbp]
	add	rcx, 176
	mov	rsi, rax
	mov	rdi, rcx
	call	rbx
	mov	rax, QWORD PTR -40[rbp]
	mov	rbx, QWORD PTR 240[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 104[rax]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	mov	rcx, QWORD PTR -40[rbp]
	add	rcx, 64
	mov	rsi, rax
	mov	rdi, rcx
	call	rdx
	sub	eax, DWORD PTR -52[rbp]
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, eax
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -48[rbp]
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, DWORD PTR -56[rbp]
	addsd	xmm0, xmm1
	cvttsd2si	edx, xmm0
	mov	eax, DWORD PTR -28[rbp]
	add	eax, 1
	cdqe
	mov	rcx, QWORD PTR -40[rbp]
	add	rcx, 176
	mov	rsi, rax
	mov	rdi, rcx
	call	rbx
	add	DWORD PTR -28[rbp], 2
.L99:
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	cmp	QWORD PTR -24[rbp], rax
	jne	.L100
	movsd	xmm0, QWORD PTR -48[rbp]
	ucomisd	xmm0, QWORD PTR .LC10[rip]
	jp	.L104
	movsd	xmm0, QWORD PTR -48[rbp]
	ucomisd	xmm0, QWORD PTR .LC10[rip]
	je	.L103
	jmp	.L104
.L103:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -40[rbp]
	lea	rcx, 176[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	rdx
.L104:
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE35:
	.size	transpose_coordinate_transformation, .-transpose_coordinate_transformation
	.globl	transpose_abstract
	.type	transpose_abstract, @function
transpose_abstract:
.LFB36:
	.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, 72
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -56[rbp], rdx
	mov	QWORD PTR -64[rbp], rcx
	mov	DWORD PTR -68[rbp], r8d
	mov	DWORD PTR -72[rbp], r9d
	mov	rax, QWORD PTR -40[rbp]
	mov	rbx, QWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	r8, QWORD PTR 40[rax]
	mov	ecx, DWORD PTR -72[rbp]
	mov	edx, DWORD PTR -68[rbp]
	mov	rsi, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	r8
	mov	rdi, rax
	call	rbx
	mov	QWORD PTR -24[rbp], rax
	mov	edx, DWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR [rax], edx
	mov	edx, DWORD PTR -20[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE36:
	.size	transpose_abstract, .-transpose_abstract
	.globl	transpose_optimize
	.type	transpose_optimize, @function
transpose_optimize:
.LFB37:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -56[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR -56[rbp]
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -52[rbp]
	mov	DWORD PTR -12[rbp], eax
	mov	QWORD PTR -24[rbp], 0
	jmp	.L107
.L109:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR -16[rbp+rax*4]
	mov	DWORD PTR -28[rbp], eax
	cmp	DWORD PTR -28[rbp], 0
	je	.L108
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, eax
	mov	edx, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	rcx
.L108:
	add	QWORD PTR -24[rbp], 1
.L107:
	cmp	QWORD PTR -24[rbp], 2
	jne	.L109
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L110
	call	__stack_chk_fail@PLT
.L110:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE37:
	.size	transpose_optimize, .-transpose_optimize
	.globl	transpose_delete
	.type	transpose_delete, @function
transpose_delete:
.LFB38:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 296[rax]
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 288
	mov	rdi, rdx
	call	rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 72[rax]
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 64
	mov	rdi, rdx
	call	rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 184[rax]
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 176
	mov	rdi, rdx
	call	rax
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE38:
	.size	transpose_delete, .-transpose_delete
	.globl	transpose_init
	.type	transpose_init, @function
transpose_init:
.LFB39:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 8
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, transpose_unique[rip]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, transpose_addbox[rip]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, transpose_delete[rip]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, transpose_optimize[rip]
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, transpose_multiple[rip]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, transpose_abstract[rip]
	mov	QWORD PTR 48[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, transpose_mid_point[rip]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, transpose_coordinate_transformation[rip]
	mov	QWORD PTR 56[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 288
	mov	rdi, rax
	call	vector_init
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 64
	mov	rdi, rax
	call	vector_init
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 176
	mov	rdi, rax
	call	vector_init
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE39:
	.size	transpose_init, .-transpose_init
	.globl	get_time_set_time
	.type	get_time_set_time, @function
get_time_set_time:
.LFB40:
	.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 -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	DWORD PTR -28[rbp], ecx
	mov	QWORD PTR -40[rbp], r8
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -28[rbp], eax
	jne	.L114
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR [rax], 0
.L114:
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	movsx	rdx, eax
	imul	rdx, rdx, 1717986919
	shr	rdx, 32
	sar	edx, 2
	sar	eax, 31
	mov	ecx, eax
	mov	eax, edx
	sub	eax, ecx
	lea	ecx, 48[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	edx, ecx
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, DWORD PTR [rax]
	movsx	rax, edx
	imul	rax, rax, 1717986919
	shr	rax, 32
	sar	eax, 2
	mov	esi, edx
	sar	esi, 31
	sub	eax, esi
	mov	ecx, eax
	mov	eax, ecx
	sal	eax, 2
	add	eax, ecx
	add	eax, eax
	mov	ecx, edx
	sub	ecx, eax
	mov	eax, ecx
	lea	ecx, 48[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	add	rax, 1
	mov	edx, ecx
	mov	BYTE PTR [rax], dl
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE40:
	.size	get_time_set_time, .-get_time_set_time
	.section	.rodata
.LC11:
	.string	"\033[1;33m"
	.align 8
.LC12:
	.string	"\033[2;6H%s%s[Time \033[2;%dH%s]%s\033[0m\n"
.LC13:
	.string	"\033[2;%dH%s%s:%s:%s:%s\033[0m\n"
	.text
	.globl	get_time_current
	.type	get_time_current, @function
get_time_current:
.LFB41:
	.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, 216
	.cfi_offset 3, -24
	mov	QWORD PTR -216[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -216[rbp]
	mov	QWORD PTR -128[rbp], rax
	mov	eax, DWORD PTR width[rip]
	sub	eax, 9
	mov	DWORD PTR -164[rbp], eax
	mov	edi, 32
	call	malloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -128[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	QWORD PTR -152[rbp], 0
	jmp	.L116
.L117:
	mov	rax, QWORD PTR -128[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -152[rbp]
	sal	rax, 3
	lea	rbx, [rdx+rax]
	mov	edi, 3
	call	malloc@PLT
	mov	QWORD PTR [rbx], rax
	mov	rax, QWORD PTR -128[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -152[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	add	rax, 2
	mov	BYTE PTR [rax], 0
	add	QWORD PTR -152[rbp], 1
.L116:
	cmp	QWORD PTR -152[rbp], 4
	jne	.L117
	mov	eax, DWORD PTR -164[rbp]
	add	eax, 1
	cdqe
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -120[rbp], rax
	lea	rax, .LC11[rip]
	mov	QWORD PTR -112[rbp], rax
	mov	QWORD PTR -144[rbp], 0
	jmp	.L118
.L119:
	mov	rdx, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR -144[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 45
	add	QWORD PTR -144[rbp], 1
.L118:
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	cmp	QWORD PTR -144[rbp], rax
	jne	.L119
	mov	eax, DWORD PTR -164[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -120[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 0
	mov	eax, DWORD PTR -164[rbp]
	lea	ecx, 23[rax]
	mov	rdi, QWORD PTR -120[rbp]
	mov	rsi, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR -112[rbp]
	mov	r9, rdi
	mov	r8, rsi
	mov	rsi, rax
	lea	rdi, .LC12[rip]
	mov	eax, 0
	call	printf@PLT
	mov	DWORD PTR -52[rbp], 0
	lea	rax, -52[rbp]
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	QWORD PTR -40[rbp], rax
	lea	rax, -48[rbp]
	mov	QWORD PTR -96[rbp], rax
	mov	DWORD PTR -176[rbp], 0
	jmp	.L120
.L121:
	mov	eax, DWORD PTR -176[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	free@PLT
	add	DWORD PTR -176[rbp], 1
.L120:
	mov	eax, DWORD PTR -176[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	cmp	QWORD PTR -104[rbp], rax
	jne	.L121
	mov	DWORD PTR -196[rbp], 1000
	mov	DWORD PTR -192[rbp], 0
	mov	DWORD PTR -188[rbp], 0
	mov	DWORD PTR -184[rbp], 0
	mov	DWORD PTR -180[rbp], 0
.L124:
	mov	eax, 0
	call	get_sig
	cmp	eax, 22
	jne	.L122
	mov	edi, 0
	call	runleave
	mov	QWORD PTR -136[rbp], 0
	jmp	.L123
.L122:
	lea	rdx, -196[rbp]
	lea	rax, -160[rbp]
	mov	rcx, rdx
	lea	rdx, wait[rip]
	mov	esi, 0
	mov	rdi, rax
	call	pthread_create@PLT
	mov	rax, QWORD PTR -128[rbp]
	mov	r9, QWORD PTR 8[rax]
	lea	rdx, -184[rbp]
	lea	rsi, -180[rbp]
	mov	rax, QWORD PTR -128[rbp]
	mov	r8d, 0
	mov	ecx, 60
	mov	rdi, rax
	call	r9
	mov	rax, QWORD PTR -128[rbp]
	mov	r9, QWORD PTR 8[rax]
	lea	rdx, -188[rbp]
	lea	rsi, -184[rbp]
	mov	rax, QWORD PTR -128[rbp]
	mov	r8d, 1
	mov	ecx, 60
	mov	rdi, rax
	call	r9
	mov	rax, QWORD PTR -128[rbp]
	mov	r9, QWORD PTR 8[rax]
	lea	rdx, -192[rbp]
	lea	rsi, -188[rbp]
	mov	rax, QWORD PTR -128[rbp]
	mov	r8d, 2
	mov	ecx, 24
	mov	rdi, rax
	call	r9
	mov	eax, DWORD PTR -192[rbp]
	movsx	rdx, eax
	imul	rdx, rdx, 1717986919
	shr	rdx, 32
	sar	edx, 2
	sar	eax, 31
	mov	ecx, eax
	mov	eax, edx
	sub	eax, ecx
	lea	edx, 48[rax]
	mov	rax, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 24
	mov	rax, QWORD PTR [rax]
	mov	BYTE PTR [rax], dl
	mov	edx, DWORD PTR -192[rbp]
	movsx	rax, edx
	imul	rax, rax, 1717986919
	shr	rax, 32
	sar	eax, 2
	mov	esi, edx
	sar	esi, 31
	sub	eax, esi
	mov	ecx, eax
	mov	eax, ecx
	sal	eax, 2
	add	eax, ecx
	add	eax, eax
	mov	ecx, edx
	sub	ecx, eax
	mov	eax, ecx
	lea	edx, 48[rax]
	mov	rax, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 24
	mov	rax, QWORD PTR [rax]
	add	rax, 1
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	r8, QWORD PTR [rax]
	mov	rax, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 16
	mov	rdi, QWORD PTR [rax]
	mov	rax, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 24
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -164[rbp]
	lea	esi, 12[rax]
	mov	rax, QWORD PTR -112[rbp]
	sub	rsp, 8
	push	rcx
	mov	r9, r8
	mov	r8, rdi
	mov	rcx, rdx
	mov	rdx, rax
	lea	rdi, .LC13[rip]
	mov	eax, 0
	call	printf@PLT
	add	rsp, 16
	mov	rax, QWORD PTR -160[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	pthread_join@PLT
	mov	eax, DWORD PTR -180[rbp]
	add	eax, 1
	mov	DWORD PTR -180[rbp], eax
	jmp	.L124
.L127:
	mov	DWORD PTR -52[rbp], 0
	lea	rax, -52[rbp]
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -136[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -40[rbp], rax
	lea	rax, -48[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	DWORD PTR -172[rbp], 0
	jmp	.L125
.L126:
	mov	eax, DWORD PTR -172[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	free@PLT
	add	DWORD PTR -172[rbp], 1
.L125:
	mov	eax, DWORD PTR -172[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	cmp	QWORD PTR -72[rbp], rax
	jne	.L126
	add	QWORD PTR -136[rbp], 1
.L123:
	cmp	QWORD PTR -136[rbp], 4
	jne	.L127
	mov	DWORD PTR -52[rbp], 0
	lea	rax, -52[rbp]
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	QWORD PTR -40[rbp], rax
	lea	rax, -48[rbp]
	mov	QWORD PTR -80[rbp], rax
	mov	DWORD PTR -168[rbp], 0
	jmp	.L128
.L129:
	mov	eax, DWORD PTR -168[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	free@PLT
	add	DWORD PTR -168[rbp], 1
.L128:
	mov	eax, DWORD PTR -168[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	cmp	QWORD PTR -88[rbp], rax
	jne	.L129
	mov	eax, 0
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L131
	call	__stack_chk_fail@PLT
.L131:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE41:
	.size	get_time_current, .-get_time_current
	.globl	init_time
	.type	init_time, @function
init_time:
.LFB42:
	.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 -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, get_time_current[rip]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, get_time_set_time[rip]
	mov	QWORD PTR 8[rax], rdx
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE42:
	.size	init_time, .-init_time
	.globl	piece_check
	.type	piece_check, @function
piece_check:
.LFB43:
	.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 -8[rbp], rdi
	mov	DWORD PTR -12[rbp], esi
	mov	DWORD PTR -16[rbp], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 272[rax]
	mov	ecx, 4
	mov	eax, DWORD PTR -12[rbp]
	sub	eax, ecx
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -16[rbp]
	mov	ecx, eax
	shr	ecx, 31
	add	eax, ecx
	sar	eax
	mov	ecx, 3
	sub	eax, ecx
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L135
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 840[rax], 0
.L135:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE43:
	.size	piece_check, .-piece_check
	.section	.rodata
.LC14:
	.string	"\033[%d;%dH  "
.LC15:
	.string	"\033[%d;%dH\033[%s%s\033[0m"
	.text
	.globl	piece_update
	.type	piece_update, @function
piece_update:
.LFB44:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	DWORD PTR -12[rbp], esi
	mov	DWORD PTR -16[rbp], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 272[rax]
	mov	ecx, 4
	mov	eax, DWORD PTR -12[rbp]
	sub	eax, ecx
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -16[rbp]
	mov	ecx, eax
	shr	ecx, 31
	add	eax, ecx
	sar	eax
	mov	ecx, 3
	sub	eax, ecx
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L137
	mov	edx, DWORD PTR -16[rbp]
	mov	eax, DWORD PTR -12[rbp]
	mov	esi, eax
	lea	rdi, .LC14[rip]
	mov	eax, 0
	call	printf@PLT
	jmp	.L139
.L137:
	lea	rsi, .LC0[rip]
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 680[rax]
	mov	ecx, 4
	mov	eax, DWORD PTR -12[rbp]
	sub	eax, ecx
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -16[rbp]
	mov	ecx, eax
	shr	ecx, 31
	add	eax, ecx
	sar	eax
	mov	ecx, 3
	sub	eax, ecx
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	edx, DWORD PTR -16[rbp]
	mov	eax, DWORD PTR -12[rbp]
	mov	r8, rsi
	mov	esi, eax
	lea	rdi, .LC15[rip]
	mov	eax, 0
	call	printf@PLT
.L139:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE44:
	.size	piece_update, .-piece_update
	.globl	piece_drop_bottom
	.type	piece_drop_bottom, @function
piece_drop_bottom:
.LFB45:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 704[rax]
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 688
	mov	rdi, rdx
	call	rax
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 688
	mov	rdi, rdx
	call	rax
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 272[rax]
	mov	rcx, QWORD PTR -8[rbp]
	add	rcx, 688
	mov	rsi, rax
	mov	rdi, rcx
	call	rdx
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE45:
	.size	piece_drop_bottom, .-piece_drop_bottom
	.globl	piece_get_piece
	.type	piece_get_piece, @function
piece_get_piece:
.LFB46:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR box[rip]
	lea	rdi, box[rip]
	call	rax
	call	rand@PLT
	mov	ecx, DWORD PTR runlevel[rip]
	cdq
	idiv	ecx
	mov	DWORD PTR -12[rbp], edx
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, BOX[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L143
.L144:
	mov	rdx, QWORD PTR box[rip+24]
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	mov	esi, eax
	lea	rdi, box[rip]
	call	rdx
	add	QWORD PTR -8[rbp], 4
.L143:
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, BOX[rip]
	mov	rcx, QWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, length[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	sal	rax, 2
	add	rax, rcx
	cmp	QWORD PTR -8[rbp], rax
	jne	.L144
	lea	rax, box[rip]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE46:
	.size	piece_get_piece, .-piece_get_piece
	.globl	piece_init
	.type	piece_init, @function
piece_init:
.LFB47:
	.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 -8[rbp], rdi
	mov	DWORD PTR -12[rbp], esi
	mov	DWORD PTR -16[rbp], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 272[rax]
	mov	ecx, 4
	mov	eax, DWORD PTR -12[rbp]
	sub	eax, ecx
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -16[rbp]
	mov	ecx, eax
	shr	ecx, 31
	add	eax, ecx
	sar	eax
	mov	ecx, 3
	sub	eax, ecx
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 680[rax]
	mov	ecx, 4
	mov	eax, DWORD PTR -12[rbp]
	sub	eax, ecx
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -16[rbp]
	mov	ecx, eax
	shr	ecx, 31
	add	eax, ecx
	sar	eax
	mov	ecx, 3
	sub	eax, ecx
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	BYTE PTR [rax], 0
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE47:
	.size	piece_init, .-piece_init
	.section	.rodata
.LC16:
	.string	"1;3%d;4%dm"
.LC17:
	.string	"%d;5;%d;1m"
	.text
	.globl	piece_init_color
	.type	piece_init_color, @function
piece_init_color:
.LFB48:
	.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, 72
	.cfi_offset 3, -24
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -32[rbp], 0
	mov	rax, QWORD PTR color_len[rip]
	sal	rax, 3
	mov	rdi, rax
	call	malloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR 984[rax], rdx
	mov	QWORD PTR -24[rbp], 0
	jmp	.L148
.L149:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR 984[rax]
	mov	rax, QWORD PTR -24[rbp]
	sal	rax, 3
	lea	rbx, [rdx+rax]
	mov	edi, 12
	call	malloc@PLT
	mov	QWORD PTR [rbx], rax
	add	QWORD PTR -24[rbp], 1
.L148:
	mov	rax, QWORD PTR color_len[rip]
	cmp	QWORD PTR -24[rbp], rax
	jne	.L149
	mov	DWORD PTR -52[rbp], 0
	jmp	.L150
.L153:
	mov	DWORD PTR -48[rbp], 0
	jmp	.L151
.L152:
	mov	rsi, QWORD PTR color_size[rip]
	mov	rax, QWORD PTR -72[rbp]
	mov	rcx, QWORD PTR 984[rax]
	mov	rax, QWORD PTR -32[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -32[rbp], rdx
	sal	rax, 3
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	ecx, DWORD PTR -48[rbp]
	mov	edx, DWORD PTR -52[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	lea	rdx, .LC16[rip]
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	add	DWORD PTR -48[rbp], 1
.L151:
	cmp	DWORD PTR -48[rbp], 9
	jne	.L152
	add	DWORD PTR -52[rbp], 1
.L150:
	cmp	DWORD PTR -52[rbp], 9
	jne	.L153
	mov	DWORD PTR -44[rbp], 0
	mov	DWORD PTR -40[rbp], 38
	jmp	.L154
.L157:
	mov	DWORD PTR -36[rbp], 0
	jmp	.L155
.L156:
	mov	rsi, QWORD PTR color_size[rip]
	mov	rax, QWORD PTR -72[rbp]
	mov	rcx, QWORD PTR 984[rax]
	mov	rax, QWORD PTR -32[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -32[rbp], rdx
	sal	rax, 3
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	ecx, DWORD PTR -36[rbp]
	mov	edx, DWORD PTR -40[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	lea	rdx, .LC17[rip]
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	add	DWORD PTR -36[rbp], 1
.L155:
	cmp	DWORD PTR -36[rbp], 256
	jne	.L156
	add	DWORD PTR -44[rbp], 1
	add	DWORD PTR -40[rbp], 10
.L154:
	cmp	DWORD PTR -44[rbp], 2
	jne	.L157
	nop
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE48:
	.size	piece_init_color, .-piece_init_color
	.globl	piece_loop
	.type	piece_loop, @function
piece_loop:
.LFB49:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	eax, ecx
	mov	BYTE PTR -44[rbp], al
	mov	DWORD PTR -12[rbp], 4
	mov	DWORD PTR -8[rbp], 6
	mov	eax, DWORD PTR wthm[rip]
	mov	DWORD PTR -4[rbp], eax
	jmp	.L159
.L163:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 840[rax], 1
	mov	edx, DWORD PTR -8[rbp]
	mov	ecx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	r8, QWORD PTR -32[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	r8
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 840[rax]
	test	eax, eax
	je	.L160
	mov	eax, DWORD PTR -8[rbp]
	cmp	eax, DWORD PTR -4[rbp]
	jne	.L161
.L160:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 840[rax]
	test	eax, eax
	je	.L162
	cmp	BYTE PTR -44[rbp], 0
	je	.L162
	mov	edx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR -40[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	rcx
.L162:
	add	DWORD PTR -12[rbp], 1
	mov	DWORD PTR -8[rbp], 4
.L161:
	add	DWORD PTR -8[rbp], 2
.L159:
	mov	eax, DWORD PTR lower[rip]
	cmp	DWORD PTR -12[rbp], eax
	jle	.L163
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE49:
	.size	piece_loop, .-piece_loop
	.globl	piece_get_replace
	.type	piece_get_replace, @function
piece_get_replace:
.LFB50:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -24[rbp], rax
	jmp	.L165
.L166:
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 32
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 32
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 2
	mov	QWORD PTR -48[rbp], rax
.L165:
	lea	rdx, .LC0[rip]
	mov	rax, QWORD PTR -48[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strstr@PLT
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jne	.L166
	mov	rax, QWORD PTR -24[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE50:
	.size	piece_get_replace, .-piece_get_replace
	.globl	piece_shift_piece
	.type	piece_shift_piece, @function
piece_shift_piece:
.LFB51:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 832[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 832[rax], edx
	mov	eax, DWORD PTR -44[rbp]
	mov	DWORD PTR -20[rbp], eax
	jmp	.L169
.L172:
	mov	QWORD PTR -16[rbp], 0
	jmp	.L170
.L171:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 680[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 3
	sub	rax, 40
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR 680[rax]
	mov	esi, 4
	mov	eax, DWORD PTR -20[rbp]
	sub	eax, esi
	cdqe
	sal	rax, 3
	add	rax, rcx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcpy@PLT
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 272[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 3
	sub	rax, 40
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 2
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 272[rax]
	mov	esi, 4
	mov	eax, DWORD PTR -20[rbp]
	sub	eax, esi
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 2
	add	rdx, rax
	mov	eax, DWORD PTR [rcx]
	mov	DWORD PTR [rdx], eax
	add	QWORD PTR -16[rbp], 1
.L170:
	mov	eax, DWORD PTR width[rip]
	cdqe
	cmp	QWORD PTR -16[rbp], rax
	jne	.L171
	sub	DWORD PTR -20[rbp], 1
.L169:
	mov	eax, 3
	add	eax, 1
	cmp	DWORD PTR -20[rbp], eax
	jg	.L172
	mov	QWORD PTR -8[rbp], 0
	jmp	.L173
.L174:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 272[rax]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sal	rax, 2
	add	rax, rdx
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 680[rax]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	BYTE PTR [rax], 0
	add	QWORD PTR -8[rbp], 1
.L173:
	mov	eax, DWORD PTR width[rip]
	cdqe
	cmp	QWORD PTR -8[rbp], rax
	jne	.L174
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE51:
	.size	piece_shift_piece, .-piece_shift_piece
	.section	.rodata
.LC18:
	.string	"\033[%d;%dH%s"
.LC19:
	.string	"%s\033[%s%s\033[0m\n"
	.text
	.globl	piece_get_preview
	.type	piece_get_preview, @function
piece_get_preview:
.LFB52:
	.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, 152
	.cfi_offset 3, -24
	mov	QWORD PTR -120[rbp], rdi
	mov	QWORD PTR -128[rbp], rsi
	mov	QWORD PTR -136[rbp], rdx
	mov	DWORD PTR -140[rbp], ecx
	mov	QWORD PTR -152[rbp], r8
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR str_size[rip]
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -128[rbp]
	mov	rdi, rax
	call	rdx
	mov	QWORD PTR -80[rbp], rax
	mov	QWORD PTR -96[rbp], 0
	jmp	.L176
.L177:
	mov	rax, QWORD PTR -128[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -96[rbp]
	lea	rcx, 1[rax]
	mov	rax, QWORD PTR -128[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	rdx
	mov	ecx, DWORD PTR dist[rip]
	mov	edx, DWORD PTR -140[rbp]
	sub	edx, ecx
	sub	eax, edx
	mov	DWORD PTR -100[rbp], eax
	lea	rbx, .LC0[rip]
	mov	rax, QWORD PTR -128[rbp]
	mov	rcx, QWORD PTR 40[rax]
	mov	rdx, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR -128[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
	lea	edx, -1[rax]
	mov	rsi, QWORD PTR str_size[rip]
	mov	ecx, DWORD PTR -100[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	r9, rbx
	mov	r8d, ecx
	mov	ecx, edx
	lea	rdx, .LC18[rip]
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 1016[rax]
	mov	rdx, QWORD PTR -88[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcat@PLT
	add	QWORD PTR -96[rbp], 2
.L176:
	mov	rax, QWORD PTR -96[rbp]
	cmp	rax, QWORD PTR -80[rbp]
	jne	.L177
	mov	DWORD PTR -52[rbp], 0
	lea	rax, -52[rbp]
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -40[rbp], rax
	lea	rax, -48[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	DWORD PTR -104[rbp], 0
	jmp	.L178
.L179:
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	free@PLT
	add	DWORD PTR -104[rbp], 1
.L178:
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	cmp	QWORD PTR -72[rbp], rax
	jne	.L179
	mov	rax, QWORD PTR -120[rbp]
	mov	rbx, QWORD PTR 1016[rax]
	mov	rax, QWORD PTR -120[rbp]
	mov	rcx, QWORD PTR 200[rax]
	mov	rdx, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
	mov	rsi, rax
	mov	rax, QWORD PTR -152[rbp]
	mov	rcx, rbx
	mov	rdx, rax
	lea	rdi, .LC19[rip]
	mov	eax, 0
	call	printf@PLT
	nop
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L180
	call	__stack_chk_fail@PLT
.L180:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE52:
	.size	piece_get_preview, .-piece_get_preview
	.section	.rodata
.LC20:
	.string	"%s\033[0m\n"
	.text
	.globl	piece_get_erase
	.type	piece_get_erase, @function
piece_get_erase:
.LFB53:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rcx, QWORD PTR 200[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 1008[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
	mov	rsi, rax
	lea	rdi, .LC20[rip]
	mov	eax, 0
	call	printf@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE53:
	.size	piece_get_erase, .-piece_get_erase
	.globl	piece_pipe_piece
	.type	piece_pipe_piece, @function
piece_pipe_piece:
.LFB54:
	.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, 56
	.cfi_offset 3, -24
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -48[rbp], rcx
	mov	DWORD PTR -52[rbp], r8d
	mov	DWORD PTR -56[rbp], r9d
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 1016[rax]
	mov	BYTE PTR [rax], 0
	cmp	DWORD PTR -56[rbp], 0
	je	.L183
	mov	rax, QWORD PTR -32[rbp]
	mov	rbx, QWORD PTR 80[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 80[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	rdx
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rbx
	mov	rax, QWORD PTR -24[rbp]
	mov	rbx, QWORD PTR 984[rax]
	call	rand@PLT
	cdqe
	mov	rcx, QWORD PTR color_len[rip]
	mov	edx, 0
	div	rcx
	mov	rax, rdx
	sal	rax, 3
	add	rax, rbx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 1000[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcpy@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 1000[rax]
	mov	rsi, rax
	mov	rdi, QWORD PTR 16[rbp]
	call	strcpy@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	r9, QWORD PTR 224[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, QWORD PTR 1000[rax]
	mov	ecx, DWORD PTR -52[rbp]
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	r8, rsi
	lea	rsi, box[rip]
	mov	rdi, rax
	call	r9
	jmp	.L184
.L183:
	mov	rax, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR 80[rax]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
	mov	rax, QWORD PTR 24[rbp]
	mov	rsi, rax
	mov	rdi, QWORD PTR 16[rbp]
	call	strcpy@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	r9, QWORD PTR 224[rax]
	mov	ecx, DWORD PTR -52[rbp]
	mov	rdx, QWORD PTR -48[rbp]
	mov	rsi, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	r8, QWORD PTR 16[rbp]
	mov	rdi, rax
	call	r9
.L184:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 1016[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcpy@PLT
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE54:
	.size	piece_pipe_piece, .-piece_pipe_piece
	.globl	piece_get_invoke
	.type	piece_get_invoke, @function
piece_get_invoke:
.LFB55:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	QWORD PTR -8[rbp], 0
	jmp	.L186
.L187:
	mov	rax, QWORD PTR -24[rbp]
	mov	r10, QWORD PTR 232[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 976[rax]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	r8, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 976[rax]
	mov	rax, QWORD PTR -8[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, eax
	mov	eax, edx
	sal	edx, 2
	sub	eax, edx
	sal	eax, 2
	add	eax, 24
	mov	r11d, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 968[rax]
	mov	rax, QWORD PTR -8[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, QWORD PTR 848[rax]
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, 1[rax]
	mov	rax, rsi
	sal	rax, 3
	sub	rax, rsi
	sal	rax, 4
	add	rdi, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	r9, QWORD PTR 848[rax]
	mov	rsi, QWORD PTR -8[rbp]
	mov	rax, rsi
	sal	rax, 3
	sub	rax, rsi
	sal	rax, 4
	lea	rsi, [r9+rax]
	mov	r9d, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -24[rbp]
	push	r8
	push	rcx
	mov	r8d, r11d
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	r10
	add	rsp, 16
	add	QWORD PTR -8[rbp], 1
.L186:
	mov	eax, DWORD PTR prelevel[rip]
	sub	eax, 1
	cdqe
	cmp	QWORD PTR -8[rbp], rax
	jne	.L187
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE55:
	.size	piece_get_invoke, .-piece_get_invoke
	.globl	piece_show_piece
	.type	piece_show_piece, @function
piece_show_piece:
.LFB56:
	.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	DWORD PTR -44[rbp], esi
	mov	eax, DWORD PTR prelevel[rip]
	sub	eax, 1
	mov	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 976[rax]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 1000[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcpy@PLT
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 936[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 848[rax]
	mov	rcx, QWORD PTR -40[rbp]
	add	rcx, 856
	mov	rsi, rax
	mov	rdi, rcx
	call	rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR 112[rax]
	mov	edx, DWORD PTR -44[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	rcx
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 1016[rax]
	mov	BYTE PTR [rax], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR 848[rax]
	mov	eax, DWORD PTR -20[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	sub	rax, rdx
	sal	rax, 4
	add	rax, rcx
	mov	rbx, QWORD PTR 80[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 80[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	rdx
	mov	rcx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR 848[rax]
	mov	eax, DWORD PTR -20[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	sub	rax, rdx
	sal	rax, 4
	add	rax, rsi
	mov	rsi, rcx
	mov	rdi, rax
	call	rbx
	mov	rax, QWORD PTR -40[rbp]
	mov	rbx, QWORD PTR 984[rax]
	call	rand@PLT
	cdqe
	mov	rcx, QWORD PTR color_len[rip]
	mov	edx, 0
	div	rcx
	mov	rax, rdx
	sal	rax, 3
	add	rax, rbx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR 976[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 3
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcpy@PLT
	mov	rax, QWORD PTR -40[rbp]
	mov	r9, QWORD PTR 224[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 976[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	eax, 2
	sub	eax, DWORD PTR -20[rbp]
	mov	edx, eax
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	sal	eax, 2
	mov	esi, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 968[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	r8, rcx
	mov	ecx, esi
	lea	rsi, box[rip]
	mov	rdi, rax
	call	r9
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 1016[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR 968[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 3
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcpy@PLT
	mov	rax, QWORD PTR box[rip+80]
	mov	rdx, QWORD PTR -40[rbp]
	add	rdx, 856
	mov	rsi, rdx
	lea	rdi, box[rip]
	call	rax
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE56:
	.size	piece_show_piece, .-piece_show_piece
	.globl	piece_coordinate
	.type	piece_coordinate, @function
piece_coordinate:
.LFB57:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r12
	push	rbx
	sub	rsp, 96
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	mov	QWORD PTR -104[rbp], rdi
	mov	QWORD PTR -112[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR 992[rax]
	mov	BYTE PTR [rax], 0
	mov	rdx, QWORD PTR locus[rip+80]
	mov	rax, QWORD PTR -112[rbp]
	mov	rsi, rax
	lea	rdi, locus[rip]
	call	rdx
	mov	rax, QWORD PTR str_size[rip]
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -80[rbp], rax
	mov	QWORD PTR -88[rbp], 0
	jmp	.L190
.L191:
	lea	r12, .LC0[rip]
	mov	rax, QWORD PTR locus[rip+40]
	mov	rdx, QWORD PTR -88[rbp]
	add	rdx, 1
	mov	rsi, rdx
	lea	rdi, locus[rip]
	call	rax
	mov	ebx, eax
	mov	rdx, QWORD PTR locus[rip+40]
	mov	rax, QWORD PTR -88[rbp]
	mov	rsi, rax
	lea	rdi, locus[rip]
	call	rdx
	mov	edx, eax
	mov	rsi, QWORD PTR str_size[rip]
	mov	rax, QWORD PTR -80[rbp]
	mov	r9, r12
	mov	r8d, ebx
	mov	ecx, edx
	lea	rdx, .LC18[rip]
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR 992[rax]
	mov	rdx, QWORD PTR -80[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcat@PLT
	add	QWORD PTR -88[rbp], 2
.L190:
	mov	rax, QWORD PTR locus[rip+16]
	lea	rdi, locus[rip]
	call	rax
	cmp	QWORD PTR -88[rbp], rax
	jne	.L191
	mov	DWORD PTR -52[rbp], 0
	lea	rax, -52[rbp]
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -40[rbp], rax
	lea	rax, -48[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	DWORD PTR -92[rbp], 0
	jmp	.L192
.L193:
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	free@PLT
	add	DWORD PTR -92[rbp], 1
.L192:
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	cmp	QWORD PTR -72[rbp], rax
	jne	.L193
	nop
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L194
	call	__stack_chk_fail@PLT
.L194:
	add	rsp, 96
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE57:
	.size	piece_coordinate, .-piece_coordinate
	.globl	piece_draw_piece
	.type	piece_draw_piece, @function
piece_draw_piece:
.LFB58:
	.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 -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	DWORD PTR -32[rbp], edx
	mov	DWORD PTR -36[rbp], ecx
	cmp	DWORD PTR -28[rbp], 0
	je	.L196
	mov	rax, QWORD PTR -24[rbp]
	mov	rbx, QWORD PTR 984[rax]
	call	rand@PLT
	cdqe
	mov	rcx, QWORD PTR color_len[rip]
	mov	edx, 0
	div	rcx
	mov	rax, rdx
	sal	rax, 3
	add	rax, rbx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 1000[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcpy@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	rbx, QWORD PTR 176[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 80[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	rdx
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rbx
	jmp	.L197
.L196:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 976[rax]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 1000[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcpy@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 176[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 848[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
.L197:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	r8, QWORD PTR 168[rax]
	mov	edx, DWORD PTR -36[rbp]
	mov	ecx, DWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	r8
	test	eax, eax
	jne	.L199
	mov	edi, 22
	call	set_sig
	mov	edi, 0
	call	runleave
.L199:
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE58:
	.size	piece_draw_piece, .-piece_draw_piece
	.globl	piece_random_piece
	.type	piece_random_piece, @function
piece_random_piece:
.LFB59:
	.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, 56
	.cfi_offset 3, -24
	mov	QWORD PTR -56[rbp], rdi
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 836[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 836[rax], edx
	mov	eax, DWORD PTR height[rip]
	sub	eax, 1
	cdqe
	mov	QWORD PTR -24[rbp], rax
	mov	QWORD PTR -40[rbp], 0
	mov	QWORD PTR -32[rbp], 6
	jmp	.L201
.L204:
	mov	eax, DWORD PTR wthm[rip]
	cdqe
	cmp	QWORD PTR -32[rbp], rax
	jne	.L202
	mov	QWORD PTR -32[rbp], 4
	add	QWORD PTR -40[rbp], 1
.L202:
	call	rand@PLT
	and	eax, 1
	test	eax, eax
	je	.L203
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 272[rax]
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -32[rbp]
	shr	rax
	mov	ecx, 3
	movsx	rcx, ecx
	sub	rax, rcx
	sal	rax, 2
	add	rax, rdx
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -56[rbp]
	mov	rbx, QWORD PTR 984[rax]
	call	rand@PLT
	cdqe
	mov	rcx, QWORD PTR color_len[rip]
	mov	edx, 0
	div	rcx
	mov	rax, rdx
	sal	rax, 3
	add	rax, rbx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, QWORD PTR 680[rax]
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rcx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -32[rbp]
	shr	rax
	mov	esi, 3
	movsx	rsi, esi
	sub	rax, rsi
	sal	rax, 3
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcpy@PLT
.L203:
	add	QWORD PTR -32[rbp], 2
.L201:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 836[rax]
	cdqe
	cmp	QWORD PTR -40[rbp], rax
	jne	.L204
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 836[rax]
	cdqe
	cmp	QWORD PTR -24[rbp], rax
	jne	.L206
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 836[rax], 0
.L206:
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE59:
	.size	piece_random_piece, .-piece_random_piece
	.globl	piece_coord_comp
	.type	piece_coord_comp, @function
piece_coord_comp:
.LFB60:
	.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 -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	DWORD PTR -20[rbp], edx
	mov	QWORD PTR -32[rbp], rcx
	mov	DWORD PTR -24[rbp], r8d
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -20[rbp], eax
	jl	.L209
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, DWORD PTR -20[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jle	.L209
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
.L209:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE60:
	.size	piece_coord_comp, .-piece_coord_comp
	.globl	piece_top_point
	.type	piece_top_point, @function
piece_top_point:
.LFB61:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -40[rbp], 0
	mov	DWORD PTR -36[rbp], 0
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	rdx
	mov	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	rdx
	mov	DWORD PTR -20[rbp], eax
	mov	QWORD PTR -16[rbp], 0
	jmp	.L211
.L212:
	mov	rax, QWORD PTR -64[rbp]
	mov	rcx, QWORD PTR 40[rax]
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -16[rbp]
	lea	rcx, 1[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	rdx
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	r9, QWORD PTR 216[rax]
	mov	edi, DWORD PTR -28[rbp]
	mov	edx, DWORD PTR -32[rbp]
	lea	rcx, -36[rbp]
	lea	rsi, -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	r9
	mov	rax, QWORD PTR -56[rbp]
	mov	r9, QWORD PTR 216[rax]
	mov	edi, DWORD PTR -20[rbp]
	lea	rcx, -28[rbp]
	mov	edx, DWORD PTR -24[rbp]
	lea	rsi, -32[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	r9
	mov	rax, QWORD PTR -64[rbp]
	mov	r8, QWORD PTR 64[rax]
	mov	edx, DWORD PTR -32[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	r8
	mov	rax, QWORD PTR -64[rbp]
	mov	rcx, QWORD PTR 64[rax]
	mov	edx, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -16[rbp]
	lea	rsi, 1[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, rax
	call	rcx
	add	QWORD PTR -16[rbp], 2
.L211:
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, rax
	call	rdx
	cmp	QWORD PTR -16[rbp], rax
	jne	.L212
	mov	eax, DWORD PTR -40[rbp]
	sub	eax, DWORD PTR -24[rbp]
	cmp	eax, 3
	jne	.L215
	mov	eax, DWORD PTR -36[rbp]
	sub	eax, DWORD PTR -20[rbp]
	cmp	eax, 6
	jne	.L215
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, rax
	call	rdx
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -40[rbp]
	lea	ecx, -3[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	rdx
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -36[rbp]
	lea	ecx, -6[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	rdx
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -40[rbp]
	lea	ecx, -3[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	rdx
	mov	rax, QWORD PTR -64[rbp]
	mov	rcx, QWORD PTR 24[rax]
	mov	edx, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	rcx
	mov	rax, QWORD PTR -64[rbp]
	mov	rcx, QWORD PTR 24[rax]
	mov	edx, DWORD PTR -40[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	rcx
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -36[rbp]
	lea	ecx, -6[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	rdx
	mov	rax, QWORD PTR -64[rbp]
	mov	rcx, QWORD PTR 24[rax]
	mov	edx, DWORD PTR -40[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	rcx
	mov	rax, QWORD PTR -64[rbp]
	mov	rcx, QWORD PTR 24[rax]
	mov	edx, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	rcx
.L215:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L214
	call	__stack_chk_fail@PLT
.L214:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE61:
	.size	piece_top_point, .-piece_top_point
	.globl	piece_bomb
	.type	piece_bomb, @function
piece_bomb:
.LFB62:
	.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, 168
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	mov	QWORD PTR -184[rbp], rdi
	mov	DWORD PTR -188[rbp], esi
	mov	DWORD PTR -192[rbp], edx
	mov	DWORD PTR -196[rbp], ecx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -56[rbp], rax
	xor	eax, eax
	mov	rax, rsp
	mov	rbx, rax
	mov	DWORD PTR -164[rbp], 18
	mov	rax, QWORD PTR str_size[rip]
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR str_size[rip]
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	mov	BYTE PTR [rax], 0
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	sub	rax, 1
	mov	QWORD PTR -128[rbp], rax
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	mov	r14, rax
	mov	r15d, 0
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	mov	r12, rax
	mov	r13d, 0
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	eax, 16
	sub	rax, 1
	add	rax, rdx
	mov	esi, 16
	mov	edx, 0
	div	rsi
	imul	rax, rax, 16
	mov	rcx, rax
	and	rcx, -4096
	mov	rdx, rsp
	sub	rdx, rcx
.L217:
	cmp	rsp, rdx
	je	.L218
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L217
.L218:
	mov	rdx, rax
	and	edx, 4095
	sub	rsp, rdx
	mov	rdx, rax
	and	edx, 4095
	test	rdx, rdx
	je	.L219
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L219:
	mov	rax, rsp
	add	rax, 3
	shr	rax, 2
	sal	rax, 2
	mov	QWORD PTR -120[rbp], rax
	mov	QWORD PTR -112[rbp], 0
	mov	rax, QWORD PTR -112[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -112[rbp], rdx
	mov	edx, DWORD PTR -188[rbp]
	lea	ecx, -1[rdx]
	mov	rdx, QWORD PTR -120[rbp]
	mov	DWORD PTR [rdx+rax*4], ecx
	mov	rax, QWORD PTR -112[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -112[rbp], rdx
	mov	edx, DWORD PTR -192[rbp]
	lea	ecx, -2[rdx]
	mov	rdx, QWORD PTR -120[rbp]
	mov	DWORD PTR [rdx+rax*4], ecx
	mov	rax, QWORD PTR -112[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -112[rbp], rdx
	mov	edx, DWORD PTR -188[rbp]
	lea	ecx, -1[rdx]
	mov	rdx, QWORD PTR -120[rbp]
	mov	DWORD PTR [rdx+rax*4], ecx
	mov	rax, QWORD PTR -112[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -112[rbp], rdx
	mov	rdx, QWORD PTR -120[rbp]
	mov	ecx, DWORD PTR -192[rbp]
	mov	DWORD PTR [rdx+rax*4], ecx
	mov	rax, QWORD PTR -112[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -112[rbp], rdx
	mov	edx, DWORD PTR -188[rbp]
	lea	ecx, -1[rdx]
	mov	rdx, QWORD PTR -120[rbp]
	mov	DWORD PTR [rdx+rax*4], ecx
	mov	rax, QWORD PTR -112[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -112[rbp], rdx
	mov	edx, DWORD PTR -192[rbp]
	lea	ecx, 2[rdx]
	mov	rdx, QWORD PTR -120[rbp]
	mov	DWORD PTR [rdx+rax*4], ecx
	mov	rax, QWORD PTR -112[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -112[rbp], rdx
	mov	rdx, QWORD PTR -120[rbp]
	mov	ecx, DWORD PTR -188[rbp]
	mov	DWORD PTR [rdx+rax*4], ecx
	mov	rax, QWORD PTR -112[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -112[rbp], rdx
	mov	edx, DWORD PTR -192[rbp]
	lea	ecx, -2[rdx]
	mov	rdx, QWORD PTR -120[rbp]
	mov	DWORD PTR [rdx+rax*4], ecx
	mov	rax, QWORD PTR -112[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -112[rbp], rdx
	mov	rdx, QWORD PTR -120[rbp]
	mov	ecx, DWORD PTR -188[rbp]
	mov	DWORD PTR [rdx+rax*4], ecx
	mov	rax, QWORD PTR -112[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -112[rbp], rdx
	mov	rdx, QWORD PTR -120[rbp]
	mov	ecx, DWORD PTR -192[rbp]
	mov	DWORD PTR [rdx+rax*4], ecx
	mov	rax, QWORD PTR -112[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -112[rbp], rdx
	mov	rdx, QWORD PTR -120[rbp]
	mov	ecx, DWORD PTR -188[rbp]
	mov	DWORD PTR [rdx+rax*4], ecx
	mov	rax, QWORD PTR -112[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -112[rbp], rdx
	mov	edx, DWORD PTR -192[rbp]
	lea	ecx, 2[rdx]
	mov	rdx, QWORD PTR -120[rbp]
	mov	DWORD PTR [rdx+rax*4], ecx
	mov	rax, QWORD PTR -112[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -112[rbp], rdx
	mov	edx, DWORD PTR -188[rbp]
	lea	ecx, 1[rdx]
	mov	rdx, QWORD PTR -120[rbp]
	mov	DWORD PTR [rdx+rax*4], ecx
	mov	rax, QWORD PTR -112[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -112[rbp], rdx
	mov	edx, DWORD PTR -192[rbp]
	lea	ecx, -2[rdx]
	mov	rdx, QWORD PTR -120[rbp]
	mov	DWORD PTR [rdx+rax*4], ecx
	mov	rax, QWORD PTR -112[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -112[rbp], rdx
	mov	edx, DWORD PTR -188[rbp]
	lea	ecx, 1[rdx]
	mov	rdx, QWORD PTR -120[rbp]
	mov	DWORD PTR [rdx+rax*4], ecx
	mov	rax, QWORD PTR -112[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -112[rbp], rdx
	mov	rdx, QWORD PTR -120[rbp]
	mov	ecx, DWORD PTR -192[rbp]
	mov	DWORD PTR [rdx+rax*4], ecx
	mov	rax, QWORD PTR -112[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -112[rbp], rdx
	mov	edx, DWORD PTR -188[rbp]
	lea	ecx, 1[rdx]
	mov	rdx, QWORD PTR -120[rbp]
	mov	DWORD PTR [rdx+rax*4], ecx
	mov	rax, QWORD PTR -112[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -112[rbp], rdx
	mov	edx, DWORD PTR -192[rbp]
	lea	ecx, 2[rdx]
	mov	rdx, QWORD PTR -120[rbp]
	mov	DWORD PTR [rdx+rax*4], ecx
	mov	QWORD PTR -152[rbp], 0
	jmp	.L220
.L227:
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR [rax+rdx*4]
	mov	DWORD PTR -160[rbp], eax
	mov	rax, QWORD PTR -152[rbp]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR [rax+rdx*4]
	mov	DWORD PTR -156[rbp], eax
	mov	eax, DWORD PTR wthm[rip]
	cmp	DWORD PTR -156[rbp], eax
	jg	.L221
	mov	eax, 4
	cmp	DWORD PTR -156[rbp], eax
	jle	.L221
	mov	eax, 1
	jmp	.L222
.L221:
	mov	eax, 0
.L222:
	mov	BYTE PTR -174[rbp], al
	and	BYTE PTR -174[rbp], 1
	mov	eax, 3
	cmp	DWORD PTR -160[rbp], eax
	jle	.L223
	mov	eax, DWORD PTR lower[rip]
	cmp	DWORD PTR -160[rbp], eax
	jg	.L223
	mov	eax, 1
	jmp	.L224
.L223:
	mov	eax, 0
.L224:
	mov	BYTE PTR -173[rbp], al
	and	BYTE PTR -173[rbp], 1
	cmp	BYTE PTR -173[rbp], 0
	je	.L225
	cmp	BYTE PTR -174[rbp], 0
	je	.L225
	mov	rax, QWORD PTR -184[rbp]
	mov	rdx, QWORD PTR 272[rax]
	mov	ecx, 4
	mov	eax, DWORD PTR -160[rbp]
	sub	eax, ecx
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -156[rbp]
	mov	ecx, eax
	shr	ecx, 31
	add	eax, ecx
	sar	eax
	mov	ecx, 3
	sub	eax, ecx
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L226
	mov	edx, DWORD PTR -160[rbp]
	mov	eax, DWORD PTR -156[rbp]
	add	edx, eax
	mov	ecx, DWORD PTR -188[rbp]
	mov	eax, DWORD PTR -192[rbp]
	add	eax, ecx
	cmp	edx, eax
	je	.L226
	cmp	DWORD PTR -196[rbp], 8
	jne	.L231
.L226:
	mov	rsi, QWORD PTR str_size[rip]
	mov	ecx, DWORD PTR -156[rbp]
	mov	edx, DWORD PTR -160[rbp]
	mov	rax, QWORD PTR -136[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	lea	rdx, .LC14[rip]
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	mov	rdx, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR -144[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcat@PLT
	mov	rax, QWORD PTR -184[rbp]
	mov	r8, QWORD PTR 88[rax]
	mov	edx, DWORD PTR -156[rbp]
	mov	ecx, DWORD PTR -160[rbp]
	mov	rax, QWORD PTR -184[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	r8
	jmp	.L225
.L231:
	nop
.L225:
	add	QWORD PTR -152[rbp], 2
.L220:
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	cmp	QWORD PTR -152[rbp], rax
	jne	.L227
	mov	DWORD PTR -172[rbp], 30
	lea	rax, -172[rbp]
	mov	rdi, rax
	call	wait
	mov	rax, QWORD PTR -144[rbp]
	mov	rdi, rax
	call	puts@PLT
	mov	DWORD PTR -84[rbp], 0
	lea	rax, -84[rbp]
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	QWORD PTR -64[rbp], rax
	lea	rax, -80[rbp]
	mov	QWORD PTR -96[rbp], rax
	mov	DWORD PTR -168[rbp], 0
	jmp	.L228
.L229:
	mov	eax, DWORD PTR -168[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	free@PLT
	add	DWORD PTR -168[rbp], 1
.L228:
	mov	eax, DWORD PTR -168[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	cmp	QWORD PTR -104[rbp], rax
	jne	.L229
	mov	rsp, rbx
	nop
	mov	rax, QWORD PTR -56[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L230
	call	__stack_chk_fail@PLT
.L230:
	lea	rsp, -40[rbp]
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE62:
	.size	piece_bomb, .-piece_bomb
	.section	.rodata
.LC21:
	.string	"\033[1;34m\033[%d;%dH%d\033[0m\n"
	.text
	.globl	piece_clear_row
	.type	piece_clear_row, @function
piece_clear_row:
.LFB63:
	.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, 184
	.cfi_offset 3, -24
	mov	QWORD PTR -184[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	lea	rax, -144[rbp]
	mov	rdi, rax
	call	vector_init
	mov	rdx, QWORD PTR -64[rbp]
	lea	rax, -144[rbp]
	lea	rsi, locus[rip]
	mov	rdi, rax
	call	rdx
	mov	rdx, QWORD PTR -128[rbp]
	lea	rax, -144[rbp]
	mov	rdi, rax
	call	rdx
	mov	QWORD PTR -152[rbp], rax
	cmp	QWORD PTR -152[rbp], 16
	jne	.L233
	mov	rax, QWORD PTR -184[rbp]
	mov	rcx, QWORD PTR 152[rax]
	lea	rdx, -144[rbp]
	mov	rax, QWORD PTR -184[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
.L233:
	mov	QWORD PTR -160[rbp], 0
	jmp	.L234
.L237:
	mov	rcx, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR -160[rbp]
	lea	rax, -144[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
	mov	DWORD PTR -168[rbp], eax
	mov	rdx, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR -160[rbp]
	lea	rcx, 1[rax]
	lea	rax, -144[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	rdx
	mov	DWORD PTR -164[rbp], eax
	cmp	QWORD PTR -152[rbp], 16
	jne	.L235
	mov	rax, QWORD PTR -184[rbp]
	mov	rbx, QWORD PTR 208[rax]
	mov	rdx, QWORD PTR -128[rbp]
	lea	rax, -144[rbp]
	mov	rdi, rax
	call	rdx
	mov	ecx, eax
	mov	edx, DWORD PTR -164[rbp]
	mov	esi, DWORD PTR -168[rbp]
	mov	rax, QWORD PTR -184[rbp]
	mov	rdi, rax
	call	rbx
	jmp	.L236
.L235:
	mov	rax, QWORD PTR -184[rbp]
	mov	rdx, QWORD PTR 272[rax]
	mov	ecx, 4
	mov	eax, DWORD PTR -168[rbp]
	sub	eax, ecx
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -164[rbp]
	mov	ecx, eax
	shr	ecx, 31
	add	eax, ecx
	sar	eax
	mov	ecx, 3
	sub	eax, ecx
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -184[rbp]
	mov	rdx, QWORD PTR 1000[rax]
	mov	rax, QWORD PTR -184[rbp]
	mov	rcx, QWORD PTR 680[rax]
	mov	esi, 4
	mov	eax, DWORD PTR -168[rbp]
	sub	eax, esi
	cdqe
	sal	rax, 3
	add	rax, rcx
	mov	rcx, QWORD PTR [rax]
	mov	eax, DWORD PTR -164[rbp]
	mov	esi, eax
	shr	esi, 31
	add	eax, esi
	sar	eax
	mov	esi, 3
	sub	eax, esi
	cdqe
	sal	rax, 3
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcpy@PLT
.L236:
	add	QWORD PTR -160[rbp], 2
.L234:
	mov	rdx, QWORD PTR -128[rbp]
	lea	rax, -144[rbp]
	mov	rdi, rax
	call	rdx
	cmp	QWORD PTR -160[rbp], rax
	jne	.L237
	mov	rdx, QWORD PTR -136[rbp]
	lea	rax, -144[rbp]
	mov	rdi, rax
	call	rdx
	mov	rax, QWORD PTR -184[rbp]
	mov	DWORD PTR 832[rax], 0
	mov	rax, QWORD PTR -184[rbp]
	mov	r8, QWORD PTR 240[rax]
	mov	rax, QWORD PTR -184[rbp]
	mov	ecx, 1
	lea	rdx, piece_shift_piece[rip]
	lea	rsi, piece_check[rip]
	mov	rdi, rax
	call	r8
	mov	rax, QWORD PTR -184[rbp]
	mov	eax, DWORD PTR 832[rax]
	test	eax, eax
	je	.L242
	mov	rax, QWORD PTR -184[rbp]
	mov	eax, DWORD PTR 832[rax]
	imul	eax, eax, 200
	sub	eax, 100
	mov	DWORD PTR -172[rbp], eax
	mov	edx, DWORD PTR score[rip]
	mov	eax, DWORD PTR -172[rbp]
	add	eax, edx
	mov	DWORD PTR score[rip], eax
	mov	eax, DWORD PTR score[rip]
	mov	edx, DWORD PTR dist[rip]
	add	edx, 56
	mov	ecx, 3
	lea	esi, 10[rcx]
	mov	ecx, eax
	lea	rdi, .LC21[rip]
	mov	eax, 0
	call	printf@PLT
	mov	edx, DWORD PTR score[rip]
	movsx	rax, edx
	imul	rax, rax, 1759218605
	shr	rax, 32
	sar	eax, 11
	mov	ecx, edx
	sar	ecx, 31
	sub	eax, ecx
	imul	ecx, eax, 5000
	mov	eax, edx
	sub	eax, ecx
	cmp	DWORD PTR -172[rbp], eax
	jle	.L240
	mov	eax, DWORD PTR speedlevel[rip]
	cmp	eax, 29
	jg	.L240
	mov	rax, QWORD PTR -184[rbp]
	mov	rdx, QWORD PTR 72[rax]
	mov	rax, QWORD PTR -184[rbp]
	mov	rdi, rax
	call	rdx
	mov	eax, DWORD PTR speedlevel[rip]
	add	eax, 1
	mov	DWORD PTR speedlevel[rip], eax
	mov	eax, DWORD PTR speedlevel[rip]
	mov	edx, DWORD PTR dist[rip]
	add	edx, 26
	mov	ecx, 3
	lea	esi, 10[rcx]
	mov	ecx, eax
	lea	rdi, .LC21[rip]
	mov	eax, 0
	call	printf@PLT
.L240:
	mov	rax, QWORD PTR -184[rbp]
	mov	r8, QWORD PTR 240[rax]
	mov	rax, QWORD PTR -184[rbp]
	mov	ecx, 0
	lea	rdx, piece_shift_piece[rip]
	lea	rsi, piece_update[rip]
	mov	rdi, rax
	call	r8
	jmp	.L232
.L242:
	nop
.L232:
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L241
	call	__stack_chk_fail@PLT
.L241:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE63:
	.size	piece_clear_row, .-piece_clear_row
	.globl	piece_persig
	.type	piece_persig, @function
piece_persig:
.LFB64:
	.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, 56
	.cfi_offset 3, -24
	mov	QWORD PTR -56[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -40[rbp], 0
	mov	DWORD PTR -44[rbp], 20
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -32[rbp], rax
	jmp	.L244
.L259:
	cmp	DWORD PTR -40[rbp], 1
	je	.L245
	lea	rax, -44[rbp]
	mov	rdi, rax
	call	wait
.L245:
	mov	edi, 0
	call	set_sig
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	sub	eax, 22
	cmp	eax, 9
	ja	.L246
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L248[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L248[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L248:
	.long	.L257-.L248
	.long	.L256-.L248
	.long	.L255-.L248
	.long	.L254-.L248
	.long	.L253-.L248
	.long	.L252-.L248
	.long	.L251-.L248
	.long	.L250-.L248
	.long	.L249-.L248
	.long	.L247-.L248
	.text
.L257:
	mov	edi, 0
	call	runleave
	mov	eax, 0
	jmp	.L260
.L256:
	mov	rax, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR 184[rax]
	mov	rdx, QWORD PTR .LC22[rip]
	mov	rax, QWORD PTR -32[rbp]
	mov	esi, 1
	movq	xmm0, rdx
	mov	rdi, rax
	call	rcx
	jmp	.L246
.L255:
	mov	rax, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR 184[rax]
	mov	rdx, QWORD PTR .LC23[rip]
	mov	rax, QWORD PTR -32[rbp]
	mov	esi, 1
	movq	xmm0, rdx
	mov	rdi, rax
	call	rcx
	jmp	.L246
.L254:
	mov	rax, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR 184[rax]
	mov	rdx, QWORD PTR .LC24[rip]
	mov	rax, QWORD PTR -32[rbp]
	mov	esi, 1
	movq	xmm0, rdx
	mov	rdi, rax
	call	rcx
	jmp	.L246
.L253:
	mov	rax, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR 184[rax]
	mov	rdx, QWORD PTR .LC10[rip]
	mov	rax, QWORD PTR -32[rbp]
	mov	esi, 1
	movq	xmm0, rdx
	mov	rdi, rax
	call	rcx
	jmp	.L246
.L252:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 184[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	esi, -2
	pxor	xmm0, xmm0
	mov	rdi, rax
	call	rdx
	jmp	.L246
.L251:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 184[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	esi, 2
	pxor	xmm0, xmm0
	mov	rdi, rax
	call	rdx
	jmp	.L246
.L250:
	mov	rax, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR 184[rax]
	mov	rdx, QWORD PTR .LC23[rip]
	mov	rax, QWORD PTR -32[rbp]
	mov	esi, 0
	movq	xmm0, rdx
	mov	rdi, rax
	call	rcx
	jmp	.L246
.L249:
	mov	rax, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR 184[rax]
	mov	rdx, QWORD PTR .LC22[rip]
	mov	rax, QWORD PTR -32[rbp]
	mov	esi, 0
	movq	xmm0, rdx
	mov	rdi, rax
	call	rcx
	jmp	.L246
.L247:
	mov	rax, QWORD PTR -32[rbp]
	mov	rbx, QWORD PTR 184[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	rdx
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	movq	rdx, xmm1
	mov	rax, QWORD PTR -32[rbp]
	mov	esi, 0
	movq	xmm0, rdx
	mov	rdi, rax
	call	rbx
	nop
.L246:
	mov	edx, DWORD PTR speedlevel[rip]
	mov	eax, 31
	sub	eax, edx
	cmp	DWORD PTR -40[rbp], eax
	jne	.L244
	mov	DWORD PTR -40[rbp], 0
	mov	rax, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR 184[rax]
	mov	rdx, QWORD PTR .LC23[rip]
	mov	rax, QWORD PTR -32[rbp]
	mov	esi, 0
	movq	xmm0, rdx
	mov	rdi, rax
	call	rcx
.L244:
	add	DWORD PTR -40[rbp], 1
	cmp	DWORD PTR -40[rbp], 0
	jne	.L259
	mov	eax, 0
.L260:
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L261
	call	__stack_chk_fail@PLT
.L261:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE64:
	.size	piece_persig, .-piece_persig
	.section	.rodata
.LC26:
	.string	"\033[?25l"
	.text
	.globl	piece_getsig
	.type	piece_getsig, @function
piece_getsig:
.LFB65:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rdi, .LC26[rip]
	mov	eax, 0
	call	printf@PLT
	mov	BYTE PTR -13[rbp], 27
	mov	WORD PTR -11[rbp], 0
	mov	BYTE PTR -9[rbp], 0
	mov	eax, 0
	call	disable_waiting_for_enter
.L287:
	call	getchar@PLT
	mov	BYTE PTR -12[rbp], al
	mov	edi, 0
	call	set_sig
	movzx	eax, BYTE PTR -10[rbp]
	mov	BYTE PTR -11[rbp], al
	movzx	eax, BYTE PTR -9[rbp]
	mov	BYTE PTR -10[rbp], al
	movzx	eax, BYTE PTR -12[rbp]
	mov	BYTE PTR -9[rbp], al
	cmp	BYTE PTR -12[rbp], 32
	je	.L263
	cmp	BYTE PTR -12[rbp], 10
	jne	.L264
.L263:
	mov	edi, 31
	call	set_sig
	jmp	.L265
.L264:
	movzx	eax, BYTE PTR -12[rbp]
	cmp	al, BYTE PTR -13[rbp]
	jne	.L266
	movzx	eax, BYTE PTR -10[rbp]
	cmp	BYTE PTR -13[rbp], al
	jne	.L266
	mov	edi, 1
	call	runleave
	mov	eax, 0
	jmp	.L288
.L266:
	movzx	eax, BYTE PTR -11[rbp]
	cmp	BYTE PTR -13[rbp], al
	jne	.L268
	movzx	eax, BYTE PTR -10[rbp]
	cmp	al, 91
	jne	.L268
	movsx	eax, BYTE PTR -12[rbp]
	cmp	eax, 68
	je	.L269
	cmp	eax, 68
	jg	.L265
	cmp	eax, 67
	je	.L271
	cmp	eax, 67
	jg	.L265
	cmp	eax, 65
	je	.L272
	cmp	eax, 66
	je	.L273
	jmp	.L265
.L272:
	mov	edi, 23
	call	set_sig
	jmp	.L270
.L273:
	mov	edi, 29
	call	set_sig
	jmp	.L270
.L269:
	mov	edi, 27
	call	set_sig
	jmp	.L270
.L271:
	mov	edi, 28
	call	set_sig
	nop
.L270:
	jmp	.L265
.L268:
	movsx	eax, BYTE PTR -12[rbp]
	sub	eax, 65
	cmp	eax, 54
	ja	.L265
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L275[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L275[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L275:
	.long	.L285-.L275
	.long	.L265-.L275
	.long	.L265-.L275
	.long	.L284-.L275
	.long	.L265-.L275
	.long	.L265-.L275
	.long	.L265-.L275
	.long	.L265-.L275
	.long	.L265-.L275
	.long	.L265-.L275
	.long	.L265-.L275
	.long	.L265-.L275
	.long	.L283-.L275
	.long	.L282-.L275
	.long	.L265-.L275
	.long	.L281-.L275
	.long	.L280-.L275
	.long	.L279-.L275
	.long	.L278-.L275
	.long	.L277-.L275
	.long	.L276-.L275
	.long	.L265-.L275
	.long	.L274-.L275
	.long	.L265-.L275
	.long	.L265-.L275
	.long	.L265-.L275
	.long	.L265-.L275
	.long	.L265-.L275
	.long	.L265-.L275
	.long	.L265-.L275
	.long	.L265-.L275
	.long	.L265-.L275
	.long	.L285-.L275
	.long	.L265-.L275
	.long	.L265-.L275
	.long	.L284-.L275
	.long	.L265-.L275
	.long	.L265-.L275
	.long	.L265-.L275
	.long	.L265-.L275
	.long	.L265-.L275
	.long	.L265-.L275
	.long	.L265-.L275
	.long	.L265-.L275
	.long	.L283-.L275
	.long	.L282-.L275
	.long	.L265-.L275
	.long	.L281-.L275
	.long	.L280-.L275
	.long	.L279-.L275
	.long	.L278-.L275
	.long	.L277-.L275
	.long	.L276-.L275
	.long	.L265-.L275
	.long	.L274-.L275
	.text
.L274:
	mov	edi, 23
	call	set_sig
	jmp	.L265
.L277:
	mov	edi, 24
	call	set_sig
	jmp	.L265
.L283:
	mov	edi, 25
	call	set_sig
	jmp	.L265
.L282:
	mov	edi, 26
	call	set_sig
	jmp	.L265
.L278:
	mov	edi, 29
	call	set_sig
	jmp	.L265
.L285:
	mov	edi, 27
	call	set_sig
	jmp	.L265
.L284:
	mov	edi, 28
	call	set_sig
	jmp	.L265
.L276:
	mov	edi, 30
	call	set_sig
	jmp	.L265
.L281:
	mov	edi, 19
	call	set_sig
	jmp	.L265
.L279:
	mov	edi, 18
	call	set_sig
	jmp	.L265
.L280:
	mov	edi, 1
	call	runleave
	mov	eax, 0
	jmp	.L288
.L265:
	mov	eax, 0
	call	get_sig
	cmp	eax, 22
	jne	.L287
	mov	edi, 1
	call	runleave
	mov	eax, 0
.L288:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L289
	call	__stack_chk_fail@PLT
.L289:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE65:
	.size	piece_getsig, .-piece_getsig
	.section	.rodata
.LC27:
	.string	"\033[%s%s\033[0m\n"
	.text
	.globl	piece_drawbox
	.type	piece_drawbox, @function
piece_drawbox:
.LFB66:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 992[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 1008[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcpy@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 992[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 1000[rax]
	mov	rsi, rax
	lea	rdi, .LC27[rip]
	mov	eax, 0
	call	printf@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE66:
	.size	piece_drawbox, .-piece_drawbox
	.globl	piece_move_piece
	.type	piece_move_piece, @function
piece_move_piece:
.LFB67:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	DWORD PTR -48[rbp], edx
	mov	rax, QWORD PTR locus[rip+16]
	lea	rdi, locus[rip]
	call	rax
	mov	QWORD PTR -8[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	jmp	.L292
.L307:
	mov	rdx, QWORD PTR locus[rip+40]
	mov	rax, QWORD PTR -16[rbp]
	mov	rsi, rax
	lea	rdi, locus[rip]
	call	rdx
	mov	edx, DWORD PTR -44[rbp]
	add	eax, edx
	mov	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR locus[rip+40]
	mov	rdx, QWORD PTR -16[rbp]
	add	rdx, 1
	mov	rsi, rdx
	lea	rdi, locus[rip]
	call	rax
	mov	edx, DWORD PTR -48[rbp]
	add	eax, edx
	mov	DWORD PTR -20[rbp], eax
	mov	eax, 3
	cmp	DWORD PTR -24[rbp], eax
	jle	.L293
	mov	eax, DWORD PTR lower[rip]
	cmp	DWORD PTR -24[rbp], eax
	jle	.L294
.L293:
	mov	eax, 1
	jmp	.L295
.L294:
	mov	eax, 0
.L295:
	mov	BYTE PTR -30[rbp], al
	and	BYTE PTR -30[rbp], 1
	mov	eax, DWORD PTR wthm[rip]
	add	eax, 1
	cmp	DWORD PTR -20[rbp], eax
	jg	.L296
	mov	eax, 4
	add	eax, 1
	cmp	DWORD PTR -20[rbp], eax
	jg	.L297
.L296:
	mov	eax, 1
	jmp	.L298
.L297:
	mov	eax, 0
.L298:
	mov	BYTE PTR -29[rbp], al
	and	BYTE PTR -29[rbp], 1
	cmp	BYTE PTR -30[rbp], 0
	jne	.L299
	cmp	BYTE PTR -29[rbp], 0
	je	.L300
.L299:
	mov	eax, 0
	jmp	.L301
.L300:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 272[rax]
	mov	ecx, 4
	mov	eax, DWORD PTR -24[rbp]
	sub	eax, ecx
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -20[rbp]
	mov	ecx, eax
	shr	ecx, 31
	add	eax, ecx
	sar	eax
	mov	ecx, 3
	sub	eax, ecx
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L302
	cmp	QWORD PTR -8[rbp], 2
	jne	.L303
	mov	eax, DWORD PTR lower[rip]
	mov	DWORD PTR -28[rbp], eax
	jmp	.L304
.L306:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 272[rax]
	mov	ecx, 4
	mov	eax, DWORD PTR -28[rbp]
	sub	eax, ecx
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -20[rbp]
	mov	ecx, eax
	shr	ecx, 31
	add	eax, ecx
	sar	eax
	mov	ecx, 3
	sub	eax, ecx
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L305
	mov	eax, 1
	jmp	.L301
.L305:
	sub	DWORD PTR -28[rbp], 1
.L304:
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, DWORD PTR -24[rbp]
	jg	.L306
.L303:
	mov	eax, 0
	jmp	.L301
.L302:
	add	QWORD PTR -16[rbp], 2
.L292:
	mov	rax, QWORD PTR -16[rbp]
	cmp	rax, QWORD PTR -8[rbp]
	jne	.L307
	mov	eax, 1
.L301:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE67:
	.size	piece_move_piece, .-piece_move_piece
	.section	.rodata
.LC28:
	.string	"\033[%d;%dH\033[%s%s\033[0m\n"
	.text
	.globl	piece_ghost_cross
	.type	piece_ghost_cross, @function
piece_ghost_cross:
.LFB68:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR locus[rip+40]
	mov	esi, 0
	lea	rdi, locus[rip]
	call	rax
	mov	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR locus[rip+40]
	mov	esi, 1
	lea	rdi, locus[rip]
	call	rax
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 272[rax]
	mov	ecx, 4
	mov	eax, DWORD PTR -8[rbp]
	sub	eax, ecx
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -4[rbp]
	mov	ecx, eax
	shr	ecx, 31
	add	eax, ecx
	sar	eax
	mov	ecx, 3
	sub	eax, ecx
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L310
	lea	rsi, .LC0[rip]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 680[rax]
	mov	ecx, 4
	mov	eax, DWORD PTR -8[rbp]
	sub	eax, ecx
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -4[rbp]
	mov	ecx, eax
	shr	ecx, 31
	add	eax, ecx
	sar	eax
	mov	ecx, 3
	sub	eax, ecx
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	edx, DWORD PTR -4[rbp]
	mov	eax, DWORD PTR -8[rbp]
	mov	r8, rsi
	mov	esi, eax
	lea	rdi, .LC28[rip]
	mov	eax, 0
	call	printf@PLT
.L310:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE68:
	.size	piece_ghost_cross, .-piece_ghost_cross
	.globl	piece_perplus
	.type	piece_perplus, @function
piece_perplus:
.LFB69:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	DWORD PTR -32[rbp], edx
	mov	rax, QWORD PTR locus[rip+16]
	lea	rdi, locus[rip]
	call	rax
	cmp	rax, 2
	jne	.L312
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	rdx
.L312:
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 312[rax]
	mov	rax, QWORD PTR -24[rbp]
	lea	rdi, 280[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, rax
	lea	rsi, box[rip]
	call	rcx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 176[rax]
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, box[rip]
	mov	rdi, rax
	call	rdx
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE69:
	.size	piece_perplus, .-piece_perplus
	.globl	piece_move
	.type	piece_move, @function
piece_move:
.LFB70:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	DWORD PTR -12[rbp], esi
	mov	DWORD PTR -16[rbp], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	r8, QWORD PTR 168[rax]
	mov	edx, DWORD PTR -16[rbp]
	mov	ecx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	r8
	test	eax, eax
	je	.L314
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	r8, QWORD PTR 144[rax]
	mov	edx, DWORD PTR -16[rbp]
	mov	ecx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	r8
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	rdx
	jmp	.L316
.L314:
	cmp	DWORD PTR -12[rbp], 1
	jne	.L316
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	r8, QWORD PTR 192[rax]
	mov	ecx, DWORD PTR -16[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	r8
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 120[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	rdx
.L316:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE70:
	.size	piece_move, .-piece_move
	.globl	piece_rotate
	.type	piece_rotate, @function
piece_rotate:
.LFB71:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -56[rbp], rdi
	movsd	QWORD PTR -64[rbp], xmm0
	mov	DWORD PTR -68[rbp], esi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 280[rax]
	lea	rdi, box[rip]
	call	rax
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	r10, QWORD PTR 328[rax]
	mov	rax, QWORD PTR -56[rbp]
	lea	rdi, 280[rax]
	lea	rdx, -36[rbp]
	lea	rax, -40[rbp]
	mov	r9d, 2
	mov	r8d, 1
	mov	rcx, rdx
	mov	rdx, rax
	lea	rsi, box[rip]
	call	r10
	mov	rax, QWORD PTR -56[rbp]
	mov	r8, QWORD PTR 336[rax]
	mov	edx, DWORD PTR -36[rbp]
	mov	ecx, DWORD PTR -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	lea	rdi, 280[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	esi, ecx
	movq	xmm0, rax
	call	r8
	mov	rax, QWORD PTR -56[rbp]
	mov	r10, QWORD PTR 328[rax]
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, 456[rax]
	mov	rax, QWORD PTR -56[rbp]
	lea	rdi, 280[rax]
	lea	rdx, -28[rbp]
	lea	rax, -32[rbp]
	mov	r9d, 1
	mov	r8d, 2
	mov	rcx, rdx
	mov	rdx, rax
	call	r10
	mov	eax, DWORD PTR -24[rbp]
	mov	edx, DWORD PTR -32[rbp]
	sub	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	mov	edx, DWORD PTR -28[rbp]
	sub	eax, edx
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, QWORD PTR 312[rax]
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, 344[rax]
	mov	rax, QWORD PTR -56[rbp]
	lea	rdi, 280[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, rax
	call	rcx
	mov	rax, QWORD PTR locus[rip+80]
	mov	rdx, QWORD PTR -56[rbp]
	add	rdx, 344
	mov	rsi, rdx
	lea	rdi, locus[rip]
	call	rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, QWORD PTR 168[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, 0
	mov	esi, 0
	mov	rdi, rax
	call	rcx
	test	eax, eax
	je	.L318
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	rdx
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 176[rax]
	mov	rax, QWORD PTR -56[rbp]
	lea	rcx, 344[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	rdx
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	rdx
	mov	rax, QWORD PTR box[rip+80]
	lea	rsi, locus[rip]
	lea	rdi, box[rip]
	call	rax
	jmp	.L321
.L318:
	mov	rax, QWORD PTR locus[rip+80]
	lea	rsi, box[rip]
	lea	rdi, locus[rip]
	call	rax
.L321:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L320
	call	__stack_chk_fail@PLT
.L320:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE71:
	.size	piece_rotate, .-piece_rotate
	.globl	piece_transform
	.type	piece_transform, @function
piece_transform:
.LFB72:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -8[rbp], rdi
	movsd	QWORD PTR -16[rbp], xmm0
	mov	DWORD PTR -20[rbp], esi
	cmp	DWORD PTR -20[rbp], 1
	je	.L323
	mov	rax, QWORD PTR -8[rbp]
	mov	r8, QWORD PTR 96[rax]
	movsd	xmm0, QWORD PTR -16[rbp]
	cvttsd2si	ecx, xmm0
	mov	edx, DWORD PTR -20[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	r8
	jmp	.L325
.L323:
	mov	rax, QWORD PTR -8[rbp]
	mov	r8, QWORD PTR 160[rax]
	mov	ecx, DWORD PTR -20[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, ecx
	movq	xmm0, rdx
	mov	rdi, rax
	call	r8
.L325:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE72:
	.size	piece_transform, .-piece_transform
	.globl	piece_delete
	.type	piece_delete, @function
piece_delete:
.LFB73:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 272
	mov	QWORD PTR -264[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -252[rbp], 0
	jmp	.L327
.L334:
	mov	QWORD PTR -216[rbp], 0
	jmp	.L328
.L331:
	mov	DWORD PTR -52[rbp], 0
	lea	rax, -52[rbp]
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	rdx, QWORD PTR 680[rax]
	mov	eax, DWORD PTR -252[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -216[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -40[rbp], rax
	lea	rax, -48[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	DWORD PTR -248[rbp], 0
	jmp	.L329
.L330:
	mov	eax, DWORD PTR -248[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	free@PLT
	add	DWORD PTR -248[rbp], 1
.L329:
	mov	eax, DWORD PTR -248[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	cmp	QWORD PTR -72[rbp], rax
	jne	.L330
	add	QWORD PTR -216[rbp], 1
.L328:
	mov	eax, DWORD PTR width[rip]
	cdqe
	cmp	QWORD PTR -216[rbp], rax
	jne	.L331
	mov	DWORD PTR -52[rbp], 0
	lea	rax, -52[rbp]
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	rdx, QWORD PTR 272[rax]
	mov	eax, DWORD PTR -252[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	rdx, QWORD PTR 680[rax]
	mov	eax, DWORD PTR -252[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	QWORD PTR -32[rbp], rax
	lea	rax, -48[rbp]
	mov	QWORD PTR -80[rbp], rax
	mov	DWORD PTR -244[rbp], 0
	jmp	.L332
.L333:
	mov	eax, DWORD PTR -244[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	free@PLT
	add	DWORD PTR -244[rbp], 1
.L332:
	mov	eax, DWORD PTR -244[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	cmp	QWORD PTR -88[rbp], rax
	jne	.L333
	add	DWORD PTR -252[rbp], 1
.L327:
	mov	eax, DWORD PTR height[rip]
	cmp	DWORD PTR -252[rbp], eax
	jne	.L334
	mov	DWORD PTR -52[rbp], 0
	lea	rax, -52[rbp]
	mov	QWORD PTR -184[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	rax, QWORD PTR 272[rax]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	rax, QWORD PTR 680[rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -184[rbp]
	mov	QWORD PTR -32[rbp], rax
	lea	rax, -48[rbp]
	mov	QWORD PTR -176[rbp], rax
	mov	DWORD PTR -240[rbp], 0
	jmp	.L335
.L336:
	mov	eax, DWORD PTR -240[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	free@PLT
	add	DWORD PTR -240[rbp], 1
.L335:
	mov	eax, DWORD PTR -240[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	cmp	QWORD PTR -184[rbp], rax
	jne	.L336
	mov	QWORD PTR -208[rbp], 0
	jmp	.L337
.L340:
	mov	DWORD PTR -52[rbp], 0
	lea	rax, -52[rbp]
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	rdx, QWORD PTR 968[rax]
	mov	rax, QWORD PTR -208[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	rdx, QWORD PTR 976[rax]
	mov	rax, QWORD PTR -208[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	QWORD PTR -32[rbp], rax
	lea	rax, -48[rbp]
	mov	QWORD PTR -96[rbp], rax
	mov	DWORD PTR -236[rbp], 0
	jmp	.L338
.L339:
	mov	eax, DWORD PTR -236[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	free@PLT
	add	DWORD PTR -236[rbp], 1
.L338:
	mov	eax, DWORD PTR -236[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	cmp	QWORD PTR -104[rbp], rax
	jne	.L339
	add	QWORD PTR -208[rbp], 1
.L337:
	mov	eax, DWORD PTR prelevel[rip]
	cdqe
	cmp	QWORD PTR -208[rbp], rax
	jne	.L340
	mov	DWORD PTR -52[rbp], 0
	lea	rax, -52[rbp]
	mov	QWORD PTR -168[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	rax, QWORD PTR 968[rax]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	rax, QWORD PTR 976[rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -168[rbp]
	mov	QWORD PTR -32[rbp], rax
	lea	rax, -48[rbp]
	mov	QWORD PTR -160[rbp], rax
	mov	DWORD PTR -232[rbp], 0
	jmp	.L341
.L342:
	mov	eax, DWORD PTR -232[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	free@PLT
	add	DWORD PTR -232[rbp], 1
.L341:
	mov	eax, DWORD PTR -232[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	cmp	QWORD PTR -168[rbp], rax
	jne	.L342
	mov	DWORD PTR -52[rbp], 0
	lea	rax, -52[rbp]
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	rax, QWORD PTR 1000[rax]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	rax, QWORD PTR 992[rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	rax, QWORD PTR 1008[rax]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	rax, QWORD PTR 1016[rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	mov	QWORD PTR -16[rbp], rax
	lea	rax, -48[rbp]
	mov	QWORD PTR -144[rbp], rax
	mov	DWORD PTR -228[rbp], 0
	jmp	.L343
.L344:
	mov	eax, DWORD PTR -228[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -144[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	free@PLT
	add	DWORD PTR -228[rbp], 1
.L343:
	mov	eax, DWORD PTR -228[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -144[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	cmp	QWORD PTR -152[rbp], rax
	jne	.L344
	mov	QWORD PTR -200[rbp], 0
	jmp	.L345
.L348:
	mov	DWORD PTR -52[rbp], 0
	lea	rax, -52[rbp]
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	rdx, QWORD PTR 984[rax]
	mov	rax, QWORD PTR -200[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	QWORD PTR -40[rbp], rax
	lea	rax, -48[rbp]
	mov	QWORD PTR -112[rbp], rax
	mov	DWORD PTR -224[rbp], 0
	jmp	.L346
.L347:
	mov	eax, DWORD PTR -224[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	free@PLT
	add	DWORD PTR -224[rbp], 1
.L346:
	mov	eax, DWORD PTR -224[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	cmp	QWORD PTR -120[rbp], rax
	jne	.L347
	add	QWORD PTR -200[rbp], 1
.L345:
	mov	rax, QWORD PTR color_len[rip]
	cmp	QWORD PTR -200[rbp], rax
	jne	.L348
	mov	QWORD PTR -192[rbp], 0
	jmp	.L349
.L350:
	mov	rax, QWORD PTR -264[rbp]
	mov	rcx, QWORD PTR 848[rax]
	mov	rdx, QWORD PTR -192[rbp]
	mov	rax, rdx
	sal	rax, 3
	sub	rax, rdx
	sal	rax, 4
	add	rax, rcx
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -264[rbp]
	mov	rsi, QWORD PTR 848[rax]
	mov	rcx, QWORD PTR -192[rbp]
	mov	rax, rcx
	sal	rax, 3
	sub	rax, rcx
	sal	rax, 4
	add	rax, rsi
	mov	rdi, rax
	call	rdx
	add	QWORD PTR -192[rbp], 1
.L349:
	mov	eax, DWORD PTR prelevel[rip]
	cdqe
	cmp	QWORD PTR -192[rbp], rax
	jne	.L350
	mov	DWORD PTR -52[rbp], 0
	lea	rax, -52[rbp]
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	rax, QWORD PTR 984[rax]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	rax, QWORD PTR 848[rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	mov	QWORD PTR -32[rbp], rax
	lea	rax, -48[rbp]
	mov	QWORD PTR -128[rbp], rax
	mov	DWORD PTR -220[rbp], 0
	jmp	.L351
.L352:
	mov	eax, DWORD PTR -220[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	free@PLT
	add	DWORD PTR -220[rbp], 1
.L351:
	mov	eax, DWORD PTR -220[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	cmp	QWORD PTR -136[rbp], rax
	jne	.L352
	mov	rax, QWORD PTR -264[rbp]
	mov	rax, QWORD PTR 864[rax]
	mov	rdx, QWORD PTR -264[rbp]
	add	rdx, 856
	mov	rdi, rdx
	call	rax
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L353
	call	__stack_chk_fail@PLT
.L353:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE73:
	.size	piece_delete, .-piece_delete
	.section	.rodata
.LC29:
	.string	"%c%c%c%c%c%c"
	.text
	.globl	init_piece
	.type	init_piece, @function
init_piece:
.LFB74:
	.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, 72
	.cfi_offset 3, -24
	mov	QWORD PTR -72[rbp], rdi
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, piece_getsig[rip]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, piece_persig[rip]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, piece_drawbox[rip]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, piece_get_erase[rip]
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, piece_clear_row[rip]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, piece_drop_bottom[rip]
	mov	QWORD PTR 48[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, piece_init_color[rip]
	mov	QWORD PTR 56[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, piece_ghost_cross[rip]
	mov	QWORD PTR 64[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, piece_init[rip]
	mov	QWORD PTR 88[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, piece_move[rip]
	mov	QWORD PTR 96[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, piece_random_piece[rip]
	mov	QWORD PTR 72[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, piece_check[rip]
	mov	QWORD PTR 104[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, piece_get_invoke[rip]
	mov	QWORD PTR 112[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, piece_show_piece[rip]
	mov	QWORD PTR 120[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, piece_shift_piece[rip]
	mov	QWORD PTR 128[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, piece_update[rip]
	mov	QWORD PTR 136[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, piece_perplus[rip]
	mov	QWORD PTR 144[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, piece_get_piece[rip]
	mov	QWORD PTR 80[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, piece_rotate[rip]
	mov	QWORD PTR 160[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, piece_move_piece[rip]
	mov	QWORD PTR 168[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, piece_coordinate[rip]
	mov	QWORD PTR 176[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, piece_draw_piece[rip]
	mov	QWORD PTR 192[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, piece_transform[rip]
	mov	QWORD PTR 184[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, piece_get_replace[rip]
	mov	QWORD PTR 200[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, piece_bomb[rip]
	mov	QWORD PTR 208[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, piece_top_point[rip]
	mov	QWORD PTR 152[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, piece_coord_comp[rip]
	mov	QWORD PTR 216[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, piece_get_preview[rip]
	mov	QWORD PTR 224[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, piece_loop[rip]
	mov	QWORD PTR 240[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, piece_pipe_piece[rip]
	mov	QWORD PTR 232[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, piece_delete[rip]
	mov	QWORD PTR 16[rax], rdx
	mov	eax, DWORD PTR prelevel[rip]
	test	eax, eax
	jle	.L355
	mov	eax, DWORD PTR prelevel[rip]
	jmp	.L356
.L355:
	mov	eax, 6
.L356:
	mov	DWORD PTR prelevel[rip], eax
	mov	eax, DWORD PTR speedlevel[rip]
	cmp	eax, 30
	jg	.L357
	mov	eax, DWORD PTR speedlevel[rip]
	jmp	.L358
.L357:
	mov	eax, 0
.L358:
	mov	DWORD PTR speedlevel[rip], eax
	mov	eax, DWORD PTR runlevel[rip]
	test	eax, eax
	js	.L359
	mov	eax, DWORD PTR runlevel[rip]
	cmp	eax, 31
	jg	.L359
	mov	eax, DWORD PTR runlevel[rip]
	add	eax, 1
	jmp	.L360
.L359:
	mov	eax, 32
.L360:
	mov	DWORD PTR runlevel[rip], eax
	mov	eax, DWORD PTR width[rip]
	cmp	eax, 16
	jle	.L361
	mov	eax, DWORD PTR width[rip]
	jmp	.L362
.L361:
	mov	eax, 25
.L362:
	mov	DWORD PTR width[rip], eax
	mov	eax, DWORD PTR height[rip]
	cmp	eax, 9
	jle	.L363
	mov	eax, DWORD PTR height[rip]
	jmp	.L364
.L363:
	mov	eax, 30
.L364:
	mov	DWORD PTR height[rip], eax
	mov	eax, DWORD PTR height[rip]
	mov	edx, 3
	add	eax, edx
	mov	DWORD PTR lower[rip], eax
	mov	eax, DWORD PTR width[rip]
	add	eax, eax
	mov	edx, 4
	add	eax, edx
	mov	DWORD PTR wthm[rip], eax
	mov	edx, 4
	mov	eax, DWORD PTR wthm[rip]
	add	eax, edx
	add	eax, 3
	mov	DWORD PTR dist[rip], eax
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 832[rax], 0
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 836[rax], 0
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 840[rax], 1
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 280
	mov	rdi, rax
	call	transpose_init
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 688
	mov	rdi, rax
	call	max_distance_init
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 856
	mov	rdi, rax
	call	vector_init
	mov	eax, DWORD PTR height[rip]
	cdqe
	sal	rax, 3
	mov	rdi, rax
	call	malloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR 272[rax], rdx
	mov	eax, DWORD PTR height[rip]
	cdqe
	sal	rax, 3
	mov	rdi, rax
	call	malloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR 680[rax], rdx
	mov	QWORD PTR -56[rbp], 0
	jmp	.L365
.L368:
	mov	eax, DWORD PTR width[rip]
	cdqe
	sal	rax, 2
	mov	rdx, QWORD PTR -72[rbp]
	mov	rcx, QWORD PTR 272[rdx]
	mov	rdx, QWORD PTR -56[rbp]
	sal	rdx, 3
	lea	rbx, [rcx+rdx]
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR [rbx], rax
	mov	eax, DWORD PTR width[rip]
	cdqe
	sal	rax, 3
	mov	rdx, QWORD PTR -72[rbp]
	mov	rcx, QWORD PTR 680[rdx]
	mov	rdx, QWORD PTR -56[rbp]
	sal	rdx, 3
	lea	rbx, [rcx+rdx]
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR [rbx], rax
	mov	QWORD PTR -48[rbp], 0
	jmp	.L366
.L367:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR 272[rax]
	mov	rax, QWORD PTR -56[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -48[rbp]
	sal	rax, 2
	add	rax, rdx
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR color_size[rip]
	mov	rdx, QWORD PTR -72[rbp]
	mov	rcx, QWORD PTR 680[rdx]
	mov	rdx, QWORD PTR -56[rbp]
	sal	rdx, 3
	add	rdx, rcx
	mov	rcx, QWORD PTR [rdx]
	mov	rdx, QWORD PTR -48[rbp]
	sal	rdx, 3
	lea	rbx, [rcx+rdx]
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR [rbx], rax
	add	QWORD PTR -48[rbp], 1
.L366:
	mov	eax, DWORD PTR width[rip]
	cdqe
	cmp	QWORD PTR -48[rbp], rax
	jne	.L367
	add	QWORD PTR -56[rbp], 1
.L365:
	mov	eax, DWORD PTR height[rip]
	cdqe
	cmp	QWORD PTR -56[rbp], rax
	jne	.L368
	mov	eax, DWORD PTR prelevel[rip]
	cdqe
	sal	rax, 3
	mov	rdi, rax
	call	malloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR 968[rax], rdx
	mov	eax, DWORD PTR prelevel[rip]
	cdqe
	sal	rax, 3
	mov	rdi, rax
	call	malloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR 976[rax], rdx
	mov	rax, QWORD PTR str_size[rip]
	mov	rdi, rax
	call	malloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR 1000[rax], rdx
	mov	rax, QWORD PTR str_size[rip]
	mov	rdi, rax
	call	malloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR 992[rax], rdx
	mov	rax, QWORD PTR str_size[rip]
	mov	rdi, rax
	call	malloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR 1008[rax], rdx
	mov	rax, QWORD PTR str_size[rip]
	mov	rdi, rax
	call	malloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR 1016[rax], rdx
	mov	QWORD PTR -40[rbp], 0
	jmp	.L369
.L370:
	mov	rax, QWORD PTR str_size[rip]
	mov	rdx, QWORD PTR -72[rbp]
	mov	rcx, QWORD PTR 968[rdx]
	mov	rdx, QWORD PTR -40[rbp]
	sal	rdx, 3
	lea	rbx, [rcx+rdx]
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR [rbx], rax
	mov	rax, QWORD PTR str_size[rip]
	mov	rdx, QWORD PTR -72[rbp]
	mov	rcx, QWORD PTR 976[rdx]
	mov	rdx, QWORD PTR -40[rbp]
	sal	rdx, 3
	lea	rbx, [rcx+rdx]
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR [rbx], rax
	add	QWORD PTR -40[rbp], 1
.L369:
	mov	eax, DWORD PTR prelevel[rip]
	cdqe
	cmp	QWORD PTR -40[rbp], rax
	jne	.L370
	mov	eax, DWORD PTR prelevel[rip]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	sub	rax, rdx
	sal	rax, 4
	mov	rdi, rax
	call	malloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR 848[rax], rdx
	mov	QWORD PTR -32[rbp], 0
	jmp	.L371
.L372:
	mov	rax, QWORD PTR -72[rbp]
	mov	rcx, QWORD PTR 848[rax]
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, rdx
	sal	rax, 3
	sub	rax, rdx
	sal	rax, 4
	add	rax, rcx
	mov	rdi, rax
	call	vector_init
	add	QWORD PTR -32[rbp], 1
.L371:
	mov	eax, DWORD PTR prelevel[rip]
	cdqe
	cmp	QWORD PTR -32[rbp], rax
	jne	.L372
	sub	rsp, 8
	push	74
	mov	r9d, 91
	mov	r8d, 27
	mov	ecx, 72
	mov	edx, 91
	mov	esi, 27
	lea	rdi, .LC29[rip]
	mov	eax, 0
	call	printf@PLT
	add	rsp, 16
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, board_border[rip]
	mov	QWORD PTR 248[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, board_matrix[rip]
	mov	QWORD PTR 256[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, board_notify[rip]
	mov	QWORD PTR 264[rax], rdx
	mov	QWORD PTR -24[rbp], 0
	jmp	.L373
.L374:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, 30
	mov	rdx, QWORD PTR 8[rax+rdx*8]
	mov	eax, 0
	call	rdx
	add	QWORD PTR -24[rbp], 1
.L373:
	cmp	QWORD PTR -24[rbp], 3
	jne	.L374
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR 120[rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	rdx
	mov	rax, QWORD PTR -72[rbp]
	mov	r8, QWORD PTR 192[rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	ecx, 1
	mov	edx, 0
	mov	esi, 1
	mov	rdi, rax
	call	r8
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE74:
	.size	init_piece, .-init_piece
	.section	.rodata
.LC30:
	.string	"\033[38;5"
	.align 8
.LC31:
	.string	"%s;%d;1m\033[%d;%dH==%s;%d;1m\033[%d;%dH==\033[0m"
	.align 8
.LC32:
	.string	"%s;%d;1m\033[%d;%dH||%s;%d;1m\033[%d;%dH||\033[0m"
	.text
	.globl	board_border
	.type	board_border, @function
board_border:
.LFB75:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	call	rand@PLT
	movsx	rdx, eax
	imul	rdx, rdx, -503547889
	shr	rdx, 32
	add	edx, eax
	sar	edx, 7
	mov	ecx, eax
	sar	ecx, 31
	sub	edx, ecx
	imul	ecx, edx, 145
	sub	eax, ecx
	mov	edx, eax
	lea	eax, 6[rdx]
	mov	DWORD PTR -12[rbp], eax
	lea	rax, .LC30[rip]
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -20[rbp], 6
	jmp	.L376
.L377:
	mov	eax, DWORD PTR lower[rip]
	lea	edi, 1[rax]
	mov	edx, DWORD PTR -12[rbp]
	mov	eax, DWORD PTR -20[rbp]
	add	eax, edx
	lea	esi, 25[rax]
	mov	r10d, 3
	mov	edx, DWORD PTR -12[rbp]
	mov	eax, DWORD PTR -20[rbp]
	add	edx, eax
	mov	r9, QWORD PTR -8[rbp]
	mov	r8d, DWORD PTR -20[rbp]
	mov	rax, QWORD PTR -8[rbp]
	sub	rsp, 8
	mov	ecx, DWORD PTR -20[rbp]
	push	rcx
	push	rdi
	push	rsi
	mov	ecx, r10d
	mov	rsi, rax
	lea	rdi, .LC31[rip]
	mov	eax, 0
	call	printf@PLT
	add	rsp, 32
	add	DWORD PTR -20[rbp], 2
.L376:
	mov	eax, DWORD PTR wthm[rip]
	cmp	DWORD PTR -20[rbp], eax
	jle	.L377
	mov	DWORD PTR -16[rbp], 3
	jmp	.L378
.L379:
	mov	eax, DWORD PTR wthm[rip]
	lea	ecx, 2[rax]
	mov	edx, DWORD PTR -12[rbp]
	mov	eax, DWORD PTR -16[rbp]
	add	eax, edx
	lea	edi, 30[rax]
	mov	r10d, 4
	mov	edx, DWORD PTR -12[rbp]
	mov	eax, DWORD PTR -16[rbp]
	lea	esi, [rdx+rax]
	mov	r8, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	sub	rsp, 8
	push	rcx
	mov	ecx, DWORD PTR -16[rbp]
	push	rcx
	push	rdi
	mov	r9, r8
	mov	r8d, r10d
	mov	ecx, edx
	mov	edx, esi
	mov	rsi, rax
	lea	rdi, .LC32[rip]
	mov	eax, 0
	call	printf@PLT
	add	rsp, 32
	add	DWORD PTR -16[rbp], 1
.L378:
	mov	eax, DWORD PTR lower[rip]
	add	eax, 1
	cmp	DWORD PTR -16[rbp], eax
	jle	.L379
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE75:
	.size	board_border, .-board_border
	.section	.rodata
	.align 8
.LC33:
	.string	"\033[1;31m\033[%d;%dHRunLevel\033[1;31m\033[%d;%dHPreviewLevel\033[0m\n"
	.align 8
.LC34:
	.string	"\033[1;31m\033[%d;%dHSpeedLevel\033[1;31m\033[%d;%dHScore\033[0m\n"
	.align 8
.LC35:
	.string	"\033[1;31m\033[%d;%dHWidth\033[1;31m\033[%d;%dHHeight\033[0m\n"
	.align 8
.LC36:
	.string	"\033[1;34m\033[%d;%dH%d\033[1;34m\033[%d;%dH%d\033[0m\n"
	.align 8
.LC37:
	.string	"\033[38;5;34;1m\033[%d;%dHM|m      ===   double         N|n          ===   half\n"
	.align 8
.LC38:
	.string	"\033[%d;%dHQ|q|ESC  ===   exit           U|u          ===   one step up\n"
	.align 8
.LC39:
	.string	"\033[%d;%dHP|p      ===   pause          S|s|down     ===   one step down\n"
	.align 8
.LC40:
	.string	"\033[%d;%dHR|r      ===   resume         A|a|left     ===   one step left\n"
	.align 8
.LC41:
	.string	"\033[%d;%dHW|w|up   ===   rotate         D|d|right    ===   one step right\n"
	.align 8
.LC42:
	.string	"\033[%d;%dHT|t      ===   transpose      Space|enter  ===   drop all down\n"
.LC43:
	.string	"\033[38;5;106;1m"
.LC44:
	.string	"\033[%d;%dHVersion 1.0.3\n"
	.align 8
.LC45:
	.string	"\033[%d;%dHhttps://github.com/deepgrace"
	.align 8
.LC46:
	.string	"\033[%d;%dHGrace <complex.invoke@gmail.com>"
	.text
	.globl	board_notify
	.type	board_notify, @function
board_notify:
.LFB76:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, DWORD PTR dist[rip]
	lea	ecx, 11[rax]
	mov	eax, 3
	lea	edx, 9[rax]
	mov	eax, DWORD PTR dist[rip]
	mov	esi, 3
	add	esi, 9
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, eax
	lea	rdi, .LC33[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, DWORD PTR dist[rip]
	lea	esi, 56[rax]
	mov	eax, 3
	lea	ecx, 9[rax]
	mov	eax, DWORD PTR dist[rip]
	lea	edx, 26[rax]
	mov	eax, 3
	add	eax, 9
	mov	r8d, esi
	mov	esi, eax
	lea	rdi, .LC34[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, DWORD PTR dist[rip]
	lea	esi, 47[rax]
	mov	eax, 3
	lea	ecx, 9[rax]
	mov	eax, DWORD PTR dist[rip]
	lea	edx, 39[rax]
	mov	eax, 3
	add	eax, 9
	mov	r8d, esi
	mov	esi, eax
	lea	rdi, .LC35[rip]
	mov	eax, 0
	call	printf@PLT
	mov	ecx, DWORD PTR prelevel[rip]
	mov	eax, DWORD PTR dist[rip]
	lea	r8d, 11[rax]
	mov	eax, 3
	lea	edi, 10[rax]
	mov	eax, DWORD PTR runlevel[rip]
	lea	edx, -1[rax]
	mov	eax, DWORD PTR dist[rip]
	mov	esi, 3
	add	esi, 10
	sub	rsp, 8
	push	rcx
	mov	r9d, r8d
	mov	r8d, edi
	mov	ecx, edx
	mov	edx, eax
	lea	rdi, .LC36[rip]
	mov	eax, 0
	call	printf@PLT
	add	rsp, 16
	mov	ecx, DWORD PTR score[rip]
	mov	eax, DWORD PTR dist[rip]
	lea	r8d, 56[rax]
	mov	eax, 3
	lea	edi, 10[rax]
	mov	eax, DWORD PTR speedlevel[rip]
	mov	edx, DWORD PTR dist[rip]
	add	edx, 26
	mov	esi, 3
	add	esi, 10
	sub	rsp, 8
	push	rcx
	mov	r9d, r8d
	mov	r8d, edi
	mov	ecx, eax
	lea	rdi, .LC36[rip]
	mov	eax, 0
	call	printf@PLT
	add	rsp, 16
	mov	ecx, DWORD PTR height[rip]
	mov	eax, DWORD PTR dist[rip]
	lea	r8d, 47[rax]
	mov	eax, 3
	lea	edi, 10[rax]
	mov	eax, DWORD PTR width[rip]
	mov	edx, DWORD PTR dist[rip]
	add	edx, 39
	mov	esi, 3
	add	esi, 10
	sub	rsp, 8
	push	rcx
	mov	r9d, r8d
	mov	r8d, edi
	mov	ecx, eax
	lea	rdi, .LC36[rip]
	mov	eax, 0
	call	printf@PLT
	add	rsp, 16
	mov	eax, DWORD PTR dist[rip]
	mov	edx, 3
	lea	ecx, 12[rdx]
	mov	edx, eax
	mov	esi, ecx
	lea	rdi, .LC37[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, DWORD PTR dist[rip]
	mov	edx, 3
	lea	ecx, 13[rdx]
	mov	edx, eax
	mov	esi, ecx
	lea	rdi, .LC38[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, DWORD PTR dist[rip]
	mov	edx, 3
	lea	ecx, 14[rdx]
	mov	edx, eax
	mov	esi, ecx
	lea	rdi, .LC39[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, DWORD PTR dist[rip]
	mov	edx, 3
	lea	ecx, 15[rdx]
	mov	edx, eax
	mov	esi, ecx
	lea	rdi, .LC40[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, DWORD PTR dist[rip]
	mov	edx, 3
	lea	ecx, 16[rdx]
	mov	edx, eax
	mov	esi, ecx
	lea	rdi, .LC41[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, DWORD PTR dist[rip]
	mov	edx, 3
	lea	ecx, 17[rdx]
	mov	edx, eax
	mov	esi, ecx
	lea	rdi, .LC42[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rdi, .LC43[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, DWORD PTR dist[rip]
	mov	edx, 3
	lea	ecx, 19[rdx]
	mov	edx, eax
	mov	esi, ecx
	lea	rdi, .LC44[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, DWORD PTR dist[rip]
	mov	edx, 3
	lea	ecx, 20[rdx]
	mov	edx, eax
	mov	esi, ecx
	lea	rdi, .LC45[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, DWORD PTR dist[rip]
	mov	edx, 3
	lea	ecx, 21[rdx]
	mov	edx, eax
	mov	esi, ecx
	lea	rdi, .LC46[rip]
	mov	eax, 0
	call	printf@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE76:
	.size	board_notify, .-board_notify
	.section	.rodata
.LC47:
	.string	" "
.LC48:
	.string	"\033[0m"
.LC49:
	.string	"[][]"
.LC50:
	.string	"  "
.LC51:
	.string	"   "
.LC52:
	.string	"     "
.LC53:
	.string	"          "
.LC54:
	.string	"\033[38;5;191;1m"
.LC55:
	.string	"\033[38;5;47;1m"
.LC56:
	.string	"\033[38;5;30;1m"
.LC57:
	.string	"                    "
.LC58:
	.string	"%s%s%s"
.LC59:
	.string	"%s%s%s%s"
.LC60:
	.string	"%s%s%s%s%s%s"
.LC61:
	.string	"%s%s%s%s%s%s%s"
.LC62:
	.string	"%s%s%s%s%s%s%s%s%s%s%s%s%s%s"
.LC63:
	.string	"(x-m)*zoomx"
.LC64:
	.string	"row"
.LC65:
	.string	"="
.LC66:
	.string	"%s%s%s%s%s%s%s%s%s%s%s%s%s"
.LC67:
	.string	"+"
	.align 8
.LC68:
	.string	"%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s"
.LC69:
	.string	"m"
.LC70:
	.string	"sin(a)"
.LC71:
	.string	"cos(a)"
.LC72:
	.string	"col"
	.align 8
.LC73:
	.string	"%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s"
.LC74:
	.string	"(y-n)*zoomy"
.LC75:
	.string	"-sin(a)"
	.align 8
.LC76:
	.string	"%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s"
.LC77:
	.string	"n"
	.align 8
.LC78:
	.string	"\033[%d;%dH%s          %s%s%s%s%s%s%s\n"
.LC79:
	.string	"\033[%d;%dH%s%s%s%s%s%s%s%s%s\n"
	.align 8
.LC80:
	.string	"\033[%d;%dH%s%s%s%s%s%s%s%s%s%s%s\n"
	.align 8
.LC81:
	.string	"\033[%d;%dH%s%s%s%s\033[%d;%dH%s%s%s%s\n"
	.align 8
.LC82:
	.string	"\033[%d;%dH%s%s%s%s%s%s%s%s%s%s%s%s\n"
	.align 8
.LC83:
	.string	"\033[%d;%dH%s%s%s%s%s\033[%d;%dH%s%s%s%s%s\n"
	.align 8
.LC84:
	.string	"\033[%d;%dH%s%s%s%s%s%s\033[%d;%dH%s%s%s%s%s %s\n"
	.text
	.globl	board_matrix
	.type	board_matrix, @function
board_matrix:
.LFB77:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 576
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rax, .LC47[rip]
	mov	QWORD PTR -560[rbp], rax
	lea	rax, .LC48[rip]
	mov	QWORD PTR -552[rbp], rax
	lea	rax, .LC49[rip]
	mov	QWORD PTR -544[rbp], rax
	lea	rax, .LC50[rip]
	mov	QWORD PTR -536[rbp], rax
	lea	rax, .LC51[rip]
	mov	QWORD PTR -528[rbp], rax
	lea	rax, .LC52[rip]
	mov	QWORD PTR -520[rbp], rax
	lea	rax, .LC53[rip]
	mov	QWORD PTR -512[rbp], rax
	lea	rax, .LC54[rip]
	mov	QWORD PTR -504[rbp], rax
	lea	rax, .LC55[rip]
	mov	QWORD PTR -496[rbp], rax
	lea	rax, .LC56[rip]
	mov	QWORD PTR -488[rbp], rax
	lea	rax, .LC57[rip]
	mov	QWORD PTR -480[rbp], rax
	mov	rax, QWORD PTR -496[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	QWORD PTR -472[rbp], rax
	mov	rax, QWORD PTR -488[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	QWORD PTR -464[rbp], rax
	mov	rax, QWORD PTR -552[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	QWORD PTR -456[rbp], rax
	mov	rax, QWORD PTR -544[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	QWORD PTR -448[rbp], rax
	mov	rdx, QWORD PTR -448[rbp]
	mov	rax, QWORD PTR -456[rbp]
	add	rax, rdx
	mov	QWORD PTR -440[rbp], rax
	mov	rdx, QWORD PTR -464[rbp]
	mov	rax, QWORD PTR -456[rbp]
	add	rax, rdx
	add	rax, 3
	mov	QWORD PTR -432[rbp], rax
	mov	rax, QWORD PTR -432[rbp]
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -424[rbp], rax
	mov	rcx, QWORD PTR -552[rbp]
	mov	rdx, QWORD PTR -488[rbp]
	mov	rsi, QWORD PTR -432[rbp]
	mov	rax, QWORD PTR -424[rbp]
	mov	r9, rcx
	lea	r8, .LC0[rip]
	mov	rcx, rdx
	lea	rdx, .LC58[rip]
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	mov	rdx, QWORD PTR -472[rbp]
	mov	rax, QWORD PTR -456[rbp]
	add	rax, rdx
	add	rax, 3
	mov	QWORD PTR -416[rbp], rax
	mov	rax, QWORD PTR -416[rbp]
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -408[rbp], rax
	mov	rcx, QWORD PTR -552[rbp]
	mov	rdx, QWORD PTR -496[rbp]
	mov	rsi, QWORD PTR -416[rbp]
	mov	rax, QWORD PTR -408[rbp]
	mov	r9, rcx
	lea	r8, .LC0[rip]
	mov	rcx, rdx
	lea	rdx, .LC58[rip]
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	mov	rdx, QWORD PTR -472[rbp]
	mov	rax, QWORD PTR -440[rbp]
	add	rax, rdx
	add	rax, 1
	mov	QWORD PTR -400[rbp], rax
	mov	rax, QWORD PTR -400[rbp]
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -392[rbp], rax
	mov	rdi, QWORD PTR -552[rbp]
	mov	rcx, QWORD PTR -544[rbp]
	mov	rdx, QWORD PTR -496[rbp]
	mov	rsi, QWORD PTR -400[rbp]
	mov	rax, QWORD PTR -392[rbp]
	mov	r9, rdi
	mov	r8, rcx
	mov	rcx, rdx
	lea	rdx, .LC58[rip]
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	mov	rdx, QWORD PTR -464[rbp]
	mov	rax, QWORD PTR -440[rbp]
	add	rax, rdx
	add	rax, 3
	mov	QWORD PTR -384[rbp], rax
	mov	rax, QWORD PTR -384[rbp]
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -376[rbp], rax
	mov	rcx, QWORD PTR -544[rbp]
	mov	rdx, QWORD PTR -488[rbp]
	mov	rsi, QWORD PTR -384[rbp]
	mov	rax, QWORD PTR -376[rbp]
	sub	rsp, 8
	push	QWORD PTR -552[rbp]
	mov	r9, rcx
	lea	r8, .LC0[rip]
	mov	rcx, rdx
	lea	rdx, .LC59[rip]
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	add	rsp, 16
	mov	rdx, QWORD PTR -472[rbp]
	mov	rax, QWORD PTR -440[rbp]
	add	rax, rdx
	add	rax, 3
	mov	QWORD PTR -368[rbp], rax
	mov	rax, QWORD PTR -368[rbp]
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -360[rbp], rax
	mov	rcx, QWORD PTR -544[rbp]
	mov	rdx, QWORD PTR -496[rbp]
	mov	rsi, QWORD PTR -368[rbp]
	mov	rax, QWORD PTR -360[rbp]
	sub	rsp, 8
	push	QWORD PTR -552[rbp]
	mov	r9, rcx
	lea	r8, .LC0[rip]
	mov	rcx, rdx
	lea	rdx, .LC59[rip]
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	add	rsp, 16
	mov	rax, QWORD PTR -448[rbp]
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -472[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -456[rbp]
	add	rax, rdx
	add	rax, 1
	mov	QWORD PTR -352[rbp], rax
	mov	rax, QWORD PTR -352[rbp]
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -344[rbp], rax
	mov	rdi, QWORD PTR -544[rbp]
	mov	rcx, QWORD PTR -544[rbp]
	mov	rdx, QWORD PTR -496[rbp]
	mov	rsi, QWORD PTR -352[rbp]
	mov	rax, QWORD PTR -344[rbp]
	sub	rsp, 8
	push	QWORD PTR -552[rbp]
	mov	r9, rdi
	mov	r8, rcx
	mov	rcx, rdx
	lea	rdx, .LC59[rip]
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	add	rsp, 16
	mov	rax, QWORD PTR -352[rbp]
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -416[rbp]
	add	rax, rdx
	add	rax, 8
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -336[rbp]
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -328[rbp], rax
	mov	rdi, QWORD PTR -536[rbp]
	mov	rcx, QWORD PTR -408[rbp]
	mov	rdx, QWORD PTR -528[rbp]
	mov	rsi, QWORD PTR -336[rbp]
	mov	rax, QWORD PTR -328[rbp]
	sub	rsp, 8
	push	QWORD PTR -344[rbp]
	push	QWORD PTR -536[rbp]
	push	QWORD PTR -344[rbp]
	mov	r9, rdi
	mov	r8, rcx
	mov	rcx, rdx
	lea	rdx, .LC60[rip]
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	add	rsp, 32
	mov	rax, QWORD PTR -400[rbp]
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -336[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -432[rbp]
	add	rax, rdx
	add	rax, 6
	mov	QWORD PTR -320[rbp], rax
	mov	rax, QWORD PTR -320[rbp]
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -312[rbp], rax
	mov	rdi, QWORD PTR -392[rbp]
	mov	rcx, QWORD PTR -560[rbp]
	mov	rdx, QWORD PTR -392[rbp]
	mov	rsi, QWORD PTR -320[rbp]
	mov	rax, QWORD PTR -312[rbp]
	push	QWORD PTR -536[rbp]
	push	QWORD PTR -536[rbp]
	push	QWORD PTR -424[rbp]
	push	QWORD PTR -328[rbp]
	mov	r9, rdi
	mov	r8, rcx
	mov	rcx, rdx
	lea	rdx, .LC61[rip]
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	add	rsp, 32
	mov	rax, QWORD PTR -504[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	QWORD PTR -304[rbp], rax
	mov	rax, QWORD PTR -416[rbp]
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -304[rbp]
	add	rax, rdx
	add	rax, rax
	add	rax, 25
	mov	QWORD PTR -296[rbp], rax
	mov	rax, QWORD PTR -296[rbp]
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -288[rbp], rax
	mov	r8, QWORD PTR -504[rbp]
	mov	rdi, QWORD PTR -560[rbp]
	mov	rdx, QWORD PTR -408[rbp]
	mov	rsi, QWORD PTR -296[rbp]
	mov	rax, QWORD PTR -288[rbp]
	sub	rsp, 8
	push	QWORD PTR -536[rbp]
	lea	rcx, .LC63[rip]
	push	rcx
	push	QWORD PTR -504[rbp]
	push	QWORD PTR -560[rbp]
	push	QWORD PTR -408[rbp]
	push	QWORD PTR -536[rbp]
	push	QWORD PTR -408[rbp]
	push	QWORD PTR -528[rbp]
	push	QWORD PTR -408[rbp]
	push	QWORD PTR -560[rbp]
	lea	rcx, .LC64[rip]
	push	rcx
	mov	r9, r8
	mov	r8, rdi
	mov	rcx, rdx
	lea	rdx, .LC62[rip]
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	add	rsp, 96
	mov	rdx, QWORD PTR -416[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rdx, rax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, rax
	add	rax, rdx
	add	rax, 25
	mov	QWORD PTR -280[rbp], rax
	mov	rax, QWORD PTR -280[rbp]
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -272[rbp], rax
	mov	rcx, QWORD PTR -504[rbp]
	mov	rdx, QWORD PTR -560[rbp]
	mov	rsi, QWORD PTR -280[rbp]
	mov	rax, QWORD PTR -272[rbp]
	sub	rsp, 8
	push	QWORD PTR -528[rbp]
	push	QWORD PTR -504[rbp]
	push	QWORD PTR -528[rbp]
	push	QWORD PTR -408[rbp]
	push	QWORD PTR -560[rbp]
	push	QWORD PTR -528[rbp]
	push	QWORD PTR -512[rbp]
	push	QWORD PTR -408[rbp]
	push	QWORD PTR -536[rbp]
	push	QWORD PTR -408[rbp]
	push	QWORD PTR -560[rbp]
	lea	r9, .LC65[rip]
	mov	r8, rcx
	mov	rcx, rdx
	lea	rdx, .LC62[rip]
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	add	rsp, 96
	mov	rax, QWORD PTR -416[rbp]
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -304[rbp]
	add	rax, rdx
	add	rax, 28
	mov	QWORD PTR -264[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -256[rbp], rax
	mov	r8, QWORD PTR -536[rbp]
	mov	rdi, QWORD PTR -520[rbp]
	mov	rdx, QWORD PTR -512[rbp]
	mov	rsi, QWORD PTR -264[rbp]
	mov	rax, QWORD PTR -256[rbp]
	push	QWORD PTR -408[rbp]
	push	QWORD PTR -520[rbp]
	push	QWORD PTR -408[rbp]
	push	QWORD PTR -560[rbp]
	lea	rcx, .LC67[rip]
	push	rcx
	push	QWORD PTR -504[rbp]
	push	QWORD PTR -560[rbp]
	push	QWORD PTR -408[rbp]
	push	QWORD PTR -536[rbp]
	push	QWORD PTR -408[rbp]
	mov	r9, r8
	mov	r8, rdi
	mov	rcx, rdx
	lea	rdx, .LC66[rip]
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	add	rsp, 80
	mov	rdx, QWORD PTR -416[rbp]
	mov	rax, rdx
	sal	rax, 2
	lea	rcx, [rax+rdx]
	mov	rdx, QWORD PTR -304[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	add	rax, 32
	mov	QWORD PTR -248[rbp], rax
	mov	rax, QWORD PTR -248[rbp]
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -240[rbp], rax
	mov	r8, QWORD PTR -408[rbp]
	mov	rdi, QWORD PTR -560[rbp]
	mov	rdx, QWORD PTR -528[rbp]
	mov	rsi, QWORD PTR -248[rbp]
	mov	rax, QWORD PTR -240[rbp]
	sub	rsp, 8
	push	QWORD PTR -408[rbp]
	push	QWORD PTR -536[rbp]
	lea	rcx, .LC69[rip]
	push	rcx
	push	QWORD PTR -504[rbp]
	push	QWORD PTR -536[rbp]
	push	QWORD PTR -408[rbp]
	push	QWORD PTR -528[rbp]
	push	QWORD PTR -408[rbp]
	push	QWORD PTR -536[rbp]
	push	QWORD PTR -408[rbp]
	push	QWORD PTR -536[rbp]
	lea	rcx, .LC70[rip]
	push	rcx
	push	QWORD PTR -504[rbp]
	push	QWORD PTR -560[rbp]
	lea	rcx, .LC71[rip]
	push	rcx
	push	QWORD PTR -504[rbp]
	push	QWORD PTR -536[rbp]
	mov	r9, r8
	mov	r8, rdi
	mov	rcx, rdx
	lea	rdx, .LC68[rip]
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	add	rsp, 144
	mov	rax, QWORD PTR -416[rbp]
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -304[rbp]
	add	rax, rdx
	add	rax, rax
	add	rax, 31
	mov	QWORD PTR -232[rbp], rax
	mov	rax, QWORD PTR -232[rbp]
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -224[rbp], rax
	mov	rdi, QWORD PTR -504[rbp]
	mov	rdx, QWORD PTR -560[rbp]
	mov	rsi, QWORD PTR -232[rbp]
	mov	rax, QWORD PTR -224[rbp]
	sub	rsp, 8
	push	QWORD PTR -560[rbp]
	push	QWORD PTR -520[rbp]
	push	QWORD PTR -408[rbp]
	push	QWORD PTR -536[rbp]
	lea	rcx, .LC74[rip]
	push	rcx
	push	QWORD PTR -504[rbp]
	push	QWORD PTR -560[rbp]
	push	QWORD PTR -408[rbp]
	push	QWORD PTR -536[rbp]
	push	QWORD PTR -408[rbp]
	push	QWORD PTR -528[rbp]
	push	QWORD PTR -408[rbp]
	push	QWORD PTR -560[rbp]
	lea	r9, .LC72[rip]
	mov	r8, rdi
	mov	rcx, rdx
	lea	rdx, .LC73[rip]
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	add	rsp, 112
	mov	rax, QWORD PTR -416[rbp]
	lea	rcx, 0[0+rax*4]
	mov	rdx, QWORD PTR -304[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	add	rax, 28
	mov	QWORD PTR -216[rbp], rax
	mov	rax, QWORD PTR -216[rbp]
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -208[rbp], rax
	mov	rdi, QWORD PTR -504[rbp]
	mov	rdx, QWORD PTR -560[rbp]
	mov	rsi, QWORD PTR -216[rbp]
	mov	rax, QWORD PTR -208[rbp]
	push	QWORD PTR -408[rbp]
	push	QWORD PTR -536[rbp]
	lea	rcx, .LC77[rip]
	push	rcx
	push	QWORD PTR -504[rbp]
	push	QWORD PTR -536[rbp]
	push	QWORD PTR -408[rbp]
	push	QWORD PTR -528[rbp]
	push	QWORD PTR -408[rbp]
	push	QWORD PTR -536[rbp]
	push	QWORD PTR -408[rbp]
	push	QWORD PTR -536[rbp]
	lea	rcx, .LC71[rip]
	push	rcx
	push	QWORD PTR -504[rbp]
	push	QWORD PTR -560[rbp]
	lea	r9, .LC75[rip]
	mov	r8, rdi
	mov	rcx, rdx
	lea	rdx, .LC76[rip]
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	add	rsp, 112
	mov	rax, QWORD PTR -400[rbp]
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -336[rbp]
	add	rax, rdx
	add	rax, 8
	mov	QWORD PTR -200[rbp], rax
	mov	rax, QWORD PTR -200[rbp]
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -192[rbp], rax
	mov	rdi, QWORD PTR -392[rbp]
	mov	rcx, QWORD PTR -560[rbp]
	mov	rdx, QWORD PTR -392[rbp]
	mov	rsi, QWORD PTR -200[rbp]
	mov	rax, QWORD PTR -192[rbp]
	sub	rsp, 8
	push	QWORD PTR -560[rbp]
	push	QWORD PTR -520[rbp]
	push	QWORD PTR -328[rbp]
	mov	r9, rdi
	mov	r8, rcx
	mov	rcx, rdx
	lea	rdx, .LC60[rip]
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	add	rsp, 32
	mov	rdx, QWORD PTR -400[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rdx, rax
	mov	rax, QWORD PTR -416[rbp]
	add	rax, rdx
	add	rax, 7
	mov	QWORD PTR -184[rbp], rax
	mov	rax, QWORD PTR -184[rbp]
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -176[rbp], rax
	mov	rdi, QWORD PTR -408[rbp]
	mov	rcx, QWORD PTR -536[rbp]
	mov	rdx, QWORD PTR -392[rbp]
	mov	rsi, QWORD PTR -184[rbp]
	mov	rax, QWORD PTR -176[rbp]
	push	QWORD PTR -392[rbp]
	push	QWORD PTR -560[rbp]
	push	QWORD PTR -392[rbp]
	push	QWORD PTR -528[rbp]
	mov	r9, rdi
	mov	r8, rcx
	mov	rcx, rdx
	lea	rdx, .LC61[rip]
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	add	rsp, 32
	mov	eax, DWORD PTR dist[rip]
	mov	edx, 3
	lea	esi, 23[rdx]
	mov	rdi, QWORD PTR -360[rbp]
	mov	rcx, QWORD PTR -536[rbp]
	mov	rdx, QWORD PTR -496[rbp]
	sub	rsp, 8
	push	QWORD PTR -424[rbp]
	push	QWORD PTR -360[rbp]
	push	QWORD PTR -480[rbp]
	push	QWORD PTR -480[rbp]
	push	QWORD PTR -560[rbp]
	mov	r9, rdi
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, eax
	lea	rdi, .LC78[rip]
	mov	eax, 0
	call	printf@PLT
	add	rsp, 48
	mov	eax, DWORD PTR dist[rip]
	mov	edx, 3
	lea	esi, 30[rdx]
	mov	rdi, QWORD PTR -408[rbp]
	mov	rcx, QWORD PTR -536[rbp]
	mov	rdx, QWORD PTR -512[rbp]
	push	QWORD PTR -408[rbp]
	push	QWORD PTR -480[rbp]
	push	QWORD PTR -480[rbp]
	push	QWORD PTR -520[rbp]
	push	QWORD PTR -536[rbp]
	push	QWORD PTR -536[rbp]
	mov	r9, rdi
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, eax
	lea	rdi, .LC79[rip]
	mov	eax, 0
	call	printf@PLT
	add	rsp, 48
	mov	eax, DWORD PTR dist[rip]
	mov	edx, 3
	lea	esi, 25[rdx]
	mov	rdi, QWORD PTR -512[rbp]
	mov	rcx, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR -312[rbp]
	push	QWORD PTR -392[rbp]
	push	QWORD PTR -560[rbp]
	push	QWORD PTR -392[rbp]
	push	QWORD PTR -528[rbp]
	push	QWORD PTR -408[rbp]
	push	QWORD PTR -536[rbp]
	push	QWORD PTR -392[rbp]
	push	QWORD PTR -528[rbp]
	mov	r9, rdi
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, eax
	lea	rdi, .LC80[rip]
	mov	eax, 0
	call	printf@PLT
	add	rsp, 64
	mov	ecx, DWORD PTR dist[rip]
	mov	eax, 3
	lea	edi, 28[rax]
	mov	eax, DWORD PTR dist[rip]
	mov	edx, 3
	lea	esi, 26[rdx]
	mov	r9, QWORD PTR -424[rbp]
	mov	r8, QWORD PTR -408[rbp]
	mov	rdx, QWORD PTR -288[rbp]
	sub	rsp, 8
	push	QWORD PTR -208[rbp]
	push	QWORD PTR -408[rbp]
	push	QWORD PTR -224[rbp]
	push	QWORD PTR -408[rbp]
	push	rcx
	push	rdi
	push	QWORD PTR -240[rbp]
	mov	rcx, rdx
	mov	edx, eax
	lea	rdi, .LC81[rip]
	mov	eax, 0
	call	printf@PLT
	add	rsp, 64
	mov	eax, DWORD PTR dist[rip]
	mov	edx, 3
	lea	esi, 24[rdx]
	mov	rdi, QWORD PTR -408[rbp]
	mov	rcx, QWORD PTR -512[rbp]
	mov	rdx, QWORD PTR -536[rbp]
	sub	rsp, 8
	push	QWORD PTR -424[rbp]
	push	QWORD PTR -408[rbp]
	push	QWORD PTR -520[rbp]
	push	QWORD PTR -480[rbp]
	push	QWORD PTR -376[rbp]
	push	QWORD PTR -528[rbp]
	push	QWORD PTR -536[rbp]
	push	QWORD PTR -528[rbp]
	push	QWORD PTR -512[rbp]
	mov	r9, rdi
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, eax
	lea	rdi, .LC82[rip]
	mov	eax, 0
	call	printf@PLT
	add	rsp, 80
	mov	ecx, DWORD PTR dist[rip]
	mov	eax, 3
	lea	edi, 29[rax]
	mov	eax, DWORD PTR dist[rip]
	mov	edx, 3
	lea	esi, 22[rdx]
	mov	r9, QWORD PTR -480[rbp]
	mov	r8, QWORD PTR -480[rbp]
	mov	rdx, QWORD PTR -528[rbp]
	sub	rsp, 8
	push	QWORD PTR -176[rbp]
	push	QWORD PTR -528[rbp]
	push	QWORD PTR -512[rbp]
	push	QWORD PTR -392[rbp]
	push	QWORD PTR -192[rbp]
	push	rcx
	push	rdi
	push	QWORD PTR -376[rbp]
	push	QWORD PTR -480[rbp]
	mov	rcx, rdx
	mov	edx, eax
	lea	rdi, .LC83[rip]
	mov	eax, 0
	call	printf@PLT
	add	rsp, 80
	mov	ecx, DWORD PTR dist[rip]
	mov	eax, 3
	lea	edi, 31[rax]
	mov	eax, DWORD PTR dist[rip]
	mov	edx, 3
	lea	esi, 27[rdx]
	mov	r9, QWORD PTR -408[rbp]
	mov	r8, QWORD PTR -520[rbp]
	mov	rdx, QWORD PTR -408[rbp]
	sub	rsp, 8
	push	QWORD PTR -360[rbp]
	push	QWORD PTR -480[rbp]
	push	QWORD PTR -480[rbp]
	push	QWORD PTR -360[rbp]
	push	QWORD PTR -536[rbp]
	push	QWORD PTR -512[rbp]
	push	rcx
	push	rdi
	push	QWORD PTR -256[rbp]
	push	QWORD PTR -408[rbp]
	push	QWORD PTR -272[rbp]
	mov	rcx, rdx
	mov	edx, eax
	lea	rdi, .LC84[rip]
	mov	eax, 0
	call	printf@PLT
	add	rsp, 96
	mov	DWORD PTR -148[rbp], 0
	lea	rax, -148[rbp]
	mov	QWORD PTR -168[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -392[rbp]
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -360[rbp]
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -344[rbp]
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -424[rbp]
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -376[rbp]
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -312[rbp]
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -272[rbp]
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -256[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -240[rbp]
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -224[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -208[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -192[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -176[rbp]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -168[rbp]
	mov	QWORD PTR -16[rbp], rax
	lea	rax, -144[rbp]
	mov	QWORD PTR -160[rbp], rax
	mov	DWORD PTR -564[rbp], 0
	jmp	.L382
.L383:
	mov	eax, DWORD PTR -564[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	free@PLT
	add	DWORD PTR -564[rbp], 1
.L382:
	mov	eax, DWORD PTR -564[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	cmp	QWORD PTR -168[rbp], rax
	jne	.L383
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L384
	call	__stack_chk_fail@PLT
.L384:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE77:
	.size	board_matrix, .-board_matrix
	.section	.rodata
	.align 8
.LC10:
	.long	0
	.long	1071644672
	.align 8
.LC22:
	.long	0
	.long	-1074790400
	.align 8
.LC23:
	.long	0
	.long	1072693248
	.align 8
.LC24:
	.long	0
	.long	-1073741824
	.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	"150420.c"
	.text
	.global	box0
	.section	.rodata
	.align	2
	.type	box0, %object
	.size	box0, 8
box0:
	.word	4
	.word	30
	.global	box1
	.align	2
	.type	box1, %object
	.size	box1, 16
box1:
	.word	4
	.word	30
	.word	4
	.word	32
	.global	box2
	.align	2
	.type	box2, %object
	.size	box2, 16
box2:
	.word	4
	.word	30
	.word	5
	.word	32
	.global	box3
	.align	2
	.type	box3, %object
	.size	box3, 24
box3:
	.word	4
	.word	28
	.word	4
	.word	30
	.word	4
	.word	32
	.global	box4
	.align	2
	.type	box4, %object
	.size	box4, 24
box4:
	.word	4
	.word	28
	.word	4
	.word	30
	.word	5
	.word	30
	.global	box5
	.align	2
	.type	box5, %object
	.size	box5, 24
box5:
	.word	4
	.word	28
	.word	5
	.word	30
	.word	6
	.word	32
	.global	box6
	.align	2
	.type	box6, %object
	.size	box6, 24
box6:
	.word	4
	.word	30
	.word	5
	.word	28
	.word	5
	.word	32
	.global	box7
	.align	2
	.type	box7, %object
	.size	box7, 32
box7:
	.word	4
	.word	28
	.word	5
	.word	30
	.word	6
	.word	32
	.word	7
	.word	34
	.global	box8
	.align	2
	.type	box8, %object
	.size	box8, 32
box8:
	.word	4
	.word	30
	.word	5
	.word	28
	.word	5
	.word	30
	.word	5
	.word	32
	.global	box9
	.align	2
	.type	box9, %object
	.size	box9, 32
box9:
	.word	4
	.word	30
	.word	5
	.word	28
	.word	5
	.word	32
	.word	6
	.word	30
	.global	box10
	.align	2
	.type	box10, %object
	.size	box10, 32
box10:
	.word	4
	.word	28
	.word	4
	.word	30
	.word	4
	.word	32
	.word	4
	.word	34
	.global	box11
	.align	2
	.type	box11, %object
	.size	box11, 32
box11:
	.word	4
	.word	28
	.word	5
	.word	28
	.word	5
	.word	30
	.word	5
	.word	32
	.global	box12
	.align	2
	.type	box12, %object
	.size	box12, 32
box12:
	.word	4
	.word	28
	.word	4
	.word	30
	.word	5
	.word	30
	.word	5
	.word	32
	.global	box13
	.align	2
	.type	box13, %object
	.size	box13, 32
box13:
	.word	4
	.word	28
	.word	4
	.word	30
	.word	5
	.word	28
	.word	5
	.word	30
	.global	box14
	.align	2
	.type	box14, %object
	.size	box14, 32
box14:
	.word	4
	.word	28
	.word	4
	.word	34
	.word	5
	.word	30
	.word	5
	.word	32
	.global	box15
	.align	2
	.type	box15, %object
	.size	box15, 40
box15:
	.word	4
	.word	26
	.word	4
	.word	28
	.word	4
	.word	30
	.word	4
	.word	32
	.word	4
	.word	34
	.global	box16
	.align	2
	.type	box16, %object
	.size	box16, 40
box16:
	.word	4
	.word	30
	.word	5
	.word	28
	.word	5
	.word	30
	.word	5
	.word	32
	.word	6
	.word	30
	.global	box17
	.align	2
	.type	box17, %object
	.size	box17, 40
box17:
	.word	4
	.word	28
	.word	4
	.word	32
	.word	5
	.word	30
	.word	6
	.word	28
	.word	6
	.word	32
	.global	box18
	.align	2
	.type	box18, %object
	.size	box18, 40
box18:
	.word	4
	.word	28
	.word	4
	.word	32
	.word	5
	.word	28
	.word	5
	.word	30
	.word	5
	.word	32
	.global	box19
	.align	2
	.type	box19, %object
	.size	box19, 40
box19:
	.word	4
	.word	28
	.word	4
	.word	30
	.word	5
	.word	30
	.word	6
	.word	30
	.word	6
	.word	32
	.global	box20
	.align	2
	.type	box20, %object
	.size	box20, 40
box20:
	.word	4
	.word	28
	.word	5
	.word	28
	.word	6
	.word	28
	.word	6
	.word	30
	.word	6
	.word	32
	.global	box21
	.align	2
	.type	box21, %object
	.size	box21, 40
box21:
	.word	4
	.word	28
	.word	4
	.word	30
	.word	5
	.word	30
	.word	5
	.word	32
	.word	6
	.word	32
	.global	box22
	.align	2
	.type	box22, %object
	.size	box22, 40
box22:
	.word	4
	.word	26
	.word	4
	.word	34
	.word	5
	.word	28
	.word	5
	.word	30
	.word	5
	.word	32
	.global	box23
	.align	2
	.type	box23, %object
	.size	box23, 40
box23:
	.word	4
	.word	26
	.word	4
	.word	34
	.word	5
	.word	28
	.word	5
	.word	32
	.word	6
	.word	30
	.global	box24
	.align	2
	.type	box24, %object
	.size	box24, 40
box24:
	.word	4
	.word	26
	.word	5
	.word	28
	.word	6
	.word	30
	.word	7
	.word	32
	.word	8
	.word	34
	.global	box25
	.align	2
	.type	box25, %object
	.size	box25, 40
box25:
	.word	4
	.word	28
	.word	4
	.word	32
	.word	5
	.word	26
	.word	5
	.word	30
	.word	5
	.word	34
	.global	box26
	.align	2
	.type	box26, %object
	.size	box26, 64
box26:
	.word	4
	.word	28
	.word	4
	.word	34
	.word	5
	.word	30
	.word	5
	.word	32
	.word	6
	.word	30
	.word	6
	.word	32
	.word	7
	.word	28
	.word	7
	.word	34
	.global	box27
	.align	2
	.type	box27, %object
	.size	box27, 72
box27:
	.word	4
	.word	30
	.word	5
	.word	28
	.word	5
	.word	32
	.word	6
	.word	26
	.word	6
	.word	30
	.word	6
	.word	34
	.word	7
	.word	28
	.word	7
	.word	32
	.word	8
	.word	30
	.global	box28
	.align	2
	.type	box28, %object
	.size	box28, 104
box28:
	.word	4
	.word	30
	.word	5
	.word	28
	.word	5
	.word	30
	.word	5
	.word	32
	.word	6
	.word	26
	.word	6
	.word	28
	.word	6
	.word	30
	.word	6
	.word	32
	.word	6
	.word	34
	.word	7
	.word	28
	.word	7
	.word	30
	.word	7
	.word	32
	.word	8
	.word	30
	.global	box29
	.align	2
	.type	box29, %object
	.size	box29, 104
box29:
	.word	4
	.word	30
	.word	5
	.word	30
	.word	6
	.word	28
	.word	6
	.word	30
	.word	6
	.word	32
	.word	7
	.word	26
	.word	7
	.word	30
	.word	7
	.word	34
	.word	8
	.word	30
	.word	9
	.word	30
	.word	10
	.word	30
	.word	11
	.word	30
	.word	12
	.word	30
	.global	box30
	.align	2
	.type	box30, %object
	.size	box30, 136
box30:
	.word	4
	.word	26
	.word	4
	.word	28
	.word	4
	.word	30
	.word	4
	.word	34
	.word	5
	.word	30
	.word	5
	.word	34
	.word	6
	.word	26
	.word	6
	.word	28
	.word	6
	.word	30
	.word	6
	.word	32
	.word	6
	.word	34
	.word	7
	.word	26
	.word	7
	.word	30
	.word	8
	.word	26
	.word	8
	.word	30
	.word	8
	.word	32
	.word	8
	.word	34
	.global	box31
	.align	2
	.type	box31, %object
	.size	box31, 136
box31:
	.word	4
	.word	30
	.word	5
	.word	28
	.word	6
	.word	26
	.word	6
	.word	34
	.word	7
	.word	28
	.word	7
	.word	32
	.word	7
	.word	36
	.word	8
	.word	22
	.word	8
	.word	30
	.word	8
	.word	38
	.word	9
	.word	24
	.word	9
	.word	28
	.word	9
	.word	32
	.word	10
	.word	26
	.word	10
	.word	34
	.word	11
	.word	32
	.word	12
	.word	30
	.global	length
	.align	2
	.type	length, %object
	.size	length, 128
length:
	.word	2
	.word	4
	.word	4
	.word	6
	.word	6
	.word	6
	.word	6
	.word	8
	.word	8
	.word	8
	.word	8
	.word	8
	.word	8
	.word	8
	.word	8
	.word	10
	.word	10
	.word	10
	.word	10
	.word	10
	.word	10
	.word	10
	.word	10
	.word	10
	.word	10
	.word	10
	.word	16
	.word	18
	.word	26
	.word	26
	.word	34
	.word	34
	.global	BOX
	.data
	.align	2
	.type	BOX, %object
	.size	BOX, 128
BOX:
	.word	box0
	.word	box1
	.word	box2
	.word	box3
	.word	box4
	.word	box5
	.word	box6
	.word	box7
	.word	box8
	.word	box9
	.word	box10
	.word	box11
	.word	box12
	.word	box13
	.word	box14
	.word	box15
	.word	box16
	.word	box17
	.word	box18
	.word	box19
	.word	box20
	.word	box21
	.word	box22
	.word	box23
	.word	box24
	.word	box25
	.word	box26
	.word	box27
	.word	box28
	.word	box29
	.word	box30
	.word	box31
	.global	score
	.bss
	.align	2
	.type	score, %object
	.size	score, 4
score:
	.space	4
	.global	width
	.data
	.align	2
	.type	width, %object
	.size	width, 4
width:
	.word	25
	.global	height
	.align	2
	.type	height, %object
	.size	height, 4
height:
	.word	30
	.global	prelevel
	.align	2
	.type	prelevel, %object
	.size	prelevel, 4
prelevel:
	.word	6
	.global	runlevel
	.align	2
	.type	runlevel, %object
	.size	runlevel, 4
runlevel:
	.word	31
	.global	speedlevel
	.bss
	.align	2
	.type	speedlevel, %object
	.size	speedlevel, 4
speedlevel:
	.space	4
	.global	toph
	.section	.rodata
	.align	2
	.type	toph, %object
	.size	toph, 4
toph:
	.word	3
	.global	modw
	.align	2
	.type	modw, %object
	.size	modw, 4
modw:
	.word	4
	.local	sig
	.comm	sig,4,4
	.global	color_len
	.data
	.align	2
	.type	color_len, %object
	.size	color_len, 4
color_len:
	.word	593
	.global	color_size
	.align	2
	.type	color_size, %object
	.size	color_size, 4
color_size:
	.word	12
	.global	str_size
	.align	2
	.type	str_size, %object
	.size	str_size, 4
str_size:
	.word	1000
	.comm	wthm,4,4
	.comm	dist,4,4
	.comm	lower,4,4
	.global	unit
	.section	.rodata
	.align	2
.LC0:
	.ascii	"[]\000"
	.align	2
	.type	unit, %object
	.size	unit, 4
unit:
	.word	.LC0
	.local	oldt
	.comm	oldt,60,4
	.global	gmover
	.align	2
.LC1:
	.ascii	"\033[?25h\033[36;26HGame Over!\033[0m\012\000"
	.align	2
	.type	gmover, %object
	.size	gmover, 4
gmover:
	.word	.LC1
	.comm	box,56,4
	.comm	locus,56,4
	.align	2
.LC2:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 552
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #552
	str	r0, [fp, #-552]
	str	r1, [fp, #-556]
	ldr	r3, .L5
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r1, [fp, #-556]
	ldr	r0, [fp, #-552]
	bl	get_argv
	mov	r3, r0
	cmp	r3, #0
	beq	.L2
	mov	r0, #0
	bl	exit
.L2:
	mov	r0, #0
	bl	time
	mov	r3, r0
	mov	r0, r3
	bl	srand
	ldr	r0, .L5+4
	bl	vector_init
	ldr	r0, .L5+8
	bl	vector_init
	sub	r3, fp, #524
	mov	r0, r3
	bl	init_piece
	sub	r3, fp, #536
	mov	r0, r3
	bl	init_time
	sub	r3, fp, #536
	sub	r0, fp, #544
	ldr	r2, .L5+12
	mov	r1, #0
	bl	pthread_create
	sub	r3, fp, #524
	sub	r0, fp, #540
	ldr	r2, .L5+16
	mov	r1, #0
	bl	pthread_create
	ldr	r3, [fp, #-544]
	mov	r0, r3
	bl	pthread_detach
	ldr	r3, [fp, #-540]
	mov	r0, r3
	bl	pthread_detach
	ldr	r3, [fp, #-520]
	sub	r2, fp, #524
	mov	r0, r2
	blx	r3
	ldr	r3, [fp, #-516]
	sub	r2, fp, #524
	mov	r0, r2
	blx	r3
	ldr	r3, .L5+4
	ldr	r3, [r3, #4]
	ldr	r0, .L5+4
	blx	r3
	ldr	r3, .L5+8
	ldr	r3, [r3, #4]
	ldr	r0, .L5+8
	blx	r3
	mov	r3, #0
	ldr	r2, .L5
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L4
	bl	__stack_chk_fail
.L4:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L6:
	.align	2
.L5:
	.word	.LC2
	.word	box
	.word	locus
	.word	get_time_current
	.word	piece_persig
	.size	main, .-main
	.section	.rodata
	.align	2
.LC3:
	.ascii	"-h\000"
	.align	2
.LC4:
	.ascii	"--help\000"
	.align	2
.LC5:
	.ascii	"Usage: %s [ <runlevel> [ <previewlevel> [ <speedlev"
	.ascii	"el> [ <width> [height] ] ] ] ]\012\000"
	.align	2
.LC6:
	.ascii	"Range: [ 0 <= runlevel <= 31 ] [ previewlevel >= 1 "
	.ascii	"] [ speedlevel <= 30 ] [ width >= 17 ] [ height >= "
	.ascii	"10 ]\000"
	.align	2
.LC7:
	.ascii	"-v\000"
	.align	2
.LC8:
	.ascii	"--version\000"
	.align	2
.LC9:
	.ascii	"Version 1.0.3\000"
	.text
	.align	2
	.global	get_argv
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_argv, %function
get_argv:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, .L16
	ldr	r3, [r3]
	lsl	r3, r3, #1
	mov	r2, #4
	add	r3, r3, r2
	ldr	r2, .L16+4
	str	r3, [r2]
	mov	r2, #4
	ldr	r3, .L16+4
	ldr	r3, [r3]
	add	r3, r2, r3
	add	r3, r3, #3
	ldr	r2, .L16+8
	str	r3, [r2]
	ldr	r3, .L16+12
	ldr	r3, [r3]
	mov	r2, #3
	add	r3, r3, r2
	ldr	r2, .L16+16
	str	r3, [r2]
	ldr	r3, [fp, #-16]
	cmp	r3, #2
	ble	.L8
	ldr	r3, [fp, #-20]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	atoi
	mov	r3, r0
	ldr	r2, .L16+20
	str	r3, [r2]
	ldr	r3, [fp, #-20]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r0, r3
	bl	atoi
	mov	r3, r0
	ldr	r2, .L16+24
	str	r3, [r2]
	ldr	r3, [fp, #-16]
	cmp	r3, #3
	ble	.L9
	ldr	r3, [fp, #-20]
	add	r3, r3, #12
	ldr	r3, [r3]
	mov	r0, r3
	bl	atoi
	mov	r3, r0
	ldr	r2, .L16+28
	str	r3, [r2]
	ldr	r3, [fp, #-16]
	cmp	r3, #4
	ble	.L9
	ldr	r3, [fp, #-20]
	add	r3, r3, #16
	ldr	r3, [r3]
	mov	r0, r3
	bl	atoi
	mov	r3, r0
	ldr	r2, .L16
	str	r3, [r2]
	ldr	r3, [fp, #-16]
	cmp	r3, #5
	ble	.L9
	ldr	r3, [fp, #-20]
	add	r3, r3, #20
	ldr	r3, [r3]
	mov	r0, r3
	bl	atoi
	mov	r3, r0
	ldr	r2, .L16+12
	str	r3, [r2]
.L9:
	ldr	r3, .L16
	ldr	r3, [r3]
	lsl	r3, r3, #1
	mov	r2, #4
	add	r3, r3, r2
	ldr	r2, .L16+4
	str	r3, [r2]
	mov	r2, #4
	ldr	r3, .L16+4
	ldr	r3, [r3]
	add	r3, r2, r3
	add	r3, r3, #3
	ldr	r2, .L16+8
	str	r3, [r2]
	ldr	r3, .L16+12
	ldr	r3, [r3]
	mov	r2, #3
	add	r3, r3, r2
	ldr	r2, .L16+16
	str	r3, [r2]
	mov	r3, #0
	b	.L10
.L8:
	ldr	r3, [fp, #-16]
	cmp	r3, #2
	bne	.L11
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-8]
	ldr	r1, .L16+32
	ldr	r0, [fp, #-8]
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L12
	ldr	r1, .L16+36
	ldr	r0, [fp, #-8]
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L13
.L12:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L16+40
	bl	printf
	ldr	r0, .L16+44
	bl	puts
	mov	r3, #1
	b	.L10
.L13:
	ldr	r1, .L16+48
	ldr	r0, [fp, #-8]
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L14
	ldr	r1, .L16+52
	ldr	r0, [fp, #-8]
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L15
.L14:
	ldr	r0, .L16+56
	bl	puts
	mov	r3, #1
	b	.L10
.L15:
	ldr	r3, [fp, #-20]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	atoi
	mov	r3, r0
	ldr	r2, .L16+20
	str	r3, [r2]
	mov	r3, #0
	b	.L10
.L11:
	mov	r3, #0
.L10:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L17:
	.align	2
.L16:
	.word	width
	.word	wthm
	.word	dist
	.word	height
	.word	lower
	.word	runlevel
	.word	prelevel
	.word	speedlevel
	.word	.LC3
	.word	.LC4
	.word	.LC5
	.word	.LC6
	.word	.LC7
	.word	.LC8
	.word	.LC9
	.size	get_argv, .-get_argv
	.global	__sync_fetch_and_add_4
	.align	2
	.global	get_sig
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_sig, %function
get_sig:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L20
	mov	r1, #0
	mov	r0, r3
	bl	__sync_fetch_and_add_4
	mov	r3, r0
	mov	r0, r3
	pop	{fp, pc}
.L21:
	.align	2
.L20:
	.word	sig
	.size	get_sig, .-get_sig
	.global	__sync_lock_test_and_set_4
	.align	2
	.global	set_sig
	.syntax unified
	.arm
	.fpu softvfp
	.type	set_sig, %function
set_sig:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, .L24
	mov	r1, r3
	mov	r0, r2
	bl	__sync_lock_test_and_set_4
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L25:
	.align	2
.L24:
	.word	sig
	.size	set_sig, .-set_sig
	.align	2
	.global	restore_terminal_settings
	.syntax unified
	.arm
	.fpu softvfp
	.type	restore_terminal_settings, %function
restore_terminal_settings:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r2, .L27
	mov	r1, #0
	mov	r0, #0
	bl	tcsetattr
	nop
	pop	{fp, pc}
.L28:
	.align	2
.L27:
	.word	oldt
	.size	restore_terminal_settings, .-restore_terminal_settings
	.section	.rodata
	.align	2
.LC10:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	disable_waiting_for_enter
	.syntax unified
	.arm
	.fpu softvfp
	.type	disable_waiting_for_enter, %function
disable_waiting_for_enter:
	@ args = 0, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #64
	ldr	r3, .L31
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r1, .L31+4
	mov	r0, #0
	bl	tcgetattr
	ldr	r3, .L31+4
	sub	ip, fp, #68
	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}
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2}
	stm	ip, {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	r0, .L31+8
	bl	atexit
	nop
	ldr	r3, .L31
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L30
	bl	__stack_chk_fail
.L30:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L32:
	.align	2
.L31:
	.word	.LC10
	.word	oldt
	.word	restore_terminal_settings
	.size	disable_waiting_for_enter, .-disable_waiting_for_enter
	.align	2
	.global	wait
	.syntax unified
	.arm
	.fpu softvfp
	.type	wait, %function
wait:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	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
	mov	r0, r3
	bl	usleep
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	wait, .-wait
	.section	.rodata
	.align	2
.LC11:
	.ascii	"\033[?25h\033[36;4H\000"
	.text
	.align	2
	.global	runleave
	.syntax unified
	.arm
	.fpu softvfp
	.type	runleave, %function
runleave:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L36
	ldr	r3, .L40
	mov	r0, r3
	bl	puts
	b	.L39
.L36:
	ldr	r3, [fp, #-8]
	cmp	r3, #1
	bne	.L38
	mov	r0, #22
	bl	set_sig
.L38:
	ldr	r0, .L40+4
	bl	puts
.L39:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L41:
	.align	2
.L40:
	.word	.LC1
	.word	.LC11
	.size	runleave, .-runleave
	.align	2
	.global	vector_clear
	.syntax unified
	.arm
	.fpu softvfp
	.type	vector_clear, %function
vector_clear:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #48]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	vector_clear, .-vector_clear
	.align	2
	.global	vector_at
	.syntax unified
	.arm
	.fpu softvfp
	.type	vector_at, %function
vector_at:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	vector_at, .-vector_at
	.align	2
	.global	vector_set
	.syntax unified
	.arm
	.fpu softvfp
	.type	vector_set, %function
vector_set:
	@ 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, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	vector_set, .-vector_set
	.align	2
	.global	vector_copy
	.syntax unified
	.arm
	.fpu softvfp
	.type	vector_copy, %function
vector_copy:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #48]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #48]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #52]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #52]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	realloc
	mov	r2, r0
	ldr	r3, [fp, #-8]
	str	r2, [r3, #44]
	ldr	r3, [fp, #-8]
	ldr	r0, [r3, #44]
	ldr	r3, [fp, #-12]
	ldr	r1, [r3, #44]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #48]
	lsl	r3, r3, #2
	mov	r2, r3
	bl	memcpy
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	vector_copy, .-vector_copy
	.section	.rodata
	.align	2
.LC12:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	vector_reserve
	.syntax unified
	.arm
	.fpu softvfp
	.type	vector_reserve, %function
vector_reserve:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	ldr	r3, .L51
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-48]
	ldr	r2, [fp, #-52]
	str	r2, [r3, #52]
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #48]
	ldr	r2, [fp, #-52]
	cmp	r2, r3
	movcc	r3, r2
	movcs	r3, r3
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-48]
	ldr	r1, [r3, #44]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r0, [fp, #-36]
	bl	memcpy
	mov	r3, #0
	str	r3, [fp, #-20]
	sub	r3, fp, #20
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #44]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-12]
	sub	r3, fp, #16
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L48
.L49:
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L48:
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bne	.L49
	ldr	r3, [fp, #-48]
	ldr	r2, [fp, #-36]
	str	r2, [r3, #44]
	nop
	ldr	r3, .L51
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L50
	bl	__stack_chk_fail
.L50:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L52:
	.align	2
.L51:
	.word	.LC12
	.size	vector_reserve, .-vector_reserve
	.align	2
	.global	vector_resize
	.syntax unified
	.arm
	.fpu softvfp
	.type	vector_resize, %function
vector_resize:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #24]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	blx	r3
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #48]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	vector_resize, .-vector_resize
	.align	2
	.global	vector_assign
	.syntax unified
	.arm
	.fpu softvfp
	.type	vector_assign, %function
vector_assign:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #52]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	bls	.L55
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #24]
	ldr	r2, [fp, #-20]
	lsl	r2, r2, #1
	add	r2, r2, #1
	mov	r1, r2
	ldr	r0, [fp, #-16]
	blx	r3
.L55:
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L56
.L57:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	blx	r3
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L56:
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	bne	.L57
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-20]
	str	r2, [r3, #48]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	vector_assign, .-vector_assign
	.align	2
	.global	vector_size
	.syntax unified
	.arm
	.fpu softvfp
	.type	vector_size, %function
vector_size:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #48]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	vector_size, .-vector_size
	.align	2
	.global	vector_capacity
	.syntax unified
	.arm
	.fpu softvfp
	.type	vector_capacity, %function
vector_capacity:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #52]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	vector_capacity, .-vector_capacity
	.align	2
	.global	vector_push_back
	.syntax unified
	.arm
	.fpu softvfp
	.type	vector_push_back, %function
vector_push_back:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #48]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #52]
	cmp	r2, r3
	bcc	.L63
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #24]
	ldr	r2, [fp, #-8]
	ldr	r2, [r2, #52]
	lsl	r2, r2, #1
	add	r2, r2, #1
	mov	r1, r2
	ldr	r0, [fp, #-8]
	blx	r3
.L63:
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #48]
	add	r0, r3, #1
	ldr	r1, [fp, #-8]
	str	r0, [r1, #48]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	vector_push_back, .-vector_push_back
	.section	.rodata
	.align	2
.LC13:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	vector_delete
	.syntax unified
	.arm
	.fpu softvfp
	.type	vector_delete, %function
vector_delete:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-40]
	ldr	r3, .L68
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-20]
	sub	r3, fp, #20
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #44]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-12]
	sub	r3, fp, #16
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L65
.L66:
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L65:
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bne	.L66
	ldr	r3, [fp, #-40]
	mov	r2, #0
	str	r2, [r3, #44]
	ldr	r3, [fp, #-40]
	mov	r2, #0
	str	r2, [r3, #48]
	ldr	r3, [fp, #-40]
	mov	r2, #0
	str	r2, [r3, #52]
	nop
	ldr	r3, .L68
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L67
	bl	__stack_chk_fail
.L67:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L69:
	.align	2
.L68:
	.word	.LC13
	.size	vector_delete, .-vector_delete
	.align	2
	.global	vector_init
	.syntax unified
	.arm
	.fpu softvfp
	.type	vector_init, %function
vector_init:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #44]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #48]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #52]
	ldr	r3, [fp, #-8]
	ldr	r2, .L71
	str	r2, [r3, #20]
	ldr	r3, [fp, #-8]
	ldr	r2, .L71+4
	str	r2, [r3, #32]
	ldr	r3, [fp, #-8]
	ldr	r2, .L71+8
	str	r2, [r3, #40]
	ldr	r3, [fp, #-8]
	ldr	r2, .L71+12
	str	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	ldr	r2, .L71+16
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r2, .L71+20
	str	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	ldr	r2, .L71+24
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	ldr	r2, .L71+28
	str	r2, [r3, #36]
	ldr	r3, [fp, #-8]
	ldr	r2, .L71+32
	str	r2, [r3, #28]
	ldr	r3, [fp, #-8]
	ldr	r2, .L71+36
	str	r2, [r3, #24]
	ldr	r3, [fp, #-8]
	ldr	r2, .L71+40
	str	r2, [r3, #12]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L72:
	.align	2
.L71:
	.word	vector_at
	.word	vector_set
	.word	vector_copy
	.word	vector_size
	.word	vector_clear
	.word	vector_resize
	.word	vector_delete
	.word	vector_assign
	.word	vector_capacity
	.word	vector_reserve
	.word	vector_push_back
	.size	vector_init, .-vector_init
	.align	2
	.global	max_distance_clear
	.syntax unified
	.arm
	.fpu softvfp
	.type	max_distance_clear, %function
max_distance_clear:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-8]
	add	r2, r2, #16
	mov	r0, r2
	blx	r3
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	max_distance_clear, .-max_distance_clear
	.section	.rodata
	.align	2
.LC14:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	max_distance_max_vertical_coordinate
	.syntax unified
	.arm
	.fpu softvfp
	.type	max_distance_max_vertical_coordinate, %function
max_distance_max_vertical_coordinate:
	@ args = 0, pretend = 0, frame = 80
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #80
	str	r0, [fp, #-80]
	ldr	r3, .L91
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-72]
	ldr	r3, .L91+4
	ldr	r3, [r3, #8]
	ldr	r0, .L91+4
	blx	r3
	mov	r3, r0
	lsr	r3, r3, #1
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #3
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-48]
	mov	r3, #0
	str	r3, [fp, #-68]
	b	.L76
.L83:
	ldr	r3, .L91+4
	ldr	r3, [r3, #20]
	ldr	r1, [fp, #-68]
	ldr	r0, .L91+4
	blx	r3
	str	r0, [fp, #-36]
	ldr	r3, .L91+4
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-68]
	add	r2, r2, #1
	mov	r1, r2
	ldr	r0, .L91+4
	blx	r3
	str	r0, [fp, #-32]
	mov	r3, #0
	str	r3, [fp, #-64]
	b	.L77
.L80:
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	beq	.L90
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
.L77:
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-72]
	cmp	r2, r3
	bne	.L80
	b	.L79
.L90:
	nop
.L79:
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	add	r3, r3, #4
	str	r3, [fp, #-24]
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-72]
	cmp	r2, r3
	bne	.L81
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-32]
	str	r2, [r3]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-36]
	str	r2, [r3]
	ldr	r3, [fp, #-72]
	add	r3, r3, #1
	str	r3, [fp, #-72]
	b	.L82
.L81:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	ble	.L82
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-36]
	str	r2, [r3]
.L82:
	ldr	r3, [fp, #-68]
	add	r3, r3, #2
	str	r3, [fp, #-68]
.L76:
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-68]
	cmp	r2, r3
	bne	.L83
	mov	r3, #0
	str	r3, [fp, #-60]
	b	.L84
.L85:
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #28]
	ldr	r2, [fp, #-80]
	add	r0, r2, #16
	ldr	r2, [fp, #-60]
	lsl	r2, r2, #3
	ldr	r1, [fp, #-48]
	add	r2, r1, r2
	ldr	r2, [r2, #4]
	mov	r1, r2
	blx	r3
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #28]
	ldr	r2, [fp, #-80]
	add	r0, r2, #16
	ldr	r2, [fp, #-60]
	lsl	r2, r2, #3
	ldr	r1, [fp, #-48]
	add	r2, r1, r2
	ldr	r2, [r2]
	mov	r1, r2
	blx	r3
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
.L84:
	ldr	r2, [fp, #-60]
	ldr	r3, [fp, #-72]
	cmp	r2, r3
	bne	.L85
	mov	r3, #0
	str	r3, [fp, #-20]
	sub	r3, fp, #20
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-48]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-12]
	sub	r3, fp, #16
	str	r3, [fp, #-40]
	mov	r3, #0
	str	r3, [fp, #-56]
	b	.L86
.L87:
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	str	r3, [fp, #-56]
.L86:
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-44]
	cmp	r2, r3
	bne	.L87
	ldr	r3, [fp, #-80]
	ldr	r2, .L91
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L89
	bl	__stack_chk_fail
.L89:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L92:
	.align	2
.L91:
	.word	.LC14
	.word	box
	.size	max_distance_max_vertical_coordinate, .-max_distance_max_vertical_coordinate
	.align	2
	.global	max_distance_max_height
	.syntax unified
	.arm
	.fpu softvfp
	.type	max_distance_max_height, %function
max_distance_max_height:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L94
.L99:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #36]
	ldr	r2, [fp, #-32]
	add	r2, r2, #16
	ldr	r1, [fp, #-24]
	mov	r0, r2
	blx	r3
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #36]
	ldr	r2, [fp, #-32]
	add	r0, r2, #16
	ldr	r2, [fp, #-24]
	add	r2, r2, #1
	mov	r1, r2
	blx	r3
	str	r0, [fp, #-16]
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	mov	r2, #4
	sub	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	lsr	r1, r3, #31
	add	r3, r1, r3
	asr	r3, r3, #1
	mov	r1, r3
	mov	r3, #3
	sub	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L95
	ldr	r3, [fp, #-28]
	sub	r3, r3, #1
	b	.L96
.L95:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-28]
	add	r2, r2, r3
	ldr	r3, .L100
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L97
	ldr	r3, [fp, #-28]
	b	.L96
.L97:
	ldr	r3, [fp, #-24]
	add	r4, r3, #2
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #24]
	ldr	r2, [fp, #-32]
	add	r2, r2, #16
	mov	r0, r2
	blx	r3
	mov	r3, r0
	cmp	r4, r3
	bne	.L98
	mvn	r3, #1
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L98:
	ldr	r3, [fp, #-24]
	add	r3, r3, #2
	str	r3, [fp, #-24]
.L94:
	ldr	r3, .L100+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bne	.L99
	mov	r3, #0
.L96:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L101:
	.align	2
.L100:
	.word	lower
	.word	height
	.size	max_distance_max_height, .-max_distance_max_height
	.align	2
	.global	max_distance_delete
	.syntax unified
	.arm
	.fpu softvfp
	.type	max_distance_delete, %function
max_distance_delete:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-8]
	add	r2, r2, #16
	mov	r0, r2
	blx	r3
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	max_distance_delete, .-max_distance_delete
	.align	2
	.global	max_distance_init
	.syntax unified
	.arm
	.fpu softvfp
	.type	max_distance_init, %function
max_distance_init:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	add	r3, r3, #16
	mov	r0, r3
	bl	vector_init
	ldr	r3, [fp, #-8]
	ldr	r2, .L104
	str	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	ldr	r2, .L104+4
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r2, .L104+8
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	ldr	r2, .L104+12
	str	r2, [r3, #12]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L105:
	.align	2
.L104:
	.word	max_distance_clear
	.word	max_distance_delete
	.word	max_distance_max_height
	.word	max_distance_max_vertical_coordinate
	.size	max_distance_init, .-max_distance_init
	.align	2
	.global	transpose_unique
	.syntax unified
	.arm
	.fpu softvfp
	.type	transpose_unique, %function
transpose_unique:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #144]
	ldr	r2, [fp, #-32]
	add	r2, r2, #144
	mov	r0, r2
	blx	r3
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L107
.L113:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #20]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-36]
	blx	r3
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-20]
	add	r2, r2, #1
	mov	r1, r2
	ldr	r0, [fp, #-36]
	blx	r3
	str	r0, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L108
.L111:
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #1
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #164]
	ldr	r2, [fp, #-32]
	add	r2, r2, #144
	ldr	r1, [fp, #-8]
	mov	r0, r2
	blx	r3
	mov	r2, r0
	ldr	r3, [fp, #-16]
	cmp	r3, r2
	bne	.L109
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #164]
	ldr	r2, [fp, #-32]
	add	r0, r2, #144
	ldr	r2, [fp, #-8]
	add	r2, r2, #1
	mov	r1, r2
	blx	r3
	mov	r2, r0
	ldr	r3, [fp, #-12]
	cmp	r3, r2
	beq	.L114
.L109:
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L108:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	bne	.L111
	b	.L110
.L114:
	nop
.L110:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	bne	.L112
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #156]
	ldr	r2, [fp, #-32]
	add	r2, r2, #144
	ldr	r1, [fp, #-16]
	mov	r0, r2
	blx	r3
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #156]
	ldr	r2, [fp, #-32]
	add	r2, r2, #144
	ldr	r1, [fp, #-12]
	mov	r0, r2
	blx	r3
.L112:
	ldr	r3, [fp, #-20]
	add	r3, r3, #2
	str	r3, [fp, #-20]
.L107:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #8]
	ldr	r0, [fp, #-36]
	blx	r3
	mov	r2, r0
	ldr	r3, [fp, #-20]
	cmp	r3, r2
	bne	.L113
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #40]
	ldr	r2, [fp, #-32]
	add	r2, r2, #144
	mov	r1, r2
	ldr	r0, [fp, #-36]
	blx	r3
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	transpose_unique, .-transpose_unique
	.align	2
	.global	transpose_addbox
	.syntax unified
	.arm
	.fpu softvfp
	.type	transpose_addbox, %function
transpose_addbox:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L116
.L117:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #20]
	ldr	r1, [fp, #-20]
	ldr	r2, [fp, #-12]
	add	r2, r1, r2
	mov	r1, r2
	ldr	r0, [fp, #-16]
	blx	r3
	mov	r2, r0
	ldr	r3, [fp, #-24]
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	ldr	r1, [fp, #-20]
	ldr	r2, [fp, #-12]
	add	r1, r1, r2
	ldr	r2, [fp, #-8]
	ldr	r0, [fp, #-16]
	blx	r3
	ldr	r3, [fp, #-12]
	add	r3, r3, #2
	str	r3, [fp, #-12]
.L116:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	ldr	r0, [fp, #-16]
	blx	r3
	mov	r2, r0
	ldr	r3, [fp, #-12]
	cmp	r3, r2
	bne	.L117
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	transpose_addbox, .-transpose_addbox
	.align	2
	.global	transpose_mid_point
	.syntax unified
	.arm
	.fpu softvfp
	.type	transpose_mid_point, %function
transpose_mid_point:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #8]
	ldr	r0, [fp, #-28]
	blx	r3
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	lsr	r2, r3, #1
	ldr	r3, [fp, #-20]
	and	r3, r3, #3
	lsr	r3, r3, #1
	sub	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #20]
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-28]
	blx	r3
	mov	r3, r0
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-16]
	add	r2, r2, #1
	mov	r1, r2
	ldr	r0, [fp, #-28]
	blx	r3
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-24]
	mov	r2, r3
	sub	r3, fp, #12
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	ldr	r0, [fp, #-24]
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	transpose_mid_point, .-transpose_mid_point
	.global	__aeabi_idiv
	.align	2
	.global	transpose_multiple
	.syntax unified
	.arm
	.fpu softvfp
	.type	transpose_multiple, %function
transpose_multiple:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, fp, lr}
	add	fp, sp, #16
	sub	sp, sp, #44
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	str	r2, [fp, #-56]
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #8]
	ldr	r0, [fp, #-52]
	blx	r3
	str	r0, [fp, #-36]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #68]
	ldr	r2, [fp, #-48]
	add	r0, r2, #32
	mov	r2, #0
	ldr	r1, [fp, #-36]
	blx	r3
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #72]
	ldr	r2, [fp, #-48]
	add	r2, r2, #32
	ldr	r1, [fp, #-52]
	mov	r0, r2
	blx	r3
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L121
.L122:
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-40]
	add	r2, r2, #3
	mov	r1, r2
	ldr	r0, [fp, #-52]
	blx	r3
	str	r0, [fp, #-32]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-40]
	add	r2, r2, #1
	mov	r1, r2
	ldr	r0, [fp, #-52]
	blx	r3
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #52]
	ldr	r2, [fp, #-48]
	add	r0, r2, #32
	ldr	r2, [fp, #-40]
	add	r2, r2, #1
	mov	r1, r2
	blx	r3
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-48]
	ldr	r4, [r3, #64]
	ldr	r3, [fp, #-48]
	add	r5, r3, #32
	ldr	r3, [fp, #-40]
	add	r6, r3, #3
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-28]
	sub	r3, r2, r3
	ldr	r2, [fp, #-56]
	mul	r3, r2, r3
	ldr	r1, [fp, #-60]
	mov	r0, r3
	bl	__aeabi_idiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	mov	r2, r3
	mov	r1, r6
	mov	r0, r5
	blx	r4
	ldr	r3, [fp, #-40]
	add	r3, r3, #2
	str	r3, [fp, #-40]
.L121:
	ldr	r3, [fp, #-36]
	sub	r3, r3, #2
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	bne	.L122
	ldr	r3, [fp, #-48]
	add	r3, r3, #32
	mov	r0, r3
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, fp, pc}
	.size	transpose_multiple, .-transpose_multiple
	.global	__aeabi_i2d
	.global	__aeabi_dmul
	.global	__aeabi_dadd
	.global	__aeabi_d2iz
	.global	__aeabi_dcmpeq
	.align	2
	.global	transpose_coordinate_transformation
	.syntax unified
	.arm
	.fpu softvfp
	.type	transpose_coordinate_transformation, %function
transpose_coordinate_transformation:
	@ args = 8, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, fp, lr}
	add	fp, sp, #24
	sub	sp, sp, #28
	str	r0, [fp, #-40]
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #40]
	ldr	r2, [fp, #-40]
	add	r2, r2, #32
	mov	r0, r2
	blx	r3
	str	r0, [fp, #-32]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #124]
	ldr	r2, [fp, #-40]
	add	r0, r2, #88
	mov	r2, #0
	ldr	r1, [fp, #-32]
	blx	r3
	mov	r3, #0
	str	r3, [fp, #-36]
	b	.L125
.L126:
	ldr	r3, [fp, #-40]
	ldr	r4, [r3, #120]
	ldr	r3, [fp, #-40]
	add	r5, r3, #88
	ldr	r6, [fp, #-36]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #52]
	ldr	r2, [fp, #-40]
	add	r0, r2, #32
	ldr	r2, [fp, #-36]
	add	r2, r2, #1
	mov	r1, r2
	blx	r3
	mov	r2, r0
	ldr	r3, [fp, #4]
	add	r2, r2, r3
	ldr	r3, [fp, #8]
	sub	r3, r2, r3
	mov	r2, r3
	mov	r1, r6
	mov	r0, r5
	blx	r4
	ldr	r3, [fp, #-40]
	ldr	r4, [r3, #120]
	ldr	r3, [fp, #-40]
	add	r5, r3, #88
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	mov	r8, r3
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #52]
	ldr	r2, [fp, #-40]
	add	r2, r2, #32
	ldr	r1, [fp, #-36]
	mov	r0, r2
	blx	r3
	mov	r2, r0
	ldr	r3, [fp, #4]
	sub	r3, r2, r3
	mov	r0, r3
	bl	__aeabi_i2d
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r0, [fp, #8]
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
	mov	r2, r3
	mov	r1, r8
	mov	r0, r5
	blx	r4
	ldr	r3, [fp, #-36]
	add	r3, r3, #2
	str	r3, [fp, #-36]
.L125:
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	bne	.L126
	mov	r2, #0
	ldr	r3, .L131
	sub	r1, fp, #52
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpeq
	mov	r3, r0
	cmp	r3, #0
	bne	.L129
	b	.L130
.L129:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-40]
	add	r2, r2, #88
	mov	r1, r2
	ldr	r0, [fp, #-40]
	blx	r3
.L130:
	nop
	sub	sp, fp, #24
	@ sp needed
	pop	{r4, r5, r6, r7, r8, fp, pc}
.L132:
	.align	2
.L131:
	.word	1071644672
	.size	transpose_coordinate_transformation, .-transpose_coordinate_transformation
	.section	.rodata
	.align	2
.LC15:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	transpose_abstract
	.syntax unified
	.arm
	.fpu softvfp
	.type	transpose_abstract, %function
transpose_abstract:
	@ args = 8, 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, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	str	r3, [fp, #-44]
	ldr	r3, .L135
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-32]
	ldr	r4, [r3]
	ldr	r3, [fp, #-32]
	ldr	r5, [r3, #20]
	ldr	r3, [fp, #8]
	ldr	r2, [fp, #4]
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	blx	r5
	mov	r2, r0
	sub	r3, fp, #24
	mov	r1, r2
	mov	r0, r3
	blx	r4
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-40]
	str	r2, [r3]
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-44]
	str	r2, [r3]
	nop
	ldr	r3, .L135
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L134
	bl	__stack_chk_fail
.L134:
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L136:
	.align	2
.L135:
	.word	.LC15
	.size	transpose_abstract, .-transpose_abstract
	.section	.rodata
	.align	2
.LC16:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	transpose_optimize
	.syntax unified
	.arm
	.fpu softvfp
	.type	transpose_optimize, %function
transpose_optimize:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	sub	r1, fp, #44
	stm	r1, {r2, r3}
	ldr	r3, .L142
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L138
.L140:
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-12]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L139
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #4]
	ldr	r1, [fp, #-24]
	ldr	r2, [fp, #-20]
	ldr	r0, [fp, #-36]
	blx	r3
.L139:
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L138:
	ldr	r3, [fp, #-24]
	cmp	r3, #2
	bne	.L140
	nop
	ldr	r3, .L142
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L141
	bl	__stack_chk_fail
.L141:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L143:
	.align	2
.L142:
	.word	.LC16
	.size	transpose_optimize, .-transpose_optimize
	.align	2
	.global	transpose_delete
	.syntax unified
	.arm
	.fpu softvfp
	.type	transpose_delete, %function
transpose_delete:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #148]
	ldr	r2, [fp, #-8]
	add	r2, r2, #144
	mov	r0, r2
	blx	r3
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #36]
	ldr	r2, [fp, #-8]
	add	r2, r2, #32
	mov	r0, r2
	blx	r3
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #92]
	ldr	r2, [fp, #-8]
	add	r2, r2, #88
	mov	r0, r2
	blx	r3
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	transpose_delete, .-transpose_delete
	.align	2
	.global	transpose_init
	.syntax unified
	.arm
	.fpu softvfp
	.type	transpose_init, %function
transpose_init:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, .L146
	str	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	ldr	r2, .L146+4
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	ldr	r2, .L146+8
	str	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	ldr	r2, .L146+12
	str	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	ldr	r2, .L146+16
	str	r2, [r3, #20]
	ldr	r3, [fp, #-8]
	ldr	r2, .L146+20
	str	r2, [r3, #24]
	ldr	r3, [fp, #-8]
	ldr	r2, .L146+24
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r2, .L146+28
	str	r2, [r3, #28]
	ldr	r3, [fp, #-8]
	add	r3, r3, #144
	mov	r0, r3
	bl	vector_init
	ldr	r3, [fp, #-8]
	add	r3, r3, #32
	mov	r0, r3
	bl	vector_init
	ldr	r3, [fp, #-8]
	add	r3, r3, #88
	mov	r0, r3
	bl	vector_init
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L147:
	.align	2
.L146:
	.word	transpose_unique
	.word	transpose_addbox
	.word	transpose_delete
	.word	transpose_optimize
	.word	transpose_multiple
	.word	transpose_abstract
	.word	transpose_mid_point
	.word	transpose_coordinate_transformation
	.size	transpose_init, .-transpose_init
	.align	2
	.global	get_time_set_time
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_time_set_time, %function
get_time_set_time:
	@ args = 4, 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, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	bne	.L149
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	mov	r2, #0
	str	r2, [r3]
.L149:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	ldr	r2, .L150
	smull	r1, r2, r3, r2
	asr	r2, r2, #2
	asr	r3, r3, #31
	sub	r3, r2, r3
	and	r2, r3, #255
	ldr	r3, [fp, #-8]
	ldr	r1, [r3, #8]
	ldr	r3, [fp, #4]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3]
	add	r2, r2, #48
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	ldr	r1, [r3]
	ldr	r3, .L150
	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
	and	r2, r2, #255
	ldr	r3, [fp, #-8]
	ldr	r1, [r3, #8]
	ldr	r3, [fp, #4]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3]
	add	r3, r3, #1
	add	r2, r2, #48
	and	r2, r2, #255
	strb	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L151:
	.align	2
.L150:
	.word	1717986919
	.size	get_time_set_time, .-get_time_set_time
	.section	.rodata
	.align	2
.LC17:
	.ascii	"\033[1;33m\000"
	.align	2
.LC18:
	.ascii	"\033[2;6H%s%s[Time \033[2;%dH%s]%s\033[0m\012\000"
	.align	2
.LC19:
	.ascii	"\033[2;%dH%s%s:%s:%s:%s\033[0m\012\000"
	.align	2
.LC20:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	get_time_current
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_time_current, %function
get_time_current:
	@ args = 0, pretend = 0, frame = 112
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #132
	str	r0, [fp, #-120]
	ldr	r3, .L169
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-120]
	str	r3, [fp, #-68]
	ldr	r3, .L169+4
	ldr	r3, [r3]
	sub	r3, r3, #9
	str	r3, [fp, #-64]
	mov	r0, #16
	bl	malloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-68]
	str	r2, [r3, #8]
	mov	r3, #0
	str	r3, [fp, #-92]
	b	.L153
.L154:
	ldr	r3, [fp, #-68]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-92]
	lsl	r3, r3, #2
	add	r4, r2, r3
	mov	r0, #3
	bl	malloc
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, [fp, #-68]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-92]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	add	r3, r3, #2
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	str	r3, [fp, #-92]
.L153:
	ldr	r3, [fp, #-92]
	cmp	r3, #4
	bne	.L154
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-60]
	ldr	r3, .L169+8
	str	r3, [fp, #-56]
	mov	r3, #0
	str	r3, [fp, #-88]
	b	.L155
.L156:
	ldr	r2, [fp, #-60]
	ldr	r3, [fp, #-88]
	add	r3, r2, r3
	mov	r2, #45
	strb	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #1
	str	r3, [fp, #-88]
.L155:
	ldr	r3, [fp, #-64]
	ldr	r2, [fp, #-88]
	cmp	r2, r3
	bne	.L156
	ldr	r3, [fp, #-64]
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-64]
	add	r2, r3, #23
	ldr	r3, [fp, #-60]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-56]
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #-60]
	ldr	r1, [fp, #-56]
	ldr	r0, .L169+12
	bl	printf
	mov	r3, #0
	str	r3, [fp, #-28]
	sub	r3, fp, #28
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-60]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-52]
	str	r3, [fp, #-20]
	sub	r3, fp, #24
	str	r3, [fp, #-48]
	mov	r3, #0
	str	r3, [fp, #-84]
	b	.L157
.L158:
	ldr	r3, [fp, #-84]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-84]
	add	r3, r3, #1
	str	r3, [fp, #-84]
.L157:
	ldr	r3, [fp, #-84]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-52]
	cmp	r2, r3
	bne	.L158
	mov	r3, #1000
	str	r3, [fp, #-116]
	mov	r3, #0
	str	r3, [fp, #-112]
	mov	r3, #0
	str	r3, [fp, #-108]
	mov	r3, #0
	str	r3, [fp, #-104]
	mov	r3, #0
	str	r3, [fp, #-100]
.L161:
	bl	get_sig
	mov	r3, r0
	cmp	r3, #22
	bne	.L159
	mov	r0, #0
	bl	runleave
	mov	r3, #0
	str	r3, [fp, #-80]
	b	.L160
.L159:
	sub	r3, fp, #116
	sub	r0, fp, #96
	ldr	r2, .L169+16
	mov	r1, #0
	bl	pthread_create
	ldr	r3, [fp, #-68]
	ldr	r4, [r3, #4]
	sub	r2, fp, #104
	sub	r1, fp, #100
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #60
	ldr	r0, [fp, #-68]
	blx	r4
	ldr	r3, [fp, #-68]
	ldr	r4, [r3, #4]
	sub	r2, fp, #108
	sub	r1, fp, #104
	mov	r3, #1
	str	r3, [sp]
	mov	r3, #60
	ldr	r0, [fp, #-68]
	blx	r4
	ldr	r3, [fp, #-68]
	ldr	r4, [r3, #4]
	sub	r2, fp, #112
	sub	r1, fp, #108
	mov	r3, #2
	str	r3, [sp]
	mov	r3, #24
	ldr	r0, [fp, #-68]
	blx	r4
	ldr	r3, [fp, #-112]
	ldr	r2, .L169+20
	smull	r1, r2, r3, r2
	asr	r2, r2, #2
	asr	r3, r3, #31
	sub	r3, r2, r3
	and	r2, r3, #255
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #8]
	add	r3, r3, #12
	ldr	r3, [r3]
	add	r2, r2, #48
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r1, [fp, #-112]
	ldr	r3, .L169+20
	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
	and	r2, r2, #255
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #8]
	add	r3, r3, #12
	ldr	r3, [r3]
	add	r3, r3, #1
	add	r2, r2, #48
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-64]
	add	r0, r3, #12
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #8]
	add	r3, r3, #12
	ldr	ip, [r3]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #8]
	add	r3, r3, #8
	ldr	r3, [r3]
	ldr	r2, [fp, #-68]
	ldr	r2, [r2, #8]
	add	r2, r2, #4
	ldr	r2, [r2]
	ldr	r1, [fp, #-68]
	ldr	r1, [r1, #8]
	ldr	r1, [r1]
	str	r1, [sp, #8]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, ip
	ldr	r2, [fp, #-56]
	mov	r1, r0
	ldr	r0, .L169+24
	bl	printf
	ldr	r3, [fp, #-96]
	mov	r1, #0
	mov	r0, r3
	bl	pthread_join
	ldr	r3, [fp, #-100]
	add	r3, r3, #1
	str	r3, [fp, #-100]
	b	.L161
.L164:
	mov	r3, #0
	str	r3, [fp, #-28]
	sub	r3, fp, #28
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-68]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-80]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-20]
	sub	r3, fp, #24
	str	r3, [fp, #-32]
	mov	r3, #0
	str	r3, [fp, #-76]
	b	.L162
.L163:
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-76]
	add	r3, r3, #1
	str	r3, [fp, #-76]
.L162:
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	bne	.L163
	ldr	r3, [fp, #-80]
	add	r3, r3, #1
	str	r3, [fp, #-80]
.L160:
	ldr	r3, [fp, #-80]
	cmp	r3, #4
	bne	.L164
	mov	r3, #0
	str	r3, [fp, #-28]
	sub	r3, fp, #28
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-20]
	sub	r3, fp, #24
	str	r3, [fp, #-40]
	mov	r3, #0
	str	r3, [fp, #-72]
	b	.L165
.L166:
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-72]
	add	r3, r3, #1
	str	r3, [fp, #-72]
.L165:
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-44]
	cmp	r2, r3
	bne	.L166
	mov	r3, #0
	ldr	r2, .L169
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L168
	bl	__stack_chk_fail
.L168:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L170:
	.align	2
.L169:
	.word	.LC20
	.word	width
	.word	.LC17
	.word	.LC18
	.word	wait
	.word	1717986919
	.word	.LC19
	.size	get_time_current, .-get_time_current
	.align	2
	.global	init_time
	.syntax unified
	.arm
	.fpu softvfp
	.type	init_time, %function
init_time:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, .L172
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r2, .L172+4
	str	r2, [r3, #4]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L173:
	.align	2
.L172:
	.word	get_time_current
	.word	get_time_set_time
	.size	init_time, .-init_time
	.align	2
	.global	piece_check
	.syntax unified
	.arm
	.fpu softvfp
	.type	piece_check, %function
piece_check:
	@ 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, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #136]
	mov	r1, #4
	ldr	r3, [fp, #-12]
	sub	r3, r3, r1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	lsr	r1, r3, #31
	add	r3, r1, r3
	asr	r3, r3, #1
	mov	r1, r3
	mov	r3, #3
	sub	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L176
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #424]
.L176:
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	piece_check, .-piece_check
	.section	.rodata
	.align	2
.LC21:
	.ascii	"\033[%d;%dH  \000"
	.align	2
.LC22:
	.ascii	"\033[%d;%dH\033[%s%s\033[0m\000"
	.text
	.align	2
	.global	piece_update
	.syntax unified
	.arm
	.fpu softvfp
	.type	piece_update, %function
piece_update:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #136]
	mov	r1, #4
	ldr	r3, [fp, #-12]
	sub	r3, r3, r1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	lsr	r1, r3, #31
	add	r3, r1, r3
	asr	r3, r3, #1
	mov	r1, r3
	mov	r3, #3
	sub	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L178
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-12]
	ldr	r0, .L181
	bl	printf
	b	.L180
.L178:
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #340]
	mov	r1, #4
	ldr	r3, [fp, #-12]
	sub	r3, r3, r1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	lsr	r1, r3, #31
	add	r3, r1, r3
	asr	r3, r3, #1
	mov	r1, r3
	mov	r3, #3
	sub	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, .L181+4
	str	r2, [sp]
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-12]
	ldr	r0, .L181+8
	bl	printf
.L180:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L182:
	.align	2
.L181:
	.word	.LC21
	.word	.LC0
	.word	.LC22
	.size	piece_update, .-piece_update
	.align	2
	.global	piece_drop_bottom
	.syntax unified
	.arm
	.fpu softvfp
	.type	piece_drop_bottom, %function
piece_drop_bottom:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #352]
	ldr	r2, [fp, #-8]
	add	r2, r2, #344
	mov	r0, r2
	blx	r3
	mov	r3, r0
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-8]
	add	r2, r2, #344
	mov	r0, r2
	blx	r3
	mov	r3, r0
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-8]
	add	r0, r2, #344
	ldr	r2, [fp, #-8]
	ldr	r2, [r2, #136]
	mov	r1, r2
	blx	r3
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	piece_drop_bottom, .-piece_drop_bottom
	.global	__aeabi_idivmod
	.align	2
	.global	piece_get_piece
	.syntax unified
	.arm
	.fpu softvfp
	.type	piece_get_piece, %function
piece_get_piece:
	@ 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, .L189
	ldr	r3, [r3]
	ldr	r0, .L189
	blx	r3
	bl	rand
	mov	r2, r0
	ldr	r3, .L189+4
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idivmod
	mov	r3, r1
	str	r3, [fp, #-8]
	ldr	r2, .L189+8
	ldr	r3, [fp, #-8]
	ldr	r3, [r2, r3, lsl #2]
	str	r3, [fp, #-12]
	b	.L186
.L187:
	ldr	r3, .L189
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-12]
	ldr	r2, [r2]
	mov	r1, r2
	ldr	r0, .L189
	blx	r3
	ldr	r3, [fp, #-12]
	add	r3, r3, #4
	str	r3, [fp, #-12]
.L186:
	ldr	r2, .L189+8
	ldr	r3, [fp, #-8]
	ldr	r2, [r2, r3, lsl #2]
	ldr	r1, .L189+12
	ldr	r3, [fp, #-8]
	ldr	r3, [r1, r3, lsl #2]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bne	.L187
	ldr	r3, .L189
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L190:
	.align	2
.L189:
	.word	box
	.word	runlevel
	.word	BOX
	.word	length
	.size	piece_get_piece, .-piece_get_piece
	.align	2
	.global	piece_init
	.syntax unified
	.arm
	.fpu softvfp
	.type	piece_init, %function
piece_init:
	@ 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, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #136]
	mov	r1, #4
	ldr	r3, [fp, #-12]
	sub	r3, r3, r1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	lsr	r1, r3, #31
	add	r3, r1, r3
	asr	r3, r3, #1
	mov	r1, r3
	mov	r3, #3
	sub	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #340]
	mov	r1, #4
	ldr	r3, [fp, #-12]
	sub	r3, r3, r1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	lsr	r1, r3, #31
	add	r3, r1, r3
	asr	r3, r3, #1
	mov	r1, r3
	mov	r3, #3
	sub	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, #0
	strb	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	piece_init, .-piece_init
	.section	.rodata
	.align	2
.LC23:
	.ascii	"1;3%d;4%dm\000"
	.align	2
.LC24:
	.ascii	"%d;5;%d;1m\000"
	.text
	.align	2
	.global	piece_init_color
	.syntax unified
	.arm
	.fpu softvfp
	.type	piece_init_color, %function
piece_init_color:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #52
	str	r0, [fp, #-48]
	mov	r3, #0
	str	r3, [fp, #-40]
	ldr	r3, .L203
	ldr	r3, [r3]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-48]
	str	r2, [r3, #496]
	mov	r3, #0
	str	r3, [fp, #-36]
	b	.L193
.L194:
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #496]
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	add	r4, r2, r3
	mov	r0, #12
	bl	malloc
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L193:
	ldr	r3, .L203
	ldr	r3, [r3]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	bne	.L194
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L195
.L198:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L196
.L197:
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #496]
	ldr	r3, [fp, #-40]
	add	r1, r3, #1
	str	r1, [fp, #-40]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, .L203+4
	ldr	r1, [r3]
	ldr	r3, [fp, #-28]
	str	r3, [sp]
	ldr	r3, [fp, #-32]
	ldr	r2, .L203+8
	bl	snprintf
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L196:
	ldr	r3, [fp, #-28]
	cmp	r3, #9
	bne	.L197
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L195:
	ldr	r3, [fp, #-32]
	cmp	r3, #9
	bne	.L198
	mov	r3, #0
	str	r3, [fp, #-24]
	mov	r3, #38
	str	r3, [fp, #-20]
	b	.L199
.L202:
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L200
.L201:
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #496]
	ldr	r3, [fp, #-40]
	add	r1, r3, #1
	str	r1, [fp, #-40]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, .L203+4
	ldr	r1, [r3]
	ldr	r3, [fp, #-16]
	str	r3, [sp]
	ldr	r3, [fp, #-20]
	ldr	r2, .L203+12
	bl	snprintf
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L200:
	ldr	r3, [fp, #-16]
	cmp	r3, #256
	bne	.L201
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-20]
	add	r3, r3, #10
	str	r3, [fp, #-20]
.L199:
	ldr	r3, [fp, #-24]
	cmp	r3, #2
	bne	.L202
	nop
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L204:
	.align	2
.L203:
	.word	color_len
	.word	color_size
	.word	.LC23
	.word	.LC24
	.size	piece_init_color, .-piece_init_color
	.align	2
	.global	piece_loop
	.syntax unified
	.arm
	.fpu softvfp
	.type	piece_loop, %function
piece_loop:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	strb	r3, [fp, #-33]
	mov	r3, #4
	str	r3, [fp, #-16]
	mov	r3, #6
	str	r3, [fp, #-12]
	ldr	r3, .L211
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	b	.L206
.L210:
	ldr	r3, [fp, #-24]
	mov	r2, #1
	str	r2, [r3, #424]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-12]
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-24]
	blx	r3
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #424]
	cmp	r3, #0
	beq	.L207
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	bne	.L208
.L207:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #424]
	cmp	r3, #0
	beq	.L209
	ldrb	r3, [fp, #-33]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L209
	ldr	r3, [fp, #-32]
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-24]
	blx	r3
.L209:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	mov	r3, #4
	str	r3, [fp, #-12]
.L208:
	ldr	r3, [fp, #-12]
	add	r3, r3, #2
	str	r3, [fp, #-12]
.L206:
	ldr	r3, .L211+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	ble	.L210
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L212:
	.align	2
.L211:
	.word	wthm
	.word	lower
	.size	piece_loop, .-piece_loop
	.align	2
	.global	piece_get_replace
	.syntax unified
	.arm
	.fpu softvfp
	.type	piece_get_replace, %function
piece_get_replace:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-16]
	b	.L214
.L215:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-28]
	sub	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	mov	r2, #32
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	mov	r2, #32
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #2
	str	r3, [fp, #-28]
.L214:
	ldr	r3, .L217
	mov	r1, r3
	ldr	r0, [fp, #-28]
	bl	strstr
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L215
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L218:
	.align	2
.L217:
	.word	.LC0
	.size	piece_get_replace, .-piece_get_replace
	.align	2
	.global	piece_shift_piece
	.syntax unified
	.arm
	.fpu softvfp
	.type	piece_shift_piece, %function
piece_shift_piece:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #416]
	add	r2, r3, #1
	ldr	r3, [fp, #-24]
	str	r2, [r3, #416]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-16]
	b	.L220
.L223:
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L221
.L222:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #340]
	mov	r1, #4
	ldr	r3, [fp, #-16]
	sub	r3, r3, r1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #340]
	ldr	r3, [fp, #-16]
	sub	r3, r3, #-1073741819
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r1, r3
	bl	strcpy
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #136]
	ldr	r3, [fp, #-16]
	sub	r3, r3, #-1073741819
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r2, r2, r3
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #136]
	mov	r0, #4
	ldr	r3, [fp, #-16]
	sub	r3, r3, r0
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L221:
	ldr	r3, .L226
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-12]
	cmp	r3, r2
	bne	.L222
	ldr	r3, [fp, #-16]
	sub	r3, r3, #1
	str	r3, [fp, #-16]
.L220:
	mov	r3, #3
	add	r3, r3, #1
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bgt	.L223
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L224
.L225:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #136]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #340]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L224:
	ldr	r3, .L226
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-8]
	cmp	r3, r2
	bne	.L225
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L227:
	.align	2
.L226:
	.word	width
	.size	piece_shift_piece, .-piece_shift_piece
	.section	.rodata
	.align	2
.LC25:
	.ascii	"\033[%d;%dH%s\000"
	.align	2
.LC26:
	.ascii	"%s\033[%s%s\033[0m\012\000"
	.align	2
.LC27:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	piece_get_preview
	.syntax unified
	.arm
	.fpu softvfp
	.type	piece_get_preview, %function
piece_get_preview:
	@ args = 4, 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, #-64]
	str	r1, [fp, #-68]
	str	r2, [fp, #-72]
	str	r3, [fp, #-76]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-80]
	ldr	r3, .L234
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, .L234+4
	ldr	r3, [r3]
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #8]
	ldr	r0, [fp, #-68]
	blx	r3
	str	r0, [fp, #-44]
	mov	r3, #0
	str	r3, [fp, #-56]
	b	.L229
.L230:
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-56]
	add	r2, r2, #1
	mov	r1, r2
	ldr	r0, [fp, #-68]
	blx	r3
	mov	r1, r0
	ldr	r3, .L234+8
	ldr	r3, [r3]
	ldr	r2, [fp, #-76]
	sub	r3, r2, r3
	sub	r3, r1, r3
	str	r3, [fp, #-32]
	ldr	r3, .L234+4
	ldr	r4, [r3]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #20]
	ldr	r1, [fp, #-56]
	ldr	r0, [fp, #-68]
	blx	r3
	mov	r3, r0
	sub	r2, r3, #1
	ldr	r3, .L234+12
	str	r3, [sp, #4]
	ldr	r3, [fp, #-32]
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, .L234+16
	mov	r1, r4
	ldr	r0, [fp, #-48]
	bl	snprintf
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #512]
	ldr	r1, [fp, #-48]
	mov	r0, r3
	bl	strcat
	ldr	r3, [fp, #-56]
	add	r3, r3, #2
	str	r3, [fp, #-56]
.L229:
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	bne	.L230
	mov	r3, #0
	str	r3, [fp, #-28]
	sub	r3, fp, #28
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-48]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-20]
	sub	r3, fp, #24
	str	r3, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-52]
	b	.L231
.L232:
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
.L231:
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	bne	.L232
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #100]
	ldr	r1, [fp, #-72]
	ldr	r0, [fp, #-64]
	blx	r3
	mov	r1, r0
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #512]
	ldr	r2, [fp, #-80]
	ldr	r0, .L234+20
	bl	printf
	nop
	ldr	r3, .L234
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L233
	bl	__stack_chk_fail
.L233:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L235:
	.align	2
.L234:
	.word	.LC27
	.word	str_size
	.word	dist
	.word	.LC0
	.word	.LC25
	.word	.LC26
	.size	piece_get_preview, .-piece_get_preview
	.section	.rodata
	.align	2
.LC28:
	.ascii	"%s\033[0m\012\000"
	.text
	.align	2
	.global	piece_get_erase
	.syntax unified
	.arm
	.fpu softvfp
	.type	piece_get_erase, %function
piece_get_erase:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #100]
	ldr	r2, [fp, #-8]
	ldr	r2, [r2, #508]
	mov	r1, r2
	ldr	r0, [fp, #-8]
	blx	r3
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L237
	bl	printf
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L238:
	.align	2
.L237:
	.word	.LC28
	.size	piece_get_erase, .-piece_get_erase
	.global	__aeabi_uidivmod
	.align	2
	.global	piece_pipe_piece
	.syntax unified
	.arm
	.fpu softvfp
	.type	piece_pipe_piece, %function
piece_pipe_piece:
	@ args = 16, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	ldr	r0, [fp, #-20]
	blx	r3
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #512]
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #8]
	cmp	r3, #0
	beq	.L240
	ldr	r3, [fp, #-20]
	ldr	r4, [r3, #40]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #40]
	ldr	r0, [fp, #-16]
	blx	r3
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-20]
	blx	r4
	ldr	r3, [fp, #-16]
	ldr	r5, [r3, #504]
	ldr	r3, [fp, #-16]
	ldr	r4, [r3, #496]
	bl	rand
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L242
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidivmod
	mov	r3, r1
	lsl	r3, r3, #2
	add	r3, r4, r3
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r5
	bl	strcpy
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #504]
	mov	r1, r3
	ldr	r0, [fp, #12]
	bl	strcpy
	ldr	r3, [fp, #-16]
	ldr	r4, [r3, #112]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #504]
	str	r3, [sp]
	ldr	r3, [fp, #4]
	ldr	r2, [fp, #-28]
	ldr	r1, .L242+4
	ldr	r0, [fp, #-16]
	blx	r4
	b	.L241
.L240:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #40]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-20]
	blx	r3
	ldr	r1, [fp, #16]
	ldr	r0, [fp, #12]
	bl	strcpy
	ldr	r3, [fp, #-16]
	ldr	r4, [r3, #112]
	ldr	r3, [fp, #12]
	str	r3, [sp]
	ldr	r3, [fp, #4]
	ldr	r2, [fp, #-28]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	blx	r4
.L241:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #512]
	mov	r1, r3
	ldr	r0, [fp, #-28]
	bl	strcpy
	nop
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L243:
	.align	2
.L242:
	.word	color_len
	.word	box
	.size	piece_pipe_piece, .-piece_pipe_piece
	.align	2
	.global	piece_get_invoke
	.syntax unified
	.arm
	.fpu softvfp
	.type	piece_get_invoke, %function
piece_get_invoke:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L245
.L246:
	ldr	r3, [fp, #-24]
	ldr	r4, [r3, #116]
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #428]
	ldr	r2, [fp, #-16]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r0, r1, r3
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #428]
	ldr	r3, [fp, #-16]
	add	r2, r3, #1
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	ip, r1, r3
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #488]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	lr, [r3]
	ldr	r2, [fp, #-16]
	mov	r3, r2
	lsl	r2, r2, #2
	sub	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, #24
	mov	r5, r3
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #492]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	ldr	r1, [r2, #492]
	ldr	r2, [fp, #-16]
	add	r2, r2, #1
	lsl	r2, r2, #2
	add	r2, r1, r2
	ldr	r2, [r2]
	str	r2, [sp, #12]
	str	r3, [sp, #8]
	ldr	r3, [fp, #-28]
	str	r3, [sp, #4]
	str	r5, [sp]
	mov	r3, lr
	mov	r2, ip
	mov	r1, r0
	ldr	r0, [fp, #-24]
	blx	r4
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L245:
	ldr	r3, .L247
	ldr	r3, [r3]
	sub	r3, r3, #1
	mov	r2, r3
	ldr	r3, [fp, #-16]
	cmp	r3, r2
	bne	.L246
	nop
	nop
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L248:
	.align	2
.L247:
	.word	prelevel
	.size	piece_get_invoke, .-piece_get_invoke
	.align	2
	.global	piece_show_piece
	.syntax unified
	.arm
	.fpu softvfp
	.type	piece_show_piece, %function
piece_show_piece:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r3, .L250
	ldr	r3, [r3]
	sub	r3, r3, #1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #504]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #492]
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	strcpy
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #472]
	ldr	r2, [fp, #-24]
	add	r0, r2, #432
	ldr	r2, [fp, #-24]
	ldr	r2, [r2, #428]
	mov	r1, r2
	blx	r3
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #56]
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-24]
	blx	r3
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #512]
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #428]
	ldr	r2, [fp, #-16]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	ldr	r4, [r3, #40]
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #428]
	ldr	r2, [fp, #-16]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r5, r1, r3
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #40]
	ldr	r0, [fp, #-24]
	blx	r3
	mov	r3, r0
	mov	r1, r3
	mov	r0, r5
	blx	r4
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #492]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r5, [r3]
	ldr	r3, [fp, #-24]
	ldr	r4, [r3, #496]
	bl	rand
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L250+4
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidivmod
	mov	r3, r1
	lsl	r3, r3, #2
	add	r3, r4, r3
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r5
	bl	strcpy
	ldr	r3, [fp, #-24]
	ldr	r4, [r3, #112]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #488]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-16]
	rsb	r2, r3, #2
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r0, r3
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #492]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [sp]
	mov	r3, r0
	mov	r2, r1
	ldr	r1, .L250+8
	ldr	r0, [fp, #-24]
	blx	r4
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #488]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #512]
	mov	r1, r3
	mov	r0, r2
	bl	strcpy
	ldr	r3, .L250+8
	ldr	r3, [r3, #40]
	ldr	r2, [fp, #-24]
	add	r2, r2, #432
	mov	r1, r2
	ldr	r0, .L250+8
	blx	r3
	nop
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L251:
	.align	2
.L250:
	.word	prelevel
	.word	color_len
	.word	box
	.size	piece_show_piece, .-piece_show_piece
	.section	.rodata
	.align	2
.LC29:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	piece_coordinate
	.syntax unified
	.arm
	.fpu softvfp
	.type	piece_coordinate, %function
piece_coordinate:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #56
	str	r0, [fp, #-56]
	str	r1, [fp, #-60]
	ldr	r3, .L258
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #500]
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, .L258+4
	ldr	r3, [r3, #40]
	ldr	r1, [fp, #-60]
	ldr	r0, .L258+4
	blx	r3
	ldr	r3, .L258+8
	ldr	r3, [r3]
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-40]
	mov	r3, #0
	str	r3, [fp, #-48]
	b	.L253
.L254:
	ldr	r3, .L258+8
	ldr	r4, [r3]
	ldr	r3, .L258+4
	ldr	r3, [r3, #20]
	ldr	r1, [fp, #-48]
	ldr	r0, .L258+4
	blx	r3
	mov	r5, r0
	ldr	r3, .L258+4
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-48]
	add	r2, r2, #1
	mov	r1, r2
	ldr	r0, .L258+4
	blx	r3
	mov	r3, r0
	ldr	r2, .L258+12
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, r5
	ldr	r2, .L258+16
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	snprintf
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #500]
	ldr	r1, [fp, #-40]
	mov	r0, r3
	bl	strcat
	ldr	r3, [fp, #-48]
	add	r3, r3, #2
	str	r3, [fp, #-48]
.L253:
	ldr	r3, .L258+4
	ldr	r3, [r3, #8]
	ldr	r0, .L258+4
	blx	r3
	mov	r2, r0
	ldr	r3, [fp, #-48]
	cmp	r3, r2
	bne	.L254
	mov	r3, #0
	str	r3, [fp, #-28]
	sub	r3, fp, #28
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-20]
	sub	r3, fp, #24
	str	r3, [fp, #-32]
	mov	r3, #0
	str	r3, [fp, #-44]
	b	.L255
.L256:
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-44]
.L255:
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	bne	.L256
	nop
	ldr	r3, .L258
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L257
	bl	__stack_chk_fail
.L257:
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L259:
	.align	2
.L258:
	.word	.LC29
	.word	locus
	.word	str_size
	.word	.LC0
	.word	.LC25
	.size	piece_coordinate, .-piece_coordinate
	.align	2
	.global	piece_draw_piece
	.syntax unified
	.arm
	.fpu softvfp
	.type	piece_draw_piece, %function
piece_draw_piece:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L261
	ldr	r3, [fp, #-16]
	ldr	r5, [r3, #504]
	ldr	r3, [fp, #-16]
	ldr	r4, [r3, #496]
	bl	rand
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L265
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidivmod
	mov	r3, r1
	lsl	r3, r3, #2
	add	r3, r4, r3
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r5
	bl	strcpy
	ldr	r3, [fp, #-16]
	ldr	r4, [r3, #88]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #40]
	ldr	r0, [fp, #-16]
	blx	r3
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-16]
	blx	r4
	b	.L262
.L261:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #504]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #492]
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	strcpy
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #88]
	ldr	r2, [fp, #-16]
	ldr	r2, [r2, #428]
	mov	r1, r2
	ldr	r0, [fp, #-16]
	blx	r3
.L262:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	ldr	r0, [fp, #-16]
	blx	r3
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #84]
	ldr	r2, [fp, #-28]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-16]
	blx	r3
	mov	r3, r0
	cmp	r3, #0
	bne	.L264
	mov	r0, #22
	bl	set_sig
	mov	r0, #0
	bl	runleave
.L264:
	nop
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L266:
	.align	2
.L265:
	.word	color_len
	.size	piece_draw_piece, .-piece_draw_piece
	.align	2
	.global	piece_random_piece
	.syntax unified
	.arm
	.fpu softvfp
	.type	piece_random_piece, %function
piece_random_piece:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #24
	str	r0, [fp, #-32]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #420]
	add	r2, r3, #1
	ldr	r3, [fp, #-32]
	str	r2, [r3, #420]
	ldr	r3, .L274
	ldr	r3, [r3]
	sub	r3, r3, #1
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-24]
	mov	r3, #6
	str	r3, [fp, #-20]
	b	.L268
.L271:
	ldr	r3, .L274+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-20]
	cmp	r3, r2
	bne	.L269
	mov	r3, #4
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L269:
	bl	rand
	mov	r3, r0
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L270
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #136]
	ldr	r1, [fp, #-16]
	ldr	r3, [fp, #-24]
	sub	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-20]
	lsr	r3, r3, #1
	mov	r1, #3
	sub	r3, r3, r1
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #340]
	ldr	r1, [fp, #-16]
	ldr	r3, [fp, #-24]
	sub	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-20]
	lsr	r3, r3, #1
	mov	r1, #3
	sub	r3, r3, r1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r5, [r3]
	ldr	r3, [fp, #-32]
	ldr	r4, [r3, #496]
	bl	rand
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L274+8
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidivmod
	mov	r3, r1
	lsl	r3, r3, #2
	add	r3, r4, r3
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r5
	bl	strcpy
.L270:
	ldr	r3, [fp, #-20]
	add	r3, r3, #2
	str	r3, [fp, #-20]
.L268:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #420]
	mov	r2, r3
	ldr	r3, [fp, #-24]
	cmp	r3, r2
	bne	.L271
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #420]
	mov	r2, r3
	ldr	r3, [fp, #-16]
	cmp	r3, r2
	bne	.L273
	ldr	r3, [fp, #-32]
	mov	r2, #0
	str	r2, [r3, #420]
.L273:
	nop
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L275:
	.align	2
.L274:
	.word	height
	.word	wthm
	.word	color_len
	.size	piece_random_piece, .-piece_random_piece
	.align	2
	.global	piece_coord_comp
	.syntax unified
	.arm
	.fpu softvfp
	.type	piece_coord_comp, %function
piece_coord_comp:
	@ args = 4, 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, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L278
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	ldr	r2, [fp, #4]
	cmp	r2, r3
	ble	.L278
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #4]
	str	r2, [r3]
.L278:
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	piece_coord_comp, .-piece_coord_comp
	.section	.rodata
	.align	2
.LC30:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	piece_top_point
	.syntax unified
	.arm
	.fpu softvfp
	.type	piece_top_point, %function
piece_top_point:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #52
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	ldr	r3, .L285
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-44]
	mov	r3, #0
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #20]
	mov	r1, #0
	ldr	r0, [fp, #-52]
	blx	r3
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #20]
	mov	r1, #1
	ldr	r0, [fp, #-52]
	blx	r3
	str	r0, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L280
.L281:
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #20]
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-52]
	blx	r3
	mov	r3, r0
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-28]
	add	r2, r2, #1
	mov	r1, r2
	ldr	r0, [fp, #-52]
	blx	r3
	mov	r3, r0
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-48]
	ldr	r4, [r3, #108]
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-32]
	sub	r0, fp, #40
	sub	r1, fp, #44
	str	r3, [sp]
	mov	r3, r0
	ldr	r0, [fp, #-48]
	blx	r4
	ldr	r3, [fp, #-48]
	ldr	r4, [r3, #108]
	sub	r2, fp, #32
	sub	r1, fp, #36
	ldr	r3, [fp, #-20]
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #-24]
	ldr	r0, [fp, #-48]
	blx	r4
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #32]
	ldr	r2, [fp, #-36]
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-52]
	blx	r3
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #32]
	ldr	r2, [fp, #-28]
	add	r1, r2, #1
	ldr	r2, [fp, #-32]
	ldr	r0, [fp, #-52]
	blx	r3
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	str	r3, [fp, #-28]
.L280:
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #8]
	ldr	r0, [fp, #-52]
	blx	r3
	mov	r2, r0
	ldr	r3, [fp, #-28]
	cmp	r3, r2
	bne	.L281
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-24]
	sub	r3, r2, r3
	cmp	r3, #3
	bne	.L284
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-20]
	sub	r3, r2, r3
	cmp	r3, #6
	bne	.L284
	ldr	r3, [fp, #-52]
	ldr	r3, [r3]
	ldr	r0, [fp, #-52]
	blx	r3
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-44]
	sub	r2, r2, #3
	mov	r1, r2
	ldr	r0, [fp, #-52]
	blx	r3
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-40]
	sub	r2, r2, #6
	mov	r1, r2
	ldr	r0, [fp, #-52]
	blx	r3
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-44]
	sub	r2, r2, #3
	mov	r1, r2
	ldr	r0, [fp, #-52]
	blx	r3
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-40]
	mov	r1, r2
	ldr	r0, [fp, #-52]
	blx	r3
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-44]
	mov	r1, r2
	ldr	r0, [fp, #-52]
	blx	r3
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-40]
	sub	r2, r2, #6
	mov	r1, r2
	ldr	r0, [fp, #-52]
	blx	r3
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-44]
	mov	r1, r2
	ldr	r0, [fp, #-52]
	blx	r3
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-40]
	mov	r1, r2
	ldr	r0, [fp, #-52]
	blx	r3
.L284:
	nop
	ldr	r3, .L285
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L283
	bl	__stack_chk_fail
.L283:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L286:
	.align	2
.L285:
	.word	.LC30
	.size	piece_top_point, .-piece_top_point
	.section	.rodata
	.align	2
.LC31:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	piece_bomb
	.syntax unified
	.arm
	.fpu softvfp
	.type	piece_bomb, %function
piece_bomb:
	@ args = 0, pretend = 0, frame = 96
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #108
	str	r0, [fp, #-96]
	str	r1, [fp, #-100]
	str	r2, [fp, #-104]
	str	r3, [fp, #-108]
	ldr	r3, .L300
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, sp
	mov	r4, r3
	mov	r3, #18
	str	r3, [fp, #-72]
	ldr	r3, .L300+4
	ldr	r3, [r3]
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-68]
	ldr	r3, .L300+4
	ldr	r3, [r3]
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-68]
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-72]
	sub	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-72]
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #5
	orr	r3, r3, r0, lsr #27
	lsl	r2, r0, #5
	ldr	r3, [fp, #-72]
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #5
	orr	r3, r3, r0, lsr #27
	lsl	r2, r0, #5
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	add	r3, r3, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	sub	sp, sp, r3
	add	r3, sp, #8
	add	r3, r3, #3
	lsr	r3, r3, #2
	lsl	r3, r3, #2
	str	r3, [fp, #-56]
	mov	r3, #0
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	add	r2, r3, #1
	str	r2, [fp, #-52]
	ldr	r2, [fp, #-100]
	sub	r1, r2, #1
	ldr	r2, [fp, #-56]
	str	r1, [r2, r3, lsl #2]
	ldr	r3, [fp, #-52]
	add	r2, r3, #1
	str	r2, [fp, #-52]
	ldr	r2, [fp, #-104]
	sub	r1, r2, #2
	ldr	r2, [fp, #-56]
	str	r1, [r2, r3, lsl #2]
	ldr	r3, [fp, #-52]
	add	r2, r3, #1
	str	r2, [fp, #-52]
	ldr	r2, [fp, #-100]
	sub	r1, r2, #1
	ldr	r2, [fp, #-56]
	str	r1, [r2, r3, lsl #2]
	ldr	r3, [fp, #-52]
	add	r2, r3, #1
	str	r2, [fp, #-52]
	ldr	r2, [fp, #-56]
	ldr	r1, [fp, #-104]
	str	r1, [r2, r3, lsl #2]
	ldr	r3, [fp, #-52]
	add	r2, r3, #1
	str	r2, [fp, #-52]
	ldr	r2, [fp, #-100]
	sub	r1, r2, #1
	ldr	r2, [fp, #-56]
	str	r1, [r2, r3, lsl #2]
	ldr	r3, [fp, #-52]
	add	r2, r3, #1
	str	r2, [fp, #-52]
	ldr	r2, [fp, #-104]
	add	r1, r2, #2
	ldr	r2, [fp, #-56]
	str	r1, [r2, r3, lsl #2]
	ldr	r3, [fp, #-52]
	add	r2, r3, #1
	str	r2, [fp, #-52]
	ldr	r2, [fp, #-56]
	ldr	r1, [fp, #-100]
	str	r1, [r2, r3, lsl #2]
	ldr	r3, [fp, #-52]
	add	r2, r3, #1
	str	r2, [fp, #-52]
	ldr	r2, [fp, #-104]
	sub	r1, r2, #2
	ldr	r2, [fp, #-56]
	str	r1, [r2, r3, lsl #2]
	ldr	r3, [fp, #-52]
	add	r2, r3, #1
	str	r2, [fp, #-52]
	ldr	r2, [fp, #-56]
	ldr	r1, [fp, #-100]
	str	r1, [r2, r3, lsl #2]
	ldr	r3, [fp, #-52]
	add	r2, r3, #1
	str	r2, [fp, #-52]
	ldr	r2, [fp, #-56]
	ldr	r1, [fp, #-104]
	str	r1, [r2, r3, lsl #2]
	ldr	r3, [fp, #-52]
	add	r2, r3, #1
	str	r2, [fp, #-52]
	ldr	r2, [fp, #-56]
	ldr	r1, [fp, #-100]
	str	r1, [r2, r3, lsl #2]
	ldr	r3, [fp, #-52]
	add	r2, r3, #1
	str	r2, [fp, #-52]
	ldr	r2, [fp, #-104]
	add	r1, r2, #2
	ldr	r2, [fp, #-56]
	str	r1, [r2, r3, lsl #2]
	ldr	r3, [fp, #-52]
	add	r2, r3, #1
	str	r2, [fp, #-52]
	ldr	r2, [fp, #-100]
	add	r1, r2, #1
	ldr	r2, [fp, #-56]
	str	r1, [r2, r3, lsl #2]
	ldr	r3, [fp, #-52]
	add	r2, r3, #1
	str	r2, [fp, #-52]
	ldr	r2, [fp, #-104]
	sub	r1, r2, #2
	ldr	r2, [fp, #-56]
	str	r1, [r2, r3, lsl #2]
	ldr	r3, [fp, #-52]
	add	r2, r3, #1
	str	r2, [fp, #-52]
	ldr	r2, [fp, #-100]
	add	r1, r2, #1
	ldr	r2, [fp, #-56]
	str	r1, [r2, r3, lsl #2]
	ldr	r3, [fp, #-52]
	add	r2, r3, #1
	str	r2, [fp, #-52]
	ldr	r2, [fp, #-56]
	ldr	r1, [fp, #-104]
	str	r1, [r2, r3, lsl #2]
	ldr	r3, [fp, #-52]
	add	r2, r3, #1
	str	r2, [fp, #-52]
	ldr	r2, [fp, #-100]
	add	r1, r2, #1
	ldr	r2, [fp, #-56]
	str	r1, [r2, r3, lsl #2]
	ldr	r3, [fp, #-52]
	add	r2, r3, #1
	str	r2, [fp, #-52]
	ldr	r2, [fp, #-104]
	add	r1, r2, #2
	ldr	r2, [fp, #-56]
	str	r1, [r2, r3, lsl #2]
	mov	r3, #0
	str	r3, [fp, #-76]
	b	.L288
.L295:
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #-76]
	ldr	r3, [r3, r2, lsl #2]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-76]
	add	r2, r3, #1
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, r2, lsl #2]
	str	r3, [fp, #-36]
	ldr	r3, .L300+8
	ldr	r3, [r3]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	bgt	.L289
	mov	r2, #4
	ldr	r3, [fp, #-36]
	cmp	r3, r2
	ble	.L289
	mov	r3, #1
	b	.L290
.L289:
	mov	r3, #0
.L290:
	strb	r3, [fp, #-86]
	ldrb	r3, [fp, #-86]
	and	r3, r3, #1
	strb	r3, [fp, #-86]
	mov	r2, #3
	ldr	r3, [fp, #-40]
	cmp	r3, r2
	ble	.L291
	ldr	r3, .L300+12
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	bgt	.L291
	mov	r3, #1
	b	.L292
.L291:
	mov	r3, #0
.L292:
	strb	r3, [fp, #-85]
	ldrb	r3, [fp, #-85]
	and	r3, r3, #1
	strb	r3, [fp, #-85]
	ldrb	r3, [fp, #-85]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L293
	ldrb	r3, [fp, #-86]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L293
	ldr	r3, [fp, #-96]
	ldr	r2, [r3, #136]
	mov	r1, #4
	ldr	r3, [fp, #-40]
	sub	r3, r3, r1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-36]
	lsr	r1, r3, #31
	add	r3, r1, r3
	asr	r3, r3, #1
	mov	r1, r3
	mov	r3, #3
	sub	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L294
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-36]
	add	r2, r2, r3
	ldr	r1, [fp, #-100]
	ldr	r3, [fp, #-104]
	add	r3, r1, r3
	cmp	r2, r3
	beq	.L294
	ldr	r3, [fp, #-108]
	cmp	r3, #8
	bne	.L299
.L294:
	ldr	r3, .L300+4
	ldr	r1, [r3]
	ldr	r3, [fp, #-36]
	str	r3, [sp]
	ldr	r3, [fp, #-40]
	ldr	r2, .L300+16
	ldr	r0, [fp, #-64]
	bl	snprintf
	ldr	r1, [fp, #-64]
	ldr	r0, [fp, #-68]
	bl	strcat
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #44]
	ldr	r2, [fp, #-36]
	ldr	r1, [fp, #-40]
	ldr	r0, [fp, #-96]
	blx	r3
	b	.L293
.L299:
	nop
.L293:
	ldr	r3, [fp, #-76]
	add	r3, r3, #2
	str	r3, [fp, #-76]
.L288:
	ldr	r3, [fp, #-72]
	ldr	r2, [fp, #-76]
	cmp	r2, r3
	bne	.L295
	mov	r3, #30
	str	r3, [fp, #-84]
	sub	r3, fp, #84
	mov	r0, r3
	bl	wait
	ldr	r0, [fp, #-68]
	bl	puts
	mov	r3, #0
	str	r3, [fp, #-32]
	sub	r3, fp, #32
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-68]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-64]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-48]
	str	r3, [fp, #-20]
	sub	r3, fp, #28
	str	r3, [fp, #-44]
	mov	r3, #0
	str	r3, [fp, #-80]
	b	.L296
.L297:
	ldr	r3, [fp, #-80]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-80]
	add	r3, r3, #1
	str	r3, [fp, #-80]
.L296:
	ldr	r3, [fp, #-80]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-48]
	cmp	r2, r3
	bne	.L297
	mov	sp, r4
	nop
	ldr	r3, .L300
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L298
	bl	__stack_chk_fail
.L298:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L301:
	.align	2
.L300:
	.word	.LC31
	.word	str_size
	.word	wthm
	.word	lower
	.word	.LC21
	.size	piece_bomb, .-piece_bomb
	.section	.rodata
	.align	2
.LC32:
	.ascii	"\033[1;34m\033[%d;%dH%d\033[0m\012\000"
	.align	2
.LC33:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	piece_clear_row
	.syntax unified
	.arm
	.fpu softvfp
	.type	piece_clear_row, %function
piece_clear_row:
	@ args = 0, pretend = 0, frame = 88
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #92
	str	r0, [fp, #-96]
	ldr	r3, .L313
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	sub	r3, fp, #72
	mov	r0, r3
	bl	vector_init
	ldr	r3, [fp, #-32]
	sub	r2, fp, #72
	ldr	r1, .L313+4
	mov	r0, r2
	blx	r3
	ldr	r3, [fp, #-64]
	sub	r2, fp, #72
	mov	r0, r2
	blx	r3
	str	r0, [fp, #-88]
	ldr	r3, [fp, #-88]
	cmp	r3, #16
	bne	.L303
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #76]
	sub	r2, fp, #72
	mov	r1, r2
	ldr	r0, [fp, #-96]
	blx	r3
.L303:
	mov	r3, #0
	str	r3, [fp, #-92]
	b	.L304
.L307:
	ldr	r3, [fp, #-52]
	sub	r2, fp, #72
	ldr	r1, [fp, #-92]
	mov	r0, r2
	blx	r3
	str	r0, [fp, #-80]
	ldr	r3, [fp, #-52]
	ldr	r2, [fp, #-92]
	add	r1, r2, #1
	sub	r2, fp, #72
	mov	r0, r2
	blx	r3
	str	r0, [fp, #-76]
	ldr	r3, [fp, #-88]
	cmp	r3, #16
	bne	.L305
	ldr	r3, [fp, #-96]
	ldr	r4, [r3, #104]
	ldr	r3, [fp, #-64]
	sub	r2, fp, #72
	mov	r0, r2
	blx	r3
	mov	r3, r0
	ldr	r2, [fp, #-76]
	ldr	r1, [fp, #-80]
	ldr	r0, [fp, #-96]
	blx	r4
	b	.L306
.L305:
	ldr	r3, [fp, #-96]
	ldr	r2, [r3, #136]
	mov	r1, #4
	ldr	r3, [fp, #-80]
	sub	r3, r3, r1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-76]
	lsr	r1, r3, #31
	add	r3, r1, r3
	asr	r3, r3, #1
	mov	r1, r3
	mov	r3, #3
	sub	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, [fp, #-96]
	ldr	r2, [r3, #340]
	mov	r1, #4
	ldr	r3, [fp, #-80]
	sub	r3, r3, r1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-76]
	lsr	r1, r3, #31
	add	r3, r1, r3
	asr	r3, r3, #1
	mov	r1, r3
	mov	r3, #3
	sub	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #504]
	mov	r1, r3
	mov	r0, r2
	bl	strcpy
.L306:
	ldr	r3, [fp, #-92]
	add	r3, r3, #2
	str	r3, [fp, #-92]
.L304:
	ldr	r3, [fp, #-64]
	sub	r2, fp, #72
	mov	r0, r2
	blx	r3
	mov	r2, r0
	ldr	r3, [fp, #-92]
	cmp	r3, r2
	bne	.L307
	ldr	r3, [fp, #-68]
	sub	r2, fp, #72
	mov	r0, r2
	blx	r3
	ldr	r3, [fp, #-96]
	mov	r2, #0
	str	r2, [r3, #416]
	ldr	r3, [fp, #-96]
	ldr	r4, [r3, #120]
	mov	r3, #1
	ldr	r2, .L313+8
	ldr	r1, .L313+12
	ldr	r0, [fp, #-96]
	blx	r4
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #416]
	cmp	r3, #0
	beq	.L312
	ldr	r3, [fp, #-96]
	ldr	r2, [r3, #416]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, #100
	str	r3, [fp, #-84]
	ldr	r3, .L313+16
	ldr	r2, [r3]
	ldr	r3, [fp, #-84]
	add	r3, r2, r3
	ldr	r2, .L313+16
	str	r3, [r2]
	mov	r3, #3
	add	r1, r3, #10
	ldr	r3, .L313+20
	ldr	r3, [r3]
	add	r2, r3, #56
	ldr	r3, .L313+16
	ldr	r3, [r3]
	ldr	r0, .L313+24
	bl	printf
	ldr	r3, .L313+16
	ldr	r1, [r3]
	ldr	r3, .L313+28
	smull	r2, r3, r1, r3
	asr	r2, r3, #11
	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	r2, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, r1, r3
	ldr	r3, [fp, #-84]
	cmp	r3, r2
	ble	.L310
	ldr	r3, .L313+32
	ldr	r3, [r3]
	cmp	r3, #29
	bgt	.L310
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #36]
	ldr	r0, [fp, #-96]
	blx	r3
	ldr	r3, .L313+32
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L313+32
	str	r3, [r2]
	mov	r3, #3
	add	r1, r3, #10
	ldr	r3, .L313+20
	ldr	r3, [r3]
	add	r2, r3, #26
	ldr	r3, .L313+32
	ldr	r3, [r3]
	ldr	r0, .L313+24
	bl	printf
.L310:
	ldr	r3, [fp, #-96]
	ldr	r4, [r3, #120]
	mov	r3, #0
	ldr	r2, .L313+8
	ldr	r1, .L313+36
	ldr	r0, [fp, #-96]
	blx	r4
	b	.L302
.L312:
	nop
.L302:
	ldr	r3, .L313
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L311
	bl	__stack_chk_fail
.L311:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L314:
	.align	2
.L313:
	.word	.LC33
	.word	locus
	.word	piece_shift_piece
	.word	piece_check
	.word	score
	.word	dist
	.word	.LC32
	.word	1759218605
	.word	speedlevel
	.word	piece_update
	.size	piece_clear_row, .-piece_clear_row
	.section	.rodata
	.align	2
.LC34:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	piece_persig
	.syntax unified
	.arm
	.fpu softvfp
	.type	piece_persig, %function
piece_persig:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #44
	str	r0, [fp, #-40]
	ldr	r3, .L334
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-28]
	mov	r3, #20
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-24]
	b	.L316
.L331:
	ldr	r3, [fp, #-28]
	cmp	r3, #1
	beq	.L317
	sub	r3, fp, #32
	mov	r0, r3
	bl	wait
.L317:
	mov	r0, #0
	bl	set_sig
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	sub	r3, r3, #22
	cmp	r3, #9
	ldrls	pc, [pc, r3, asl #2]
	b	.L318
.L320:
	.word	.L329
	.word	.L328
	.word	.L327
	.word	.L326
	.word	.L325
	.word	.L324
	.word	.L323
	.word	.L322
	.word	.L321
	.word	.L319
.L329:
	mov	r0, #0
	bl	runleave
	mov	r3, #0
	b	.L332
.L328:
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #92]
	mov	r3, #1
	str	r3, [sp]
	mov	r2, #0
	ldr	r3, .L334+4
	ldr	r0, [fp, #-24]
	blx	r1
	b	.L318
.L327:
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #92]
	mov	r3, #1
	str	r3, [sp]
	mov	r2, #0
	ldr	r3, .L334+8
	ldr	r0, [fp, #-24]
	blx	r1
	b	.L318
.L326:
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #92]
	mov	r3, #1
	str	r3, [sp]
	mov	r2, #0
	mov	r3, #-1073741824
	ldr	r0, [fp, #-24]
	blx	r1
	b	.L318
.L325:
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #92]
	mov	r3, #1
	str	r3, [sp]
	mov	r2, #0
	ldr	r3, .L334+12
	ldr	r0, [fp, #-24]
	blx	r1
	b	.L318
.L324:
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #92]
	mvn	r3, #1
	str	r3, [sp]
	mov	r2, #0
	mov	r3, #0
	ldr	r0, [fp, #-24]
	blx	r1
	b	.L318
.L323:
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #92]
	mov	r3, #2
	str	r3, [sp]
	mov	r2, #0
	mov	r3, #0
	ldr	r0, [fp, #-24]
	blx	r1
	b	.L318
.L322:
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #92]
	mov	r3, #0
	str	r3, [sp]
	mov	r2, #0
	ldr	r3, .L334+8
	ldr	r0, [fp, #-24]
	blx	r1
	b	.L318
.L321:
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #92]
	mov	r3, #0
	str	r3, [sp]
	mov	r2, #0
	ldr	r3, .L334+4
	ldr	r0, [fp, #-24]
	blx	r1
	b	.L318
.L319:
	ldr	r3, [fp, #-24]
	ldr	r4, [r3, #92]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #24]
	ldr	r0, [fp, #-24]
	blx	r3
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r1, #0
	str	r1, [sp]
	ldr	r0, [fp, #-24]
	blx	r4
	nop
.L318:
	ldr	r3, .L334+16
	ldr	r3, [r3]
	rsb	r3, r3, #31
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bne	.L316
	mov	r3, #0
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #92]
	mov	r3, #0
	str	r3, [sp]
	mov	r2, #0
	ldr	r3, .L334+8
	ldr	r0, [fp, #-24]
	blx	r1
.L316:
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bne	.L331
	mov	r3, #0
.L332:
	ldr	r2, .L334
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L333
	bl	__stack_chk_fail
.L333:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L335:
	.align	2
.L334:
	.word	.LC34
	.word	-1074790400
	.word	1072693248
	.word	1071644672
	.word	speedlevel
	.size	piece_persig, .-piece_persig
	.section	.rodata
	.align	2
.LC35:
	.ascii	"\033[?25l\000"
	.align	2
.LC36:
	.ascii	"\000"
	.space	2
	.align	2
.LC37:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	piece_getsig
	.syntax unified
	.arm
	.fpu softvfp
	.type	piece_getsig, %function
piece_getsig:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	ldr	r3, .L365
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r0, .L365+4
	bl	printf
	mov	r3, #27
	strb	r3, [fp, #-14]
	ldr	r3, .L365+8
	ldrb	r3, [r3]
	strb	r3, [fp, #-12]
	sub	r3, fp, #11
	mov	r1, #0
	mov	r2, r1
	strb	r2, [r3]
	mov	r2, r1
	strb	r2, [r3, #1]
	bl	disable_waiting_for_enter
.L362:
	bl	getchar
	mov	r3, r0
	strb	r3, [fp, #-13]
	mov	r0, #0
	bl	set_sig
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	strb	r3, [fp, #-12]
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	strb	r3, [fp, #-11]
	ldrb	r3, [fp, #-13]
	strb	r3, [fp, #-10]
	ldrb	r3, [fp, #-13]	@ zero_extendqisi2
	cmp	r3, #32
	beq	.L337
	ldrb	r3, [fp, #-13]	@ zero_extendqisi2
	cmp	r3, #10
	bne	.L338
.L337:
	mov	r0, #31
	bl	set_sig
	b	.L339
.L338:
	ldrb	r2, [fp, #-13]	@ zero_extendqisi2
	ldrb	r3, [fp, #-14]	@ zero_extendqisi2
	cmp	r2, r3
	bne	.L340
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	ldrb	r2, [fp, #-14]	@ zero_extendqisi2
	cmp	r2, r3
	bne	.L340
	mov	r0, #1
	bl	runleave
	mov	r3, #0
	b	.L363
.L340:
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	ldrb	r2, [fp, #-14]	@ zero_extendqisi2
	cmp	r2, r3
	bne	.L342
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	cmp	r3, #91
	bne	.L342
	ldrb	r3, [fp, #-13]	@ zero_extendqisi2
	sub	r3, r3, #65
	cmp	r3, #3
	ldrls	pc, [pc, r3, asl #2]
	b	.L339
.L345:
	.word	.L348
	.word	.L347
	.word	.L346
	.word	.L344
.L348:
	mov	r0, #23
	bl	set_sig
	b	.L343
.L347:
	mov	r0, #29
	bl	set_sig
	b	.L343
.L344:
	mov	r0, #27
	bl	set_sig
	b	.L343
.L346:
	mov	r0, #28
	bl	set_sig
	nop
.L343:
	b	.L339
.L342:
	ldrb	r3, [fp, #-13]	@ zero_extendqisi2
	sub	r3, r3, #65
	cmp	r3, #54
	ldrls	pc, [pc, r3, asl #2]
	b	.L339
.L350:
	.word	.L360
	.word	.L339
	.word	.L339
	.word	.L359
	.word	.L339
	.word	.L339
	.word	.L339
	.word	.L339
	.word	.L339
	.word	.L339
	.word	.L339
	.word	.L339
	.word	.L358
	.word	.L357
	.word	.L339
	.word	.L356
	.word	.L355
	.word	.L354
	.word	.L353
	.word	.L352
	.word	.L351
	.word	.L339
	.word	.L349
	.word	.L339
	.word	.L339
	.word	.L339
	.word	.L339
	.word	.L339
	.word	.L339
	.word	.L339
	.word	.L339
	.word	.L339
	.word	.L360
	.word	.L339
	.word	.L339
	.word	.L359
	.word	.L339
	.word	.L339
	.word	.L339
	.word	.L339
	.word	.L339
	.word	.L339
	.word	.L339
	.word	.L339
	.word	.L358
	.word	.L357
	.word	.L339
	.word	.L356
	.word	.L355
	.word	.L354
	.word	.L353
	.word	.L352
	.word	.L351
	.word	.L339
	.word	.L349
.L349:
	mov	r0, #23
	bl	set_sig
	b	.L339
.L352:
	mov	r0, #24
	bl	set_sig
	b	.L339
.L358:
	mov	r0, #25
	bl	set_sig
	b	.L339
.L357:
	mov	r0, #26
	bl	set_sig
	b	.L339
.L353:
	mov	r0, #29
	bl	set_sig
	b	.L339
.L360:
	mov	r0, #27
	bl	set_sig
	b	.L339
.L359:
	mov	r0, #28
	bl	set_sig
	b	.L339
.L351:
	mov	r0, #30
	bl	set_sig
	b	.L339
.L356:
	mov	r0, #19
	bl	set_sig
	b	.L339
.L354:
	mov	r0, #18
	bl	set_sig
	b	.L339
.L355:
	mov	r0, #1
	bl	runleave
	mov	r3, #0
	b	.L363
.L339:
	bl	get_sig
	mov	r3, r0
	cmp	r3, #22
	bne	.L362
	mov	r0, #1
	bl	runleave
	mov	r3, #0
.L363:
	ldr	r2, .L365
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L364
	bl	__stack_chk_fail
.L364:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L366:
	.align	2
.L365:
	.word	.LC37
	.word	.LC35
	.word	.LC36
	.size	piece_getsig, .-piece_getsig
	.section	.rodata
	.align	2
.LC38:
	.ascii	"\033[%s%s\033[0m\012\000"
	.text
	.align	2
	.global	piece_drawbox
	.syntax unified
	.arm
	.fpu softvfp
	.type	piece_drawbox, %function
piece_drawbox:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #508]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #500]
	mov	r1, r3
	mov	r0, r2
	bl	strcpy
	ldr	r3, [fp, #-8]
	ldr	r1, [r3, #504]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #500]
	mov	r2, r3
	ldr	r0, .L368
	bl	printf
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L369:
	.align	2
.L368:
	.word	.LC38
	.size	piece_drawbox, .-piece_drawbox
	.align	2
	.global	piece_move_piece
	.syntax unified
	.arm
	.fpu softvfp
	.type	piece_move_piece, %function
piece_move_piece:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	ldr	r3, .L387
	ldr	r3, [r3, #8]
	ldr	r0, .L387
	blx	r3
	str	r0, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L371
.L386:
	ldr	r3, .L387
	ldr	r3, [r3, #20]
	ldr	r1, [fp, #-24]
	ldr	r0, .L387
	blx	r3
	mov	r2, r0
	ldr	r3, [fp, #-36]
	add	r3, r3, r2
	str	r3, [fp, #-12]
	ldr	r3, .L387
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-24]
	add	r2, r2, #1
	mov	r1, r2
	ldr	r0, .L387
	blx	r3
	mov	r2, r0
	ldr	r3, [fp, #-40]
	add	r3, r3, r2
	str	r3, [fp, #-8]
	mov	r2, #3
	ldr	r3, [fp, #-12]
	cmp	r3, r2
	ble	.L372
	ldr	r3, .L387+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	ble	.L373
.L372:
	mov	r3, #1
	b	.L374
.L373:
	mov	r3, #0
.L374:
	strb	r3, [fp, #-26]
	ldrb	r3, [fp, #-26]
	and	r3, r3, #1
	strb	r3, [fp, #-26]
	ldr	r3, .L387+8
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	bgt	.L375
	mov	r3, #4
	add	r3, r3, #1
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	bgt	.L376
.L375:
	mov	r3, #1
	b	.L377
.L376:
	mov	r3, #0
.L377:
	strb	r3, [fp, #-25]
	ldrb	r3, [fp, #-25]
	and	r3, r3, #1
	strb	r3, [fp, #-25]
	ldrb	r3, [fp, #-26]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L378
	ldrb	r3, [fp, #-25]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L379
.L378:
	mov	r3, #0
	b	.L380
.L379:
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #136]
	mov	r1, #4
	ldr	r3, [fp, #-12]
	sub	r3, r3, r1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	lsr	r1, r3, #31
	add	r3, r1, r3
	asr	r3, r3, #1
	mov	r1, r3
	mov	r3, #3
	sub	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L381
	ldr	r3, [fp, #-16]
	cmp	r3, #2
	bne	.L382
	ldr	r3, .L387+4
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	b	.L383
.L385:
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #136]
	mov	r1, #4
	ldr	r3, [fp, #-20]
	sub	r3, r3, r1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	lsr	r1, r3, #31
	add	r3, r1, r3
	asr	r3, r3, #1
	mov	r1, r3
	mov	r3, #3
	sub	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L384
	mov	r3, #1
	b	.L380
.L384:
	ldr	r3, [fp, #-20]
	sub	r3, r3, #1
	str	r3, [fp, #-20]
.L383:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	bgt	.L385
.L382:
	mov	r3, #0
	b	.L380
.L381:
	ldr	r3, [fp, #-24]
	add	r3, r3, #2
	str	r3, [fp, #-24]
.L371:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	bne	.L386
	mov	r3, #1
.L380:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L388:
	.align	2
.L387:
	.word	locus
	.word	lower
	.word	wthm
	.size	piece_move_piece, .-piece_move_piece
	.section	.rodata
	.align	2
.LC39:
	.ascii	"\033[%d;%dH\033[%s%s\033[0m\012\000"
	.text
	.align	2
	.global	piece_ghost_cross
	.syntax unified
	.arm
	.fpu softvfp
	.type	piece_ghost_cross, %function
piece_ghost_cross:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	ldr	r3, .L392
	ldr	r3, [r3, #20]
	mov	r1, #0
	ldr	r0, .L392
	blx	r3
	str	r0, [fp, #-12]
	ldr	r3, .L392
	ldr	r3, [r3, #20]
	mov	r1, #1
	ldr	r0, .L392
	blx	r3
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #136]
	mov	r1, #4
	ldr	r3, [fp, #-12]
	sub	r3, r3, r1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	lsr	r1, r3, #31
	add	r3, r1, r3
	asr	r3, r3, #1
	mov	r1, r3
	mov	r3, #3
	sub	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L391
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #340]
	mov	r1, #4
	ldr	r3, [fp, #-12]
	sub	r3, r3, r1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	lsr	r1, r3, #31
	add	r3, r1, r3
	asr	r3, r3, #1
	mov	r1, r3
	mov	r3, #3
	sub	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, .L392+4
	str	r2, [sp]
	ldr	r2, [fp, #-8]
	ldr	r1, [fp, #-12]
	ldr	r0, .L392+8
	bl	printf
.L391:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L393:
	.align	2
.L392:
	.word	locus
	.word	.LC0
	.word	.LC39
	.size	piece_ghost_cross, .-piece_ghost_cross
	.align	2
	.global	piece_perplus
	.syntax unified
	.arm
	.fpu softvfp
	.type	piece_perplus, %function
piece_perplus:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	ldr	r3, .L396
	ldr	r3, [r3, #8]
	ldr	r0, .L396
	blx	r3
	mov	r3, r0
	cmp	r3, #2
	bne	.L395
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #32]
	ldr	r0, [fp, #-24]
	blx	r3
.L395:
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	ldr	r4, [r3, #156]
	ldr	r3, [fp, #-24]
	add	r0, r3, #140
	sub	r3, fp, #20
	ldm	r3, {r2, r3}
	ldr	r1, .L396+4
	blx	r4
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #88]
	ldr	r1, .L396+4
	ldr	r0, [fp, #-24]
	blx	r3
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L397:
	.align	2
.L396:
	.word	locus
	.word	box
	.size	piece_perplus, .-piece_perplus
	.align	2
	.global	piece_move
	.syntax unified
	.arm
	.fpu softvfp
	.type	piece_move, %function
piece_move:
	@ 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, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #84]
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	blx	r3
	mov	r3, r0
	cmp	r3, #0
	beq	.L399
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #16]
	ldr	r0, [fp, #-16]
	blx	r3
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #72]
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	blx	r3
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	ldr	r0, [fp, #-16]
	blx	r3
	b	.L401
.L399:
	ldr	r3, [fp, #-20]
	cmp	r3, #1
	bne	.L401
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #20]
	ldr	r0, [fp, #-16]
	blx	r3
	ldr	r3, [fp, #-16]
	ldr	r4, [r3, #96]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-20]
	mov	r1, #0
	ldr	r0, [fp, #-16]
	blx	r4
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #60]
	mov	r1, #0
	ldr	r0, [fp, #-16]
	blx	r3
.L401:
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	piece_move, .-piece_move
	.section	.rodata
	.align	2
.LC40:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	piece_rotate
	.syntax unified
	.arm
	.fpu softvfp
	.type	piece_rotate, %function
piece_rotate:
	@ args = 4, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #68
	str	r0, [fp, #-56]
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	ldr	r3, .L407
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #140]
	sub	r2, fp, #32
	ldr	r1, .L407+4
	mov	r0, r2
	blx	r3
	ldr	r3, [fp, #-56]
	ldr	r4, [r3, #164]
	ldr	r3, [fp, #-56]
	add	r0, r3, #140
	sub	r3, fp, #44
	sub	r2, fp, #48
	mov	r1, #2
	str	r1, [sp, #4]
	mov	r1, #1
	str	r1, [sp]
	ldr	r1, .L407+4
	blx	r4
	ldr	r3, [fp, #-56]
	ldr	r1, [r3, #168]
	ldr	r3, [fp, #-56]
	add	r0, r3, #140
	ldr	r3, [fp, #-48]
	ldr	r2, [fp, #-44]
	str	r2, [sp, #4]
	str	r3, [sp]
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	blx	r1
	ldr	r3, [fp, #-56]
	ldr	r4, [r3, #164]
	ldr	r3, [fp, #-56]
	add	r0, r3, #140
	ldr	r3, [fp, #-56]
	add	r1, r3, #228
	sub	r3, fp, #36
	sub	r2, fp, #40
	mov	ip, #1
	str	ip, [sp, #4]
	mov	ip, #2
	str	ip, [sp]
	blx	r4
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-40]
	sub	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-36]
	sub	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-56]
	ldr	r4, [r3, #156]
	ldr	r3, [fp, #-56]
	add	r0, r3, #140
	ldr	r3, [fp, #-56]
	add	r1, r3, #172
	sub	r3, fp, #24
	ldm	r3, {r2, r3}
	blx	r4
	ldr	r3, .L407+8
	ldr	r3, [r3, #40]
	ldr	r2, [fp, #-56]
	add	r2, r2, #172
	mov	r1, r2
	ldr	r0, .L407+8
	blx	r3
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #84]
	mov	r2, #0
	mov	r1, #0
	ldr	r0, [fp, #-56]
	blx	r3
	mov	r3, r0
	cmp	r3, #0
	beq	.L403
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #16]
	ldr	r0, [fp, #-56]
	blx	r3
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #88]
	ldr	r2, [fp, #-56]
	add	r2, r2, #172
	mov	r1, r2
	ldr	r0, [fp, #-56]
	blx	r3
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #12]
	ldr	r0, [fp, #-56]
	blx	r3
	ldr	r3, .L407+4
	ldr	r3, [r3, #40]
	ldr	r1, .L407+8
	ldr	r0, .L407+4
	blx	r3
	b	.L406
.L403:
	ldr	r3, .L407+8
	ldr	r3, [r3, #40]
	ldr	r1, .L407+4
	ldr	r0, .L407+8
	blx	r3
.L406:
	nop
	ldr	r3, .L407
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L405
	bl	__stack_chk_fail
.L405:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L408:
	.align	2
.L407:
	.word	.LC40
	.word	box
	.word	locus
	.size	piece_rotate, .-piece_rotate
	.align	2
	.global	piece_transform
	.syntax unified
	.arm
	.fpu softvfp
	.type	piece_transform, %function
piece_transform:
	@ args = 4, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-16]
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #4]
	cmp	r3, #1
	beq	.L410
	ldr	r3, [fp, #-16]
	ldr	r4, [r3, #48]
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	__aeabi_d2iz
	mov	r3, r0
	ldr	r2, [fp, #4]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	blx	r4
	b	.L412
.L410:
	ldr	r3, [fp, #-16]
	ldr	r1, [r3, #80]
	ldr	r3, [fp, #4]
	str	r3, [sp]
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-16]
	blx	r1
.L412:
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	piece_transform, .-piece_transform
	.section	.rodata
	.align	2
.LC41:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	piece_delete
	.syntax unified
	.arm
	.fpu softvfp
	.type	piece_delete, %function
piece_delete:
	@ args = 0, pretend = 0, frame = 152
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #152
	str	r0, [fp, #-152]
	ldr	r3, .L441
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-148]
	b	.L414
.L421:
	mov	r3, #0
	str	r3, [fp, #-144]
	b	.L415
.L418:
	mov	r3, #0
	str	r3, [fp, #-32]
	sub	r3, fp, #32
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-152]
	ldr	r2, [r3, #340]
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-24]
	sub	r3, fp, #28
	str	r3, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-140]
	b	.L416
.L417:
	ldr	r3, [fp, #-140]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-140]
	add	r3, r3, #1
	str	r3, [fp, #-140]
.L416:
	ldr	r3, [fp, #-140]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	bne	.L417
	ldr	r3, [fp, #-144]
	add	r3, r3, #1
	str	r3, [fp, #-144]
.L415:
	ldr	r3, .L441+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-144]
	cmp	r3, r2
	bne	.L418
	mov	r3, #0
	str	r3, [fp, #-32]
	sub	r3, fp, #32
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-152]
	ldr	r2, [r3, #136]
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-152]
	ldr	r2, [r3, #340]
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-48]
	str	r3, [fp, #-20]
	sub	r3, fp, #28
	str	r3, [fp, #-44]
	mov	r3, #0
	str	r3, [fp, #-136]
	b	.L419
.L420:
	ldr	r3, [fp, #-136]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-136]
	add	r3, r3, #1
	str	r3, [fp, #-136]
.L419:
	ldr	r3, [fp, #-136]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-48]
	cmp	r2, r3
	bne	.L420
	ldr	r3, [fp, #-148]
	add	r3, r3, #1
	str	r3, [fp, #-148]
.L414:
	ldr	r3, .L441+8
	ldr	r3, [r3]
	ldr	r2, [fp, #-148]
	cmp	r2, r3
	bne	.L421
	mov	r3, #0
	str	r3, [fp, #-32]
	sub	r3, fp, #32
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-152]
	ldr	r3, [r3, #136]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-152]
	ldr	r3, [r3, #340]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-96]
	str	r3, [fp, #-20]
	sub	r3, fp, #28
	str	r3, [fp, #-92]
	mov	r3, #0
	str	r3, [fp, #-132]
	b	.L422
.L423:
	ldr	r3, [fp, #-132]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-92]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-132]
	add	r3, r3, #1
	str	r3, [fp, #-132]
.L422:
	ldr	r3, [fp, #-132]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-92]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-96]
	cmp	r2, r3
	bne	.L423
	mov	r3, #0
	str	r3, [fp, #-128]
	b	.L424
.L427:
	mov	r3, #0
	str	r3, [fp, #-32]
	sub	r3, fp, #32
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-152]
	ldr	r2, [r3, #488]
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-152]
	ldr	r2, [r3, #492]
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-56]
	str	r3, [fp, #-20]
	sub	r3, fp, #28
	str	r3, [fp, #-52]
	mov	r3, #0
	str	r3, [fp, #-124]
	b	.L425
.L426:
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-124]
	add	r3, r3, #1
	str	r3, [fp, #-124]
.L425:
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-56]
	cmp	r2, r3
	bne	.L426
	ldr	r3, [fp, #-128]
	add	r3, r3, #1
	str	r3, [fp, #-128]
.L424:
	ldr	r3, .L441+12
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-128]
	cmp	r3, r2
	bne	.L427
	mov	r3, #0
	str	r3, [fp, #-32]
	sub	r3, fp, #32
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-152]
	ldr	r3, [r3, #488]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-152]
	ldr	r3, [r3, #492]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-88]
	str	r3, [fp, #-20]
	sub	r3, fp, #28
	str	r3, [fp, #-84]
	mov	r3, #0
	str	r3, [fp, #-120]
	b	.L428
.L429:
	ldr	r3, [fp, #-120]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-84]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	str	r3, [fp, #-120]
.L428:
	ldr	r3, [fp, #-120]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-84]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-88]
	cmp	r2, r3
	bne	.L429
	mov	r3, #0
	str	r3, [fp, #-32]
	sub	r3, fp, #32
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-152]
	ldr	r3, [r3, #504]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-152]
	ldr	r3, [r3, #500]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-152]
	ldr	r3, [r3, #508]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-152]
	ldr	r3, [r3, #512]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-80]
	str	r3, [fp, #-12]
	sub	r3, fp, #28
	str	r3, [fp, #-76]
	mov	r3, #0
	str	r3, [fp, #-116]
	b	.L430
.L431:
	ldr	r3, [fp, #-116]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-116]
	add	r3, r3, #1
	str	r3, [fp, #-116]
.L430:
	ldr	r3, [fp, #-116]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-80]
	cmp	r2, r3
	bne	.L431
	mov	r3, #0
	str	r3, [fp, #-112]
	b	.L432
.L435:
	mov	r3, #0
	str	r3, [fp, #-32]
	sub	r3, fp, #32
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-152]
	ldr	r2, [r3, #496]
	ldr	r3, [fp, #-112]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-64]
	str	r3, [fp, #-24]
	sub	r3, fp, #28
	str	r3, [fp, #-60]
	mov	r3, #0
	str	r3, [fp, #-108]
	b	.L433
.L434:
	ldr	r3, [fp, #-108]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-108]
	add	r3, r3, #1
	str	r3, [fp, #-108]
.L433:
	ldr	r3, [fp, #-108]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-64]
	cmp	r2, r3
	bne	.L434
	ldr	r3, [fp, #-112]
	add	r3, r3, #1
	str	r3, [fp, #-112]
.L432:
	ldr	r3, .L441+16
	ldr	r3, [r3]
	ldr	r2, [fp, #-112]
	cmp	r2, r3
	bne	.L435
	mov	r3, #0
	str	r3, [fp, #-104]
	b	.L436
.L437:
	ldr	r3, [fp, #-152]
	ldr	r1, [r3, #428]
	ldr	r2, [fp, #-104]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-152]
	ldr	r0, [r3, #428]
	ldr	r2, [fp, #-104]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r0, r3
	mov	r0, r3
	blx	r1
	ldr	r3, [fp, #-104]
	add	r3, r3, #1
	str	r3, [fp, #-104]
.L436:
	ldr	r3, .L441+12
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-104]
	cmp	r3, r2
	bne	.L437
	mov	r3, #0
	str	r3, [fp, #-32]
	sub	r3, fp, #32
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-152]
	ldr	r3, [r3, #496]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-152]
	ldr	r3, [r3, #428]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-72]
	str	r3, [fp, #-20]
	sub	r3, fp, #28
	str	r3, [fp, #-68]
	mov	r3, #0
	str	r3, [fp, #-100]
	b	.L438
.L439:
	ldr	r3, [fp, #-100]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-68]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-100]
	add	r3, r3, #1
	str	r3, [fp, #-100]
.L438:
	ldr	r3, [fp, #-100]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-68]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-72]
	cmp	r2, r3
	bne	.L439
	ldr	r3, [fp, #-152]
	ldr	r3, [r3, #436]
	ldr	r2, [fp, #-152]
	add	r2, r2, #432
	mov	r0, r2
	blx	r3
	nop
	ldr	r3, .L441
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L440
	bl	__stack_chk_fail
.L440:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L442:
	.align	2
.L441:
	.word	.LC41
	.word	width
	.word	height
	.word	prelevel
	.word	color_len
	.size	piece_delete, .-piece_delete
	.section	.rodata
	.align	2
.LC42:
	.ascii	"%c%c%c%c%c%c\000"
	.text
	.align	2
	.global	init_piece
	.syntax unified
	.arm
	.fpu softvfp
	.type	init_piece, %function
init_piece:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #52
	str	r0, [fp, #-40]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464
	str	r2, [r3, #4]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+4
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+8
	str	r2, [r3, #12]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+12
	str	r2, [r3, #16]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+16
	str	r2, [r3, #20]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+20
	str	r2, [r3, #24]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+24
	str	r2, [r3, #28]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+28
	str	r2, [r3, #32]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+32
	str	r2, [r3, #44]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+36
	str	r2, [r3, #48]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+40
	str	r2, [r3, #36]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+44
	str	r2, [r3, #52]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+48
	str	r2, [r3, #56]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+52
	str	r2, [r3, #60]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+56
	str	r2, [r3, #64]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+60
	str	r2, [r3, #68]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+64
	str	r2, [r3, #72]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+68
	str	r2, [r3, #40]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+72
	str	r2, [r3, #80]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+76
	str	r2, [r3, #84]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+80
	str	r2, [r3, #88]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+84
	str	r2, [r3, #96]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+88
	str	r2, [r3, #92]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+92
	str	r2, [r3, #100]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+96
	str	r2, [r3, #104]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+100
	str	r2, [r3, #76]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+104
	str	r2, [r3, #108]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+108
	str	r2, [r3, #112]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+112
	str	r2, [r3, #120]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+116
	str	r2, [r3, #116]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+120
	str	r2, [r3, #8]
	ldr	r3, .L464+124
	ldr	r3, [r3]
	cmp	r3, #0
	ble	.L444
	ldr	r3, .L464+124
	ldr	r3, [r3]
	b	.L445
.L444:
	mov	r3, #6
.L445:
	ldr	r2, .L464+124
	str	r3, [r2]
	ldr	r3, .L464+128
	ldr	r3, [r3]
	cmp	r3, #30
	bgt	.L446
	ldr	r3, .L464+128
	ldr	r3, [r3]
	b	.L447
.L446:
	mov	r3, #0
.L447:
	ldr	r2, .L464+128
	str	r3, [r2]
	ldr	r3, .L464+132
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L448
	ldr	r3, .L464+132
	ldr	r3, [r3]
	cmp	r3, #31
	bgt	.L448
	ldr	r3, .L464+132
	ldr	r3, [r3]
	add	r3, r3, #1
	b	.L449
.L448:
	mov	r3, #32
.L449:
	ldr	r2, .L464+132
	str	r3, [r2]
	ldr	r3, .L464+136
	ldr	r3, [r3]
	cmp	r3, #16
	ble	.L450
	ldr	r3, .L464+136
	ldr	r3, [r3]
	b	.L451
.L450:
	mov	r3, #25
.L451:
	ldr	r2, .L464+136
	str	r3, [r2]
	ldr	r3, .L464+140
	ldr	r3, [r3]
	cmp	r3, #9
	ble	.L452
	ldr	r3, .L464+140
	ldr	r3, [r3]
	b	.L453
.L452:
	mov	r3, #30
.L453:
	ldr	r2, .L464+140
	str	r3, [r2]
	ldr	r3, .L464+140
	ldr	r3, [r3]
	mov	r2, #3
	add	r3, r3, r2
	ldr	r2, .L464+144
	str	r3, [r2]
	ldr	r3, .L464+136
	ldr	r3, [r3]
	lsl	r3, r3, #1
	mov	r2, #4
	add	r3, r3, r2
	ldr	r2, .L464+148
	str	r3, [r2]
	mov	r2, #4
	ldr	r3, .L464+148
	ldr	r3, [r3]
	add	r3, r2, r3
	add	r3, r3, #3
	ldr	r2, .L464+152
	str	r3, [r2]
	ldr	r3, [fp, #-40]
	mov	r2, #0
	str	r2, [r3, #416]
	ldr	r3, [fp, #-40]
	mov	r2, #0
	str	r2, [r3, #420]
	ldr	r3, [fp, #-40]
	mov	r2, #1
	str	r2, [r3, #424]
	ldr	r3, [fp, #-40]
	add	r3, r3, #140
	mov	r0, r3
	bl	transpose_init
	ldr	r3, [fp, #-40]
	add	r3, r3, #344
	mov	r0, r3
	bl	max_distance_init
	ldr	r3, [fp, #-40]
	add	r3, r3, #432
	mov	r0, r3
	bl	vector_init
	ldr	r3, .L464+140
	ldr	r3, [r3]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-40]
	str	r2, [r3, #136]
	ldr	r3, .L464+140
	ldr	r3, [r3]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-40]
	str	r2, [r3, #340]
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L454
.L457:
	ldr	r3, .L464+136
	ldr	r3, [r3]
	lsl	r1, r3, #2
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #136]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r4, r2, r3
	mov	r0, r1
	bl	malloc
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, .L464+136
	ldr	r3, [r3]
	lsl	r1, r3, #2
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #340]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r4, r2, r3
	mov	r0, r1
	bl	malloc
	mov	r3, r0
	str	r3, [r4]
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L455
.L456:
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #136]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L464+156
	ldr	r1, [r3]
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #340]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r4, r2, r3
	mov	r0, r1
	bl	malloc
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L455:
	ldr	r3, .L464+136
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-28]
	cmp	r3, r2
	bne	.L456
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L454:
	ldr	r3, .L464+140
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-32]
	cmp	r3, r2
	bne	.L457
	ldr	r3, .L464+124
	ldr	r3, [r3]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-40]
	str	r2, [r3, #488]
	ldr	r3, .L464+124
	ldr	r3, [r3]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-40]
	str	r2, [r3, #492]
	ldr	r3, .L464+160
	ldr	r3, [r3]
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-40]
	str	r2, [r3, #504]
	ldr	r3, .L464+160
	ldr	r3, [r3]
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-40]
	str	r2, [r3, #500]
	ldr	r3, .L464+160
	ldr	r3, [r3]
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-40]
	str	r2, [r3, #508]
	ldr	r3, .L464+160
	ldr	r3, [r3]
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-40]
	str	r2, [r3, #512]
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L458
.L459:
	ldr	r3, .L464+160
	ldr	r1, [r3]
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #488]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	add	r4, r2, r3
	mov	r0, r1
	bl	malloc
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, .L464+160
	ldr	r1, [r3]
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #492]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	add	r4, r2, r3
	mov	r0, r1
	bl	malloc
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L458:
	ldr	r3, .L464+124
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-24]
	cmp	r3, r2
	bne	.L459
	ldr	r3, .L464+124
	ldr	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-40]
	str	r2, [r3, #428]
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L460
.L461:
	ldr	r3, [fp, #-40]
	ldr	r1, [r3, #428]
	ldr	r2, [fp, #-20]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	mov	r0, r3
	bl	vector_init
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L460:
	ldr	r3, .L464+124
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-20]
	cmp	r3, r2
	bne	.L461
	mov	r3, #74
	str	r3, [sp, #8]
	mov	r3, #91
	str	r3, [sp, #4]
	mov	r3, #27
	str	r3, [sp]
	mov	r3, #72
	mov	r2, #91
	mov	r1, #27
	ldr	r0, .L464+164
	bl	printf
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #28]
	ldr	r0, [fp, #-40]
	blx	r3
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+168
	str	r2, [r3, #124]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+172
	str	r2, [r3, #128]
	ldr	r3, [fp, #-40]
	ldr	r2, .L464+176
	str	r2, [r3, #132]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L462
.L463:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-16]
	add	r3, r3, #30
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	blx	r3
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L462:
	ldr	r3, [fp, #-16]
	cmp	r3, #3
	bne	.L463
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #60]
	mov	r1, #1
	ldr	r0, [fp, #-40]
	blx	r3
	ldr	r3, [fp, #-40]
	ldr	r4, [r3, #96]
	mov	r3, #1
	mov	r2, #0
	mov	r1, #1
	ldr	r0, [fp, #-40]
	blx	r4
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L465:
	.align	2
.L464:
	.word	piece_getsig
	.word	piece_persig
	.word	piece_drawbox
	.word	piece_get_erase
	.word	piece_clear_row
	.word	piece_drop_bottom
	.word	piece_init_color
	.word	piece_ghost_cross
	.word	piece_init
	.word	piece_move
	.word	piece_random_piece
	.word	piece_check
	.word	piece_get_invoke
	.word	piece_show_piece
	.word	piece_shift_piece
	.word	piece_update
	.word	piece_perplus
	.word	piece_get_piece
	.word	piece_rotate
	.word	piece_move_piece
	.word	piece_coordinate
	.word	piece_draw_piece
	.word	piece_transform
	.word	piece_get_replace
	.word	piece_bomb
	.word	piece_top_point
	.word	piece_coord_comp
	.word	piece_get_preview
	.word	piece_loop
	.word	piece_pipe_piece
	.word	piece_delete
	.word	prelevel
	.word	speedlevel
	.word	runlevel
	.word	width
	.word	height
	.word	lower
	.word	wthm
	.word	dist
	.word	color_size
	.word	str_size
	.word	.LC42
	.word	board_border
	.word	board_matrix
	.word	board_notify
	.size	init_piece, .-init_piece
	.section	.rodata
	.align	2
.LC43:
	.ascii	"\033[38;5\000"
	.align	2
.LC44:
	.ascii	"%s;%d;1m\033[%d;%dH==%s;%d;1m\033[%d;%dH==\033[0m\000"
	.align	2
.LC45:
	.ascii	"%s;%d;1m\033[%d;%dH||%s;%d;1m\033[%d;%dH||\033[0m\000"
	.text
	.align	2
	.global	board_border
	.syntax unified
	.arm
	.fpu softvfp
	.type	board_border, %function
board_border:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	bl	rand
	mov	r1, r0
	ldr	r3, .L471
	smull	r2, r3, r1, r3
	add	r3, r3, r1
	asr	r2, r3, #7
	asr	r3, r1, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r3, r2
	sub	r2, r1, r3
	add	r3, r2, #6
	str	r3, [fp, #-12]
	ldr	r3, .L471+4
	str	r3, [fp, #-8]
	mov	r3, #6
	str	r3, [fp, #-20]
	b	.L467
.L468:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-20]
	add	r0, r2, r3
	mov	ip, #3
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	add	r3, r3, #25
	ldr	r2, .L471+8
	ldr	r2, [r2]
	add	r2, r2, #1
	ldr	r1, [fp, #-20]
	str	r1, [sp, #16]
	str	r2, [sp, #12]
	str	r3, [sp, #8]
	ldr	r3, [fp, #-8]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-20]
	str	r3, [sp]
	mov	r3, ip
	mov	r2, r0
	ldr	r1, [fp, #-8]
	ldr	r0, .L471+12
	bl	printf
	ldr	r3, [fp, #-20]
	add	r3, r3, #2
	str	r3, [fp, #-20]
.L467:
	ldr	r3, .L471+16
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L468
	mov	r3, #3
	str	r3, [fp, #-16]
	b	.L469
.L470:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-16]
	add	r1, r2, r3
	mov	r0, #4
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	add	r3, r3, #30
	ldr	r2, .L471+16
	ldr	r2, [r2]
	add	r2, r2, #2
	str	r2, [sp, #16]
	ldr	r2, [fp, #-16]
	str	r2, [sp, #12]
	str	r3, [sp, #8]
	ldr	r3, [fp, #-8]
	str	r3, [sp, #4]
	str	r0, [sp]
	ldr	r3, [fp, #-16]
	mov	r2, r1
	ldr	r1, [fp, #-8]
	ldr	r0, .L471+20
	bl	printf
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L469:
	ldr	r3, .L471+8
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	ble	.L470
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L472:
	.align	2
.L471:
	.word	-503547889
	.word	.LC43
	.word	lower
	.word	.LC44
	.word	wthm
	.word	.LC45
	.size	board_border, .-board_border
	.section	.rodata
	.align	2
.LC46:
	.ascii	"\033[1;31m\033[%d;%dHRunLevel\033[1;31m\033[%d;%dHP"
	.ascii	"reviewLevel\033[0m\012\000"
	.align	2
.LC47:
	.ascii	"\033[1;31m\033[%d;%dHSpeedLevel\033[1;31m\033[%d;%d"
	.ascii	"HScore\033[0m\012\000"
	.align	2
.LC48:
	.ascii	"\033[1;31m\033[%d;%dHWidth\033[1;31m\033[%d;%dHHeig"
	.ascii	"ht\033[0m\012\000"
	.align	2
.LC49:
	.ascii	"\033[1;34m\033[%d;%dH%d\033[1;34m\033[%d;%dH%d\033["
	.ascii	"0m\012\000"
	.align	2
.LC50:
	.ascii	"\033[38;5;34;1m\033[%d;%dHM|m      ===   double    "
	.ascii	"     N|n          ===   half\012\000"
	.align	2
.LC51:
	.ascii	"\033[%d;%dHQ|q|ESC  ===   exit           U|u       "
	.ascii	"   ===   one step up\012\000"
	.align	2
.LC52:
	.ascii	"\033[%d;%dHP|p      ===   pause          S|s|down  "
	.ascii	"   ===   one step down\012\000"
	.align	2
.LC53:
	.ascii	"\033[%d;%dHR|r      ===   resume         A|a|left  "
	.ascii	"   ===   one step left\012\000"
	.align	2
.LC54:
	.ascii	"\033[%d;%dHW|w|up   ===   rotate         D|d|right "
	.ascii	"   ===   one step right\012\000"
	.align	2
.LC55:
	.ascii	"\033[%d;%dHT|t      ===   transpose      Space|ente"
	.ascii	"r  ===   drop all down\012\000"
	.align	2
.LC56:
	.ascii	"\033[38;5;106;1m\000"
	.align	2
.LC57:
	.ascii	"\033[%d;%dHVersion 1.0.3\012\000"
	.align	2
.LC58:
	.ascii	"\033[%d;%dHhttps://github.com/deepgrace\000"
	.align	2
.LC59:
	.ascii	"\033[%d;%dHGrace <complex.invoke@gmail.com>\000"
	.text
	.align	2
	.global	board_notify
	.syntax unified
	.arm
	.fpu softvfp
	.type	board_notify, %function
board_notify:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	mov	r3, #3
	add	r1, r3, #9
	ldr	r3, .L474
	ldr	r2, [r3]
	mov	r3, #3
	add	r0, r3, #9
	ldr	r3, .L474
	ldr	r3, [r3]
	add	r3, r3, #11
	str	r3, [sp]
	mov	r3, r0
	ldr	r0, .L474+4
	bl	printf
	mov	r3, #3
	add	r1, r3, #9
	ldr	r3, .L474
	ldr	r3, [r3]
	add	r2, r3, #26
	mov	r3, #3
	add	r0, r3, #9
	ldr	r3, .L474
	ldr	r3, [r3]
	add	r3, r3, #56
	str	r3, [sp]
	mov	r3, r0
	ldr	r0, .L474+8
	bl	printf
	mov	r3, #3
	add	r1, r3, #9
	ldr	r3, .L474
	ldr	r3, [r3]
	add	r2, r3, #39
	mov	r3, #3
	add	r0, r3, #9
	ldr	r3, .L474
	ldr	r3, [r3]
	add	r3, r3, #47
	str	r3, [sp]
	mov	r3, r0
	ldr	r0, .L474+12
	bl	printf
	mov	r3, #3
	add	r0, r3, #10
	ldr	r3, .L474
	ldr	ip, [r3]
	ldr	r3, .L474+16
	ldr	r3, [r3]
	sub	lr, r3, #1
	mov	r3, #3
	add	r3, r3, #10
	ldr	r2, .L474
	ldr	r2, [r2]
	add	r2, r2, #11
	ldr	r1, .L474+20
	ldr	r1, [r1]
	str	r1, [sp, #8]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, lr
	mov	r2, ip
	mov	r1, r0
	ldr	r0, .L474+24
	bl	printf
	mov	r3, #3
	add	r0, r3, #10
	ldr	r3, .L474
	ldr	r3, [r3]
	add	ip, r3, #26
	ldr	r3, .L474+28
	ldr	lr, [r3]
	mov	r3, #3
	add	r3, r3, #10
	ldr	r2, .L474
	ldr	r2, [r2]
	add	r2, r2, #56
	ldr	r1, .L474+32
	ldr	r1, [r1]
	str	r1, [sp, #8]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, lr
	mov	r2, ip
	mov	r1, r0
	ldr	r0, .L474+24
	bl	printf
	mov	r3, #3
	add	r0, r3, #10
	ldr	r3, .L474
	ldr	r3, [r3]
	add	ip, r3, #39
	ldr	r3, .L474+36
	ldr	lr, [r3]
	mov	r3, #3
	add	r3, r3, #10
	ldr	r2, .L474
	ldr	r2, [r2]
	add	r2, r2, #47
	ldr	r1, .L474+40
	ldr	r1, [r1]
	str	r1, [sp, #8]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, lr
	mov	r2, ip
	mov	r1, r0
	ldr	r0, .L474+24
	bl	printf
	mov	r3, #3
	add	r3, r3, #12
	ldr	r2, .L474
	ldr	r2, [r2]
	mov	r1, r3
	ldr	r0, .L474+44
	bl	printf
	mov	r3, #3
	add	r3, r3, #13
	ldr	r2, .L474
	ldr	r2, [r2]
	mov	r1, r3
	ldr	r0, .L474+48
	bl	printf
	mov	r3, #3
	add	r3, r3, #14
	ldr	r2, .L474
	ldr	r2, [r2]
	mov	r1, r3
	ldr	r0, .L474+52
	bl	printf
	mov	r3, #3
	add	r3, r3, #15
	ldr	r2, .L474
	ldr	r2, [r2]
	mov	r1, r3
	ldr	r0, .L474+56
	bl	printf
	mov	r3, #3
	add	r3, r3, #16
	ldr	r2, .L474
	ldr	r2, [r2]
	mov	r1, r3
	ldr	r0, .L474+60
	bl	printf
	mov	r3, #3
	add	r3, r3, #17
	ldr	r2, .L474
	ldr	r2, [r2]
	mov	r1, r3
	ldr	r0, .L474+64
	bl	printf
	ldr	r0, .L474+68
	bl	printf
	mov	r3, #3
	add	r3, r3, #19
	ldr	r2, .L474
	ldr	r2, [r2]
	mov	r1, r3
	ldr	r0, .L474+72
	bl	printf
	mov	r3, #3
	add	r3, r3, #20
	ldr	r2, .L474
	ldr	r2, [r2]
	mov	r1, r3
	ldr	r0, .L474+76
	bl	printf
	mov	r3, #3
	add	r3, r3, #21
	ldr	r2, .L474
	ldr	r2, [r2]
	mov	r1, r3
	ldr	r0, .L474+80
	bl	printf
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L475:
	.align	2
.L474:
	.word	dist
	.word	.LC46
	.word	.LC47
	.word	.LC48
	.word	runlevel
	.word	prelevel
	.word	.LC49
	.word	speedlevel
	.word	score
	.word	width
	.word	height
	.word	.LC50
	.word	.LC51
	.word	.LC52
	.word	.LC53
	.word	.LC54
	.word	.LC55
	.word	.LC56
	.word	.LC57
	.word	.LC58
	.word	.LC59
	.size	board_notify, .-board_notify
	.section	.rodata
	.align	2
.LC60:
	.ascii	" \000"
	.align	2
.LC61:
	.ascii	"\033[0m\000"
	.align	2
.LC62:
	.ascii	"[][]\000"
	.align	2
.LC63:
	.ascii	"  \000"
	.align	2
.LC64:
	.ascii	"   \000"
	.align	2
.LC65:
	.ascii	"     \000"
	.align	2
.LC66:
	.ascii	"          \000"
	.align	2
.LC67:
	.ascii	"\033[38;5;191;1m\000"
	.align	2
.LC68:
	.ascii	"\033[38;5;47;1m\000"
	.align	2
.LC69:
	.ascii	"\033[38;5;30;1m\000"
	.align	2
.LC70:
	.ascii	"                    \000"
	.align	2
.LC71:
	.ascii	"%s%s%s\000"
	.align	2
.LC72:
	.ascii	"%s%s%s%s\000"
	.align	2
.LC73:
	.ascii	"%s%s%s%s%s%s\000"
	.align	2
.LC74:
	.ascii	"%s%s%s%s%s%s%s\000"
	.align	2
.LC75:
	.ascii	"%s%s%s%s%s%s%s%s%s%s%s%s%s%s\000"
	.align	2
.LC76:
	.ascii	"(x-m)*zoomx\000"
	.align	2
.LC77:
	.ascii	"row\000"
	.align	2
.LC78:
	.ascii	"=\000"
	.align	2
.LC79:
	.ascii	"%s%s%s%s%s%s%s%s%s%s%s%s%s\000"
	.align	2
.LC80:
	.ascii	"+\000"
	.align	2
.LC81:
	.ascii	"%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s\000"
	.align	2
.LC82:
	.ascii	"m\000"
	.align	2
.LC83:
	.ascii	"sin(a)\000"
	.align	2
.LC84:
	.ascii	"cos(a)\000"
	.align	2
.LC85:
	.ascii	"%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s\000"
	.align	2
.LC86:
	.ascii	"(y-n)*zoomy\000"
	.align	2
.LC87:
	.ascii	"col\000"
	.align	2
.LC88:
	.ascii	"%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s\000"
	.align	2
.LC89:
	.ascii	"n\000"
	.align	2
.LC90:
	.ascii	"-sin(a)\000"
	.align	2
.LC91:
	.ascii	"\033[%d;%dH%s          %s%s%s%s%s%s%s\012\000"
	.align	2
.LC92:
	.ascii	"\033[%d;%dH%s%s%s%s%s%s%s%s%s\012\000"
	.align	2
.LC93:
	.ascii	"\033[%d;%dH%s%s%s%s%s%s%s%s%s%s%s\012\000"
	.align	2
.LC94:
	.ascii	"\033[%d;%dH%s%s%s%s\033[%d;%dH%s%s%s%s\012\000"
	.align	2
.LC95:
	.ascii	"\033[%d;%dH%s%s%s%s%s%s%s%s%s%s%s%s\012\000"
	.align	2
.LC96:
	.ascii	"\033[%d;%dH%s%s%s%s%s\033[%d;%dH%s%s%s%s%s\012\000"
	.align	2
.LC97:
	.ascii	"\033[%d;%dH%s%s%s%s%s%s\033[%d;%dH%s%s%s%s%s %s\012"
	.ascii	"\000"
	.align	2
.LC98:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	board_matrix
	.syntax unified
	.arm
	.fpu softvfp
	.type	board_matrix, %function
board_matrix:
	@ args = 0, pretend = 0, frame = 288
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #368
	ldr	r3, .L480
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L480+4
	str	r3, [fp, #-284]
	ldr	r3, .L480+8
	str	r3, [fp, #-280]
	ldr	r3, .L480+12
	str	r3, [fp, #-276]
	ldr	r3, .L480+16
	str	r3, [fp, #-272]
	ldr	r3, .L480+20
	str	r3, [fp, #-268]
	ldr	r3, .L480+24
	str	r3, [fp, #-264]
	ldr	r3, .L480+28
	str	r3, [fp, #-260]
	ldr	r3, .L480+32
	str	r3, [fp, #-256]
	ldr	r3, .L480+36
	str	r3, [fp, #-252]
	ldr	r3, .L480+40
	str	r3, [fp, #-248]
	ldr	r3, .L480+44
	str	r3, [fp, #-244]
	ldr	r0, [fp, #-252]
	bl	strlen
	str	r0, [fp, #-240]
	ldr	r0, [fp, #-248]
	bl	strlen
	str	r0, [fp, #-236]
	ldr	r0, [fp, #-280]
	bl	strlen
	str	r0, [fp, #-232]
	ldr	r0, [fp, #-276]
	bl	strlen
	str	r0, [fp, #-228]
	ldr	r2, [fp, #-228]
	ldr	r3, [fp, #-232]
	add	r3, r2, r3
	str	r3, [fp, #-224]
	ldr	r2, [fp, #-236]
	ldr	r3, [fp, #-232]
	add	r3, r2, r3
	add	r3, r3, #3
	str	r3, [fp, #-220]
	ldr	r0, [fp, #-220]
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-216]
	ldr	r3, [fp, #-280]
	str	r3, [sp, #4]
	ldr	r3, .L480+48
	str	r3, [sp]
	ldr	r3, [fp, #-248]
	ldr	r2, .L480+52
	ldr	r1, [fp, #-220]
	ldr	r0, [fp, #-216]
	bl	snprintf
	ldr	r2, [fp, #-240]
	ldr	r3, [fp, #-232]
	add	r3, r2, r3
	add	r3, r3, #3
	str	r3, [fp, #-212]
	ldr	r0, [fp, #-212]
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-208]
	ldr	r3, [fp, #-280]
	str	r3, [sp, #4]
	ldr	r3, .L480+48
	str	r3, [sp]
	ldr	r3, [fp, #-252]
	ldr	r2, .L480+52
	ldr	r1, [fp, #-212]
	ldr	r0, [fp, #-208]
	bl	snprintf
	ldr	r2, [fp, #-240]
	ldr	r3, [fp, #-224]
	add	r3, r2, r3
	add	r3, r3, #1
	str	r3, [fp, #-204]
	ldr	r0, [fp, #-204]
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-200]
	ldr	r3, [fp, #-280]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-276]
	str	r3, [sp]
	ldr	r3, [fp, #-252]
	ldr	r2, .L480+52
	ldr	r1, [fp, #-204]
	ldr	r0, [fp, #-200]
	bl	snprintf
	ldr	r2, [fp, #-236]
	ldr	r3, [fp, #-224]
	add	r3, r2, r3
	add	r3, r3, #3
	str	r3, [fp, #-196]
	ldr	r0, [fp, #-196]
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-192]
	ldr	r3, [fp, #-280]
	str	r3, [sp, #8]
	ldr	r3, [fp, #-276]
	str	r3, [sp, #4]
	ldr	r3, .L480+48
	str	r3, [sp]
	ldr	r3, [fp, #-248]
	ldr	r2, .L480+56
	ldr	r1, [fp, #-196]
	ldr	r0, [fp, #-192]
	bl	snprintf
	ldr	r2, [fp, #-240]
	ldr	r3, [fp, #-224]
	add	r3, r2, r3
	add	r3, r3, #3
	str	r3, [fp, #-188]
	ldr	r0, [fp, #-188]
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-184]
	ldr	r3, [fp, #-280]
	str	r3, [sp, #8]
	ldr	r3, [fp, #-276]
	str	r3, [sp, #4]
	ldr	r3, .L480+48
	str	r3, [sp]
	ldr	r3, [fp, #-252]
	ldr	r2, .L480+56
	ldr	r1, [fp, #-188]
	ldr	r0, [fp, #-184]
	bl	snprintf
	ldr	r3, [fp, #-228]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-240]
	add	r2, r2, r3
	ldr	r3, [fp, #-232]
	add	r3, r2, r3
	add	r3, r3, #1
	str	r3, [fp, #-180]
	ldr	r0, [fp, #-180]
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-176]
	ldr	r3, [fp, #-280]
	str	r3, [sp, #8]
	ldr	r3, [fp, #-276]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-276]
	str	r3, [sp]
	ldr	r3, [fp, #-252]
	ldr	r2, .L480+56
	ldr	r1, [fp, #-180]
	ldr	r0, [fp, #-176]
	bl	snprintf
	ldr	r3, [fp, #-180]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-212]
	add	r3, r2, r3
	add	r3, r3, #8
	str	r3, [fp, #-172]
	ldr	r0, [fp, #-172]
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-168]
	ldr	r3, [fp, #-176]
	str	r3, [sp, #16]
	ldr	r3, [fp, #-272]
	str	r3, [sp, #12]
	ldr	r3, [fp, #-176]
	str	r3, [sp, #8]
	ldr	r3, [fp, #-272]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-208]
	str	r3, [sp]
	ldr	r3, [fp, #-268]
	ldr	r2, .L480+60
	ldr	r1, [fp, #-172]
	ldr	r0, [fp, #-168]
	bl	snprintf
	ldr	r3, [fp, #-204]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-172]
	add	r2, r2, r3
	ldr	r3, [fp, #-220]
	add	r3, r2, r3
	add	r3, r3, #6
	str	r3, [fp, #-164]
	ldr	r0, [fp, #-164]
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-272]
	str	r3, [sp, #20]
	ldr	r3, [fp, #-272]
	str	r3, [sp, #16]
	ldr	r3, [fp, #-216]
	str	r3, [sp, #12]
	ldr	r3, [fp, #-168]
	str	r3, [sp, #8]
	ldr	r3, [fp, #-200]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-284]
	str	r3, [sp]
	ldr	r3, [fp, #-200]
	ldr	r2, .L480+64
	ldr	r1, [fp, #-164]
	ldr	r0, [fp, #-160]
	bl	snprintf
	ldr	r0, [fp, #-256]
	bl	strlen
	str	r0, [fp, #-156]
	ldr	r3, [fp, #-212]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-156]
	add	r3, r2, r3
	lsl	r3, r3, #1
	add	r3, r3, #25
	str	r3, [fp, #-152]
	ldr	r0, [fp, #-152]
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-148]
	ldr	r3, [fp, #-272]
	str	r3, [sp, #48]
	ldr	r3, .L480+68
	str	r3, [sp, #44]
	ldr	r3, [fp, #-256]
	str	r3, [sp, #40]
	ldr	r3, [fp, #-284]
	str	r3, [sp, #36]
	ldr	r3, [fp, #-208]
	str	r3, [sp, #32]
	ldr	r3, [fp, #-272]
	str	r3, [sp, #28]
	ldr	r3, [fp, #-208]
	str	r3, [sp, #24]
	ldr	r3, [fp, #-268]
	str	r3, [sp, #20]
	ldr	r3, [fp, #-208]
	str	r3, [sp, #16]
	ldr	r3, [fp, #-284]
	str	r3, [sp, #12]
	ldr	r3, .L480+72
	str	r3, [sp, #8]
	ldr	r3, [fp, #-256]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-284]
	str	r3, [sp]
	ldr	r3, [fp, #-208]
	ldr	r2, .L480+76
	ldr	r1, [fp, #-152]
	ldr	r0, [fp, #-148]
	bl	snprintf
	ldr	r2, [fp, #-212]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r2, r3, r2
	ldr	r3, [fp, #-156]
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #25
	str	r3, [fp, #-144]
	ldr	r0, [fp, #-144]
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-268]
	str	r3, [sp, #48]
	ldr	r3, [fp, #-256]
	str	r3, [sp, #44]
	ldr	r3, [fp, #-268]
	str	r3, [sp, #40]
	ldr	r3, [fp, #-208]
	str	r3, [sp, #36]
	ldr	r3, [fp, #-284]
	str	r3, [sp, #32]
	ldr	r3, [fp, #-268]
	str	r3, [sp, #28]
	ldr	r3, [fp, #-260]
	str	r3, [sp, #24]
	ldr	r3, [fp, #-208]
	str	r3, [sp, #20]
	ldr	r3, [fp, #-272]
	str	r3, [sp, #16]
	ldr	r3, [fp, #-208]
	str	r3, [sp, #12]
	ldr	r3, [fp, #-284]
	str	r3, [sp, #8]
	ldr	r3, .L480+80
	str	r3, [sp, #4]
	ldr	r3, [fp, #-256]
	str	r3, [sp]
	ldr	r3, [fp, #-284]
	ldr	r2, .L480+76
	ldr	r1, [fp, #-144]
	ldr	r0, [fp, #-140]
	bl	snprintf
	ldr	r3, [fp, #-212]
	lsl	r2, r3, #2
	ldr	r3, [fp, #-156]
	add	r3, r2, r3
	add	r3, r3, #28
	str	r3, [fp, #-136]
	ldr	r0, [fp, #-136]
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-208]
	str	r3, [sp, #44]
	ldr	r3, [fp, #-264]
	str	r3, [sp, #40]
	ldr	r3, [fp, #-208]
	str	r3, [sp, #36]
	ldr	r3, [fp, #-284]
	str	r3, [sp, #32]
	ldr	r3, .L480+84
	str	r3, [sp, #28]
	ldr	r3, [fp, #-256]
	str	r3, [sp, #24]
	ldr	r3, [fp, #-284]
	str	r3, [sp, #20]
	ldr	r3, [fp, #-208]
	str	r3, [sp, #16]
	ldr	r3, [fp, #-272]
	str	r3, [sp, #12]
	ldr	r3, [fp, #-208]
	str	r3, [sp, #8]
	ldr	r3, [fp, #-272]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-264]
	str	r3, [sp]
	ldr	r3, [fp, #-260]
	ldr	r2, .L480+88
	ldr	r1, [fp, #-136]
	ldr	r0, [fp, #-132]
	bl	snprintf
	ldr	r2, [fp, #-212]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r1, r3, r2
	ldr	r2, [fp, #-156]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r1, r3
	add	r3, r3, #32
	str	r3, [fp, #-128]
	ldr	r0, [fp, #-128]
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-208]
	str	r3, [sp, #72]
	ldr	r3, [fp, #-272]
	str	r3, [sp, #68]
	ldr	r3, .L480+92
	str	r3, [sp, #64]
	ldr	r3, [fp, #-256]
	str	r3, [sp, #60]
	ldr	r3, [fp, #-272]
	str	r3, [sp, #56]
	ldr	r3, [fp, #-208]
	str	r3, [sp, #52]
	ldr	r3, [fp, #-268]
	str	r3, [sp, #48]
	ldr	r3, [fp, #-208]
	str	r3, [sp, #44]
	ldr	r3, [fp, #-272]
	str	r3, [sp, #40]
	ldr	r3, [fp, #-208]
	str	r3, [sp, #36]
	ldr	r3, [fp, #-272]
	str	r3, [sp, #32]
	ldr	r3, .L480+96
	str	r3, [sp, #28]
	ldr	r3, [fp, #-256]
	str	r3, [sp, #24]
	ldr	r3, [fp, #-284]
	str	r3, [sp, #20]
	ldr	r3, .L480+100
	str	r3, [sp, #16]
	ldr	r3, [fp, #-256]
	str	r3, [sp, #12]
	ldr	r3, [fp, #-272]
	str	r3, [sp, #8]
	ldr	r3, [fp, #-208]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-284]
	str	r3, [sp]
	ldr	r3, [fp, #-268]
	ldr	r2, .L480+104
	ldr	r1, [fp, #-128]
	ldr	r0, [fp, #-124]
	bl	snprintf
	ldr	r3, [fp, #-212]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-156]
	add	r3, r2, r3
	lsl	r3, r3, #1
	add	r3, r3, #31
	str	r3, [fp, #-120]
	ldr	r0, [fp, #-120]
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-116]
	ldr	r3, [fp, #-284]
	str	r3, [sp, #56]
	ldr	r3, [fp, #-264]
	str	r3, [sp, #52]
	ldr	r3, [fp, #-208]
	str	r3, [sp, #48]
	ldr	r3, [fp, #-272]
	str	r3, [sp, #44]
	ldr	r3, .L480+108
	str	r3, [sp, #40]
	ldr	r3, [fp, #-256]
	str	r3, [sp, #36]
	ldr	r3, [fp, #-284]
	str	r3, [sp, #32]
	ldr	r3, [fp, #-208]
	str	r3, [sp, #28]
	ldr	r3, [fp, #-272]
	str	r3, [sp, #24]
	ldr	r3, [fp, #-208]
	str	r3, [sp, #20]
	ldr	r3, [fp, #-268]
	str	r3, [sp, #16]
	ldr	r3, [fp, #-208]
	str	r3, [sp, #12]
	ldr	r3, [fp, #-284]
	str	r3, [sp, #8]
	ldr	r3, .L480+112
	str	r3, [sp, #4]
	ldr	r3, [fp, #-256]
	str	r3, [sp]
	ldr	r3, [fp, #-284]
	ldr	r2, .L480+116
	ldr	r1, [fp, #-120]
	ldr	r0, [fp, #-116]
	bl	snprintf
	ldr	r3, [fp, #-212]
	lsl	r1, r3, #2
	ldr	r2, [fp, #-156]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r1, r3
	add	r3, r3, #28
	str	r3, [fp, #-112]
	ldr	r0, [fp, #-112]
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-208]
	str	r3, [sp, #60]
	ldr	r3, [fp, #-272]
	str	r3, [sp, #56]
	ldr	r3, .L480+120
	str	r3, [sp, #52]
	ldr	r3, [fp, #-256]
	str	r3, [sp, #48]
	ldr	r3, [fp, #-272]
	str	r3, [sp, #44]
	ldr	r3, [fp, #-208]
	str	r3, [sp, #40]
	ldr	r3, [fp, #-268]
	str	r3, [sp, #36]
	ldr	r3, [fp, #-208]
	str	r3, [sp, #32]
	ldr	r3, [fp, #-272]
	str	r3, [sp, #28]
	ldr	r3, [fp, #-208]
	str	r3, [sp, #24]
	ldr	r3, [fp, #-272]
	str	r3, [sp, #20]
	ldr	r3, .L480+100
	str	r3, [sp, #16]
	ldr	r3, [fp, #-256]
	str	r3, [sp, #12]
	ldr	r3, [fp, #-284]
	str	r3, [sp, #8]
	ldr	r3, .L480+124
	str	r3, [sp, #4]
	ldr	r3, [fp, #-256]
	str	r3, [sp]
	ldr	r3, [fp, #-284]
	ldr	r2, .L480+128
	ldr	r1, [fp, #-112]
	ldr	r0, [fp, #-108]
	bl	snprintf
	ldr	r3, [fp, #-204]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-172]
	add	r3, r2, r3
	add	r3, r3, #8
	str	r3, [fp, #-104]
	ldr	r0, [fp, #-104]
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-284]
	str	r3, [sp, #16]
	ldr	r3, [fp, #-264]
	str	r3, [sp, #12]
	ldr	r3, [fp, #-168]
	str	r3, [sp, #8]
	ldr	r3, [fp, #-200]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-284]
	str	r3, [sp]
	ldr	r3, [fp, #-200]
	ldr	r2, .L480+60
	ldr	r1, [fp, #-104]
	ldr	r0, [fp, #-100]
	bl	snprintf
	ldr	r2, [fp, #-204]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r2, r3, r2
	ldr	r3, [fp, #-212]
	add	r3, r2, r3
	add	r3, r3, #7
	str	r3, [fp, #-96]
	ldr	r0, [fp, #-96]
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-200]
	str	r3, [sp, #20]
	ldr	r3, [fp, #-284]
	str	r3, [sp, #16]
	ldr	r3, [fp, #-200]
	str	r3, [sp, #12]
	ldr	r3, [fp, #-268]
	str	r3, [sp, #8]
	ldr	r3, [fp, #-208]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-272]
	str	r3, [sp]
	ldr	r3, [fp, #-200]
	ldr	r2, .L480+64
	ldr	r1, [fp, #-96]
	ldr	r0, [fp, #-92]
	bl	snprintf
	mov	r3, #3
	add	r1, r3, #23
	ldr	r3, .L480+132
	ldr	r2, [r3]
	ldr	r3, [fp, #-216]
	str	r3, [sp, #24]
	ldr	r3, [fp, #-184]
	str	r3, [sp, #20]
	ldr	r3, [fp, #-244]
	str	r3, [sp, #16]
	ldr	r3, [fp, #-244]
	str	r3, [sp, #12]
	ldr	r3, [fp, #-284]
	str	r3, [sp, #8]
	ldr	r3, [fp, #-184]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-272]
	str	r3, [sp]
	ldr	r3, [fp, #-252]
	ldr	r0, .L480+136
	bl	printf
	mov	r3, #3
	add	r1, r3, #30
	ldr	r3, .L480+132
	ldr	r2, [r3]
	ldr	r3, [fp, #-208]
	str	r3, [sp, #28]
	ldr	r3, [fp, #-244]
	str	r3, [sp, #24]
	ldr	r3, [fp, #-244]
	str	r3, [sp, #20]
	ldr	r3, [fp, #-264]
	str	r3, [sp, #16]
	ldr	r3, [fp, #-272]
	str	r3, [sp, #12]
	ldr	r3, [fp, #-272]
	str	r3, [sp, #8]
	ldr	r3, [fp, #-208]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-272]
	str	r3, [sp]
	ldr	r3, [fp, #-260]
	ldr	r0, .L480+140
	bl	printf
	mov	r3, #3
	add	r1, r3, #25
	ldr	r3, .L480+132
	ldr	r2, [r3]
	ldr	r3, [fp, #-200]
	str	r3, [sp, #36]
	ldr	r3, [fp, #-284]
	str	r3, [sp, #32]
	ldr	r3, [fp, #-200]
	str	r3, [sp, #28]
	ldr	r3, [fp, #-268]
	str	r3, [sp, #24]
	ldr	r3, [fp, #-208]
	str	r3, [sp, #20]
	ldr	r3, [fp, #-272]
	str	r3, [sp, #16]
	ldr	r3, [fp, #-200]
	str	r3, [sp, #12]
	ldr	r3, [fp, #-268]
	str	r3, [sp, #8]
	ldr	r3, [fp, #-260]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-200]
	str	r3, [sp]
	ldr	r3, [fp, #-160]
	ldr	r0, .L480+144
	bl	printf
	mov	r3, #3
	add	r0, r3, #26
	ldr	r3, .L480+132
	ldr	ip, [r3]
	mov	r3, #3
	add	r3, r3, #28
	ldr	r2, .L480+132
	ldr	r2, [r2]
	ldr	r1, [fp, #-108]
	str	r1, [sp, #32]
	ldr	r1, [fp, #-208]
	str	r1, [sp, #28]
	ldr	r1, [fp, #-116]
	str	r1, [sp, #24]
	ldr	r1, [fp, #-208]
	str	r1, [sp, #20]
	str	r2, [sp, #16]
	str	r3, [sp, #12]
	ldr	r3, [fp, #-124]
	str	r3, [sp, #8]
	ldr	r3, [fp, #-216]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-208]
	str	r3, [sp]
	ldr	r3, [fp, #-148]
	mov	r2, ip
	mov	r1, r0
	ldr	r0, .L480+148
	bl	printf
	mov	r3, #3
	add	r1, r3, #24
	ldr	r3, .L480+132
	ldr	r2, [r3]
	ldr	r3, [fp, #-216]
	str	r3, [sp, #40]
	ldr	r3, [fp, #-208]
	str	r3, [sp, #36]
	ldr	r3, [fp, #-264]
	str	r3, [sp, #32]
	ldr	r3, [fp, #-244]
	str	r3, [sp, #28]
	ldr	r3, [fp, #-192]
	str	r3, [sp, #24]
	ldr	r3, [fp, #-268]
	str	r3, [sp, #20]
	ldr	r3, [fp, #-272]
	str	r3, [sp, #16]
	ldr	r3, [fp, #-268]
	str	r3, [sp, #12]
	ldr	r3, [fp, #-260]
	str	r3, [sp, #8]
	ldr	r3, [fp, #-208]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-260]
	str	r3, [sp]
	ldr	r3, [fp, #-272]
	ldr	r0, .L480+152
	bl	printf
	mov	r3, #3
	add	r0, r3, #22
	ldr	r3, .L480+132
	ldr	ip, [r3]
	mov	r3, #3
	add	r3, r3, #29
	ldr	r2, .L480+132
	ldr	r2, [r2]
	ldr	r1, [fp, #-92]
	str	r1, [sp, #40]
	ldr	r1, [fp, #-268]
	str	r1, [sp, #36]
	ldr	r1, [fp, #-260]
	str	r1, [sp, #32]
	ldr	r1, [fp, #-200]
	str	r1, [sp, #28]
	ldr	r1, [fp, #-100]
	str	r1, [sp, #24]
	str	r2, [sp, #20]
	str	r3, [sp, #16]
	ldr	r3, [fp, #-192]
	str	r3, [sp, #12]
	ldr	r3, [fp, #-244]
	str	r3, [sp, #8]
	ldr	r3, [fp, #-244]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-244]
	str	r3, [sp]
	ldr	r3, [fp, #-268]
	mov	r2, ip
	mov	r1, r0
	ldr	r0, .L480+156
	bl	printf
	mov	r3, #3
	add	r0, r3, #27
	ldr	r3, .L480+132
	ldr	ip, [r3]
	mov	r3, #3
	add	r3, r3, #31
	ldr	r2, .L480+132
	ldr	r2, [r2]
	ldr	r1, [fp, #-184]
	str	r1, [sp, #48]
	ldr	r1, [fp, #-244]
	str	r1, [sp, #44]
	ldr	r1, [fp, #-244]
	str	r1, [sp, #40]
	ldr	r1, [fp, #-184]
	str	r1, [sp, #36]
	ldr	r1, [fp, #-272]
	str	r1, [sp, #32]
	ldr	r1, [fp, #-260]
	str	r1, [sp, #28]
	str	r2, [sp, #24]
	str	r3, [sp, #20]
	ldr	r3, [fp, #-132]
	str	r3, [sp, #16]
	ldr	r3, [fp, #-208]
	str	r3, [sp, #12]
	ldr	r3, [fp, #-140]
	str	r3, [sp, #8]
	ldr	r3, [fp, #-208]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-264]
	str	r3, [sp]
	ldr	r3, [fp, #-208]
	mov	r2, ip
	mov	r1, r0
	ldr	r0, .L480+160
	bl	printf
	mov	r3, #0
	str	r3, [fp, #-80]
	sub	r3, fp, #80
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-168]
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-208]
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-200]
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-184]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-176]
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-216]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-192]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-160]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-148]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-140]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-132]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-124]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-116]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-108]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-100]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-92]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-88]
	str	r3, [fp, #-12]
	sub	r3, fp, #76
	str	r3, [fp, #-84]
	mov	r3, #0
	str	r3, [fp, #-288]
	b	.L477
.L478:
	ldr	r3, [fp, #-288]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-84]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-288]
	add	r3, r3, #1
	str	r3, [fp, #-288]
.L477:
	ldr	r3, [fp, #-288]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-84]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-88]
	cmp	r2, r3
	bne	.L478
	nop
	ldr	r3, .L480
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L479
	bl	__stack_chk_fail
.L479:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L481:
	.align	2
.L480:
	.word	.LC98
	.word	.LC60
	.word	.LC61
	.word	.LC62
	.word	.LC63
	.word	.LC64
	.word	.LC65
	.word	.LC66
	.word	.LC67
	.word	.LC68
	.word	.LC69
	.word	.LC70
	.word	.LC0
	.word	.LC71
	.word	.LC72
	.word	.LC73
	.word	.LC74
	.word	.LC76
	.word	.LC77
	.word	.LC75
	.word	.LC78
	.word	.LC80
	.word	.LC79
	.word	.LC82
	.word	.LC83
	.word	.LC84
	.word	.LC81
	.word	.LC86
	.word	.LC87
	.word	.LC85
	.word	.LC89
	.word	.LC90
	.word	.LC88
	.word	dist
	.word	.LC91
	.word	.LC92
	.word	.LC93
	.word	.LC94
	.word	.LC95
	.word	.LC96
	.word	.LC97
	.size	board_matrix, .-board_matrix
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
