	.file	"17282.c"
	.intel_syntax noprefix
	.text
	.globl	memory
	.bss
	.align 32
	.type	memory, @object
	.size	memory, 256
memory:
	.zero	256
	.globl	rules
	.align 32
	.type	rules, @object
	.size	rules, 2304
rules:
	.zero	2304
	.globl	cursor
	.type	cursor, @object
	.size	cursor, 2
cursor:
	.zero	2
	.globl	selectedColor
	.type	selectedColor, @object
	.size	selectedColor, 1
selectedColor:
	.zero	1
	.globl	selectedEvent
	.type	selectedEvent, @object
	.size	selectedEvent, 1
selectedEvent:
	.zero	1
	.globl	selectedSlot
	.type	selectedSlot, @object
	.size	selectedSlot, 1
selectedSlot:
	.zero	1
	.globl	view
	.align 4
	.type	view, @object
	.size	view, 4
view:
	.zero	4
	.text
	.globl	getTile
	.type	getTile, @function
getTile:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	edx, edi
	mov	eax, esi
	mov	BYTE PTR -4[rbp], dl
	mov	BYTE PTR -8[rbp], al
	movzx	eax, BYTE PTR -8[rbp]
	movzx	edx, BYTE PTR -4[rbp]
	movsx	rdx, edx
	cdqe
	sal	rax, 4
	add	rdx, rax
	lea	rax, memory[rip]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	getTile, .-getTile
	.globl	getRule
	.type	getRule, @function
getRule:
.LFB1:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, ecx
	mov	ecx, edi
	mov	BYTE PTR -4[rbp], cl
	mov	ecx, esi
	mov	BYTE PTR -8[rbp], cl
	mov	BYTE PTR -12[rbp], dl
	mov	BYTE PTR -16[rbp], al
	mov	eax, r8d
	mov	BYTE PTR -20[rbp], al
	movzx	ecx, BYTE PTR -4[rbp]
	movzx	edx, BYTE PTR -8[rbp]
	movzx	eax, BYTE PTR -12[rbp]
	movzx	esi, BYTE PTR -20[rbp]
	movzx	edi, BYTE PTR -16[rbp]
	movsx	r8, edi
	cdqe
	movsx	rdi, esi
	movsx	rcx, ecx
	movsx	rsi, edx
	mov	rdx, rax
	sal	rdx, 3
	add	rdx, rax
	mov	rax, rdi
	add	rax, rax
	add	rax, rdi
	add	rdx, rax
	mov	rax, rsi
	sal	rax, 3
	add	rax, rsi
	add	rax, rax
	add	rdx, rax
	mov	rax, rcx
	sal	rax, 3
	add	rax, rcx
	sal	rax, 5
	add	rax, rdx
	lea	rdx, [rax+r8]
	lea	rax, rules[rip]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	getRule, .-getRule
	.globl	getCursorX
	.type	getCursorX, @function
getCursorX:
.LFB2:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	movzx	eax, BYTE PTR cursor[rip]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	getCursorX, .-getCursorX
	.globl	getCursorY
	.type	getCursorY, @function
getCursorY:
.LFB3:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	movzx	eax, BYTE PTR cursor[rip+1]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE3:
	.size	getCursorY, .-getCursorY
	.globl	getSelectedColor
	.type	getSelectedColor, @function
getSelectedColor:
.LFB4:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	movzx	eax, BYTE PTR selectedColor[rip]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	getSelectedColor, .-getSelectedColor
	.globl	getSelectedEvent
	.type	getSelectedEvent, @function
getSelectedEvent:
.LFB5:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	movzx	eax, BYTE PTR selectedEvent[rip]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	getSelectedEvent, .-getSelectedEvent
	.globl	getSelectedSlot
	.type	getSelectedSlot, @function
getSelectedSlot:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	movzx	eax, BYTE PTR selectedSlot[rip]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	getSelectedSlot, .-getSelectedSlot
	.globl	getView
	.type	getView, @function
getView:
.LFB7:
	.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 view[rip]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	getView, .-getView
	.globl	setTile
	.type	setTile, @function
setTile:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	edx, edi
	mov	eax, esi
	mov	BYTE PTR -4[rbp], dl
	mov	BYTE PTR -8[rbp], al
	movzx	edx, BYTE PTR -8[rbp]
	movzx	ecx, BYTE PTR -4[rbp]
	movzx	eax, BYTE PTR selectedColor[rip]
	movsx	rcx, ecx
	movsx	rdx, edx
	sal	rdx, 4
	add	rcx, rdx
	lea	rdx, memory[rip]
	add	rdx, rcx
	mov	BYTE PTR [rdx], al
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	setTile, .-setTile
	.globl	eraseTile
	.type	eraseTile, @function
eraseTile:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	edx, edi
	mov	eax, esi
	mov	BYTE PTR -4[rbp], dl
	mov	BYTE PTR -8[rbp], al
	movzx	eax, BYTE PTR -8[rbp]
	movzx	edx, BYTE PTR -4[rbp]
	movsx	rdx, edx
	cdqe
	sal	rax, 4
	add	rdx, rax
	lea	rax, memory[rip]
	add	rax, rdx
	mov	BYTE PTR [rax], 0
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	eraseTile, .-eraseTile
	.globl	setMode
	.type	setMode, @function
