	.file	"1306.c"
	.intel_syntax noprefix
	.text
	.globl	create_organism
	.type	create_organism, @function
create_organism:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 56
	.cfi_offset 3, -24
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	edi, 512
	call	malloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR [rax], rdx
	mov	DWORD PTR -36[rbp], 0
	jmp	.L2
.L3:
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -36[rbp]
	sal	rax, 2
	lea	rbx, [rdx+rax]
	mov	edi, 2
	call	random_unsigned_int
	mov	DWORD PTR [rbx], eax
	add	DWORD PTR -36[rbp], 1
.L2:
	cmp	DWORD PTR -36[rbp], 127
	jbe	.L3
	lea	rdx, -32[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	find_empty_position
	mov	eax, DWORD PTR -32[rbp]
	mov	ecx, DWORD PTR -28[rbp]
	mov	rdx, QWORD PTR -56[rbp]
	mov	esi, ecx
	mov	ecx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	lea	rcx, 0[0+rax*4]
	add	rax, rcx
	lea	rcx, [rax+rsi]
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR [rdx+rcx*8], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 8[rax], rdx
	call	rand@PLT
	mov	edx, eax
	movsx	rax, edx
	imul	rax, rax, 715827883
	shr	rax, 32
	mov	esi, edx
	sar	esi, 31
	mov	ecx, eax
	sub	ecx, esi
	mov	eax, ecx
	add	eax, eax
	add	eax, ecx
	add	eax, eax
	sub	edx, eax
	mov	ecx, edx
	mov	eax, ecx
	add	eax, 42
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	BYTE PTR 16[rax], dl
	nop
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L4
	call	__stack_chk_fail@PLT
.L4:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	create_organism, .-create_organism
	.globl	create_world
	.type	create_world, @function
create_world:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -8[rbp], 0
	jmp	.L6
.L9:
	mov	DWORD PTR -4[rbp], 0
	jmp	.L7
.L8:
	mov	rdx, QWORD PTR -24[rbp]
	mov	esi, DWORD PTR -4[rbp]
	mov	ecx, DWORD PTR -8[rbp]
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	lea	rcx, 0[0+rax*4]
	add	rax, rcx
	add	rax, rsi
	mov	QWORD PTR [rdx+rax*8], 0
	add	DWORD PTR -4[rbp], 1
.L7:
	cmp	DWORD PTR -4[rbp], 24
	jbe	.L8
	add	DWORD PTR -8[rbp], 1
.L6:
	cmp	DWORD PTR -8[rbp], 79
	jbe	.L9
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	create_world, .-create_world
	.globl	destroy_organism
	.type	destroy_organism, @function
destroy_organism:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -16[rbp]
	mov	ecx, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR 12[rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	esi, eax
	mov	ecx, ecx
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	lea	rcx, 0[0+rax*4]
	add	rax, rcx
	add	rax, rsi
	mov	QWORD PTR [rdx+rax*8], 0
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	free@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	destroy_organism, .-destroy_organism
	.globl	display_color
	.type	display_color, @function
display_color:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	gene_start_address
	mov	DWORD PTR -24[rbp], eax
	lea	rdx, -20[rbp]
	mov	ecx, DWORD PTR -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	parse_display_gene
	mov	edx, DWORD PTR -20[rbp]
	mov	eax, DWORD PTR -12[rbp]
	cmp	edx, eax
	jbe	.L12
	mov	edx, DWORD PTR -20[rbp]
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	jbe	.L12
	mov	BYTE PTR -25[rbp], 114
	jmp	.L13
.L12:
	mov	edx, DWORD PTR -16[rbp]
	mov	eax, DWORD PTR -20[rbp]
	cmp	edx, eax
	jbe	.L14
	mov	edx, DWORD PTR -16[rbp]
	mov	eax, DWORD PTR -12[rbp]
	cmp	edx, eax
	jbe	.L14
	mov	BYTE PTR -25[rbp], 103
	jmp	.L13
.L14:
	mov	edx, DWORD PTR -12[rbp]
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	jbe	.L15
	mov	edx, DWORD PTR -12[rbp]
	mov	eax, DWORD PTR -20[rbp]
	cmp	edx, eax
	jbe	.L15
	mov	BYTE PTR -25[rbp], 98
	jmp	.L13
.L15:
	mov	BYTE PTR -25[rbp], 119
.L13:
	movzx	eax, BYTE PTR -25[rbp]
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L17
	call	__stack_chk_fail@PLT
.L17:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	display_color, .-display_color
	.globl	find_empty_position
	.type	find_empty_position, @function
find_empty_position:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
.L19:
	mov	edi, 80
	call	random_unsigned_int
	mov	DWORD PTR -8[rbp], eax
	mov	edi, 25
	call	random_unsigned_int
	mov	DWORD PTR -4[rbp], eax
	mov	rdx, QWORD PTR -24[rbp]
	mov	esi, DWORD PTR -4[rbp]
	mov	ecx, DWORD PTR -8[rbp]
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	lea	rcx, 0[0+rax*4]
	add	rax, rcx
	add	rax, rsi
	mov	rax, QWORD PTR [rdx+rax*8]
	test	rax, rax
	jne	.L19
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR -8[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR -4[rbp]
	mov	DWORD PTR 4[rax], edx
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	find_empty_position, .-find_empty_position
	.globl	gene_at_virtual_index
	.type	gene_at_virtual_index, @function
gene_at_virtual_index:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	eax, DWORD PTR -28[rbp]
	mov	esi, 128
	mov	edi, eax
	call	wrapped_index
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -4[rbp]
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	gene_at_virtual_index, .-gene_at_virtual_index
	.globl	gene_start_address
	.type	gene_start_address, @function
gene_start_address:
.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, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	DWORD PTR -12[rbp], 0
	mov	DWORD PTR -8[rbp], 1
	mov	edx, DWORD PTR -28[rbp]
	mov	eax, edx
	sal	eax, 3
	sub	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	ecx, DWORD PTR -4[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 7
	mov	esi, ecx
	mov	rdi, rax
	call	unsigned_int_from_genome
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	gene_start_address, .-gene_start_address
	.globl	meet_organism
	.type	meet_organism, @function
meet_organism:
.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, 80
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	QWORD PTR -72[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	gene_start_address
	mov	DWORD PTR -36[rbp], eax
	lea	rdx, -24[rbp]
	mov	ecx, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	parse_meet_gene
	mov	DWORD PTR -32[rbp], 0
	jmp	.L25
.L26:
	mov	eax, DWORD PTR -32[rbp]
	mov	esi, 128
	mov	edi, eax
	call	wrapped_index
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -28[rbp]
	sal	rax, 2
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -28[rbp]
	sal	rax, 2
	add	rdx, rax
	mov	eax, DWORD PTR [rcx]
	mov	DWORD PTR [rdx], eax
	add	DWORD PTR -32[rbp], 1
.L25:
	mov	eax, DWORD PTR -20[rbp]
	cmp	DWORD PTR -32[rbp], eax
	jb	.L26
	mov	rax, QWORD PTR -72[rbp]
	mov	ecx, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR 12[rax]
	mov	rdx, QWORD PTR -56[rbp]
	mov	esi, eax
	mov	ecx, ecx
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	lea	rcx, 0[0+rax*4]
	add	rax, rcx
	lea	rcx, [rax+rsi]
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR [rdx+rcx*8], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	ecx, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 12[rax]
	mov	rdx, QWORD PTR -56[rbp]
	mov	esi, eax
	mov	ecx, ecx
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	lea	rcx, 0[0+rax*4]
	add	rax, rcx
	lea	rcx, [rax+rsi]
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR [rdx+rcx*8], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR -16[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 12[rax]
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR 8[rax], edx
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, DWORD PTR 12[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR 12[rax], edx
	mov	edx, DWORD PTR -16[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 8[rax], edx
	mov	edx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 12[rax], edx
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L27
	call	__stack_chk_fail@PLT
.L27:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	meet_organism, .-meet_organism
	.globl	move_organism
	.type	move_organism, @function
move_organism:
.LFB14:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 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	rax, QWORD PTR -64[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	gene_start_address
	mov	DWORD PTR -40[rbp], eax
	lea	rdx, -16[rbp]
	mov	ecx, DWORD PTR -40[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	parse_move_gene
	mov	rax, QWORD PTR -64[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	gene_start_address
	mov	DWORD PTR -36[rbp], eax
	lea	rdx, -44[rbp]
	mov	ecx, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	parse_personality_gene
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 12[rax]
	mov	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -32[rbp]
	add	eax, edx
	mov	esi, 80
	mov	edi, eax
	call	wrapped_index
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	mov	esi, 25
	mov	edi, eax
	call	wrapped_index
	mov	DWORD PTR -20[rbp], eax
	mov	rdx, QWORD PTR -56[rbp]
	mov	esi, DWORD PTR -20[rbp]
	mov	ecx, DWORD PTR -24[rbp]
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	lea	rcx, 0[0+rax*4]
	add	rax, rcx
	add	rax, rsi
	mov	rax, QWORD PTR [rdx+rax*8]
	test	rax, rax
	jne	.L29
	mov	rdx, QWORD PTR -56[rbp]
	mov	esi, DWORD PTR -20[rbp]
	mov	ecx, DWORD PTR -24[rbp]
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	lea	rcx, 0[0+rax*4]
	add	rax, rcx
	lea	rcx, [rax+rsi]
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR [rdx+rcx*8], rax
	mov	rdx, QWORD PTR -56[rbp]
	mov	esi, DWORD PTR -28[rbp]
	mov	ecx, DWORD PTR -32[rbp]
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	lea	rcx, 0[0+rax*4]
	add	rax, rcx
	add	rax, rsi
	mov	QWORD PTR [rdx+rax*8], 0
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR -24[rbp]
	mov	DWORD PTR 8[rax], edx
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR -20[rbp]
	mov	DWORD PTR 12[rax], edx
	jmp	.L33
.L29:
	mov	eax, DWORD PTR -44[rbp]
	test	eax, eax
	je	.L31
	mov	rdx, QWORD PTR -56[rbp]
	mov	esi, DWORD PTR -20[rbp]
	mov	ecx, DWORD PTR -24[rbp]
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	lea	rcx, 0[0+rax*4]
	add	rax, rcx
	add	rax, rsi
	mov	rdx, QWORD PTR [rdx+rax*8]
	mov	rcx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	meet_organism
	jmp	.L33
.L31:
	mov	eax, DWORD PTR -16[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, edx
	mov	esi, 80
	mov	edi, eax
	call	wrapped_index
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	sub	eax, edx
	mov	esi, 25
	mov	edi, eax
	call	wrapped_index
	mov	DWORD PTR -20[rbp], eax
	mov	rdx, QWORD PTR -56[rbp]
	mov	esi, DWORD PTR -20[rbp]
	mov	ecx, DWORD PTR -24[rbp]
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	lea	rcx, 0[0+rax*4]
	add	rax, rcx
	add	rax, rsi
	mov	rax, QWORD PTR [rdx+rax*8]
	test	rax, rax
	jne	.L33
	mov	rdx, QWORD PTR -56[rbp]
	mov	esi, DWORD PTR -20[rbp]
	mov	ecx, DWORD PTR -24[rbp]
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	lea	rcx, 0[0+rax*4]
	add	rax, rcx
	lea	rcx, [rax+rsi]
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR [rdx+rcx*8], rax
	mov	rdx, QWORD PTR -56[rbp]
	mov	esi, DWORD PTR -28[rbp]
	mov	ecx, DWORD PTR -32[rbp]
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	lea	rcx, 0[0+rax*4]
	add	rax, rcx
	add	rax, rsi
	mov	QWORD PTR [rdx+rax*8], 0
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR -24[rbp]
	mov	DWORD PTR 8[rax], edx
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR -20[rbp]
	mov	DWORD PTR 12[rax], edx
.L33:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L32
	call	__stack_chk_fail@PLT
.L32:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	move_organism, .-move_organism
	.globl	parse_display_gene
	.type	parse_display_gene, @function
parse_display_gene:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -8[rbp], rdi
	mov	DWORD PTR -12[rbp], esi
	mov	QWORD PTR -24[rbp], rdx
	mov	ecx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, 8
	mov	esi, ecx
	mov	rdi, rax
	call	unsigned_int_from_genome
	mov	rdx, QWORD PTR -24[rbp]
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -12[rbp]
	lea	ecx, 8[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, 8
	mov	esi, ecx
	mov	rdi, rax
	call	unsigned_int_from_genome
	mov	rdx, QWORD PTR -24[rbp]
	mov	DWORD PTR 4[rdx], eax
	mov	eax, DWORD PTR -12[rbp]
	lea	ecx, 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, 8
	mov	esi, ecx
	mov	rdi, rax
	call	unsigned_int_from_genome
	mov	rdx, QWORD PTR -24[rbp]
	mov	DWORD PTR 8[rdx], eax
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	parse_display_gene, .-parse_display_gene
	.globl	parse_meet_gene
	.type	parse_meet_gene, @function
parse_meet_gene:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -8[rbp], rdi
	mov	DWORD PTR -12[rbp], esi
	mov	QWORD PTR -24[rbp], rdx
	mov	ecx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, 8
	mov	esi, ecx
	mov	rdi, rax
	call	unsigned_int_from_genome
	mov	rdx, QWORD PTR -24[rbp]
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -12[rbp]
	lea	ecx, 8[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, 8
	mov	esi, ecx
	mov	rdi, rax
	call	unsigned_int_from_genome
	mov	rdx, QWORD PTR -24[rbp]
	mov	DWORD PTR 4[rdx], eax
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	parse_meet_gene, .-parse_meet_gene
	.globl	parse_move_gene
	.type	parse_move_gene, @function
parse_move_gene:
.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, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	QWORD PTR -40[rbp], rdx
	mov	ecx, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 1
	mov	esi, ecx
	mov	rdi, rax
	call	unsigned_int_from_genome
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	lea	ecx, 1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 1
	mov	esi, ecx
	mov	rdi, rax
	call	unsigned_int_from_genome
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	lea	ecx, 2[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 1
	mov	esi, ecx
	mov	rdi, rax
	call	unsigned_int_from_genome
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	lea	ecx, 3[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 1
	mov	esi, ecx
	mov	rdi, rax
	call	unsigned_int_from_genome
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -8[rbp], 0
	je	.L37
	neg	DWORD PTR -16[rbp]
.L37:
	cmp	DWORD PTR -4[rbp], 0
	je	.L38
	neg	DWORD PTR -12[rbp]
.L38:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -16[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	DWORD PTR 4[rax], edx
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	parse_move_gene, .-parse_move_gene
	.globl	parse_personality_gene
	.type	parse_personality_gene, @function
parse_personality_gene:
.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, 32
	mov	QWORD PTR -8[rbp], rdi
	mov	DWORD PTR -12[rbp], esi
	mov	QWORD PTR -24[rbp], rdx
	mov	ecx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, 1
	mov	esi, ecx
	mov	rdi, rax
	call	unsigned_int_from_genome
	mov	rdx, QWORD PTR -24[rbp]
	mov	DWORD PTR [rdx], eax
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	parse_personality_gene, .-parse_personality_gene
	.globl	random_unsigned_int
	.type	random_unsigned_int, @function
random_unsigned_int:
.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	DWORD PTR -4[rbp], edi
	call	random@PLT
	mov	ecx, DWORD PTR -4[rbp]
	cqo
	idiv	rcx
	mov	rax, rdx
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	random_unsigned_int, .-random_unsigned_int
	.globl	unsigned_int_from_genome
	.type	unsigned_int_from_genome, @function
unsigned_int_from_genome:
.LFB20:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	DWORD PTR -32[rbp], edx
	mov	DWORD PTR -12[rbp], 1
	mov	DWORD PTR -8[rbp], 0
	mov	edx, DWORD PTR -28[rbp]
	mov	eax, DWORD PTR -32[rbp]
	add	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR -16[rbp], eax
	jmp	.L43
.L44:
	mov	edx, DWORD PTR -16[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	gene_at_virtual_index
	imul	eax, DWORD PTR -12[rbp]
	add	DWORD PTR -8[rbp], eax
	sal	DWORD PTR -12[rbp]
	add	DWORD PTR -16[rbp], 1
.L43:
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, DWORD PTR -4[rbp]
	jb	.L44
	mov	eax, DWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	unsigned_int_from_genome, .-unsigned_int_from_genome
	.globl	wrapped_index
	.type	wrapped_index, @function
wrapped_index:
.LFB21:
	.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 -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	eax, DWORD PTR -24[rbp]
	cmp	DWORD PTR -20[rbp], eax
	jl	.L47
	mov	eax, DWORD PTR -20[rbp]
	sub	eax, DWORD PTR -24[rbp]
	mov	DWORD PTR -4[rbp], eax
	jmp	.L48
.L47:
	cmp	DWORD PTR -20[rbp], 0
	jns	.L49
	mov	edx, DWORD PTR -20[rbp]
	mov	eax, DWORD PTR -24[rbp]
	add	eax, edx
	mov	DWORD PTR -4[rbp], eax
	jmp	.L48
.L49:
	mov	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR -4[rbp], eax
.L48:
	mov	eax, DWORD PTR -4[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	wrapped_index, .-wrapped_index
	.globl	main
	.type	main, @function
main:
.LFB22:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	r11, -61440[rsp]
.LPSRL0:
	sub	rsp, 4096
	or	DWORD PTR [rsp], 0
	cmp	rsp, r11
	jne	.LPSRL0
	sub	rsp, 2624
	mov	DWORD PTR -64052[rbp], edi
	mov	QWORD PTR -64064[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	edi, 185379
	call	srandom@PLT
	call	initscr@PLT
	call	start_color@PLT
	mov	edx, 0
	mov	esi, 1
	mov	edi, 1
	call	init_pair@PLT
	mov	edx, 0
	mov	esi, 2
	mov	edi, 2
	call	init_pair@PLT
	mov	edx, 0
	mov	esi, 4
	mov	edi, 3
	call	init_pair@PLT
	mov	edx, 0
	mov	esi, 7
	mov	edi, 4
	call	init_pair@PLT
	mov	edx, 0
	mov	esi, 0
	mov	edi, 5
	call	init_pair@PLT
	lea	rax, -64016[rbp]
	mov	rdi, rax
	call	create_world
	mov	DWORD PTR -64028[rbp], 0
	jmp	.L52
.L53:
	lea	rcx, -48016[rbp]
	mov	edx, DWORD PTR -64028[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	lea	rdx, [rcx+rax]
	lea	rax, -64016[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	create_organism
	add	DWORD PTR -64028[rbp], 1
.L52:
	cmp	DWORD PTR -64028[rbp], 1999
	jbe	.L53
	mov	DWORD PTR -64032[rbp], 0
	jmp	.L54
.L79:
	mov	DWORD PTR -64028[rbp], 0
	jmp	.L55
.L56:
	lea	rcx, -48016[rbp]
	mov	edx, DWORD PTR -64028[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	lea	rdx, [rcx+rax]
	lea	rax, -64016[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	move_organism
	add	DWORD PTR -64028[rbp], 1
.L55:
	cmp	DWORD PTR -64028[rbp], 1999
	jbe	.L56
	mov	DWORD PTR -64024[rbp], 0
	jmp	.L57
.L78:
	mov	DWORD PTR -64020[rbp], 0
	jmp	.L58
.L77:
	mov	ecx, DWORD PTR -64020[rbp]
	mov	edx, DWORD PTR -64024[rbp]
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	lea	rdx, 0[0+rax*4]
	add	rax, rdx
	add	rax, rcx
	mov	rax, QWORD PTR -64016[rbp+rax*8]
	test	rax, rax
	jne	.L59
	mov	BYTE PTR -64033[rbp], 120
	mov	BYTE PTR -64034[rbp], 32
	jmp	.L60
.L59:
	mov	ecx, DWORD PTR -64020[rbp]
	mov	edx, DWORD PTR -64024[rbp]
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	lea	rdx, 0[0+rax*4]
	add	rax, rdx
	add	rax, rcx
	mov	rax, QWORD PTR -64016[rbp+rax*8]
	mov	rdi, rax
	call	display_color
	mov	BYTE PTR -64033[rbp], al
	mov	ecx, DWORD PTR -64020[rbp]
	mov	edx, DWORD PTR -64024[rbp]
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	lea	rdx, 0[0+rax*4]
	add	rax, rdx
	add	rax, rcx
	mov	rax, QWORD PTR -64016[rbp+rax*8]
	movzx	eax, BYTE PTR 16[rax]
	mov	BYTE PTR -64034[rbp], al
.L60:
	movsx	eax, BYTE PTR -64033[rbp]
	cmp	eax, 119
	je	.L61
	cmp	eax, 119
	jg	.L62
	cmp	eax, 114
	je	.L63
	cmp	eax, 114
	jg	.L62
	cmp	eax, 98
	je	.L64
	cmp	eax, 103
	je	.L65
	jmp	.L62
.L63:
	mov	edx, DWORD PTR -64024[rbp]
	mov	ecx, DWORD PTR -64020[rbp]
	mov	rax, QWORD PTR stdscr[rip]
	mov	esi, ecx
	mov	rdi, rax
	call	wmove@PLT
	cmp	eax, -1
	je	.L84
	movsx	eax, BYTE PTR -64034[rbp]
	or	ah, 1
	mov	edx, eax
	mov	rax, QWORD PTR stdscr[rip]
	mov	esi, edx
	mov	rdi, rax
	call	waddch@PLT
	jmp	.L84
.L65:
	mov	edx, DWORD PTR -64024[rbp]
	mov	ecx, DWORD PTR -64020[rbp]
	mov	rax, QWORD PTR stdscr[rip]
	mov	esi, ecx
	mov	rdi, rax
	call	wmove@PLT
	cmp	eax, -1
	je	.L85
	movsx	eax, BYTE PTR -64034[rbp]
	or	ah, 2
	mov	edx, eax
	mov	rax, QWORD PTR stdscr[rip]
	mov	esi, edx
	mov	rdi, rax
	call	waddch@PLT
	jmp	.L85
.L64:
	mov	edx, DWORD PTR -64024[rbp]
	mov	ecx, DWORD PTR -64020[rbp]
	mov	rax, QWORD PTR stdscr[rip]
	mov	esi, ecx
	mov	rdi, rax
	call	wmove@PLT
	cmp	eax, -1
	je	.L86
	movsx	eax, BYTE PTR -64034[rbp]
	or	ah, 3
	mov	edx, eax
	mov	rax, QWORD PTR stdscr[rip]
	mov	esi, edx
	mov	rdi, rax
	call	waddch@PLT
	jmp	.L86
.L61:
	mov	edx, DWORD PTR -64024[rbp]
	mov	ecx, DWORD PTR -64020[rbp]
	mov	rax, QWORD PTR stdscr[rip]
	mov	esi, ecx
	mov	rdi, rax
	call	wmove@PLT
	cmp	eax, -1
	je	.L87
	movsx	eax, BYTE PTR -64034[rbp]
	or	ah, 4
	mov	edx, eax
	mov	rax, QWORD PTR stdscr[rip]
	mov	esi, edx
	mov	rdi, rax
	call	waddch@PLT
	jmp	.L87
.L62:
	mov	edx, DWORD PTR -64024[rbp]
	mov	ecx, DWORD PTR -64020[rbp]
	mov	rax, QWORD PTR stdscr[rip]
	mov	esi, ecx
	mov	rdi, rax
	call	wmove@PLT
	cmp	eax, -1
	je	.L88
	movsx	eax, BYTE PTR -64034[rbp]
	or	ah, 5
	mov	edx, eax
	mov	rax, QWORD PTR stdscr[rip]
	mov	esi, edx
	mov	rdi, rax
	call	waddch@PLT
	jmp	.L88
.L84:
	nop
	jmp	.L68
.L85:
	nop
	jmp	.L68
.L86:
	nop
	jmp	.L68
.L87:
	nop
	jmp	.L68
.L88:
	nop
.L68:
	add	DWORD PTR -64020[rbp], 1
.L58:
	cmp	DWORD PTR -64020[rbp], 24
	jbe	.L77
	add	DWORD PTR -64024[rbp], 1
.L57:
	cmp	DWORD PTR -64024[rbp], 79
	jbe	.L78
	mov	rax, QWORD PTR stdscr[rip]
	mov	rdi, rax
	call	wrefresh@PLT
	mov	edi, 100000
	call	usleep@PLT
	add	DWORD PTR -64032[rbp], 1
.L54:
	cmp	DWORD PTR -64032[rbp], 127999999
	jbe	.L79
	mov	DWORD PTR -64028[rbp], 0
	jmp	.L80
.L81:
	lea	rcx, -48016[rbp]
	mov	edx, DWORD PTR -64028[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	lea	rdx, [rcx+rax]
	lea	rax, -64016[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	destroy_organism
	add	DWORD PTR -64028[rbp], 1
.L80:
	cmp	DWORD PTR -64028[rbp], 1999
	jbe	.L81
	call	endwin@PLT
	mov	eax, 0
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L83
	call	__stack_chk_fail@PLT
.L83:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE22:
	.size	main, .-main
	.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	"1306.c"
	.text
	.section	.rodata
	.align	2
.LC0:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	create_organism
	.syntax unified
	.arm
	.fpu softvfp
	.type	create_organism, %function
create_organism:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	ldr	r3, .L5
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r0, #512
	bl	malloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-36]
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L2
.L3:
	ldr	r3, [fp, #-36]
	ldr	r2, [r3]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r4, r2, r3
	mov	r0, #2
	bl	random_unsigned_int
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L2:
	ldr	r3, [fp, #-28]
	cmp	r3, #127
	bls	.L3
	sub	r3, fp, #24
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	find_empty_position
	ldr	r2, [fp, #-24]
	ldr	r0, [fp, #-20]
	ldr	r1, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #2
	add	r3, r3, r2
	add	r3, r3, r0
	ldr	r2, [fp, #-36]
	str	r2, [r1, r3, lsl #2]
	ldr	r3, [fp, #-36]
	add	r3, r3, #4
	sub	r2, fp, #24
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	bl	rand
	mov	r1, r0
	ldr	r3, .L5+4
	smull	r0, r2, r3, r1
	asr	r3, r1, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #1
	sub	r2, r1, r3
	and	r3, r2, #255
	add	r3, r3, #42
	and	r2, r3, #255
	ldr	r3, [fp, #-36]
	strb	r2, [r3, #12]
	nop
	ldr	r3, .L5
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L4
	bl	__stack_chk_fail
.L4:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L6:
	.align	2
.L5:
	.word	.LC0
	.word	715827883
	.size	create_organism, .-create_organism
	.align	2
	.global	create_world
	.syntax unified
	.arm
	.fpu softvfp
	.type	create_world, %function
create_world:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L8
.L11:
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L9
.L10:
	ldr	r1, [fp, #-16]
	ldr	r2, [fp, #-12]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #2
	add	r3, r3, r2
	ldr	r2, [fp, #-8]
	add	r3, r3, r2
	mov	r2, #0
	str	r2, [r1, r3, lsl #2]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L9:
	ldr	r3, [fp, #-8]
	cmp	r3, #24
	bls	.L10
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L8:
	ldr	r3, [fp, #-12]
	cmp	r3, #79
	bls	.L11
	nop
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	create_world, .-create_world
	.align	2
	.global	destroy_organism
	.syntax unified
	.arm
	.fpu softvfp
	.type	destroy_organism, %function
destroy_organism:
	@ 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, #4]
	ldr	r3, [fp, #-12]
	ldr	r0, [r3, #8]
	ldr	r1, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #2
	add	r3, r3, r2
	add	r3, r3, r0
	mov	r2, #0
	str	r2, [r1, r3, lsl #2]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	destroy_organism, .-destroy_organism
	.section	.rodata
	.align	2
.LC1:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	display_color
	.syntax unified
	.arm
	.fpu softvfp
	.type	display_color, %function
display_color:
	@ 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]
	ldr	r3, .L20
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r1, #0
	ldr	r0, [fp, #-32]
	bl	gene_start_address
	str	r0, [fp, #-24]
	sub	r3, fp, #20
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-32]
	bl	parse_display_gene
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	bls	.L14
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	bls	.L14
	mov	r3, #114
	strb	r3, [fp, #-25]
	b	.L15
.L14:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	bls	.L16
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	bls	.L16
	mov	r3, #103
	strb	r3, [fp, #-25]
	b	.L15
.L16:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	bls	.L17
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	bls	.L17
	mov	r3, #98
	strb	r3, [fp, #-25]
	b	.L15
.L17:
	mov	r3, #119
	strb	r3, [fp, #-25]
.L15:
	ldrb	r3, [fp, #-25]	@ zero_extendqisi2
	ldr	r2, .L20
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L19
	bl	__stack_chk_fail
.L19:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L21:
	.align	2
.L20:
	.word	.LC1
	.size	display_color, .-display_color
	.align	2
	.global	find_empty_position
	.syntax unified
	.arm
	.fpu softvfp
	.type	find_empty_position, %function
find_empty_position:
	@ 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]
.L23:
	mov	r0, #80
	bl	random_unsigned_int
	str	r0, [fp, #-12]
	mov	r0, #25
	bl	random_unsigned_int
	str	r0, [fp, #-8]
	ldr	r1, [fp, #-16]
	ldr	r2, [fp, #-12]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #2
	add	r3, r3, r2
	ldr	r2, [fp, #-8]
	add	r3, r3, r2
	ldr	r3, [r1, r3, lsl #2]
	cmp	r3, #0
	bne	.L23
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #4]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	find_empty_position, .-find_empty_position
	.align	2
	.global	gene_at_virtual_index
	.syntax unified
	.arm
	.fpu softvfp
	.type	gene_at_virtual_index, %function
gene_at_virtual_index:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-20]
	mov	r1, #128
	mov	r0, r3
	bl	wrapped_index
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	gene_at_virtual_index, .-gene_at_virtual_index
	.align	2
	.global	gene_start_address
	.syntax unified
	.arm
	.fpu softvfp
	.type	gene_start_address, %function
gene_start_address:
	@ 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]
	mov	r3, #0
	str	r3, [fp, #-16]
	mov	r3, #1
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-28]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	str	r3, [fp, #-8]
	mov	r2, #7
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-24]
	bl	unsigned_int_from_genome
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	gene_start_address, .-gene_start_address
	.section	.rodata
	.align	2
.LC2:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	meet_organism
	.syntax unified
	.arm
	.fpu softvfp
	.type	meet_organism, %function
meet_organism:
	@ 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, #-40]
	str	r1, [fp, #-44]
	str	r2, [fp, #-48]
	ldr	r3, .L32
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r1, #1
	ldr	r0, [fp, #-44]
	bl	gene_start_address
	str	r0, [fp, #-32]
	sub	r3, fp, #24
	mov	r2, r3
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-44]
	bl	parse_meet_gene
	mov	r3, #0
	str	r3, [fp, #-36]
	b	.L29
.L30:
	ldr	r3, [fp, #-36]
	mov	r1, #128
	mov	r0, r3
	bl	wrapped_index
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-44]
	ldr	r2, [r3]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r2, r2, r3
	ldr	r3, [fp, #-48]
	ldr	r1, [r3]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L29:
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	bcc	.L30
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-48]
	ldr	r0, [r3, #8]
	ldr	r1, [fp, #-40]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #2
	add	r3, r3, r2
	add	r3, r3, r0
	ldr	r2, [fp, #-44]
	str	r2, [r1, r3, lsl #2]
	ldr	r3, [fp, #-44]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-44]
	ldr	r0, [r3, #8]
	ldr	r1, [fp, #-40]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #2
	add	r3, r3, r2
	add	r3, r3, r0
	ldr	r2, [fp, #-48]
	str	r2, [r1, r3, lsl #2]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-44]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-44]
	str	r2, [r3, #8]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-48]
	str	r2, [r3, #4]
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-48]
	str	r2, [r3, #8]
	nop
	ldr	r3, .L32
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L31
	bl	__stack_chk_fail
.L31:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L33:
	.align	2
.L32:
	.word	.LC2
	.size	meet_organism, .-meet_organism
	.section	.rodata
	.align	2
.LC3:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	move_organism
	.syntax unified
	.arm
	.fpu softvfp
	.type	move_organism, %function
move_organism:
	@ 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, .L40
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r1, #2
	ldr	r0, [fp, #-52]
	bl	gene_start_address
	str	r0, [fp, #-40]
	sub	r3, fp, #16
	mov	r2, r3
	ldr	r1, [fp, #-40]
	ldr	r0, [fp, #-52]
	bl	parse_move_gene
	mov	r1, #3
	ldr	r0, [fp, #-52]
	bl	gene_start_address
	str	r0, [fp, #-36]
	sub	r3, fp, #44
	mov	r2, r3
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-52]
	bl	parse_personality_gene
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-16]
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	mov	r1, #80
	mov	r0, r3
	bl	wrapped_index
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-12]
	mov	r2, r3
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	mov	r1, #25
	mov	r0, r3
	bl	wrapped_index
	str	r0, [fp, #-20]
	ldr	r1, [fp, #-48]
	ldr	r2, [fp, #-24]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #2
	add	r3, r3, r2
	ldr	r2, [fp, #-20]
	add	r3, r3, r2
	ldr	r3, [r1, r3, lsl #2]
	cmp	r3, #0
	bne	.L35
	ldr	r1, [fp, #-48]
	ldr	r2, [fp, #-24]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #2
	add	r3, r3, r2
	ldr	r2, [fp, #-20]
	add	r3, r3, r2
	ldr	r2, [fp, #-52]
	str	r2, [r1, r3, lsl #2]
	ldr	r1, [fp, #-48]
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	add	r3, r3, r2
	mov	r2, #0
	str	r2, [r1, r3, lsl #2]
	ldr	r3, [fp, #-52]
	ldr	r2, [fp, #-24]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-52]
	ldr	r2, [fp, #-20]
	str	r2, [r3, #8]
	b	.L39
.L35:
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	beq	.L37
	ldr	r1, [fp, #-48]
	ldr	r2, [fp, #-24]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #2
	add	r3, r3, r2
	ldr	r2, [fp, #-20]
	add	r3, r3, r2
	ldr	r3, [r1, r3, lsl #2]
	mov	r2, r3
	ldr	r1, [fp, #-52]
	ldr	r0, [fp, #-48]
	bl	meet_organism
	b	.L39
.L37:
	ldr	r3, [fp, #-16]
	mov	r2, r3
	ldr	r3, [fp, #-32]
	sub	r3, r3, r2
	mov	r1, #80
	mov	r0, r3
	bl	wrapped_index
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-12]
	mov	r2, r3
	ldr	r3, [fp, #-28]
	sub	r3, r3, r2
	mov	r1, #25
	mov	r0, r3
	bl	wrapped_index
	str	r0, [fp, #-20]
	ldr	r1, [fp, #-48]
	ldr	r2, [fp, #-24]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #2
	add	r3, r3, r2
	ldr	r2, [fp, #-20]
	add	r3, r3, r2
	ldr	r3, [r1, r3, lsl #2]
	cmp	r3, #0
	bne	.L39
	ldr	r1, [fp, #-48]
	ldr	r2, [fp, #-24]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #2
	add	r3, r3, r2
	ldr	r2, [fp, #-20]
	add	r3, r3, r2
	ldr	r2, [fp, #-52]
	str	r2, [r1, r3, lsl #2]
	ldr	r1, [fp, #-48]
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	add	r3, r3, r2
	mov	r2, #0
	str	r2, [r1, r3, lsl #2]
	ldr	r3, [fp, #-52]
	ldr	r2, [fp, #-24]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-52]
	ldr	r2, [fp, #-20]
	str	r2, [r3, #8]
.L39:
	nop
	ldr	r3, .L40
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L38
	bl	__stack_chk_fail
.L38:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L41:
	.align	2
.L40:
	.word	.LC3
	.size	move_organism, .-move_organism
	.align	2
	.global	parse_display_gene
	.syntax unified
	.arm
	.fpu softvfp
	.type	parse_display_gene, %function
parse_display_gene:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	mov	r2, #8
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	unsigned_int_from_genome
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #8
	mov	r2, #8
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	unsigned_int_from_genome
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	add	r3, r3, #16
	mov	r2, #8
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	unsigned_int_from_genome
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #8]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	parse_display_gene, .-parse_display_gene
	.align	2
	.global	parse_meet_gene
	.syntax unified
	.arm
	.fpu softvfp
	.type	parse_meet_gene, %function
parse_meet_gene:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	mov	r2, #8
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	unsigned_int_from_genome
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #8
	mov	r2, #8
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	unsigned_int_from_genome
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	parse_meet_gene, .-parse_meet_gene
	.align	2
	.global	parse_move_gene
	.syntax unified
	.arm
	.fpu softvfp
	.type	parse_move_gene, %function
parse_move_gene:
	@ 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]
	mov	r2, #1
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-24]
	bl	unsigned_int_from_genome
	mov	r3, r0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	mov	r2, #1
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	unsigned_int_from_genome
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	mov	r2, #1
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	unsigned_int_from_genome
	mov	r3, r0
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-28]
	add	r3, r3, #3
	mov	r2, #1
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	unsigned_int_from_genome
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L45
	ldr	r3, [fp, #-20]
	rsb	r3, r3, #0
	str	r3, [fp, #-20]
.L45:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L46
	ldr	r3, [fp, #-16]
	rsb	r3, r3, #0
	str	r3, [fp, #-16]
.L46:
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-16]
	str	r2, [r3, #4]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	parse_move_gene, .-parse_move_gene
	.align	2
	.global	parse_personality_gene
	.syntax unified
	.arm
	.fpu softvfp
	.type	parse_personality_gene, %function
parse_personality_gene:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	mov	r2, #1
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	unsigned_int_from_genome
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	parse_personality_gene, .-parse_personality_gene
	.global	__aeabi_uidivmod
	.align	2
	.global	random_unsigned_int
	.syntax unified
	.arm
	.fpu softvfp
	.type	random_unsigned_int, %function
random_unsigned_int:
	@ 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]
	bl	random
	mov	r3, r0
	ldr	r1, [fp, #-8]
	mov	r0, r3
	bl	__aeabi_uidivmod
	mov	r3, r1
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	random_unsigned_int, .-random_unsigned_int
	.align	2
	.global	unsigned_int_from_genome
	.syntax unified
	.arm
	.fpu softvfp
	.type	unsigned_int_from_genome, %function
unsigned_int_from_genome:
	@ 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]
	mov	r3, #1
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-20]
	b	.L51
.L52:
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-24]
	bl	gene_at_virtual_index
	mov	r2, r0
	ldr	r3, [fp, #-16]
	mul	r3, r2, r3
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L51:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	bcc	.L52
	ldr	r3, [fp, #-12]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	unsigned_int_from_genome, .-unsigned_int_from_genome
	.align	2
	.global	wrapped_index
	.syntax unified
	.arm
	.fpu softvfp
	.type	wrapped_index, %function
wrapped_index:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L55
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-20]
	sub	r3, r2, r3
	str	r3, [fp, #-8]
	b	.L56
.L55:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bge	.L57
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	b	.L56
.L57:
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-8]
.L56:
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	wrapped_index, .-wrapped_index
	.section	.rodata
	.align	2
.LC4:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 40032
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #39936
	sub	sp, sp, #100
	sub	r3, fp, #36864
	sub	r3, r3, #12
	str	r0, [r3, #-3164]
	sub	r3, fp, #36864
	sub	r3, r3, #12
	str	r1, [r3, #-3168]
	ldr	r3, .L98
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r0, .L98+4
	bl	srandom
	bl	initscr
	bl	start_color
	mov	r2, #0
	mov	r1, #1
	mov	r0, #1
	bl	init_pair
	mov	r2, #0
	mov	r1, #2
	mov	r0, #2
	bl	init_pair
	mov	r2, #0
	mov	r1, #4
	mov	r0, #3
	bl	init_pair
	mov	r2, #0
	mov	r1, #7
	mov	r0, #4
	bl	init_pair
	mov	r2, #0
	mov	r1, #0
	mov	r0, #5
	bl	init_pair
	sub	r3, fp, #39936
	sub	r3, r3, #12
	sub	r3, r3, #68
	mov	r0, r3
	bl	create_world
	sub	r3, fp, #36864
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-3152]
	b	.L60
.L61:
	sub	r3, fp, #32000
	sub	r3, r3, #12
	sub	r3, r3, #4
	sub	r2, fp, #36864
	sub	r2, r2, #12
	ldr	r2, [r2, #-3152]
	lsl	r2, r2, #4
	add	r2, r3, r2
	sub	r3, fp, #39936
	sub	r3, r3, #12
	sub	r3, r3, #68
	mov	r1, r2
	mov	r0, r3
	bl	create_organism
	sub	r3, fp, #36864
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #36864
	sub	r3, r3, #12
	ldr	r3, [r3, #-3152]
	add	r3, r3, #1
	str	r3, [r2, #-3152]
.L60:
	sub	r3, fp, #36864
	sub	r3, r3, #12
	ldr	r3, [r3, #-3152]
	cmp	r3, #2000
	bcc	.L61
	sub	r3, fp, #36864
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-3156]
	b	.L62
.L88:
	sub	r3, fp, #36864
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-3152]
	b	.L63
.L64:
	sub	r3, fp, #32000
	sub	r3, r3, #12
	sub	r3, r3, #4
	sub	r2, fp, #36864
	sub	r2, r2, #12
	ldr	r2, [r2, #-3152]
	lsl	r2, r2, #4
	add	r2, r3, r2
	sub	r3, fp, #39936
	sub	r3, r3, #12
	sub	r3, r3, #68
	mov	r1, r2
	mov	r0, r3
	bl	move_organism
	sub	r3, fp, #36864
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #36864
	sub	r3, r3, #12
	ldr	r3, [r3, #-3152]
	add	r3, r3, #1
	str	r3, [r2, #-3152]
.L63:
	sub	r3, fp, #36864
	sub	r3, r3, #12
	ldr	r3, [r3, #-3152]
	cmp	r3, #2000
	bcc	.L64
	sub	r3, fp, #36864
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-3148]
	b	.L65
.L87:
	sub	r3, fp, #36864
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-3144]
	b	.L66
.L86:
	sub	r3, fp, #36864
	sub	r3, r3, #12
	mov	r1, r3
	sub	r3, fp, #36864
	sub	r3, r3, #12
	ldr	r2, [r3, #-3148]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #2
	add	r3, r3, r2
	sub	r2, fp, #36864
	sub	r2, r2, #12
	ldr	r2, [r2, #-3144]
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3, #-3140]
	cmp	r3, #0
	bne	.L67
	sub	r3, fp, #36864
	sub	r3, r3, #12
	mov	r2, #120
	strb	r2, [r3, #-3157]
	sub	r3, fp, #36864
	sub	r3, r3, #12
	mov	r2, #32
	strb	r2, [r3, #-3158]
	b	.L68
.L67:
	sub	r3, fp, #36864
	sub	r3, r3, #12
	mov	r1, r3
	sub	r3, fp, #36864
	sub	r3, r3, #12
	ldr	r2, [r3, #-3148]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #2
	add	r3, r3, r2
	sub	r2, fp, #36864
	sub	r2, r2, #12
	ldr	r2, [r2, #-3144]
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3, #-3140]
	sub	r2, fp, #36864
	sub	r2, r2, #12
	mov	r4, r2
	mov	r0, r3
	bl	display_color
	mov	r3, r0
	strb	r3, [r4, #-3157]
	sub	r3, fp, #36864
	sub	r3, r3, #12
	mov	r1, r3
	sub	r3, fp, #36864
	sub	r3, r3, #12
	ldr	r2, [r3, #-3148]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #2
	add	r3, r3, r2
	sub	r2, fp, #36864
	sub	r2, r2, #12
	ldr	r2, [r2, #-3144]
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3, #-3140]
	sub	r2, fp, #36864
	sub	r2, r2, #12
	ldrb	r3, [r3, #12]
	strb	r3, [r2, #-3158]
.L68:
	sub	r3, fp, #36864
	sub	r3, r3, #12
	ldrb	r3, [r3, #-3157]	@ zero_extendqisi2
	sub	r3, r3, #98
	cmp	r3, #21
	ldrls	pc, [pc, r3, asl #2]
	b	.L69
.L71:
	.word	.L74
	.word	.L69
	.word	.L69
	.word	.L69
	.word	.L69
	.word	.L73
	.word	.L69
	.word	.L69
	.word	.L69
	.word	.L69
	.word	.L69
	.word	.L69
	.word	.L69
	.word	.L69
	.word	.L69
	.word	.L69
	.word	.L72
	.word	.L69
	.word	.L69
	.word	.L69
	.word	.L69
	.word	.L70
.L72:
	ldr	r3, .L98+8
	ldr	r3, [r3]
	sub	r2, fp, #36864
	sub	r2, r2, #12
	ldr	r1, [r2, #-3144]
	sub	r2, fp, #36864
	sub	r2, r2, #12
	ldr	r2, [r2, #-3148]
	mov	r0, r3
	bl	wmove
	mov	r3, r0
	cmn	r3, #1
	beq	.L93
	ldr	r3, .L98+8
	ldr	r2, [r3]
	sub	r3, fp, #36864
	sub	r3, r3, #12
	ldrb	r3, [r3, #-3158]	@ zero_extendqisi2
	orr	r3, r3, #256
	mov	r1, r3
	mov	r0, r2
	bl	waddch
	b	.L93
.L73:
	ldr	r3, .L98+8
	ldr	r3, [r3]
	sub	r2, fp, #36864
	sub	r2, r2, #12
	ldr	r1, [r2, #-3144]
	sub	r2, fp, #36864
	sub	r2, r2, #12
	ldr	r2, [r2, #-3148]
	mov	r0, r3
	bl	wmove
	mov	r3, r0
	cmn	r3, #1
	beq	.L94
	ldr	r3, .L98+8
	ldr	r2, [r3]
	sub	r3, fp, #36864
	sub	r3, r3, #12
	ldrb	r3, [r3, #-3158]	@ zero_extendqisi2
	orr	r3, r3, #512
	mov	r1, r3
	mov	r0, r2
	bl	waddch
	b	.L94
.L74:
	ldr	r3, .L98+8
	ldr	r3, [r3]
	sub	r2, fp, #36864
	sub	r2, r2, #12
	ldr	r1, [r2, #-3144]
	sub	r2, fp, #36864
	sub	r2, r2, #12
	ldr	r2, [r2, #-3148]
	mov	r0, r3
	bl	wmove
	mov	r3, r0
	cmn	r3, #1
	beq	.L95
	ldr	r3, .L98+8
	ldr	r2, [r3]
	sub	r3, fp, #36864
	sub	r3, r3, #12
	ldrb	r3, [r3, #-3158]	@ zero_extendqisi2
	orr	r3, r3, #768
	mov	r1, r3
	mov	r0, r2
	bl	waddch
	b	.L95
.L70:
	ldr	r3, .L98+8
	ldr	r3, [r3]
	sub	r2, fp, #36864
	sub	r2, r2, #12
	ldr	r1, [r2, #-3144]
	sub	r2, fp, #36864
	sub	r2, r2, #12
	ldr	r2, [r2, #-3148]
	mov	r0, r3
	bl	wmove
	mov	r3, r0
	cmn	r3, #1
	beq	.L96
	ldr	r3, .L98+8
	ldr	r2, [r3]
	sub	r3, fp, #36864
	sub	r3, r3, #12
	ldrb	r3, [r3, #-3158]	@ zero_extendqisi2
	orr	r3, r3, #1024
	mov	r1, r3
	mov	r0, r2
	bl	waddch
	b	.L96
.L69:
	ldr	r3, .L98+8
	ldr	r3, [r3]
	sub	r2, fp, #36864
	sub	r2, r2, #12
	ldr	r1, [r2, #-3144]
	sub	r2, fp, #36864
	sub	r2, r2, #12
	ldr	r2, [r2, #-3148]
	mov	r0, r3
	bl	wmove
	mov	r3, r0
	cmn	r3, #1
	beq	.L97
	ldr	r3, .L98+8
	ldr	r2, [r3]
	sub	r3, fp, #36864
	sub	r3, r3, #12
	ldrb	r3, [r3, #-3158]	@ zero_extendqisi2
	orr	r3, r3, #1280
	mov	r1, r3
	mov	r0, r2
	bl	waddch
	b	.L97
.L93:
	nop
	b	.L77
.L94:
	nop
	b	.L77
.L95:
	nop
	b	.L77
.L96:
	nop
	b	.L77
.L97:
	nop
.L77:
	sub	r3, fp, #36864
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #36864
	sub	r3, r3, #12
	ldr	r3, [r3, #-3144]
	add	r3, r3, #1
	str	r3, [r2, #-3144]
.L66:
	sub	r3, fp, #36864
	sub	r3, r3, #12
	ldr	r3, [r3, #-3144]
	cmp	r3, #24
	bls	.L86
	sub	r3, fp, #36864
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #36864
	sub	r3, r3, #12
	ldr	r3, [r3, #-3148]
	add	r3, r3, #1
	str	r3, [r2, #-3148]
.L65:
	sub	r3, fp, #36864
	sub	r3, r3, #12
	ldr	r3, [r3, #-3148]
	cmp	r3, #79
	bls	.L87
	ldr	r3, .L98+8
	ldr	r3, [r3]
	mov	r0, r3
	bl	wrefresh
	ldr	r0, .L98+12
	bl	usleep
	sub	r3, fp, #36864
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #36864
	sub	r3, r3, #12
	ldr	r3, [r3, #-3156]
	add	r3, r3, #1
	str	r3, [r2, #-3156]
.L62:
	sub	r3, fp, #36864
	sub	r3, r3, #12
	ldr	r3, [r3, #-3156]
	ldr	r2, .L98+16
	cmp	r3, r2
	bcc	.L88
	sub	r3, fp, #36864
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-3152]
	b	.L89
.L90:
	sub	r3, fp, #32000
	sub	r3, r3, #12
	sub	r3, r3, #4
	sub	r2, fp, #36864
	sub	r2, r2, #12
	ldr	r2, [r2, #-3152]
	lsl	r2, r2, #4
	add	r2, r3, r2
	sub	r3, fp, #39936
	sub	r3, r3, #12
	sub	r3, r3, #68
	mov	r1, r2
	mov	r0, r3
	bl	destroy_organism
	sub	r3, fp, #36864
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #36864
	sub	r3, r3, #12
	ldr	r3, [r3, #-3152]
	add	r3, r3, #1
	str	r3, [r2, #-3152]
.L89:
	sub	r3, fp, #36864
	sub	r3, r3, #12
	ldr	r3, [r3, #-3152]
	cmp	r3, #2000
	bcc	.L90
	bl	endwin
	mov	r3, #0
	ldr	r2, .L98
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L92
	bl	__stack_chk_fail
.L92:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L99:
	.align	2
.L98:
	.word	.LC4
	.word	185379
	.word	stdscr
	.word	100000
	.word	128000000
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
