	.file	"166293.c"
	.intel_syntax noprefix
	.text
	.globl	block
	.bss
	.align 32
	.type	block, @object
	.size	block, 2048
block:
	.zero	2048
	.globl	chunk_num
	.align 32
	.type	chunk_num, @object
	.size	chunk_num, 8192
chunk_num:
	.zero	8192
	.text
	.globl	mark_chunk
	.type	mark_chunk, @function
mark_chunk:
.LFB0:
	.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	DWORD PTR -28[rbp], edx
	mov	DWORD PTR -4[rbp], 0
	jmp	.L2
.L3:
	mov	edx, DWORD PTR -20[rbp]
	mov	eax, DWORD PTR -4[rbp]
	add	eax, edx
	cdqe
	lea	rcx, 0[0+rax*4]
	lea	rdx, chunk_num[rip]
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR [rcx+rdx], eax
	add	DWORD PTR -4[rbp], 1
.L2:
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, DWORD PTR -24[rbp]
	jl	.L3
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	mark_chunk, .-mark_chunk
	.globl	mark_chunk_if_empty
	.type	mark_chunk_if_empty, @function
mark_chunk_if_empty:
.LFB1:
	.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	DWORD PTR -24[rbp], esi
	mov	DWORD PTR -28[rbp], edx
	mov	DWORD PTR -4[rbp], 0
	jmp	.L5