setMode:
.LFB10:
	.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]
	mov	DWORD PTR view[rip], eax
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	setMode, .-setMode
	.globl	selectColor
	.type	selectColor, @function
selectColor:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	mov	BYTE PTR selectedColor[rip], al
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	selectColor, .-selectColor
	.globl	selectEvent
	.type	selectEvent, @function
selectEvent:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	mov	BYTE PTR selectedEvent[rip], al
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	selectEvent, .-selectEvent
	.globl	selectSlot
	.type	selectSlot, @function
selectSlot:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	mov	BYTE PTR selectedSlot[rip], al
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	selectSlot, .-selectSlot
	.globl	setRule
	.type	setRule, @function
setRule:
.LFB14:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	ecx, esi
	mov	eax, edx
	mov	edx, edi
	mov	BYTE PTR -4[rbp], dl
	mov	edx, ecx
	mov	BYTE PTR -8[rbp], dl
	mov	BYTE PTR -12[rbp], al
	movzx	r8d, BYTE PTR selectedColor[rip]
	movzx	eax, BYTE PTR selectedEvent[rip]
	movzx	ecx, al
	movzx	eax, BYTE PTR selectedSlot[rip]
	movzx	edx, al
	movzx	eax, BYTE PTR -12[rbp]
	movzx	esi, BYTE PTR -8[rbp]
	movzx	edi, BYTE PTR -4[rbp]
	movsx	r9, edi
	cdqe
	movsx	rdi, esi
	movsx	rcx, ecx
	movsx	rsi, edx
	mov	rdx, rax
	sal	rdx, 3
	add	rdx, rax
	mov	rax, rdi
	add	rax, rax
	add	rax, rdi
	add	rdx, rax
	mov	rax, rsi
	sal	rax, 3
	add	rax, rsi
	add	rax, rax
	add	rdx, rax
	mov	rax, rcx
	sal	rax, 3
	add	rax, rcx
	sal	rax, 5
	add	rax, rdx
	lea	rdx, [rax+r9]
	lea	rax, rules[rip]
	add	rax, rdx
	mov	BYTE PTR [rax], r8b
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	setRule, .-setRule
	.globl	eraseRule
	.type	eraseRule, @function
eraseRule:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	ecx, esi
	mov	eax, edx
	mov	edx, edi
	mov	BYTE PTR -4[rbp], dl
	mov	edx, ecx
	mov	BYTE PTR -8[rbp], dl
	mov	BYTE PTR -12[rbp], al
	movzx	eax, BYTE PTR selectedEvent[rip]
	movzx	ecx, al
	movzx	eax, BYTE PTR selectedSlot[rip]
	movzx	edx, al
	movzx	eax, BYTE PTR -12[rbp]
	movzx	esi, BYTE PTR -8[rbp]
	movzx	edi, BYTE PTR -4[rbp]
	movsx	r8, edi
	cdqe
	movsx	rdi, esi
	movsx	rcx, ecx
	movsx	rsi, edx
	mov	rdx, rax
	sal	rdx, 3
	add	rdx, rax
	mov	rax, rdi
	add	rax, rax
	add	rax, rdi
	add	rdx, rax
	mov	rax, rsi
	sal	rax, 3
	add	rax, rsi
	add	rax, rax
	add	rdx, rax
	mov	rax, rcx
	sal	rax, 3
	add	rax, rcx
	sal	rax, 5
	add	rax, rdx
	lea	rdx, [rax+r8]
	lea	rax, rules[rip]
	add	rax, rdx
	mov	BYTE PTR [rax], -1
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	eraseRule, .-eraseRule
	.globl	setCursor
	.type	setCursor, @function