.L8:
	mov	edx, DWORD PTR -20[rbp]
	mov	eax, DWORD PTR -4[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, chunk_num[rip]
	mov	eax, DWORD PTR [rdx+rax]
	test	eax, eax
	je	.L6
	mov	eax, 0
	jmp	.L7
.L6:
	add	DWORD PTR -4[rbp], 1
.L5:
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, DWORD PTR -24[rbp]
	jl	.L8
	mov	edx, DWORD PTR -28[rbp]
	mov	ecx, DWORD PTR -24[rbp]
	mov	eax, DWORD PTR -20[rbp]
	mov	esi, ecx
	mov	edi, eax
	call	mark_chunk
	mov	eax, 1
.L7:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	mark_chunk_if_empty, .-mark_chunk_if_empty
	.section	.rodata
.LC0:
	.string	"Found pointer %03x\n"
	.text
	.globl	check_and_mark_pointer
	.type	check_and_mark_pointer, @function
check_and_mark_pointer:
.LFB2:
	.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	DWORD PTR -24[rbp], esi
	cmp	DWORD PTR -24[rbp], 0
	je	.L10
	mov	edx, DWORD PTR -20[rbp]
	mov	eax, DWORD PTR -20[rbp]
	mov	esi, 4
	mov	edi, eax
	call	mark_chunk
.L10:
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, block[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	ecx, al
	mov	eax, DWORD PTR -20[rbp]
	add	eax, 1
	cdqe
	lea	rdx, block[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	eax, al
	sal	eax, 8
	or	eax, ecx
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	add	eax, 2
	cdqe
	lea	rdx, block[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	ecx, al
	mov	eax, DWORD PTR -20[rbp]
	add	eax, 3
	cdqe
	lea	rdx, block[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	eax, al
	sal	eax, 8
	or	eax, ecx
	mov	DWORD PTR -8[rbp], eax
	cmp	DWORD PTR -12[rbp], 0
	jne	.L11
	mov	eax, 0
	jmp	.L12
.L11:
	cmp	DWORD PTR -8[rbp], 1
	jg	.L13
	mov	eax, 0
	jmp	.L12
.L13:
	cmp	DWORD PTR -12[rbp], 2048
	jle	.L14
	mov	eax, 0
	jmp	.L12
.L14:
	cmp	DWORD PTR -8[rbp], 2048
	jle	.L15
	mov	eax, 0
	jmp	.L12
.L15:
	mov	edx, DWORD PTR -12[rbp]
	mov	eax, DWORD PTR -8[rbp]
	add	eax, edx
	cmp	eax, 2048
	jle	.L16
	mov	eax, 0
	jmp	.L12
.L16:
	mov	edx, DWORD PTR -20[rbp]
	mov	ecx, DWORD PTR -8[rbp]
	mov	eax, DWORD PTR -12[rbp]
	mov	esi, ecx
	mov	edi, eax
	call	mark_chunk_if_empty
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L17
	mov	eax, DWORD PTR -4[rbp]
	jmp	.L12
.L17:
	mov	edx, DWORD PTR -20[rbp]
	mov	eax, DWORD PTR -20[rbp]
	mov	esi, 4
	mov	edi, eax
	call	mark_chunk
	mov	eax, DWORD PTR -20[rbp]
	mov	esi, eax
	lea	rdi, .LC0[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, DWORD PTR -4[rbp]
.L12:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	check_and_mark_pointer, .-check_and_mark_pointer
	.section	.rodata
.LC1:
	.string	"\033[48;5;%dm"
	.text
	.globl	set_bg_color
	.type	set_bg_color, @function
set_bg_color:
.LFB3:
	.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
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, eax
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE3:
	.size	set_bg_color, .-set_bg_color
	.section	.rodata
.LC2:
	.string	"\033[38;5;%dm"
	.text
	.globl	set_fg_color
	.type	set_fg_color, @function
set_fg_color:
.LFB4:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, eax
	lea	rdi, .LC2[rip]
	mov	eax, 0
	call	printf@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	set_fg_color, .-set_fg_color
	.globl	set_chunk_color
	.type	set_chunk_color, @function
set_chunk_color:
.LFB5:
	.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
	cmp	DWORD PTR -20[rbp], 0
	jne	.L21
	mov	edi, 0
	call	set_bg_color
	mov	edi, 15
	call	set_fg_color
	jmp	.L20
.L21:
	mov	eax, DWORD PTR -20[rbp]
	movsx	rdx, eax
	imul	rdx, rdx, 1374389535
	shr	rdx, 32
	sar	edx, 4
	sar	eax, 31
	sub	edx, eax
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	add	eax, 16
	mov	DWORD PTR -4[rbp], eax
	mov	edx, DWORD PTR -20[rbp]
	movsx	rax, edx
	imul	rax, rax, 1374389535
	shr	rax, 32
	sar	eax, 4
	mov	ecx, edx
	sar	ecx, 31
	sub	eax, ecx
	imul	ecx, eax, 50
	mov	eax, edx
	sub	eax, ecx
	mov	edx, eax
	add	edx, edx
	add	eax, edx
	add	eax, 16
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, DWORD PTR -8[rbp]
	jne	.L23
	sub	DWORD PTR -8[rbp], -128
.L23:
	mov	eax, DWORD PTR -8[rbp]
	mov	edi, eax
	call	set_bg_color
	mov	eax, DWORD PTR -4[rbp]
	mov	edi, eax
	call	set_fg_color
.L20:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	set_chunk_color, .-set_chunk_color
	.section	.rodata
.LC3:
	.string	"Block: %d\n"
.LC4:
	.string	"    "
.LC5:
	.string	"%02x "
.LC6:
	.string	"%01x"
.LC7:
	.string	"%03x "
.LC8:
	.string	"%02x"
	.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, 48
	mov	DWORD PTR -36[rbp], edi
	mov	QWORD PTR -48[rbp], rsi
	mov	DWORD PTR -20[rbp], 0
	jmp	.L25
.L48:
	mov	edx, 8192
	mov	esi, 0
	lea	rdi, chunk_num[rip]
	call	memset@PLT
	mov	eax, DWORD PTR -20[rbp]
	mov	esi, eax
	lea	rdi, .LC3[rip]
	mov	eax, 0
	call	printf@PLT
	mov	esi, 1
	mov	edi, 16
	call	check_and_mark_pointer
	mov	esi, 1
	mov	edi, 126
	call	check_and_mark_pointer
	mov	esi, 1
	mov	edi, 136
	call	check_and_mark_pointer
	mov	esi, 1
	mov	edi, 142
	call	check_and_mark_pointer
	mov	esi, 1
	mov	edi, 146
	call	check_and_mark_pointer
	mov	esi, 1
	mov	edi, 154
	call	check_and_mark_pointer
	mov	esi, 1
	mov	edi, 158
	call	check_and_mark_pointer
	mov	esi, 1
	mov	edi, 162
	call	check_and_mark_pointer
	mov	esi, 1
	mov	edi, 166
	call	check_and_mark_pointer
	mov	DWORD PTR -16[rbp], 1
	jmp	.L26
.L28:
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, chunk_num[rip]
	mov	eax, DWORD PTR [rdx+rax]
	test	eax, eax
	jne	.L27
	mov	eax, DWORD PTR -16[rbp]
	mov	esi, 0
	mov	edi, eax
	call	check_and_mark_pointer
.L27:
	add	DWORD PTR -16[rbp], 1
.L26:
	cmp	DWORD PTR -16[rbp], 2047
	jle	.L28
	cmp	DWORD PTR -36[rbp], 1
	jg	.L29
	mov	eax, 0
	jmp	.L30
.L29:
	mov	edi, 0
	call	set_bg_color
	mov	edi, 7
	call	set_fg_color
	lea	rdi, .LC4[rip]
	mov	eax, 0
	call	printf@PLT
	mov	DWORD PTR -16[rbp], 0
	jmp	.L31
.L33:
	mov	eax, DWORD PTR -16[rbp]
	mov	esi, eax
	lea	rdi, .LC5[rip]
	mov	eax, 0
	call	printf@PLT
	cmp	DWORD PTR -16[rbp], 15
	jne	.L32
	mov	edi, 32
	call	putchar@PLT
.L32:
	add	DWORD PTR -16[rbp], 1
.L31:
	cmp	DWORD PTR -16[rbp], 31
	jle	.L33
	mov	edi, 32
	call	putchar@PLT
	mov	DWORD PTR -16[rbp], 0
	jmp	.L34
.L35:
	mov	eax, DWORD PTR -16[rbp]
	cdq
	shr	edx, 28
	add	eax, edx
	and	eax, 15
	sub	eax, edx
	mov	esi, eax
	lea	rdi, .LC6[rip]
	mov	eax, 0
	call	printf@PLT
	add	DWORD PTR -16[rbp], 1
.L34:
	cmp	DWORD PTR -16[rbp], 31
	jle	.L35
	mov	edi, 10
	call	putchar@PLT
	mov	edi, 15
	call	set_fg_color
	mov	DWORD PTR -16[rbp], 0
	jmp	.L36
.L47:
	mov	eax, DWORD PTR -16[rbp]
	sal	eax, 5
	mov	esi, eax
	lea	rdi, .LC7[rip]
	mov	eax, 0
	call	printf@PLT
	mov	DWORD PTR -12[rbp], 0
	jmp	.L37
.L40:
	mov	eax, DWORD PTR -16[rbp]
	sal	eax, 5
	mov	edx, eax
	mov	eax, DWORD PTR -12[rbp]
	add	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, chunk_num[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edi, eax
	call	set_chunk_color
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, block[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	eax, al
	mov	esi, eax
	lea	rdi, .LC8[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, chunk_num[rip]
	mov	edx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -4[rbp]
	add	eax, 1
	cdqe
	lea	rcx, 0[0+rax*4]
	lea	rax, chunk_num[rip]
	mov	eax, DWORD PTR [rcx+rax]
	cmp	edx, eax
	je	.L38
	mov	edi, 0
	call	set_chunk_color
.L38:
	mov	edi, 32
	call	putchar@PLT
	cmp	DWORD PTR -12[rbp], 15
	jne	.L39
	mov	edi, 32
	call	putchar@PLT
.L39:
	add	DWORD PTR -12[rbp], 1
.L37:
	cmp	DWORD PTR -12[rbp], 31
	jle	.L40
	mov	edi, 0
	call	set_chunk_color
	mov	edi, 32
	call	putchar@PLT
	mov	DWORD PTR -12[rbp], 0
	jmp	.L41
.L46:
	mov	eax, DWORD PTR -16[rbp]
	sal	eax, 5
	mov	edx, eax
	mov	eax, DWORD PTR -12[rbp]
	add	eax, edx
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rdx, block[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	mov	BYTE PTR -21[rbp], al
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rdx, block[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, 31
	ja	.L42
	mov	BYTE PTR -21[rbp], 46
.L42:
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rdx, block[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, 126
	jbe	.L43
	mov	BYTE PTR -21[rbp], 46
.L43:
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, chunk_num[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edi, eax
	call	set_chunk_color
	movsx	eax, BYTE PTR -21[rbp]
	mov	edi, eax
	call	putchar@PLT
	cmp	DWORD PTR -12[rbp], 15
	jne	.L44
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, chunk_num[rip]
	mov	edx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -8[rbp]
	add	eax, 1
	cdqe
	lea	rcx, 0[0+rax*4]
	lea	rax, chunk_num[rip]
	mov	eax, DWORD PTR [rcx+rax]
	cmp	edx, eax
	je	.L45
	mov	edi, 0
	call	set_chunk_color
.L45:
	mov	edi, 32
	call	putchar@PLT
.L44:
	add	DWORD PTR -12[rbp], 1
.L41:
	cmp	DWORD PTR -12[rbp], 31
	jle	.L46
	mov	edi, 0
	call	set_chunk_color
	mov	edi, 10
	call	putchar@PLT
	add	DWORD PTR -16[rbp], 1
.L36:
	cmp	DWORD PTR -16[rbp], 63
	jle	.L47
	add	DWORD PTR -20[rbp], 1
.L25:
	mov	rax, QWORD PTR stdin[rip]
	mov	rcx, rax
	mov	edx, 1
	mov	esi, 2048
	lea	rdi, block[rip]
	call	fread@PLT
	test	rax, rax
	jne	.L48
	mov	eax, 0
.L30:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.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	"166293.c"
	.text
	.comm	block,2048,4
	.comm	chunk_num,8192,4
	.align	2
	.global	mark_chunk
	.syntax unified
	.arm
	.fpu softvfp
	.type	mark_chunk, %function
mark_chunk:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #28
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L2
.L3:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	ldr	r1, .L4
	ldr	r2, [fp, #-24]
	str	r2, [r1, r3, lsl #2]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L2:
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	blt	.L3
	nop
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L5:
	.align	2
.L4:
	.word	chunk_num
	.size	mark_chunk, .-mark_chunk
	.align	2
	.global	mark_chunk_if_empty
	.syntax unified
	.arm
	.fpu softvfp
	.type	mark_chunk_if_empty, %function
mark_chunk_if_empty:
	@ 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, #-8]
	b	.L7
.L10:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	ldr	r2, .L11
	ldr	r3, [r2, r3, lsl #2]
	cmp	r3, #0
	beq	.L8
	mov	r3, #0
	b	.L9
.L8:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L7:
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	blt	.L10
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	mark_chunk
	mov	r3, #1
.L9:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L12:
	.align	2
.L11:
	.word	chunk_num
	.size	mark_chunk_if_empty, .-mark_chunk_if_empty
	.section	.rodata
	.align	2
.LC0:
	.ascii	"Found pointer %03x\012\000"
	.text
	.align	2
	.global	check_and_mark_pointer
	.syntax unified
	.arm
	.fpu softvfp
	.type	check_and_mark_pointer, %function
check_and_mark_pointer:
	@ 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]
	cmp	r3, #0
	beq	.L14
	ldr	r2, [fp, #-24]
	mov	r1, #4
	ldr	r0, [fp, #-24]
	bl	mark_chunk
.L14:
	ldr	r2, .L22
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	ldr	r2, .L22
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	orr	r3, r1, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r3, r3, #2
	ldr	r2, .L22
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r3, [fp, #-24]
	add	r3, r3, #3
	ldr	r2, .L22
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	orr	r3, r1, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L15
	mov	r3, #0
	b	.L16
.L15:
	ldr	r3, [fp, #-12]
	cmp	r3, #1
	bgt	.L17
	mov	r3, #0
	b	.L16
.L17:
	ldr	r3, [fp, #-16]
	cmp	r3, #2048
	ble	.L18
	mov	r3, #0
	b	.L16
.L18:
	ldr	r3, [fp, #-12]
	cmp	r3, #2048
	ble	.L19
	mov	r3, #0
	b	.L16
.L19:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	cmp	r3, #2048
	ble	.L20
	mov	r3, #0
	b	.L16
.L20:
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-16]
	bl	mark_chunk_if_empty
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L21
	ldr	r3, [fp, #-8]
	b	.L16
.L21:
	ldr	r2, [fp, #-24]
	mov	r1, #4
	ldr	r0, [fp, #-24]
	bl	mark_chunk
	ldr	r1, [fp, #-24]
	ldr	r0, .L22+4
	bl	printf
	ldr	r3, [fp, #-8]
.L16:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L23:
	.align	2
.L22:
	.word	block
	.word	.LC0
	.size	check_and_mark_pointer, .-check_and_mark_pointer
	.section	.rodata
	.align	2
.LC1:
	.ascii	"\033[48;5;%dm\000"
	.text
	.align	2
	.global	set_bg_color
	.syntax unified
	.arm
	.fpu softvfp
	.type	set_bg_color, %function
set_bg_color:
	@ 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	r1, [fp, #-8]
	ldr	r0, .L25
	bl	printf
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L26:
	.align	2
.L25:
	.word	.LC1
	.size	set_bg_color, .-set_bg_color
	.section	.rodata
	.align	2
.LC2:
	.ascii	"\033[38;5;%dm\000"
	.text
	.align	2
	.global	set_fg_color
	.syntax unified
	.arm
	.fpu softvfp
	.type	set_fg_color, %function
set_fg_color:
	@ 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	r1, [fp, #-8]
	ldr	r0, .L28
	bl	printf
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L29:
	.align	2
.L28:
	.word	.LC2
	.size	set_fg_color, .-set_fg_color
	.align	2
	.global	set_chunk_color
	.syntax unified
	.arm
	.fpu softvfp
	.type	set_chunk_color, %function
set_chunk_color:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L31
	mov	r0, #0
	bl	set_bg_color
	mov	r0, #15
	bl	set_fg_color
	b	.L30
.L31:
	ldr	r3, [fp, #-16]
	ldr	r2, .L34
	smull	r1, r2, r3, r2
	asr	r2, r2, #4
	asr	r3, r3, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r3, #16
	str	r3, [fp, #-8]
	ldr	r1, [fp, #-16]
	ldr	r3, .L34
	smull	r2, r3, r1, r3
	asr	r2, r3, #4
	asr	r3, r1, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	sub	r2, r1, r3
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r3, #16
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	bne	.L33
	ldr	r3, [fp, #-12]
	add	r3, r3, #128
	str	r3, [fp, #-12]
.L33:
	ldr	r0, [fp, #-12]
	bl	set_bg_color
	ldr	r0, [fp, #-8]
	bl	set_fg_color
.L30:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L35:
	.align	2
.L34:
	.word	1374389535
	.size	set_chunk_color, .-set_chunk_color
	.section	.rodata
	.align	2
.LC3:
	.ascii	"Block: %d\012\000"
	.align	2
.LC4:
	.ascii	"    \000"
	.align	2
.LC5:
	.ascii	"%02x \000"
	.align	2
.LC6:
	.ascii	"%01x\000"
	.align	2
.LC7:
	.ascii	"%03x \000"
	.align	2
.LC8:
	.ascii	"%02x\000"
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ 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, #-24]
	b	.L37
.L60:
	mov	r2, #8192
	mov	r1, #0
	ldr	r0, .L61
	bl	memset
	ldr	r1, [fp, #-24]
	ldr	r0, .L61+4
	bl	printf
	mov	r1, #1
	mov	r0, #16
	bl	check_and_mark_pointer
	mov	r1, #1
	mov	r0, #126
	bl	check_and_mark_pointer
	mov	r1, #1
	mov	r0, #136
	bl	check_and_mark_pointer
	mov	r1, #1
	mov	r0, #142
	bl	check_and_mark_pointer
	mov	r1, #1
	mov	r0, #146
	bl	check_and_mark_pointer
	mov	r1, #1
	mov	r0, #154
	bl	check_and_mark_pointer
	mov	r1, #1
	mov	r0, #158
	bl	check_and_mark_pointer
	mov	r1, #1
	mov	r0, #162
	bl	check_and_mark_pointer
	mov	r1, #1
	mov	r0, #166
	bl	check_and_mark_pointer
	mov	r3, #1
	str	r3, [fp, #-20]
	b	.L38
.L40:
	ldr	r2, .L61
	ldr	r3, [fp, #-20]
	ldr	r3, [r2, r3, lsl #2]
	cmp	r3, #0
	bne	.L39
	mov	r1, #0
	ldr	r0, [fp, #-20]
	bl	check_and_mark_pointer
.L39:
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L38:
	ldr	r3, [fp, #-20]
	cmp	r3, #2048
	blt	.L40
	ldr	r3, [fp, #-32]
	cmp	r3, #1
	bgt	.L41
	mov	r3, #0
	b	.L42
.L41:
	mov	r0, #0
	bl	set_bg_color
	mov	r0, #7
	bl	set_fg_color
	ldr	r0, .L61+8
	bl	printf
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L43
.L45:
	ldr	r1, [fp, #-20]
	ldr	r0, .L61+12
	bl	printf
	ldr	r3, [fp, #-20]
	cmp	r3, #15
	bne	.L44
	mov	r0, #32
	bl	putchar
.L44:
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L43:
	ldr	r3, [fp, #-20]
	cmp	r3, #31
	ble	.L45
	mov	r0, #32
	bl	putchar
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L46
.L47:
	ldr	r3, [fp, #-20]
	rsbs	r2, r3, #0
	and	r3, r3, #15
	and	r2, r2, #15
	rsbpl	r3, r2, #0
	mov	r1, r3
	ldr	r0, .L61+16
	bl	printf
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L46:
	ldr	r3, [fp, #-20]
	cmp	r3, #31
	ble	.L47
	mov	r0, #10
	bl	putchar
	mov	r0, #15
	bl	set_fg_color
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L48
.L59:
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #5
	mov	r1, r3
	ldr	r0, .L61+20
	bl	printf
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L49
.L52:
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #5
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r2, .L61
	ldr	r3, [fp, #-8]
	ldr	r3, [r2, r3, lsl #2]
	mov	r0, r3
	bl	set_chunk_color
	ldr	r2, .L61+24
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, .L61+28
	bl	printf
	ldr	r2, .L61
	ldr	r3, [fp, #-8]
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	ldr	r1, .L61
	ldr	r3, [r1, r3, lsl #2]
	cmp	r2, r3
	beq	.L50
	mov	r0, #0
	bl	set_chunk_color
.L50:
	mov	r0, #32
	bl	putchar
	ldr	r3, [fp, #-16]
	cmp	r3, #15
	bne	.L51
	mov	r0, #32
	bl	putchar
.L51:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L49:
	ldr	r3, [fp, #-16]
	cmp	r3, #31
	ble	.L52
	mov	r0, #0
	bl	set_chunk_color
	mov	r0, #32
	bl	putchar
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L53
.L58:
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #5
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r2, .L61+24
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-25]
	ldr	r2, .L61+24
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #31
	bhi	.L54
	mov	r3, #46
	strb	r3, [fp, #-25]
.L54:
	ldr	r2, .L61+24
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #126
	bls	.L55
	mov	r3, #46
	strb	r3, [fp, #-25]
.L55:
	ldr	r2, .L61
	ldr	r3, [fp, #-12]
	ldr	r3, [r2, r3, lsl #2]
	mov	r0, r3
	bl	set_chunk_color
	ldrb	r3, [fp, #-25]	@ zero_extendqisi2
	mov	r0, r3
	bl	putchar
	ldr	r3, [fp, #-16]
	cmp	r3, #15
	bne	.L56
	ldr	r2, .L61
	ldr	r3, [fp, #-12]
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	ldr	r1, .L61
	ldr	r3, [r1, r3, lsl #2]
	cmp	r2, r3
	beq	.L57
	mov	r0, #0
	bl	set_chunk_color
.L57:
	mov	r0, #32
	bl	putchar
.L56:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L53:
	ldr	r3, [fp, #-16]
	cmp	r3, #31
	ble	.L58
	mov	r0, #0
	bl	set_chunk_color
	mov	r0, #10
	bl	putchar
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L48:
	ldr	r3, [fp, #-20]
	cmp	r3, #63
	ble	.L59
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L37:
	ldr	r3, .L61+32
	ldr	r3, [r3]
	mov	r2, #1
	mov	r1, #2048
	ldr	r0, .L61+24
	bl	fread
	mov	r3, r0
	cmp	r3, #0
	bne	.L60
	mov	r3, #0
.L42:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L62:
	.align	2
.L61:
	.word	chunk_num
	.word	.LC3
	.word	.LC4
	.word	.LC5
	.word	.LC6
	.word	.LC7
	.word	block
	.word	.LC8
	.word	stdin
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