setCursor:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	edx, edi
	mov	eax, esi
	mov	BYTE PTR -4[rbp], dl
	mov	BYTE PTR -8[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	mov	BYTE PTR cursor[rip], al
	movzx	eax, BYTE PTR -8[rbp]
	mov	BYTE PTR cursor[rip+1], al
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	setCursor, .-setCursor
	.globl	applyRules
	.type	applyRules, @function
applyRules:
.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, 352
	mov	eax, edi
	mov	BYTE PTR -340[rbp], al
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -320[rbp], 0
	jmp	.L27
.L30:
	mov	DWORD PTR -316[rbp], 0
	jmp	.L28
.L29:
	mov	eax, DWORD PTR -316[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -320[rbp]
	cdqe
	sal	rax, 4
	add	rdx, rax
	lea	rax, memory[rip]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	edx, DWORD PTR -316[rbp]
	movsx	rcx, edx
	mov	edx, DWORD PTR -320[rbp]
	movsx	rdx, edx
	sal	rdx, 4
	add	rdx, rbp
	add	rdx, rcx
	sub	rdx, 272
	mov	BYTE PTR [rdx], al
	add	DWORD PTR -316[rbp], 1
.L28:
	cmp	DWORD PTR -316[rbp], 15
	jle	.L29
	add	DWORD PTR -320[rbp], 1
.L27:
	cmp	DWORD PTR -320[rbp], 15
	jle	.L30
	mov	DWORD PTR -312[rbp], 1
	jmp	.L31
.L47:
	mov	DWORD PTR -308[rbp], 1
	jmp	.L32
.L46:
	mov	DWORD PTR -304[rbp], 0
	jmp	.L33
.L45:
	movzx	edx, BYTE PTR -340[rbp]
	mov	eax, DWORD PTR -304[rbp]
	cdqe
	movsx	rcx, edx
	mov	rdx, rax
	sal	rdx, 3
	add	rdx, rax
	lea	rax, [rdx+rdx]
	mov	rdx, rax
	mov	rax, rcx
	sal	rax, 3
	add	rax, rcx
	sal	rax, 5
	add	rdx, rax
	lea	rax, rules[rip+4]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, -1
	je	.L34
	mov	DWORD PTR -300[rbp], 1
	mov	DWORD PTR -296[rbp], 0
	jmp	.L35
.L39:
	mov	DWORD PTR -292[rbp], 0
	jmp	.L36
.L38:
	movzx	eax, BYTE PTR -340[rbp]
	mov	edx, DWORD PTR -292[rbp]
	movsx	rdi, edx
	mov	edx, DWORD PTR -304[rbp]
	movsx	rdx, edx
	mov	ecx, DWORD PTR -296[rbp]
	movsx	rsi, ecx
	movsx	rcx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	add	rax, rax
	mov	rdx, rsi
	add	rdx, rdx
	add	rdx, rsi
	add	rdx, rax
	mov	rax, rcx
	sal	rax, 3
	add	rax, rcx
	sal	rax, 5
	add	rax, rdx
	lea	rdx, [rax+rdi]
	lea	rax, rules[rip]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -321[rbp], al
	cmp	BYTE PTR -321[rbp], -1
	je	.L37
	mov	edx, DWORD PTR -312[rbp]
	mov	eax, DWORD PTR -296[rbp]
	add	eax, edx
	sub	eax, 1
	mov	ecx, DWORD PTR -308[rbp]
	mov	edx, DWORD PTR -292[rbp]
	add	edx, ecx
	sub	edx, 1
	movsx	rdx, edx
	cdqe
	sal	rax, 4
	add	rdx, rax
	lea	rax, memory[rip]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edi, al
	movzx	eax, BYTE PTR -340[rbp]
	mov	edx, DWORD PTR -292[rbp]
	movsx	r8, edx
	mov	edx, DWORD PTR -304[rbp]
	movsx	rdx, edx
	mov	ecx, DWORD PTR -296[rbp]
	movsx	rsi, ecx
	movsx	rcx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	add	rax, rax
	mov	rdx, rsi
	add	rdx, rdx
	add	rdx, rsi
	add	rdx, rax
	mov	rax, rcx
	sal	rax, 3
	add	rax, rcx
	sal	rax, 5
	add	rax, rdx
	lea	rdx, [rax+r8]
	lea	rax, rules[rip]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	cmp	edi, eax
	je	.L37
	mov	DWORD PTR -300[rbp], 0
.L37:
	add	DWORD PTR -292[rbp], 1
.L36:
	cmp	DWORD PTR -292[rbp], 2
	jle	.L38
	add	DWORD PTR -296[rbp], 1
.L35:
	cmp	DWORD PTR -296[rbp], 2
	jle	.L39
	cmp	DWORD PTR -300[rbp], 1
	jne	.L34
	mov	DWORD PTR -288[rbp], 0
	jmp	.L40
.L44:
	mov	DWORD PTR -284[rbp], 0
	jmp	.L41
.L43:
	movzx	edx, BYTE PTR -340[rbp]
	mov	eax, DWORD PTR -284[rbp]
	movsx	rdi, eax
	mov	eax, DWORD PTR -288[rbp]
	cdqe
	mov	ecx, DWORD PTR -304[rbp]
	movsx	rcx, ecx
	movsx	rsi, edx
	mov	rdx, rax
	add	rdx, rdx
	add	rdx, rax
	mov	rax, rsi
	sal	rax, 3
	add	rax, rsi
	sal	rax, 5
	add	rdx, rax
	mov	rax, rcx
	sal	rax, 3
	add	rax, rcx
	add	rax, rax
	add	rax, rdx
	lea	rdx, [rax+rdi]
	lea	rax, rules[rip+9]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -322[rbp], al
	cmp	BYTE PTR -322[rbp], -1
	je	.L42
	movzx	edx, BYTE PTR -340[rbp]
	mov	eax, DWORD PTR -284[rbp]
	movsx	rdi, eax
	mov	eax, DWORD PTR -288[rbp]
	cdqe
	mov	ecx, DWORD PTR -304[rbp]
	movsx	rcx, ecx
	movsx	rsi, edx
	mov	rdx, rax
	add	rdx, rdx
	add	rdx, rax
	mov	rax, rsi
	sal	rax, 3
	add	rax, rsi
	sal	rax, 5
	add	rdx, rax
	mov	rax, rcx
	sal	rax, 3
	add	rax, rcx
	add	rax, rax
	add	rax, rdx
	lea	rdx, [rax+rdi]
	lea	rax, rules[rip+9]
	add	rax, rdx
	movzx	ecx, BYTE PTR [rax]
	mov	edx, DWORD PTR -312[rbp]
	mov	eax, DWORD PTR -288[rbp]
	add	eax, edx
	sub	eax, 1
	mov	esi, DWORD PTR -308[rbp]
	mov	edx, DWORD PTR -284[rbp]
	add	edx, esi
	sub	edx, 1
	movsx	rdx, edx
	cdqe
	sal	rax, 4
	add	rax, rbp
	add	rax, rdx
	sub	rax, 272
	mov	BYTE PTR [rax], cl
.L42:
	add	DWORD PTR -284[rbp], 1
.L41:
	cmp	DWORD PTR -284[rbp], 2
	jle	.L43
	add	DWORD PTR -288[rbp], 1
.L40:
	cmp	DWORD PTR -288[rbp], 2
	jle	.L44
.L34:
	add	DWORD PTR -304[rbp], 1
.L33:
	cmp	DWORD PTR -304[rbp], 15
	jle	.L45
	add	DWORD PTR -308[rbp], 1
.L32:
	cmp	DWORD PTR -308[rbp], 14
	jle	.L46
	add	DWORD PTR -312[rbp], 1
.L31:
	cmp	DWORD PTR -312[rbp], 14
	jle	.L47
	mov	DWORD PTR -280[rbp], 0
	jmp	.L48
.L51:
	mov	DWORD PTR -276[rbp], 0
	jmp	.L49
.L50:
	mov	eax, DWORD PTR -276[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -280[rbp]
	cdqe
	sal	rax, 4
	add	rax, rbp
	add	rax, rdx
	sub	rax, 272
	movzx	eax, BYTE PTR [rax]
	mov	edx, DWORD PTR -276[rbp]
	movsx	rcx, edx
	mov	edx, DWORD PTR -280[rbp]
	movsx	rdx, edx
	sal	rdx, 4
	add	rcx, rdx
	lea	rdx, memory[rip]
	add	rdx, rcx
	mov	BYTE PTR [rdx], al
	add	DWORD PTR -276[rbp], 1
.L49:
	cmp	DWORD PTR -276[rbp], 15
	jle	.L50
	add	DWORD PTR -280[rbp], 1
.L48:
	cmp	DWORD PTR -280[rbp], 15
	jle	.L51
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L52
	call	__stack_chk_fail@PLT
.L52:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	applyRules, .-applyRules
	.globl	eraseMemory
	.type	eraseMemory, @function
eraseMemory:
.LFB18:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -8[rbp], 0
	jmp	.L54
.L57:
	mov	DWORD PTR -4[rbp], 0
	jmp	.L55
.L56:
	mov	eax, DWORD PTR -4[rbp]
	movzx	edx, al
	mov	eax, DWORD PTR -8[rbp]
	movzx	eax, al
	mov	esi, edx
	mov	edi, eax
	call	eraseTile
	add	DWORD PTR -4[rbp], 1
.L55:
	cmp	DWORD PTR -4[rbp], 15
	jle	.L56
	add	DWORD PTR -8[rbp], 1
.L54:
	cmp	DWORD PTR -8[rbp], 15
	jle	.L57
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	eraseMemory, .-eraseMemory
	.globl	eraseRules
	.type	eraseRules, @function
eraseRules:
.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, 32
	mov	DWORD PTR -20[rbp], 0
	jmp	.L59
.L68:
	mov	eax, DWORD PTR -20[rbp]
	movzx	eax, al
	mov	edi, eax
	call	selectEvent
	mov	DWORD PTR -16[rbp], 0
	jmp	.L60
.L67:
	mov	eax, DWORD PTR -16[rbp]
	movzx	eax, al
	mov	edi, eax
	call	selectSlot
	mov	DWORD PTR -12[rbp], 0
	jmp	.L61
.L66:
	mov	DWORD PTR -8[rbp], 0
	jmp	.L62
.L65:
	mov	DWORD PTR -4[rbp], 0
	jmp	.L63
.L64:
	mov	eax, DWORD PTR -12[rbp]
	movzx	edx, al
	mov	eax, DWORD PTR -4[rbp]
	movzx	ecx, al
	mov	eax, DWORD PTR -8[rbp]
	movzx	eax, al
	mov	esi, ecx
	mov	edi, eax
	call	eraseRule
	add	DWORD PTR -4[rbp], 1
.L63:
	cmp	DWORD PTR -4[rbp], 2
	jle	.L64
	add	DWORD PTR -8[rbp], 1
.L62:
	cmp	DWORD PTR -8[rbp], 2
	jle	.L65
	add	DWORD PTR -12[rbp], 1
.L61:
	cmp	DWORD PTR -12[rbp], 1
	jle	.L66
	add	DWORD PTR -16[rbp], 1
.L60:
	cmp	DWORD PTR -16[rbp], 15
	jle	.L67
	add	DWORD PTR -20[rbp], 1
.L59:
	cmp	DWORD PTR -20[rbp], 7
	jle	.L68
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	eraseRules, .-eraseRules
	.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	"17282.c"
	.text
	.comm	memory,256,4
	.comm	rules,2304,4
	.comm	cursor,2,4
	.comm	selectedColor,1,1
	.comm	selectedEvent,1,1
	.comm	selectedSlot,1,1
	.comm	view,4,4
	.align	2
	.global	getTile
	.syntax unified
	.arm
	.fpu softvfp
	.type	getTile, %function
getTile:
	@ 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
	mov	r3, r0
	mov	r2, r1
	strb	r3, [fp, #-5]
	mov	r3, r2
	strb	r3, [fp, #-6]
	ldrb	r2, [fp, #-6]	@ zero_extendqisi2
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	ldr	r1, .L3
	lsl	r2, r2, #4
	add	r2, r1, r2
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L4:
	.align	2
.L3:
	.word	memory
	.size	getTile, .-getTile
	.align	2
	.global	getRule
	.syntax unified
	.arm
	.fpu softvfp
	.type	getRule, %function
getRule:
	@ args = 4, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #12
	mov	ip, r0
	mov	r0, r1
	mov	r1, r2
	mov	r2, r3
	mov	r3, ip
	strb	r3, [fp, #-13]
	mov	r3, r0
	strb	r3, [fp, #-14]
	mov	r3, r1
	strb	r3, [fp, #-15]
	mov	r3, r2
	strb	r3, [fp, #-16]
	ldrb	r1, [fp, #-13]	@ zero_extendqisi2
	ldrb	r0, [fp, #-14]	@ zero_extendqisi2
	ldrb	ip, [fp, #-15]	@ zero_extendqisi2
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	ldrb	lr, [fp, #-16]	@ zero_extendqisi2
	ldr	r4, .L7
	mov	r2, r3
	lsl	r2, r2, #1
	add	r2, r2, r3
	mov	r3, ip
	lsl	r3, r3, #3
	add	r3, r3, ip
	add	r2, r2, r3
	mov	r3, r0
	lsl	r3, r3, #3
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r2, r2, r3
	mov	r3, r1
	lsl	r3, r3, #3
	add	r3, r3, r1
	lsl	r3, r3, #5
	add	r3, r2, r3
	add	r3, r4, r3
	add	r3, r3, lr
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L8:
	.align	2
.L7:
	.word	rules
	.size	getRule, .-getRule
	.align	2
	.global	getCursorX
	.syntax unified
	.arm
	.fpu softvfp
	.type	getCursorX, %function
getCursorX:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	ldr	r3, .L11
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L12:
	.align	2
.L11:
	.word	cursor
	.size	getCursorX, .-getCursorX
	.align	2
	.global	getCursorY
	.syntax unified
	.arm
	.fpu softvfp
	.type	getCursorY, %function
getCursorY:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	ldr	r3, .L15
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L16:
	.align	2
.L15:
	.word	cursor
	.size	getCursorY, .-getCursorY
	.align	2
	.global	getSelectedColor
	.syntax unified
	.arm
	.fpu softvfp
	.type	getSelectedColor, %function
getSelectedColor:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	ldr	r3, .L19
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L20:
	.align	2
.L19:
	.word	selectedColor
	.size	getSelectedColor, .-getSelectedColor
	.align	2
	.global	getSelectedEvent
	.syntax unified
	.arm
	.fpu softvfp
	.type	getSelectedEvent, %function
getSelectedEvent:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	ldr	r3, .L23
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L24:
	.align	2
.L23:
	.word	selectedEvent
	.size	getSelectedEvent, .-getSelectedEvent
	.align	2
	.global	getSelectedSlot
	.syntax unified
	.arm
	.fpu softvfp
	.type	getSelectedSlot, %function
getSelectedSlot:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	ldr	r3, .L27
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L28:
	.align	2
.L27:
	.word	selectedSlot
	.size	getSelectedSlot, .-getSelectedSlot
	.align	2
	.global	getView
	.syntax unified
	.arm
	.fpu softvfp
	.type	getView, %function
getView:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	ldr	r3, .L31
	ldr	r3, [r3]
	and	r3, r3, #255
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L32:
	.align	2
.L31:
	.word	view
	.size	getView, .-getView
	.align	2
	.global	setTile
	.syntax unified
	.arm
	.fpu softvfp
	.type	setTile, %function
setTile:
	@ 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
	mov	r3, r0
	mov	r2, r1
	strb	r3, [fp, #-5]
	mov	r3, r2
	strb	r3, [fp, #-6]
	ldrb	r2, [fp, #-6]	@ zero_extendqisi2
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	ldr	r1, .L34
	ldrb	r0, [r1]	@ zero_extendqisi2
	ldr	r1, .L34+4
	lsl	r2, r2, #4
	add	r2, r1, r2
	add	r3, r2, r3
	mov	r2, r0
	strb	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L35:
	.align	2
.L34:
	.word	selectedColor
	.word	memory
	.size	setTile, .-setTile
	.align	2
	.global	eraseTile
	.syntax unified
	.arm
	.fpu softvfp
	.type	eraseTile, %function
eraseTile:
	@ 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
	mov	r3, r0
	mov	r2, r1
	strb	r3, [fp, #-5]
	mov	r3, r2
	strb	r3, [fp, #-6]
	ldrb	r2, [fp, #-6]	@ zero_extendqisi2
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	ldr	r1, .L37
	lsl	r2, r2, #4
	add	r2, r1, r2
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L38:
	.align	2
.L37:
	.word	memory
	.size	eraseTile, .-eraseTile
	.align	2
	.global	setMode
	.syntax unified
	.arm
	.fpu softvfp
	.type	setMode, %function
setMode:
	@ 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	r2, .L40
	ldr	r3, [fp, #-8]
	str	r3, [r2]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L41:
	.align	2
.L40:
	.word	view
	.size	setMode, .-setMode
	.align	2
	.global	selectColor
	.syntax unified
	.arm
	.fpu softvfp
	.type	selectColor, %function
selectColor:
	@ 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
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldr	r2, .L43
	ldrb	r3, [fp, #-5]
	strb	r3, [r2]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L44:
	.align	2
.L43:
	.word	selectedColor
	.size	selectColor, .-selectColor
	.align	2
	.global	selectEvent
	.syntax unified
	.arm
	.fpu softvfp
	.type	selectEvent, %function
selectEvent:
	@ 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
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldr	r2, .L46
	ldrb	r3, [fp, #-5]
	strb	r3, [r2]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L47:
	.align	2
.L46:
	.word	selectedEvent
	.size	selectEvent, .-selectEvent
	.align	2
	.global	selectSlot
	.syntax unified
	.arm
	.fpu softvfp
	.type	selectSlot, %function
selectSlot:
	@ 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
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldr	r2, .L49
	ldrb	r3, [fp, #-5]
	strb	r3, [r2]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L50:
	.align	2
.L49:
	.word	selectedSlot
	.size	selectSlot, .-selectSlot
	.align	2
	.global	setRule
	.syntax unified
	.arm
	.fpu softvfp
	.type	setRule, %function
setRule:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #8
	mov	r3, r0
	strb	r3, [fp, #-13]
	mov	r3, r1
	strb	r3, [fp, #-14]
	mov	r3, r2
	strb	r3, [fp, #-15]
	ldr	r3, .L52
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	lr, r3
	ldr	r3, .L52+4
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r4, r3
	ldrb	r1, [fp, #-15]	@ zero_extendqisi2
	ldrb	r3, [fp, #-14]	@ zero_extendqisi2
	ldrb	r0, [fp, #-13]	@ zero_extendqisi2
	ldr	r2, .L52+8
	ldrb	r5, [r2]	@ zero_extendqisi2
	ldr	ip, .L52+12
	mov	r2, r3
	lsl	r2, r2, #1
	add	r2, r2, r3
	mov	r3, r1
	lsl	r3, r3, #3
	add	r3, r3, r1
	add	r2, r2, r3
	mov	r3, r4
	lsl	r3, r3, #3
	add	r3, r3, r4
	lsl	r3, r3, #1
	add	r2, r2, r3
	mov	r3, lr
	lsl	r3, r3, #3
	add	r3, r3, lr
	lsl	r3, r3, #5
	add	r3, r2, r3
	add	r3, ip, r3
	add	r3, r3, r0
	mov	r2, r5
	strb	r2, [r3]
	nop
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L53:
	.align	2
.L52:
	.word	selectedEvent
	.word	selectedSlot
	.word	selectedColor
	.word	rules
	.size	setRule, .-setRule
	.align	2
	.global	eraseRule
	.syntax unified
	.arm
	.fpu softvfp
	.type	eraseRule, %function
eraseRule:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #12
	mov	r3, r0
	strb	r3, [fp, #-13]
	mov	r3, r1
	strb	r3, [fp, #-14]
	mov	r3, r2
	strb	r3, [fp, #-15]
	ldr	r3, .L55
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	lr, r3
	ldr	r3, .L55+4
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r4, r3
	ldrb	r1, [fp, #-15]	@ zero_extendqisi2
	ldrb	r3, [fp, #-14]	@ zero_extendqisi2
	ldrb	r0, [fp, #-13]	@ zero_extendqisi2
	ldr	ip, .L55+8
	mov	r2, r3
	lsl	r2, r2, #1
	add	r2, r2, r3
	mov	r3, r1
	lsl	r3, r3, #3
	add	r3, r3, r1
	add	r2, r2, r3
	mov	r3, r4
	lsl	r3, r3, #3
	add	r3, r3, r4
	lsl	r3, r3, #1
	add	r2, r2, r3
	mov	r3, lr
	lsl	r3, r3, #3
	add	r3, r3, lr
	lsl	r3, r3, #5
	add	r3, r2, r3
	add	r3, ip, r3
	add	r3, r3, r0
	mvn	r2, #0
	strb	r2, [r3]
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L56:
	.align	2
.L55:
	.word	selectedEvent
	.word	selectedSlot
	.word	rules
	.size	eraseRule, .-eraseRule
	.align	2
	.global	setCursor
	.syntax unified
	.arm
	.fpu softvfp
	.type	setCursor, %function
setCursor:
	@ 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
	mov	r3, r0
	mov	r2, r1
	strb	r3, [fp, #-5]
	mov	r3, r2
	strb	r3, [fp, #-6]
	ldr	r2, .L58
	ldrb	r3, [fp, #-5]
	strb	r3, [r2]
	ldr	r2, .L58
	ldrb	r3, [fp, #-6]
	strb	r3, [r2, #1]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L59:
	.align	2
.L58:
	.word	cursor
	.size	setCursor, .-setCursor
	.section	.rodata
	.align	2
.LC0:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	applyRules
	.syntax unified
	.arm
	.fpu softvfp
	.type	applyRules, %function
applyRules:
	@ args = 0, pretend = 0, frame = 320
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #324
	mov	r3, r0
	strb	r3, [fp, #-325]
	ldr	r3, .L86
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-320]
	b	.L61
.L64:
	mov	r3, #0
	str	r3, [fp, #-316]
	b	.L62
.L63:
	ldr	r2, .L86+4
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #4
	add	r2, r2, r3
	ldr	r3, [fp, #-316]
	add	r3, r2, r3
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-320]
	lsl	r3, r3, #4
	sub	r2, fp, #12
	add	r2, r2, r3
	ldr	r3, [fp, #-316]
	add	r3, r2, r3
	sub	r3, r3, #260
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-316]
	add	r3, r3, #1
	str	r3, [fp, #-316]
.L62:
	ldr	r3, [fp, #-316]
	cmp	r3, #15
	ble	.L63
	ldr	r3, [fp, #-320]
	add	r3, r3, #1
	str	r3, [fp, #-320]
.L61:
	ldr	r3, [fp, #-320]
	cmp	r3, #15
	ble	.L64
	mov	r3, #1
	str	r3, [fp, #-312]
	b	.L65
.L80:
	mov	r3, #1
	str	r3, [fp, #-308]
	b	.L66
.L79:
	mov	r3, #0
	str	r3, [fp, #-304]
	b	.L67
.L78:
	mov	r3, #1
	str	r3, [fp, #-300]
	mov	r3, #0
	str	r3, [fp, #-296]
	b	.L68
.L72:
	mov	r3, #0
	str	r3, [fp, #-292]
	b	.L69
.L71:
	ldrb	r1, [fp, #-325]	@ zero_extendqisi2
	ldr	ip, .L86+8
	ldr	r3, [fp, #-296]
	ldr	r0, [fp, #-304]
	mov	r2, r3
	lsl	r2, r2, #1
	add	r2, r2, r3
	mov	r3, r0
	lsl	r3, r3, #3
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r2, r2, r3
	mov	r3, r1
	lsl	r3, r3, #3
	add	r3, r3, r1
	lsl	r3, r3, #5
	add	r3, r2, r3
	add	r2, ip, r3
	ldr	r3, [fp, #-292]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-321]
	ldr	r2, [fp, #-312]
	ldr	r3, [fp, #-296]
	add	r3, r2, r3
	sub	r2, r3, #1
	ldr	r1, [fp, #-308]
	ldr	r3, [fp, #-292]
	add	r3, r1, r3
	sub	r3, r3, #1
	ldr	r1, .L86+4
	lsl	r2, r2, #4
	add	r2, r1, r2
	add	r3, r2, r3
	ldrb	ip, [r3]	@ zero_extendqisi2
	ldrb	r1, [fp, #-325]	@ zero_extendqisi2
	ldr	lr, .L86+8
	ldr	r3, [fp, #-296]
	ldr	r0, [fp, #-304]
	mov	r2, r3
	lsl	r2, r2, #1
	add	r2, r2, r3
	mov	r3, r0
	lsl	r3, r3, #3
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r2, r2, r3
	mov	r3, r1
	lsl	r3, r3, #3
	add	r3, r3, r1
	lsl	r3, r3, #5
	add	r3, r2, r3
	add	r2, lr, r3
	ldr	r3, [fp, #-292]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	ip, r3
	beq	.L70
	mov	r3, #0
	str	r3, [fp, #-300]
.L70:
	ldr	r3, [fp, #-292]
	add	r3, r3, #1
	str	r3, [fp, #-292]
.L69:
	ldr	r3, [fp, #-292]
	cmp	r3, #2
	ble	.L71
	ldr	r3, [fp, #-296]
	add	r3, r3, #1
	str	r3, [fp, #-296]
.L68:
	ldr	r3, [fp, #-296]
	cmp	r3, #2
	ble	.L72
	ldr	r3, [fp, #-300]
	cmp	r3, #1
	bne	.L73
	mov	r3, #0
	str	r3, [fp, #-288]
	b	.L74
.L77:
	mov	r3, #0
	str	r3, [fp, #-284]
	b	.L75
.L76:
	ldrb	r0, [fp, #-325]	@ zero_extendqisi2
	ldr	ip, .L86+8
	ldr	r3, [fp, #-288]
	ldr	r1, [fp, #-304]
	mov	r2, r3
	lsl	r2, r2, #1
	add	r2, r2, r3
	mov	r3, r0
	lsl	r3, r3, #3
	add	r3, r3, r0
	lsl	r3, r3, #5
	add	r2, r2, r3
	mov	r3, r1
	lsl	r3, r3, #3
	add	r3, r3, r1
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r2, ip, r3
	ldr	r3, [fp, #-284]
	add	r3, r2, r3
	add	r3, r3, #9
	ldrb	r3, [r3]
	strb	r3, [fp, #-322]
	ldrb	r0, [fp, #-325]	@ zero_extendqisi2
	ldr	r2, [fp, #-312]
	ldr	r3, [fp, #-288]
	add	r3, r2, r3
	sub	lr, r3, #1
	ldr	r2, [fp, #-308]
	ldr	r3, [fp, #-284]
	add	r3, r2, r3
	sub	ip, r3, #1
	ldr	r4, .L86+8
	ldr	r3, [fp, #-288]
	ldr	r1, [fp, #-304]
	mov	r2, r3
	lsl	r2, r2, #1
	add	r2, r2, r3
	mov	r3, r0
	lsl	r3, r3, #3
	add	r3, r3, r0
	lsl	r3, r3, #5
	add	r2, r2, r3
	mov	r3, r1
	lsl	r3, r3, #3
	add	r3, r3, r1
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r2, r4, r3
	ldr	r3, [fp, #-284]
	add	r3, r2, r3
	add	r3, r3, #9
	ldrb	r2, [r3]	@ zero_extendqisi2
	lsl	r3, lr, #4
	sub	r1, fp, #12
	add	r3, r1, r3
	add	r3, r3, ip
	sub	r3, r3, #260
	strb	r2, [r3]
	ldr	r3, [fp, #-284]
	add	r3, r3, #1
	str	r3, [fp, #-284]
.L75:
	ldr	r3, [fp, #-284]
	cmp	r3, #2
	ble	.L76
	ldr	r3, [fp, #-288]
	add	r3, r3, #1
	str	r3, [fp, #-288]
.L74:
	ldr	r3, [fp, #-288]
	cmp	r3, #2
	ble	.L77
.L73:
	ldr	r3, [fp, #-304]
	add	r3, r3, #1
	str	r3, [fp, #-304]
.L67:
	ldr	r3, [fp, #-304]
	cmp	r3, #15
	ble	.L78
	ldr	r3, [fp, #-308]
	add	r3, r3, #1
	str	r3, [fp, #-308]
.L66:
	ldr	r3, [fp, #-308]
	cmp	r3, #14
	ble	.L79
	ldr	r3, [fp, #-312]
	add	r3, r3, #1
	str	r3, [fp, #-312]
.L65:
	ldr	r3, [fp, #-312]
	cmp	r3, #14
	ble	.L80
	mov	r3, #0
	str	r3, [fp, #-280]
	b	.L81
.L84:
	mov	r3, #0
	str	r3, [fp, #-276]
	b	.L82
.L83:
	ldr	r3, [fp, #-280]
	lsl	r3, r3, #4
	sub	r2, fp, #12
	add	r2, r2, r3
	ldr	r3, [fp, #-276]
	add	r3, r2, r3
	sub	r3, r3, #260
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldr	r2, .L86+4
	ldr	r3, [fp, #-280]
	lsl	r3, r3, #4
	add	r2, r2, r3
	ldr	r3, [fp, #-276]
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-276]
	add	r3, r3, #1
	str	r3, [fp, #-276]
.L82:
	ldr	r3, [fp, #-276]
	cmp	r3, #15
	ble	.L83
	ldr	r3, [fp, #-280]
	add	r3, r3, #1
	str	r3, [fp, #-280]
.L81:
	ldr	r3, [fp, #-280]
	cmp	r3, #15
	ble	.L84
	nop
	ldr	r3, .L86
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L85
	bl	__stack_chk_fail
.L85:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L87:
	.align	2
.L86:
	.word	.LC0
	.word	memory
	.word	rules
	.size	applyRules, .-applyRules
	.align	2
	.global	eraseMemory
	.syntax unified
	.arm
	.fpu softvfp
	.type	eraseMemory, %function
eraseMemory:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L89
.L92:
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L90
.L91:
	ldr	r3, [fp, #-12]
	and	r2, r3, #255
	ldr	r3, [fp, #-8]
	and	r3, r3, #255
	mov	r1, r3
	mov	r0, r2
	bl	eraseTile
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L90:
	ldr	r3, [fp, #-8]
	cmp	r3, #15
	ble	.L91
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L89:
	ldr	r3, [fp, #-12]
	cmp	r3, #15
	ble	.L92
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	eraseMemory, .-eraseMemory
	.align	2
	.global	eraseRules
	.syntax unified
	.arm
	.fpu softvfp
	.type	eraseRules, %function
eraseRules:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L94
.L103:
	ldr	r3, [fp, #-24]
	and	r3, r3, #255
	mov	r0, r3
	bl	selectEvent
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L95
.L102:
	ldr	r3, [fp, #-20]
	and	r3, r3, #255
	mov	r0, r3
	bl	selectSlot
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L96
.L101:
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L97
.L100:
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L98
.L99:
	ldr	r3, [fp, #-12]
	and	r0, r3, #255
	ldr	r3, [fp, #-8]
	and	r1, r3, #255
	ldr	r3, [fp, #-16]
	and	r3, r3, #255
	mov	r2, r3
	bl	eraseRule
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L98:
	ldr	r3, [fp, #-8]
	cmp	r3, #2
	ble	.L99
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L97:
	ldr	r3, [fp, #-12]
	cmp	r3, #2
	ble	.L100
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L96:
	ldr	r3, [fp, #-16]
	cmp	r3, #1
	ble	.L101
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L95:
	ldr	r3, [fp, #-20]
	cmp	r3, #15
	ble	.L102
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L94:
	ldr	r3, [fp, #-24]
	cmp	r3, #7
	ble	.L103
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	eraseRules, .-eraseRules
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
